diff options
| author | Alex Lorenz <arphaman@gmail.com> | 2017-04-11 16:46:03 +0000 |
|---|---|---|
| committer | Alex Lorenz <arphaman@gmail.com> | 2017-04-11 16:46:03 +0000 |
| commit | a981c7d79ef7d7d6ec1d61d391d3ed09fac8e822 (patch) | |
| tree | fe438a7684f3099b81df30317f442422df5b43fd /clang/test/Misc/ast-print-out-of-line-func.cpp | |
| parent | c94f320bd8e05a87af2083b1d2532cc175e73425 (diff) | |
| download | bcm5719-llvm-a981c7d79ef7d7d6ec1d61d391d3ed09fac8e822.tar.gz bcm5719-llvm-a981c7d79ef7d7d6ec1d61d391d3ed09fac8e822.zip | |
[ASTPrinter] Print nested name specifiers for out-of-line functions
rdar://31501863
llvm-svn: 299962
Diffstat (limited to 'clang/test/Misc/ast-print-out-of-line-func.cpp')
| -rw-r--r-- | clang/test/Misc/ast-print-out-of-line-func.cpp | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/clang/test/Misc/ast-print-out-of-line-func.cpp b/clang/test/Misc/ast-print-out-of-line-func.cpp new file mode 100644 index 00000000000..7c4f7ae7f81 --- /dev/null +++ b/clang/test/Misc/ast-print-out-of-line-func.cpp @@ -0,0 +1,54 @@ +// RUN: %clang_cc1 -ast-print -std=c++14 %s | FileCheck %s + +namespace ns { + +struct Wrapper { +class Inner { + Inner(); + Inner(int); + ~Inner(); + + void operator += (int); + + template<typename T> + void member(); + + static void staticMember(); + + operator int(); + + operator ns::Wrapper(); + // CHECK: operator ns::Wrapper() +}; +}; + +Wrapper::Inner::Inner() { } +// CHECK: Wrapper::Inner::Inner() + +void Wrapper::Inner::operator +=(int) { } +// CHECK: void Wrapper::Inner::operator+=(int) + +} + +ns::Wrapper::Inner::Inner(int) { } +// CHECK: ns::Wrapper::Inner::Inner(int) + +ns::Wrapper::Inner::~Inner() { } +// CHECK: ns::Wrapper::Inner::~Inner() + +template<typename T> +void ::ns::Wrapper::Inner::member() { } +// CHECK: template <typename T> void ::ns::Wrapper::Inner::member() + +ns::Wrapper::Inner::operator int() { return 0; } +// CHECK: ns::Wrapper::Inner::operator int() + +ns::Wrapper::Inner::operator ::ns::Wrapper() { return ns::Wrapper(); } +// CHECK: ns::Wrapper::Inner::operator ::ns::Wrapper() + +namespace ns { + +void Wrapper::Inner::staticMember() { } +// CHECK: void Wrapper::Inner::staticMember() + +} |

