[PATCH] D67635: Fix for stringized function-macro args continued across lines
Alex Lorenz via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Sep 19 15:37:46 PDT 2019
This revision was automatically updated to reflect the committed changes.
Closed by commit rL372360: Fix for stringized function-macro args continued across lines (authored by arphaman, committed by ).
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
Changed prior to commit:
https://reviews.llvm.org/D67635?vs=220390&id=220914#toc
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D67635/new/
https://reviews.llvm.org/D67635
Files:
cfe/trunk/lib/Lex/DependencyDirectivesSourceMinimizer.cpp
cfe/trunk/unittests/Lex/DependencyDirectivesSourceMinimizerTest.cpp
Index: cfe/trunk/lib/Lex/DependencyDirectivesSourceMinimizer.cpp
===================================================================
--- cfe/trunk/lib/Lex/DependencyDirectivesSourceMinimizer.cpp
+++ cfe/trunk/lib/Lex/DependencyDirectivesSourceMinimizer.cpp
@@ -246,9 +246,12 @@
static const char *reverseOverSpaces(const char *First, const char *Last) {
assert(First <= Last);
- while (First != Last && isHorizontalWhitespace(Last[-1]))
+ const char *PrevLast = Last;
+ while (First != Last && isHorizontalWhitespace(Last[-1])) {
+ PrevLast = Last;
--Last;
- return Last;
+ }
+ return PrevLast;
}
static void skipLineComment(const char *&First, const char *const End) {
Index: cfe/trunk/unittests/Lex/DependencyDirectivesSourceMinimizerTest.cpp
===================================================================
--- cfe/trunk/unittests/Lex/DependencyDirectivesSourceMinimizerTest.cpp
+++ cfe/trunk/unittests/Lex/DependencyDirectivesSourceMinimizerTest.cpp
@@ -157,19 +157,19 @@
ASSERT_FALSE(minimizeSourceToDependencyDirectives(
"#define MACRO(\t)\tcon \t tent\t", Out));
- EXPECT_STREQ("#define MACRO() con \t tent\n", Out.data());
+ EXPECT_STREQ("#define MACRO() con \t tent\t\n", Out.data());
ASSERT_FALSE(minimizeSourceToDependencyDirectives(
"#define MACRO(\f)\fcon \f tent\f", Out));
- EXPECT_STREQ("#define MACRO() con \f tent\n", Out.data());
+ EXPECT_STREQ("#define MACRO() con \f tent\f\n", Out.data());
ASSERT_FALSE(minimizeSourceToDependencyDirectives(
"#define MACRO(\v)\vcon \v tent\v", Out));
- EXPECT_STREQ("#define MACRO() con \v tent\n", Out.data());
+ EXPECT_STREQ("#define MACRO() con \v tent\v\n", Out.data());
ASSERT_FALSE(minimizeSourceToDependencyDirectives(
"#define MACRO \t\v\f\v\t con\f\t\vtent\v\f \v", Out));
- EXPECT_STREQ("#define MACRO con\f\t\vtent\n", Out.data());
+ EXPECT_STREQ("#define MACRO con\f\t\vtent\v\n", Out.data());
}
TEST(MinimizeSourceToDependencyDirectivesTest, DefineMultilineArgs) {
@@ -187,7 +187,7 @@
" call((a), \\\n"
" (b))",
Out));
- EXPECT_STREQ("#define MACRO(a,b) call((a),(b))\n", Out.data());
+ EXPECT_STREQ("#define MACRO(a,b) call((a), (b))\n", Out.data());
}
TEST(MinimizeSourceToDependencyDirectivesTest,
@@ -200,7 +200,17 @@
" call((a), \\\r"
" (b))",
Out));
- EXPECT_STREQ("#define MACRO(a,b) call((a),(b))\n", Out.data());
+ EXPECT_STREQ("#define MACRO(a,b) call((a), (b))\n", Out.data());
+}
+
+TEST(MinimizeSourceToDependencyDirectivesTest, DefineMultilineArgsStringize) {
+ SmallVector<char, 128> Out;
+
+ ASSERT_FALSE(minimizeSourceToDependencyDirectives("#define MACRO(a,b) \\\n"
+ " #a \\\n"
+ " #b",
+ Out));
+ EXPECT_STREQ("#define MACRO(a,b) #a #b\n", Out.data());
}
TEST(MinimizeSourceToDependencyDirectivesTest,
@@ -213,7 +223,7 @@
" call((a), \\\r\n"
" (b))",
Out));
- EXPECT_STREQ("#define MACRO(a,b) call((a),(b))\n", Out.data());
+ EXPECT_STREQ("#define MACRO(a,b) call((a), (b))\n", Out.data());
}
TEST(MinimizeSourceToDependencyDirectivesTest,
@@ -226,7 +236,7 @@
" call((a), \\\n\r"
" (b))",
Out));
- EXPECT_STREQ("#define MACRO(a,b) call((a),(b))\n", Out.data());
+ EXPECT_STREQ("#define MACRO(a,b) call((a), (b))\n", Out.data());
}
TEST(MinimizeSourceToDependencyDirectivesTest, DefineNumber) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D67635.220914.patch
Type: text/x-patch
Size: 4103 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190919/0f15cf84/attachment.bin>
More information about the cfe-commits
mailing list