diff options
-rw-r--r-- | expr.c | 5 | ||||
-rw-r--r-- | test/string-u8-type.c | 1 | ||||
-rw-r--r-- | test/string-u8-type.qbe | 0 |
3 files changed, 4 insertions, 2 deletions
@@ -531,11 +531,12 @@ stringconcat(struct stringlit *str, bool forceutf8) len += strlen(src) - 2; next(); } while (tok.kind == TSTRINGLIT); - if (forceutf8 || kind == '8') - kind = 0; + if (forceutf8) + kind = '8'; ++len; /* null byte */ switch (kind) { case 0: t = &typechar; break; + case '8': t = &typeuchar; break; case 'u': t = &typeushort; break; case 'U': t = &typeuint; break; case 'L': t = targ->typewchar; break; diff --git a/test/string-u8-type.c b/test/string-u8-type.c new file mode 100644 index 0000000..d7fe074 --- /dev/null +++ b/test/string-u8-type.c @@ -0,0 +1 @@ +_Static_assert(__builtin_types_compatible_p(__typeof__(u8"abc"), unsigned char[])); diff --git a/test/string-u8-type.qbe b/test/string-u8-type.qbe new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/string-u8-type.qbe |