[PATCH] D156453: [clang][Interp] Create only globals when initializing a global variable

2023-10-19 Thread Timm Bäder via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG311f725d9a6f: [clang][Interp] Create only globals when initializing a global variable (authored by tbaeder). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D15

[PATCH] D156453: [clang][Interp] Create only globals when initializing a global variable

2023-10-17 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman accepted this revision. aaron.ballman added a comment. This revision is now accepted and ready to land. LGTM Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:1213 std::optional SubExprT = classify(SubExpr); - if (E->getStorageDuration() == SD_Static) { +

[PATCH] D156453: [clang][Interp] Create only globals when initializing a global variable

2023-10-17 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:1213 std::optional SubExprT = classify(SubExpr); - if (E->getStorageDuration() == SD_Static) { + bool IsStatic = E->getStorageDuration() == SD_Static; + if (GlobalDecl || IsStatic) { ---

[PATCH] D156453: [clang][Interp] Create only globals when initializing a global variable

2023-10-16 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:1213 std::optional SubExprT = classify(SubExpr); - if (E->getStorageDuration() == SD_Static) { + bool IsStatic = E->getStorageDuration() == SD_Static; + if (GlobalDecl || IsStatic) { -

[PATCH] D156453: [clang][Interp] Create only globals when initializing a global variable

2023-10-15 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:1213 std::optional SubExprT = classify(SubExpr); - if (E->getStorageDuration() == SD_Static) { + bool IsStatic = E->getStorageDuration() == SD_Static; + if (GlobalDecl || IsStatic) { ---

[PATCH] D156453: [clang][Interp] Create only globals when initializing a global variable

2023-10-15 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 557713. tbaeder marked an inline comment as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D156453/new/ https://reviews.llvm.org/D156453 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeExprGen.h clang/test/AST/I

[PATCH] D156453: [clang][Interp] Create only globals when initializing a global variable

2023-10-13 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added a comment. In D156453#4652939 , @tbaeder wrote: > It gets interpreted as a constant expression in > `Sema::CheckCompleteVariableInitialization()`: > > * #0: Context.cpp:73 > clang::interp::Context::evaluateAsInitializer(this=0x000

[PATCH] D156453: [clang][Interp] Create only globals when initializing a global variable

2023-10-13 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D156453/new/ https://reviews.llvm.org/D156453 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D156453: [clang][Interp] Create only globals when initializing a global variable

2023-10-04 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. It gets interpreted as a constant expression in `Sema::CheckCompleteVariableInitialization()`: * #0: Context.cpp:73 clang::interp::Context::evaluateAsInitializer(this=0x60805d20, Parent=0x7fff6dc2a8d0, VD=0x62173b48, Result=0x62199e90)

[PATCH] D156453: [clang][Interp] Create only globals when initializing a global variable

2023-10-04 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added a comment. I guess I'm a bit lost as to what the code example has to do with the constant expression interpreter in the first place. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D156453/new/ https://reviews.llvm.org/D156453 __

[PATCH] D156453: [clang][Interp] Create only globals when initializing a global variable

2023-10-02 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D156453/new/ https://reviews.llvm.org/D156453 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D156453: [clang][Interp] Create only globals when initializing a global variable

2023-09-25 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D156453/new/ https://reviews.llvm.org/D156453 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D156453: [clang][Interp] Create only globals when initializing a global variable

2023-09-18 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D156453/new/ https://reviews.llvm.org/D156453 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D156453: [clang][Interp] Create only globals when initializing a global variable

2023-09-11 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D156453/new/ https://reviews.llvm.org/D156453 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D156453: [clang][Interp] Create only globals when initializing a global variable

2023-08-31 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D156453/new/ https://reviews.llvm.org/D156453 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D156453: [clang][Interp] Create only globals when initializing a global variable

2023-08-10 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D156453/new/ https://reviews.llvm.org/D156453 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D156453: [clang][Interp] Create only globals when initializing a global variable

2023-08-03 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D156453/new/ https://reviews.llvm.org/D156453 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D156453: [clang][Interp] Create only globals when initializing a global variable

2023-07-27 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, shafik, cor3ntin. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. For this code: struct O { int &&j; }; O