Commit Graph

10 Commits

Author SHA1 Message Date
Dmitri Gribenko cb18647b19 Run ClangTidy tests in all C++ language modes
Summary:
I inspected every test and did one of the following:

- changed the test to run in all language modes,

- added a comment explaining why the test is only applicable in a
  certain mode,

- limited the test to language modes where it passes and added a FIXME
  to fix the checker or the test.

Reviewers: alexfh, lebedev.ri

Subscribers: nemanjai, kbarton, arphaman, jdoerfert, lebedev.ri, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D62125

llvm-svn: 361131
2019-05-20 09:26:47 +00:00
Malcolm Parsons 8b70e2631c [clang-tidy] Handle data() in readability-redundant-string-cstr
Summary:
std::string::data() and std::string::c_str() are equivalent.
Enhance the readability-redundant-string-cstr check to also handle
calls to data().

Reviewers: etienneb, alexfh, aaron.ballman

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D26279

llvm-svn: 285901
2016-11-03 12:56:48 +00:00
Etienne Bergeron 9cfd8cea6b [clang-tidy] Add more detection rules for redundant c_str calls.
Summary:
The string class contains methods which support receiving either a string literal or a string object.

For example, calls to append can receive either a char* or a string.
```
  string& append (const string& str);
  string& append (const char* s);
```

Which make these cases equivalent, and the .c_str() useless:
```
  std::string s = "123";
  str.append(s);
  str.append(s.c_str());
```

In these cases, removing .c_str()  doesn't provide any size or speed improvement.
It's only a readability issue.

If the string contains embedded NUL characters,  the string literal and the string
object won't produce the same semantic.

Reviewers: alexfh, sbenza

Subscribers: LegalizeAdulthood, aaron.ballman, chapuni, Eugene.Zelenko, cfe-commits

Differential Revision: http://reviews.llvm.org/D18475

llvm-svn: 266463
2016-04-15 18:12:06 +00:00
NAKAMURA Takumi 6517fb4ff9 3rd attempt of fixup with -std=c++11
llvm-svn: 264367
2016-03-25 00:24:35 +00:00
NAKAMURA Takumi 9f7e2d7657 Fixup -- "-target x86_64-unknown -fno-ms-compatibility" didn't work as expected.
llvm-svn: 264365
2016-03-25 00:16:13 +00:00
NAKAMURA Takumi e0451c9378 clang-tools-extra/test/clang-tidy/readability-redundant-string-cstr.cpp: Appease MS targets with -fno-ms-compatibility.
FIXME: Add a test with  -fms-compatibility.
llvm-svn: 264362
2016-03-25 00:05:33 +00:00
Etienne Bergeron cb7ce98486 [clang-tidy] Add support for different char-types for the readability-redundant-string-cstr checker.
Summary:
The current checker is able to recognize std::string but does not recognize other string variants.
This patch is adding the support for any string defined with basic_string without considering the
the underlying char type.

The most common variant is: 'std::wstring' based on 'wchar_t'.

There are also other string variants added to the standard: u16string, u32string, etc...

Reviewers: alexfh

Subscribers: mamai, dblaikie, cfe-commits

Differential Revision: http://reviews.llvm.org/D18412

llvm-svn: 264325
2016-03-24 19:42:36 +00:00
Manuel Klimek b91bee06de Add %check_clang_tidy and %clang_tidy_diff.
With this, site specific lit configs can inject parameters into the
test scripts if they need site specific parameters.

Next up: enable check_clang_tidy to take a resource dir to enable
non-standard locations for builtin includes.

llvm-svn: 251010
2015-10-22 11:31:44 +00:00
Alexander Kornienko 43556bb7f0 [clang-tidy] Use a python script instead of a shell script to run clang-tidy tests.
Summary:
Add check_clang_tidy.py script that is functionally identical to the
check_clang_tidy.py, but should also be functional on windows.

I've verified that the script works on linux. Would be nice if folks using
Windows could test the patch before I break windows bots ;)

Reviewers: chapuni, aaron.ballman

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D12180

llvm-svn: 245583
2015-08-20 17:58:07 +00:00
Alexander Kornienko 57a5c6b56c Move remove-cstr-calls from a standalone executable to a clang-tidy check readability-redundant-string-cstr
http://reviews.llvm.org/D7318

Patch by Richard Thomson!

llvm-svn: 232338
2015-03-16 00:32:25 +00:00