https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82817
--- Comment #2 from Thomas Preud'homme <thopre01 at gcc dot gnu.org> --- (In reply to Richard Biener from comment #1) > The GIMPLE FE also doesn't like that some variable names created by the > middle-end contain '.'. > > I belive it would be good to "fix" create_tmp_var_name. I suppose it > intentionally uses ASM_FORMAT_PRIVATE_NAME to avoid clashes with user > vars - but that should only be necessary for globals which should better > use a more "manual" way of creating the name. That would work for this specific instance but as I said it's a more general problem. You can see at the end another such case: expected character `[', found `)' for this RTL: (cinsn 11 (set (reg:SI r3 [orig:111 c.1_2 ] [111]) (mem/c:SI (reg/f:SI r3 [117]) [1 c+0 S4 A32])) "testcase.c":7) I don't see why the RTL body goes through the C tokenizer since we only seems to care about matching curly braces and detecting EOF which I'm sure a lower level function that deals with encoding and buffer management would do.