[PATCH] D148206: [clang] Do not crash after suggesting typo correction to constexpr if condition

Aaron Ballman via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Apr 13 07:57:22 PDT 2023


aaron.ballman added inline comments.


================
Comment at: clang/include/clang/Sema/Sema.h:12855
+                        !Condition.get()->isValueDependent() &&
+                        Condition.get()->isIntegerConstantExpr(S.Context)),
           KnownValue(HasKnownValue &&
----------------
Oof, this adds quite a bit of expense to this constructor -- `isIntegerConstantExpr()` is implemented by evaluating the constant expression and throwing away the computed result... which we then recompute when setting `KnownValue` one line later. It'd be better to only do this computation once and use the computed value to initialize both members.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148206/new/

https://reviews.llvm.org/D148206



More information about the cfe-commits mailing list