2014-08-04 Robert Dewar <dewar@adacore.com>
+ * sem_util.adb, sem_case.adb: Minor reformatting.
+
+2014-08-04 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_ch9.adb (Extract_Entry): If the synchronized object is a
+ limited view, replace with non-limited view, which is available
+ at the point of an entry call.
+
+2014-08-04 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_ch6.adb (Expand_Call): If the call is to a function in
+ a run-time unit that is marked Inline_Always, we must suppress
+ debugging information on it, so that the code that is eventually
+ inlined will not affect debugging of the user program.
+
+2014-08-04 Robert Dewar <dewar@adacore.com>
+
* inline.adb, einfo.ads, s-tassta.adb, s-tarest.adb: Minor comment
fixes.
Add_Inlined_Body (Subp);
Register_Backend_Call (Call_Node);
+ -- If the call is to a function in a run-time unit that is marked
+ -- Inline_Always, we must suppress debugging information on it,
+ -- so that the code that is eventually inlined will not affect
+ -- debugging of the user program.
+
+ if Is_Predefined_File_Name
+ (Unit_File_Name (Get_Source_Unit (Sloc (Subp))))
+ and then In_Extended_Main_Source_Unit (N)
+ then
+ Set_Needs_Debug_Info (Subp, False);
+ end if;
+
-- Frontend expansion of supported functions returning unconstrained
-- types and simple renamings inlined by the frontend (see Freeze.
-- Build_Renamed_Entity).
Ename := Selector_Name (Prefix (Nam));
Index := First (Expressions (Nam));
end if;
+
+ -- Through indirection, the type may actually be a limited view of a
+ -- concurrent type. When compiling a call, the non-limited view of the
+ -- type is visible.
+
+ if From_Limited_With (Etype (Concval)) then
+ Set_Etype (Concval, Non_Limited_View (Etype (Concval)));
+ end if;
end Extract_Entry;
-------------------
Subtyp : Entity_Id;
Others_Present : Boolean;
Case_Node : Node_Id)
-
is
Predicate_Error : Boolean;
-- Flag to prevent cascaded errors when a static predicate is known to
Missing_Choice (Value1, Expr_Value (Value2));
end Missing_Choice;
+ --------------------
+ -- Missing_Choice --
+ --------------------
+
procedure Missing_Choice (Value1 : Uint; Value2 : Uint) is
Msg_Sloc : constant Source_Ptr := Sloc (Case_Node);
if Error then
Predicate_Error := True;
+
if not All_Errors_Mode then
return;
end if;
-- Global_Variables for New_Copy_Tree --
----------------------------------------
- -- These global variables are used by New_Copy_Tree. See description
- -- of the body of this subprogram for details. Global variables can be
- -- safely used by New_Copy_Tree, since there is no case of a recursive
- -- call from the processing inside New_Copy_Tree.
+ -- These global variables are used by New_Copy_Tree. See description of the
+ -- body of this subprogram for details. Global variables can be safely used
+ -- by New_Copy_Tree, since there is no case of a recursive call from the
+ -- processing inside New_Copy_Tree.
NCT_Hash_Threshold : constant := 20;
- -- If there are more than this number of pairs of entries in the
- -- map, then Hash_Tables_Used will be set, and the hash tables will
- -- be initialized and used for the searches.
+ -- If there are more than this number of pairs of entries in the map, then
+ -- Hash_Tables_Used will be set, and the hash tables will be initialized
+ -- and used for the searches.
NCT_Hash_Tables_Used : Boolean := False;
-- Set to True if hash tables are in use
-- Count entries in table to see if threshold is reached
NCT_Hash_Table_Setup : Boolean := False;
- -- Set to True if hash table contains data. We set this True if we
- -- setup the hash table with data, and leave it set permanently
- -- from then on, this is a signal that second and subsequent users
- -- of the hash table must clear the old entries before reuse.
+ -- Set to True if hash table contains data. We set this True if we setup
+ -- the hash table with data, and leave it set permanently from then on,
+ -- this is a signal that second and subsequent users of the hash table
+ -- must clear the old entries before reuse.
subtype NCT_Header_Num is Int range 0 .. 511;
-- Defines range of headers in hash tables (512 headers)