brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.1 KiB · 22db92b Raw
190 lines · plain
1# RUN: llvm-mc %s -triple=i686-pc-win32 -filetype=obj -o %t.obj2# RUN: llvm-objdump --no-print-imm-hex -d %t.obj | FileCheck %s --check-prefix=ASM3# RUN: llvm-pdbutil dump -il -symbols %t.obj | FileCheck %s --check-prefix=CODEVIEW4 5# Original source, slightly modified with an extra .cv_loc directive (at EXTRA6# below) that was causing assertions:7#8# void __declspec(noreturn) __declspec(dllimport) exit(int);9# int unlikely();10# static inline void do_exit() {11#   if (unlikely()) {12#     exit(32);13#   }14# }15# void callit() {16#   do_exit();17# }18 19 20# ASM:      00000000 <_callit>:21#   begin inline {22# ASM-NEXT:        0: e8 00 00 00 00                calll   0x5 <_callit+0x5>23# ASM-NEXT:        5: 85 c0                         testl   %eax, %eax24# ASM-NEXT:        7: 75 01                         jne     0xa <_callit+0xa>25#   } end inline26# ASM-NEXT:        9: c3                            retl27#   begin inline {28# ASM-NEXT:        a: 6a 20                         pushl   $3229# ASM-NEXT:        c: ff 15 00 00 00 00             calll   *030#   } end inline31 32# CODEVIEW: Inlinee |  Line | Source File33# CODEVIEW:  0x1002 |     3 | C:\src\llvm-project\build\t.cpp (MD5: 0BC092F354CE14FDC2FA78F8EDE7426E)34 35# CODEVIEW:      S_INLINESITE [size = 26]36# CODEVIEW-NEXT: inlinee = 0x1002 (do_exit), parent = 0, end = 037# CODEVIEW-NEXT:   0B20      code 0x0 (+0x0) line 1 (+1)38# CODEVIEW-NEXT:   0409      code end 0x9 (+0x9)39# CODEVIEW-NEXT:   0B21      code 0xA (+0x1) line 2 (+1)40# CODEVIEW-NEXT:   0B28      code 0x12 (+0x8) line 3 (+1)41# CODEVIEW-NEXT:   0400      code end 0x12 (+0x0)42 43	.text44	.def	 _callit; .scl	2; .type	32; .endef45	.globl	_callit                 # -- Begin function callit46_callit:                                # @callit47Lfunc_begin0:48	.cv_func_id 049	.cv_fpo_proc	_callit 050# %bb.0:                                # %entry51	.cv_file	1 "C:\\src\\llvm-project\\build\\t.cpp" "0BC092F354CE14FDC2FA78F8EDE7426E" 152	.cv_inline_site_id 1 within 0 inlined_at 1 9 053	.cv_loc	1 1 4 0 is_stmt 0       # t.cpp:4:054	calll	_unlikely55	testl	%eax, %eax56	jne	LBB0_157Ltmp0:58# %bb.2:                                # %do_exit.exit59	.cv_loc	0 1 10 0                # t.cpp:10:060	retl61LBB0_1:                                 # %if.then.i62Ltmp1:63	.cv_loc	1 1 5 0                 # t.cpp:5:064	pushl	$3265	calll	*__imp__exit66	# EXTRA67	.cv_loc	1 1 6 0                 # t.cpp:6:068Ltmp2:69	.cv_fpo_endproc70Lfunc_end0:71                                        # -- End function72 73	.section	.debug$S,"dr"74	.p2align	275	.long	4                       # Debug section magic76	.long	24177	.long	Ltmp4-Ltmp3             # Subsection size78Ltmp3:79	.short	Ltmp6-Ltmp5             # Record length80Ltmp5:81	.short	4412                    # Record kind: S_COMPILE382	.long	0                       # Flags and language83	.short	7                       # CPUType84	.short	7                       # Frontend version85	.short	086	.short	087	.short	088	.short	7000                    # Backend version89	.short	090	.short	091	.short	092	.asciz	"clang version 7.0.0 "  # Null-terminated compiler version string93Ltmp6:94Ltmp4:95	.p2align	296	.long	246                     # Inlinee lines subsection97	.long	Ltmp8-Ltmp7             # Subsection size98Ltmp7:99	.long	0                       # Inlinee lines signature100 101                                        # Inlined function do_exit starts at t.cpp:3102	.long	4098                    # Type index of inlined function103	.cv_filechecksumoffset	1       # Offset into filechecksum table104	.long	3                       # Starting line number105Ltmp8:106	.p2align	2107	.cv_fpo_data	_callit108	.long	241                     # Symbol subsection for callit109	.long	Ltmp10-Ltmp9            # Subsection size110Ltmp9:111	.short	Ltmp12-Ltmp11           # Record length112Ltmp11:113	.short	4423                    # Record kind: S_GPROC32_ID114	.long	0                       # PtrParent115	.long	0                       # PtrEnd116	.long	0                       # PtrNext117	.long	Lfunc_end0-_callit      # Code size118	.long	0                       # Offset after prologue119	.long	0                       # Offset before epilogue120	.long	4099                    # Function type index121	.secrel32	_callit         # Function section relative address122	.secidx	_callit                 # Function section index123	.byte	0                       # Flags124	.asciz	"callit"                # Function name125Ltmp12:126	.short	Ltmp14-Ltmp13           # Record length127Ltmp13:128	.short	4429                    # Record kind: S_INLINESITE129	.long	0                       # PtrParent130	.long	0                       # PtrEnd131	.long	4098                    # Inlinee type index132	.cv_inline_linetable	1 1 3 Lfunc_begin0 Lfunc_end0133Ltmp14:134	.short	2                       # Record length135	.short	4430                    # Record kind: S_INLINESITE_END136	.short	2                       # Record length137	.short	4431                    # Record kind: S_PROC_ID_END138Ltmp10:139	.p2align	2140	.cv_linetable	0, _callit, Lfunc_end0141	.cv_filechecksums               # File index to string table offset subsection142	.cv_stringtable                 # String table143	.section	.debug$T,"dr"144	.p2align	2145	.long	4                       # Debug section magic146	# ArgList (0x1000) {147	#   TypeLeafKind: LF_ARGLIST (0x1201)148	#   NumArgs: 0149	#   Arguments [150	#   ]151	# }152	.byte	0x06, 0x00, 0x01, 0x12153	.byte	0x00, 0x00, 0x00, 0x00154	# Procedure (0x1001) {155	#   TypeLeafKind: LF_PROCEDURE (0x1008)156	#   ReturnType: void (0x3)157	#   CallingConvention: NearC (0x0)158	#   FunctionOptions [ (0x0)159	#   ]160	#   NumParameters: 0161	#   ArgListType: () (0x1000)162	# }163	.byte	0x0e, 0x00, 0x08, 0x10164	.byte	0x03, 0x00, 0x00, 0x00165	.byte	0x00, 0x00, 0x00, 0x00166	.byte	0x00, 0x10, 0x00, 0x00167	# FuncId (0x1002) {168	#   TypeLeafKind: LF_FUNC_ID (0x1601)169	#   ParentScope: 0x0170	#   FunctionType: void () (0x1001)171	#   Name: do_exit172	# }173	.byte	0x12, 0x00, 0x01, 0x16174	.byte	0x00, 0x00, 0x00, 0x00175	.byte	0x01, 0x10, 0x00, 0x00176	.byte	0x64, 0x6f, 0x5f, 0x65177	.byte	0x78, 0x69, 0x74, 0x00178	# FuncId (0x1003) {179	#   TypeLeafKind: LF_FUNC_ID (0x1601)180	#   ParentScope: 0x0181	#   FunctionType: void () (0x1001)182	#   Name: callit183	# }184	.byte	0x12, 0x00, 0x01, 0x16185	.byte	0x00, 0x00, 0x00, 0x00186	.byte	0x01, 0x10, 0x00, 0x00187	.byte	0x63, 0x61, 0x6c, 0x6c188	.byte	0x69, 0x74, 0x00, 0xf1189 190