[clang-tidy] cppcoreguidelines-macro-usage: print macro names
authorRoman Lebedev <lebedev.ri@gmail.com>
Tue, 30 Oct 2018 15:52:36 +0000 (15:52 +0000)
committerRoman Lebedev <lebedev.ri@gmail.com>
Tue, 30 Oct 2018 15:52:36 +0000 (15:52 +0000)
commitc367ba1923335a90e760923dd8b93164ff9af22f
tree4f32f7ca08964feb758b88cf41aa39aad119ac72
parent6070542296fc885589ddf7dcc8f3ce0c696db580
[clang-tidy] cppcoreguidelines-macro-usage: print macro names

Summary:
The macro may not have location (or more generally, the location may not exist),
e.g. if it originates from compiler's command-line.

The check complains on all the macros, even those without the location info.
Which means, it only says it does not like it. What is 'it'? I have no idea.
If we don't print the name, then there is no way to deal with that situation.

And in general, not printing name here forces the user to try to understand,
given, the macro definition location, what is the macro name?
This isn't fun.

Also, ignores-by-default the macros originating from command-line,
with an option to not ignore those.

I suspect some more issues may crop up later.

Reviewers: JonasToth, aaron.ballman, hokein, xazax.hun, alexfh

Reviewed By: JonasToth, aaron.ballman

Subscribers: nemanjai, kbarton, rnkovacs, cfe-commits

Tags: #clang-tools-extra

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

llvm-svn: 345610
clang-tools-extra/clang-tidy/cppcoreguidelines/MacroUsageCheck.cpp
clang-tools-extra/clang-tidy/cppcoreguidelines/MacroUsageCheck.h
clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines-macro-usage.rst
clang-tools-extra/test/clang-tidy/cppcoreguidelines-macro-usage-caps-only.cpp
clang-tools-extra/test/clang-tidy/cppcoreguidelines-macro-usage-command-line-macros.cpp [new file with mode: 0644]
clang-tools-extra/test/clang-tidy/cppcoreguidelines-macro-usage-custom.cpp
clang-tools-extra/test/clang-tidy/cppcoreguidelines-macro-usage.cpp