diff options
author | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-05-01 12:56:12 +0000 |
---|---|---|
committer | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-05-01 12:56:12 +0000 |
commit | 632cab6c337c9f17263e6fc2dbcacacdd2638537 (patch) | |
tree | ff484f8e23f30657ae172dcf3632428050102832 /gcc/testsuite/g++.old-deja/g++.ns/template17.C | |
parent | d946ea19691c3dbff945842d584b6a94c5190d92 (diff) | |
download | ppe42-gcc-632cab6c337c9f17263e6fc2dbcacacdd2638537.tar.gz ppe42-gcc-632cab6c337c9f17263e6fc2dbcacacdd2638537.zip |
cp:
* cp-tree.def (USING_STMT): New statement node.
* cp-tree.h (USING_STMT_NAMESPACE): New macro.
* decl2.c (do_using_directive): Add USING_STMT to statement
tree. Don't emit errors when processing template decl.
* pt.c (tsubst_expr, USING_STMT case): New case.
* semantics.c (cp_expand_stmt, USING_STMT case): New case.
testsuite:
* g++.old-deja/g++.ns/template17.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41724 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.ns/template17.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.ns/template17.C | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/template17.C b/gcc/testsuite/g++.old-deja/g++.ns/template17.C new file mode 100644 index 00000000000..11f21c921e1 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.ns/template17.C @@ -0,0 +1,37 @@ +// Build don't link: +// +// Copyright (C) 2001 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 29 Apr 2001 <nathan@codesourcery.com> + +// Bug 2258. We failed to implement using directives inside template +// functions. This makes us regress now that ::std is real. + +namespace thing +{ + template <typename T> T end2 (T); +} +namespace whatever +{ +} + +template <typename T> void fn (T, T (*)(T)); + +template <class T> void mycout(const T& data) +{ + using namespace thing; + using namespace whatever; + + fn (data, end2); + fn (data, end3); +} + +namespace whatever +{ + template <typename T> T end3 (T); +} + +int main() +{ + double data = 5.0; + mycout(data); +} |