aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorSerge Pavlov <sepavloff@gmail.com>2023-11-13 17:24:46 +0700
committerGitHub <noreply@github.com>2023-11-13 17:24:46 +0700
commitf6f625f4c6c3cbeb8cf6b889cdafc848dd4cb117 (patch)
tree9dba5ce9956e668ce3a103391929ab1a1797ae91 /clang/lib/CodeGen/CodeGenModule.cpp
parenta699ab5adbefc4fa0d63edac8a137b0073576018 (diff)
downloadllvm-f6f625f4c6c3cbeb8cf6b889cdafc848dd4cb117.zip
llvm-f6f625f4c6c3cbeb8cf6b889cdafc848dd4cb117.tar.gz
llvm-f6f625f4c6c3cbeb8cf6b889cdafc848dd4cb117.tar.bz2
[clang] Do not clear FP pragma stack when instantiating functions (#70646)
When instantiation function, a call to Sema::resetFPOption was used to set the FP options associated with AST node. However this function also cleared FP pragma stack, and it is incorrect. Template instantiation takes place on AST representation and semantic information like the FP pragma stack should not affect it. This was a reason for miscompilation in some cases. To make the Sema interface more consistent, now `resetFPOptions` does not clear FP pragma stack anymore. It is cleared in `FpPragmaStackSaveRAII`, which is used in parsing only. This change must fix https://github.com/llvm/llvm-project/issues/69717 (Problems with float_control pragma stack in Clang 17.x).
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions