Author: Timm Baeder Date: 2026-07-26T08:14:28+02:00 New Revision: 3fd07e32350c4f15a9377466ab4cffb042a1ecb7
URL: https://github.com/llvm/llvm-project/commit/3fd07e32350c4f15a9377466ab4cffb042a1ecb7 DIFF: https://github.com/llvm/llvm-project/commit/3fd07e32350c4f15a9377466ab4cffb042a1ecb7.diff LOG: [clang][bytecode] Only override constant-context state if we have an EvalEmitter (#211475) This does not make sense when emitting bytecode, as the bytecode would just contain a `PushCC`/`PopCC` pair with nothing in between. Added: Modified: clang/lib/AST/ByteCode/Compiler.cpp Removed: ################################################################################ diff --git a/clang/lib/AST/ByteCode/Compiler.cpp b/clang/lib/AST/ByteCode/Compiler.cpp index 35667a9132680..337f65d02ef50 100644 --- a/clang/lib/AST/ByteCode/Compiler.cpp +++ b/clang/lib/AST/ByteCode/Compiler.cpp @@ -8276,12 +8276,16 @@ bool Compiler<Emitter>::visitDeclRef(const ValueDecl *D, const Expr *E) { bool IsConstexprUnknown = true) -> bool { llvm::SaveAndRestore CURS(this->VariablesAreConstexprUnknown, IsConstexprUnknown); - if (!this->emitPushCC(VD->hasConstantInitialization(), E)) - return false; + if constexpr (std::is_same_v<Emitter, EvalEmitter>) { + if (!this->emitPushCC(VD->hasConstantInitialization(), E)) + return false; + } auto VarState = this->visitDecl(VD); - if (!this->emitPopCC(E)) - return false; + if constexpr (std::is_same_v<Emitter, EvalEmitter>) { + if (!this->emitPopCC(E)) + return false; + } if (VarState.notCreated()) return true; _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
