Skip to content

Commit a18a22c

Browse files
committed
Fix string literal initialization
1 parent 973a070 commit a18a22c

File tree

2 files changed

+15
-9
lines changed

2 files changed

+15
-9
lines changed

cpp23/flowchart.dot.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ digraph initialization {
1818

1919
YN_QUESTION_NODE(is_dest_reference, "Is the destination type a reference type?", "[dcl.init.general]/16.2", reference_initialization_head, is_char_arr_init_char:n)
2020

21-
YN_QUESTION_NODE(is_char_arr_init_char, "Is the destination type an array of characters?", "[dcl.init.general]/16.3", is_char_arr_literal_init, is_char_arr_init_char8)
21+
YN_QUESTION_NODE(is_char_arr_init_char, "Is the destination type an array of char?", "[dcl.init.general]/16.3", is_char_arr_literal_init, is_char_arr_init_uchar)
22+
YN_QUESTION_NODE(is_char_arr_init_uchar, "Is the destination type an array of unsigned char?", "[dcl.init.general]/16.3", is_char_arr_literal_init, is_char_arr_init_schar)
23+
YN_QUESTION_NODE(is_char_arr_init_schar, "Is the destination type an array of signed char?", "[dcl.init.general]/16.3", is_char_arr_literal_init, is_char_arr_init_char8)
2224
YN_QUESTION_NODE(is_char_arr_init_char8, "Is the destination type an array of char8_t?", "[dcl.init.general]/16.3", is_char_arr_literal_init, is_char_arr_init_char16)
2325
YN_QUESTION_NODE(is_char_arr_init_char16, "Is the destination type an array of char16_t?", "[dcl.init.general]/16.3", is_char_arr_literal_init, is_char_arr_init_char32)
2426
YN_QUESTION_NODE(is_char_arr_init_char32, "Is the destination type an array of char32_t?", "[dcl.init.general]/16.3", is_char_arr_literal_init, is_char_arr_init_wchar)

cpp23/string_init.dot.cpp

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,24 +9,28 @@
99

1010
subgraph cluster_string_literal_initialization {
1111
INSTRUCTION_NODE(STRING_LITERAL_INIT_HEAD, "Initialization as follows:", "[dcl.init.string]")
12-
-> INSTRUCTION_NODE(string_literal_verify_kind, "Verify array type and literal type match.")
12+
-> INSTRUCTION_NODE(string_literal_verify_kind, "Verify array element type and literal type match.")
1313
-> {
1414
rank=same;
1515

16-
string_literal_kind_char [label="char[] / ordinary literal"]
17-
string_literal_kind_char8 [label="char8_t[] / UTF-8 literal"]
18-
string_literal_kind_char16 [label="char16_t[] / UTF-16 literal"]
19-
string_literal_kind_char32 [label="char32_t[] / UTF-32 literal"]
20-
string_literal_kind_wchar [label="wchar_t[] / wide literal"]
16+
string_literal_kind_char [label="char / ordinary literal"]
17+
string_literal_kind_uchar [label="unsigned char / ordinary literal"]
18+
string_literal_kind_schar [label="signed char / ordinary literal"]
19+
string_literal_kind_char8 [label="char8_t / UTF-8 literal"]
20+
string_literal_kind_utf8_char [label="char / UTF-8 literal"]
21+
string_literal_kind_utf8_uchar [label="unsigned char / UTF-8 literal"]
22+
string_literal_kind_char16 [label="char16_t / UTF-16 literal"]
23+
string_literal_kind_char32 [label="char32_t / UTF-32 literal"]
24+
string_literal_kind_wchar [label="wchar_t / wide literal"]
2125
string_literal_kind_other [label="Anything else"]
2226

2327
// Force these nodes to layout in the following order
24-
string_literal_kind_char -> string_literal_kind_char8 -> string_literal_kind_char16 -> string_literal_kind_char32 -> string_literal_kind_wchar -> string_literal_kind_other [style=invis]
28+
string_literal_kind_char -> string_literal_kind_uchar -> string_literal_kind_schar -> string_literal_kind_char8 -> string_literal_kind_utf8_char -> string_literal_kind_utf8_uchar -> string_literal_kind_char16 -> string_literal_kind_char32 -> string_literal_kind_wchar -> string_literal_kind_other [style=invis]
2529
}
2630

2731
string_literal_kind_other -> NEW_ILL_FORMED()
2832

29-
{ string_literal_kind_char, string_literal_kind_char8, string_literal_kind_char16, string_literal_kind_char32, string_literal_kind_wchar } -> string_literal_initialize_first
33+
{ string_literal_kind_char, string_literal_kind_uchar, string_literal_kind_schar, string_literal_kind_char8, string_literal_kind_utf8_char, string_literal_kind_utf8_uchar, string_literal_kind_char16, string_literal_kind_char32, string_literal_kind_wchar } -> string_literal_initialize_first
3034

3135
INSTRUCTION_NODE(string_literal_initialize_first, "Initialize the first elements of the array with successive values from the string literal.")
3236
-> string_literal_has_too_many

0 commit comments

Comments
 (0)