-
Notifications
You must be signed in to change notification settings - Fork 773
Open
Description
bindgen panics when it encounters a character literal with a Unicode escape sequence representing a codepoint greater than 128.
Input C/C++ Header
#define OK 'a'
#define PANIC_CHAR_16 u'\uAC00'
#define PANIC_CHAR_32 U'\uAC00'Bindgen Invocation
$ bindgen input.h -- -x c++
$ cargo run -p bindgen-cli -- input.h -- -x c++
Actual Results
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `3`,
right: `1`', /Users/paxbun/.cargo/registry/src/github.com-1ecc6299db9ec823/bindgen-0.60.1/src/ir/var.rs:235:33
stack backtrace:
0: _rust_begin_unwind
1: core::panicking::panic_fmt
2: core::panicking::assert_failed_inner
3: core::panicking::assert_failed
4: <bindgen::ir::var::Var as bindgen::parse::ClangSubItemParser>::parse
5: <bindgen::ir::item::Item as bindgen::parse::ClangItemParser>::parse
6: bindgen::parse_one
7: bindgen::clang::visit_children
8: __ZN5clang8cxcursor13CursorVisitor5VisitE8CXCursorb
9: __ZN5clang8cxcursor13CursorVisitor25visitPreprocessedEntitiesINS_19PreprocessingRecord8iteratorEEEbT_S5_RS3_NS_6FileIDE
10: __ZN5clang8cxcursor13CursorVisitor13VisitChildrenE8CXCursor
11: _clang_visitChildren
12: clang_sys::clang_visitChildren
13: bindgen::Builder::generate
14: std::panicking::try
15: bindgen::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Expected Results
/* automatically generated by rust-bindgen 0.64.0 */
pub const OK: u8 = 97u8;
pub const PANIC_CHAR_16: u16 = 44032; // u16 because its counterpart is char16_t
pub const PANIC_CHAR_32: u32 = 44032; // u32 similarlyMetadata
Metadata
Assignees
Labels
No labels