aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/exp_util.ads
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2014-02-19 11:59:25 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2014-02-19 11:59:25 +0100
commite03f7ccf159e37e61fce037b5c0df59e047fa6b9 (patch)
tree512339d8d5c47e1ed090cf7aaa7d72d449b57b63 /gcc/ada/exp_util.ads
parent4877d85f404cfaa4eb33a5efd178d7f6d0e65769 (diff)
downloadgcc-e03f7ccf159e37e61fce037b5c0df59e047fa6b9.zip
gcc-e03f7ccf159e37e61fce037b5c0df59e047fa6b9.tar.gz
gcc-e03f7ccf159e37e61fce037b5c0df59e047fa6b9.tar.bz2
[multiple changes]
2014-02-19 Yannick Moy <moy@adacore.com> * sinfo.ads: Minor comment update. 2014-02-19 Hristian Kirtchev <kirtchev@adacore.com> * atree.ads: Minor reformatting (change Entity_Info to Einfo). 2014-02-19 Thomas Quinot <quinot@adacore.com> * exp_ch7.adb (Find_Node_To_Be_Wrapped): An assignment statement that has the No_Ctrl_Actions flag is a suitable node to be wrapped if the assigned expression has no finalization actions. * sem_eval.adb (Eval_Entity_Name): For a compile time known boolean value, mark the corresponding condition SCO as constant. 2014-02-19 Robert Dewar <dewar@adacore.com> * exp_util.adb: Minor reformatting. * exp_util.ads (Matching_Standard_Type): New function. * exp_ch7.adb: Minor reformatting. 2014-02-19 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Get_Cursor_Type): Use scope of iterable type to find declaration for Cursor, to handle properly the case of a discriminated iterable type. 2014-02-19 Vincent Celier <celier@adacore.com> * gnatcmd.adb (GNATCmd): Always replace the object dirs of imported library projects with the library ALI dirs, when setting the object paths. * prj-env.ads (Ada_Objects_Path): Correct comments about argument Including_Libraries. From-SVN: r207888
Diffstat (limited to 'gcc/ada/exp_util.ads')
-rw-r--r--gcc/ada/exp_util.ads18
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/ada/exp_util.ads b/gcc/ada/exp_util.ads
index 808af98..f14117c 100644
--- a/gcc/ada/exp_util.ads
+++ b/gcc/ada/exp_util.ads
@@ -140,6 +140,18 @@ package Exp_Util is
-- generalize to expressions if there is a need but this is tricky to
-- implement because of short-circuits (among other things).???
+ procedure Insert_Declaration (N : Node_Id; Decl : Node_Id);
+ -- N must be a subexpression (Nkind in N_Subexpr). This is similar to
+ -- Insert_Action (N, Decl), but inserts Decl outside the expression in
+ -- which N appears. This is called Insert_Declaration because the intended
+ -- use is for declarations that have no associated code. We can't go
+ -- moving other kinds of things out of the current expression, since they
+ -- could be executed conditionally (e.g. right operand of short circuit,
+ -- or THEN/ELSE of if expression). This is currently used only in
+ -- Modify_Tree_For_C mode, where it is needed because in C we have no
+ -- way of having declarations within an expression (a really annoying
+ -- limitation).
+
procedure Insert_Library_Level_Action (N : Node_Id);
-- This procedure inserts and analyzes the node N as an action at the
-- library level for the current unit (i.e. it is attached to the
@@ -678,6 +690,12 @@ package Exp_Util is
-- expression E. Unc_Typ is an unconstrained array or record, or
-- a classwide type.
+ function Matching_Standard_Type (Typ : Entity_Id) return Entity_Id;
+ -- Given a scalar subtype Typ, returns a matching type in standard that
+ -- has the same object size value. For example, a 16 bit signed type will
+ -- typically return Standard_Short_Integer. For fixed-point types, this
+ -- will return integer types of the corresponding size.
+
function May_Generate_Large_Temp (Typ : Entity_Id) return Boolean;
-- Determines if the given type, Typ, may require a large temporary of the
-- kind that causes back-end trouble if stack checking is enabled. The