Commit f128e1f3 by Kriang Lerdsuwanakij

re PR c++/13166 ([DR136] not implemented)

	PR c++/13166
	* parser.c (cp_parser_late_parsing_default_args): Make sure the
	context is a class before calling push_nested_class and
	pop_nested_class.

	* g++.dg/parse/defarg6.C: New test.

From-SVN: r74333
parent 2a67ff5e
2003-12-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
PR c++/13166
* parser.c (cp_parser_late_parsing_default_args): Make sure the
context is a class before calling push_nested_class and
pop_nested_class.
2003-12-03 James E Wilson <wilson@specifixinc.com> 2003-12-03 James E Wilson <wilson@specifixinc.com>
* g++spec.c (lang_specific_driver): Delete USE_LIBUNWIND_EXCEPTIONS * g++spec.c (lang_specific_driver): Delete USE_LIBUNWIND_EXCEPTIONS
...@@ -24,15 +31,15 @@ ...@@ -24,15 +31,15 @@
2003-12-02 Giovanni Bajo <giovannibajo@gcc.gnu.org> 2003-12-02 Giovanni Bajo <giovannibajo@gcc.gnu.org>
PR c++/10126 PR c++/10126
* pt.c (convert_nontype_argument): Handle default conversions * pt.c (convert_nontype_argument): Handle default conversions
while converting a pointer to member function. while converting a pointer to member function.
2003-12-02 Giovanni Bajo <giovannibajo@gcc.gnu.org> 2003-12-02 Giovanni Bajo <giovannibajo@gcc.gnu.org>
PR c++/12573 PR c++/12573
* pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by * pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by
looking into them recursively. looking into them recursively.
2003-12-02 Richard Henderson <rth@redhat.com> 2003-12-02 Richard Henderson <rth@redhat.com>
......
...@@ -14239,10 +14239,10 @@ cp_parser_late_parsing_default_args (cp_parser *parser, tree fn) ...@@ -14239,10 +14239,10 @@ cp_parser_late_parsing_default_args (cp_parser *parser, tree fn)
saved_local_variables_forbidden_p = parser->local_variables_forbidden_p; saved_local_variables_forbidden_p = parser->local_variables_forbidden_p;
parser->local_variables_forbidden_p = true; parser->local_variables_forbidden_p = true;
/* Parse the assignment-expression. */ /* Parse the assignment-expression. */
if (DECL_CONTEXT (fn)) if (DECL_CLASS_SCOPE_P (fn))
push_nested_class (DECL_CONTEXT (fn)); push_nested_class (DECL_CONTEXT (fn));
TREE_PURPOSE (parameters) = cp_parser_assignment_expression (parser); TREE_PURPOSE (parameters) = cp_parser_assignment_expression (parser);
if (DECL_CONTEXT (fn)) if (DECL_CLASS_SCOPE_P (fn))
pop_nested_class (); pop_nested_class ();
/* Restore saved state. */ /* Restore saved state. */
......
2003-12-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
PR c++/13166
* g++.dg/parse/defarg6.C: New test.
2003-12-05 Hans-Peter Nilsson <hp@axis.com> 2003-12-05 Hans-Peter Nilsson <hp@axis.com>
PR target/13256 PR target/13256
......
// { dg-do compile }
// Origin: Falk Hueffner <falk@debian.org>
// PR c++/13166: ICE default function argument for friend declaration.
namespace sc_dt {
class sc_length_param {
friend int compare_unsigned(int if_v_signed = 0) {}
};
}
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