view gcc/testsuite/gnat.dg/opt32.adb @ 152:2b5abeee2509

update gcc11
author anatofuz
date Mon, 25 May 2020 07:50:57 +0900
parents 04ced10e8804
children
line wrap: on
line source

-- { dg-do compile }
-- { dg-options "-O2" }

with Ada.Containers; use Ada.Containers;
with Ada.Containers.Vectors;

function Opt32 return Natural is

   package My_Vectors
      is new Vectors (Index_Type => Natural, Element_Type => Integer);
   use My_Vectors;

   V : Vector;

   function Sign_Changes return Natural is
      Cur      : Cursor := To_Cursor (V, 0);
      R        : Natural := 0;
      Negative : Boolean;
   begin
      Negative := Element (Cur) < 0;

      loop
         Cur := Next (Cur);
         exit when R > 100;

         if (Element (Cur) < 0) /= Negative then
            Negative := not Negative;
            R := R + 1;
         end if;
      end loop;

      return R;
   end;

begin
   return Sign_Changes;
end;