[PATCH] D104494: [dfsan] Replace dfs$ prefix with .dfsan suffix

George Balatsouras via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 17 16:13:26 PDT 2021


gbalats created this revision.
gbalats added a reviewer: stephan.yichao.zhao.
gbalats added projects: Sanitizers, LLVM.
Herald added subscribers: jdoerfert, jfb, hiraditya.
gbalats requested review of this revision.
Herald added a project: clang.
Herald added subscribers: llvm-commits, Sanitizers, cfe-commits.

The current naming scheme adds the `dfs$` prefix to all DFSan-instrumented functions.
This breaks mangling and prevents stack trace printers and other tools from automatically
demangling function names.

This new naming scheme is mangling-compatible, with the `.dfsan` suffix being a *vendor-specific suffix*:
https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangling-structure

With this fix, demangling utils would work out-of-the-box.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D104494

Files:
  clang/docs/DataFlowSanitizerDesign.rst
  compiler-rt/test/dfsan/origin_memcpy.c
  compiler-rt/test/dfsan/origin_memmove.c
  compiler-rt/test/dfsan/origin_stack_trace.c
  compiler-rt/test/dfsan/origin_track_ld.c
  compiler-rt/test/dfsan/origin_unaligned_memtrans.c
  compiler-rt/test/dfsan/origin_with_sigactions.c
  compiler-rt/test/dfsan/origin_with_signals.cpp
  compiler-rt/test/dfsan/pthread.c
  compiler-rt/test/dfsan/stack_trace.c
  llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
  llvm/test/Instrumentation/DataFlowSanitizer/abilist.ll
  llvm/test/Instrumentation/DataFlowSanitizer/abilist_aggregate.ll
  llvm/test/Instrumentation/DataFlowSanitizer/args-unreachable-bb.ll
  llvm/test/Instrumentation/DataFlowSanitizer/arith.ll
  llvm/test/Instrumentation/DataFlowSanitizer/array.ll
  llvm/test/Instrumentation/DataFlowSanitizer/atomics.ll
  llvm/test/Instrumentation/DataFlowSanitizer/basic.ll
  llvm/test/Instrumentation/DataFlowSanitizer/call.ll
  llvm/test/Instrumentation/DataFlowSanitizer/custom_fun_callback_attributes.ll
  llvm/test/Instrumentation/DataFlowSanitizer/custom_fun_varargs_attributes.ll
  llvm/test/Instrumentation/DataFlowSanitizer/debug-nonzero-labels.ll
  llvm/test/Instrumentation/DataFlowSanitizer/dont_combine_offset_labels_on_gep.ll
  llvm/test/Instrumentation/DataFlowSanitizer/external_mask.ll
  llvm/test/Instrumentation/DataFlowSanitizer/load.ll
  llvm/test/Instrumentation/DataFlowSanitizer/memset.ll
  llvm/test/Instrumentation/DataFlowSanitizer/musttailcall.ll
  llvm/test/Instrumentation/DataFlowSanitizer/origin_abilist.ll
  llvm/test/Instrumentation/DataFlowSanitizer/origin_cached_shadows.ll
  llvm/test/Instrumentation/DataFlowSanitizer/origin_call.ll
  llvm/test/Instrumentation/DataFlowSanitizer/origin_load.ll
  llvm/test/Instrumentation/DataFlowSanitizer/origin_mem_intrinsic.ll
  llvm/test/Instrumentation/DataFlowSanitizer/origin_other_ops.ll
  llvm/test/Instrumentation/DataFlowSanitizer/origin_phi.ll
  llvm/test/Instrumentation/DataFlowSanitizer/origin_select.ll
  llvm/test/Instrumentation/DataFlowSanitizer/origin_store.ll
  llvm/test/Instrumentation/DataFlowSanitizer/origin_store_threshold.ll
  llvm/test/Instrumentation/DataFlowSanitizer/origin_track_load.ll
  llvm/test/Instrumentation/DataFlowSanitizer/prefix-rename.ll
  llvm/test/Instrumentation/DataFlowSanitizer/select.ll
  llvm/test/Instrumentation/DataFlowSanitizer/shadow-args-zext.ll
  llvm/test/Instrumentation/DataFlowSanitizer/store.ll
  llvm/test/Instrumentation/DataFlowSanitizer/struct.ll
  llvm/test/Instrumentation/DataFlowSanitizer/union.ll
  llvm/test/Instrumentation/DataFlowSanitizer/unordered_atomic_mem_intrins.ll
  llvm/test/Instrumentation/DataFlowSanitizer/vector.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D104494.352869.patch
Type: text/x-patch
Size: 121762 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20210617/63699382/attachment-0001.bin>


More information about the cfe-commits mailing list