OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc2/] [gcc/] [testsuite/] [gnat.dg/] [overflow_sum.adb] - Diff between revs 304 and 384

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 304 Rev 384
--  { dg-do run }
--  { dg-do run }
--  { dg-options "-gnato" }
--  { dg-options "-gnato" }
 
 
procedure Overflow_Sum is
procedure Overflow_Sum is
 
 
   function sum (a, b, c, d, e, f, g, h, i, j, k, l, m,
   function sum (a, b, c, d, e, f, g, h, i, j, k, l, m,
                 n, o, p, q, r, s, t, u, v, w, x, y, z : Integer)
                 n, o, p, q, r, s, t, u, v, w, x, y, z : Integer)
                 return Integer
                 return Integer
   is
   is
   begin
   begin
      return a + b + c + d + e + f + g + h + i + j + k + l + m
      return a + b + c + d + e + f + g + h + i + j + k + l + m
           + n + o + p + q + r + s + t + u + v + w + x + y + z;
           + n + o + p + q + r + s + t + u + v + w + x + y + z;
   end;
   end;
 
 
   f : integer;
   f : integer;
begin
begin
   f := sum (a => -2**31, b =>      1, c =>  2**31 - 1,  -- 0
   f := sum (a => -2**31, b =>      1, c =>  2**31 - 1,  -- 0
             d =>      1, e => -2**31, f =>  2**31 - 1,  -- 0
             d =>      1, e => -2**31, f =>  2**31 - 1,  -- 0
             g =>   2**0, h =>      2, i =>          4,  -- 2**3 - 1
             g =>   2**0, h =>      2, i =>          4,  -- 2**3 - 1
             j =>   2**3, k =>   2**4, l =>       2**5,  -- 2**6 - 1
             j =>   2**3, k =>   2**4, l =>       2**5,  -- 2**6 - 1
             m =>   2**6, n =>   2**7, o =>       2**8,  -- 2**9 - 1
             m =>   2**6, n =>   2**7, o =>       2**8,  -- 2**9 - 1
             p =>   2**9, q =>  2**10, r =>      2**11,  -- 2**12 - 1
             p =>   2**9, q =>  2**10, r =>      2**11,  -- 2**12 - 1
             s =>  2**12, t =>  2**13, u =>      2**14,  -- 2**15 - 1
             s =>  2**12, t =>  2**13, u =>      2**14,  -- 2**15 - 1
             v =>  2**15, w =>  2**16, x =>      2**17,  -- 2**18 - 1
             v =>  2**15, w =>  2**16, x =>      2**17,  -- 2**18 - 1
             y =>  2**31 - 2**18,      z =>          0); -- 2**31 - 1
             y =>  2**31 - 2**18,      z =>          0); -- 2**31 - 1
 
 
   if f /= 2**31 - 1 then
   if f /= 2**31 - 1 then
      raise Program_Error;
      raise Program_Error;
   end if;
   end if;
 
 
   begin
   begin
      f := sum (a =>      f, b => -2**31, c =>          1,  -- 0
      f := sum (a =>      f, b => -2**31, c =>          1,  -- 0
                d => -2**31, e =>      1, f =>          f,  -- 0
                d => -2**31, e =>      1, f =>          f,  -- 0
                g =>   2**0, h =>      2, i =>          4,  -- 2**3 - 1
                g =>   2**0, h =>      2, i =>          4,  -- 2**3 - 1
                j =>   2**3, k =>   2**4, l =>       2**5,  -- 2**6 - 1
                j =>   2**3, k =>   2**4, l =>       2**5,  -- 2**6 - 1
                m =>   2**6, n =>   2**7, o =>       2**8,  -- 2**9 - 1
                m =>   2**6, n =>   2**7, o =>       2**8,  -- 2**9 - 1
                p =>   2**9, q =>  2**10, r =>      2**11,  -- 2**12 - 1
                p =>   2**9, q =>  2**10, r =>      2**11,  -- 2**12 - 1
                s =>  2**12, t =>  2**13, u =>      2**14,  -- 2**15 - 1
                s =>  2**12, t =>  2**13, u =>      2**14,  -- 2**15 - 1
                v =>  2**15, w =>  2**16, x =>      2**17,  -- 2**18 - 1
                v =>  2**15, w =>  2**16, x =>      2**17,  -- 2**18 - 1
                y =>  2**31 - 2**18,      z =>          1); -- 2**31 (overflow)
                y =>  2**31 - 2**18,      z =>          1); -- 2**31 (overflow)
      raise Program_Error;
      raise Program_Error;
   exception
   exception
      when Constraint_Error => null;
      when Constraint_Error => null;
   end;
   end;
end;
end;
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.