diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-04-05 01:13:04 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-04-05 01:13:04 +0000 |
commit | fa0a1f531f7d31ef90419c2ef36bfa0060a73b2c (patch) | |
tree | d9dfcbd3d451555be70266b0ac5796ae128edd83 /clang/test/SemaCXX/class.cpp | |
parent | 3cbdeba61aa2c231cb285be03f81534fa699033c (diff) | |
download | bcm5719-llvm-fa0a1f531f7d31ef90419c2ef36bfa0060a73b2c.tar.gz bcm5719-llvm-fa0a1f531f7d31ef90419c2ef36bfa0060a73b2c.zip |
Improve diagnostics for invalid use of non-static members / this:
* s/nonstatic/non-static/ in the diagnostics, since the latter form outvoted
the former by 28-2 in our diagnostics.
* Fix the "use of member in static member function" diagnostic to correctly
detect this situation inside a block or lambda.
* Produce a more specific "invalid use of non-static member" diagnostic for
the case where a nested class member refers to a member of a
lexically-surrounding class.
llvm-svn: 154073
Diffstat (limited to 'clang/test/SemaCXX/class.cpp')
-rw-r--r-- | clang/test/SemaCXX/class.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/clang/test/SemaCXX/class.cpp b/clang/test/SemaCXX/class.cpp index e079d0cc175..ec82925fe4e 100644 --- a/clang/test/SemaCXX/class.cpp +++ b/clang/test/SemaCXX/class.cpp @@ -7,16 +7,18 @@ public: static void sm() { sx = 0; - this->x = 0; // expected-error {{invalid use of 'this' outside of a nonstatic member function}} + this->x = 0; // expected-error {{invalid use of 'this' outside of a non-static member function}} x = 0; // expected-error {{invalid use of member 'x' in static member function}} } class NestedC { public: NestedC(int); - void m() { + void f() { sx = 0; - x = 0; // expected-error {{invalid use of nonstatic data member 'x'}} + x = 0; // expected-error {{use of non-static data member 'x' of 'C' from nested type 'NestedC'}} + sm(); + m(); // expected-error {{call to non-static member function 'm' of 'C' from nested type 'NestedC'}} } }; @@ -186,7 +188,7 @@ struct S { }; void f() { - S::c; // expected-error {{invalid use of nonstatic data member}} + S::c; // expected-error {{invalid use of non-static data member}} } } |