aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gnat.dg/equal3.adb
blob: 2e4bba6472f1219bc0c138799f2bba49d083d049 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
--  { dg-do compile }

procedure Equal3 is
    type R is record
       A, B : Integer;
    end record;

    package Pack is
       type RR is record
          C : R;
       end record;

       X : RR := (C => (A => 1, B => 1));
       Y : RR := (C => (A => 1, B => 2));
       pragma Assert (X /= Y); --@ASSERT:PASS

    end Pack;
    use Pack;
    function "=" (X, Y : R) return Boolean is (X.A = Y.A); --  { dg-error "equality operator must be declared before type \"R\" is frozen \\(RM 4.5.2 \\(9.8\\)\\) \\(Ada 2012\\)" }
begin
    pragma Assert (X /= Y); --@ASSERT:FAIL
end Equal3;