Clean up warning and add a test.
authorEli Friedman <eli.friedman@gmail.com>
Thu, 20 Jun 2013 20:58:02 +0000 (20:58 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Thu, 20 Jun 2013 20:58:02 +0000 (20:58 +0000)
llvm-svn: 184466

clang/lib/Sema/SemaDeclCXX.cpp
clang/test/SemaCXX/conversion-function.cpp

index 5a70d2a..cbe4a28 100644 (file)
@@ -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;
   }
index 6fca050..0e7c391 100644 (file)
@@ -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}}