[LLVMbugs] [Bug 5353] New: llvm-gcc-4.2 RELEASE_26 compilation failure on Solaris/ SPARC - unhandled REAL_TYPE during compilation of '__powitf2'

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Fri Oct 30 06:03:38 PDT 2009


           Summary: llvm-gcc-4.2 RELEASE_26 compilation failure on
                    Solaris/SPARC - unhandled REAL_TYPE during compilation
                    of '__powitf2'
           Product: tools
           Version: 2.6
          Platform: Sun
        OS/Version: SunOS
            Status: NEW
          Keywords: crash-on-invalid, portability
          Severity: major
          Priority: P2
         Component: llvm-gcc
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: jnzimmer at web.de
                CC: llvmbugs at cs.uiuc.edu

Hi all,
I'm currently trying to bootstrap llvm-gcc-4.2 from the latest stable LLVM
release 2.6
on Solaris SPARC.

The compilation with a self-build gcc-4.2.4 goes pretty well, however, I hit
a seemingly widely know error during llvm-gcc's bootstrap in getting
an assertion during the compile of /data/LLVM/src/GCC/RELEASE_26/gcc/libgcc2.c:

/data/LLVM/src/GCC/RELEASE_26/gcc/libgcc2.c: In function '__powitf2':
/data/LLVM/src/GCC/RELEASE_26/gcc/libgcc2.c:1765: internal compiler error: in
HandleArgument, at llvm-abi.h:535

Looking into the code of llvm-abi.h, I added the following patch to it:
--- /data/LLVM/src/GCC/RELEASE_26/gcc/llvm-abi.h.jnz    Thu Oct 29 00:32:52
+++ /data/LLVM/src/GCC/RELEASE_26/gcc/llvm-abi.h        Fri Oct 30 13:09:09
@@ -529,7 +529,12 @@
         HandleArgument(TREE_TYPE(type), ScalarElts);
+    } else if (TREE_CODE(type) == REAL_TYPE) {
+      fprintf(stderr,"unhandled REAL_TYPE!\n");
+      assert(0 && "unhandled REAL_TYPE!");
+      abort();
     } else {
+      fprintf(stderr,"unknown aggreate type %d\n",TREE_CODE(type));
       assert(0 && "unknown aggregate type!");

Note that at first, I only inserted the last fprintf to get a better
understanding what's going wrong and found out that TREE_CODE(type) has
value 9 which matches REAL_TYPE from my understanding.

With the full patch, I get the assertion of the 'unhandled REAL_TYPE!',
so I wonder what needs to be done in order to get LLVM to produce
code for 'TREE_CODE(type) == REAL_TYPE' in the 'HandleArgument' function.

Does anyone have an idea? And why does this only happen on SPARC? 

llvm-gcc was configured as:
data/LLVM/src/GCC/RELEASE_26/configure   --prefix=/data/LLVM/inst
--disable-bootstrap --disable-multilib --program-prefix=llvm- --with-gnu-as
--with-as=/data/LLVM/GCC/bin/as --without-gnu-ld --with-ld=/usr/ccs
/bin/ld --with-gmp=/data/LLVM/GCC --with-mpfr=/data/LLVM/GCC
--enable-llvm=/data/LLVM/src/llvm-build --enable-languages=c,c++

Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

More information about the llvm-bugs mailing list