[multiple changes]
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. From-SVN: r213567
This commit is contained in:
parent
2e1295ade5
commit
536a2daf12
@ -1,3 +1,20 @@
|
||||
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
|
||||
|
@ -3929,6 +3929,18 @@ package body Exp_Ch6 is
|
||||
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).
|
||||
|
@ -12819,6 +12819,14 @@ package body Exp_Ch9 is
|
||||
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;
|
||||
|
||||
-------------------
|
||||
|
@ -113,7 +113,6 @@ package body Sem_Case is
|
||||
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
|
||||
@ -616,6 +615,10 @@ package body Sem_Case is
|
||||
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);
|
||||
|
||||
@ -781,6 +784,7 @@ package body Sem_Case is
|
||||
|
||||
if Error then
|
||||
Predicate_Error := True;
|
||||
|
||||
if not All_Errors_Mode then
|
||||
return;
|
||||
end if;
|
||||
|
@ -73,15 +73,15 @@ package body Sem_Util is
|
||||
-- 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
|
||||
@ -90,10 +90,10 @@ package body Sem_Util is
|
||||
-- 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)
|
||||
|
Loading…
Reference in New Issue
Block a user