From a734686b8c73645edf3ee10a44b2f18a80c34fd3 Mon Sep 17 00:00:00 2001 From: mmitchel Date: Sat, 13 Jun 1998 23:35:46 +0000 Subject: [PATCH] * pt.c (for_each_template_parm): Traverse the TYPE_CONTEXT for types. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20498 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/cp/pt.c | 5 +++++ gcc/testsuite/g++.old-deja/g++.pt/enum4.C | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 gcc/testsuite/g++.old-deja/g++.pt/enum4.C diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 69856b7e8dd..9fe7fdd6ccb 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 00000000000..28f4b2949df --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/enum4.C @@ -0,0 +1,16 @@ +// Build don't link: + +template +struct U +{ + T mT; +}; + +template +struct M +{ + enum FLAG {On, Off}; + U mUF; +}; + +M gm; -- 2.11.0