re PR c++/47482 ([C++0x] ICE: unexpected expression ‘sizeof ("A")’ of kind sizeof_expr)

PR c++/47482
	* parser.c (cp_parser_enumerator_definition): Call
	fold_non_dependent_expr.

From-SVN: r170156
This commit is contained in:
Jason Merrill 2011-02-14 16:52:24 -05:00 committed by Jason Merrill
parent b09c308168
commit c9e71b36cf
4 changed files with 22 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2011-02-14 Jason Merrill <jason@redhat.com>
PR c++/47482
* parser.c (cp_parser_enumerator_definition): Call
fold_non_dependent_expr.
2011-02-09 Jason Merrill <jason@redhat.com>
* decl.c (cp_make_fname_decl): Set DECL_THIS_STATIC at toplevel.

View File

@ -13763,6 +13763,10 @@ cp_parser_enumerator_definition (cp_parser* parser, tree type)
if (check_for_bare_parameter_packs (value))
value = error_mark_node;
/* integral_constant_value will pull out this expression, so make sure
it's folded as appropriate. */
value = fold_non_dependent_expr (value);
/* Create the enumerator. */
build_enumerator (identifier, value, type, loc);
}

View File

@ -1,3 +1,7 @@
2011-02-14 Jason Merrill <jason@redhat.com>
* g++.dg/cpp0x/regress/enum1.C: New.
2011-02-14 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/include.adb: New test.

View File

@ -0,0 +1,8 @@
// PR c++/47482
// { dg-options -std=c++0x }
template<class>
struct K
{
enum { A = sizeof"A", B = +A };
};