[PATCH] D96109: Refactor implementation of -funique-internal-linkage-names.

Sriraman Tallam via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 11 15:53:09 PST 2021


tmsriram updated this revision to Diff 323179.
tmsriram marked 4 inline comments as done.
tmsriram added a comment.
Herald added a reviewer: aaron.ballman.

This patch update handles the following:

1. For C internal linkage functions which do not mangle implicitly, force mangling when -funique-internal-linkage-names is present before adding the suffix.  This ensures demanglers work correctly on the linkage name as required.
2. The mangler works on a decl and does not have much external context.  Add an implicit attribute to the decl to indicate to the mangler that a function name must be mangled.
3. Add tests for DW_AT_linkage_name for C and C++ functions.
4. Check for "sample-profile-elision-policy" attribute.

This patch addresses all the short comings pointed out in D73307 <https://reviews.llvm.org/D73307> where the linkage names had to be updated explicitly and C functions could not be handled effectively.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D96109/new/

https://reviews.llvm.org/D96109

Files:
  clang/include/clang/Basic/Attr.td
  clang/lib/AST/ItaniumMangle.cpp
  clang/lib/CodeGen/BackendUtil.cpp
  clang/lib/CodeGen/CGCall.cpp
  clang/lib/CodeGen/CodeGenModule.cpp
  clang/lib/CodeGen/CodeGenModule.h
  clang/test/CodeGen/unique-internal-linkage-names-dwarf.c
  clang/test/CodeGen/unique-internal-linkage-names-dwarf.cpp
  clang/test/CodeGen/unique-internal-linkage-names.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D96109.323179.patch
Type: text/x-patch
Size: 15252 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210211/1831e4cd/attachment.bin>


More information about the llvm-commits mailing list