PR debug/51032 - ICE in dbxout_type, at dbxout.c:2372
gcc/cp/ * decl2.c (check_member_template): Accept alias templates and ... * parser.c (cp_parser_alias_declaration): ... use it here. gcc/testsuite/ * g++.dg/cpp0x/alias-decl-debug-0.C: New test. From-SVN: r181193
This commit is contained in:
parent
f354bf1d8c
commit
acfdadb47b
@ -1,3 +1,9 @@
|
||||
2011-11-09 Dodji Seketeli <dodji@redhat.com>
|
||||
|
||||
PR debug/51032
|
||||
* decl2.c (check_member_template): Accept alias templates and ...
|
||||
* parser.c (cp_parser_alias_declaration): ... use it here.
|
||||
|
||||
2011-11-08 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/50835
|
||||
|
@ -495,6 +495,7 @@ check_member_template (tree tmpl)
|
||||
decl = DECL_TEMPLATE_RESULT (tmpl);
|
||||
|
||||
if (TREE_CODE (decl) == FUNCTION_DECL
|
||||
|| DECL_ALIAS_TEMPLATE_P (tmpl)
|
||||
|| (TREE_CODE (decl) == TYPE_DECL
|
||||
&& MAYBE_CLASS_TYPE_P (TREE_TYPE (decl))))
|
||||
{
|
||||
|
@ -14932,6 +14932,7 @@ cp_parser_alias_declaration (cp_parser* parser)
|
||||
location_t id_location;
|
||||
cp_declarator *declarator;
|
||||
cp_decl_specifier_seq decl_specs;
|
||||
bool member_p;
|
||||
|
||||
/* Look for the `using' keyword. */
|
||||
cp_parser_require_keyword (parser, RID_USING, RT_USING);
|
||||
@ -14957,7 +14958,8 @@ cp_parser_alias_declaration (cp_parser* parser)
|
||||
declarator = make_id_declarator (NULL_TREE, id, sfk_none);
|
||||
declarator->id_loc = id_location;
|
||||
|
||||
if (at_class_scope_p ())
|
||||
member_p = at_class_scope_p ();
|
||||
if (member_p)
|
||||
decl = grokfield (declarator, &decl_specs, NULL_TREE, false,
|
||||
NULL_TREE, attributes);
|
||||
else
|
||||
@ -14976,7 +14978,12 @@ cp_parser_alias_declaration (cp_parser* parser)
|
||||
if (DECL_LANG_SPECIFIC (decl)
|
||||
&& DECL_TEMPLATE_INFO (decl)
|
||||
&& PRIMARY_TEMPLATE_P (DECL_TI_TEMPLATE (decl)))
|
||||
{
|
||||
decl = DECL_TI_TEMPLATE (decl);
|
||||
if (member_p)
|
||||
check_member_template (decl);
|
||||
}
|
||||
|
||||
return decl;
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
2011-11-09 Dodji Seketeli <dodji@redhat.com>
|
||||
|
||||
PR debug/51032
|
||||
* g++.dg/cpp0x/alias-decl-debug-0.C: New test.
|
||||
|
||||
2011-11-09 Ira Rosen <ira.rosen@linaro.org>
|
||||
|
||||
PR tree-optimization/51015
|
||||
|
11
gcc/testsuite/g++.dg/cpp0x/alias-decl-debug-0.C
Normal file
11
gcc/testsuite/g++.dg/cpp0x/alias-decl-debug-0.C
Normal file
@ -0,0 +1,11 @@
|
||||
// Origin: PR c++/51032
|
||||
// { dg-options "-std=c++0x -gstabs+" }
|
||||
|
||||
template <class C>
|
||||
struct A {
|
||||
template<class U> using B = U*;
|
||||
int a;
|
||||
};
|
||||
|
||||
A<int> a;
|
||||
|
Loading…
Reference in New Issue
Block a user