1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
-- { dg-do run } -- { dg-options "-O" } procedure string_slice is subtype Key_T is String (1 .. 3); function One_Xkey return Key_T is Key : Key_T := "XXX"; begin Key (1 .. 2) := "__"; return Key; end; Key : Key_T := One_Xkey; begin if Key (3) /= 'X' then raise Program_Error; end if; end;