[LLVMdev] llvm-gcc 4.2 assertion failed on linux x86_64

Chandler Carruth
2008-03-27T06:47:23Z

Bam. This is about as reduced as it gets. I think I can spot the problem point:

chandlerc at osiris ~/code/compilers/build/llvm-gcc $ cat testcase.i
void
foo () {
  float x __attribute__ ((mode (XF)));
}
chandlerc at osiris ~/code/compilers/build/llvm-gcc $ ./gcc/cc1
-fpreprocessed -march=k8 testcase.i -o /dev/null
 foocc1: /home/chandlerc/code/compilers/llvm-gcc/gcc/llvm-types.cpp:81:
const llvm::Type* llvm_set_type(tree_node*, const llvm::Type*):
Assertion `(!(__extension__ ({ const tree __t = (Tr); if
(tree_code_type[(int) (((enum tree_code) (__t)->common.code))] !(tcc_type))
tree_class_check_failed (__t, (tcc_type),
"/home/chandlerc/code/compilers/llvm-gcc/gcc/llvm-types.cpp", 81,
__FUNCTION__); __t; })->type.size) || !Ty->isSized() ||
!isInt64((__extension__ ({ const tree __t = (Tr); if
(tree_code_type[(int) (((enum tree_code) (__t)->common.code))] !(tcc_type))
tree_class_check_failed (__t, (tcc_type),
"/home/chandlerc/code/compilers/llvm-gcc/gcc/llvm-types.cpp", 81,
__FUNCTION__); __t; })->type.size), true) || getInt64((__extension__
({ const tree __t = (Tr); if (tree_code_type[(int) (((enum tree_code)
(__t)->common.code))] != (tcc_type)) tree_class_check_failed (__t,
(tcc_type),
"/home/chandlerc/code/compilers/llvm-gcc/gcc/llvm-types.cpp",
81, __FUNCTION__); __t; })->type.size), true)
=getTargetData().getABITypeSizeInBits(Ty)) && "LLVM type size
doesn't
match GCC type size!"' failed.

testcase.i: In function 'foo':
testcase.i:2: internal compiler error: Aborted

Hope that helps. =]

-Chandler

PS: delta hates me, and this test case, a lot. reduced it by hand.



On Tue, Mar 25, 2008 at 12:51 AM, Bill Wendling <isanbard at gmail.com>
wrote:
> Hi Chandler,
>
>  This looks like a FE error, so you probably won't be able to get an
>  LLVM bitcode file for us. You could help by whittling the test case
>  down to something managable. First get a preprocessed file. Then I
>  would suggest following the instructions on this page to reduce the
>  testcase:
>
>         http://gcc.gnu.org/wiki/A_guide_to_testcase_reduction
>
>  That will help us a lot with the bug report.
>
>  -bw
>
>
>
>  On Mar 24, 2008, at 11:49 PM, Chandler Carruth wrote:
>  > Hello,
>  >
>  > Trying to get my machine building up-to-date, and a nightly going, i
>  > ran into an assertion during the build of llvm-gcc 4.2:
>  >
>  > $ make -j2
>  > <snip!>
>  > /home/chandlerc/code/compilers/build/llvm-gcc/./gcc/xgcc
>  > -B/home/chandlerc/code/compilers/build/llvm-gcc/./gcc/
>  > -B/home/chandlerc/code/compilers/install/llvm-gcc/x86_64-pc-linux-
>  > gnu/bin/
>  > -B/home/chandlerc/code/compilers/install/llvm-gcc/x86_64-pc-linux-
>  > gnu/lib/
>  > -isystem /home/chandlerc/code/compilers/install/llvm-gcc/x86_64-pc-
>  > linux-gnu/include
>  > -isystem /home/chandlerc/code/compilers/install/llvm-gcc/x86_64-pc-
>  > linux-gnu/sys-include
>  > -O2  -O2 -march=k8 -mfpmath=sse -pipe  -DIN_GCC    -W -Wall
>  > -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
>  > -Wold-style-definition  -isystem ./include  -fPIC -g
>  > -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  -I. -I.
>  > -I/home/chandlerc/code/compilers/llvm-gcc/gcc
>  > -I/home/chandlerc/code/compilers/llvm-gcc/gcc/.
>  > -I/home/chandlerc/code/compilers/llvm-gcc/gcc/../include
>  > -I/home/chandlerc/code/compilers/llvm-gcc/gcc/../libcpp/include
>  > -I/home/chandlerc/code/compilers/llvm-gcc/gcc/../libdecnumber
>  > -I../libdecnumber -I/home/chandlerc/code/compilers/llvm/include
>  > -I/home/chandlerc/code/compilers/build/llvm/include -DL_powitf2 -c
>  > /home/chandlerc/code/compilers/llvm-gcc/gcc/libgcc2.c -o
>  > libgcc/./_powitf2.o
>  > cc1: /home/chandlerc/code/compilers/llvm-gcc/gcc/llvm-types.cpp:81:
>  > const llvm::Type* llvm_set_type(tree_node*, const llvm::Type*):
>  > Assertion `(!(__extension__ ({ const tree __t = (Tr); if
>  > (tree_code_type[(int) (((enum tree_code) (__t)->common.code))]
!>  > (tcc_type)) tree_class_check_failed (__t, (tcc_type),
>  >
"/home/chandlerc/code/compilers/llvm-gcc/gcc/llvm-types.cpp", 81,
>  > __FUNCTION__); __t; })->type.size) || !Ty->isSized() ||
>  > !isInt64((__extension__ ({ const tree __t = (Tr); if
>  > (tree_code_type[(int) (((enum tree_code) (__t)->common.code))]
!>  > (tcc_type)) tree_class_check_failed (__t, (tcc_type),
>  >
"/home/chandlerc/code/compilers/llvm-gcc/gcc/llvm-types.cpp", 81,
>  > __FUNCTION__); __t; })->type.size), true) ||
getInt64((__extension__
>  > ({ const tree __t = (Tr); if (tree_code_type[(int) (((enum tree_code)
>  > (__t)->common.code))] != (tcc_type)) tree_class_check_failed (__t,
>  > (tcc_type), "/home/chandlerc/code/compilers/llvm-gcc/gcc/llvm-
>  > types.cpp",
>  > 81, __FUNCTION__); __t; })->type.size), true) =>  >
getTargetData().getABITypeSizeInBits(Ty)) && "LLVM type size
doesn't
>  > match GCC type size!"' failed.
>  > /home/chandlerc/code/compilers/llvm-gcc/gcc/libgcc2.c: In function
>  > '__powixf2':
>  > /home/chandlerc/code/compilers/llvm-gcc/gcc/libgcc2.c:1765: internal
>  > compiler error: Aborted
>  >
>  > My configure:
>  > .../configure   --host=x86_64-pc-linux-gnu
--build=x86_64-pc-linux-gnu
>  > --target=x86_64-pc-linux-gnu
>  > --prefix=/home/chandlerc/code/compilers/install/llvm-gcc
>  > --disable-multilib --disable-shared
>  > --enable-llvm=/home/chandlerc/code/compilers/build/llvm
>  > --program-prefix=llvm- --enable-languages=c,c++
>  >
>  > If more information would help, just let me know.
>  >
>  > -Chandler
>  > _______________________________________________
>  > LLVM Developers mailing list
>  > LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>  > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>  _______________________________________________
>  LLVM Developers mailing list
>  LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>  http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>