[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Tue, 20 Oct 2015 10:04:44 +0000 (12:04 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 20 Oct 2015 10:04:44 +0000 (12:04 +0200)
2015-10-20  Vincent Celier  <celier@adacore.com>

* sem_cat.adb (Check_Categorization_Dependencies): Do nothing
when -gnatdu is specified.

2015-10-20  Ed Schonberg  <schonberg@adacore.com>

* sem_ch8.adb (analyze_Subprogram_Renaming): The actual for a
formal abstract subprogram must have a controlling type.
* stand.ads: Minor whitespace cleanup.

From-SVN: r229035

gcc/ada/ChangeLog
gcc/ada/sem_cat.adb
gcc/ada/sem_ch8.adb
gcc/ada/stand.ads

index e285e66d028c70ed5ac9b0c337dfa3942e6d27ad..5196fa7f0a376d1a25da87cc4ad0167bda5c8c1d 100644 (file)
@@ -1,3 +1,14 @@
+2015-10-20  Vincent Celier  <celier@adacore.com>
+
+       * sem_cat.adb (Check_Categorization_Dependencies): Do nothing
+       when -gnatdu is specified.
+
+2015-10-20  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch8.adb (analyze_Subprogram_Renaming): The actual for a
+       formal abstract subprogram must have a controlling type.
+       * stand.ads: Minor whitespace cleanup.
+
 2015-10-20  Gary Dismukes  <dismukes@adacore.com>
 
        * sem_ch13.adb: Minor reference change (RM => AARM).
index f8cf3ab983179d19da4fa9637524ae415aaf308f..28742e45683e775ba93781b8b62e262a8b774903 100644 (file)
@@ -185,9 +185,10 @@ package body Sem_Cat is
 
    begin
       --  Intrinsic subprograms are preelaborated, so do not impose any
-      --  categorization dependencies.
+      --  categorization dependencies. Also, ignore categorization
+      --  dependencies when compilation switch -gnatdu is used.
 
-      if Is_Intrinsic_Subprogram (Depended_Entity) then
+      if Is_Intrinsic_Subprogram (Depended_Entity) or else Debug_Flag_U then
          return;
       end if;
 
index db697d664167973ad9f7de67f60a4a9a5f4337ba..d6cce978183407f241191e0624c4291f198c8435 100644 (file)
@@ -3221,7 +3221,13 @@ package body Sem_Ch8 is
                                       Find_Dispatching_Type (Old_S);
 
                begin
-                  if Old_S_Ctrl_Type /= New_S_Ctrl_Type then
+
+                  --  The actual must match the (instance of the) formal,
+                  --  and must be a controlling type.
+
+                  if Old_S_Ctrl_Type /= New_S_Ctrl_Type
+                    or else No (New_S_Ctrl_Type)
+                  then
                      Error_Msg_NE
                        ("actual must be dispatching subprogram for type&",
                         Nam, New_S_Ctrl_Type);
index e93e9b4b89b1d6c710eb7623d05ab7a0d2399971..c2e8bc7aba3819b781e6cec2fbcb86ca211aa335 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2014, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2015, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -330,13 +330,13 @@ package Stand is
    --  situations. They have names that are suitable for use in such
    --  error messages (see body for actual names used).
 
-   Standard_Void_Type  : Entity_Id;
+   Standard_Void_Type : Entity_Id;
    --  This is a type used to represent the return type of procedures
 
-   Standard_Exception_Type  : Entity_Id;
+   Standard_Exception_Type : Entity_Id;
    --  This is a type used to represent the Etype of exceptions
 
-   Standard_A_String   : Entity_Id;
+   Standard_A_String : Entity_Id;
    --  An access to String type used for building elements of tables
    --  carrying the enumeration literal names.
 
@@ -446,8 +446,8 @@ package Stand is
    --  this type is always IEEE format.
 
    Universal_Fixed : Entity_Id;
-   --  Entity for universal fixed type. This is a type with  arbitrary
-   --  precision that can only appear in  a context with a specific type.
+   --  Entity for universal fixed type. This is a type with arbitrary
+   --  precision that can only appear in a context with a specific type.
    --  Universal_Fixed labels the result of multiplication or division of
    --  two fixed point numbers, and has no specified bounds (since, unlike
    --  universal integer and universal real, it is never used for runtime