> The patch is OK, but it doesn't change anything for c52103x as this is a
> pure gimplifier problem.  Try running ACATS at -O0:

Or just compile the attached reduced testcase at -O0:

c52103x.adb: In function 'C52103X':
c52103x.adb:1:1: error: type mismatch in binary truth expression
boolean
system__unsigned_types__packed_byte
boolean
D.2363 = D.2361 && D.2362;

-- 
Eric Botcazou
PROCEDURE  C52103X  IS

BEGIN

CONSTR_ERR:         -- THIS BLOCK CATCHES CONSTRAINT_ERROR
                    -- FOR THE TYPE DECLARATION.
     BEGIN

DCL_ARR:  DECLARE   -- THIS BLOCK DECLARES THE ARRAY TYPE

               TYPE  TA42  IS  ARRAY(
                    INTEGER RANGE -2..INTEGER'LAST
                                    )  OF BOOLEAN ;
               -- CONSTRAINT_ERROR MAY BE RAISED BY THE
               -- ARRAY TYPE DECLARATION.
               PRAGMA PACK (TA42);

               SUBTYPE  TA41  IS  TA42 ;

          BEGIN

OBJ_DCL:       DECLARE   -- THIS BLOCK DECLARES TWO BOOLEAN ARRAYS THAT
                         -- HAVE INTEGER'LAST + 3 COMPONENTS;
                         -- STORAGE_ERROR MAY BE RAISED.
                    ARR41  :  TA41 ;
                    ARR42  :  TA42 ;

               BEGIN

DO_SLICE:      BEGIN
                    -- SLICE ASSIGNMENT:

                    ARR42(  -1..INTEGER'LAST  ) :=
                         ARR41(
                            -2..INTEGER'LAST-1) ;

     CHK_SLICE:     BEGIN
                         FOR  I  IN  -1..2  LOOP

                              IF  ARR42( I )  /=  FALSE  AND  I /= 0
                              THEN
                                   raise Program_Error;
                              ELSIF  ARR42( I ) /= TRUE  AND  I  = 0
                              THEN
                                   raise Program_Error;
                              END IF;

                         END LOOP;

                         IF  ARR42( -2 )  /=  TRUE
                         THEN
                            raise Program_Error;
                         END IF;

                    END CHK_SLICE;

               END DO_SLICE;

          END OBJ_DCL;

          END DCL_ARR;

     END CONSTR_ERR;


END C52103X;

Reply via email to