Die obviously, rather than obscurely deep down in make_decl_llvm.
I hit this with the Ada f-e: it was replacing fields in a record type
without updating constructors, with the result that the constructor
element fields did not belong to the constructor type, and thus were
not laid out when the type was.

Ciao,

Duncan.
Index: gcc.llvm.master/gcc/llvm-convert.cpp
===================================================================
--- gcc.llvm.master.orig/gcc/llvm-convert.cpp	2007-02-28 11:00:24.000000000 +0100
+++ gcc.llvm.master/gcc/llvm-convert.cpp	2007-02-28 11:00:48.000000000 +0100
@@ -5110,6 +5110,7 @@
       ProcessBitFieldInitialization(Field, Val, STy, ResultElts);
     } else {
       // If not, things are much simpler.
+      assert(DECL_LLVM_SET_P(Field) && "Struct not laid out for LLVM?");
       unsigned FieldNo = cast<ConstantInt>(DECL_LLVM(Field))->getZExtValue();
       
       // If this is an initialization of a global that ends with a variable
_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to