Skip to content

Commit 6e06d6a

Browse files
zeyi2vinay-deshmukh
authored andcommitted
[clang-tidy] Fix readability-use-concise-preprocessor-directives check (llvm#166000)
Closes [llvm#157527](llvm#157527)
1 parent d0d4caa commit 6e06d6a

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

clang-tools-extra/clang-tidy/readability/UseConcisePreprocessorDirectivesCheck.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,10 @@ class IfPreprocessorCallbacks final : public PPCallbacks {
9191
Check.diag(
9292
DirectiveLoc,
9393
"preprocessor condition can be written more concisely using '#%0'")
94-
<< FixItHint::CreateReplacement(DirectiveLoc, Replacements[Inverted])
94+
<< FixItHint::CreateReplacement(
95+
CharSourceRange::getCharRange(DirectiveLoc,
96+
ConditionRange.getBegin()),
97+
(Replacements[Inverted].str() + " "))
9598
<< FixItHint::CreateReplacement(ConditionRange, Macro)
9699
<< Replacements[Inverted];
97100
}

clang-tools-extra/docs/ReleaseNotes.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,10 @@ Changes in existing checks
480480
<clang-tidy/checks/readability/uppercase-literal-suffix>` check to recognize
481481
literal suffixes added in C++23 and C23.
482482

483+
- Improved :doc:`readability-use-concise-preprocessor-directives
484+
<clang-tidy/checks/readability/use-concise-preprocessor-directives>` check to
485+
generate correct fix-its for forms without a space after the directive.
486+
483487
Removed checks
484488
^^^^^^^^^^^^^^
485489

clang-tools-extra/test/clang-tidy/checkers/readability/use-concise-preprocessor-directives.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,14 @@
2828
# elif (defined(BAR))
2929
#endif
3030

31+
// CHECK-MESSAGES: :[[@LINE+2]]:2: warning: preprocessor condition can be written more concisely using '#ifdef' [readability-use-concise-preprocessor-directives]
32+
// CHECK-FIXES: #ifdef FOO
33+
#if(defined(FOO))
34+
// CHECK-MESSAGES-23: :[[@LINE+2]]:2: warning: preprocessor condition can be written more concisely using '#elifdef' [readability-use-concise-preprocessor-directives]
35+
// CHECK-FIXES-23: #elifdef BAR
36+
#elif(defined(BAR))
37+
#endif
38+
3139
// CHECK-MESSAGES: :[[@LINE+2]]:2: warning: preprocessor condition can be written more concisely using '#ifdef' [readability-use-concise-preprocessor-directives]
3240
// CHECK-FIXES: #ifdef FOO
3341
#if (defined FOO)

0 commit comments

Comments
 (0)