-
Notifications
You must be signed in to change notification settings - Fork 15.5k
Revert "[clang][analyzer] Format macro expansions" #172468
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This reverts commit b10504f.
Member
|
@llvm/pr-subscribers-clang-analysis @llvm/pr-subscribers-clang-static-analyzer-1 Author: Balázs Benics (steakhal) ChangesReverts llvm/llvm-project#156046 Patch is 33.99 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/172468.diff 8 Files Affected:
diff --git a/clang/include/clang/Analysis/MacroExpansionContext.h b/clang/include/clang/Analysis/MacroExpansionContext.h
index b2ef4fffe5e44..2a27aba76656d 100644
--- a/clang/include/clang/Analysis/MacroExpansionContext.h
+++ b/clang/include/clang/Analysis/MacroExpansionContext.h
@@ -96,13 +96,6 @@ class MacroExpansionContext {
std::optional<StringRef>
getOriginalText(SourceLocation MacroExpansionLoc) const;
- /// \param MacroExpansionLoc Must be the expansion location of a macro.
- /// \return A formatted representation of the textual representation of the
- /// token sequence which was substituted in place of the macro.
- /// If no macro was expanded at that location, returns std::nullopt.
- std::optional<StringRef>
- getFormattedExpandedText(SourceLocation MacroExpansionLoc) const;
-
LLVM_DUMP_METHOD void dumpExpansionRangesToStream(raw_ostream &OS) const;
LLVM_DUMP_METHOD void dumpExpandedTextsToStream(raw_ostream &OS) const;
LLVM_DUMP_METHOD void dumpExpansionRanges() const;
@@ -113,7 +106,6 @@ class MacroExpansionContext {
using MacroExpansionText = SmallString<40>;
using ExpansionMap = llvm::DenseMap<SourceLocation, MacroExpansionText>;
using ExpansionRangeMap = llvm::DenseMap<SourceLocation, SourceLocation>;
- using FormattedExpansionMap = llvm::DenseMap<SourceLocation, std::string>;
/// Associates the textual representation of the expanded tokens at the given
/// macro expansion location.
@@ -123,9 +115,6 @@ class MacroExpansionContext {
/// substitution starting from a given macro expansion location.
ExpansionRangeMap ExpansionRanges;
- /// Caches formatted macro expansions keyed by expansion location.
- mutable FormattedExpansionMap FormattedExpandedTokens;
-
Preprocessor *PP = nullptr;
SourceManager *SM = nullptr;
const LangOptions &LangOpts;
diff --git a/clang/lib/Analysis/CMakeLists.txt b/clang/lib/Analysis/CMakeLists.txt
index 3e169de306b74..99a2ec684e149 100644
--- a/clang/lib/Analysis/CMakeLists.txt
+++ b/clang/lib/Analysis/CMakeLists.txt
@@ -40,7 +40,6 @@ add_clang_library(clangAnalysis
clangAST
clangASTMatchers
clangBasic
- clangFormat
clangLex
DEPENDS
diff --git a/clang/lib/Analysis/MacroExpansionContext.cpp b/clang/lib/Analysis/MacroExpansionContext.cpp
index 10b69b0c46685..b212b7f245792 100644
--- a/clang/lib/Analysis/MacroExpansionContext.cpp
+++ b/clang/lib/Analysis/MacroExpansionContext.cpp
@@ -7,7 +7,6 @@
//===----------------------------------------------------------------------===//
#include "clang/Analysis/MacroExpansionContext.h"
-#include "clang/Format/Format.h"
#include "llvm/Support/Debug.h"
#include <optional>
@@ -133,35 +132,6 @@ MacroExpansionContext::getOriginalText(SourceLocation MacroExpansionLoc) const {
LangOpts);
}
-std::optional<StringRef> MacroExpansionContext::getFormattedExpandedText(
- SourceLocation MacroExpansionLoc) const {
- std::optional<StringRef> ExpandedText = getExpandedText(MacroExpansionLoc);
- if (!ExpandedText)
- return std::nullopt;
-
- auto [It, Inserted] =
- FormattedExpandedTokens.try_emplace(MacroExpansionLoc, "");
- if (!Inserted)
- return StringRef(It->getSecond());
-
- clang::format::FormatStyle Style = clang::format::getLLVMStyle();
-
- std::string MacroCodeBlock = ExpandedText->str();
-
- std::vector<clang::tooling::Range> Ranges;
- Ranges.emplace_back(0, MacroCodeBlock.length());
-
- clang::tooling::Replacements Replacements = clang::format::reformat(
- Style, MacroCodeBlock, Ranges, "<macro-expansion>");
-
- llvm::Expected<std::string> Result =
- clang::tooling::applyAllReplacements(MacroCodeBlock, Replacements);
-
- It->getSecond() = Result ? std::move(*Result) : std::move(MacroCodeBlock);
-
- return StringRef(It->getSecond());
-}
-
void MacroExpansionContext::dumpExpansionRanges() const {
dumpExpansionRangesToStream(llvm::dbgs());
}
diff --git a/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp b/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
index 4ea6208d549c3..3e3fff900cde8 100644
--- a/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
+++ b/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
@@ -835,7 +835,7 @@ getExpandedMacro(SourceLocation MacroExpansionLoc,
const SourceManager &SM) {
if (auto CTUMacroExpCtx =
CTU.getMacroExpansionContextForSourceLocation(MacroExpansionLoc)) {
- return CTUMacroExpCtx->getFormattedExpandedText(MacroExpansionLoc);
+ return CTUMacroExpCtx->getExpandedText(MacroExpansionLoc);
}
- return MacroExpansions.getFormattedExpandedText(MacroExpansionLoc);
+ return MacroExpansions.getExpandedText(MacroExpansionLoc);
}
diff --git a/clang/test/Analysis/plist-macros-with-expansion-ctu.c b/clang/test/Analysis/plist-macros-with-expansion-ctu.c
index 9dd1b146e9d3c..956088cc0f675 100644
--- a/clang/test/Analysis/plist-macros-with-expansion-ctu.c
+++ b/clang/test/Analysis/plist-macros-with-expansion-ctu.c
@@ -66,7 +66,7 @@ void test3(void) {
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <key>name</key><string>M</string>
-// CHECK-NEXT: <key>expansion</key><string>F1
+// CHECK-NEXT: <key>expansion</key><string>F1 (&X )</string>
// CHECK-NEXT: </dict>
// CHECK-NEXT: </array>
@@ -89,7 +89,7 @@ void test4(void) {
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <key>name</key><string>M</string>
-// CHECK-NEXT: <key>expansion</key><string>F2
+// CHECK-NEXT: <key>expansion</key><string>F2 (&X )</string>
// CHECK-NEXT: </dict>
// CHECK-NEXT: </array>
diff --git a/clang/test/Analysis/plist-macros-with-expansion.c b/clang/test/Analysis/plist-macros-with-expansion.c
index 79227c5d60f4e..10c78938960aa 100644
--- a/clang/test/Analysis/plist-macros-with-expansion.c
+++ b/clang/test/Analysis/plist-macros-with-expansion.c
@@ -22,7 +22,7 @@ void test_strange_macro_expansion(void) {
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <key>name</key><string>STRANGE_FN(path)</string>
-// CHECK-NEXT: <key>expansion</key><string>STRANGE_FN
+// CHECK-NEXT: <key>expansion</key><string>STRANGE_FN (path ,0)</string>
// CHECK-NEXT: </dict>
// CHECK-NEXT: </array>
diff --git a/clang/test/Analysis/plist-macros-with-expansion.cpp b/clang/test/Analysis/plist-macros-with-expansion.cpp
index d140026f820d8..d57bb0f2dd265 100644
--- a/clang/test/Analysis/plist-macros-with-expansion.cpp
+++ b/clang/test/Analysis/plist-macros-with-expansion.cpp
@@ -29,7 +29,7 @@ void nonFunctionLikeMacroTest() {
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <key>name</key><string>SET_PTR_VAR_TO_NULL</string>
-// CHECK-NEXT: <key>expansion</key><string>ptr
+// CHECK-NEXT: <key>expansion</key><string>ptr =0</string>
// CHECK-NEXT: </dict>
// CHECK-NEXT: </array>
@@ -53,7 +53,7 @@ void nonFunctionLikeNestedMacroTest() {
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <key>name</key><string>SET_PTR_VAR_TO_NULL_WITH_NESTED_MACRO</string>
-// CHECK-NEXT: <key>expansion</key><string>ptr
+// CHECK-NEXT: <key>expansion</key><string>ptr =0</string>
// CHECK-NEXT: </dict>
// CHECK-NEXT: </array>
@@ -84,7 +84,7 @@ void functionLikeMacroTest() {
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <key>name</key><string>TO_NULL(&ptr)</string>
-// CHECK-NEXT: <key>expansion</key><string>setToNull
+// CHECK-NEXT: <key>expansion</key><string>setToNull (&ptr )</string>
// CHECK-NEXT: </dict>
// CHECK-NEXT: </array>
@@ -115,7 +115,7 @@ void functionLikeNestedMacroTest() {
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <key>name</key><string>TO_NULL(&a)</string>
-// CHECK-NEXT: <key>expansion</key><string>setToNull
+// CHECK-NEXT: <key>expansion</key><string>setToNull (&a )</string>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <dict>
// CHECK-NEXT: <key>location</key>
@@ -125,7 +125,9 @@ void functionLikeNestedMacroTest() {
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <key>name</key><string>DEREF(a)</string>
-// CHECK-NEXT: <key>expansion</key><string>{
+// CHECK-NEXT: <key>expansion</key><string>{int b ;b =5;}print (a );*a </string>
+// CHECK-NEXT: </dict>
+// CHECK-NEXT: </array>
//===----------------------------------------------------------------------===//
// Tests for undefining and/or redifining macros.
@@ -147,12 +149,14 @@ void undefinedMacroByTheEndOfParsingTest() {
// CHECK-NEXT: <dict>
// CHECK-NEXT: <key>location</key>
// CHECK-NEXT: <dict>
-// CHECK-NEXT: <key>line</key><integer>139</integer>
+// CHECK-NEXT: <key>line</key><integer>141</integer>
// CHECK-NEXT: <key>col</key><integer>3</integer>
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <key>name</key><string>WILL_UNDEF_SET_NULL_TO_PTR(ptr)</string>
-// CHECK-NEXT: <key>expansion</key><string>ptr
+// CHECK-NEXT: <key>expansion</key><string>ptr =nullptr ;</string>
+// CHECK-NEXT: </dict>
+// CHECK-NEXT: </array>
#define WILL_REDIFINE_MULTIPLE_TIMES_SET_TO_NULL(ptr) \
/* Nothing */
@@ -176,12 +180,14 @@ void macroRedefinedMultipleTimesTest() {
// CHECK-NEXT: <dict>
// CHECK-NEXT: <key>location</key>
// CHECK-NEXT: <dict>
-// CHECK-NEXT: <key>line</key><integer>165</integer>
+// CHECK-NEXT: <key>line</key><integer>169</integer>
// CHECK-NEXT: <key>col</key><integer>3</integer>
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <key>name</key><string>WILL_REDIFINE_MULTIPLE_TIMES_SET_TO_NULL(ptr)</string>
-// CHECK-NEXT: <key>expansion</key><string>ptr
+// CHECK-NEXT: <key>expansion</key><string>ptr =nullptr ;</string>
+// CHECK-NEXT: </dict>
+// CHECK-NEXT: </array>
#define WILL_UNDEF_SET_NULL_TO_PTR_2(ptr) \
ptr = nullptr;
@@ -200,12 +206,14 @@ void undefinedMacroInsideAnotherMacroTest() {
// CHECK-NEXT: <dict>
// CHECK-NEXT: <key>location</key>
// CHECK-NEXT: <dict>
-// CHECK-NEXT: <key>line</key><integer>194</integer>
+// CHECK-NEXT: <key>line</key><integer>200</integer>
// CHECK-NEXT: <key>col</key><integer>3</integer>
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <key>name</key><string>PASS_PTR_TO_MACRO_THAT_WILL_BE_UNDEFD(ptr)</string>
-// CHECK-NEXT: <key>expansion</key><string>ptr
+// CHECK-NEXT: <key>expansion</key><string>ptr =nullptr ;</string>
+// CHECK-NEXT: </dict>
+// CHECK-NEXT: </array>
#undef WILL_UNDEF_SET_NULL_TO_PTR_2
@@ -235,12 +243,14 @@ void macroArgContainsCommaInStringTest() {
// CHECK-NEXT: <dict>
// CHECK-NEXT: <key>location</key>
// CHECK-NEXT: <dict>
-// CHECK-NEXT: <key>line</key><integer>229</integer>
+// CHECK-NEXT: <key>line</key><integer>237</integer>
// CHECK-NEXT: <key>col</key><integer>3</integer>
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <key>name</key><string>TO_NULL_AND_PRINT(a, "Will this , cause a crash?")</string>
-// CHECK-NEXT: <key>expansion</key><string>a
+// CHECK-NEXT: <key>expansion</key><string>a =0;print ("Will this , cause a crash?")</string>
+// CHECK-NEXT: </dict>
+// CHECK-NEXT: </array>
void macroArgContainsLParenInStringTest() {
int *a;
@@ -253,12 +263,14 @@ void macroArgContainsLParenInStringTest() {
// CHECK-NEXT: <dict>
// CHECK-NEXT: <key>location</key>
// CHECK-NEXT: <dict>
-// CHECK-NEXT: <key>line</key><integer>247</integer>
+// CHECK-NEXT: <key>line</key><integer>257</integer>
// CHECK-NEXT: <key>col</key><integer>3</integer>
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <key>name</key><string>TO_NULL_AND_PRINT(a, "Will this ( cause a crash?")</string>
-// CHECK-NEXT: <key>expansion</key><string>a
+// CHECK-NEXT: <key>expansion</key><string>a =0;print ("Will this ( cause a crash?")</string>
+// CHECK-NEXT: </dict>
+// CHECK-NEXT: </array>
void macroArgContainsRParenInStringTest() {
int *a;
@@ -271,12 +283,14 @@ void macroArgContainsRParenInStringTest() {
// CHECK-NEXT: <dict>
// CHECK-NEXT: <key>location</key>
// CHECK-NEXT: <dict>
-// CHECK-NEXT: <key>line</key><integer>265</integer>
+// CHECK-NEXT: <key>line</key><integer>277</integer>
// CHECK-NEXT: <key>col</key><integer>3</integer>
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <key>name</key><string>TO_NULL_AND_PRINT(a, "Will this ) cause a crash?")</string>
-// CHECK-NEXT: <key>expansion</key><string>a
+// CHECK-NEXT: <key>expansion</key><string>a =0;print ("Will this ) cause a crash?")</string>
+// CHECK-NEXT: </dict>
+// CHECK-NEXT: </array>
#define CALL_FUNCTION(funcCall) \
funcCall
@@ -294,12 +308,14 @@ void macroArgContainsLParenRParenTest() {
// CHECK-NEXT: <dict>
// CHECK-NEXT: <key>location</key>
// CHECK-NEXT: <dict>
-// CHECK-NEXT: <key>line</key><integer>288</integer>
+// CHECK-NEXT: <key>line</key><integer>302</integer>
// CHECK-NEXT: <key>col</key><integer>3</integer>
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <key>name</key><string>CALL_FUNCTION(setToNull(&a))</string>
-// CHECK-NEXT: <key>expansion</key><string>setToNull
+// CHECK-NEXT: <key>expansion</key><string>setToNull (&a )</string>
+// CHECK-NEXT: </dict>
+// CHECK-NEXT: </array>
void setToNullAndPrint(int **vptr, const char *str) {
setToNull(vptr);
@@ -317,12 +333,14 @@ void macroArgContainsCommaLParenRParenTest() {
// CHECK-NEXT: <dict>
// CHECK-NEXT: <key>location</key>
// CHECK-NEXT: <dict>
-// CHECK-NEXT: <key>line</key><integer>311</integer>
+// CHECK-NEXT: <key>line</key><integer>327</integer>
// CHECK-NEXT: <key>col</key><integer>3</integer>
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <key>name</key><string>CALL_FUNCTION(setToNullAndPrint(&a, "Hello!"))</string>
-// CHECK-NEXT: <key>expansion</key><string>setToNullAndPrint
+// CHECK-NEXT: <key>expansion</key><string>setToNullAndPrint (&a ,"Hello!")</string>
+// CHECK-NEXT: </dict>
+// CHECK-NEXT: </array>
#define CALL_FUNCTION_WITH_TWO_PARAMS(funcCall, param1, param2) \
funcCall(param1, param2)
@@ -338,12 +356,14 @@ void macroArgContainsCommaLParenRParenTest2() {
// CHECK-NEXT: <dict>
// CHECK-NEXT: <key>location</key>
// CHECK-NEXT: <dict>
-// CHECK-NEXT: <key>line</key><integer>332</integer>
+// CHECK-NEXT: <key>line</key><integer>350</integer>
// CHECK-NEXT: <key>col</key><integer>3</integer>
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <key>name</key><string>CALL_FUNCTION_WITH_TWO_PARAMS(setToNullAndPrint, &a, "Hello!")</string>
-// CHECK-NEXT: <key>expansion</key><string>setToNullAndPrint
+// CHECK-NEXT: <key>expansion</key><string>setToNullAndPrint (&a ,"Hello!")</string>
+// CHECK-NEXT: </dict>
+// CHECK-NEXT: </array>
#define CALL_LAMBDA(l) \
l()
@@ -362,22 +382,24 @@ void commaInBracketsTest() {
// CHECK-NEXT: <dict>
// CHECK-NEXT: <key>location</key>
// CHECK-NEXT: <dict>
-// CHECK-NEXT: <key>line</key><integer>356</integer>
+// CHECK-NEXT: <key>line</key><integer>376</integer>
// CHECK-NEXT: <key>col</key><integer>3</integer>
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <key>name</key><string>CALL_LAMBDA(([&ptr, str] () mutable { TO_NULL(&ptr); }))</string>
-// CHECK-NEXT: <key>expansion</key><string>(
-// CHECK: </dict>
+// CHECK-NEXT: <key>expansion</key><string>([&ptr ,str ]()mutable {setToNull (&ptr );})()</string>
+// CHECK-NEXT: </dict>
// CHECK-NEXT: <dict>
// CHECK-NEXT: <key>location</key>
// CHECK-NEXT: <dict>
-// CHECK-NEXT: <key>line</key><integer>356</integer>
+// CHECK-NEXT: <key>line</key><integer>376</integer>
// CHECK-NEXT: <key>col</key><integer>3</integer>
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <key>name</key><string>CALL_LAMBDA(([&ptr, str] () mutable { TO_NULL(&ptr); }))</string>
-// CHECK-NEXT: <key>expansion</key><string>(
+// CHECK-NEXT: <key>expansion</key><string>([&ptr ,str ]()mutable {setToNull (&ptr );})()</string>
+// CHECK-NEXT: </dict>
+// CHECK-NEXT: </array>
#define PASTE_CODE(code) \
code
@@ -399,7 +421,7 @@ void commaInBracesTest() {
// CHECK-NEXT: <dict>
// CHECK-NEXT: <key>location</key>
// CHECK-NEXT: <dict>
-// CHECK-NEXT: <key>line</key><integer>386</integer>
+// CHECK-NEXT: <key>line</key><integer>408</integer>
// CHECK-NEXT: <key>col</key><integer>3</integer>
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
@@ -412,7 +434,9 @@ void commaInBracesTest() {
// CHECK-NEXT: int *ptr = nullptr;
// CHECK-NEXT: *ptr = 5;
// CHECK-NEXT: })</string>
-// CHECK-NEXT: <key>expansion</key><string>{
+// CHECK-NEXT: <key>expansion</key><string>{int *ptr =nullptr ;*ptr =5;}</string>
+// CHECK-NEXT: </dict>
+// CHECK-NEXT: </array>
// Example taken from
// https://gcc.gnu.org/onlinedocs/cpp/Macro-Arguments.html#Macro-Arguments.
@@ -433,12 +457,14 @@ void emptyParamTest() {
// CHECK-NEXT: <dict>
// CHECK-NEXT: <key>location</key>
// CHECK-NEXT: <dict>
-// CHECK-NEXT: <key>line</key><integer>427</integer>
+// CHECK-NEXT: <key>line</key><integer>451</integer>
// CHECK-NEXT: <key>col</key><integer>3</integer>
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <key>name</key><string>POTENTIALLY_EMPTY_PARAM(,ptr)</string>
-// CHECK-NEXT: <key>expansion</key><string>;
+// CHECK-NEXT: <key>expansion</key><string>;ptr =nullptr </string>
+// CHECK-NEXT: </dict>
+// CHECK-NEXT: </array>
#define NESTED_EMPTY_PARAM(a, b) \
POTENTIALLY_EMPTY_PARAM(a, b);
@@ -456,12 +482,14 @@ void nestedEmptyParamTest() {
// CHECK-NEXT: <dict>
// CHECK-NEXT: <key>location</key>
// CHECK-NEXT: <dict>
-// CHECK-NEXT: <key>line</key><integer>450</integer>
+// CHECK-NEXT: <key>line</key><integer>476</integer>
// CHECK-NEXT: <key>col</key><integer>3</integer>
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <key>name</key><string>NESTED_EMPTY_PARAM(, ptr)</string>
-// CHECK-NEXT: <key>expansion</key><string>;
+// CHECK-NEXT: <key>expansion</key><string>;ptr =nullptr ;</string>
+// CHECK-NEXT: </dict>
+// CHECK-NEXT: </array>
#define CALL_FUNCTION_WITH_ONE_PARAM_THROUGH_MACRO(func, param) \
CALL_FUNCTION(func(param))
@@ -477,12 +505,14 @@ void lParenRParenInNestedMacro() {
// CHECK-NEXT: <dict>
// CHECK-NEXT: <key>location</key>
// CHECK-NEXT: <dict>
-// CHECK-NEXT: <key>line</key><integer>471</integer>
+// CHECK-NEXT: <key>line</key><integer>499</integer>
// CHECK-NEXT: <key>col</key><integer>3</integer>
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <key>name</key><string>CALL_FUNCTION_WITH_ONE_PARAM_THROUGH_MACRO(setToNull, &ptr)</string>
-// CHECK-NEXT: <key>expansion</key><string>setToNull
+// CHECK-NEXT: <key>expansion</key><string>setToNull (&ptr )</string>
+// CHECK-NEXT: </dict>
+// CHECK-NEXT: </array>
//===----------------------------------------------------------------------===//
// Tests for variadic macro arguments.
@@ -506,12 +536,14 @@ void variadicMacroArgumentTest() {
// CHECK-NEXT: <dict>
// CHECK-NEXT: <key>location</key>
// CHECK-NEXT: <dict>
-// CHECK-NEXT: <key>line</key><integer>500</integer>
+// CHECK-NEXT: <key>line</key><integer>530</integer>
// CHECK-NEXT: <key>col</key><integer>3</integer>
// CHECK-NEXT: <key>file</key><integer>0</integer>
// CHECK-NEXT: </dict>
// CHECK-NEXT: <key>name</key><string>VARIADIC_SET_TO_NULL(ptr, 1, 5, "hah...
[truncated]
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Reverts #156046
See #156046 (comment)