UBSAN: emit distinctive traps
authorTim Northover <t.p.northover@gmail.com>
Wed, 21 Oct 2020 09:11:25 +0000 (10:11 +0100)
committerTim Northover <t.p.northover@gmail.com>
Tue, 8 Dec 2020 10:28:26 +0000 (10:28 +0000)
commitc5978f42ec8e9f7fa62a38510343440485752ec5
tree576ba5a97f0188e9240a999bdbcb1d4421728233
parentc54d827fdb12d033dca2155c416f02791fc86786
UBSAN: emit distinctive traps

Sometimes people get minimal crash reports after a UBSAN incident. This change
tags each trap with an integer representing the kind of failure encountered,
which can aid in tracking down the root cause of the problem.
55 files changed:
clang/lib/CodeGen/CGClass.cpp
clang/lib/CodeGen/CGExpr.cpp
clang/lib/CodeGen/CGExprScalar.cpp
clang/lib/CodeGen/CodeGenFunction.h
clang/lib/CodeGen/ItaniumCXXABI.cpp
clang/test/CodeGen/bounds-checking.c
clang/test/CodeGen/catch-alignment-assumption-attribute-align_value-on-lvalue.cpp
clang/test/CodeGen/catch-alignment-assumption-attribute-align_value-on-paramvar.cpp
clang/test/CodeGen/catch-alignment-assumption-attribute-alloc_align-on-function-variable.cpp
clang/test/CodeGen/catch-alignment-assumption-attribute-alloc_align-on-function.cpp
clang/test/CodeGen/catch-alignment-assumption-attribute-assume_aligned-on-function-two-params.cpp
clang/test/CodeGen/catch-alignment-assumption-attribute-assume_aligned-on-function.cpp
clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-three-params-variable.cpp
clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-three-params.cpp
clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-two-params.cpp
clang/test/CodeGen/catch-alignment-assumption-openmp.cpp
clang/test/CodeGen/catch-implicit-integer-sign-changes-CompoundAssignOperator.c
clang/test/CodeGen/catch-implicit-integer-sign-changes-incdec.c
clang/test/CodeGen/catch-implicit-integer-sign-changes.c
clang/test/CodeGen/catch-implicit-integer-truncations-CompoundAssignOperator.c
clang/test/CodeGen/catch-implicit-integer-truncations.c
clang/test/CodeGen/catch-implicit-signed-integer-truncation-or-sign-change-CompoundAssignOperator.c
clang/test/CodeGen/catch-implicit-signed-integer-truncation-or-sign-change.c
clang/test/CodeGen/catch-implicit-signed-integer-truncations-incdec.c
clang/test/CodeGen/catch-nullptr-and-nonzero-offset-when-nullptr-is-defined.c
clang/test/CodeGen/catch-nullptr-and-nonzero-offset.c
clang/test/CodeGen/catch-pointer-overflow-volatile.c
clang/test/CodeGen/catch-pointer-overflow.c
clang/test/CodeGen/catch-undef-behavior.c
clang/test/CodeGen/cfi-check-fail.c
clang/test/CodeGen/cfi-check-fail2.c
clang/test/CodeGen/sanitize-trap.c
clang/test/CodeGen/trapv.c
clang/test/CodeGen/ubsan-trap-debugloc.c [new file with mode: 0644]
clang/test/CodeGen/unsigned-trapv.c
clang/test/CodeGenCXX/cfi-cast.cpp
clang/test/CodeGenCXX/cfi-mfcall.cpp
clang/test/CodeGenCXX/trap-fnattr.cpp
clang/test/CodeGenCXX/type-metadata.cpp
llvm/docs/LangRef.rst
llvm/include/llvm/CodeGen/ISDOpcodes.h
llvm/include/llvm/IR/Intrinsics.td
llvm/include/llvm/Target/TargetSelectionDAG.td
llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
llvm/lib/CodeGen/TargetLoweringBase.cpp
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/lib/Target/AArch64/AArch64InstrInfo.td
llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/lib/Target/X86/X86InstrSystem.td
llvm/lib/Target/X86/X86MCInstLower.cpp
llvm/test/CodeGen/AArch64/ubsantrap.ll [new file with mode: 0644]
llvm/test/CodeGen/X86/ubsantrap.ll [new file with mode: 0644]