2013-06-14 Paolo Carlini <paolo.carlini@oracle.com>
+ PR c++/51413
+ * semantics.c (finish_offsetof): Handle INDIRECT_REF as expr.
+
+2013-06-14 Paolo Carlini <paolo.carlini@oracle.com>
+
PR c++/57599
* rtti.c (build_dynamic_cast_1): In case of cast to an unambiguous
accessible base simply forward to build_static_cast.
|| TREE_CODE (TREE_TYPE (expr)) == METHOD_TYPE
|| TREE_TYPE (expr) == unknown_type_node)
{
- if (TREE_CODE (expr) == COMPONENT_REF
- || TREE_CODE (expr) == COMPOUND_EXPR)
- expr = TREE_OPERAND (expr, 1);
- error ("cannot apply %<offsetof%> to member function %qD", expr);
+ if (TREE_CODE (expr) == INDIRECT_REF)
+ error ("second operand of %<offsetof%> is neither a single "
+ "identifier nor a sequence of member accesses and "
+ "array references");
+ else
+ {
+ if (TREE_CODE (expr) == COMPONENT_REF
+ || TREE_CODE (expr) == COMPOUND_EXPR)
+ expr = TREE_OPERAND (expr, 1);
+ error ("cannot apply %<offsetof%> to member function %qD", expr);
+ }
return error_mark_node;
}
if (REFERENCE_REF_P (expr))
+2013-06-14 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/51413
+ * g++.dg/ext/builtin-offsetof1.C: New.
+
2013-06-14 Vidya Praveen <vidyapraveen@arm.com>
* gcc.target/aarch64/vect_smlal_1.c: New file.