This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: PR target/843
- To: Philip Blundell <philb at gnu dot org>
- Subject: Re: PR target/843
- From: Richard Earnshaw <rearnsha at arm dot com>
- Date: Sun, 22 Apr 2001 15:31:49 +0100
- cc: gcc at gcc dot gnu dot org, Richard dot Earnshaw at arm dot com
- Organization: ARM Ltd.
- Reply-To: Richard dot Earnshaw at arm dot com
> This bug afflicts gcc-2.95.3, the 3.0 branch and the trunk. It seems to crop
> up almost every time somebody tries to use Fortran on the ARM; there are four
> or five packages in the Debian distribution that trigger it, for example.
>
> Can anybody give me some clues as to how I might go about debugging this
> failure?
>
> Thanks
>
> p.
>
>
The matcher for movdf uses general_operand. Which, for PIC compilation,
only allows CONSTANT_P if it is also a LEGITIMATE_PIC_OPERAND_P. But this
rejects anything that mentions a symbol; and the const_double contains a
symbol for its in-memory representation.
I think we should probably fix LEGITIMATE_PIC_OEPRAND_P to always allow
const_double, but it needs some careful checking to make sure it doesn't
affect anything else.
I've no idea why this only happens with Fortran... It's probably
something to do with the way the expanders work.
R.