PR tree-optimization/81303
[official-gcc.git] / gcc / testsuite / gnat.dg / warn12.adb
blob8ffd0c7dff082e9e9665bb4a5b2b05b1ffa03721
1 -- { dg-do compile }
2 -- { dg-options "-O2" }
4 with Text_IO; use Text_IO;
5 with System.Storage_Elements; use System.Storage_Elements;
6 with Warn12_Pkg; use Warn12_Pkg;
8 procedure Warn12 (N : Natural) is
10 Buffer_Size : constant Storage_Offset
11 := Token_Groups'Size/System.Storage_Unit + 4096;
13 Buffer : Storage_Array (1 .. Buffer_Size);
14 for Buffer'Alignment use 8;
16 Tg1 : Token_Groups;
17 for Tg1'Address use Buffer'Address;
19 Tg2 : Token_Groups;
20 pragma Warnings (Off, Tg2);
22 sid : Sid_And_Attributes;
24 pragma Suppress (Index_Check, Sid_And_Attributes_Array);
26 begin
28 for I in 0 .. 7 loop
29 sid := Tg1.Groups(I); -- { dg-bogus "out-of-bounds access" }
30 Put_Line("Iteration");
31 end loop;
33 for I in 0 .. N loop
34 sid := Tg1.Groups(I); -- { dg-bogus "out-of-bounds access" }
35 Put_Line("Iteration");
36 end loop;
38 for I in 0 .. 7 loop
39 sid := Tg2.Groups(I); -- { dg-warning "out-of-bounds access" }
40 Put_Line("Iteration");
41 end loop;
43 for I in 0 .. N loop
44 sid := Tg2.Groups(I); -- { dg-warning "out-of-bounds access" }
45 Put_Line("Iteration");
46 end loop;
48 end;