diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2010-09-10 17:08:53 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2010-09-10 17:08:53 +0200 |
commit | c768e988ec60315a3239a3681021140a27561f12 (patch) | |
tree | a8556befe412e2568e782369bd08f8a9bb980226 /gcc/ada/scos.ads | |
parent | 9a1bc6d57f1df18a55ada1bd312699396ca8deb4 (diff) | |
download | gcc-c768e988ec60315a3239a3681021140a27561f12.zip gcc-c768e988ec60315a3239a3681021140a27561f12.tar.gz gcc-c768e988ec60315a3239a3681021140a27561f12.tar.bz2 |
[multiple changes]
2010-09-10 Thomas Quinot <quinot@adacore.com>
* scos.ads: Add comments.
2010-09-10 Vincent Celier <celier@adacore.com>
* gnatcmd.adb (Get_Closure): Remove useless invocation of Close.
2010-09-10 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch7.adb, exp_ch6.adb (Expand_Call): Establish a transient scope
for a controlled build-in-place function call which appears in an
anonymous context. The transient scope ensures that the intermediate
function result is cleaned up after the master is left.
(Make_Build_In_Place_Call_In_Anonymous_Context): Remove the creation
of the transient scope. This is now done in Exand_Call which covers
additional cases other than secondary stack release.
2010-09-10 Arnaud Charlet <charlet@adacore.com>
* sem.adb (Do_Unit_And_Dependents): Add guard.
2010-09-10 Robert Dewar <dewar@adacore.com>
* exp_ch5.adb: Update comments.
* exp_dist.adb: Minor reformatting.
From-SVN: r164187
Diffstat (limited to 'gcc/ada/scos.ads')
-rw-r--r-- | gcc/ada/scos.ads | 48 |
1 files changed, 41 insertions, 7 deletions
diff --git a/gcc/ada/scos.ads b/gcc/ada/scos.ads index 7111287..8163e62 100644 --- a/gcc/ada/scos.ads +++ b/gcc/ada/scos.ads @@ -159,7 +159,7 @@ package SCOs is -- Note: for I and W, condition above is in the RM syntax sense (this -- condition is a decision in SCO terminology). - -- and is omitted for all other cases. + -- and is omitted for all other cases -- 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 @@ -216,7 +216,7 @@ package SCOs is -- For each decision, a decision line is generated with the form: - -- C* sloc expression + -- C* sloc expression [chaining] -- Here * is one of the following characters: @@ -229,7 +229,7 @@ package SCOs is -- For I, E, P, W, sloc is the source location of the IF, EXIT, PRAGMA or -- WHILE token. - -- For X, sloc is omitted. + -- For X, sloc is omitted -- The expression is a prefix polish form indicating the structure of -- the decision, including logical operators and short-circuit forms. @@ -257,11 +257,11 @@ package SCOs is -- where t/f are used to mark a condition that has been recognized by -- the compiler as always being true or false. - -- & indicates AND THEN connecting two conditions. + -- & indicates AND THEN connecting two conditions - -- | indicates OR ELSE connecting two conditions. + -- | indicates OR ELSE connecting two conditions - -- ! indicates NOT applied to the expression. + -- ! indicates NOT applied to the expression -- Note that complex decisions do NOT include non-short-circuited logical -- operators (AND/XOR/OR). In the context of existing coverage tools the @@ -276,6 +276,34 @@ 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. + + -- 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 + -- Case Expressions -- For case statements, we rely on statement coverage to make sure that @@ -287,7 +315,7 @@ package SCOs is -- CC sloc-range sloc-range ... - -- where sloc-range covers the range of the case expression. + -- where sloc-range covers the range of the case expression -- Note: up to 6 entries can appear on a single CC line. If more than 6 -- entries appear in one logical statement sequence, continuation lines @@ -382,6 +410,12 @@ 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. |