https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92325
Bug ID: 92325 Summary: -fdump-tree-original and char(kind=4) initializations Product: gcc Version: unknown Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: anlauf at gcc dot gnu.org Target Milestone: --- While looking at a different PR, I noticed that the following code produces unexpected output from -fdump-tree-original: program p implicit none character(len=1,kind=4) :: a1 = 4_'A' character(len=2,kind=4) :: a2 = 4_'AB' character(len=3,kind=4) :: a3 = 4_'ABC' print *, a1 // a2 // a3 end gcc-10 & gcc-9 produce: p () { static character(kind=4) a1[1:1] = "A\x00\x00"; static character(kind=4) a2[1:2] = "A\x00\x00\x00B\x00\x00"; static character(kind=4) a3[1:3] = "A\x00\x00\x00B\x00\x00\x00C\x00\x00"; ... while gcc-7 and gcc-8 produce: p () { static character(kind=4) a1[1:1] = "A"; static character(kind=4) a2[1:2] = "A"; static character(kind=4) a3[1:3] = "A"; So gcc-7 and gcc-8 only display the first character of the initializer, while gcc-9 and gcc-10 has initializers that appear to be one byte too short, as they miss the final \x00 of the last character. While this may be an entirely cosmetic issue, it would be helpful to have this corrected. Any idea where I should be looking to fix this?