diff options
author | alx32 <103613512+alx32@users.noreply.github.com> | 2024-07-08 14:10:50 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-08 14:10:50 -0700 |
commit | e97bd0300b57547774c5cfe6fe84ebd0efc421ec (patch) | |
tree | d2bd1e978e9c305c1e898e70ca96ae130b103d81 /llvm/lib/CodeGen/MachineScheduler.cpp | |
parent | 7f0d9bae9d1cfdd1c275b6c20fa1b4ed7e6e644f (diff) | |
download | llvm-e97bd0300b57547774c5cfe6fe84ebd0efc421ec.zip llvm-e97bd0300b57547774c5cfe6fe84ebd0efc421ec.tar.gz llvm-e97bd0300b57547774c5cfe6fe84ebd0efc421ec.tar.bz2 |
[lld-macho] Category Merging: Detect correct class language for classes with aliased symbols (#97454)
Currently we rely on detecting the source language of a class by the
name of the symbol pointing to it. This generally works, but there are
scenarios where Swift generates both an ObjC name and a Swift name for
the symbol - by aliasing the ObjC name to the Swift name, as follows:
```
.globl _OBJC_CLASS_$__TtC11MyTestClass11MyTestClass
.private_extern _OBJC_CLASS_$__TtC11MyTestClass11MyTestClass
.set _OBJC_CLASS_$__TtC11MyTestClass11MyTestClass, _$s11MyTestClassAACN
```
So to correctly detect the source language in all cases, we need to
handle scenarios where both an ObjC symbol and a Swift symbol is defined
for a class - in this case the symbol is always a Swift class.
Diffstat (limited to 'llvm/lib/CodeGen/MachineScheduler.cpp')
0 files changed, 0 insertions, 0 deletions