llvm-gcc 4.2 assertion failed on linux x86_64

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

llvm-gcc 4.2 assertion failed on linux x86_64

Chandler Carruth
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
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: llvm-gcc 4.2 assertion failed on linux x86_64

Bill Wendling
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
> [hidden email]         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: llvm-gcc 4.2 assertion failed on linux x86_64

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

chandlerc@osiris ~/code/compilers/build/llvm-gcc $ cat testcase.i
void
foo () {
  float x __attribute__ ((mode (XF)));
}
chandlerc@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 <[hidden email]> 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
>  > [hidden email]         http://llvm.cs.uiuc.edu
>  > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>  _______________________________________________
>  LLVM Developers mailing list
>  [hidden email]         http://llvm.cs.uiuc.edu
>  http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: llvm-gcc 4.2 assertion failed on linux x86_64

Duncan Sands
Hi Chandler,

> void
> foo () {
>   float x __attribute__ ((mode (XF)));
> }

nice reduction.  I don't see any problem on x86-32,
and I don't have access to an x86-64 box right now.
Can you please open a PR for this, and also run in
the debugger.  When you hit the abort, use "up" to
go up a stack frame or two or three, and print out
the gcc types [use: call debug_tree(type) ] and the
LLVM type [use: call Ty->dump() ].

Thanks,

Duncan.
_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: llvm-gcc 4.2 assertion failed on linux x86_64

Chandler Carruth
Here you go:

Starting program: /home/chandlerc/code/compilers/build/llvm-gcc/gcc/cc1 -fpreprocessed -march=k8 testcase.i -o /dev/null
warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7fff0d5fe000
[Thread debugging using libthread_db enabled]
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.
[New Thread 0x2b709e7b8440 (LWP 15687)]

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x2b709e7b8440 (LWP 15687)]
0x00002b709e48afa5 in raise () from /lib/libc.so.6
(gdb) up
#1  0x00002b709e48ca00 in abort () from /lib/libc.so.6
(gdb) up
#2  0x00002b709e4843df in __assert_fail () from /lib/libc.so.6
(gdb) up
#3  0x0000000000a84d3b in llvm_set_type (Tr=0x2b709d6f8790, Ty=0x166c210)
   at /home/chandlerc/code/compilers/llvm-gcc/gcc/llvm-types.cpp:78
78  assert((!TYPE_SIZE(Tr) || !Ty->isSized() || !isInt64(TYPE_SIZE(Tr), true) ||
(gdb) Ty->dump()
Undefined command: "Ty->dump".  Try "help".
(gdb) call Ty->dump()
x86_fp80
(gdb) call debug_tree(type)
No symbol "type" in current context.
(gdb) up
#4  0x0000000000a86501 in TypeConverter::ConvertType (this=0x16941a0, orig_type=0x2b709d6f8790)
   at /home/chandlerc/code/compilers/llvm-gcc/gcc/llvm-types.cpp:756
756    case 80: return SET_TYPE_LLVM(type, Type::X86_FP80Ty);
(gdb) call debug_tree(type)
<real_type 0x2b709d6f8790 long double sizes-gimplified XF
   size <integer_cst 0x2b709d6f39c0 type <integer_type 0x2b709d6e4370 bit_size_type> constant invariant 96>
   unit size <integer_cst 0x2b709d6f39f0 type <integer_type 0x2b709d6e42c0 long unsigned int> constant invariant 12>
   align 32 symtab 0 alias set -1 precision 80
   pointer_to_this <pointer_type 0x2b709d6f89a0>>
(gdb)


On Thu, Mar 27, 2008 at 1:18 AM, Duncan Sands <[hidden email]> wrote:
> Hi Chandler,
>  
>
>  > void
>  > foo () {
>  >   float x __attribute__ ((mode (XF)));
>  > }
>  
>  nice reduction.  I don't see any problem on x86-32,
>  and I don't have access to an x86-64 box right now.
>  Can you please open a PR for this, and also run in
>  the debugger.  When you hit the abort, use "up" to
>  go up a stack frame or two or three, and print out
>  the gcc types [use: call debug_tree(type) ] and the
>  LLVM type [use: call Ty->dump() ].
>  
>  Thanks,
>  
>  Duncan.
>  


_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: llvm-gcc 4.2 assertion failed on linux x86_64

Duncan Sands
Does this fix it?

Index: lib/Target/X86/X86Subtarget.h
===================================================================
--- lib/Target/X86/X86Subtarget.h (revision 48879)
+++ lib/Target/X86/X86Subtarget.h (working copy)
@@ -144,9 +144,12 @@
 
   std::string getDataLayout() const {
     const char *p;
-    if (is64Bit())
-      p = "e-p:64:64-s:64-f64:64:64-i64:64:64-f80:128:128";
-    else {
+    if (is64Bit()) {
+      if (isTargetDarwin())
+        p = "e-p:64:64-s:64-f64:64:64-i64:64:64-f80:128:128";
+      else
+        p = "e-p:64:64-s:64-f64:64:64-i64:64:64-f80:32:32";
+    } else {
       if (isTargetDarwin())
         p = "e-p:32:32-f64:32:64-i64:32:64-f80:128:128";
       else
_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: llvm-gcc 4.2 assertion failed on linux x86_64

Evan Cheng-2
Probably better to move the discussion to a bug?

Evan

On Mar 27, 2008, at 9:04 AM, Duncan Sands wrote:

> Does this fix it?
>
> Index: lib/Target/X86/X86Subtarget.h
> ===================================================================
> --- lib/Target/X86/X86Subtarget.h (revision 48879)
> +++ lib/Target/X86/X86Subtarget.h (working copy)
> @@ -144,9 +144,12 @@
>
>   std::string getDataLayout() const {
>     const char *p;
> -    if (is64Bit())
> -      p = "e-p:64:64-s:64-f64:64:64-i64:64:64-f80:128:128";
> -    else {
> +    if (is64Bit()) {
> +      if (isTargetDarwin())
> +        p = "e-p:64:64-s:64-f64:64:64-i64:64:64-f80:128:128";
> +      else
> +        p = "e-p:64:64-s:64-f64:64:64-i64:64:64-f80:32:32";
> +    } else {
>       if (isTargetDarwin())
>         p = "e-p:32:32-f64:32:64-i64:32:64-f80:128:128";
>       else
> _______________________________________________
> LLVM Developers mailing list
> [hidden email]         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: llvm-gcc 4.2 assertion failed on linux x86_64

Bill Wendling
Sure. Chandler, could you file a PR for this?

-bw

On Thu, Mar 27, 2008 at 2:32 PM, Evan Cheng <[hidden email]> wrote:

> Probably better to move the discussion to a bug?
>
>  Evan
>
>
>
>  On Mar 27, 2008, at 9:04 AM, Duncan Sands wrote:
>
>  > Does this fix it?
>  >
>  > Index: lib/Target/X86/X86Subtarget.h
>  > ===================================================================
>  > --- lib/Target/X86/X86Subtarget.h     (revision 48879)
>  > +++ lib/Target/X86/X86Subtarget.h     (working copy)
>  > @@ -144,9 +144,12 @@
>  >
>  >   std::string getDataLayout() const {
>  >     const char *p;
>  > -    if (is64Bit())
>  > -      p = "e-p:64:64-s:64-f64:64:64-i64:64:64-f80:128:128";
>  > -    else {
>  > +    if (is64Bit()) {
>  > +      if (isTargetDarwin())
>  > +        p = "e-p:64:64-s:64-f64:64:64-i64:64:64-f80:128:128";
>  > +      else
>  > +        p = "e-p:64:64-s:64-f64:64:64-i64:64:64-f80:32:32";
>  > +    } else {
>  >       if (isTargetDarwin())
>  >         p = "e-p:32:32-f64:32:64-i64:32:64-f80:128:128";
>  >       else
>  > _______________________________________________
>  > LLVM Developers mailing list
>  > [hidden email]         http://llvm.cs.uiuc.edu
>  > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>  _______________________________________________
>  LLVM Developers mailing list
>  [hidden email]         http://llvm.cs.uiuc.edu
>  http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev