Commit 73c25d9b by Arnaud Charlet Committed by Arnaud Charlet

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
parent 08de96f0
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> 2008-05-20 Richard Guenther <rguenther@suse.de>
* gcc.dg/tree-ssa/ssa-sink-1.c: Adjust. * gcc.dg/tree-ssa/ssa-sink-1.c: Adjust.
......
-- { 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 ...@@ -10,7 +10,7 @@ package tag2 is
type T6 is tagged; type T6 is tagged;
protected type T1 is end T1; -- { dg-error "must be a tagged type" } protected type T1 is end T1; -- { dg-error "must be a tagged type" }
task type T2; -- { 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; task type T4 is new I with end;
protected type T5 is new I with end; protected type T5 is new I with end;
type T6 is tagged null record; type T6 is tagged null record;
......
-- { 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;
-- { 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;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment