Message ID | CA+=Sn1m21tP6s8Q=-3iUmmce_x5smJdPKNrBe-++LRHC+oeMzw@mail.gmail.com |
---|---|
State | New |
Headers | show |
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 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
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();