================
@@ -1111,13 +1111,18 @@ static CanThrowResult canDynamicCastThrow(const
CXXDynamicCastExpr *DC) {
}
static CanThrowResult canTypeidThrow(Sema &S, const CXXTypeidExpr *DC) {
- if (DC->isTypeOperand())
+ // Operand is not evaluated, cannot possibly throw
+ if (!DC->isPotentiallyEvaluated())
return CT_Cannot;
if (DC->isValueDependent())
return CT_Dependent;
- return DC->hasNullCheck() ? CT_Can : CT_Cannot;
+ // Can throw std::bad_typeid if a nullptr is dereferenced
----------------
tbaederr wrote:
```suggestion
// Can throw std::bad_typeid if a nullptr is dereferenced.
```
https://github.com/llvm/llvm-project/pull/95846
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits