aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Sema/MultiplexExternalSemaSource.cpp
diff options
context:
space:
mode:
authorHenrik G. Olsson <hnrklssn@gmail.com>2025-06-23 20:20:15 -0700
committerGitHub <noreply@github.com>2025-06-23 20:20:15 -0700
commit37eb465710b45e0e56e6e7f662fd6b252bf0d309 (patch)
treed9ddfcc7efbc32ed8a6ab234f07cf25323e51eb4 /clang/lib/Sema/MultiplexExternalSemaSource.cpp
parent0fcced7d791f5be3f5f9fa6e561854716b11d4e8 (diff)
downloadllvm-37eb465710b45e0e56e6e7f662fd6b252bf0d309.zip
llvm-37eb465710b45e0e56e6e7f662fd6b252bf0d309.tar.gz
llvm-37eb465710b45e0e56e6e7f662fd6b252bf0d309.tar.bz2
Reland "[Modules] Record whether VarDecl initializers contain side effects" (#145447)
This reverts commit 329ae86 and adds an early exit for EvaluateInPlace when the expression's type is null.
Diffstat (limited to 'clang/lib/Sema/MultiplexExternalSemaSource.cpp')
-rw-r--r--clang/lib/Sema/MultiplexExternalSemaSource.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/Sema/MultiplexExternalSemaSource.cpp b/clang/lib/Sema/MultiplexExternalSemaSource.cpp
index fbfb242..9f19f13 100644
--- a/clang/lib/Sema/MultiplexExternalSemaSource.cpp
+++ b/clang/lib/Sema/MultiplexExternalSemaSource.cpp
@@ -115,6 +115,14 @@ bool MultiplexExternalSemaSource::wasThisDeclarationADefinition(
return false;
}
+bool MultiplexExternalSemaSource::hasInitializerWithSideEffects(
+ const VarDecl *VD) const {
+ for (const auto &S : Sources)
+ if (S->hasInitializerWithSideEffects(VD))
+ return true;
+ return false;
+}
+
bool MultiplexExternalSemaSource::FindExternalVisibleDeclsByName(
const DeclContext *DC, DeclarationName Name,
const DeclContext *OriginalDC) {