view gcc/testsuite/gnat.dg/opt32.adb @ 143:76e1cf5455ef

add cbc_gc test
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 23 Dec 2018 19:24:05 +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;