@@ -11145,43 +11145,10 @@ package body Sem_Attr is
=>
-- Note possible modification if we have a variable
- if Is_Variable (P) then
- declare
- PN : constant Node_Id := Parent (N);
- Nm : Node_Id;
-
- Note : Boolean := True;
- -- Skip this for the case of Unrestricted_Access occurring
- -- in the context of a Valid check, since this otherwise
- -- leads to a missed warning (the Valid check does not
- -- really modify!) If this case, Note will be reset to
- -- False.
-
- -- Skip it as well if the type is an Access_To_Constant,
- -- given that no use of the value can modify the prefix.
-
- begin
- if Attr_Id = Attribute_Unrestricted_Access
- and then Nkind (PN) = N_Function_Call
- then
- Nm := Name (PN);
-
- if Nkind (Nm) = N_Expanded_Name
- and then Chars (Nm) = Name_Valid
- and then Nkind (Prefix (Nm)) = N_Identifier
- and then Chars (Prefix (Nm)) = Name_Attr_Long_Float
- then
- Note := False;
- end if;
-
- elsif Is_Access_Constant (Typ) then
- Note := False;
- end if;
-
- if Note then
- Note_Possible_Modification (P, Sure => False);
- end if;
- end;
+ if Is_Variable (P)
+ and then not Is_Access_Constant (Typ)
+ then
+ Note_Possible_Modification (P, Sure => False);
end if;
-- Case where prefix is an entity name
@@ -776,7 +776,6 @@ package Snames is
Name_Allow : constant Name_Id := N + $;
Name_Amount : constant Name_Id := N + $;
Name_As_Is : constant Name_Id := N + $;
- Name_Attr_Long_Float : constant Name_Id := N + $;
Name_Assertion : constant Name_Id := N + $;
Name_Assertions : constant Name_Id := N + $;
Name_Attribute_Name : constant Name_Id := N + $;