diff options
author | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2011-11-04 21:46:07 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2011-11-04 21:46:07 +0000 |
commit | cf9e9959d1a5e8c7ddb506f68017b4f9c9292b94 (patch) | |
tree | 15bbae4a0d50f8d41bd44c607cad67495a7c994c /gcc/c-parser.c | |
parent | c62c54419cf1bcdebbe2313b509e1892b85832d0 (diff) | |
download | gcc-cf9e9959d1a5e8c7ddb506f68017b4f9c9292b94.zip gcc-cf9e9959d1a5e8c7ddb506f68017b4f9c9292b94.tar.gz gcc-cf9e9959d1a5e8c7ddb506f68017b4f9c9292b94.tar.bz2 |
re PR c++/50608 (cannot apply 'offsetof' to a non-constant address)
2011-11-04 Eric Botcazou <ebotcazou@adacore.com>
PR c++/50608
* c-parser.c (c_parser_postfix_expression) <RID_OFFSETOF>: Adjust call
to fold_offsetof.
* c-typeck.c (build_unary_op) <ADDR_EXPR>: Call fold_offsetof_1.
c-family/
* c-common.c (c_fully_fold_internal) <ADDR_EXPR>: Call fold_offsetof_1.
(fold_offsetof_1): Make global. Remove STOP_REF argument and adjust.
<INDIRECT_REF>: Return the argument.
<ARRAY_REF>: Remove special code for negative offset.
Call fold_build_pointer_plus instead of size_binop.
(fold_offsetof): Remove STOP_REF argument and adjust.
* c-common.h (fold_offsetof_1): Declare.
(fold_offsetof): Remove STOP_REF argument.
cp/
* semantics.c (finish_offsetof): Adjust call to fold_offsetof.
* typeck.c (cp_build_addr_expr_1): Call fold_offsetof_1.
From-SVN: r180986
Diffstat (limited to 'gcc/c-parser.c')
-rw-r--r-- | gcc/c-parser.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/c-parser.c b/gcc/c-parser.c index af6cc14..8db203a 100644 --- a/gcc/c-parser.c +++ b/gcc/c-parser.c @@ -6388,7 +6388,7 @@ c_parser_postfix_expression (c_parser *parser) c_parser_error (parser, "expected identifier"); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); - expr.value = fold_offsetof (offsetof_ref, NULL_TREE); + expr.value = fold_offsetof (offsetof_ref); } break; case RID_CHOOSE_EXPR: |