| @ RUN: llvm-mc %s -triple=armv7-unknown-linux-gnueabi -filetype=obj -o - \ | 
 | @ RUN:   | llvm-readobj -s -sd -sr -t | FileCheck %s | 
 |  | 
 | @ Check the .group section for the function in comdat section. | 
 |  | 
 | @ In C++, the instantiation of the template will come with linkonce (or | 
 | @ linkonce_odr) linkage, so that the linker can remove the duplicated | 
 | @ instantiation.  When the exception handling is enabled on those function, | 
 | @ we have to group the corresponding .ARM.extab and .ARM.exidx with the | 
 | @ text section together. | 
 | @ | 
 | @ This test case will check the content of .group section.  The section index | 
 | @ of the grouped sections should be recorded in .group section. | 
 |  | 
 | 	.syntax unified | 
 | 	.section	.TEST1,"axG",%progbits,func1,comdat | 
 | 	.weak	func1 | 
 | 	.align	2 | 
 | 	.type	func1,%function | 
 | func1: | 
 | 	.fnstart | 
 | 	.save	{r4, lr} | 
 | 	push	{r4, lr} | 
 | 	.vsave	{d8, d9, d10, d11, d12} | 
 | 	vpush	{d8, d9, d10, d11, d12} | 
 | 	.pad	#24 | 
 | 	sub	sp, sp, #24 | 
 |  | 
 | 	add	sp, sp, #24 | 
 | 	vpop	{d8, d9, d10, d11, d12} | 
 | 	pop	{r4, pc} | 
 |  | 
 | 	.globl	__gxx_personality_v0 | 
 | 	.personality __gxx_personality_v0 | 
 | 	.handlerdata | 
 | 	.fnend | 
 |  | 
 |  | 
 |  | 
 | @------------------------------------------------------------------------------- | 
 | @ Check the .group section | 
 | @------------------------------------------------------------------------------- | 
 | @ CHECK: Sections [ | 
 | @ CHECK:   Section { | 
 | @ CHECK:     Index: 1 | 
 | @ CHECK:     Name: .group | 
 | @ CHECK:     Type: SHT_GROUP (0x11) | 
 | @ CHECK:     Flags [ (0x0) | 
 | @ CHECK:     ] | 
 | @ CHECK:     Size: 24 | 
 | @ CHECK:     SectionData ( | 
 | @------------------------------------------------------------------------------- | 
 | @ These are the section indexes of .TEST1, .ARM.extab.TEST1, .ARM.exidx.TEST1, | 
 | @ .rel.ARM.extab.TEST1, and .rel.ARM.exidx.TEST1. | 
 | @------------------------------------------------------------------------------- | 
 | @ CHECK-NEXT:     0000: 01000000 04000000 05000000 06000000 | 
 | @ CHECK-NEXT:     0010: 07000000 08000000 | 
 | @ CHECK-NEXT:     ) | 
 | @ CHECK:   } | 
 |  | 
 |  | 
 | @------------------------------------------------------------------------------- | 
 | @ Check the .TEST1 section | 
 | @------------------------------------------------------------------------------- | 
 | @ CHECK:   Section { | 
 | @ CHECK:     Index: 4 | 
 | @ CHECK-NEXT:     Name: .TEST1 | 
 | @ CHECK:     Type: SHT_PROGBITS (0x1) | 
 | @------------------------------------------------------------------------------- | 
 | @ The flags should contain SHF_GROUP. | 
 | @------------------------------------------------------------------------------- | 
 | @ CHECK:     Flags [ (0x206) | 
 | @ CHECK:       SHF_ALLOC (0x2) | 
 | @ CHECK:       SHF_EXECINSTR (0x4) | 
 | @ CHECK:       SHF_GROUP (0x200) | 
 | @ CHECK:     ] | 
 | @ CHECK:   } | 
 |  | 
 |  | 
 | @------------------------------------------------------------------------------- | 
 | @ Check the .ARM.extab.TEST1 section | 
 | @------------------------------------------------------------------------------- | 
 | @ CHECK:   Section { | 
 | @ CHECK:     Index: 5 | 
 | @ CHECK-NEXT:     Name: .ARM.extab.TEST1 | 
 | @ CHECK:     Type: SHT_PROGBITS (0x1) | 
 | @------------------------------------------------------------------------------- | 
 | @ The flags should contain SHF_GROUP. | 
 | @------------------------------------------------------------------------------- | 
 | @ CHECK:     Flags [ (0x202) | 
 | @ CHECK:       SHF_ALLOC (0x2) | 
 | @ CHECK:       SHF_GROUP (0x200) | 
 | @ CHECK:     ] | 
 | @ CHECK:   } | 
 |  | 
 | @ CHECK:   Section { | 
 | @ CHECK:     Index: 6 | 
 | @ CHECK-NEXT:     Name: .rel.ARM.extab.TEST1 | 
 | @ CHECK: } | 
 |  | 
 | @------------------------------------------------------------------------------- | 
 | @ Check the .ARM.exidx.TEST1 section | 
 | @------------------------------------------------------------------------------- | 
 | @ CHECK:   Section { | 
 | @ CHECK:     Index: 7 | 
 | @ CHECK-NEXT:     Name: .ARM.exidx.TEST1 | 
 | @ CHECK:     Type: SHT_ARM_EXIDX (0x70000001) | 
 | @------------------------------------------------------------------------------- | 
 | @ The flags should contain SHF_GROUP. | 
 | @------------------------------------------------------------------------------- | 
 | @ CHECK:     Flags [ (0x282) | 
 | @ CHECK:       SHF_ALLOC (0x2) | 
 | @ CHECK:       SHF_GROUP (0x200) | 
 | @ CHECK:       SHF_LINK_ORDER (0x80) | 
 | @ CHECK:     ] | 
 | @ CHECK:     Link: 4 | 
 | @ CHECK:   } | 
 |  | 
 |  | 
 | @ CHECK:   Section { | 
 | @ CHECK:     Index: 8 | 
 | @ CHECK-NEXT:     Name: .rel.ARM.exidx.TEST1 | 
 | @ CHECK: } | 
 |  | 
 | @ CHECK: ] | 
 |  | 
 | @------------------------------------------------------------------------------- | 
 | @ Check symbol func1.  It should be weak binding, and belong to .TEST1 section. | 
 | @------------------------------------------------------------------------------- | 
 | @ CHECK: Symbols [ | 
 | @ CHECK:   Symbol { | 
 | @ CHECK:     Name: func1 | 
 | @ CHECK:     Binding: Weak (0x2) | 
 | @ CHECK:     Type: Function (0x2) | 
 | @ CHECK:     Section: .TEST1 | 
 | @ CHECK:   } | 
 | @ CHECK: ] |