diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2014-02-19 11:59:25 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2014-02-19 11:59:25 +0100 |
commit | e03f7ccf159e37e61fce037b5c0df59e047fa6b9 (patch) | |
tree | 512339d8d5c47e1ed090cf7aaa7d72d449b57b63 /gcc/ada/exp_util.ads | |
parent | 4877d85f404cfaa4eb33a5efd178d7f6d0e65769 (diff) | |
download | gcc-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.ads | 18 |
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 |