summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gnat.dg/opt86b.adb
blob: fe46f2e28c63343d8c6ab85ba1215cf74e431368 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
-- { dg-do compile }
-- { dg-options "-O2 -fdump-tree-optimized" }

with Ada.Command_Line; use Ada.Command_Line;
with Opt86_Pkg; use Opt86_Pkg;

procedure Opt86B is

  S1, S2, S3, S4 : Enum;

begin

  S1 := Enum'Value (Argument (1));
  S2 := Enum'Value (Argument (2));
  S3 := Enum'Value (Argument (3));
  S4 := Enum'Value (Argument (4));

  if S1 in Val2 | Val3 | Val9 | Val29 then
    raise Program_Error;
  end if;

  if S2 not in Val2 | Val3 | Val9 | Val29 then
    raise Program_Error;
  end if;

  if S3 = Val1 or S3 = Val4 or S3 = Val8 or S3 = Val13 then
    raise Program_Error;
  end if;

  if S4 /= Val1 and S4 /= Val4 and S4 /= Val8 and S4 /= Val13 then
    raise Program_Error;
  end if;

end;

-- { dg-final { scan-tree-dump-not "> 29" "optimized" } } 
-- { dg-final { scan-tree-dump-not "> 13" "optimized" } }