https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81050
Bug ID: 81050 Summary: ICE with -fexec-charset=utf-16 Product: gcc Version: 7.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: gerald at pfeifer dot com Target Milestone: --- Compiling #include <stdio.h> int main() { char a = 'a'; printf("Size of char : %d\n",sizeof(a)); printf("Size of char : %d\n",sizeof('a')); return 0; } with gcc x.c -o x -fexec-charset=utf-16 results in x.c: In function ‘main’: x.c:4:16: warning: multi-character character constant [-Wmultichar] char a = 'a'; ^~~ x.c:4:16: warning: overflow in implicit constant conversion [-Woverflow] x.c:6:43: warning: multi-character character constant [-Wmultichar] printf("Size of char : %d\n",sizeof('a')); ^~~ x.c:8:0: internal compiler error: character 0xa is not unibyte in execution character set } This has two issues: 1. The ICE. 2. The trailing } on a line of its own. This is with GCC 7.1.1 on x86_64-suse-linux; similarly was reported with GCC 5.