brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.1 KiB · 5f84498 Raw
112 lines · plain
1# REQUIRES: x862# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o3 4# RUN: %lld -lSystem --icf=all %t.o -o %t5# RUN: dsymutil -s %t | FileCheck %s -DDIR=%t -DSRC_PATH=%t.o6 7# RUN: %lld -lSystem --icf=all %t.o -o %t_icf_stabs --keep-icf-stabs8# RUN: dsymutil -s %t_icf_stabs | FileCheck %s -DDIR=%t_icf_stabs -DSRC_PATH=%t.o --check-prefixes=ICF_STABS9 10## This should include no N_FUN entry for _baz (which is ICF'd into _bar),11## but it does include a SECT EXT entry.12## NOTE: We do not omit the N_FUN entry for _bar even though it is of size zero.13##       Only folded symbols get omitted.14## NOTE: Unlike ld64, we also omit the N_FUN entry for _baz2.15# CHECK:      (N_SO         ) 00      0000   0000000000000000  '/tmp{{[/\\]}}test.cpp'16# CHECK-NEXT: (N_OSO        ) 03      0001   {{.*}} '[[SRC_PATH]]'17# CHECK-NEXT: (N_FUN        ) 01      0000   [[#%.16x,MAIN:]]  '_main'18# CHECK-NEXT: (N_FUN        ) 00      0000   000000000000000b{{$}}19# CHECK-NEXT: (N_FUN        ) 01      0000   [[#%.16x,BAR:]]   '_bar'20# CHECK-NEXT: (N_FUN        ) 00      0000   0000000000000000{{$}}21# CHECK-NEXT: (N_FUN        ) 01      0000   [[#BAR]]          '_bar2'22# CHECK-NEXT: (N_FUN        ) 00      0000   0000000000000001{{$}}23# CHECK-NEXT: (N_SO         ) 01      0000   0000000000000000{{$}}24# CHECK-DAG:  (     SECT EXT) 01      0000   [[#MAIN]]         '_main'25# CHECK-DAG:  (     SECT EXT) 01      0000   [[#BAR]]          '_bar'26# CHECK-DAG:  (     SECT EXT) 01      0000   [[#BAR]]          '_bar2'27# CHECK-DAG:  (     SECT EXT) 01      0000   [[#BAR]]          '_baz'28# CHECK-DAG:  (     SECT EXT) 01      0000   [[#BAR]]          '_baz2'29# CHECK-DAG:  (       {{.*}}) {{[0-9]+}}                 0010   {{[0-9a-f]+}}      '__mh_execute_header'30# CHECK-DAG:  (       {{.*}}) {{[0-9]+}}                 0100   0000000000000000   'dyld_stub_binder'31# CHECK-EMPTY:32 33 34# ICF_STABS:      (N_SO         ) 00      0000   0000000000000000  '/tmp{{[/\\]}}test.cpp'35# ICF_STABS-NEXT: (N_OSO        ) 03      0001   {{.*}} '[[SRC_PATH]]'36# ICF_STABS-NEXT: (N_FUN        ) 01      0000   [[#%.16x,MAIN:]]  '_main'37# ICF_STABS-NEXT: (N_FUN        ) 00      0000   000000000000000b{{$}}38# ICF_STABS-NEXT: (N_FUN        ) 01      0000   [[#%.16x,BAR:]]   '_bar'39# ICF_STABS-NEXT: (N_FUN        ) 00      0000   0000000000000000{{$}}40# ICF_STABS-NEXT: (N_FUN        ) 01      0000   [[#BAR]]          '_bar2'41# ICF_STABS-NEXT: (N_FUN        ) 00      0000   0000000000000001{{$}}42# ICF_STABS-NEXT: (N_FUN        ) 01      0000   [[#BAR]]          '_baz'43# ICF_STABS-NEXT: (N_FUN        ) 00      0000   0000000000000000{{$}}44# ICF_STABS-NEXT: (N_FUN        ) 01      0000   [[#BAR]]          '_baz2'45# ICF_STABS-NEXT: (N_FUN        ) 00      0000   0000000000000001{{$}}46# ICF_STABS-NEXT: (N_SO         ) 01      0000   0000000000000000{{$}}47# ICF_STABS-DAG:  (     SECT EXT) 01      0000   [[#MAIN]]         '_main'48# ICF_STABS-DAG:  (     SECT EXT) 01      0000   [[#BAR]]          '_bar'49# ICF_STABS-DAG:  (     SECT EXT) 01      0000   [[#BAR]]          '_bar2'50# ICF_STABS-DAG:  (     SECT EXT) 01      0000   [[#BAR]]          '_baz'51# ICF_STABS-DAG:  (     SECT EXT) 01      0000   [[#BAR]]          '_baz2'52# ICF_STABS-DAG:  (       {{.*}}) {{[0-9]+}}                 0010   {{[0-9a-f]+}}      '__mh_execute_header'53# ICF_STABS-DAG:  (       {{.*}}) {{[0-9]+}}                 0100   0000000000000000   'dyld_stub_binder'54# ICF_STABS-EMPTY:55 56 57.text58.globl _bar, _bar2, _baz, _baz2, _main59 60.subsections_via_symbols61 62_bar:63_bar2:64  ret65 66_baz:67_baz2:68  ret69 70_main:71Lfunc_begin0:72  call _bar73  call _baz74  ret75Lfunc_end0:76 77.section  __DWARF,__debug_str,regular,debug78  .asciz  "test.cpp"             ## string offset=079  .asciz  "/tmp"                 ## string offset=980.section  __DWARF,__debug_abbrev,regular,debug81Lsection_abbrev:82  .byte  1                       ## Abbreviation Code83  .byte  17                      ## DW_TAG_compile_unit84  .byte  1                       ## DW_CHILDREN_yes85  .byte  3                       ## DW_AT_name86  .byte  14                      ## DW_FORM_strp87  .byte  27                      ## DW_AT_comp_dir88  .byte  14                      ## DW_FORM_strp89  .byte  17                      ## DW_AT_low_pc90  .byte  1                       ## DW_FORM_addr91  .byte  18                      ## DW_AT_high_pc92  .byte  6                       ## DW_FORM_data493  .byte  0                       ## EOM(1)94  .byte  0                       ## EOM(2)95  .byte  0                       ## EOM(3)96.section  __DWARF,__debug_info,regular,debug97.set Lset0, Ldebug_info_end0-Ldebug_info_start0 ## Length of Unit98  .long  Lset099Ldebug_info_start0:100  .short  4                       ## DWARF version number101.set Lset1, Lsection_abbrev-Lsection_abbrev ## Offset Into Abbrev. Section102  .long  Lset1103  .byte  8                       ## Address Size (in bytes)104  .byte  1                       ## Abbrev [1] 0xb:0x48 DW_TAG_compile_unit105  .long  0                       ## DW_AT_name106  .long  9                       ## DW_AT_comp_dir107  .quad  Lfunc_begin0            ## DW_AT_low_pc108.set Lset3, Lfunc_end0-Lfunc_begin0     ## DW_AT_high_pc109  .long  Lset3110  .byte  0                       ## End Of Children Mark111Ldebug_info_end0:112