[Bug rtl-optimization/33676] libgfortran bootstrap failure: selected_int_kind.f90:22: Segmentation fault, wrong code with -fomit-frame-pointer

Kenneth Zadeck zadeck@naturalbridge.com
Fri Oct 12 12:02:00 GMT 2007


Uros Bizjak wrote:
> On 10/12/07, Serge Belyshev <belyshev@depni.sinp.msu.ru> wrote:
>
>   
>>>>     PR middle-end/33676
>>>>     * gcc.dg/torture/pr33676.c: New.
>>>>         
>>> This is wrong place for tests that fail with "-fomit-frame-pointer".
>>> dg-torture will cycle all optimization levels, but
>>> -fomit-frame-pointer will be checked only at -O3. However, since we
>>> know that the testcase fails with "-O0 -fomit-frame-pointer", gcc.dg
>>> is a better place for this.
>>>       
>> But as the bug fixed, it doesn't fail anymore.  So this is in torture,
>> compiled several times, using different options, testing for *another*
>> (possibly similar, but doesn't matter) regression to appear.
>>
>> Also note that original bug failed not only with -O0 -fomit-frame-pointer
>> but also with any of: -O{0,1,2,3} -fomit-frame-pointer -march=i{3,4,5}86
>>     
>
> But under this rationale, we could apply torture procedure to the
> whole gcc.dg directory. All these files fail for multiple optimization
> levels and multiple sub-targets.
>
> Uros.
>   
I did what I was told to do by a middle end maintainer.  If y'all want
to change it, that is fine with me.

Kenny


[11:20] 	<zadeck> 	i have a question about the testcase in pr33676. I do
not know where it should go and what commands to put at the top of it,
it only triggers if you say -march=i586 so it really should only run on
that platform
[11:23] 	<richi <irc://irc.oftc.net/richi,isnick>> 	zadeck: just put it
in gcc.c-torture/execute
[11:23] 	<richi <irc://irc.oftc.net/richi,isnick>> 	zadeck: you can add
dg-options "-march=i586" conditional on target i?86-*-*
[11:24] 	<zadeck> 	thanks
[11:24] 	<richi <irc://irc.oftc.net/richi,isnick>> 	hm, then you need to
put it in gcc.dg/torture/ instead
[11:25] 	<zadeck> 	what is the difference between ../torture and
../execute, the only way to detect failure is to execute it.
[11:25] 	<richi <irc://irc.oftc.net/richi,isnick>> 	with /* { dg-do run
} */ /* { dg-options "-march=i586" { target i?86-*-* } } */
[11:26] 	<richi <irc://irc.oftc.net/richi,isnick>> 	gcc.dg/torture
allows dg commands, gcc.c-torture/* simply has execute, compile and link
tests separated by directory
[11:26] 	<zadeck> 	thanks
[11:27] 	<jsm28 <irc://irc.oftc.net/jsm28,isnick>> 	Note that { target {
{ i?86-*-* x86_64-*-* } && ilp32 } } is the correct target specifier for
32-bit x86.
[11:28] 	<richi <irc://irc.oftc.net/richi,isnick>> 	and to be even more
picky, -march=i586 will probably fail on real i386 hardware, so it
should be i[56]86-*-*
[11:28] 	<richi <irc://irc.oftc.net/richi,isnick>> 	;)



More information about the Gcc-patches mailing list