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
This commit is contained in:
parent
e8f2b18d0e
commit
8fa1ad0e6a
@ -1,3 +1,11 @@
|
||||
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
|
||||
|
5
gcc/testsuite/g++.dg/parse/typename1.C
Normal file
5
gcc/testsuite/g++.dg/parse/typename1.C
Normal file
@ -0,0 +1,5 @@
|
||||
template <class baz>
|
||||
struct bar
|
||||
{
|
||||
typedef typename baz::typename rebind<int> foo; // { dg-error "" }
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user