Commit 8fa1ad0e by Mark Mitchell Committed by Mark Mitchell

re PR c++/9264 ([parser] ICE on invalid octal constant)

	* cp-tree.h (get_arglist_len_in_bytes): Remove.

	PR c++/9264
	* parser.c (cp_parser_elaborated_type_specifier): Handle erroneous
	typeame types more robustly.

	PR c++/9172
	* g++.dg/parse/typename1.C: New file.

From-SVN: r61236
parent e8f2b18d
2003-01-12 Mark Mitchell <mark@codesourcery.com>
* cp-tree.h (get_arglist_len_in_bytes): Remove.
PR c++/9264
* parser.c (cp_parser_elaborated_type_specifier): Handle erroneous
typeame types more robustly.
2003-01-11 Phil Edwards <pme@gcc.gnu.org>
* parser.c: Fix comment typos.
......
......@@ -3581,7 +3581,6 @@ extern GTY(()) operator_name_info_t assignment_operator_name_info
/* in call.c */
extern bool check_dtor_name (tree, tree);
extern int get_arglist_len_in_bytes (tree);
extern tree build_vfield_ref (tree, tree);
extern tree build_scoped_method_call (tree, tree, tree, tree);
......
......@@ -9012,10 +9012,14 @@ cp_parser_elaborated_type_specifier (parser, is_friend, is_declaration)
/*current_scope_valid_p=*/false);
/* Look for the nested-name-specifier. */
if (tag_type == typename_type)
cp_parser_nested_name_specifier (parser,
/*typename_keyword_p=*/true,
/*check_dependency_p=*/true,
/*type_p=*/true);
{
if (cp_parser_nested_name_specifier (parser,
/*typename_keyword_p=*/true,
/*check_dependency_p=*/true,
/*type_p=*/true)
== error_mark_node)
return error_mark_node;
}
else
/* Even though `typename' is not present, the proposed resolution
to Core Issue 180 says that in `class A<T>::B', `B' should be
......
template <class baz>
struct bar
{
typedef typename baz::typename rebind<int> foo; // { dg-error "" }
};
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