Rafael Espindola | bda1980 | 2015-04-30 14:21:49 +0000 | [diff] [blame] | 1 | // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -t -sd | FileCheck %s |
Rafael Espindola | a3e9a22 | 2010-11-11 18:13:52 +0000 | [diff] [blame] | 2 | |
Rafael Espindola | bda1980 | 2015-04-30 14:21:49 +0000 | [diff] [blame] | 3 | // Test that we produce the group sections and that they are before the members |
Rafael Espindola | a3e9a22 | 2010-11-11 18:13:52 +0000 | [diff] [blame] | 4 | |
Nico Rieck | ba848e3 | 2013-04-12 04:06:46 +0000 | [diff] [blame] | 5 | // CHECK: Section { |
Rafael Espindola | 2b27b2f | 2015-11-03 20:02:22 +0000 | [diff] [blame] | 6 | // CHECK: Index: 3 |
Nico Rieck | ba848e3 | 2013-04-12 04:06:46 +0000 | [diff] [blame] | 7 | // CHECK-NEXT: Name: .group |
| 8 | // CHECK-NEXT: Type: SHT_GROUP |
| 9 | // CHECK-NEXT: Flags [ |
| 10 | // CHECK-NEXT: ] |
| 11 | // CHECK-NEXT: Address: 0x0 |
Rafael Espindola | fc33702 | 2015-04-30 13:57:06 +0000 | [diff] [blame] | 12 | // CHECK-NEXT: Offset: |
Nico Rieck | ba848e3 | 2013-04-12 04:06:46 +0000 | [diff] [blame] | 13 | // CHECK-NEXT: Size: 12 |
Rafael Espindola | 88d1f63 | 2015-04-29 20:25:24 +0000 | [diff] [blame] | 14 | // CHECK-NEXT: Link: |
Nico Rieck | ba848e3 | 2013-04-12 04:06:46 +0000 | [diff] [blame] | 15 | // CHECK-NEXT: Info: 1 |
| 16 | // CHECK-NEXT: AddressAlignment: 4 |
| 17 | // CHECK-NEXT: EntrySize: 4 |
Rafael Espindola | bda1980 | 2015-04-30 14:21:49 +0000 | [diff] [blame] | 18 | // CHECK-NEXT: SectionData ( |
Rafael Espindola | 2b27b2f | 2015-11-03 20:02:22 +0000 | [diff] [blame] | 19 | // CHECK-NEXT: 0000: 01000000 04000000 05000000 |
Rafael Espindola | bda1980 | 2015-04-30 14:21:49 +0000 | [diff] [blame] | 20 | // CHECK-NEXT: ) |
Nico Rieck | ba848e3 | 2013-04-12 04:06:46 +0000 | [diff] [blame] | 21 | // CHECK-NEXT: } |
Rafael Espindola | bda1980 | 2015-04-30 14:21:49 +0000 | [diff] [blame] | 22 | // CHECK: Section { |
Rafael Espindola | 2b27b2f | 2015-11-03 20:02:22 +0000 | [diff] [blame] | 23 | // CHECK: Index: 6 |
Nico Rieck | ba848e3 | 2013-04-12 04:06:46 +0000 | [diff] [blame] | 24 | // CHECK-NEXT: Name: .group |
| 25 | // CHECK-NEXT: Type: SHT_GROUP |
| 26 | // CHECK-NEXT: Flags [ |
| 27 | // CHECK-NEXT: ] |
| 28 | // CHECK-NEXT: Address: 0x0 |
Rafael Espindola | fc33702 | 2015-04-30 13:57:06 +0000 | [diff] [blame] | 29 | // CHECK-NEXT: Offset: |
Rafael Espindola | 88d1f63 | 2015-04-29 20:25:24 +0000 | [diff] [blame] | 30 | // CHECK-NEXT: Size: 8 |
| 31 | // CHECK-NEXT: Link: |
| 32 | // CHECK-NEXT: Info: 2 |
| 33 | // CHECK-NEXT: AddressAlignment: 4 |
| 34 | // CHECK-NEXT: EntrySize: 4 |
Rafael Espindola | bda1980 | 2015-04-30 14:21:49 +0000 | [diff] [blame] | 35 | // CHECK-NEXT: SectionData ( |
Rafael Espindola | 2b27b2f | 2015-11-03 20:02:22 +0000 | [diff] [blame] | 36 | // CHECK-NEXT: 0000: 01000000 07000000 |
Rafael Espindola | bda1980 | 2015-04-30 14:21:49 +0000 | [diff] [blame] | 37 | // CHECK-NEXT: ) |
Rafael Espindola | 88d1f63 | 2015-04-29 20:25:24 +0000 | [diff] [blame] | 38 | // CHECK-NEXT: } |
Rafael Espindola | bda1980 | 2015-04-30 14:21:49 +0000 | [diff] [blame] | 39 | // CHECK: Section { |
Rafael Espindola | 2b27b2f | 2015-11-03 20:02:22 +0000 | [diff] [blame] | 40 | // CHECK: Index: 8 |
Rafael Espindola | 88d1f63 | 2015-04-29 20:25:24 +0000 | [diff] [blame] | 41 | // CHECK-NEXT: Name: .group |
| 42 | // CHECK-NEXT: Type: SHT_GROUP |
| 43 | // CHECK-NEXT: Flags [ |
| 44 | // CHECK-NEXT: ] |
| 45 | // CHECK-NEXT: Address: 0x0 |
Rafael Espindola | fc33702 | 2015-04-30 13:57:06 +0000 | [diff] [blame] | 46 | // CHECK-NEXT: Offset: |
Tim Northover | a630fb0 | 2013-07-10 20:58:17 +0000 | [diff] [blame] | 47 | // CHECK-NEXT: Size: 12 |
Rafael Espindola | 88d1f63 | 2015-04-29 20:25:24 +0000 | [diff] [blame] | 48 | // CHECK-NEXT: Link: |
Rafael Espindola | a401eee | 2015-06-04 15:33:30 +0000 | [diff] [blame] | 49 | // CHECK-NEXT: Info: 3 |
Nico Rieck | ba848e3 | 2013-04-12 04:06:46 +0000 | [diff] [blame] | 50 | // CHECK-NEXT: AddressAlignment: 4 |
| 51 | // CHECK-NEXT: EntrySize: 4 |
Rafael Espindola | bda1980 | 2015-04-30 14:21:49 +0000 | [diff] [blame] | 52 | // CHECK-NEXT: SectionData ( |
Rafael Espindola | 2b27b2f | 2015-11-03 20:02:22 +0000 | [diff] [blame] | 53 | // CHECK-NEXT: 0000: 01000000 09000000 0A000000 |
Rafael Espindola | bda1980 | 2015-04-30 14:21:49 +0000 | [diff] [blame] | 54 | // CHECK-NEXT: ) |
Nico Rieck | ba848e3 | 2013-04-12 04:06:46 +0000 | [diff] [blame] | 55 | // CHECK-NEXT: } |
Rafael Espindola | 7d0ba34 | 2010-11-14 04:17:37 +0000 | [diff] [blame] | 56 | |
| 57 | // Test that g1 and g2 are local, but g3 is an undefined global. |
| 58 | |
Nico Rieck | ba848e3 | 2013-04-12 04:06:46 +0000 | [diff] [blame] | 59 | // CHECK: Symbol { |
Hans Wennborg | 83e6e1e | 2014-04-30 16:25:02 +0000 | [diff] [blame] | 60 | // CHECK: Name: g1 |
Nico Rieck | ba848e3 | 2013-04-12 04:06:46 +0000 | [diff] [blame] | 61 | // CHECK-NEXT: Value: 0x0 |
| 62 | // CHECK-NEXT: Size: 0 |
| 63 | // CHECK-NEXT: Binding: Local |
| 64 | // CHECK-NEXT: Type: None |
| 65 | // CHECK-NEXT: Other: 0 |
Rafael Espindola | 88d1f63 | 2015-04-29 20:25:24 +0000 | [diff] [blame] | 66 | // CHECK-NEXT: Section: .foo |
Nico Rieck | ba848e3 | 2013-04-12 04:06:46 +0000 | [diff] [blame] | 67 | // CHECK-NEXT: } |
| 68 | // CHECK-NEXT: Symbol { |
Hans Wennborg | 83e6e1e | 2014-04-30 16:25:02 +0000 | [diff] [blame] | 69 | // CHECK-NEXT: Name: g2 |
Nico Rieck | ba848e3 | 2013-04-12 04:06:46 +0000 | [diff] [blame] | 70 | // CHECK-NEXT: Value: 0x0 |
| 71 | // CHECK-NEXT: Size: 0 |
| 72 | // CHECK-NEXT: Binding: Local |
| 73 | // CHECK-NEXT: Type: None |
| 74 | // CHECK-NEXT: Other: 0 |
Rafael Espindola | 2b27b2f | 2015-11-03 20:02:22 +0000 | [diff] [blame] | 75 | // CHECK-NEXT: Section: .group |
Nico Rieck | ba848e3 | 2013-04-12 04:06:46 +0000 | [diff] [blame] | 76 | // CHECK-NEXT: } |
Rafael Espindola | 7d0ba34 | 2010-11-14 04:17:37 +0000 | [diff] [blame] | 77 | |
Nico Rieck | ba848e3 | 2013-04-12 04:06:46 +0000 | [diff] [blame] | 78 | // CHECK: Symbol { |
Hans Wennborg | 83e6e1e | 2014-04-30 16:25:02 +0000 | [diff] [blame] | 79 | // CHECK: Name: g3 |
Nico Rieck | ba848e3 | 2013-04-12 04:06:46 +0000 | [diff] [blame] | 80 | // CHECK-NEXT: Value: 0x0 |
| 81 | // CHECK-NEXT: Size: 0 |
| 82 | // CHECK-NEXT: Binding: Global |
| 83 | // CHECK-NEXT: Type: None |
| 84 | // CHECK-NEXT: Other: 0 |
Rafael Espindola | cfee7ef | 2014-03-24 05:00:34 +0000 | [diff] [blame] | 85 | // CHECK-NEXT: Section: Undefined (0x0) |
Nico Rieck | ba848e3 | 2013-04-12 04:06:46 +0000 | [diff] [blame] | 86 | // CHECK-NEXT: } |
Rafael Espindola | 7d0ba34 | 2010-11-14 04:17:37 +0000 | [diff] [blame] | 87 | |
Rafael Espindola | a3e9a22 | 2010-11-11 18:13:52 +0000 | [diff] [blame] | 88 | |
| 89 | .section .foo,"axG",@progbits,g1,comdat |
| 90 | g1: |
| 91 | nop |
| 92 | |
David Majnemer | a4b521b | 2013-09-15 19:24:16 +0000 | [diff] [blame] | 93 | .section .bar,"ax?",@progbits |
Rafael Espindola | a3e9a22 | 2010-11-11 18:13:52 +0000 | [diff] [blame] | 94 | nop |
| 95 | |
| 96 | .section .zed,"axG",@progbits,g2,comdat |
Rafael Espindola | a3e9a22 | 2010-11-11 18:13:52 +0000 | [diff] [blame] | 97 | nop |
Rafael Espindola | 7d0ba34 | 2010-11-14 04:17:37 +0000 | [diff] [blame] | 98 | |
| 99 | .section .baz,"axG",@progbits,g3,comdat |
| 100 | .long g3 |