[PATCH] D85601: Fixes an assertion when IntRange processes a throw expression
Richard Smith - zygoloid via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sun Aug 9 13:11:25 PDT 2020
rsmith added a comment.
Did this only crash during error recovery before, or also for your `void g()` example? If we were only crashing in error recovery, that would suggest that error recovery was producing a bad AST, and perhaps we should be fixing this elsewhere.
================
Comment at: clang/lib/Sema/SemaChecking.cpp:10164
const BuiltinType *BT = cast<BuiltinType>(T);
- assert(BT->isInteger());
+ if (!BT->isInteger()) {
+ // This can happen in a conditional expression with a throw statement
----------------
Can we handle this in code that's specific to conditional expressions instead? Presumably somewhere higher up in the call graph, some code is assuming that it can recurse from a conditional expression to its subexpressions, and that assumption is wrong.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D85601/new/
https://reviews.llvm.org/D85601
More information about the cfe-commits
mailing list