aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/lib-xref-alfa.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2011-09-05 15:01:17 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2011-09-05 15:01:17 +0200
commitec09f2616d9ef9cc0f30adb43c00fa02e928a51d (patch)
tree722b72d2c0b3b7a1539911871f9c6d663acb878b /gcc/ada/lib-xref-alfa.adb
parent7109f4f52da4ea189b04aeb29a077d140855cb52 (diff)
downloadgcc-ec09f2616d9ef9cc0f30adb43c00fa02e928a51d.zip
gcc-ec09f2616d9ef9cc0f30adb43c00fa02e928a51d.tar.gz
gcc-ec09f2616d9ef9cc0f30adb43c00fa02e928a51d.tar.bz2
[multiple changes]
2011-09-05 Johannes Kanig <kanig@adacore.com> * lib-xref-alfa.adb (Is_Alfa_Reference): Filter constants from effect information. 2011-09-05 Ed Schonberg <schonberg@adacore.com> * par-ch6.adb (P_Subprogram): In Ada2012 mode, if the subprogram appears within a package specification and the token after "IS" is not a parenthesis, assume that this is an unparenthesized expression function, even if the token appears in a line by itself. * par.adb: Clarify use of Labl field of scope stack in error recovery. From-SVN: r178532
Diffstat (limited to 'gcc/ada/lib-xref-alfa.adb')
-rw-r--r--gcc/ada/lib-xref-alfa.adb17
1 files changed, 7 insertions, 10 deletions
diff --git a/gcc/ada/lib-xref-alfa.adb b/gcc/ada/lib-xref-alfa.adb
index a2ea0e6..c58f600 100644
--- a/gcc/ada/lib-xref-alfa.adb
+++ b/gcc/ada/lib-xref-alfa.adb
@@ -616,7 +616,9 @@ package body Alfa is
-- section, as these will be translated as constants in the
-- intermediate language for formal verification.
- when E_In_Parameter =>
+ -- Above comment is incomplete??? what about E_Constant case
+
+ when E_In_Parameter | E_Constant =>
return False;
when others =>
@@ -624,18 +626,13 @@ package body Alfa is
-- Objects of Task type or protected type are not Alfa
-- references.
- if Present (Etype (E)) then
- case Ekind (Etype (E)) is
- when E_Task_Type | E_Protected_Type =>
- return False;
-
- when others =>
- null;
- end case;
+ if Present (Etype (E))
+ and then Ekind (Etype (E)) in E_Concurrent_Kind
+ then
+ return False;
end if;
return Typ = 'r' or else Typ = 'm';
-
end case;
end Is_Alfa_Reference;