[PATCH] D158502: [clang][Interp] Actually consider ConstantExpr result
Timm Bäder via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Aug 22 21:41:59 PDT 2023
tbaeder added inline comments.
================
Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:767-772
+ std::optional<PrimType> T = classify(E->getType());
+ if (T && E->hasAPValueResult() &&
+ this->visitAPValue(E->getAPValueResult(), *T, E))
+ return true;
+
return this->delegate(E->getSubExpr());
----------------
cor3ntin wrote:
> so if `visitAPValue` fails, we continue. Couldn't that lead to duplicated diagnostics? Shouldn't we simply return whatever `visitAPValue` returns unconditionally?
I did it this way because we don't handle all types of APValues in `visitAPValue()` (think lvalues with an lvalue path), so in those cases we need to visit the expression instead. If there is an `APValue` we're visting, we're not emitting any diagnostics I think.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D158502/new/
https://reviews.llvm.org/D158502
More information about the cfe-commits
mailing list