Patchwork [AARCH64/Committed] Fix g++.dg/abi/aarch64_guard1.C

login
register
mail settings
Submitter Andrew Pinski
Date Nov. 6, 2012, 10:05 p.m.
Message ID <CA+=Sn1m21tP6s8Q=-3iUmmce_x5smJdPKNrBe-++LRHC+oeMzw@mail.gmail.com>
Download mbox | patch
Permalink /patch/197559/
State New
Headers show

Comments

Andrew Pinski - Nov. 6, 2012, 10:05 p.m.
Hi,
  The problem here is with section anchors turned on, we generate a
BSS rather than a local common symbol and we no longer match the
pattern: "_ZGVZ3foovE1x,8,8".  This fixes this testcase by just adding
-fno-section-anchors.

Thanks,
Andrew Pinski

2012-11-06  Andrew Pinski  <apinski@cavium.com>

	* g++.dg/abi/aarch64_guard1.C: Add -fno-section-anchors.
Richard Earnshaw - Nov. 28, 2012, 3:20 p.m.
On 06/11/12 22:05, Andrew Pinski wrote:
> Hi,
>    The problem here is with section anchors turned on, we generate a
> BSS rather than a local common symbol and we no longer match the
> pattern: "_ZGVZ3foovE1x,8,8".  This fixes this testcase by just adding
> -fno-section-anchors.
>

Why is -fsection-anchors changing the choice of output section?  Sure, 
section anchors are more useful when you use BSS rather than Common, but 
it shouldn't in itself be changing that choice.

R.

> Thanks,
> Andrew Pinski
>
> 2012-11-06  Andrew Pinski  <apinski@cavium.com>
>
> 	* g++.dg/abi/aarch64_guard1.C: Add -fno-section-anchors.
>
>
> fixabitestcase.diff.txt
>
>
> Index: g++.dg/abi/aarch64_guard1.C
> ===================================================================
> --- g++.dg/abi/aarch64_guard1.C	(revision 193259)
> +++ g++.dg/abi/aarch64_guard1.C	(working copy)
> @@ -2,7 +2,7 @@
>   // 8-byte doubleword and that only the least significant bit is used
>   // for initialization guard variables.
>   // { dg-do compile { target aarch64*-*-* } }
> -// { dg-options "-O -fdump-tree-original" }
> +// { dg-options "-O -fdump-tree-original -fno-section-anchors" }
>
>   int bar();
>
>
Richard Sandiford - Nov. 28, 2012, 9 p.m.
Richard Earnshaw <rearnsha@arm.com> writes:
> On 06/11/12 22:05, Andrew Pinski wrote:
>> Hi,
>>    The problem here is with section anchors turned on, we generate a
>> BSS rather than a local common symbol and we no longer match the
>> pattern: "_ZGVZ3foovE1x,8,8".  This fixes this testcase by just adding
>> -fno-section-anchors.
>>
>
> Why is -fsection-anchors changing the choice of output section?  Sure, 
> section anchors are more useful when you use BSS rather than Common, but 
> it shouldn't in itself be changing that choice.

It's not really changing the output section, just the assembly syntax
used to define the symbol.  Local common ends up as the equivalent of:

	.section .bss,...
	.align   M
foo:
	.size    N

Richard

Patch

Index: g++.dg/abi/aarch64_guard1.C
===================================================================
--- g++.dg/abi/aarch64_guard1.C	(revision 193259)
+++ g++.dg/abi/aarch64_guard1.C	(working copy)
@@ -2,7 +2,7 @@ 
 // 8-byte doubleword and that only the least significant bit is used
 // for initialization guard variables.
 // { dg-do compile { target aarch64*-*-* } }
-// { dg-options "-O -fdump-tree-original" }
+// { dg-options "-O -fdump-tree-original -fno-section-anchors" }
 
 int bar();