summaryrefslogtreecommitdiffstats
path: root/gcc/testsuite/g++.old-deja/g++.ns/template17.C
diff options
context:
space:
mode:
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>2001-05-01 12:56:12 +0000
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>2001-05-01 12:56:12 +0000
commit632cab6c337c9f17263e6fc2dbcacacdd2638537 (patch)
treeff484f8e23f30657ae172dcf3632428050102832 /gcc/testsuite/g++.old-deja/g++.ns/template17.C
parentd946ea19691c3dbff945842d584b6a94c5190d92 (diff)
downloadppe42-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.C37
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);
+}
OpenPOWER on IntegriCloud