Print the context of tag types as part of pretty-printing, e.g.,
struct N::M::foo
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67284 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/SemaCXX/elaborated-type-specifier.cpp b/test/SemaCXX/elaborated-type-specifier.cpp
index b9ba508..fe4e210 100644
--- a/test/SemaCXX/elaborated-type-specifier.cpp
+++ b/test/SemaCXX/elaborated-type-specifier.cpp
@@ -27,7 +27,7 @@
void test_X_elab(NS::X x) {
struct S4 *s4 = 0;
- x.test_elab2(s4); // expected-error{{incompatible type passing 'struct S4 *', expected 'struct S4 *'}}
+ x.test_elab2(s4); // expected-error{{incompatible type passing 'struct S4 *', expected 'struct NS::S4 *'}}
}
namespace NS {
diff --git a/test/SemaCXX/enum.cpp b/test/SemaCXX/enum.cpp
index c7748c3..156dfd6 100644
--- a/test/SemaCXX/enum.cpp
+++ b/test/SemaCXX/enum.cpp
@@ -32,9 +32,7 @@
enum e1 { YES, NO };
static enum e1 badfunc(struct s1 *q) {
- // FIXME: the message below should probably give context information
- // in those types.
- return q->bar(); // expected-error{{incompatible type returning 'enum e1', expected 'enum e1'}}
+ return q->bar(); // expected-error{{incompatible type returning 'enum s1::e1', expected 'enum e1'}}
}
enum e2; // expected-error{{ISO C++ forbids forward references to 'enum' types}}
diff --git a/test/SemaCXX/qualified-names-diag.cpp b/test/SemaCXX/qualified-names-diag.cpp
index c3bd47f..cb82f31 100644
--- a/test/SemaCXX/qualified-names-diag.cpp
+++ b/test/SemaCXX/qualified-names-diag.cpp
@@ -16,17 +16,17 @@
namespace bar {
typedef int y;
- struct incomplete; // expected-note{{forward declaration of 'struct incomplete'}}
+ struct incomplete; // expected-note{{forward declaration of 'struct bar::incomplete'}}
}
void test() {
foo::wibble::x a;
::bar::y b;
- a + b; // expected-error{{invalid operands to binary expression ('foo::wibble::x' (aka 'struct x') and '::bar::y' (aka 'int'))}}
+ a + b; // expected-error{{invalid operands to binary expression ('foo::wibble::x' (aka 'struct foo::wibble::x') and '::bar::y' (aka 'int'))}}
::foo::wibble::bar::wonka::x::y c;
- c + b; // expected-error{{invalid operands to binary expression ('::foo::wibble::bar::wonka::x::y' (aka 'struct y') and '::bar::y' (aka 'int'))}}
+ c + b; // expected-error{{invalid operands to binary expression ('::foo::wibble::bar::wonka::x::y' (aka 'struct foo::wibble::bar::wonka::x::y') and '::bar::y' (aka 'int'))}}
- (void)sizeof(bar::incomplete); // expected-error{{invalid application of 'sizeof' to an incomplete type 'bar::incomplete' (aka 'struct incomplete')}}
+ (void)sizeof(bar::incomplete); // expected-error{{invalid application of 'sizeof' to an incomplete type 'bar::incomplete' (aka 'struct bar::incomplete')}}
}
int ::foo::wibble::bar::wonka::x::y::* ptrmem;