aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
diff options
context:
space:
mode:
authorTom Honermann <tom.honermann@intel.com>2024-03-25 10:39:05 -0400
committerGitHub <noreply@github.com>2024-03-25 10:39:05 -0400
commitbea17ff652bc49b2de8d6be04f77d28170a78be9 (patch)
tree6d28f262042b7976fc53e719e37de7c893ca9b9f /llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
parentb282259711af7b295cb80a12880bcd8e0d1fcefa (diff)
downloadllvm-bea17ff652bc49b2de8d6be04f77d28170a78be9.zip
llvm-bea17ff652bc49b2de8d6be04f77d28170a78be9.tar.gz
llvm-bea17ff652bc49b2de8d6be04f77d28170a78be9.tar.bz2
[clang] Correct Microsoft mangling of lifetime extended temporary objects. (#85529)
Lifetime extended temporary objects that are bound to references with static storage duration may have external linkage and therefore require mangled symbol names. Clang uses an extension of the Microsoft ABI to give these symbols an implicit name of '$RT' followed by a discriminator and then mangles them similarly to the variable they are bound to. Clang's mangling scheme differs from the one used by MSVC. Previously, the `$RT<discriminator>` portion of the name was not registered as a back reference candidate and this resulted in incorrect back references for enclosing class and/or namespace scopes that might be referenced in the type of the object. This is an ABI change and has the potential to cause backward compatibility issues with previous Clang releases. Since MSVC uses a different mangling scheme, this change does not affect compatibility with MSVC. This fixes one of the name mangling concerns reported in #85423.
Diffstat (limited to 'llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp')
0 files changed, 0 insertions, 0 deletions