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.