From: Eli Friedman Date: Thu, 20 Jun 2013 20:58:02 +0000 (+0000) Subject: Clean up warning and add a test. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4cde94a04694d5d24dc9e3bf6c5fa3403629838e;p=clang Clean up warning and add a test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184466 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp index 5a70d2a251..cbe4a2829b 100644 --- a/lib/Sema/SemaDeclCXX.cpp +++ b/lib/Sema/SemaDeclCXX.cpp @@ -6032,8 +6032,8 @@ void Sema::CheckConversionDeclarator(Declarator &D, QualType &R, if (SC == SC_Static) { if (!D.isInvalidType()) Diag(D.getIdentifierLoc(), diag::err_conv_function_not_member) - << "static" << SourceRange(D.getDeclSpec().getStorageClassSpecLoc()) - << SourceRange(D.getIdentifierLoc()); + << SourceRange(D.getDeclSpec().getStorageClassSpecLoc()) + << D.getName().getSourceRange(); D.setInvalidType(); SC = SC_None; } diff --git a/test/SemaCXX/conversion-function.cpp b/test/SemaCXX/conversion-function.cpp index 6fca0503ba..0e7c391617 100644 --- a/test/SemaCXX/conversion-function.cpp +++ b/test/SemaCXX/conversion-function.cpp @@ -11,6 +11,8 @@ public: float g() { return operator float(); // expected-error{{use of undeclared 'operator float'}} } + + static operator short(); // expected-error{{conversion function must be a non-static member function}} }; operator int(); // expected-error{{conversion function must be a non-static member function}}