Clang crashes when parsing operator== for an enum parameter with a bool enum base and no enumerator list · Issue #56560 · llvm/llvm-project (original) (raw)
Navigation Menu
- Explore
- Pricing
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Description
llvm commit I have checked out where this is broken (not necessarily the cause): 4a40fa8
Repro steps
test.cpp:
enum Foo : bool;
bool bar(Foo a, Foo b) { return a == b; }
- Build Clang with
LLVM_ENABLE_ASSERTIONS:BOOL=ON
- Run
clang++ -c test.cpp -o test
Expected result:
clang should compile the file
Actual result:
clang crashes with the assertion
clang++: /path/to/llvm/repo/llvm-project/clang/lib/AST/Expr.cpp:1836: bool clang::CastExpr::CastConsistency() const: Assertion `!getType()->isBooleanType() && "unheralded conversion to bool"' failed.
The full stacktrace is in the attached stacktrace.txt.
(I had to change the extension of the .cpp
file and the .sh
file as GitHub doesn't support those file type extensions as attachments)