[all-commits] [llvm/llvm-project] 6678f8: [ubsan] Using metadata instead of prologue data fo...

Yuanfang Chen via All-commits all-commits at lists.llvm.org
Mon Jun 27 12:12:01 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 6678f8e505b19069a9dbdc3e3ee088d543752412
      https://github.com/llvm/llvm-project/commit/6678f8e505b19069a9dbdc3e3ee088d543752412
  Author: Yuanfang Chen <yuanfang.chen at sony.com>
  Date:   2022-06-27 (Mon, 27 Jun 2022)

  Changed paths:
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/lib/CodeGen/CodeGenModule.h
    M clang/lib/Driver/SanitizerArgs.cpp
    M clang/test/CodeGen/ubsan-function.cpp
    M clang/test/CodeGenCXX/catch-undef-behavior.cpp
    M clang/test/CodeGenCXX/ubsan-function-noexcept.cpp
    M clang/test/Driver/fsanitize.c
    M llvm/docs/LangRef.rst
    M llvm/include/llvm/IR/FixedMetadataKinds.def
    M llvm/include/llvm/IR/MDBuilder.h
    M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
    M llvm/lib/IR/MDBuilder.cpp
    M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
    A llvm/test/CodeGen/X86/func-sanitizer.ll

  Log Message:
  -----------
  [ubsan] Using metadata instead of prologue data for function sanitizer

Information in the function `Prologue Data` is intentionally opaque.
When a function with `Prologue Data` is duplicated. The self (global
value) references inside `Prologue Data` is still pointing to the
original function. This may cause errors like `fatal error: error in backend: Cannot represent a difference across sections`.

This patch detaches the information from function `Prologue Data`
and attaches it to a function metadata node.

This and D116130 fix https://github.com/llvm/llvm-project/issues/49689.

Reviewed By: pcc

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


  Commit: e2e9e708e5c2c3d5357b4bb355285ef55cd060d9
      https://github.com/llvm/llvm-project/commit/e2e9e708e5c2c3d5357b4bb355285ef55cd060d9
  Author: Yuanfang Chen <yuanfang.chen at sony.com>
  Date:   2022-06-27 (Mon, 27 Jun 2022)

  Changed paths:
    M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
    M llvm/test/Transforms/Coroutines/coro-split-00.ll

  Log Message:
  -----------
  [Coroutine] Remove the '!func_sanitize' metadata for split functions

There is no proper RTTI for these split functions. So just delete the
metadata.

Fixes https://github.com/llvm/llvm-project/issues/49689.

Reviewed By: rjmccall

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


Compare: https://github.com/llvm/llvm-project/compare/ae90bc846758...e2e9e708e5c2


More information about the All-commits mailing list