summaryrefslogtreecommitdiff
path: root/gcc/ada/scos.ads
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2011-12-05 10:31:58 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2011-12-05 10:31:58 +0000
commite802f51577d58622ca7f2e42234f3a11362730d9 (patch)
treec5762214db801c9b166c1ce7591579e4351a1260 /gcc/ada/scos.ads
parent80e34234dd0687c8d3acaf206569822189769ca6 (diff)
downloadgcc-e802f51577d58622ca7f2e42234f3a11362730d9.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182004 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/scos.ads')
-rw-r--r--gcc/ada/scos.ads34
1 files changed, 30 insertions, 4 deletions
diff --git a/gcc/ada/scos.ads b/gcc/ada/scos.ads
index 904c6bfe9b8..1f13e62b901 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 = ' '