google / autocxx

Tool for safe ergonomic Rust/C++ interop driven from existing C++ headers
https://docs.rs/autocxx
Apache License 2.0
2.24k stars 144 forks source link

Multiple value parameters are comma-separated, causing compile error #928

Closed koutheir closed 2 years ago

koutheir commented 2 years ago

Expected Behavior

I was trying to parse the header llvm/Support/MemoryBuffer.h of LLVM 13.0.1, in order to expose the llvm::MemoryBuffer class. This happens in a library crate. cargo build fails with the following assertion failure:

thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', <...>/.cargo/registry/src/github.com-1ecc6299db9ec823/autocxx-engine-0.17.2/src/conversion/analysis/fun/implicit_constructors.rs:576:30
# Cargo.toml:

# ...

[dependencies]
cxx     = { version = "1.0" }
autocxx = { version = "0.17" }

[build-dependencies]
autocxx-build = { version = "0.17" }
// lib.rs:
use autocxx::prelude::*; // use all the main autocxx functions

include_cpp! {
    #include "llvm/Support/MemoryBuffer.h"
    safety!(unsafe)
    generate!("llvm::MemoryBuffer")
}
// build.rs:
use std::path::Path;
fn main() {
    let mut b = autocxx_build::Builder::new(
        "src/lib.rs",
        &[new("/usr/include/llvm-13"), new("/usr/include/llvm-c-13")],
    )
    .expect_build();

    b.flag_if_supported("-std=c++11").compile("llvm");
    println!("cargo:rerun-if-changed=src/lib.rs");
}

Actual Behavior

$ cargo clean ; RUST_BACKTRACE=1 cargo build
   Compiling proc-macro2 v1.0.36
   Compiling unicode-xid v0.2.2
   Compiling syn v1.0.89
   Compiling libc v0.2.121
   Compiling cfg-if v1.0.0
   Compiling version_check v0.9.4
   Compiling cc v1.0.73
   Compiling memchr v2.4.1
   Compiling log v0.4.14
   Compiling serde v1.0.136
   Compiling either v1.6.1
   Compiling unicode-width v0.1.9
   Compiling serde_derive v1.0.136
   Compiling glob v0.3.0
   Compiling termcolor v1.1.3
   Compiling rustversion v1.0.6
   Compiling minimal-lexical v0.2.1
   Compiling regex-syntax v0.6.25
   Compiling autocxx-bindgen v0.59.13
   Compiling cxxbridge-flags v1.0.66
   Compiling vec_map v0.8.2
   Compiling serde_json v1.0.79
   Compiling ansi_term v0.12.1
   Compiling bitflags v1.3.2
   Compiling humantime v2.1.0
   Compiling strsim v0.8.0
   Compiling remove_dir_all v0.5.3
   Compiling fastrand v1.7.0
   Compiling unindent v0.1.8
   Compiling lazy_static v1.4.0
   Compiling ryu v1.0.9
   Compiling itoa v1.0.1
   Compiling lazycell v1.3.0
   Compiling heck v0.4.0
   Compiling rustc-hash v1.1.0
   Compiling peeking_take_while v0.1.2
   Compiling shlex v1.1.0
   Compiling once_cell v1.10.0
   Compiling libloading v0.7.3
   Compiling textwrap v0.11.0
   Compiling itertools v0.9.0
   Compiling itertools v0.10.3
   Compiling codespan-reporting v0.11.1
   Compiling proc-macro-error-attr v1.0.4
   Compiling proc-macro-error v1.0.4
   Compiling indoc v1.0.4
   Compiling clang-sys v1.3.1
   Compiling aho-corasick v0.7.18
   Compiling nom v7.1.1
   Compiling quote v1.0.16
   Compiling link-cplusplus v1.0.6
   Compiling cxx v1.0.66
   Compiling atty v0.2.14
   Compiling which v4.2.5
   Compiling tempfile v3.3.0
   Compiling clap v2.34.0
   Compiling regex v1.5.5
   Compiling env_logger v0.9.0
   Compiling cexpr v0.6.0
   Compiling cxx-gen v0.7.66
   Compiling aquamarine v0.1.11
   Compiling strum_macros v0.24.0
   Compiling cxxbridge-macro v1.0.66
   Compiling autocxx-parser v0.17.2
   Compiling autocxx-engine v0.17.2
   Compiling moveit v0.4.0
   Compiling autocxx-macro v0.17.2
   Compiling autocxx v0.17.2
   Compiling autocxx-build v0.17.2
   Compiling <...> v0.1.0 (<...>)
error: failed to run custom build command for `<...> v0.1.0 (<...>)`

Caused by:
  process did not exit successfully: `<...>/target/debug/build/<...>-315f03f03f7c99b6/build-script-build` (exit status: 101)
  --- stdout
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/MemoryBuffer.h
  cargo:rerun-if-changed=/usr/include/llvm-c-13/llvm-c/Types.h
  cargo:rerun-if-changed=/usr/include/llvm-c-13/llvm-c/DataTypes.h
  cargo:rerun-if-changed=/usr/lib/llvm-13/lib/clang/13.0.1/include/inttypes.h
  cargo:rerun-if-changed=/usr/include/inttypes.h
  cargo:rerun-if-changed=/usr/include/features.h
  cargo:rerun-if-changed=/usr/include/stdc-predef.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/cdefs.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/long-double.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/gnu/stubs.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/gnu/stubs-64.h
  cargo:rerun-if-changed=/usr/lib/llvm-13/lib/clang/13.0.1/include/stdint.h
  cargo:rerun-if-changed=/usr/include/stdint.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/libc-header-start.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/timesize.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/typesizes.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/time64.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wchar.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/stdint-intn.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/types.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/clock_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/time_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/timer_t.h
  cargo:rerun-if-changed=/usr/lib/llvm-13/lib/clang/13.0.1/include/stddef.h
  cargo:rerun-if-changed=/usr/include/endian.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/endian.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/endianness.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/byteswap.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/uintn-identity.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/select.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/select.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/struct_mutex.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h
  cargo:rerun-if-changed=/usr/include/llvm-c-13/llvm-c/ExternC.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/ADT/ArrayRef.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/ADT/Hashing.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/DataTypes.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/ErrorHandling.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/Compiler.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Config/llvm-config.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/new
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/c++config.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/os_defines.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/exception.h
  cargo:rerun-if-changed=/usr/lib/llvm-13/lib/clang/13.0.1/include/__stddef_max_align_t.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/string
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stringfwd.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/memoryfwd.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/char_traits.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_algobase.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/functexcept.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/exception_defines.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/cpp_type_traits.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/type_traits.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/numeric_traits.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_pair.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/move.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/type_traits
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_iterator_base_types.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_iterator_base_funcs.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/concept_check.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/debug/assertions.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_iterator.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/ptr_traits.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/debug/debug.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/predefined_ops.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/postypes.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/cwchar
  cargo:rerun-if-changed=/usr/include/wchar.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/floatn.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/floatn-common.h
  cargo:rerun-if-changed=/usr/lib/llvm-13/lib/clang/13.0.1/include/stdarg.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/wint_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__FILE.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/FILE.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/locale_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/cstdint
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/allocator.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/c++allocator.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/new_allocator.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/localefwd.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/c++locale.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/clocale
  cargo:rerun-if-changed=/usr/include/locale.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/locale.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/iosfwd
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/cctype
  cargo:rerun-if-changed=/usr/include/ctype.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/ostream_insert.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/cxxabi_forced.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_function.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/backward/binders.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/range_access.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/initializer_list
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/atomicity.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/gthr.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/gthr-default.h
  cargo:rerun-if-changed=/usr/include/pthread.h
  cargo:rerun-if-changed=/usr/include/sched.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/sched.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/cpu-set.h
  cargo:rerun-if-changed=/usr/include/time.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/time.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/timex.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/setjmp.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/atomic_word.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/single_threaded.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/alloc_traits.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/alloc_traits.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_construct.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/string_conversions.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/cstdlib
  cargo:rerun-if-changed=/usr/include/stdlib.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/waitflags.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/waitstatus.h
  cargo:rerun-if-changed=/usr/include/alloca.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/stdlib-float.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_abs.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/cstdio
  cargo:rerun-if-changed=/usr/include/stdio.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/stdio_lim.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/cerrno
  cargo:rerun-if-changed=/usr/include/errno.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/errno.h
  cargo:rerun-if-changed=/usr/include/linux/errno.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/errno.h
  cargo:rerun-if-changed=/usr/include/asm-generic/errno.h
  cargo:rerun-if-changed=/usr/include/asm-generic/errno-base.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/error_t.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/charconv.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/functional_hash.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/hash_bytes.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.tcc
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/SwapByteOrder.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/cstddef
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/type_traits.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/utility
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_relops.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/algorithm
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_algo.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/algorithmfwd.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_heap.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_tempbuf.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/uniform_int_dist.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/cassert
  cargo:rerun-if-changed=/usr/include/assert.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/cstring
  cargo:rerun-if-changed=/usr/include/string.h
  cargo:rerun-if-changed=/usr/include/strings.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/tuple
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/array
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/uses_allocator.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/ADT/None.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/ADT/SmallVector.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/ADT/iterator_range.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/MemAlloc.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/refwrap.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/typeinfo
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/iterator
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stream_iterator.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/streambuf_iterator.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/streambuf
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/ios_base.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/locale_classes.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/locale_classes.tcc
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/system_error
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/error_constants.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/stdexcept
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/exception
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/exception_ptr.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/cxxabi_init_exception.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/nested_exception.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/streambuf.tcc
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/limits
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/memory
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_uninitialized.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_raw_storage_iter.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/align.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bit
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/allocated_ptr.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/aligned_buffer.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/concurrence.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_atomic.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/atomic_base.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/atomic_lockfree_defines.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/backward/auto_ptr.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/ADT/STLExtras.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/ADT/Optional.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/ADT/STLForwardCompat.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/ADT/iterator.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Config/abi-breaking.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/vector
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_vector.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_bvector.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/vector.tcc
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/ADT/StringRef.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/ADT/Twine.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/CBindingWrapping.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/Casting.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/ErrorOr.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/AlignOf.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/MemoryBufferRef.h

  --- stderr
  Ignored item __BindgenBitfieldUnit: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored item __BindgenUnionField: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored item aligned_storage_type__bindgen_ty_1: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored item __strictest_alignment: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored item __pair_base: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored item __cow_string: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored item __cow_string__bindgen_ty_1: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored item StringRef_npos: Encountered mutable static data, not yet supported: StringRef_npos
  Ignored item Twine_Child__bindgen_ty_1: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored item ErrorOr__bindgen_ty_1: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored remove_reference_t: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored aligned_union::__strictest: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored aligned_union::type: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored conditional::type: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored aligned_union_t: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored conditional_t: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored pair::first_type: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored pair::second_type: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored pair::_PCCP: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored pair::_PCCFP: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored reference_wrapper::__not_same: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored SmallVectorImpl::SuperClass: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored SmallVectorImpl::iterator: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored SmallVectorImpl::const_iterator: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored SmallVectorImpl::reference: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored SmallVectorImpl::size_type: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored SmallVectorImpl::ValueParamT: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored AlignedCharArrayUnion::AlignedUnion: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored ErrorOr::wrap: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored ErrorOr::storage_type: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored ErrorOr::reference: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored ErrorOr::const_reference: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored ErrorOr::pointer: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored ErrorOr::const_pointer: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored remove_cv: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored remove_reference: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored default_delete: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored SmallVectorImpl: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored Twine::Child: This type is nested within another struct/class with protected or private visibility.
  Ignored AlignedCharArrayUnion: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored ErrorOr: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', <...>/.cargo/registry/src/github.com-1ecc6299db9ec823/autocxx-engine-0.17.2/src/conversion/analysis/fun/implicit_constructors.rs:576:30
  stack backtrace:
     0: rust_begin_unwind
               at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/panicking.rs:498:5
     1: core::panicking::panic_fmt
               at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/panicking.rs:116:14
     2: core::panicking::panic
               at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/panicking.rs:48:5
     3: core::option::Option<T>::unwrap
               at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/option.rs:729:21
     4: autocxx_engine::conversion::analysis::fun::implicit_constructors::find_explicit_items
               at <...>/.cargo/registry/src/github.com-1ecc6299db9ec823/autocxx-engine-0.17.2/src/conversion/analysis/fun/implicit_constructors.rs:573:52
     5: autocxx_engine::conversion::analysis::fun::implicit_constructors::find_constructors_present
               at <...>/.cargo/registry/src/github.com-1ecc6299db9ec823/autocxx-engine-0.17.2/src/conversion/analysis/fun/implicit_constructors.rs:176:21
     6: autocxx_engine::conversion::analysis::fun::FnAnalyzer::add_constructors_present
               at <...>/.cargo/registry/src/github.com-1ecc6299db9ec823/autocxx-engine-0.17.2/src/conversion/analysis/fun/mod.rs:1802:31
     7: autocxx_engine::conversion::analysis::fun::FnAnalyzer::analyze_functions
               at <...>/.cargo/registry/src/github.com-1ecc6299db9ec823/autocxx-engine-0.17.2/src/conversion/analysis/fun/mod.rs:310:27
     8: autocxx_engine::conversion::BridgeConverter::convert
               at <...>/.cargo/registry/src/github.com-1ecc6299db9ec823/autocxx-engine-0.17.2/src/conversion/mod.rs:157:21
     9: autocxx_engine::IncludeCppEngine::generate
               at <...>/.cargo/registry/src/github.com-1ecc6299db9ec823/autocxx-engine-0.17.2/src/lib.rs:387:26
    10: autocxx_engine::parse_file::ParsedFile::resolve_all
               at <...>/.cargo/registry/src/github.com-1ecc6299db9ec823/autocxx-engine-0.17.2/src/parse_file.rs:363:13
    11: autocxx_engine::builder::Builder<CTX>::build_listing_files
               at <...>/.cargo/registry/src/github.com-1ecc6299db9ec823/autocxx-engine-0.17.2/src/builder.rs:224:9
    12: autocxx_engine::builder::Builder<CTX>::build
               at <...>/.cargo/registry/src/github.com-1ecc6299db9ec823/autocxx-engine-0.17.2/src/builder.rs:186:9
    13: autocxx_engine::builder::Builder<CTX>::expect_build
               at <...>/.cargo/registry/src/github.com-1ecc6299db9ec823/autocxx-engine-0.17.2/src/builder.rs:273:9
    14: build_script_build::main
               at ./build.rs:4:17
    15: core::ops::function::FnOnce::call_once
               at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/ops/function.rs:227:5
  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

Specifications

$ rustc --version
rustc 1.59.0 (9d1b2106e 2022-02-23)

$ clang --version
Debian clang version 13.0.1-3+b1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

$ llvm-config --version
13.0.1
adetaylor commented 2 years ago

Thanks for the report. I think this has been fixed in main already - would you mind checking? There is a syntax you can use in your Cargo.toml to ask it to f tch directly from git.

koutheir commented 2 years ago

I set Cargo.toml dependencies to the following instead of the above:

[dependencies]
cxx = { version = "1.0" }
autocxx = { git = "https://github.com/google/autocxx.git", branch = "main" }

[build-dependencies]
autocxx-build = { git = "https://github.com/google/autocxx.git", branch = "main" }

This now causes the following assertion failure:

thread 'main' panicked at 'expected expression', <...>/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.89/src/parse_quote.rs:120:21

And here is the full trace:

$ cargo clean ; RUST_BACKTRACE=1 cargo build
   Compiling proc-macro2 v1.0.36
   Compiling unicode-xid v0.2.2
   Compiling syn v1.0.89
   Compiling version_check v0.9.4
   Compiling libc v0.2.121
   Compiling cfg-if v1.0.0
   Compiling memchr v2.4.1
   Compiling cc v1.0.73
   Compiling log v0.4.14
   Compiling serde v1.0.136
   Compiling either v1.6.1
   Compiling unicode-width v0.1.9
   Compiling glob v0.3.0
   Compiling serde_derive v1.0.136
   Compiling termcolor v1.1.3
   Compiling minimal-lexical v0.2.1
   Compiling regex-syntax v0.6.25
   Compiling rustversion v1.0.6
   Compiling cxxbridge-flags v1.0.66
   Compiling vec_map v0.8.2
   Compiling autocxx-bindgen v0.59.13
   Compiling bitflags v1.3.2
   Compiling strsim v0.8.0
   Compiling humantime v2.1.0
   Compiling ansi_term v0.12.1
   Compiling serde_json v1.0.79
   Compiling heck v0.4.0
   Compiling itoa v1.0.1
   Compiling remove_dir_all v0.5.3
   Compiling fastrand v1.7.0
   Compiling lazy_static v1.4.0
   Compiling shlex v1.1.0
   Compiling lazycell v1.3.0
   Compiling peeking_take_while v0.1.2
   Compiling ryu v1.0.9
   Compiling unindent v0.1.8
   Compiling rustc-hash v1.1.0
   Compiling once_cell v1.10.0
   Compiling libloading v0.7.3
   Compiling textwrap v0.11.0
   Compiling itertools v0.9.0
   Compiling itertools v0.10.3
   Compiling codespan-reporting v0.11.1
   Compiling proc-macro-error-attr v1.0.4
   Compiling proc-macro-error v1.0.4
   Compiling clang-sys v1.3.1
   Compiling indoc v1.0.4
   Compiling quote v1.0.16
   Compiling aho-corasick v0.7.18
   Compiling nom v7.1.1
   Compiling link-cplusplus v1.0.6
   Compiling cxx v1.0.66
   Compiling atty v0.2.14
   Compiling which v4.2.5
   Compiling tempfile v3.3.0
   Compiling clap v2.34.0
   Compiling regex v1.5.5
   Compiling cexpr v0.6.0
   Compiling env_logger v0.9.0
   Compiling cxx-gen v0.7.66
   Compiling aquamarine v0.1.11
   Compiling strum_macros v0.24.0
   Compiling cxxbridge-macro v1.0.66
   Compiling autocxx-parser v0.17.2 (https://github.com/google/autocxx.git?branch=main#a34c133e)
   Compiling moveit v0.4.0
   Compiling autocxx-engine v0.17.2 (https://github.com/google/autocxx.git?branch=main#a34c133e)
   Compiling autocxx-macro v0.17.2 (https://github.com/google/autocxx.git?branch=main#a34c133e)
   Compiling autocxx v0.17.2 (https://github.com/google/autocxx.git?branch=main#a34c133e)
   Compiling autocxx-build v0.17.2 (https://github.com/google/autocxx.git?branch=main#a34c133e)
   Compiling <...> v0.1.0 (<...>)
error: failed to run custom build command for `<...> v0.1.0 (<...>)`

Caused by:
  process didn't exit successfully: `<...>/target/debug/build/<...>-914536bbd21c75f8/build-script-build` (exit status: 101)
  --- stdout
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/MemoryBuffer.h
  cargo:rerun-if-changed=/usr/include/llvm-c-13/llvm-c/Types.h
  cargo:rerun-if-changed=/usr/include/llvm-c-13/llvm-c/DataTypes.h
  cargo:rerun-if-changed=/usr/lib/llvm-13/lib/clang/13.0.1/include/inttypes.h
  cargo:rerun-if-changed=/usr/include/inttypes.h
  cargo:rerun-if-changed=/usr/include/features.h
  cargo:rerun-if-changed=/usr/include/stdc-predef.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/cdefs.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wordsize.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/long-double.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/gnu/stubs.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/gnu/stubs-64.h
  cargo:rerun-if-changed=/usr/lib/llvm-13/lib/clang/13.0.1/include/stdint.h
  cargo:rerun-if-changed=/usr/include/stdint.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/libc-header-start.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/timesize.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/typesizes.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/time64.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/wchar.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/stdint-intn.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/types.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/clock_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/time_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/timer_t.h
  cargo:rerun-if-changed=/usr/lib/llvm-13/lib/clang/13.0.1/include/stddef.h
  cargo:rerun-if-changed=/usr/include/endian.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/endian.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/endianness.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/byteswap.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/uintn-identity.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/select.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/select.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/struct_mutex.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h
  cargo:rerun-if-changed=/usr/include/llvm-c-13/llvm-c/ExternC.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/ADT/ArrayRef.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/ADT/Hashing.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/DataTypes.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/ErrorHandling.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/Compiler.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Config/llvm-config.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/new
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/c++config.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/os_defines.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/exception.h
  cargo:rerun-if-changed=/usr/lib/llvm-13/lib/clang/13.0.1/include/__stddef_max_align_t.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/string
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stringfwd.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/memoryfwd.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/char_traits.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_algobase.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/functexcept.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/exception_defines.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/cpp_type_traits.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/type_traits.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/numeric_traits.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_pair.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/move.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/type_traits
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_iterator_base_types.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_iterator_base_funcs.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/concept_check.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/debug/assertions.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_iterator.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/ptr_traits.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/debug/debug.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/predefined_ops.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/postypes.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/cwchar
  cargo:rerun-if-changed=/usr/include/wchar.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/floatn.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/floatn-common.h
  cargo:rerun-if-changed=/usr/lib/llvm-13/lib/clang/13.0.1/include/stdarg.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/wint_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__FILE.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/FILE.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/locale_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/cstdint
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/allocator.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/c++allocator.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/new_allocator.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/localefwd.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/c++locale.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/clocale
  cargo:rerun-if-changed=/usr/include/locale.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/locale.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/iosfwd
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/cctype
  cargo:rerun-if-changed=/usr/include/ctype.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/ostream_insert.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/cxxabi_forced.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_function.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/backward/binders.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/range_access.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/initializer_list
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/atomicity.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/gthr.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/gthr-default.h
  cargo:rerun-if-changed=/usr/include/pthread.h
  cargo:rerun-if-changed=/usr/include/sched.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/sched.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/cpu-set.h
  cargo:rerun-if-changed=/usr/include/time.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/time.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/timex.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/setjmp.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/atomic_word.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/sys/single_threaded.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/alloc_traits.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/alloc_traits.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_construct.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/string_conversions.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/cstdlib
  cargo:rerun-if-changed=/usr/include/stdlib.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/waitflags.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/waitstatus.h
  cargo:rerun-if-changed=/usr/include/alloca.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/stdlib-float.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_abs.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/cstdio
  cargo:rerun-if-changed=/usr/include/stdio.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/stdio_lim.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/cerrno
  cargo:rerun-if-changed=/usr/include/errno.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/errno.h
  cargo:rerun-if-changed=/usr/include/linux/errno.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/asm/errno.h
  cargo:rerun-if-changed=/usr/include/asm-generic/errno.h
  cargo:rerun-if-changed=/usr/include/asm-generic/errno-base.h
  cargo:rerun-if-changed=/usr/include/x86_64-linux-gnu/bits/types/error_t.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/charconv.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/functional_hash.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/hash_bytes.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.tcc
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/SwapByteOrder.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/cstddef
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/type_traits.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/utility
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_relops.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/algorithm
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_algo.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/algorithmfwd.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_heap.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_tempbuf.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/uniform_int_dist.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/cassert
  cargo:rerun-if-changed=/usr/include/assert.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/cstring
  cargo:rerun-if-changed=/usr/include/string.h
  cargo:rerun-if-changed=/usr/include/strings.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/tuple
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/array
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/uses_allocator.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/ADT/None.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/ADT/SmallVector.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/ADT/iterator_range.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/MemAlloc.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/refwrap.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/typeinfo
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/iterator
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stream_iterator.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/streambuf_iterator.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/streambuf
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/ios_base.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/locale_classes.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/locale_classes.tcc
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/system_error
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/error_constants.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/stdexcept
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/exception
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/exception_ptr.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/cxxabi_init_exception.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/nested_exception.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/streambuf.tcc
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/limits
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/memory
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_uninitialized.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_raw_storage_iter.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/align.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bit
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/allocated_ptr.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/aligned_buffer.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/concurrence.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_atomic.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/atomic_base.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/atomic_lockfree_defines.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/backward/auto_ptr.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/ADT/STLExtras.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/ADT/Optional.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/ADT/STLForwardCompat.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/ADT/iterator.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Config/abi-breaking.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/vector
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_vector.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_bvector.h
  cargo:rerun-if-changed=/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/vector.tcc
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/ADT/StringRef.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/ADT/Twine.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/CBindingWrapping.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/Casting.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/ErrorOr.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/AlignOf.h
  cargo:rerun-if-changed=/usr/include/llvm-13/llvm/Support/MemoryBufferRef.h

  --- stderr
  Ignored item __BindgenBitfieldUnit: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored item __BindgenUnionField: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored item aligned_storage_type__bindgen_ty_1: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored item __strictest_alignment: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored item __pair_base: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored item __cow_string: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored item __cow_string__bindgen_ty_1: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored item StringRef_npos: Encountered mutable static data, not yet supported: StringRef_npos
  Ignored item Twine_Child__bindgen_ty_1: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored item ErrorOr__bindgen_ty_1: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored remove_reference_t: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored aligned_union::__strictest: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored aligned_union::type: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored conditional::type: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored aligned_union_t: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored conditional_t: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored pair::first_type: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored pair::second_type: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored pair::_PCCP: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored pair::_PCCFP: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored reference_wrapper::__not_same: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored SmallVectorImpl::SuperClass: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored SmallVectorImpl::iterator: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored SmallVectorImpl::const_iterator: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored SmallVectorImpl::reference: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored SmallVectorImpl::size_type: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored SmallVectorImpl::ValueParamT: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored AlignedCharArrayUnion::AlignedUnion: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored ErrorOr::wrap: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored ErrorOr::storage_type: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored ErrorOr::reference: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored ErrorOr::const_reference: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored ErrorOr::pointer: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored ErrorOr::const_pointer: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored remove_cv: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored remove_reference: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored default_delete: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored SmallVectorImpl: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored Twine::Child: This type is nested within another struct/class with protected or private visibility.
  Ignored AlignedCharArrayUnion: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored ErrorOr: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored pair_alloc_autocxx_wrapper: This type is templated, so we can't generate bindings. We will instead generate bindings for each instantiation.
  Ignored pair_free_autocxx_wrapper: This type is templated, so we can't generate bindings. We will instead generate bindings for each instantiation.
  Ignored reference_wrapper_alloc_autocxx_wrapper: This type is templated, so we can't generate bindings. We will instead generate bindings for each instantiation.
  Ignored reference_wrapper_free_autocxx_wrapper: This type is templated, so we can't generate bindings. We will instead generate bindings for each instantiation.
  Ignored operator_equals: autocxx does not know how to generate bindings to operator=
  Ignored name: This type was not on the allowlist, so we are not generating methods for it.
  Ignored _M_message: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored message: This type was not on the allowlist, so we are not generating methods for it.
  Ignored default_error_condition: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored equivalent: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored equivalent: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored operator_equals: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored operator_equals: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored __cow_string: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored __cow_string: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored __cow_string: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored __cow_string: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored __cow_string_destructor: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored assign: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored clear: This type was not on the allowlist, so we are not generating methods for it.
  Ignored value: This type was not on the allowlist, so we are not generating methods for it.
  Ignored category: This type was not on the allowlist, so we are not generating methods for it.
  Ignored default_error_condition: This type was not on the allowlist, so we are not generating methods for it.
  Ignored message: This type was not on the allowlist, so we are not generating methods for it.
  Ignored error_code: This type was not on the allowlist, so we are not generating methods for it.
  Ignored error_code: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored assign: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored clear: This type was not on the allowlist, so we are not generating methods for it.
  Ignored value: This type was not on the allowlist, so we are not generating methods for it.
  Ignored category: This type was not on the allowlist, so we are not generating methods for it.
  Ignored message: This type was not on the allowlist, so we are not generating methods for it.
  Ignored error_condition: This type was not on the allowlist, so we are not generating methods for it.
  Ignored error_condition: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored iterator_range_alloc_autocxx_wrapper: This type is templated, so we can't generate bindings. We will instead generate bindings for each instantiation.
  Ignored iterator_range_free_autocxx_wrapper: This type is templated, so we can't generate bindings. We will instead generate bindings for each instantiation.
  Ignored compareMemory: This type was not on the allowlist, so we are not generating methods for it.
  Ignored strLen: This type was not on the allowlist, so we are not generating methods for it.
  Ignored begin: This type was not on the allowlist, so we are not generating methods for it.
  Ignored end: This type was not on the allowlist, so we are not generating methods for it.
  Ignored bytes_begin: This type was not on the allowlist, so we are not generating methods for it.
  Ignored bytes_end: This type was not on the allowlist, so we are not generating methods for it.
  Ignored bytes: This type was not on the allowlist, so we are not generating methods for it.
  Ignored data: This type was not on the allowlist, so we are not generating methods for it.
  Ignored empty: This type was not on the allowlist, so we are not generating methods for it.
  Ignored size: This type was not on the allowlist, so we are not generating methods for it.
  Ignored front: This type was not on the allowlist, so we are not generating methods for it.
  Ignored back: This type was not on the allowlist, so we are not generating methods for it.
  Ignored equals: This type was not on the allowlist, so we are not generating methods for it.
  Ignored equals_insensitive: This type was not on the allowlist, so we are not generating methods for it.
  Ignored compare: This type was not on the allowlist, so we are not generating methods for it.
  Ignored compare_insensitive: This type was not on the allowlist, so we are not generating methods for it.
  Ignored compare_numeric: This type was not on the allowlist, so we are not generating methods for it.
  Ignored edit_distance: This type was not on the allowlist, so we are not generating methods for it.
  Ignored str: This type was not on the allowlist, so we are not generating methods for it.
  Ignored startswith: This type was not on the allowlist, so we are not generating methods for it.
  Ignored startswith_insensitive: This type was not on the allowlist, so we are not generating methods for it.
  Ignored endswith: This type was not on the allowlist, so we are not generating methods for it.
  Ignored endswith_insensitive: This type was not on the allowlist, so we are not generating methods for it.
  Ignored find: This type was not on the allowlist, so we are not generating methods for it.
  Ignored find_insensitive: This type was not on the allowlist, so we are not generating methods for it.
  Ignored find_if: Encountered type not yet known by autocxx: [u64 ; 2usize]
  Ignored find_if_not: Encountered type not yet known by autocxx: [u64 ; 2usize]
  Ignored find: This type was not on the allowlist, so we are not generating methods for it.
  Ignored find_insensitive: This type was not on the allowlist, so we are not generating methods for it.
  Ignored rfind: This type was not on the allowlist, so we are not generating methods for it.
  Ignored rfind_insensitive: This type was not on the allowlist, so we are not generating methods for it.
  Ignored rfind: This type was not on the allowlist, so we are not generating methods for it.
  Ignored rfind_insensitive: This type was not on the allowlist, so we are not generating methods for it.
  Ignored find_first_of: This type was not on the allowlist, so we are not generating methods for it.
  Ignored find_first_of: This type was not on the allowlist, so we are not generating methods for it.
  Ignored find_first_not_of: This type was not on the allowlist, so we are not generating methods for it.
  Ignored find_first_not_of: This type was not on the allowlist, so we are not generating methods for it.
  Ignored find_last_of: This type was not on the allowlist, so we are not generating methods for it.
  Ignored find_last_of: This type was not on the allowlist, so we are not generating methods for it.
  Ignored find_last_not_of: This type was not on the allowlist, so we are not generating methods for it.
  Ignored find_last_not_of: This type was not on the allowlist, so we are not generating methods for it.
  Ignored contains: This type was not on the allowlist, so we are not generating methods for it.
  Ignored contains: This type was not on the allowlist, so we are not generating methods for it.
  Ignored contains_insensitive: This type was not on the allowlist, so we are not generating methods for it.
  Ignored contains_insensitive: This type was not on the allowlist, so we are not generating methods for it.
  Ignored count: This type was not on the allowlist, so we are not generating methods for it.
  Ignored count: This type was not on the allowlist, so we are not generating methods for it.
  Ignored getAsInteger: This type was not on the allowlist, so we are not generating methods for it.
  Ignored getAsDouble: This type was not on the allowlist, so we are not generating methods for it.
  Ignored lower: This type was not on the allowlist, so we are not generating methods for it.
  Ignored upper: This type was not on the allowlist, so we are not generating methods for it.
  Ignored substr: This type was not on the allowlist, so we are not generating methods for it.
  Ignored take_front: This type was not on the allowlist, so we are not generating methods for it.
  Ignored take_back: This type was not on the allowlist, so we are not generating methods for it.
  Ignored take_while: Encountered type not yet known by autocxx: [u64 ; 2usize]
  Ignored take_until: Encountered type not yet known by autocxx: [u64 ; 2usize]
  Ignored drop_front: This type was not on the allowlist, so we are not generating methods for it.
  Ignored drop_back: This type was not on the allowlist, so we are not generating methods for it.
  Ignored drop_while: Encountered type not yet known by autocxx: [u64 ; 2usize]
  Ignored drop_until: Encountered type not yet known by autocxx: [u64 ; 2usize]
  Ignored consume_front: This type was not on the allowlist, so we are not generating methods for it.
  Ignored consume_front_insensitive: This type was not on the allowlist, so we are not generating methods for it.
  Ignored consume_back: This type was not on the allowlist, so we are not generating methods for it.
  Ignored consume_back_insensitive: This type was not on the allowlist, so we are not generating methods for it.
  Ignored slice: This type was not on the allowlist, so we are not generating methods for it.
  Ignored split: This type was not on the allowlist, so we are not generating methods for it.
  Ignored split: This type was not on the allowlist, so we are not generating methods for it.
  Ignored rsplit: This type was not on the allowlist, so we are not generating methods for it.
  Ignored split: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored split: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored rsplit: This type was not on the allowlist, so we are not generating methods for it.
  Ignored ltrim: This type was not on the allowlist, so we are not generating methods for it.
  Ignored ltrim: This type was not on the allowlist, so we are not generating methods for it.
  Ignored rtrim: This type was not on the allowlist, so we are not generating methods for it.
  Ignored rtrim: This type was not on the allowlist, so we are not generating methods for it.
  Ignored trim: This type was not on the allowlist, so we are not generating methods for it.
  Ignored trim: This type was not on the allowlist, so we are not generating methods for it.
  Ignored StringRef: This type was not on the allowlist, so we are not generating methods for it.
  Ignored StringRef: This function was marked =delete
  Ignored StringRef: This type was not on the allowlist, so we are not generating methods for it.
  Ignored StringRef: This type was not on the allowlist, so we are not generating methods for it.
  Ignored StringRef: This type was not on the allowlist, so we are not generating methods for it.
  Ignored isNull: This type was not on the allowlist, so we are not generating methods for it.
  Ignored isEmpty: This type was not on the allowlist, so we are not generating methods for it.
  Ignored isNullary: This type was not on the allowlist, so we are not generating methods for it.
  Ignored isUnary: This type was not on the allowlist, so we are not generating methods for it.
  Ignored isBinary: This type was not on the allowlist, so we are not generating methods for it.
  Ignored isValid: This type was not on the allowlist, so we are not generating methods for it.
  Ignored getLHSKind: This type was not on the allowlist, so we are not generating methods for it.
  Ignored getRHSKind: This type was not on the allowlist, so we are not generating methods for it.
  Ignored printOneChild: This type was not on the allowlist, so we are not generating methods for it.
  Ignored printOneChildRepr: This type was not on the allowlist, so we are not generating methods for it.
  Ignored operator_equals: autocxx does not know how to generate bindings to operator=
  Ignored createNull: This type was not on the allowlist, so we are not generating methods for it.
  Ignored utohexstr: This type was not on the allowlist, so we are not generating methods for it.
  Ignored isTriviallyEmpty: This type was not on the allowlist, so we are not generating methods for it.
  Ignored isSingleStringRef: This type was not on the allowlist, so we are not generating methods for it.
  Ignored concat: This type was not on the allowlist, so we are not generating methods for it.
  Ignored str: This type was not on the allowlist, so we are not generating methods for it.
  Ignored toVector: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored getSingleStringRef: This type was not on the allowlist, so we are not generating methods for it.
  Ignored toStringRef: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored toNullTerminatedStringRef: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored print: This type was not on the allowlist, so we are not generating methods for it.
  Ignored dump: This type was not on the allowlist, so we are not generating methods for it.
  Ignored printRepr: This type was not on the allowlist, so we are not generating methods for it.
  Ignored dumpRepr: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This function was marked =delete
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored getBuffer: This type was not on the allowlist, so we are not generating methods for it.
  Ignored getBufferIdentifier: This type was not on the allowlist, so we are not generating methods for it.
  Ignored getBufferStart: This type was not on the allowlist, so we are not generating methods for it.
  Ignored getBufferEnd: This type was not on the allowlist, so we are not generating methods for it.
  Ignored getBufferSize: This type was not on the allowlist, so we are not generating methods for it.
  Ignored MemoryBufferRef: This type was not on the allowlist, so we are not generating methods for it.
  Ignored MemoryBufferRef: This type was not on the allowlist, so we are not generating methods for it.
  Ignored MemoryBufferRef: This type was not on the allowlist, so we are not generating methods for it.
  Ignored operator_equals: autocxx does not know how to generate bindings to operator=
  Ignored getFile: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored getFileAsStream: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored getOpenFileSlice: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored getOpenFile: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored getSTDIN: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored getFileOrSTDIN: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored getFileSlice: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored type: This type was not on the allowlist, so we are not generating methods for it.
  Ignored pair_autocxx_wrapper: This type is templated, so we can't generate bindings. We will instead generate bindings for each instantiation.
  Ignored new_synthetic_move_ctor: This type is templated, so we can't generate bindings. We will instead generate bindings for each instantiation.
  Ignored new_synthetic_const_copy_ctor: This type is templated, so we can't generate bindings. We will instead generate bindings for each instantiation.
  Ignored reference_wrapper_autocxx_wrapper: This type is templated, so we can't generate bindings. We will instead generate bindings for each instantiation.
  Ignored iterator_range_autocxx_wrapper: This type is templated, so we can't generate bindings. We will instead generate bindings for each instantiation.
  Ignored error_code: This type was not on the allowlist, so we are not generating methods for it.
  Ignored error_code: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored error_condition: This type was not on the allowlist, so we are not generating methods for it.
  Ignored error_condition: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored StringRef: This type was not on the allowlist, so we are not generating methods for it.
  Ignored StringRef: This function was marked =delete
  Ignored StringRef: This type was not on the allowlist, so we are not generating methods for it.
  Ignored StringRef: This type was not on the allowlist, so we are not generating methods for it.
  Ignored StringRef: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This function was marked =delete
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This function or method uses a type where one of the template parameters was incomprehensible to bindgen/autocxx - probably because it uses template specialization.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored Twine: This type was not on the allowlist, so we are not generating methods for it.
  Ignored MemoryBufferRef: This type was not on the allowlist, so we are not generating methods for it.
  Ignored MemoryBufferRef: This type was not on the allowlist, so we are not generating methods for it.
  Ignored MemoryBufferRef: This type was not on the allowlist, so we are not generating methods for it.
  Ignored __int64_t: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored __uint64_t: Names containing __ are reserved by C++ so not acceptable to cxx
  Ignored remove_cv::type: The item name 'type' is a reserved word in Rust.
  Ignored remove_reference::type: The item name 'type' is a reserved word in Rust.
  Ignored aligned_storage::type: The item name 'type' is a reserved word in Rust.
  Ignored reference_wrapper::type: The item name 'type' is a reserved word in Rust.
  Ignored size_t: This item name is used in multiple namespaces. At present, autocxx and cxx allow only one type of a given name. This limitation will be fixed in future.
  Ignored size_t: This item name is used in multiple namespaces. At present, autocxx and cxx allow only one type of a given name. This limitation will be fixed in future.
  thread 'main' panicked at 'expected expression', <...>/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.89/src/parse_quote.rs:120:21
  stack backtrace:
     0: rust_begin_unwind
               at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/panicking.rs:498:5
     1: core::panicking::panic_fmt
               at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/panicking.rs:116:14
     2: core::panicking::panic_display
               at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/panicking.rs:72:5
     3: syn::parse_quote::parse
               at <...>/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.89/src/parse_quote.rs:120:21
     4: autocxx_engine::conversion::codegen_rs::fun_codegen::FnGenerator::generate_method_impl
               at <...>/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/conversion/codegen_rs/fun_codegen.rs:281:36
     5: autocxx_engine::conversion::codegen_rs::fun_codegen::gen_function
               at <...>/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/conversion/codegen_rs/fun_codegen.rs:139:35
     6: autocxx_engine::conversion::codegen_rs::RsCodeGenerator::generate_rs_for_api
               at <...>/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/conversion/codegen_rs/mod.rs:483:52
     7: autocxx_engine::conversion::codegen_rs::RsCodeGenerator::rs_codegen::{{closure}}
               at <...>/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/conversion/codegen_rs/mod.rs:176:27
     8: core::iter::adapters::map::map_fold::{{closure}}
               at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/iter/adapters/map.rs:84:28
     9: core::iter::traits::iterator::Iterator::fold
               at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/iter/traits/iterator.rs:2171:21
    10: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
               at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/iter/adapters/map.rs:124:9
    11: <(ExtendA,ExtendB) as core::iter::traits::collect::Extend<(A,B)>>::extend
               at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/iter/traits/collect.rs:410:9
    12: core::iter::traits::iterator::Iterator::unzip
               at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/iter/traits/iterator.rs:2963:9
    13: autocxx_engine::conversion::codegen_rs::RsCodeGenerator::rs_codegen
               at <...>/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/conversion/codegen_rs/mod.rs:171:91
    14: autocxx_engine::conversion::codegen_rs::RsCodeGenerator::generate_rs_code
               at <...>/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/conversion/codegen_rs/mod.rs:159:9
    15: autocxx_engine::conversion::BridgeConverter::convert
               at <...>/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/conversion/mod.rs:193:26
    16: autocxx_engine::IncludeCppEngine::generate
               at <...>/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/lib.rs:387:26
    17: autocxx_engine::parse_file::ParsedFile::resolve_all
               at <...>/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/parse_file.rs:363:13
    18: autocxx_engine::builder::Builder<CTX>::build_listing_files
               at <...>/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/builder.rs:224:9
    19: autocxx_engine::builder::Builder<CTX>::build
               at <...>/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/builder.rs:186:9
    20: autocxx_engine::builder::Builder<CTX>::expect_build
               at <...>/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/builder.rs:273:9
    21: build_script_build::main
               at ./build.rs:4:17
    22: core::ops::function::FnOnce::call_once
               at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/ops/function.rs:227:5
  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
koutheir commented 2 years ago

Please let me know if you need to see the content of other intermediary files.

adetaylor commented 2 years ago

Thanks for the report. With a little tweaking I was able to reproduce the problem and this one looks like the root cause should be fairly easy to fix (fingers crossed). I also ran across a separate problem described in #931, which probably won't be so easy.

koutheir commented 2 years ago

This issue is still present. Now I get this assertion failure:

  thread 'main' panicked at 'expected expression', /home/koutheir/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.89/src/parse_quote.rs:120:21
  stack backtrace:
     0: rust_begin_unwind
               at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/panicking.rs:498:5
     1: core::panicking::panic_fmt
               at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/panicking.rs:116:14
     2: core::panicking::panic_display
               at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/panicking.rs:72:5
     3: syn::parse_quote::parse
               at /home/koutheir/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.89/src/parse_quote.rs:120:21
     4: autocxx_engine::conversion::codegen_rs::fun_codegen::FnGenerator::generate_method_impl
               at /home/koutheir/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/conversion/codegen_rs/fun_codegen.rs:281:36
     5: autocxx_engine::conversion::codegen_rs::fun_codegen::gen_function
               at /home/koutheir/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/conversion/codegen_rs/fun_codegen.rs:139:35
     6: autocxx_engine::conversion::codegen_rs::RsCodeGenerator::generate_rs_for_api
               at /home/koutheir/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/conversion/codegen_rs/mod.rs:483:52
     7: autocxx_engine::conversion::codegen_rs::RsCodeGenerator::rs_codegen::{{closure}}
               at /home/koutheir/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/conversion/codegen_rs/mod.rs:176:27
     8: core::iter::adapters::map::map_fold::{{closure}}
               at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/iter/adapters/map.rs:84:28
     9: core::iter::traits::iterator::Iterator::fold
               at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/iter/traits/iterator.rs:2171:21
    10: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
               at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/iter/adapters/map.rs:124:9
    11: <(ExtendA,ExtendB) as core::iter::traits::collect::Extend<(A,B)>>::extend
               at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/iter/traits/collect.rs:410:9
    12: core::iter::traits::iterator::Iterator::unzip
               at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/iter/traits/iterator.rs:2963:9
    13: autocxx_engine::conversion::codegen_rs::RsCodeGenerator::rs_codegen
               at /home/koutheir/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/conversion/codegen_rs/mod.rs:171:91
    14: autocxx_engine::conversion::codegen_rs::RsCodeGenerator::generate_rs_code
               at /home/koutheir/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/conversion/codegen_rs/mod.rs:159:9
    15: autocxx_engine::conversion::BridgeConverter::convert
               at /home/koutheir/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/conversion/mod.rs:193:26
    16: autocxx_engine::IncludeCppEngine::generate
               at /home/koutheir/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/lib.rs:387:26
    17: autocxx_engine::parse_file::ParsedFile::resolve_all
               at /home/koutheir/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/parse_file.rs:363:13
    18: autocxx_engine::builder::Builder<CTX>::build_listing_files
               at /home/koutheir/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/builder.rs:224:9
    19: autocxx_engine::builder::Builder<CTX>::build
               at /home/koutheir/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/builder.rs:186:9
    20: autocxx_engine::builder::Builder<CTX>::expect_build
               at /home/koutheir/.cargo/git/checkouts/autocxx-d68523a30590bac8/a34c133/engine/src/builder.rs:273:9
    21: build_script_build::main
               at ./build.rs:4:17
    22: core::ops::function::FnOnce::call_once
               at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/ops/function.rs:227:5
koutheir commented 2 years ago

@adetaylor, are you continuing to fix this problem in another issue? If that is not the case, then this issue should remain open because it is still not fixed.

adetaylor commented 2 years ago

It looks to me like you haven't updated to the code I fixed a few minutes ago, but I'll reopen and check later.

It wouldn't surprise me if you see different issues though - I plan to dig into your LLVM MemoryBuffer case more thoroughly later and see if there are other problems that need to be fixed (see #932).

koutheir commented 2 years ago

I performed a cargo fetch, and another cargo clean ; cargo build. Should I do something else to fetch the changes you made to the main branch?

koutheir commented 2 years ago

For reference, after performing a cargo update, I got your changes. Thank you very much, @adetaylor. I think this issue is fixed.

adetaylor commented 2 years ago

Great, thanks for confirming. I am starting the process of releasing autocxx 0.17.3.