ada: False alarms from -gnatw.t with generic functions
Disable the warnings generated by -gnatw.t on instances. Otherwise, we get false positives. gcc/ada/ * sem_util.adb (Check_Result_And_Post_State): Disable this when we're in an instance. Misc cleanup.
This commit is contained in:
parent
39cb85867d
commit
ecdcb83025
1 changed files with 23 additions and 15 deletions
|
@ -4370,21 +4370,24 @@ package body Sem_Util is
|
|||
and then Has_No_Output (Subp_Id))
|
||||
and then not Is_Wrapper (Subp_Id)
|
||||
then
|
||||
if Pragma_Name (Prag) = Name_Contract_Cases then
|
||||
Error_Msg_NE (Adjust_Message
|
||||
("contract case does not check the outcome of calling "
|
||||
& "&?.t?"), Expr, Subp_Id);
|
||||
case Pragma_Name (Prag) is
|
||||
when Name_Contract_Cases =>
|
||||
Error_Msg_NE (Adjust_Message
|
||||
("contract case does not check the outcome of calling "
|
||||
& "&?.t?"), Expr, Subp_Id);
|
||||
|
||||
elsif Pragma_Name (Prag) = Name_Refined_Post then
|
||||
Error_Msg_NE (Adjust_Message
|
||||
("refined postcondition does not check the outcome of "
|
||||
& "calling &?.t?"), Err_Node, Subp_Id);
|
||||
when Name_Refined_Post =>
|
||||
Error_Msg_NE (Adjust_Message
|
||||
("refined postcondition does not check the outcome of "
|
||||
& "calling &?.t?"), Err_Node, Subp_Id);
|
||||
|
||||
else
|
||||
Error_Msg_NE (Adjust_Message
|
||||
("postcondition does not check the outcome of calling "
|
||||
& "&?.t?"), Err_Node, Subp_Id);
|
||||
end if;
|
||||
when Name_Postcondition =>
|
||||
Error_Msg_NE (Adjust_Message
|
||||
("postcondition does not check the outcome of calling "
|
||||
& "&?.t?"), Err_Node, Subp_Id);
|
||||
|
||||
when others => pragma Assert (False);
|
||||
end case;
|
||||
end if;
|
||||
end Check_Conjunct;
|
||||
|
||||
|
@ -4555,11 +4558,16 @@ package body Sem_Util is
|
|||
-- Start of processing for Check_Result_And_Post_State
|
||||
|
||||
begin
|
||||
-- Do not check in instances, because we already checked the generic
|
||||
|
||||
if In_Instance then
|
||||
return;
|
||||
|
||||
-- The lack of attribute 'Result or a post-state is classified as a
|
||||
-- suspicious contract. Do not perform the check if the corresponding
|
||||
-- swich is not set.
|
||||
-- switch is not set.
|
||||
|
||||
if not Warn_On_Suspicious_Contract then
|
||||
elsif not Warn_On_Suspicious_Contract then
|
||||
return;
|
||||
|
||||
-- Nothing to do if there is no contract
|
||||
|
|
Loading…
Add table
Reference in a new issue