From 632cab6c337c9f17263e6fc2dbcacacdd2638537 Mon Sep 17 00:00:00 2001 From: nathan Date: Tue, 1 May 2001 12:56:12 +0000 Subject: 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 --- gcc/testsuite/g++.old-deja/g++.ns/template17.C | 37 ++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 gcc/testsuite/g++.old-deja/g++.ns/template17.C (limited to 'gcc/testsuite/g++.old-deja/g++.ns/template17.C') 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 + +// Bug 2258. We failed to implement using directives inside template +// functions. This makes us regress now that ::std is real. + +namespace thing +{ + template T end2 (T); +} +namespace whatever +{ +} + +template void fn (T, T (*)(T)); + +template void mycout(const T& data) +{ + using namespace thing; + using namespace whatever; + + fn (data, end2); + fn (data, end3); +} + +namespace whatever +{ + template T end3 (T); +} + +int main() +{ + double data = 5.0; + mycout(data); +} -- cgit v1.2.1