diff options
author | Mark Mitchell <mmitchel@gcc.gnu.org> | 1998-06-13 23:35:46 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 1998-06-13 23:35:46 +0000 |
commit | 581d38d0bac90445b1a58cff2857609d141e995f (patch) | |
tree | 5e9eba8b70253b0a2e6bfde7762fd04632717976 /gcc | |
parent | 5e7955289faf43ba7ff15c5815d768657fb225d8 (diff) | |
download | gcc-581d38d0bac90445b1a58cff2857609d141e995f.zip gcc-581d38d0bac90445b1a58cff2857609d141e995f.tar.gz gcc-581d38d0bac90445b1a58cff2857609d141e995f.tar.bz2 |
pt.c (for_each_template_parm): Traverse the TYPE_CONTEXT for types.
* pt.c (for_each_template_parm): Traverse the TYPE_CONTEXT for
types.
From-SVN: r20498
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/pt.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.pt/enum4.C | 16 |
2 files changed, 21 insertions, 0 deletions
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 69856b7..9fe7fdd 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -3164,6 +3164,11 @@ for_each_template_parm (t, fn, data) { if (!t) return 0; + + if (TREE_CODE_CLASS (TREE_CODE (t)) == 't' + && for_each_template_parm (TYPE_CONTEXT (t), fn, data)) + return 1; + switch (TREE_CODE (t)) { case INDIRECT_REF: diff --git a/gcc/testsuite/g++.old-deja/g++.pt/enum4.C b/gcc/testsuite/g++.old-deja/g++.pt/enum4.C new file mode 100644 index 0000000..28f4b29 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/enum4.C @@ -0,0 +1,16 @@ +// Build don't link: + +template <class T> +struct U +{ + T mT; +}; + +template <class H> +struct M +{ + enum FLAG {On, Off}; + U<FLAG> mUF; +}; + +M<char> gm; |