diff options
author | Nathan Sidwell <nathan@codesourcery.com> | 2001-12-03 12:39:49 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2001-12-03 12:39:49 +0000 |
commit | f1880e134cfdc12afecb48cb345bad896bbdf318 (patch) | |
tree | c1a02801c2ebe84c57e712a5100279181bff61dd /gcc/cp | |
parent | a2ad3e94f562fc6fed235f6577edff17413995af (diff) | |
download | gcc-f1880e134cfdc12afecb48cb345bad896bbdf318.zip gcc-f1880e134cfdc12afecb48cb345bad896bbdf318.tar.gz gcc-f1880e134cfdc12afecb48cb345bad896bbdf318.tar.bz2 |
re PR c++/3381 (explicit template instantations fail with absolutely qualified names)
cp:
PR g++/3381
* parse.y (named_complex_class_head_sans_basetype): Add new
reduction.
* Make-lang.in (parse.c): Adjust expected conflict count.
testsuite:
* g++.dg/other/scope1.C: New test.
* g++.dg/template/explicit-instantiation.C: Remove XFAIL
From-SVN: r47546
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/cp/Make-lang.in | 2 | ||||
-rw-r--r-- | gcc/cp/parse.y | 7 |
3 files changed, 15 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index eaa3a9b..6b97075 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,10 @@ +2001-12-03 Nathan Sidwell <nathan@codesourcery.com> + + PR g++/3381 + * parse.y (named_complex_class_head_sans_basetype): Add new + reduction. + * Make-lang.in (parse.c): Adjust expected conflict count. + 2001-12-03 Jason Merrill <jason@redhat.com> * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in index 2a4d6af..eb42dec 100644 --- a/gcc/cp/Make-lang.in +++ b/gcc/cp/Make-lang.in @@ -119,7 +119,7 @@ $(srcdir)/cp/cfns.h: $(srcdir)/cp/cfns.gperf $(srcdir)/cp/cfns.gperf > $(srcdir)/cp/cfns.h $(srcdir)/cp/parse.h $(srcdir)/cp/parse.c: $(srcdir)/cp/parse.y - @echo "Expect 33 shift/reduce conflicts and 58 reduce/reduce conflicts." + @echo "Expect 36 shift/reduce conflicts and 58 reduce/reduce conflicts." cd $(srcdir)/cp; $(BISON) $(BISONFLAGS) -d -o p$$$$.c parse.y ; \ grep '^#define[ ]*YYEMPTY' p$$$$.c >> p$$$$.h ; \ mv -f p$$$$.c parse.c ; mv -f p$$$$.h parse.h diff --git a/gcc/cp/parse.y b/gcc/cp/parse.y index 449ea98..a27f288 100644 --- a/gcc/cp/parse.y +++ b/gcc/cp/parse.y @@ -2404,6 +2404,13 @@ named_complex_class_head_sans_basetype: push_scope (CP_DECL_CONTEXT ($$.t)); $$.new_type_flag = 1; } + | aggr global_scope nested_name_specifier apparent_template_type + { + current_aggr = $1; + $$.t = $4; + push_scope (CP_DECL_CONTEXT ($$.t)); + $$.new_type_flag = 1; + } ; named_class_head: |