--- Reverse-merging r126672 into '.':
U    gcc/llvm-convert.cpp

This was breaking this testcase (<rdar://problem/9098656>):

$ cat testcase.i
typedef struct {
  union {
    struct { } __attribute((packed));
  };
} foo;
const foo boo = {{{ 0, 0, 0, 0 }}};

llvm-svn: 127274
diff --git a/llvm-gcc-4.2/gcc/llvm-convert.cpp b/llvm-gcc-4.2/gcc/llvm-convert.cpp
index 2180287..2d0f9d7 100644
--- a/llvm-gcc-4.2/gcc/llvm-convert.cpp
+++ b/llvm-gcc-4.2/gcc/llvm-convert.cpp
@@ -8582,10 +8582,10 @@
   // Convert the constant itself.
   Constant *Val = Convert(VEC_index(constructor_elt, elt, 0)->value);
 
-  // Unions are initialized using the first non-anonymous member field.  Find it.
+  // Unions are initialized using the first member field.  Find it.
   tree Field = TYPE_FIELDS(TREE_TYPE(exp));
   assert(Field && "cannot initialize union with no fields");
-  while (TREE_CODE(Field) != FIELD_DECL || DECL_NAME(Field) == NULL_TREE) {
+  while (TREE_CODE(Field) != FIELD_DECL) {
     Field = TREE_CHAIN(Field);
     assert(Field && "cannot initialize union with no fields");
   }