diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-12-05 11:31:58 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-12-05 11:31:58 +0100 |
commit | 3128f9557f09ae599cc07f5e5bbcd96a8c4ec957 (patch) | |
tree | c5762214db801c9b166c1ce7591579e4351a1260 /gcc/ada/scos.ads | |
parent | 9b554be990bcff9fa165ce0c908bff280f2c5d97 (diff) | |
download | gcc-3128f9557f09ae599cc07f5e5bbcd96a8c4ec957.zip gcc-3128f9557f09ae599cc07f5e5bbcd96a8c4ec957.tar.gz gcc-3128f9557f09ae599cc07f5e5bbcd96a8c4ec957.tar.bz2 |
[multiple changes]
2011-12-05 Bob Duff <duff@adacore.com>
* sem_ch3.adb (Derive_Progenitor_Subprograms): Add Ultimate_Alias
to the Comes_From_Source check, to deal properly with the case
of indirect inheritance of "=".
2011-12-05 Thomas Quinot <quinot@adacore.com>
PR ada/51307
* s-oscons-tmplt.c: On HP-UX, CLOCK_REALTIME is an enum literal,
not a macro.
2011-12-05 Thomas Quinot <quinot@adacore.com>
* par_sco.adb, scos.ads, put_scos.adb, get_scos.adb: Generate dominance
information in SCOs.
From-SVN: r182004
Diffstat (limited to 'gcc/ada/scos.ads')
-rw-r--r-- | gcc/ada/scos.ads | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/gcc/ada/scos.ads b/gcc/ada/scos.ads index 904c6bf..1f13e62 100644 --- a/gcc/ada/scos.ads +++ b/gcc/ada/scos.ads @@ -135,14 +135,14 @@ package SCOs is -- any statement with a label (the label itself is not part of the -- entry point that is recorded). - -- Each entry point must appear as the first entry on a CS line. - -- The idea is that if any simple statement on a CS line is known to have + -- Each entry point must appear as the first statement entry on a CS + -- line. Thus, if any simple statement on a CS line is known to have -- been executed, then all statements that appear before it on the same -- CS line are certain to also have been executed. -- The form of a statement line in the ALI file is: - -- CS *sloc-range [*sloc-range...] + -- CS [dominance] *sloc-range [*sloc-range...] -- where each sloc-range corresponds to a single statement, and * is -- one of: @@ -165,6 +165,23 @@ package SCOs is -- and is omitted for all other cases + -- The optional dominance marker is of the form gives additional + -- information as to how the sequence of statements denoted by the CS + -- line can be entered: + + -- >F<sloc> + -- sequence is entered only if the decision at <sloc> is False + -- >T<sloc> + -- sequence is entered only if the decision at <sloc> is True + + -- >S<sloc> + -- sequence is entered only if the statement at <sloc> has been + -- executed + + -- >E<sloc-range> + -- sequence is the sequence of statements for a exception_handler + -- with the given sloc range + -- Note: up to 6 entries can appear on a single CS line. If more than 6 -- entries appear in one logical statement sequence, continuation lines -- are marked by Cs and appear immediately after the CS line. @@ -381,7 +398,7 @@ package SCOs is -- The SCO_Table_Entry values appear as follows: -- Statements - -- C1 = 'S' for entry point, 's' otherwise + -- C1 = 'S' -- C2 = statement type code to appear on CS line (or ' ' if none) -- From = starting source location -- To = ending source location @@ -400,6 +417,15 @@ package SCOs is -- Set_SCO_Pragma_Enabled changes C2 to 'P' to cause the entry to be -- emitted in Put_SCOs. + -- Dominance marker + -- C1 = '>' + -- C2 = 'F'/'T'/'S'/'E' + -- From = Decision/statement sloc ('F'/'T'/'S'), + -- handler first sloc ('E') + -- To = No_Source_Location ('F'/'T'/'S'), handler last sloc ('E') + + -- Note: A dominance marker is always followed by a statement entry. + -- Decision (EXIT/entry guard/IF/WHILE) -- C1 = 'E'/'G'/'I'/'W' (for EXIT/entry Guard/IF/WHILE) -- C2 = ' ' |