[PATCH] D136815: [clang][Interp] Unify visiting variable declarations
Shafik Yaghmour via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Oct 31 09:06:24 PDT 2022
shafik added inline comments.
================
Comment at: clang/lib/AST/Interp/ByteCodeExprGen.h:282
+ bool isGlobalDecl(const VarDecl *VD) const {
+ return !VD->hasLocalStorage() || VD->isConstexpr();
+ }
----------------
tbaeder wrote:
> shafik wrote:
> > Why not `hasGlobalStorage()`?
> >
> > Also what is the logic behind `isConstexpr()` check?
> Didn't know `isGlobalStorage()` existed ;)
>
> Constexpr local variables can be handled like global ones, can't they? That was the logic behind it, nothing else. We can save ourselves the hassle of local variables in that case.
I think I am missing a level of logic here. I don't think of constant expressions as needing storage nor do I think of them as global variables.
So can you take a step back and explain how this fits in the bigger picture?
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D136815/new/
https://reviews.llvm.org/D136815
More information about the cfe-commits
mailing list