[Bug c/82817] C frontend errors on SSA name from REG_EXPR

rguenther at suse dot de gcc-bugzilla@gcc.gnu.org
Fri Nov 3 09:37:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82817

--- Comment #3 from rguenther at suse dot de <rguenther at suse dot de> ---
On Fri, 3 Nov 2017, thopre01 at gcc dot gnu.org wrote:

> 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)

But if you change c.1_2 to c_1_2 for example, does it work?

> 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.

Because we're using the C parser to parse things like type and function
declarations.


More information about the Gcc-bugs mailing list