[Bug target/52731] New: internal compiler error: in ia64_st_address_bypass_p, at config/ia64/ia64.c:9357

awl at passagen dot se gcc-bugzilla@gcc.gnu.org
Mon Mar 26 20:12:00 GMT 2012


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

             Bug #: 52731
           Summary: internal compiler error: in ia64_st_address_bypass_p,
                    at config/ia64/ia64.c:9357
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: awl@passagen.se


Created attachment 27004
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27004
Preprocessed test case

Internal compiler error in GCC 4.7.0 on IA64. Fault exists also in older
versions of GCC.

Target: ia64-unknown-linux-gnu
Configured with: /home/user/build/gcc-4.7.0/configure
--prefix=/home/user/software --with-gmp=/home/user/software
--with-mpfr=/home/user/software --with-mpc=/home/user/software
--with-system-libunwind --enable-languages=c,c++

$ gcc -c -O2 ia64_8451.cc
ia64_8451.cc: In function 'void fun(long unsigned int)':
ia64_8451.cc:16:1: internal compiler error: in ia64_st_address_bypass_p, at
config/ia64/ia64.c:9357
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
$ cat ia64_8451.cc
char* area;
long int area_size;
char* base;

void fun(unsigned long int addr)
{
   unsigned long int size32 = (addr + 4096 - 1) & ~(4096 - 1);
   unsigned long int size = size32 * sizeof(unsigned int);

   if (size > 0) {
      size = (size + 16384 -1) & ~(16384 - 1);
   }

   area_size = size;
   area = base + size;
}
$



More information about the Gcc-bugs mailing list