cor3ntin updated this revision to Diff 368958.
cor3ntin added a comment.

- Add tests and fix existing tests (again)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D108742/new/

https://reviews.llvm.org/D108742

Files:
  clang/lib/Basic/CharInfo.cpp
  clang/unittests/Basic/CharInfoTest.cpp
  clang/unittests/Lex/DependencyDirectivesSourceMinimizerTest.cpp
  clang/unittests/Lex/LexerTest.cpp

Index: clang/unittests/Lex/LexerTest.cpp
===================================================================
--- clang/unittests/Lex/LexerTest.cpp
+++ clang/unittests/Lex/LexerTest.cpp
@@ -493,10 +493,10 @@
 
   EXPECT_TRUE(hasNewLineEscaped("\\\r"));
   EXPECT_TRUE(hasNewLineEscaped("\\\n"));
+  EXPECT_TRUE(hasNewLineEscaped("\\\v"));
   EXPECT_TRUE(hasNewLineEscaped("\\\r\n"));
   EXPECT_TRUE(hasNewLineEscaped("\\\n\r"));
-  EXPECT_TRUE(hasNewLineEscaped("\\ \t\v\f\r"));
-  EXPECT_TRUE(hasNewLineEscaped("\\ \t\v\f\r\n"));
+  EXPECT_TRUE(hasNewLineEscaped("\\ \t\r\n"));
 
   EXPECT_FALSE(hasNewLineEscaped("\\\r\r"));
   EXPECT_FALSE(hasNewLineEscaped("\\\r\r\n"));
Index: clang/unittests/Lex/DependencyDirectivesSourceMinimizerTest.cpp
===================================================================
--- clang/unittests/Lex/DependencyDirectivesSourceMinimizerTest.cpp
+++ clang/unittests/Lex/DependencyDirectivesSourceMinimizerTest.cpp
@@ -162,18 +162,6 @@
   ASSERT_FALSE(minimizeSourceToDependencyDirectives(
       "#define MACRO(\t)\tcon \t tent\t", Out));
   EXPECT_STREQ("#define MACRO() con \t tent\n", Out.data());
-
-  ASSERT_FALSE(minimizeSourceToDependencyDirectives(
-      "#define MACRO(\f)\fcon \f tent\f", Out));
-  EXPECT_STREQ("#define MACRO() con \f tent\n", Out.data());
-
-  ASSERT_FALSE(minimizeSourceToDependencyDirectives(
-      "#define MACRO(\v)\vcon \v tent\v", Out));
-  EXPECT_STREQ("#define MACRO() con \v tent\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());
 }
 
 TEST(MinimizeSourceToDependencyDirectivesTest, DefineMultilineArgs) {
@@ -194,6 +182,29 @@
   EXPECT_STREQ("#define MACRO(a,b) call((a), (b))\n", Out.data());
 }
 
+TEST(MinimizeSourceToDependencyDirectivesTest,
+     DefineMultilineArgsVerticalWhiteSpaces) {
+  SmallVector<char, 128> Out;
+
+  ASSERT_FALSE(
+      minimizeSourceToDependencyDirectives("#define MACRO(a        \\\f"
+                                           "              )",
+                                           Out));
+  EXPECT_STREQ("#define MACRO(a)\n", Out.data());
+
+  ASSERT_FALSE(
+      minimizeSourceToDependencyDirectives("#define MACRO(a        \\\v"
+                                           "              )",
+                                           Out));
+  EXPECT_STREQ("#define MACRO(a)\n", Out.data());
+
+  ASSERT_FALSE(minimizeSourceToDependencyDirectives(
+      "#define MACRO(a        \\\f\\\v\\\v\\\f"
+      "              )",
+      Out));
+  EXPECT_STREQ("#define MACRO(a)\n", Out.data());
+}
+
 TEST(MinimizeSourceToDependencyDirectivesTest,
      DefineMultilineArgsCarriageReturn) {
   SmallVector<char, 128> Out;
Index: clang/unittests/Basic/CharInfoTest.cpp
===================================================================
--- clang/unittests/Basic/CharInfoTest.cpp
+++ clang/unittests/Basic/CharInfoTest.cpp
@@ -17,8 +17,8 @@
   using namespace charinfo;
   EXPECT_EQ((unsigned)CHAR_SPACE,   InfoTable[(unsigned)' ']);
   EXPECT_EQ((unsigned)CHAR_HORZ_WS, InfoTable[(unsigned)'\t']);
-  EXPECT_EQ((unsigned)CHAR_HORZ_WS, InfoTable[(unsigned)'\f']); // ??
-  EXPECT_EQ((unsigned)CHAR_HORZ_WS, InfoTable[(unsigned)'\v']); // ??
+  EXPECT_EQ((unsigned)CHAR_VERT_WS, InfoTable[(unsigned)'\f']);
+  EXPECT_EQ((unsigned)CHAR_VERT_WS, InfoTable[(unsigned)'\v']);
   EXPECT_EQ((unsigned)CHAR_VERT_WS, InfoTable[(unsigned)'\n']);
   EXPECT_EQ((unsigned)CHAR_VERT_WS, InfoTable[(unsigned)'\r']);
   EXPECT_EQ((unsigned)CHAR_UNDER,   InfoTable[(unsigned)'_']);
@@ -101,8 +101,6 @@
 
   EXPECT_TRUE(isHorizontalWhitespace(' '));
   EXPECT_TRUE(isHorizontalWhitespace('\t'));
-  EXPECT_TRUE(isHorizontalWhitespace('\f')); // ??
-  EXPECT_TRUE(isHorizontalWhitespace('\v')); // ??
 
   EXPECT_FALSE(isHorizontalWhitespace('\n'));
   EXPECT_FALSE(isHorizontalWhitespace('\r'));
@@ -123,9 +121,9 @@
 
   EXPECT_FALSE(isVerticalWhitespace(' '));
   EXPECT_FALSE(isVerticalWhitespace('\t'));
-  EXPECT_FALSE(isVerticalWhitespace('\f')); // ??
-  EXPECT_FALSE(isVerticalWhitespace('\v')); // ??
 
+  EXPECT_TRUE(isVerticalWhitespace('\f')); // ??
+  EXPECT_TRUE(isVerticalWhitespace('\v')); // ??
   EXPECT_TRUE(isVerticalWhitespace('\n'));
   EXPECT_TRUE(isVerticalWhitespace('\r'));
 
Index: clang/lib/Basic/CharInfo.cpp
===================================================================
--- clang/lib/Basic/CharInfo.cpp
+++ clang/lib/Basic/CharInfo.cpp
@@ -12,6 +12,7 @@
 
 // Statically initialize CharInfo table based on ASCII character set
 // Reference: FreeBSD 7.2 /usr/share/misc/ascii
+// clang-format off
 const uint16_t clang::charinfo::InfoTable[256] = {
   // 0 NUL         1 SOH         2 STX         3 ETX
   // 4 EOT         5 ENQ         6 ACK         7 BEL
@@ -19,8 +20,8 @@
   0           , 0           , 0           , 0           ,
   // 8 BS          9 HT         10 NL         11 VT
   //12 NP         13 CR         14 SO         15 SI
-  0           , CHAR_HORZ_WS, CHAR_VERT_WS, CHAR_HORZ_WS,
-  CHAR_HORZ_WS, CHAR_VERT_WS, 0           , 0           ,
+  0           , CHAR_HORZ_WS, CHAR_VERT_WS, CHAR_VERT_WS,
+  CHAR_VERT_WS, CHAR_VERT_WS, 0           , 0           ,
   //16 DLE        17 DC1        18 DC2        19 DC3
   //20 DC4        21 NAK        22 SYN        23 ETB
   0           , 0           , 0           , 0           ,
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to