+2016-04-20 Vincent Celier <celier@adacore.com>
+
+ * clean.adb (Gnatclean): Fail if project file specified and
+ gprclean is not available.
+ * gnatname.adb: Fail is -P is used and gprname is not available.
+ * make.adb (Initialize): Fail if project file specified and
+ gprbuild is not available.
+
+2016-04-20 Bob Duff <duff@adacore.com>
+
+ * sem_ch5.adb (Analyze_Iterator_Specification): Do not use secondary
+ stack when possible.
+
2016-04-20 Gary Dismukes <dismukes@adacore.com>
* par_sco.adb, sem_util.adb, sem_ch13.adb: Minor typo corrections and
-- Warn about 'gnatclean -P'
if Project_File_Name /= null then
- Put_Line
- ("warning: gnatclean -P is obsolete and will not be available "
- & "in the next release; use gprclean instead.");
+ Fail
+ ("project files are no longer supported; use gprclean instead.");
end if;
-- A project file was specified by a -P switch
-- gprname did not succeed.
if Create_Project then
- Write_Line
- ("warning: gnatname -P is obsolete and will not be available in the "
- & "next release; use gprname instead");
+ Fail ("project files are no longer supported; use gprname instead");
end if;
-- If no Ada or foreign pattern was specified, print the usage and return
-- Warn about 'gnatmake -P'
if Project_File_Name /= null then
- Write_Line
- ("warning: gnatmake -P is obsolete and will not be available "
- & "in the next release; use gprbuild instead");
+ Make_Failed
+ ("project files are no longer supported; use gprbuild instead");
end if;
-- If --subdirs= is specified, but not -P, this is equivalent to -D,
------------------------------------
procedure Analyze_Iterator_Specification (N : Node_Id) is
- Loc : constant Source_Ptr := Sloc (N);
- Def_Id : constant Node_Id := Defining_Identifier (N);
- Subt : constant Node_Id := Subtype_Indication (N);
- Iter_Name : constant Node_Id := Name (N);
-
- Typ : Entity_Id;
- Bas : Entity_Id;
-
procedure Check_Reverse_Iteration (Typ : Entity_Id);
-- For an iteration over a container, if the loop carries the Reverse
-- indicator, verify that the container type has an Iterate aspect that
return Etype (Ent);
end Get_Cursor_Type;
+ -- Local variables
+
+ Def_Id : constant Node_Id := Defining_Identifier (N);
+ Iter_Name : constant Node_Id := Name (N);
+ Loc : constant Source_Ptr := Sloc (N);
+ Subt : constant Node_Id := Subtype_Indication (N);
+
+ Bas : Entity_Id;
+ Typ : Entity_Id;
+
-- Start of processing for Analyze_iterator_Specification
begin
-- Do not perform this expansion in SPARK mode, since the formal
-- verification directly deals with the source form of the iterator.
- -- Ditto for ASIS and when expansion is disabled,, where the temporary
+ -- Ditto for ASIS and when expansion is disabled, where the temporary
-- may hide the transformation of a selected component into a prefixed
-- function call, and references need to see the original expression.
-- to it. It has no effect on the generated code if no actions
-- are added to it (see Wrap_Transient_Declaration).
- if Expander_Active then
+ if not Is_Array_Type (Typ) and then Expander_Active then
Establish_Transient_Scope (Name (Decl), Sec_Stack => True);
end if;