Summary: The majority of tests in LLVM projects are using - instead of _ in the name, i.e. `check-something.test` is preferred over `check_something.test`. It makes sense for us to adopt the same naming scheme for our future tests and to rename existing ones. (cherry picked from FBD32185879)
52 lines
1.0 KiB
ArmAsm
52 lines
1.0 KiB
ArmAsm
# This reproduces a bug where not registering cold fragment entry points
|
|
# leads to removing blocks and an inconsistent CFG after UCE.
|
|
# Test assembly was obtained using C-Reduce from this C++ code:
|
|
# (compiled with `g++ -O2 -Wl,-q`)
|
|
#
|
|
# #include <stdexcept>
|
|
# int a;
|
|
# int main() {
|
|
# if (a)
|
|
# try {
|
|
# throw std::logic_error("");
|
|
# } catch (...) {}
|
|
# try {
|
|
# throw std::logic_error("");
|
|
# } catch (...) {}
|
|
# }
|
|
|
|
# REQUIRES: system-linux
|
|
|
|
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %s -o %t.o
|
|
# RUN: %clangxx %cxxflags %t.o -o %t.exe -Wl,-q
|
|
# RUN: llvm-bolt %t.exe -o %t.out -dump-dot-all -funcs=main.* 2>&1 | FileCheck %s
|
|
#
|
|
# CHECK-NOT: Assertion `isValid()' failed.
|
|
|
|
.globl main
|
|
main:
|
|
jmp .L3 # jump to the secondary entry point in main.cold.0
|
|
|
|
.section a,"ax"
|
|
main.cold.0:
|
|
.cfi_startproc
|
|
.cfi_lsda 3,b
|
|
ud2
|
|
call __cxa_throw
|
|
.L3:
|
|
nop
|
|
.cfi_endproc
|
|
|
|
.section .gcc_except_table
|
|
b:
|
|
.byte 0xff,0x3
|
|
.uleb128 e-c
|
|
c:
|
|
.byte 1
|
|
.uleb128 e-d
|
|
d:
|
|
.uleb128 0,0,0,0,0
|
|
.uleb128 .L3-main.cold.0
|
|
.uleb128 .L3-main.cold.0
|
|
e:
|