This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/14322] Unrecognizable lo_sum insn with -m64 and -fPIC
- From: "ebotcazou at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 15 Mar 2004 13:14:37 -0000
- Subject: [Bug bootstrap/14322] Unrecognizable lo_sum insn with -m64 and -fPIC
- References: <20040227162515.14322.ehrhardt@mathematik.uni-ulm.de>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From ebotcazou at gcc dot gnu dot org 2004-03-15 13:14 -------
Ok, so let's put aside the cc1 problem on mainline and requalify the bug as a
bootstrap failure on tree-ssa.
However, the only way I can think of to produce
(symbol_ref:SI ("foo"))
with -m64, which is invalid according to the manual
The `symbol_ref' contains a mode, which is usually `Pmode'.
Usually that is the only mode for which a symbol is directly valid.
because Pmode == DImode with -m64 in all cases, is to pass -mptr32 to cc1.
On mainline, the problem comes from these lines in convert_memory_address:
case SYMBOL_REF:
temp = shallow_copy_rtx (x);
PUT_MODE (temp, to_mode);
return temp;
break;
which appears to go against the manual. But this can't happen on mainline
through the compiler driver since all 64-bit SPARC ports in the FSF tree are
LP64 and, therefore, pass -mptr64 to cc1.
--
What |Removed |Added
----------------------------------------------------------------------------
Severity|normal |critical
Component|target |bootstrap
Keywords|accepts-invalid |ice-on-valid-code
Known to fail|tree-ssa 3.5.0 |tree-ssa
Priority|P2 |P1
Version|3.5.0 |tree-ssa
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14322