Skip to content

Commit fa4b888

Browse files
authored
Fix string literals with prefix, closes #298 (#299)
* Fix parsing of string literals with prefix The current solution use '"' as opening sequence for all strings. It should use different opening sequence depending on prefix. This fix corrects this behaviour - original opening is used. * Add regression tests
1 parent 5a0d77f commit fa4b888

13 files changed

+50
-1
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
main: () = {
2+
s1 := u"u\"";
3+
s2 := U"U\"";
4+
s3 := u8"u8\"";
5+
s4 := L"L\"";
6+
s5 := R"(R")";
7+
s6 := uR"(uR")";
8+
s7 := u8R"(u8R")";
9+
s8 := UR"(UR")";
10+
s9 := LR"(LR")";
11+
}

regression-tests/test-results/apple-clang-14/pure2-various-string-literals.cpp.execution

Whitespace-only changes.

regression-tests/test-results/apple-clang-14/pure2-various-string-literals.cpp.output

Whitespace-only changes.

regression-tests/test-results/clang-12/pure2-various-string-literals.cpp.execution

Whitespace-only changes.

regression-tests/test-results/clang-12/pure2-various-string-literals.cpp.output

Whitespace-only changes.

regression-tests/test-results/gcc-10/pure2-various-string-literals.cpp.execution

Whitespace-only changes.

regression-tests/test-results/gcc-10/pure2-various-string-literals.cpp.output

Whitespace-only changes.

regression-tests/test-results/msvc-2022/pure2-various-string-literals.cpp.execution

Whitespace-only changes.

regression-tests/test-results/msvc-2022/pure2-various-string-literals.cpp.output

Whitespace-only changes.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
2+
#define CPP2_USE_MODULES Yes
3+
4+
#include "cpp2util.h"
5+
6+
#line 1 "pure2-various-string-literals.cpp2"
7+
auto main() -> int;
8+
9+
//=== Cpp2 definitions ==========================================================
10+
11+
#line 1 "pure2-various-string-literals.cpp2"
12+
auto main() -> int{
13+
auto s1 {u"u\""};
14+
auto s2 {U"U\""};
15+
auto s3 {u8"u8\""};
16+
auto s4 {L"L\""};
17+
auto s5 {R"(R")"};
18+
auto s6 {uR"(uR")"};
19+
auto s7 {u8R"(u8R")"};
20+
auto s8 {UR"(UR")"};
21+
auto s9 {LR"(LR")"};
22+
}
23+

0 commit comments

Comments
 (0)