This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/16357] New: ICE copying 7 bytes between extern char[]s


Compiling the following:

-----------------------------------------------------------
extern char foo[], bar[];
void f (void) { memcpy (foo, bar, 7); }
-----------------------------------------------------------

with mipsisa64-elf causes an ICE:

-----------------------------------------------------------
/tmp/foo.c: In function `f':
/tmp/foo.c:2: error: PRINT_OPERAND, invalid operand for relocation
(const:DI (plus:DI (symbol_ref:DI ("bar") [flags 0x40] <var_decl 0x401c2e80 bar>)
        (const_int 6 [0x6])))
/tmp/foo.c:2: internal compiler error: in print_operand_reloc, at
config/mips/mips.c:5624
-----------------------------------------------------------

The problem is due to incorrect mode usage in mips_block_move_straight.
Testing a fix now.

-- 
           Summary: ICE copying 7 bytes between extern char[]s
           Product: gcc
           Version: 3.4.1
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P2
         Component: target
        AssignedTo: rsandifo at gcc dot gnu dot org
        ReportedBy: rsandifo at gcc dot gnu dot org
                CC: echristo at redhat dot com,gcc-bugs at gcc dot gnu dot
                    org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: mipsisa64-elf


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16357


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]