* semantics.c (finish_offsetof): Complain about incomplete type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@175758
138bc75d-0d04-0410-961f-
82ee72b054a4
+2011-07-01 Jason Merrill <jason@redhat.com>
+
+ PR c++/49085
+ * semantics.c (finish_offsetof): Complain about incomplete type.
+
2011-06-30 Jason Merrill <jason@redhat.com>
PR c++/49387
}
if (REFERENCE_REF_P (expr))
expr = TREE_OPERAND (expr, 0);
+ if (TREE_CODE (expr) == COMPONENT_REF)
+ {
+ tree object = TREE_OPERAND (expr, 0);
+ if (!complete_type_or_else (TREE_TYPE (object), object))
+ return error_mark_node;
+ }
return fold_offsetof (expr, NULL_TREE);
}
+2011-07-01 Jason Merrill <jason@redhat.com>
+
+ PR c++/49085
+ * g++.dg/template/offsetof2.C: New.
+
2011-07-01 Kai Tietz <ktietz@redhat.com>
* gcc.dg/tree-ssa/bitwise-sink.c: New test.
--- /dev/null
+// PR c++/49085
+
+template <class T>
+struct A // { dg-error "declaration" }
+{
+ int i, j;
+ int ar[__builtin_offsetof(A,j)]; // { dg-error "incomplete type" }
+};
+
+A<int> a;