+2014-07-30 Bob Duff <duff@adacore.com>
+
+ * exp_ch9.ads, sem_prag.adb, exp_ch4.adb, sem_ch13.adb: Minor comment
+ fixes.
+ * treepr.ads, treepr.adb (ppp): Make this debugging routine
+ accept any type covered by Union_Id.
+
2014-07-30 Robert Dewar <dewar@adacore.com>
* sem_ch4.adb (Analyze_If_Expression): Resolve condition before
-- type of the access type is a task or contains tasks. In this case
-- the call to Init (Temp.all ...) is replaced by code that ensures
-- that tasks get activated (see Exp_Ch9.Build_Task_Allocate_Block
- -- for details). In addition, if the type T is a task T, then the
+ -- for details). In addition, if the type T is a task type, then the
-- first argument to Init must be converted to the task record type.
declare
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2013, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2014, 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- --
-- allocated aggregates with default initialized components. Init_Stmts
-- contains the list of statements required to initialize the allocated
-- aggregate. It replaces the call to Init (Args) done by
- -- Build_Task_Allocate_Block.
+ -- Build_Task_Allocate_Block. Also used to expand allocators containing
+ -- build-in-place function calls.
function Build_Wrapper_Spec
(Subp_Id : Entity_Id;
-- the supported profile) to make sure that one of these
-- packages is implicitly with'ed, since we need to have
-- the tasking run time active for the pragma Priority to
- -- have any effect. Previously with with'ed the package
+ -- have any effect. Previously we with'ed the package
-- System.Tasking, but this package does not trigger the
-- required initialization of the run-time library.
-- supported profile) to make sure that one of these packages
-- is implicitly with'ed, since we need to have the tasking
-- run time active for the pragma Priority to have any effect.
- -- Previously with with'ed the package System.Tasking, but
- -- this package does not trigger the required initialization
- -- of the run-time library.
+ -- Previously we with'ed the package System.Tasking, but this
+ -- package does not trigger the required initialization of the
+ -- run-time library.
declare
Discard : Entity_Id;
end case;
end p;
- --------
- -- pe --
- --------
-
- procedure pe (E : Elist_Id) is
- begin
- Print_Tree_Elist (E);
- end pe;
-
--------
-- pl --
--------
end case;
end pn;
- --------
- -- pp --
- --------
-
- procedure pp (N : Union_Id) is
- begin
- pn (N);
- end pp;
-
----------------
-- Print_Char --
----------------
-- pt --
--------
- procedure pt (N : Node_Id) is
+ procedure pt (N : Union_Id) is
begin
- Print_Node_Subtree (N);
+ case N is
+ when List_Low_Bound .. List_High_Bound - 1 =>
+ Print_List_Subtree (List_Id (N));
+ when Node_Range =>
+ Print_Node_Subtree (Node_Id (N));
+ when Elist_Range =>
+ Print_Elist_Subtree (Elist_Id (N));
+ when others =>
+ pp (N);
+ end case;
end pt;
- ---------
- -- ppp --
- ---------
-
- procedure ppp (N : Node_Id) is
- begin
- pt (N);
- end ppp;
-
-------------------
-- Serial_Number --
-------------------
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2013, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2014, 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- --
-- the definition of Union_Id. Historically this was only for printing
-- nodes, hence the name.
- procedure pp (N : Union_Id);
- pragma Export (Ada, pp);
- -- Identical to pn, present for historical reasons
-
- procedure ppp (N : Node_Id);
- pragma Export (Ada, ppp);
- -- Same as Print_Node_Subtree
-
- -- The following are no longer really needed, now that pn will print
- -- anything you throw at it.
-
- procedure pe (E : Elist_Id);
- pragma Export (Ada, pe);
- -- Same as Print_Tree_Elist
+ procedure pt (N : Union_Id);
+ pragma Export (Ada, pt);
+ -- Same as pn, except prints subtrees. For Nodes, it is exactly the same
+ -- as Print_Node_Subtree. For Elists it is the same as Print_Elist_Subtree.
+ -- For Lists, it is the same as Print_Tree_List. If given anything other
+ -- than a Node, List, or Elist, same effect as pn.
procedure pl (L : Int);
pragma Export (Ada, pl);
-- on the left and add a minus sign. This just saves some typing in the
-- debugger.
- procedure pt (N : Node_Id);
- pragma Export (Ada, pt);
- -- Same as ppp
+ procedure pe (N : Union_Id) renames pt;
+ procedure pp (N : Union_Id) renames pn;
+ procedure ppp (N : Union_Id) renames pt;
+ -- Synonyms retained for historical reasons
end Treepr;