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

--- Comment #2 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot 
Uni-Bielefeld.DE> ---
> --- Comment #1 from anlauf at gcc dot gnu.org ---
> The print looks like it is coming via line 47:
>
>   call val  (  "U++",  "U--")
>
> which is translated here in the tree-dump:
>
>   val (&"U++"[1]{lb: 1 sz: 1}, "U", 3, 1);

In my case this is

    val (&"U++"[1]{lb: 1 sz: 1}, "U", &C.1181, &C.1182, 3, 1);

> The prototype of val is:
>
>   static void val (character(kind=1)[1:1] & restrict, character(kind=1),
> integer(kind=8), integer(kind=8));

I get

    static void val (character(kind=1)[1:1] & restrict, character(kind=1),
integer(kind=4) & restrict, integer(kind=4) & restrict, integer(kind=4),
integer(kind=4));

> as I expect.  It appears the second argument is mishandled.  How so?

What I've now found (either in gdb or by piping the output to cat -v):
the value printed here for x = 'U' varies between runs, sometimes
unprintable, sometimes not.  It seems to be random.

Reply via email to