7
7
// ===----------------------------------------------------------------------===//
8
8
9
9
#include " clang/Lex/DependencyDirectivesScanner.h"
10
- #include " clang/Basic/TokenKinds.h"
11
10
#include " llvm/ADT/SmallString.h"
12
11
#include " gtest/gtest.h"
13
12
@@ -18,11 +17,11 @@ using namespace clang::dependency_directives_scan;
18
17
static bool minimizeSourceToDependencyDirectives (
19
18
StringRef Input, SmallVectorImpl<char > &Out,
20
19
SmallVectorImpl<dependency_directives_scan::Token> &Tokens,
21
- SmallVectorImpl<Directive> &Directives, const LangOptions &LangOpts ) {
20
+ SmallVectorImpl<Directive> &Directives) {
22
21
Out.clear ();
23
22
Tokens.clear ();
24
23
Directives.clear ();
25
- if (scanSourceForDependencyDirectives (Input, Tokens, Directives, LangOpts ))
24
+ if (scanSourceForDependencyDirectives (Input, Tokens, Directives))
26
25
return true ;
27
26
28
27
raw_svector_ostream OS (Out);
@@ -39,9 +38,7 @@ static bool minimizeSourceToDependencyDirectives(StringRef Input,
39
38
SmallVectorImpl<char > &Out) {
40
39
SmallVector<dependency_directives_scan::Token, 16 > Tokens;
41
40
SmallVector<Directive, 32 > Directives;
42
- LangOptions LangOpts;
43
- return minimizeSourceToDependencyDirectives (Input, Out, Tokens, Directives,
44
- LangOpts);
41
+ return minimizeSourceToDependencyDirectives (Input, Out, Tokens, Directives);
45
42
}
46
43
47
44
namespace {
@@ -50,17 +47,16 @@ TEST(MinimizeSourceToDependencyDirectivesTest, Empty) {
50
47
SmallVector<char , 128 > Out;
51
48
SmallVector<dependency_directives_scan::Token, 4 > Tokens;
52
49
SmallVector<Directive, 4 > Directives;
53
- LangOptions LangOpts;
54
50
55
- ASSERT_FALSE (minimizeSourceToDependencyDirectives ( " " , Out, Tokens, Directives,
56
- LangOpts ));
51
+ ASSERT_FALSE (
52
+ minimizeSourceToDependencyDirectives ( " " , Out, Tokens, Directives ));
57
53
EXPECT_TRUE (Out.empty ());
58
54
EXPECT_TRUE (Tokens.empty ());
59
55
ASSERT_EQ (1u , Directives.size ());
60
56
ASSERT_EQ (pp_eof, Directives.back ().Kind );
61
57
62
58
ASSERT_FALSE (minimizeSourceToDependencyDirectives (" abc def\n xyz" , Out, Tokens,
63
- Directives, LangOpts ));
59
+ Directives));
64
60
EXPECT_STREQ (" <TokBeforeEOF>\n " , Out.data ());
65
61
EXPECT_TRUE (Tokens.empty ());
66
62
ASSERT_EQ (2u , Directives.size ());
@@ -72,7 +68,6 @@ TEST(MinimizeSourceToDependencyDirectivesTest, AllTokens) {
72
68
SmallVector<char , 128 > Out;
73
69
SmallVector<dependency_directives_scan::Token, 4 > Tokens;
74
70
SmallVector<Directive, 4 > Directives;
75
- LangOptions LangOpts;
76
71
77
72
ASSERT_FALSE (
78
73
minimizeSourceToDependencyDirectives (" #define A\n "
@@ -97,7 +92,7 @@ TEST(MinimizeSourceToDependencyDirectivesTest, AllTokens) {
97
92
" export module m;\n "
98
93
" import m;\n "
99
94
" #pragma clang system_header\n " ,
100
- Out, Tokens, Directives, LangOpts ));
95
+ Out, Tokens, Directives));
101
96
EXPECT_EQ (pp_define, Directives[0 ].Kind );
102
97
EXPECT_EQ (pp_undef, Directives[1 ].Kind );
103
98
EXPECT_EQ (pp_endif, Directives[2 ].Kind );
@@ -150,10 +145,9 @@ TEST(MinimizeSourceToDependencyDirectivesTest, Define) {
150
145
SmallVector<char , 128 > Out;
151
146
SmallVector<dependency_directives_scan::Token, 4 > Tokens;
152
147
SmallVector<Directive, 4 > Directives;
153
- LangOptions LangOpts;
154
148
155
- ASSERT_FALSE (minimizeSourceToDependencyDirectives (
156
- " #define MACRO " , Out, Tokens, Directives, LangOpts ));
149
+ ASSERT_FALSE (minimizeSourceToDependencyDirectives (" #define MACRO " , Out,
150
+ Tokens, Directives));
157
151
EXPECT_STREQ (" #define MACRO\n " , Out.data ());
158
152
ASSERT_EQ (4u , Tokens.size ());
159
153
ASSERT_EQ (2u , Directives.size ());
@@ -844,16 +838,15 @@ TEST(MinimizeSourceToDependencyDirectivesTest, PragmaOnce) {
844
838
SmallVector<char , 128 > Out;
845
839
SmallVector<dependency_directives_scan::Token, 4 > Tokens;
846
840
SmallVector<Directive, 4 > Directives;
847
- LangOptions LangOpts;
848
841
849
842
StringRef Source = R"( // comment
850
843
#pragma once
851
844
// another comment
852
845
#include <test.h>
853
846
_Pragma("once")
854
847
)" ;
855
- ASSERT_FALSE (minimizeSourceToDependencyDirectives (Source, Out, Tokens,
856
- Directives, LangOpts ));
848
+ ASSERT_FALSE (
849
+ minimizeSourceToDependencyDirectives (Source, Out, Tokens, Directives ));
857
850
EXPECT_STREQ (" #pragma once\n #include <test.h>\n _Pragma(\" once\" )\n " ,
858
851
Out.data ());
859
852
ASSERT_EQ (Directives.size (), 4u );
@@ -933,7 +926,6 @@ TEST(MinimizeSourceToDependencyDirectivesTest, CxxModules) {
933
926
SmallVector<char , 128 > Out;
934
927
SmallVector<dependency_directives_scan::Token, 4 > Tokens;
935
928
SmallVector<Directive, 4 > Directives;
936
- LangOptions LangOpts;
937
929
938
930
StringRef Source = R"(
939
931
module;
@@ -962,8 +954,8 @@ ort \
962
954
import f(->a = 3);
963
955
}
964
956
)" ;
965
- ASSERT_FALSE (minimizeSourceToDependencyDirectives (Source, Out, Tokens,
966
- Directives, LangOpts ));
957
+ ASSERT_FALSE (
958
+ minimizeSourceToDependencyDirectives (Source, Out, Tokens, Directives ));
967
959
EXPECT_STREQ (" #include \" textual-header.h\"\n export module m;"
968
960
" exp\\\n ort import:l[[rename]];"
969
961
" import<<=3;import a b d e d e f e;"
@@ -1020,52 +1012,4 @@ TEST(MinimizeSourceToDependencyDirectivesTest, TokensBeforeEOF) {
1020
1012
EXPECT_STREQ (" #ifndef A\n #define A\n #endif\n <TokBeforeEOF>\n " , Out.data ());
1021
1013
}
1022
1014
1023
- TEST (MinimizeSourceToDependencyDirectivesTest, CPlusPlus14PPNumber) {
1024
- SmallVector<char , 128 > Out;
1025
- SmallVector<dependency_directives_scan::Token, 4 > Tokens;
1026
- SmallVector<Directive, 4 > Directives;
1027
- LangOptions LangOpts;
1028
-
1029
- StringRef Source = R"(
1030
- #if 123'124
1031
- #endif
1032
- )" ;
1033
-
1034
- LangOpts.CPlusPlus14 = true ;
1035
- ASSERT_FALSE (minimizeSourceToDependencyDirectives (Source, Out, Tokens,
1036
- Directives, LangOpts));
1037
- EXPECT_STREQ (" #if 123'124\n #endif\n " , Out.data ());
1038
- ASSERT_EQ (Directives.size (), 3u );
1039
- EXPECT_EQ (Directives[0 ].Kind , dependency_directives_scan::pp_if);
1040
- EXPECT_EQ (Directives[1 ].Kind , dependency_directives_scan::pp_endif);
1041
- EXPECT_EQ (Directives[2 ].Kind , dependency_directives_scan::pp_eof);
1042
- ASSERT_EQ (Tokens.size (), 7u );
1043
-
1044
- ASSERT_TRUE (Tokens[0 ].is (tok::hash));
1045
- ASSERT_TRUE (Tokens[1 ].is (tok::raw_identifier)); // "if"
1046
- ASSERT_TRUE (Tokens[2 ].is (tok::numeric_constant)); // 123'124
1047
- ASSERT_TRUE (Tokens[3 ].is (tok::eod));
1048
- ASSERT_TRUE (Tokens[4 ].is (tok::hash));
1049
- ASSERT_TRUE (Tokens[5 ].is (tok::raw_identifier)); // #endif
1050
- ASSERT_TRUE (Tokens[6 ].is (tok::eod));
1051
-
1052
- LangOpts.CPlusPlus14 = false ;
1053
- ASSERT_FALSE (minimizeSourceToDependencyDirectives (Source, Out, Tokens,
1054
- Directives, LangOpts));
1055
- EXPECT_STREQ (" #if 123'124\n #endif\n " , Out.data ());
1056
- ASSERT_EQ (Directives.size (), 3u );
1057
- EXPECT_EQ (Directives[0 ].Kind , dependency_directives_scan::pp_if);
1058
- EXPECT_EQ (Directives[1 ].Kind , dependency_directives_scan::pp_endif);
1059
- EXPECT_EQ (Directives[2 ].Kind , dependency_directives_scan::pp_eof);
1060
- ASSERT_EQ (Tokens.size (), 8u );
1061
- ASSERT_TRUE (Tokens[0 ].is (tok::hash));
1062
- ASSERT_TRUE (Tokens[1 ].is (tok::raw_identifier)); // "if"
1063
- ASSERT_TRUE (Tokens[2 ].is (tok::numeric_constant)); // 123
1064
- ASSERT_TRUE (Tokens[3 ].is (tok::unknown)); // '124
1065
- ASSERT_TRUE (Tokens[4 ].is (tok::eod));
1066
- ASSERT_TRUE (Tokens[5 ].is (tok::hash));
1067
- ASSERT_TRUE (Tokens[6 ].is (tok::raw_identifier)); // #endif
1068
- ASSERT_TRUE (Tokens[7 ].is (tok::eod));
1069
- }
1070
-
1071
1015
} // end anonymous namespace
0 commit comments