From 9cfbe48a7a20a217fdb2920b29b67ae7941cb116 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Sat, 20 Jun 2009 00:51:54 +0000 Subject: Parsing and AST support for using declarations, from John Thompson! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73812 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Parser/cxx-using-declaration.cpp | 45 +++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 test/Parser/cxx-using-declaration.cpp (limited to 'test/Parser/cxx-using-declaration.cpp') diff --git a/test/Parser/cxx-using-declaration.cpp b/test/Parser/cxx-using-declaration.cpp new file mode 100644 index 0000000000..de0e6f162a --- /dev/null +++ b/test/Parser/cxx-using-declaration.cpp @@ -0,0 +1,45 @@ +// RUN: clang-cc -fsyntax-only -verify %s + +namespace A { + int VA; + void FA() {} + struct SA { int V; }; +} + +using A::VA; +using A::FA; +using typename A::SA; + +void main() +{ + VA = 1; + FA(); + SA x; //Still needs handling. +} + +struct B { + void f(char){}; + void g(char){}; +}; +struct D : B { + using B::f; + void f(int); + void g(int); +}; +void D::f(int) { f('c'); } // calls B::f(char) +void D::g(int) { g('c'); } // recursively calls D::g(int) + +namespace E { + template int funcE(TYPE arg) { return(arg); } +} + +using E::funcE; // expected-error{{use of template specialization in using directive not allowed}} + +namespace F { + struct X; +} + +using F::X; +// Should have some errors here. Waiting for implementation. +void X(int); +struct X *x; -- cgit v1.2.3-70-g09d2