diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-10-01 09:21:46 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-10-01 09:21:46 +0000 |
commit | 91e470101637ae5d6a13d3d900f442676496cc88 (patch) | |
tree | 6b99a1a18cf0a2a891e7b4e27a89c683d64aab0d /gcc/ada/scos.ads | |
parent | 1bd93de56e55543018d4e7c83789e031f47a3055 (diff) | |
download | gcc-91e470101637ae5d6a13d3d900f442676496cc88.tar.gz |
2012-10-01 Vincent Pucci <pucci@adacore.com>
* s-gearop.adb (Vector_Matrix_Product): Dimensions check fixed. Index
of Left in S evaluation fixed.
2012-10-01 Javier Miranda <miranda@adacore.com>
* sem_ch3.adb (Analyze_Declarations): Avoid
premature freezing caused by the internally generated subprogram
_postconditions.
* checks.adb (Expr_Known_Valid): Float literals are assumed to be valid
in VM targets.
2012-10-01 Thomas Quinot <quinot@adacore.com>
* sinput.ads, sinput.adb, sinput-l.adb sinput-c.adb (Sinput): New
Instances table, tracking all generic instantiations. Source file
attribute Instance replaces previous Instantiation attribute with an
index into the Instances table.
(Iterate_On_Instances): New generic procedure.
(Create_Instantiation_Source): Record instantiations in Instances.
(Tree_Read, Tree_Write): Read/write the instance table.
* scils.ads, scos.adb (SCO_Instance_Table): New table, contains
information copied from Sinput.Instance_Table, but self-contained
within the SCO data structures.
* par_sco.ads, par_sco.adb (To_Source_Location): Move to library level.
(Record_Instance): New subprogram, used by...
(Populate_SCO_Instance_Table): New subprogram to fill
the SCO instance table from the Sinput one (called by SCO_Output).
* opt.ads (Generate_SCO_Instance_Table): New option.
* put_scos.adb (Write_Instance_Table): New subprogram, used by...
(Put_SCOs): Dump the instance table at the end of SCO information
if requested.
* get_scos.adb (Get_SCOs): Read SCO_Instance_Table.
* types.h: Add declaration for Instance_Id.
* back_end.adb (Call_Back_End): Pass instance ids in source file
information table.
(Scan_Back_End_Switches): -fdebug-instances sets
Opt.Generate_SCO_Instance_Table.
* gcc-interface/gigi.h: File_Info_Type includes instance id.
* gcc-interface/trans.c: Under -fdebug-instances, set instance
id in line map from same in file info.
2012-10-01 Thomas Quinot <quinot@adacore.com>
* sem_elab.adb: Minor reformatting
(Check_Elab_Call): Minor fix to debugging code
(add special circuit for the valid case where a 'Access attribute
reference is passed to Check_Elab_Call).
2012-10-01 Thomas Quinot <quinot@adacore.com>
* exp_ch3.adb: Minor reformatting.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191904 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/scos.ads')
-rw-r--r-- | gcc/ada/scos.ads | 71 |
1 files changed, 35 insertions, 36 deletions
diff --git a/gcc/ada/scos.ads b/gcc/ada/scos.ads index 9f478985284..d2d2c54982c 100644 --- a/gcc/ada/scos.ads +++ b/gcc/ada/scos.ads @@ -246,7 +246,7 @@ package SCOs is -- For each decision, a decision line is generated with the form: - -- C* sloc expression [chaining] + -- C* sloc expression -- Here * is one of the following characters: @@ -308,35 +308,6 @@ package SCOs is -- condition, and that is true even if the Ada 2005 set membership -- form is used, e.g. A in (2,7,11.15). - -- The expression can be followed by chaining indicators of the form - -- Tsloc-range or Fsloc-range, where the sloc-range is that of some - -- entry on a CS line. - - -- T* is present when the statement with the given sloc range is executed - -- if, and only if, the decision evaluates to TRUE. - - -- F* is present when the statement with the given sloc range is executed - -- if, and only if, the decision evaluates to FALSE. - - -- For an IF statement or ELSIF part, a T chaining indicator is always - -- present, with the sloc range of the first statement in the - -- corresponding sequence. - - -- For an ELSE part, the last decision in the IF statement (that of the - -- last ELSIF part, if any, or that of the IF statement if there is no - -- ELSIF part) has an F chaining indicator with the sloc range of the - -- first statement in the sequence of the ELSE part. - - -- For a WHILE loop, a T chaining indicator is always present, with the - -- sloc range of the first statement in the loop, but no F chaining - -- indicator is ever present. - - -- For an EXIT WHEN statement, an F chaining indicator is present if - -- there is an immediately following sequence in the same sequence of - -- statements. - - -- In all other cases, chaining indicators are omitted - -- Implementation permission: a SCO generator is permitted to emit a -- narrower SLOC range for a condition if the corresponding code -- generation circuitry ensures that all debug information for the code @@ -360,6 +331,19 @@ package SCOs is -- entries appear in one logical statement sequence, continuation lines -- are marked by Cc and appear immediately after the CC line. + -- Generic instances + + -- A table of all generic instantiations in the compilation is generated + -- whose entries have the form: + + -- C i index dependency-number|sloc [enclosing] + + -- Where index is the 1-based index of the entry in the table, + -- dependency-number and sloc indicate the source location of the + -- instantiation, and enclosing is the index of the enclosing + -- instantiation in the table (for a nested instantiation), or is + -- omitted for an outer instantiation. + -- Disabled pragmas -- No SCO is generated for disabled pragmas @@ -471,12 +455,6 @@ package SCOs is -- To = ending source location -- Last = False for all but the last entry, True for last entry - -- Element (chaining indicator) - -- C1 = 'H' (cHain) - -- C2 = 'T' or 'F' (chaining on decision true/false) - -- From = starting source location of chained statement - -- To = ending source location of chained statement - -- Note: the sequence starting with a decision, and continuing with -- operators and elements up to and including the first one labeled with -- Last = True, indicate the sequence to be output on one decision line. @@ -515,6 +493,27 @@ package SCOs is Table_Initial => 20, Table_Increment => 200); + ----------------------- + -- Generic instances -- + ----------------------- + + type SCO_Instance_Index is new Nat; + + type SCO_Instance_Table_Entry is record + Inst_Dep_Num : Nat; + Inst_Loc : Source_Location; + -- File and source location of instantiation + + Enclosing_Instance : SCO_Instance_Index; + end record; + + package SCO_Instance_Table is new GNAT.Table ( + Table_Component_Type => SCO_Instance_Table_Entry, + Table_Index_Type => SCO_Instance_Index, + Table_Low_Bound => 1, + Table_Initial => 20, + Table_Increment => 200); + ----------------- -- Subprograms -- ----------------- |