+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).
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;
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);
-- --
-- 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- --
-- 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.
-- 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