aboutsummaryrefslogtreecommitdiff
path: root/clang/unittests/Tooling/Syntax/TreeTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/unittests/Tooling/Syntax/TreeTest.cpp')
-rw-r--r--clang/unittests/Tooling/Syntax/TreeTest.cpp134
1 files changed, 53 insertions, 81 deletions
diff --git a/clang/unittests/Tooling/Syntax/TreeTest.cpp b/clang/unittests/Tooling/Syntax/TreeTest.cpp
index 91e7a8f..bd639aa 100644
--- a/clang/unittests/Tooling/Syntax/TreeTest.cpp
+++ b/clang/unittests/Tooling/Syntax/TreeTest.cpp
@@ -1190,32 +1190,45 @@ TEST_P(SyntaxTreeTest, UserDefinedLiteral) {
}
EXPECT_TRUE(treeDumpEqual(
R"cpp(
+typedef decltype(sizeof(void *)) size_t;
+
unsigned operator "" _i(unsigned long long);
unsigned operator "" _f(long double);
unsigned operator "" _c(char);
-
-unsigned operator "" _r(const char*); // raw-literal operator
-
+unsigned operator "" _s(const char*, size_t);
+unsigned operator "" _r(const char*);
template <char...>
-unsigned operator "" _t(); // numeric literal operator template
+unsigned operator "" _t();
void test() {
- 12_i; // call: operator "" _i(12uLL) | kind: integer
- 1.2_f; // call: operator "" _f(1.2L) | kind: float
- '2'_c; // call: operator "" _c('2') | kind: char
+ 12_i; // call: operator "" _i(12uLL) | kind: integer
+ 1.2_f; // call: operator "" _f(1.2L) | kind: float
+ '2'_c; // call: operator "" _c('2') | kind: char
+ "12"_s; // call: operator "" _s("12") | kind: string
- // TODO: Generate `FloatUserDefinedLiteralExpression` and
- // `IntegerUserDefinedLiteralExpression` instead of
- // `UnknownUserDefinedLiteralExpression`. See `getUserDefinedLiteralKind`
- 12_r; // call: operator "" _r("12") | kind: integer
- 1.2_r; // call: operator "" _i("1.2") | kind: float
- 12_t; // call: operator<'1', '2'> "" _x() | kind: integer
- 1.2_t; // call: operator<'1', '2'> "" _x() | kind: float
+ 12_r; // call: operator "" _r("12") | kind: integer
+ 1.2_r; // call: operator "" _i("1.2") | kind: float
+ 12_t; // call: operator<'1', '2'> "" _x() | kind: integer
+ 1.2_t; // call: operator<'1', '2'> "" _x() | kind: float
}
)cpp",
R"txt(
*: TranslationUnit
|-SimpleDeclaration
+| |-typedef
+| |-decltype
+| |-(
+| |-UnknownExpression
+| | |-sizeof
+| | |-(
+| | |-void
+| | |-*
+| | `-)
+| |-)
+| |-SimpleDeclarator
+| | `-size_t
+| `-;
+|-SimpleDeclaration
| |-unsigned
| |-SimpleDeclarator
| | |-operator
@@ -1259,6 +1272,24 @@ void test() {
| |-SimpleDeclarator
| | |-operator
| | |-""
+| | |-_s
+| | `-ParametersAndQualifiers
+| | |-(
+| | |-SimpleDeclaration
+| | | |-const
+| | | |-char
+| | | `-SimpleDeclarator
+| | | `-*
+| | |-,
+| | |-SimpleDeclaration
+| | | `-size_t
+| | `-)
+| `-;
+|-SimpleDeclaration
+| |-unsigned
+| |-SimpleDeclarator
+| | |-operator
+| | |-""
| | |-_r
| | `-ParametersAndQualifiers
| | |-(
@@ -1308,88 +1339,29 @@ void test() {
| | `-'2'_c
| `-;
|-ExpressionStatement
- | |-UnknownUserDefinedLiteralExpression
+ | |-StringUserDefinedLiteralExpression
+ | | `-"12"_s
+ | `-;
+ |-ExpressionStatement
+ | |-IntegerUserDefinedLiteralExpression
| | `-12_r
| `-;
|-ExpressionStatement
- | |-UnknownUserDefinedLiteralExpression
+ | |-FloatUserDefinedLiteralExpression
| | `-1.2_r
| `-;
|-ExpressionStatement
- | |-UnknownUserDefinedLiteralExpression
+ | |-IntegerUserDefinedLiteralExpression
| | `-12_t
| `-;
|-ExpressionStatement
- | |-UnknownUserDefinedLiteralExpression
+ | |-FloatUserDefinedLiteralExpression
| | `-1.2_t
| `-;
`-}
)txt"));
}
-TEST_P(SyntaxTreeTest, UserDefinedLiteralString) {
- if (!GetParam().isCXX11OrLater()) {
- return;
- }
- EXPECT_TRUE(treeDumpEqual(
- R"cpp(
-typedef decltype(sizeof(void *)) size_t;
-unsigned operator "" _s(const char*, size_t);
-void test() {
- "12"_s;// call: operator "" _s("12") | kind: string
-}
- )cpp",
- R"txt(
-*: TranslationUnit
-|-SimpleDeclaration
-| |-typedef
-| |-decltype
-| |-(
-| |-UnknownExpression
-| | |-sizeof
-| | |-(
-| | |-void
-| | |-*
-| | `-)
-| |-)
-| |-SimpleDeclarator
-| | `-size_t
-| `-;
-|-SimpleDeclaration
-| |-unsigned
-| |-SimpleDeclarator
-| | |-operator
-| | |-""
-| | |-_s
-| | `-ParametersAndQualifiers
-| | |-(
-| | |-SimpleDeclaration
-| | | |-const
-| | | |-char
-| | | `-SimpleDeclarator
-| | | `-*
-| | |-,
-| | |-SimpleDeclaration
-| | | `-size_t
-| | `-)
-| `-;
-`-SimpleDeclaration
- |-void
- |-SimpleDeclarator
- | |-test
- | `-ParametersAndQualifiers
- | |-(
- | `-)
- `-CompoundStatement
- |-{
- |-ExpressionStatement
- | |-StringUserDefinedLiteralExpression
- | | `-"12"_s
- | `-;
- `-}
-)txt"));
-}
-
TEST_P(SyntaxTreeTest, IntegerLiteralLongLong) {
if (!GetParam().isCXX11OrLater()) {
return;