+2003-06-30 Giovanni Bajo <giovannibajo@libero.it>
+
+ PR c++/10750
+ * parser.c (cp_parser_primary_expression): A VAR_DECL with a
+ (value- or type-) dependent expression as DECL_INITIAL is a
+ valid constant-expression (at parser time).
+
2003-06-30 Giovanni Bajo <giovannibajo@libero.it>
PR c++/11106
&& INTEGRAL_OR_ENUMERATION_TYPE_P (TREE_TYPE (decl)))
/* Const variables or static data members of integral
or enumeration types initialized with constant
- expressions. */
+ expressions (or dependent expressions - in this case
+ the check will be done at instantiation time). */
&& !(TREE_CODE (decl) == VAR_DECL
&& INTEGRAL_OR_ENUMERATION_TYPE_P (TREE_TYPE (decl))
&& DECL_INITIAL (decl)
- && TREE_CONSTANT (DECL_INITIAL (decl))))
+ && (TREE_CONSTANT (DECL_INITIAL (decl))
+ || type_dependent_expression_p
+ (DECL_INITIAL (decl))
+ || value_dependent_expression_p
+ (DECL_INITIAL (decl)))))
{
if (!parser->allow_non_constant_expression_p)
return cp_parser_non_constant_id_expression (decl);