aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2001-12-03 12:39:49 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2001-12-03 12:39:49 +0000
commitf1880e134cfdc12afecb48cb345bad896bbdf318 (patch)
treec1a02801c2ebe84c57e712a5100279181bff61dd /gcc/cp
parenta2ad3e94f562fc6fed235f6577edff17413995af (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/cp/Make-lang.in2
-rw-r--r--gcc/cp/parse.y7
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: