aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/COFFObjectFile.cpp
diff options
context:
space:
mode:
authorShoaib Meenai <smeenai@fb.com>2024-08-06 12:58:04 -0700
committerGitHub <noreply@github.com>2024-08-06 12:58:04 -0700
commit0371dff99529e93b8650281801e89bc015dc2703 (patch)
tree0fe5963596572d43ca0f2e702945e4a482794ef0 /llvm/lib/Object/COFFObjectFile.cpp
parent2601d6f189cf1d4e4e77a7cba83e5d32c87bf079 (diff)
downloadllvm-0371dff99529e93b8650281801e89bc015dc2703.zip
llvm-0371dff99529e93b8650281801e89bc015dc2703.tar.gz
llvm-0371dff99529e93b8650281801e89bc015dc2703.tar.bz2
[CodeGen] Make non-COMDAT relative vtable internal instead of private (#102056)
When using the relative vtable ABI, if a vtable is not dso_local, it's given private linkage (if not COMDAT) or hidden visibility (if COMDAT) to make it dso_local (to place it in rodata instead of data.rel.ro), and an alias generated with the original linkage and visibility. This alias could later be removed from the symbol table, e.g. if using a version script, at which point we lose all symbol information about the vtable. Use internal linkage instead of private linkage to avoid this. While I'm here, clarify the comment about why COMDAT vtables can't use internal (or private) linkage, and associate it with the else block where hidden visibility is applied instead of internal linkage.
Diffstat (limited to 'llvm/lib/Object/COFFObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions