blob: c71e1a72c4710c21b9ad44d9a35ffda3262752bf [file] [log] [blame]
Rafael Espindola34e3d0c2010-09-16 17:05:55 +00001// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
2
3// Test that these names are accepted.
4
5.section .note.GNU-stack,"",@progbits
Rafael Espindolad4a35262010-11-12 15:47:08 +00006.section .note.GNU-stack2,"",%progbits
Rafael Espindola34e3d0c2010-09-16 17:05:55 +00007.section .note.GNU-,"",@progbits
8.section -.note.GNU,"",@progbits
9
Rafael Espindola9974b8b2011-04-07 23:51:25 +000010// CHECK: ('sh_name', 0x00000038) # '.note.GNU-stack'
11// CHECK: ('sh_name', 0x0000008f) # '.note.GNU-stack2'
12// CHECK: ('sh_name', 0x000000a0) # '.note.GNU-'
13// CHECK: ('sh_name', 0x00000084) # '-.note.GNU'
Rafael Espindola4fa34782010-10-27 18:45:20 +000014
Rafael Espindola98976612010-12-26 21:30:59 +000015// Test that the defaults are used
Rafael Espindola4fa34782010-10-27 18:45:20 +000016
17.section .init
18.section .fini
Rafael Espindola4faf7c72010-11-08 02:47:59 +000019.section .rodata
Rafael Espindola6b8e4352010-11-25 15:32:56 +000020.section zed, ""
Rafael Espindola4fa34782010-10-27 18:45:20 +000021
Rafael Espindola9974b8b2011-04-07 23:51:25 +000022// CHECK: (('sh_name', 0x00000012) # '.init'
Rafael Espindola4fa34782010-10-27 18:45:20 +000023// CHECK-NEXT: ('sh_type', 0x00000001)
Rafael Espindola5c4e52e2011-08-04 17:00:11 +000024// CHECK-NEXT: ('sh_flags', 0x0000000000000006)
25// CHECK-NEXT: ('sh_addr', 0x0000000000000000)
26// CHECK-NEXT: ('sh_offset', 0x0000000000000050)
27// CHECK-NEXT: ('sh_size', 0x0000000000000000)
Rafael Espindola4fa34782010-10-27 18:45:20 +000028// CHECK-NEXT: ('sh_link', 0x00000000)
29// CHECK-NEXT: ('sh_info', 0x00000000)
Rafael Espindola5c4e52e2011-08-04 17:00:11 +000030// CHECK-NEXT: ('sh_addralign', 0x0000000000000001)
31// CHECK-NEXT: ('sh_entsize', 0x0000000000000000)
Rafael Espindola4faf7c72010-11-08 02:47:59 +000032// CHECK-NEXT: ),
Rafael Espindola014180d2011-08-04 13:39:15 +000033// CHECK-NEXT: # Section 11
Rafael Espindola9974b8b2011-04-07 23:51:25 +000034// CHECK-NEXT: (('sh_name', 0x00000048) # '.fini'
Rafael Espindolad4a35262010-11-12 15:47:08 +000035// CHECK-NEXT: ('sh_type', 0x00000001)
Rafael Espindola5c4e52e2011-08-04 17:00:11 +000036// CHECK-NEXT: ('sh_flags', 0x0000000000000006)
37// CHECK-NEXT: ('sh_addr', 0x0000000000000000)
38// CHECK-NEXT: ('sh_offset', 0x0000000000000050)
39// CHECK-NEXT: ('sh_size', 0x0000000000000000)
Rafael Espindolad4a35262010-11-12 15:47:08 +000040// CHECK-NEXT: ('sh_link', 0x00000000)
41// CHECK-NEXT: ('sh_info', 0x00000000)
Rafael Espindola5c4e52e2011-08-04 17:00:11 +000042// CHECK-NEXT: ('sh_addralign', 0x0000000000000001)
43// CHECK-NEXT: ('sh_entsize', 0x0000000000000000)
Rafael Espindolad4a35262010-11-12 15:47:08 +000044// CHECK-NEXT: ),
Rafael Espindola014180d2011-08-04 13:39:15 +000045// CHECK-NEXT: # Section 12
Rafael Espindola9974b8b2011-04-07 23:51:25 +000046// CHECK-NEXT: (('sh_name', 0x00000076) # '.rodata'
Rafael Espindola4faf7c72010-11-08 02:47:59 +000047// CHECK-NEXT: ('sh_type', 0x00000001)
Rafael Espindola5c4e52e2011-08-04 17:00:11 +000048// CHECK-NEXT: ('sh_flags', 0x0000000000000002)
49// CHECK-NEXT: ('sh_addr', 0x0000000000000000)
50// CHECK-NEXT: ('sh_offset', 0x0000000000000050)
51// CHECK-NEXT: ('sh_size', 0x0000000000000000)
Rafael Espindola4faf7c72010-11-08 02:47:59 +000052// CHECK-NEXT: ('sh_link', 0x00000000)
53// CHECK-NEXT: ('sh_info', 0x00000000)
Rafael Espindola5c4e52e2011-08-04 17:00:11 +000054// CHECK-NEXT: ('sh_addralign', 0x0000000000000001)
55// CHECK-NEXT: ('sh_entsize', 0x0000000000000000)
Rafael Espindola4faf7c72010-11-08 02:47:59 +000056// CHECK-NEXT: ),
Rafael Espindola014180d2011-08-04 13:39:15 +000057// CHECK-NEXT: # Section 13
Rafael Espindola9974b8b2011-04-07 23:51:25 +000058// CHECK-NEXT: (('sh_name', 0x00000058) # 'zed'
Rafael Espindola6b8e4352010-11-25 15:32:56 +000059// CHECK-NEXT: ('sh_type', 0x00000001)
Rafael Espindola5c4e52e2011-08-04 17:00:11 +000060// CHECK-NEXT: ('sh_flags', 0x0000000000000000)
61// CHECK-NEXT: ('sh_addr', 0x0000000000000000)
62// CHECK-NEXT: ('sh_offset', 0x0000000000000050)
63// CHECK-NEXT: ('sh_size', 0x0000000000000000)
Rafael Espindola6b8e4352010-11-25 15:32:56 +000064// CHECK-NEXT: ('sh_link', 0x00000000)
65// CHECK-NEXT: ('sh_info', 0x00000000)
Rafael Espindola5c4e52e2011-08-04 17:00:11 +000066// CHECK-NEXT: ('sh_addralign', 0x0000000000000001)
67// CHECK-NEXT: ('sh_entsize', 0x0000000000000000)
Rafael Espindola6b8e4352010-11-25 15:32:56 +000068// CHECK-NEXT: ),
Rafael Espindolaf4b0f3e2010-10-28 21:33:33 +000069
Rafael Espindola98976612010-12-26 21:30:59 +000070.section .note.test,"",@note
Rafael Espindola9974b8b2011-04-07 23:51:25 +000071// CHECK: (('sh_name', 0x00000007) # '.note.test'
Rafael Espindola98976612010-12-26 21:30:59 +000072// CHECK-NEXT: ('sh_type', 0x00000007)
Rafael Espindola5c4e52e2011-08-04 17:00:11 +000073// CHECK-NEXT: ('sh_flags', 0x0000000000000000)
74// CHECK-NEXT: ('sh_addr', 0x0000000000000000)
75// CHECK-NEXT: ('sh_offset', 0x0000000000000050)
76// CHECK-NEXT: ('sh_size', 0x0000000000000000)
Rafael Espindola98976612010-12-26 21:30:59 +000077// CHECK-NEXT: ('sh_link', 0x00000000)
78// CHECK-NEXT: ('sh_info', 0x00000000)
Rafael Espindola5c4e52e2011-08-04 17:00:11 +000079// CHECK-NEXT: ('sh_addralign', 0x0000000000000001)
80// CHECK-NEXT: ('sh_entsize', 0x0000000000000000)
Rafael Espindola98976612010-12-26 21:30:59 +000081// CHECK-NEXT: ),
82
Rafael Espindolaf4b0f3e2010-10-28 21:33:33 +000083// Test that we can parse these
Rafael Espindola2ff9e832010-11-11 18:13:52 +000084foo:
85bar:
Rafael Espindolaf4b0f3e2010-10-28 21:33:33 +000086.section .text.foo,"axG",@progbits,foo,comdat
Rafael Espindola2ff9e832010-11-11 18:13:52 +000087.section .text.bar,"axMG",@progbits,42,bar,comdat
Rafael Espindola0cf5e3d2011-01-23 05:43:40 +000088
89// Test that the default values are not used
90
91.section .eh_frame,"a",@unwind
92
Rafael Espindola9974b8b2011-04-07 23:51:25 +000093// CHECK: (('sh_name', 0x0000004e) # '.eh_frame'
Rafael Espindola0cf5e3d2011-01-23 05:43:40 +000094// CHECK-NEXT: ('sh_type', 0x70000001)
Rafael Espindola5c4e52e2011-08-04 17:00:11 +000095// CHECK-NEXT: ('sh_flags', 0x0000000000000002)
96// CHECK-NEXT: ('sh_addr', 0x0000000000000000)
97// CHECK-NEXT: ('sh_offset', 0x0000000000000050)
98// CHECK-NEXT: ('sh_size', 0x0000000000000000)
Rafael Espindola0cf5e3d2011-01-23 05:43:40 +000099// CHECK-NEXT: ('sh_link', 0x00000000)
100// CHECK-NEXT: ('sh_info', 0x00000000)
Rafael Espindola5c4e52e2011-08-04 17:00:11 +0000101// CHECK-NEXT: ('sh_addralign', 0x0000000000000001)
102// CHECK-NEXT: ('sh_entsize', 0x0000000000000000)
Rafael Espindola0cf5e3d2011-01-23 05:43:40 +0000103// CHECK-NEXT: ),
Rafael Espindola184640e2011-01-24 18:02:54 +0000104
105// Test that we handle the strings like gas
106.section bar-"foo"
107.section "foo"
108
Rafael Espindola9974b8b2011-04-07 23:51:25 +0000109// CHECK: ('sh_name', 0x000000ab) # 'bar-"foo"'
110// CHECK: ('sh_name', 0x00000034) # 'foo'