summaryrefslogtreecommitdiff
path: root/test/MC
diff options
context:
space:
mode:
Diffstat (limited to 'test/MC')
-rw-r--r--test/MC/ELF/compression.s25
1 files changed, 24 insertions, 1 deletions
diff --git a/test/MC/ELF/compression.s b/test/MC/ELF/compression.s
index 2ecb271e43..65f920c092 100644
--- a/test/MC/ELF/compression.s
+++ b/test/MC/ELF/compression.s
@@ -1,6 +1,8 @@
-// RUN: llvm-mc -filetype=obj -compress-debug-sections -triple x86_64-pc-linux-gnu %s -o %t
+// RUN: llvm-mc -filetype=obj -compress-debug-sections -triple x86_64-pc-linux-gnu < %s -o %t
// RUN: llvm-objdump -s %t | FileCheck %s
// RUN: llvm-dwarfdump -debug-dump=abbrev %t | FileCheck --check-prefix=ABBREV %s
+// RUN: llvm-mc -filetype=obj -compress-debug-sections -triple i386-pc-linux-gnu < %s \
+// RUN: | llvm-readobj -symbols - | FileCheck --check-prefix=386-SYMBOLS %s
// REQUIRES: zlib
@@ -22,12 +24,21 @@
// ABBREV: Abbrev table for offset: 0x00000000
// ABBREV: [1] DW_TAG_compile_unit DW_CHILDREN_no
+// In x86 32 bit named symbols are used for temporary symbols in merge
+// sections, so make sure we handle symbols inside compressed sections
+// 386-SYMBOLS: Name: .Linfo_string0
+// 386-SYMBOLS-NOT: }
+// 386-SYMBOLS: Section: .zdebug_str
+
.section .debug_line,"",@progbits
.section .debug_abbrev,"",@progbits
+.Lsection_abbrev:
.byte 1 # Abbreviation Code
.byte 17 # DW_TAG_compile_unit
.byte 0 # DW_CHILDREN_no
+ .byte 27 # DW_AT_comp_dir
+ .byte 14 # DW_FORM_strp
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.text
@@ -38,3 +49,15 @@ foo:
nop
.cfi_endproc
.cfi_sections .debug_frame
+
+ .section .debug_str,"MS",@progbits,1
+.Linfo_string0:
+ .asciz "foo"
+
+ .section .debug_info,"",@progbits
+ .long 40 # Length of Unit
+ .short 4 # DWARF version number
+ .long .Lsection_abbrev # Offset Into Abbrev. Section
+ .byte 4 # Address Size (in bytes)
+ .byte 1 # Abbrev [1] DW_TAG_compile_unit
+ .long .Linfo_string0 # DW_AT_comp_dir