diff options
author | Yannick Moy <moy@adacore.com> | 2011-08-02 15:15:07 +0000 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-08-02 17:15:07 +0200 |
commit | 975c689678295f3c614f55a84a62c49bdd866a6a (patch) | |
tree | 101c010bb1f1495a3e5010af30b9b9a86d819f3f /gcc/ada/einfo.adb | |
parent | afc8324d660d789fa34a14817e52d8c432a1e7c8 (diff) | |
download | gcc-975c689678295f3c614f55a84a62c49bdd866a6a.zip gcc-975c689678295f3c614f55a84a62c49bdd866a6a.tar.gz gcc-975c689678295f3c614f55a84a62c49bdd866a6a.tar.bz2 |
einfo.adb, einfo.ads (Body_Is_In_ALFA, [...]): get/set for new flag denoting which subprogram bodies are in ALFA
2011-08-02 Yannick Moy <moy@adacore.com>
* einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
for new flag denoting which subprogram bodies are in ALFA
* restrict.adb, sem_ch7.adb: Update comment
* sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
sem_ch9.adb, sem_res.adb: Add calls to
Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
* sem_ch6.adb (Analyze_Function_Return): add calls to
Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
middle of the body, and extended return.
(Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
False when missing return.
(Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
to True for subprograms whose spec is in ALFA. Remove later on the flag
on the entity used for a subprogram body when there exists a separate
declaration.
* sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
False, otherwise do nothing.
From-SVN: r177177
Diffstat (limited to 'gcc/ada/einfo.adb')
-rw-r--r-- | gcc/ada/einfo.adb | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/gcc/ada/einfo.adb b/gcc/ada/einfo.adb index 062e1fd4..ff07cfc 100644 --- a/gcc/ada/einfo.adb +++ b/gcc/ada/einfo.adb @@ -518,7 +518,7 @@ package body Einfo is -- Is_Safe_To_Reevaluate Flag249 -- Has_Predicates Flag250 - -- (unused) Flag251 + -- Body_Is_In_ALFA Flag251 -- (unused) Flag252 -- (unused) Flag253 -- (unused) Flag254 @@ -651,6 +651,12 @@ package body Einfo is return Node19 (Id); end Body_Entity; + function Body_Is_In_ALFA (Id : E) return B is + begin + pragma Assert (Is_Subprogram (Id) or else Is_Generic_Subprogram (Id)); + return Flag251 (Id); + end Body_Is_In_ALFA; + function Body_Needed_For_SAL (Id : E) return B is begin pragma Assert @@ -3098,6 +3104,12 @@ package body Einfo is Set_Node19 (Id, V); end Set_Body_Entity; + procedure Set_Body_Is_In_ALFA (Id : E; V : B := True) is + begin + pragma Assert (Is_Subprogram (Id) or else Is_Generic_Subprogram (Id)); + Set_Flag251 (Id, V); + end Set_Body_Is_In_ALFA; + procedure Set_Body_Needed_For_SAL (Id : E; V : B := True) is begin pragma Assert @@ -7349,6 +7361,7 @@ package body Einfo is end if; W ("Address_Taken", Flag104 (Id)); + W ("Body_Is_In_ALFA", Flag251 (Id)); W ("Body_Needed_For_SAL", Flag40 (Id)); W ("C_Pass_By_Copy", Flag125 (Id)); W ("Can_Never_Be_Null", Flag38 (Id)); |