diff options
author | Henrik G. Olsson <hnrklssn@gmail.com> | 2025-06-23 20:20:15 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-06-23 20:20:15 -0700 |
commit | 37eb465710b45e0e56e6e7f662fd6b252bf0d309 (patch) | |
tree | d9ddfcc7efbc32ed8a6ab234f07cf25323e51eb4 /clang/lib/Sema/MultiplexExternalSemaSource.cpp | |
parent | 0fcced7d791f5be3f5f9fa6e561854716b11d4e8 (diff) | |
download | llvm-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.cpp | 8 |
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) { |