[all-commits] [llvm/llvm-project] 67cbe1: Allow -fsanitize=function on all targets

Fangrui Song via All-commits all-commits at lists.llvm.org
Fri May 19 07:59:50 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 67cbe1b8597272165c2529f8a14ec571abe29490
      https://github.com/llvm/llvm-project/commit/67cbe1b8597272165c2529f8a14ec571abe29490
  Author: Fangrui Song <i at maskray.me>
  Date:   2023-05-19 (Fri, 19 May 2023)

  Changed paths:
    M clang/docs/UndefinedBehaviorSanitizer.rst
    M clang/lib/Driver/ToolChain.cpp
    M clang/lib/Driver/ToolChains/Darwin.cpp
    M clang/lib/Driver/ToolChains/FreeBSD.cpp
    M clang/lib/Driver/ToolChains/Linux.cpp
    M clang/lib/Driver/ToolChains/NetBSD.cpp
    M clang/lib/Driver/ToolChains/Solaris.cpp
    M clang/test/CodeGen/ubsan-function.cpp
    M clang/test/Driver/fsanitize.c
    M compiler-rt/test/ubsan/TestCases/TypeCheck/Function/function.cpp
    M compiler-rt/test/ubsan/TestCases/TypeCheck/Function/lit.local.cfg.py
    A llvm/test/CodeGen/AArch64/func-sanitizer.ll
    M llvm/test/CodeGen/AArch64/patchable-function-entry-bti.ll

  Log Message:
  -----------
  Allow -fsanitize=function on all targets

Functions instrumented with -fsanitize=function have two words before
the function label: a signature and a RTTI proxy.
Instrumented call sites check the signature first to skip checks
for uninstrumented callees.

The code is generic and works for all targets supporting C++ RTTI.
Change clangDriver to allow all targets. Add tests for Armv8.5
Branch Target Identification and `-fpatchable-function-entry=`.

Reviewed By: peter.smith

Differential Revision: https://reviews.llvm.org/D148573




More information about the All-commits mailing list