This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: Linux/PPC gcc 2.95.2 - bad access generated when using inline func
- To: Richard Henderson <rth at cygnus dot com>
- Subject: Re: Linux/PPC gcc 2.95.2 - bad access generated when using inline func
- From: Franz Sirl <Franz dot Sirl-kernel at lauterbach dot com>
- Date: Fri, 07 Jul 2000 15:05:25 +0200
- Cc: rearnsha at arm dot com,Geoff Keating <geoffk at cygnus dot com>,cort at fsmlabs dot com,gcc-bugs at gcc dot gnu dot org
- References: <4.3.2.7.2.20000630151430.033a7a20@mail.lauterbach.com><Your <4.3.2.7.2.20000630142601.00de6280@mail.lauterbach.com><200006301244.NAA10398@cam-mail2.cambridge.arm.com><4.3.2.7.2.20000630151430.033a7a20@mail.lauterbach.com>
At 07:51 07.07.00, Richard Henderson wrote:
>On Fri, Jun 30, 2000 at 03:55:56PM +0200, Franz Sirl wrote:
> > Find appended the current patch I'm working with and a testcase. Currently
> > the testcase still aborts with even my patch, but this is due to bug in
> > label handling in the current mainline...
>
>This is not a bug. Your label is not the target of a goto, and
>so plays no part in the CFG, and so is deleted. Your test case
>does not do what you think it does. And anyway, it's not going
>to work on quite a lot of architectures.
Ah, so taking the address of the label isn't enough? I didn't expect that.
The label isn't deleted anyway, it's just moved into the wrong place. I
guess my test is non-portable because I can't assume
__builtin_return_address(0) == &&label and the ABI may mandate instructions
to be between __builtin_return_address(0) and &&label? Or they may be
scheduled there?
I think I'll split the testcase into a range+equality test for targets
supporting __builtin_return_address(0) _and_ __builtin_return_address(1),
and a range check for all others (but still depending on NO_LABEL_VALUES,
as usual). Can I leave the equality test turned on for ALL targets for a
while, until I know which are real XFAIL's? Well, I know alpha will be
XFAIL, cause it doesn't support __builtin_return_address(1) :-).
Franz.