2007/12/14, Oliver Hunt <[EMAIL PROTECTED]>:
> The problem is that the inner ILE (eg. { 0x00aa, ...} ) is
> initialised to void, and the correct type is never set.

This seems to do the job for this specific case, but I know it isn't a
complete solution. In the mean time, you can use it to find other
failures.

Index: Sema/SemaDecl.cpp
===================================================================
--- Sema/SemaDecl.cpp   (revision 45029)
+++ Sema/SemaDecl.cpp   (working copy)
@@ -444,6 +444,8 @@
           int maxElements = CAT->getMaximumElements();
           CheckConstantInitList(DeclType, InitList, ElementType, isStatic,
                                 maxElements, hadError);
+        } else if (DeclType->isRecordType()) {
+          expr->setType(DeclType);
         }
       } else {
         hadError = CheckInitExpr(expr, IList, i, isStatic, ElementType);

-- 
Seo Sanghyeon
_______________________________________________
cfe-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

Reply via email to