summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/test/clang-tidy/cppcoreguidelines-macro-usage-command-line-macros.cpp
diff options
context:
space:
mode:
authorRoman Lebedev <lebedev.ri@gmail.com>2018-10-30 15:52:36 +0000
committerRoman Lebedev <lebedev.ri@gmail.com>2018-10-30 15:52:36 +0000
commitc367ba1923335a90e760923dd8b93164ff9af22f (patch)
tree4f32f7ca08964feb758b88cf41aa39aad119ac72 /clang-tools-extra/test/clang-tidy/cppcoreguidelines-macro-usage-command-line-macros.cpp
parent6070542296fc885589ddf7dcc8f3ce0c696db580 (diff)
downloadbcm5719-llvm-c367ba1923335a90e760923dd8b93164ff9af22f.tar.gz
bcm5719-llvm-c367ba1923335a90e760923dd8b93164ff9af22f.zip
[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
Diffstat (limited to 'clang-tools-extra/test/clang-tidy/cppcoreguidelines-macro-usage-command-line-macros.cpp')
-rw-r--r--clang-tools-extra/test/clang-tidy/cppcoreguidelines-macro-usage-command-line-macros.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/clang-tools-extra/test/clang-tidy/cppcoreguidelines-macro-usage-command-line-macros.cpp b/clang-tools-extra/test/clang-tidy/cppcoreguidelines-macro-usage-command-line-macros.cpp
new file mode 100644
index 00000000000..d4f9a0da876
--- /dev/null
+++ b/clang-tools-extra/test/clang-tidy/cppcoreguidelines-macro-usage-command-line-macros.cpp
@@ -0,0 +1,8 @@
+// RUN: %check_clang_tidy -check-suffixes=NORMAL %s cppcoreguidelines-macro-usage %t -- -- -D_ZZZ_IM_A_MACRO
+// RUN: %check_clang_tidy -check-suffixes=NORMAL %s cppcoreguidelines-macro-usage %t -- -config='{CheckOptions: [{key: cppcoreguidelines-macro-usage.IgnoreCommandLineMacros, value: 1}]}' -- -D_ZZZ_IM_A_MACRO
+// RUN: %check_clang_tidy -check-suffixes=NORMAL,CL %s cppcoreguidelines-macro-usage %t -- -config='{CheckOptions: [{key: cppcoreguidelines-macro-usage.IgnoreCommandLineMacros, value: 0}]}' -- -D_ZZZ_IM_A_MACRO
+
+// CHECK-MESSAGES-CL: warning: macro '_ZZZ_IM_A_MACRO' used to declare a constant; consider using a 'constexpr' constant
+
+#define PROBLEMATIC_CONSTANT 0
+// CHECK-MESSAGES-NORMAL: [[@LINE-1]]:9: warning: macro 'PROBLEMATIC_CONSTANT' used to declare a constant; consider using a 'constexpr' constant
OpenPOWER on IntegriCloud