aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>2000-08-12 02:09:02 +0000
committerJason Merrill <jason@gcc.gnu.org>2000-08-11 22:09:02 -0400
commitfa1f3ebcf4eaff31c60dcb2f60241c0a050df7b7 (patch)
tree1780ecd553b50f2cc20dc9d61178ebd9b5089016 /gcc
parent9845b52bfbbfe165725ff96f9802530bbc26d007 (diff)
downloadgcc-fa1f3ebcf4eaff31c60dcb2f60241c0a050df7b7.zip
gcc-fa1f3ebcf4eaff31c60dcb2f60241c0a050df7b7.tar.gz
gcc-fa1f3ebcf4eaff31c60dcb2f60241c0a050df7b7.tar.bz2
parse.y (template_arg): Add rule for template qualified with global scope.
* parse.y (template_arg): Add rule for template qualified with global scope. From-SVN: r35654
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/parse.y6
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/ttp63.C7
3 files changed, 18 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 82ceceb..f05ee32 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2000-08-11 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>
+
+ * parse.y (template_arg): Add rule for template qualified with
+ global scope.
+
2000-08-11 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
* decl2.c (add_function): Reorganize.
diff --git a/gcc/cp/parse.y b/gcc/cp/parse.y
index 09108d4..2aba608 100644
--- a/gcc/cp/parse.y
+++ b/gcc/cp/parse.y
@@ -1065,6 +1065,12 @@ template_arg:
if (DECL_TEMPLATE_TEMPLATE_PARM_P ($$))
$$ = TREE_TYPE ($$);
}
+ | global_scope PTYPENAME
+ {
+ $$ = lastiddecl;
+ if (DECL_TEMPLATE_TEMPLATE_PARM_P ($$))
+ $$ = TREE_TYPE ($$);
+ }
| expr_no_comma_rangle
;
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp63.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp63.C
new file mode 100644
index 0000000..43abedb
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.pt/ttp63.C
@@ -0,0 +1,7 @@
+// Build don't link:
+// Origin: Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+template <template <class> class TT> class X {};
+template <class T> class Y {
+ X< ::Y> x;
+};