This revision was automatically updated to reflect the committed changes.
Closed by commit rL274001: [clang-tidy] boost-use-to-string arg expr location 
bugfix (authored by Prazek).

Changed prior to commit:
  http://reviews.llvm.org/D21642?vs=61665&id=62069#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D21642

Files:
  clang-tools-extra/trunk/clang-tidy/boost/UseToStringCheck.cpp
  clang-tools-extra/trunk/test/clang-tidy/boost-use-to-string.cpp

Index: clang-tools-extra/trunk/clang-tidy/boost/UseToStringCheck.cpp
===================================================================
--- clang-tools-extra/trunk/clang-tidy/boost/UseToStringCheck.cpp
+++ clang-tools-extra/trunk/clang-tidy/boost/UseToStringCheck.cpp
@@ -64,7 +64,7 @@
 
   Diag << FixItHint::CreateReplacement(
       CharSourceRange::getCharRange(Call->getLocStart(),
-                                    Call->getArg(0)->getExprLoc()),
+                                    Call->getArg(0)->getLocStart()),
       (llvm::Twine("std::to_") + StringType + "(").str());
 }
 
Index: clang-tools-extra/trunk/test/clang-tidy/boost-use-to-string.cpp
===================================================================
--- clang-tools-extra/trunk/test/clang-tidy/boost-use-to-string.cpp
+++ clang-tools-extra/trunk/test/clang-tidy/boost-use-to-string.cpp
@@ -27,7 +27,7 @@
   // CHECK-FIXES: auto xa = std::to_string(5);
 
   auto z = boost::lexical_cast<std::string>(42LL);
-  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: use std::to_string {{..}}
+  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: use std::to_string 
   // CHECK-FIXES: auto z = std::to_string(42LL);
 
   // this should not trigger
@@ -49,22 +49,22 @@
   bool j;
 
   fun(boost::lexical_cast<std::string>(a));
-  // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::to_string {{..}}
+  // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::to_string 
   // CHECK-FIXES: fun(std::to_string(a));
   fun(boost::lexical_cast<std::string>(b));
-  // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::to_string {{..}}
+  // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::to_string 
   // CHECK-FIXES: fun(std::to_string(b));
   fun(boost::lexical_cast<std::string>(c));
-  // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::to_string {{..}}
+  // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::to_string 
   // CHECK-FIXES: fun(std::to_string(c));
   fun(boost::lexical_cast<std::string>(d));
-  // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::to_string {{..}}
+  // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::to_string 
   // CHECK-FIXES: fun(std::to_string(d));
   fun(boost::lexical_cast<std::string>(e));
-  // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::to_string {{..}}
+  // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::to_string 
   // CHECK-FIXES: fun(std::to_string(e));
   fun(boost::lexical_cast<std::string>(f));
-  // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::to_string {{..}}
+  // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::to_string 
   // CHECK-FIXES: fun(std::to_string(f));
 
   // No change for floating numbers.
@@ -93,19 +93,19 @@
   // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::to_wstring instead of boost::lexical_cast<std::wstring> [boost-use-to-string]
   // CHECK-FIXES: fun(std::to_wstring(a));
   fun(boost::lexical_cast<std::wstring>(b));
-  // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::to_wstring {{..}}
+  // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::to_wstring 
   // CHECK-FIXES: fun(std::to_wstring(b));
   fun(boost::lexical_cast<std::wstring>(c));
-  // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::to_wstring {{..}}
+  // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::to_wstring 
   // CHECK-FIXES: fun(std::to_wstring(c));
   fun(boost::lexical_cast<std::wstring>(d));
-  // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::to_wstring {{..}}
+  // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::to_wstring 
   // CHECK-FIXES: fun(std::to_wstring(d));
   fun(boost::lexical_cast<std::wstring>(e));
-  // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::to_wstring {{..}}
+  // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::to_wstring 
   // CHECK-FIXES: fun(std::to_wstring(e));
   fun(boost::lexical_cast<std::wstring>(f));
-  // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::to_wstring {{..}}
+  // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::to_wstring 
   // CHECK-FIXES: fun(std::to_wstring(f));
 
   // No change for floating numbers
@@ -117,13 +117,13 @@
 }
 
 const auto glob = boost::lexical_cast<std::string>(42);
-// CHECK-MESSAGES: :[[@LINE-1]]:19: warning: use std::to_string{{..}}
+// CHECK-MESSAGES: :[[@LINE-1]]:19: warning: use std::to_string
 // CHECK-FIXES: const auto glob = std::to_string(42);
 
 template <typename T>
 void string_as_T(T t = T()) {
   boost::lexical_cast<std::string>(42);
-  // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: use std::to_string{{..}}
+  // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: use std::to_string
   // CHECK-FIXES: std::to_string(42);
 
   boost::lexical_cast<T>(42);
@@ -137,7 +137,7 @@
 
 void no_fixup_inside_macro() {
   my_to_string(12);
-  // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: use std::to_string{{..}}
+  // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: use std::to_string
 }
 
 void no_warnings() {
@@ -147,3 +147,23 @@
   string_as_T<int>();
   string_as_T<std::string>();
 }
+
+struct Fields {
+  int integer;
+  float floating;
+  Fields* wierd;
+  const int &getConstInteger() const {return integer;}
+};
+
+void testFields() {
+  Fields fields;
+  auto s1 = boost::lexical_cast<std::string>(fields.integer);
+  // CHECK-MESSAGES: :[[@LINE-1]]:13: warning: use std::to_string
+  // CHECK-FIXES: auto s1 = std::to_string(fields.integer);
+
+  auto s2 = boost::lexical_cast<std::string>(fields.floating);
+  auto s3 = boost::lexical_cast<std::string>(fields.wierd);
+  auto s4 = boost::lexical_cast<std::string>(fields.getConstInteger());
+  // CHECK-MESSAGES: :[[@LINE-1]]:13: warning: use std::to_string
+  // CHECK-FIXES: auto s4 = std::to_string(fields.getConstInteger());
+}
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to