diff options
author | Carlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au> | 2012-10-15 17:10:06 +1100 |
---|---|---|
committer | Carlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au> | 2012-10-15 17:10:06 +1100 |
commit | be1de4be954c80875ad4108e0a33e8e131b2f2c0 (patch) | |
tree | 1fbbecf276bf7c7bdcbb4dd446099d6d90eaa516 /clang/test/CodeGenCXX/debug-info.cpp | |
parent | c4626a62754862d20b41e8a46a3574264ea80e6d (diff) | |
parent | f1bd2e48c5324d3f7cda4090c87f8a5b6f463ce2 (diff) |
Merge branch 'master' of ssh://bitbucket.org/czan/honours
Diffstat (limited to 'clang/test/CodeGenCXX/debug-info.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/debug-info.cpp | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/debug-info.cpp b/clang/test/CodeGenCXX/debug-info.cpp new file mode 100644 index 0000000..33b5278 --- /dev/null +++ b/clang/test/CodeGenCXX/debug-info.cpp @@ -0,0 +1,69 @@ +// RUN: %clang_cc1 -emit-llvm-only -g %s +template<typename T> struct Identity { + typedef T Type; +}; + +void f(Identity<int>::Type a) {} +void f(Identity<int> a) {} +void f(int& a) { } + +template<typename T> struct A { + A<T> *next; +}; +void f(A<int>) { } + +struct B { }; + +void f() { + int B::*a = 0; + void (B::*b)() = 0; +} + +namespace EmptyNameCrash { + struct A { A(); }; + typedef struct { A x; } B; + B x; +} + +// PR4890 +namespace PR4890 { + struct X { + ~X(); + }; + + X::~X() { } +} + +namespace VirtualDtor { + struct Y { + virtual ~Y(); + }; + + Y::~Y() { } +} + +namespace VirtualBase { + struct A { }; + struct B : virtual A { }; + + void f() { + B b; + } +} + +void foo() { + const wchar_t c = L'x'; + wchar_t d = c; +} + +namespace b5249287 { +template <typename T> class A { + struct B; +}; + +class Cls { + template <typename T> friend class A<T>::B; +}; + +Cls obj; +} |