Commit 8d5f60ac by Paolo Carlini Committed by Paolo Carlini

re PR c++/35321 (ICE with invalid use of __builtin_offsetof)

2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/35321
	* c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.

/testsuite
2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/35321
	* g++.dg/parse/offsetof8.C: New.

From-SVN: r139628
parent a8221440
2008-08-27 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/35321
* c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
2008-08-27 Paul Brook <paul@codesourcery.com>
* config.gcc: Loosen checks for arm uclinux eabi targets.
......
......@@ -7685,6 +7685,7 @@ fold_offsetof_1 (tree expr, tree stop_ref)
return error_mark_node;
case CALL_EXPR:
case TARGET_EXPR:
error ("cannot apply %<offsetof%> when %<operator[]%> is overloaded");
return error_mark_node;
......
2008-08-27 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/35321
* g++.dg/parse/offsetof8.C: New.
2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR c++/17880
......
// PR c++/35321
struct A
{
A operator[] (int);
};
struct B
{
A a;
};
void foo()
{
__builtin_offsetof(B, a[0]); /* { dg-error "error: cannot apply 'offsetof' when 'operator\\\[\\\]' is overloaded" } */
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment