testint.adb: New test.
* gnat.dg/testint.adb: New test. * gnat.dg/modular1.adb: New test. * gnat.dg/test_iface_aggr.adb: New test. * gnat.dg/specs/tag2.ads: Adjust. From-SVN: r135635
This commit is contained in:
parent
08de96f033
commit
73c25d9b9d
@ -1,3 +1,10 @@
|
||||
2008-05-20 Arnaud Charlet <charlet@adacore.com>
|
||||
|
||||
* gnat.dg/testint.adb: New test.
|
||||
* gnat.dg/modular1.adb: New test.
|
||||
* gnat.dg/test_iface_aggr.adb: New test.
|
||||
* gnat.dg/specs/tag2.ads: Adjust.
|
||||
|
||||
2008-05-20 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* gcc.dg/tree-ssa/ssa-sink-1.c: Adjust.
|
||||
|
15
gcc/testsuite/gnat.dg/modular1.adb
Normal file
15
gcc/testsuite/gnat.dg/modular1.adb
Normal file
@ -0,0 +1,15 @@
|
||||
-- { dg-do run }
|
||||
|
||||
with Ada.Text_IO;
|
||||
procedure Modular1 is
|
||||
type T1 is mod 9;
|
||||
package T1_IO is new Ada.Text_IO.Modular_IO(T1);
|
||||
X: T1 := 8;
|
||||
J1: constant := 5;
|
||||
begin for J2 in 5..5 loop
|
||||
pragma Assert(X*(2**J1) = X*(2**J2));
|
||||
if X*(2**J1) /= X*(2**J2) then
|
||||
raise Program_Error;
|
||||
end if;
|
||||
end loop;
|
||||
end Modular1;
|
@ -10,7 +10,7 @@ package tag2 is
|
||||
type T6 is tagged;
|
||||
protected type T1 is end T1; -- { dg-error "must be a tagged type" }
|
||||
task type T2; -- { dg-error "must be a tagged type" }
|
||||
type T3 is null record; -- { dg-error "must be tagged" }
|
||||
type T3 is null record; -- { dg-error "must be a tagged type" }
|
||||
task type T4 is new I with end;
|
||||
protected type T5 is new I with end;
|
||||
type T6 is tagged null record;
|
||||
|
40
gcc/testsuite/gnat.dg/test_iface_aggr.adb
Normal file
40
gcc/testsuite/gnat.dg/test_iface_aggr.adb
Normal file
@ -0,0 +1,40 @@
|
||||
-- { dg-do run }
|
||||
|
||||
with Ada.Text_IO, Ada.Tags;
|
||||
procedure Test_Iface_Aggr is
|
||||
package Pkg is
|
||||
type Iface is interface;
|
||||
function Constructor (S: Iface) return Iface'Class is abstract;
|
||||
procedure Do_Test (It : Iface'class);
|
||||
type Root is abstract tagged record
|
||||
Comp_1 : Natural := 0;
|
||||
end record;
|
||||
type DT_1 is new Root and Iface with record
|
||||
Comp_2, Comp_3 : Natural := 0;
|
||||
end record;
|
||||
function Constructor (S: DT_1) return Iface'Class;
|
||||
type DT_2 is new DT_1 with null record; -- Test
|
||||
function Constructor (S: DT_2) return Iface'Class;
|
||||
end;
|
||||
package body Pkg is
|
||||
procedure Do_Test (It: in Iface'Class) is
|
||||
Obj : Iface'Class := Constructor (It);
|
||||
S : String := Ada.Tags.External_Tag (Obj'Tag);
|
||||
begin
|
||||
null;
|
||||
end;
|
||||
function Constructor (S: DT_1) return Iface'Class is
|
||||
begin
|
||||
return Iface'Class(DT_1'(others => <>));
|
||||
end;
|
||||
function Constructor (S: DT_2) return Iface'Class is
|
||||
Result : DT_2;
|
||||
begin
|
||||
return Iface'Class(DT_2'(others => <>)); -- Test
|
||||
end;
|
||||
end;
|
||||
use Pkg;
|
||||
Obj: DT_2;
|
||||
begin
|
||||
Do_Test (Obj);
|
||||
end;
|
13
gcc/testsuite/gnat.dg/testint.adb
Normal file
13
gcc/testsuite/gnat.dg/testint.adb
Normal file
@ -0,0 +1,13 @@
|
||||
-- { dg-do run }
|
||||
-- { dg-options "-gnato" }
|
||||
|
||||
with Text_IO; use Text_IO;
|
||||
procedure testint is
|
||||
function m1 (a, b : short_integer) return integer is
|
||||
begin
|
||||
return integer (a + b);
|
||||
end m1;
|
||||
f : integer;
|
||||
begin
|
||||
f := m1 (short_integer'Last, short_integer'Last);
|
||||
end testint;
|
Loading…
x
Reference in New Issue
Block a user