You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.9 KiB
50 lines
1.9 KiB
# Test to check if using basic block sections to reorder basic blocks at
|
|
# run-time still produces the right backtraces with lldb.
|
|
|
|
# UNSUPPORTED: system-darwin, system-windows
|
|
# REQUIRES: target-x86_64
|
|
# REQUIRES: lld
|
|
|
|
# RUN: %clang_host %p/Inputs/basic-block-sections.c -o %t
|
|
# RUN: %lldb %t -s %s -o exit | FileCheck %s --check-prefix=DEFAULT
|
|
|
|
# RUN: %clang_host %p/Inputs/basic-block-sections.c -o %t -fbasic-block-sections=all
|
|
# RUN: %lldb %t -s %s -o exit | FileCheck %s --check-prefix=BBSECTIONS
|
|
|
|
# Reorder basic blocks so that main's basic blocks are discontiguous
|
|
# RUN: echo "main.3" > %t.order
|
|
# RUN: echo "bar" >> %t.order
|
|
# RUN: echo "main" >> %t.order
|
|
# RUN: echo "main.2" >> %t.order
|
|
# RUN: echo "foo" >> %t.order
|
|
# RUN: echo "main.1" >> %t.order
|
|
# RUN: %clang_host %p/Inputs/basic-block-sections.c -o %t -fbasic-block-sections=all -fuse-ld=lld -Wl,--symbol-ordering-file,%t.order -Wl,--warn-symbol-ordering -Wl,--fatal-warnings
|
|
# RUN: %lldb %t -s %s -o exit | FileCheck %s --check-prefix=BBSECTIONS
|
|
|
|
# Test the reverse permutation too.
|
|
# RUN: echo "main.1" > %t.order
|
|
# RUN: echo "foo" >> %t.order
|
|
# RUN: echo "main.2" >> %t.order
|
|
# RUN: echo "main" >> %t.order
|
|
# RUN: echo "bar" >> %t.order
|
|
# RUN: echo "main.3" >> %t.order
|
|
# RUN: %clang_host %p/Inputs/basic-block-sections.c -o %t -fbasic-block-sections=all -fuse-ld=lld -Wl,--symbol-ordering-file,%t.order -Wl,--warn-symbol-ordering -Wl,--fatal-warnings
|
|
# RUN: %lldb %t -s %s -o exit | FileCheck %s --check-prefix=BBSECTIONS
|
|
|
|
breakpoint set -n bar
|
|
# DEFAULT: Breakpoint 1: where = {{.*}}`bar
|
|
# BBSECTIONS: Breakpoint 1: where = {{.*}}`bar
|
|
|
|
process launch
|
|
# DEFAULT: stop reason = breakpoint 1.1
|
|
# BBSECTIONS: stop reason = breakpoint 1.1
|
|
|
|
thread backtrace
|
|
# DEFAULT: frame #0: {{.*}}`bar
|
|
# DEFAULT: frame #1: {{.*}}`foo
|
|
# DEFAULT: frame #2: {{.*}}`main +
|
|
|
|
# BBSECTIONS: frame #0: {{.*}}`bar
|
|
# BBSECTIONS: frame #1: {{.*}}`foo
|
|
# BBSECTIONS: frame #2: {{.*}}`main.1 +
|