llvm-project

Форк
0
/
fold-dwarf-lsda.s 
86 строк · 2.5 Кб
1
# REQUIRES: x86
2
## Regression test for https://github.com/llvm/llvm-project/issues/63039
3

4
## Use an old version to ensure we do *not* have any compact-unwind.
5
# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-macos9 %s -o %t.o
6

7
## Pre-cond: smoke-check that there is really no compact-unwind entries - only dwarfs.
8
# RUN: llvm-objdump --macho --unwind-info --dwarf=frames %t.o | FileCheck %s --check-prefix=PRE
9
# PRE-NOT: Contents of __compact_unwind section:
10
# PRE-NOT: Entry at offset
11
# PRE: .eh_frame contents:
12
# PRE: {{[0-9a-f]+}} {{.*}} CIE
13
# PRE:   Format:                DWARF32
14
# PRE:   Version:               1
15

16
## Link should succeed (ie., not crashed due to bug in icf code).
17
# RUN: %lld -lSystem -lc++ --icf=all -arch x86_64 -arch x86_64 -platform_version macos 11.0 11.0 %t.o -o %t.out
18

19
## Post-cond: verify that the final binary has expected eh-frame contents.
20
# RUN: llvm-objdump --macho --syms --dwarf=frames %t.out | FileCheck %s --check-prefix=POST
21
# POST-LABEL: SYMBOL TABLE:
22
# POST: [[#%x,EXCEPT_ADDR:]] l   O __TEXT,__gcc_except_tab GCC_except_table0
23
# POST: [[#%x,EXCEPT_ADDR]]  l   O __TEXT,__gcc_except_tab GCC_except_table1
24
# POST: [[#%.16x,F0_ADDR:]]  g   F __TEXT,__text _f0
25
# POST: [[#%.16x,F1_ADDR:]]  g   F __TEXT,__text _f1
26
# POST: [[#%.16x,G_ADDR:]]   g   F __TEXT,__text _g
27

28
# POST-LABEL: .eh_frame contents:
29
# POST: {{.*}} FDE cie={{.+}} pc=[[#%x,G_ADDR]]...{{.+}}
30

31
# POST: {{.*}} FDE cie={{.+}} pc=[[#%x,F0_ADDR]]...{{.+}}
32
# POST: Format:       DWARF32 
33
# POST: LSDA Address: [[#%.16x,EXCEPT_ADDR]]
34

35
# POST: {{.*}} FDE cie={{.+}} pc=[[#%x,F1_ADDR]]...{{.+}}
36
# POST Format:       DWARF32 
37
# POST LSDA Address: [[#%.16x,EXCEPT_ADDR]]
38

39
	.section        __TEXT,__text,regular,pure_instructions
40
	.globl	_f0
41
_f0:
42
	.cfi_startproc
43
	.cfi_lsda 16, Lexception0
44
	.cfi_def_cfa_offset 16
45
	.cfi_offset %rbp, -16
46
	callq	_g
47
	retq
48
	.cfi_endproc
49
	
50
	.section	__TEXT,__gcc_except_tab
51
GCC_except_table0:
52
Lexception0:
53
	.byte	255
54
                                
55
	.section	__TEXT,__text,regular,pure_instructions
56
	.globl	_f1
57
_f1:
58
	.cfi_startproc
59
	.cfi_lsda 16, Lexception1
60
	.cfi_def_cfa_offset 16
61
	.cfi_offset %rbp, -16
62
	callq	_g
63
	retq
64
	.cfi_endproc
65
	
66
	.section	__TEXT,__gcc_except_tab
67
GCC_except_table1:
68
Lexception1:
69
	.byte	255
70

71
	.section	__TEXT,__text,regular,pure_instructions
72
	.globl	_g
73
_g:               
74
	.cfi_startproc
75
	.cfi_def_cfa_offset 16
76
	.cfi_offset %rbp, -16
77
	.cfi_def_cfa_register %rbp	
78
	retq
79
	.cfi_endproc
80
	
81
	.section	__TEXT,__text,regular,pure_instructions
82
	.globl	_main             
83
_main:                            
84
	retq
85

86
.subsections_via_symbols
87

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.