re PR target/84277 (A lot of new acats testsuite failures)
authorEric Botcazou <ebotcazou@adacore.com>
Fri, 16 Feb 2018 23:26:08 +0000 (23:26 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Fri, 16 Feb 2018 23:26:08 +0000 (23:26 +0000)
PR ada/84277
* gnat.dg/array11.adb (Array11): Tweak index and remove warning.
* gnat.dg/dispatch1.adb: Rename into...
* gnat.dg/disp1.adb: ...this.
* gnat.dg/dispatch1_p.ads: Rename into...
* gnat.dg/disp1_pkg.ads: ...this.
* gnat.dg/disp2.adb: Rename into...
* gnat.dg/dispatch2.adb: ...this.
* gnat.dg/dispatch2_p.ads: Rename into...
* gnat.dg/disp2_pkg.ads: ...this.
* gnat.dg/dispatch2_p.adb: Rename into...
* gnat.dg/disp2_pkg.adb: this.
* gnat.dg/generic_dispatch.adb: Rename into...
* gnat.dg/generic_disp.adb: this.
* gnat.dg/generic_dispatch_p.ads: Rename into...
* gnat.dg/generic_disp_pkg.ads: ...this.
* gnat.dg/generic_dispatch_p.adb: Rename into...
* gnat.dg/generic_disp_pkg.adb: ...this.
* gnat.dg/null_pointer_deref1.adb (Null_Pointer_Deref1): Robustify.
* gnat.dg/null_pointer_deref2.adb (Null_Pointer_Deref2): Likewise.
* gnat.dg/object_overflow1.adb: Tweak index.
* gnat.dg/object_overflow2.adb: Likewise.
* gnat.dg/object_overflow3.adb: Likewise.
* gnat.dg/object_overflow4.adb: Likewise.
* gnat.dg/object_overflow5.adb: Likewise.

From-SVN: r257773

25 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/array11.adb
gcc/testsuite/gnat.dg/disp1.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/disp1_pkg.ads [new file with mode: 0644]
gcc/testsuite/gnat.dg/disp2.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/disp2_pkg.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/disp2_pkg.ads [new file with mode: 0644]
gcc/testsuite/gnat.dg/dispatch1.adb [deleted file]
gcc/testsuite/gnat.dg/dispatch1_p.ads [deleted file]
gcc/testsuite/gnat.dg/dispatch2.adb [deleted file]
gcc/testsuite/gnat.dg/dispatch2_p.adb [deleted file]
gcc/testsuite/gnat.dg/dispatch2_p.ads [deleted file]
gcc/testsuite/gnat.dg/generic_disp.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/generic_disp_pkg.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/generic_disp_pkg.ads [new file with mode: 0644]
gcc/testsuite/gnat.dg/generic_dispatch.adb [deleted file]
gcc/testsuite/gnat.dg/generic_dispatch_p.adb [deleted file]
gcc/testsuite/gnat.dg/generic_dispatch_p.ads [deleted file]
gcc/testsuite/gnat.dg/null_pointer_deref1.adb
gcc/testsuite/gnat.dg/null_pointer_deref2.adb
gcc/testsuite/gnat.dg/object_overflow1.adb
gcc/testsuite/gnat.dg/object_overflow2.adb
gcc/testsuite/gnat.dg/object_overflow3.adb
gcc/testsuite/gnat.dg/object_overflow4.adb
gcc/testsuite/gnat.dg/object_overflow5.adb

index 9a156a6abb5be32ec7cc39910d040fce0fcdd5be..f3b1f9bccbfcc7717201fa87bfd485f5226fba5b 100644 (file)
@@ -1,3 +1,31 @@
+2018-02-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR ada/84277
+       * gnat.dg/array11.adb (Array11): Tweak index and remove warning.
+       * gnat.dg/dispatch1.adb: Rename into...
+       * gnat.dg/disp1.adb: ...this.
+       * gnat.dg/dispatch1_p.ads: Rename into...
+       * gnat.dg/disp1_pkg.ads: ...this.
+       * gnat.dg/disp2.adb: Rename into...
+       * gnat.dg/dispatch2.adb: ...this.
+       * gnat.dg/dispatch2_p.ads: Rename into...
+       * gnat.dg/disp2_pkg.ads: ...this.
+       * gnat.dg/dispatch2_p.adb: Rename into...
+       * gnat.dg/disp2_pkg.adb: this.
+       * gnat.dg/generic_dispatch.adb: Rename into...
+       * gnat.dg/generic_disp.adb: this.
+       * gnat.dg/generic_dispatch_p.ads: Rename into...
+       * gnat.dg/generic_disp_pkg.ads: ...this.
+       * gnat.dg/generic_dispatch_p.adb: Rename into...
+       * gnat.dg/generic_disp_pkg.adb: ...this.
+       * gnat.dg/null_pointer_deref1.adb (Null_Pointer_Deref1): Robustify.
+       * gnat.dg/null_pointer_deref2.adb (Null_Pointer_Deref2): Likewise.
+       * gnat.dg/object_overflow1.adb: Tweak index.
+       * gnat.dg/object_overflow2.adb: Likewise.
+       * gnat.dg/object_overflow3.adb: Likewise.
+       * gnat.dg/object_overflow4.adb: Likewise.
+       * gnat.dg/object_overflow5.adb: Likewise.
+
 2018-02-16  Jakub Jelinek  <jakub@redhat.com>
 
        PR ipa/84425
index 7be61c4b63198fa39b856f7a9fe9f9a1abed756c..aab7347009202059b46be6576740977973d52e65 100644 (file)
@@ -1,15 +1,17 @@
 -- { dg-do compile }
 
+with System;
+
 procedure Array11 is
 
   type Rec is null record;
-  type Ptr is access all Rec;
+  type Index_T is mod System.Memory_Size;
 
-  type Arr1 is array (1..8) of aliased Rec; -- { dg-warning "padded" }
-  type Arr2 is array (Long_Integer) of aliased Rec; -- { dg-warning "padded" }
+  type Arr1 is array (1 .. 8) of aliased Rec; -- { dg-warning "padded" }
+  type Arr2 is array (Index_T) of aliased Rec; -- { dg-warning "padded" }
 
   A1 : Arr1;
-  A2 : Arr2; -- { dg-warning "Storage_Error" }
+  A2 : Arr2;
 
 begin
   null;
diff --git a/gcc/testsuite/gnat.dg/disp1.adb b/gcc/testsuite/gnat.dg/disp1.adb
new file mode 100644 (file)
index 0000000..2fcefea
--- /dev/null
@@ -0,0 +1,10 @@
+-- { dg-do run }
+
+with Disp1_Pkg; use Disp1_Pkg;
+
+procedure Disp1 is
+   O   : DT_I1;
+   Ptr : access I1'Class;
+begin
+   Ptr := new I1'Class'(I1'Class (O));
+end;
diff --git a/gcc/testsuite/gnat.dg/disp1_pkg.ads b/gcc/testsuite/gnat.dg/disp1_pkg.ads
new file mode 100644 (file)
index 0000000..4d80e76
--- /dev/null
@@ -0,0 +1,6 @@
+package Disp1_Pkg is
+
+   type I1 is interface;
+   type DT_I1 is new I1 with null record;
+
+end Disp1_Pkg;
diff --git a/gcc/testsuite/gnat.dg/disp2.adb b/gcc/testsuite/gnat.dg/disp2.adb
new file mode 100644 (file)
index 0000000..2e1e622
--- /dev/null
@@ -0,0 +1,11 @@
+--  { dg-do run }
+
+with Disp2_Pkg; use Disp2_Pkg;
+
+procedure Disp2 is
+   Obj : Object_Ptr := new Object;
+begin
+   if Obj.Get_Ptr /= Obj.Impl_Of then
+      raise Program_Error;
+   end if;
+end;
diff --git a/gcc/testsuite/gnat.dg/disp2_pkg.adb b/gcc/testsuite/gnat.dg/disp2_pkg.adb
new file mode 100644 (file)
index 0000000..ed460ec
--- /dev/null
@@ -0,0 +1,8 @@
+package body Disp2_Pkg is
+
+  function Impl_Of (Self : access Object) return Object_Ptr is
+  begin
+    return Object_Ptr (Self);
+  end Impl_Of;
+
+end Disp2_Pkg;
diff --git a/gcc/testsuite/gnat.dg/disp2_pkg.ads b/gcc/testsuite/gnat.dg/disp2_pkg.ads
new file mode 100644 (file)
index 0000000..0b4903a
--- /dev/null
@@ -0,0 +1,11 @@
+package Disp2_Pkg is
+
+  type Object     is tagged null record;
+  type Object_Ptr is access all Object'CLASS;
+
+  function Impl_Of (Self : access Object) return Object_Ptr;
+  function Get_Ptr (Self : access Object) return Object_Ptr
+    renames Impl_Of;
+
+end Disp2_Pkg;
+
diff --git a/gcc/testsuite/gnat.dg/dispatch1.adb b/gcc/testsuite/gnat.dg/dispatch1.adb
deleted file mode 100644 (file)
index 28e97e6..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
--- { dg-do run }
-
-with dispatch1_p; use dispatch1_p;
-procedure dispatch1 is
-   O   : DT_I1;
-   Ptr : access I1'Class;
-begin
-   Ptr := new I1'Class'(I1'Class (O));
-end;
diff --git a/gcc/testsuite/gnat.dg/dispatch1_p.ads b/gcc/testsuite/gnat.dg/dispatch1_p.ads
deleted file mode 100644 (file)
index 73de627..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-package dispatch1_p is
-   type I1 is interface;
-   type DT_I1 is new I1 with null record;
-end;
diff --git a/gcc/testsuite/gnat.dg/dispatch2.adb b/gcc/testsuite/gnat.dg/dispatch2.adb
deleted file mode 100644 (file)
index ed57b13..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---  { dg-do run }
-
-with dispatch2_p; use dispatch2_p;
-procedure dispatch2 is
-   Obj : Object_Ptr := new Object;
-begin
-   if Obj.Get_Ptr /= Obj.Impl_Of then
-      raise Program_Error;
-   end if;
-end;
diff --git a/gcc/testsuite/gnat.dg/dispatch2_p.adb b/gcc/testsuite/gnat.dg/dispatch2_p.adb
deleted file mode 100644 (file)
index 243c3ca..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
---
-package body dispatch2_p is
-  function Impl_Of (Self : access Object) return Object_Ptr is
-  begin
-    return Object_Ptr (Self);
-  end Impl_Of;
-end;
diff --git a/gcc/testsuite/gnat.dg/dispatch2_p.ads b/gcc/testsuite/gnat.dg/dispatch2_p.ads
deleted file mode 100644 (file)
index e7852b4..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-package dispatch2_p is
-  type Object     is tagged null record;
-  type Object_Ptr is access all Object'CLASS;
---
-  function Impl_Of (Self : access Object) return Object_Ptr;
-  function Get_Ptr (Self : access Object) return Object_Ptr
-    renames Impl_Of;
-end;
diff --git a/gcc/testsuite/gnat.dg/generic_disp.adb b/gcc/testsuite/gnat.dg/generic_disp.adb
new file mode 100644 (file)
index 0000000..2f828ff
--- /dev/null
@@ -0,0 +1,10 @@
+--  { dg-do run }
+
+with Generic_Disp_Pkg; use Generic_Disp_Pkg;
+
+procedure Generic_Disp is
+   I : aliased Integer := 0;
+   D : Iface'Class := Dispatching_Constructor (DT'Tag, I'access);
+begin   
+   null;   
+end Generic_Disp;
diff --git a/gcc/testsuite/gnat.dg/generic_disp_pkg.adb b/gcc/testsuite/gnat.dg/generic_disp_pkg.adb
new file mode 100644 (file)
index 0000000..b3aeb3f
--- /dev/null
@@ -0,0 +1,9 @@
+package body Generic_Disp_Pkg is
+
+   function Constructor (I : not null access Integer) return DT is
+      R : DT; 
+   begin
+      return R;
+   end Constructor;
+
+end Generic_Disp_Pkg;
diff --git a/gcc/testsuite/gnat.dg/generic_disp_pkg.ads b/gcc/testsuite/gnat.dg/generic_disp_pkg.ads
new file mode 100644 (file)
index 0000000..5be5492
--- /dev/null
@@ -0,0 +1,14 @@
+with Ada.Tags.Generic_Dispatching_Constructor;
+
+package Generic_Disp_Pkg is
+   type Iface is interface;
+   function Constructor (I : not null access Integer) return Iface is abstract;
+   function Dispatching_Constructor
+      is new Ada.Tags.Generic_Dispatching_Constructor
+               (T           => Iface,
+                Parameters  => Integer,
+                Constructor => Constructor);
+   type DT is new Iface with null record; 
+   overriding
+   function Constructor (I : not null access Integer) return DT;
+end Generic_Disp_Pkg;
diff --git a/gcc/testsuite/gnat.dg/generic_dispatch.adb b/gcc/testsuite/gnat.dg/generic_dispatch.adb
deleted file mode 100644 (file)
index a22e495..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
---  { dg-do run }
-
-with generic_dispatch_p; use generic_dispatch_p;
-procedure generic_dispatch is
-   I : aliased Integer := 0;
-   D : Iface'Class := Dispatching_Constructor (DT'Tag, I'access);
-begin   
-   null;   
-end generic_dispatch;
diff --git a/gcc/testsuite/gnat.dg/generic_dispatch_p.adb b/gcc/testsuite/gnat.dg/generic_dispatch_p.adb
deleted file mode 100644 (file)
index 7a4bbbd..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-package body generic_dispatch_p is
-   function Constructor (I : not null access Integer) return DT is
-      R : DT; 
-  begin
-      return R;
-   end Constructor;
-end;
diff --git a/gcc/testsuite/gnat.dg/generic_dispatch_p.ads b/gcc/testsuite/gnat.dg/generic_dispatch_p.ads
deleted file mode 100644 (file)
index fe6115d..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-with Ada.Tags.Generic_Dispatching_Constructor;
-package generic_dispatch_p is
-   type Iface is interface;
-   function Constructor (I : not null access Integer) return Iface is abstract;
-   function Dispatching_Constructor
-      is new Ada.Tags.Generic_Dispatching_Constructor
-               (T           => Iface,
-                Parameters  => Integer,
-                Constructor => Constructor);
-   type DT is new Iface with null record; 
-   overriding
-   function Constructor (I : not null access Integer) return DT;
-end;
index 6e7bf14e5df5a028c685fea15e39ef6185f52852..ec7f9460559604ea12a040e606552757504b8e5f 100644 (file)
@@ -17,5 +17,5 @@ procedure Null_Pointer_Deref1 is
 begin
    Data.all := 1;
 exception
-   when Constraint_Error | Storage_Error => null;
+   when others => null;
 end;
index 63e2dd11f39cf24f52862f739ca24a0f675fb5f4..284762216c566af3bc35862f5ac659e0904ba2bb 100644 (file)
@@ -20,7 +20,7 @@ procedure Null_Pointer_Deref2 is
    begin
       Data.all := 1;
    exception
-      when Constraint_Error | Storage_Error => null;
+      when others => null;
    end T;
 
 begin
index ba7f657e71027b78c7e04f577982dafd49da873a..d972f24a1fe24433df84b6faaeef4ad1cfe5f454 100644 (file)
@@ -1,10 +1,12 @@
 -- { dg-do compile }
 
+with Interfaces.C; use Interfaces.C;
+
 procedure Object_Overflow1 is
 
   procedure Proc (x : Boolean) is begin null; end;
 
-  type Arr is array(Long_Integer) of Boolean;
+  type Arr is array(ptrdiff_t) of Boolean;
   Obj : Arr; -- { dg-warning "Storage_Error" }
 
 begin
index 9601c563b2a418e69fed54cab1d197ecfbf47aee..a429291e80a4e2caeb6144fcee9061b4748eebf1 100644 (file)
@@ -1,10 +1,12 @@
 -- { dg-do compile }
 
+with Interfaces.C; use Interfaces.C;
+
 procedure Object_Overflow2 is
 
   procedure Proc (x : Boolean) is begin null; end;
 
-  type Arr is array(0 .. Long_Integer'Last) of Boolean;
+  type Arr is array(0 .. ptrdiff_t'Last) of Boolean;
   Obj : Arr; -- { dg-warning "Storage_Error" }
 
 begin
index 5e27b4f0d81da0e6093de3d81cce4e6156d820e4..d3c0c17c57d10daaae7e556866fbac17b34c08f2 100644 (file)
@@ -1,10 +1,12 @@
 -- { dg-do compile }
 
+with Interfaces.C; use Interfaces.C;
+
 procedure Object_Overflow3 is
 
   procedure Proc (x : Boolean) is begin null; end;
 
-  type Arr is array(0 .. Long_Integer'Last) of Boolean;
+  type Arr is array(0 .. ptrdiff_t'Last) of Boolean;
 
   type Rec is record
     A : Arr;
index 643989d348cd2d7a5398bd4bf8f4fbcd15cbb3ef..0e320e265ad0512755eb9082ee1ae96fbb276a59 100644 (file)
@@ -1,14 +1,16 @@
 -- { dg-do compile }
 
+with Interfaces.C; use Interfaces.C;
+
 procedure Object_Overflow4 is
 
   procedure Proc (x : Integer) is begin null; end;
 
-  type Index is new Long_Integer range 0 .. Long_Integer'Last;
+  type Index_T is new ptrdiff_t range 0 .. ptrdiff_t'Last;
 
-  type Arr is array(Index range <>) of Integer;
+  type Arr is array(Index_T range <>) of Integer;
 
-  type Rec (Size: Index := 6) is record -- { dg-warning "Storage_Error" }
+  type Rec (Size: Index_T := 6) is record -- { dg-warning "Storage_Error" }
     A: Arr (0..Size);
   end record;
 
index 4a4f6cfe30eb7b49192632b324707a437ca84ece..42d00b24b9548eda3c3080263449f2d000d95de2 100644 (file)
@@ -1,14 +1,16 @@
 -- { dg-do compile }
 
+with Interfaces.C; use Interfaces.C;
+
 procedure Object_Overflow5 is
 
   procedure Proc (c : Character) is begin null; end;
 
-  type Index is new Long_Integer range 0 .. Long_Integer'Last;
+  type Index_T is new ptrdiff_t range 0 .. ptrdiff_t'Last;
 
-  type Arr is array(Index range <>) of Character;
+  type Arr is array(Index_T range <>) of Character;
 
-  type Rec (Size: Index := 6) is record -- { dg-warning "Storage_Error" }
+  type Rec (Size: Index_T := 6) is record -- { dg-warning "Storage_Error" }
     A: Arr (0..Size);
   end record;