-
- if (element_type->kind == TYPE_ATOMIC && expression->kind == EXPR_STRING_LITERAL) {
- switch (expression->string_literal.encoding) {
- case STRING_ENCODING_CHAR: {
- atomic_type_kind_t const akind = element_type->atomic.akind;
- if (akind == ATOMIC_TYPE_CHAR
- || akind == ATOMIC_TYPE_SCHAR
- || akind == ATOMIC_TYPE_UCHAR) {
- return initializer_from_string(array_type,
- &expression->string_literal.value);
- }
- break;
+ switch (expression->string_literal.encoding) {
+ case STRING_ENCODING_CHAR: {
+ if (is_type_atomic(element_type, ATOMIC_TYPE_CHAR) ||
+ is_type_atomic(element_type, ATOMIC_TYPE_SCHAR) ||
+ is_type_atomic(element_type, ATOMIC_TYPE_UCHAR)) {
+ goto make_string_init;