+2012-08-06 Robert Dewar <dewar@adacore.com>
+
+ * sem_ch6.adb: Remove useless flag Body_Deleted.
+
+2012-08-06 Thomas Quinot <quinot@adacore.com>
+
+ * sinfo.ads (End_Span): Change default from No_Uint to Uint_0,
+ as this is what all usage occurrences of this attribute are
+ expecting.
+ * uintp.adb (UI_To_Int): Add assertion to guard against calling
+ with No_Uint.
+
+2012-08-06 Vincent Pucci <pucci@adacore.com>
+
+PR ada/54125
+ * exp_attr.adb (Expand_N_Attribute_Reference): Expand new
+ Atomic_Always_Lock_Free attribute.
+ * sem_attr.adb (Analyze_Attribute): Analyze new
+ Atomic_Always_Lock_Free attribute.
+ (Eval_Attribute): Nothing to do with new Atomic_Always_Lock_Free
+ attribute.
+ * sem_ch9.adb (Allows_Lock_Free_Implementation):
+ Support_Atomic_Primitives check replaces previous erroneous
+ size check.
+ * sem_util.adb, sem_util.ads (Support_Atomic_Primitives):
+ New routine.
+ * snames.ads-tmpl: New name Name_Atomic_Always_Lock_Free and
+ new attribute Attribute_Atomic_Always_Lock_Free defined.
+ * s-atopri.adb: Support_Atomic_Primitives checks replaced by
+ Atomic_Always_Lock_Free queries.
+ * system-aix64.ads, system-aix.ads, system-darwin-ppc.ads,
+ system-hpux.ads, system-linux-alpha.ads, system-linux-hppa.ads,
+ system-linux-ppc.ads, system-linux-s390.ads,
+ system-linux-s390x.ads, system-linux-sh4.ads,
+ system-linux-sparc.ads, system-lynxos178-ppc.ads,
+ system-lynxos-ppc.ads, system-mingw.ads,
+ system-vxworks-arm.ads, system-solaris-sparc.ads,
+ system-solaris-sparcv9.ads, system-vms_64.ads,
+ system-vxworks-m68k.ads, system-vxworks-mips.ads,
+ system-vxworks-ppc.ads, system-vxworks-sparcv9.ads: Flag
+ Support_Atomic_Primitives removed.
+
2012-08-06 Hristian Kirtchev <kirtchev@adacore.com>
* sem_mech.adb (Set_Mechanisms): OUT and IN OUT parameters are
procedure Analyze_Subprogram_Body_Helper (N : Node_Id) is
Loc : constant Source_Ptr := Sloc (N);
- Body_Deleted : constant Boolean := False;
Body_Spec : constant Node_Id := Specification (N);
Body_Id : Entity_Id := Defining_Entity (Body_Spec);
Prev_Id : constant Entity_Id := Current_Entity_In_Scope (Body_Id);
Set_Has_Missing_Return (Id);
end if;
- elsif (Is_Generic_Subprogram (Id)
- or else not Is_Machine_Code_Subprogram (Id))
- and then not Body_Deleted
+ elsif Is_Generic_Subprogram (Id)
+ or else not Is_Machine_Code_Subprogram (Id)
then
Error_Msg_N ("missing RETURN statement in function body", N);
end if;
end loop;
end if;
- -- Check references in body unless it was deleted. Note that the
- -- check of Body_Deleted here is not just for efficiency, it is
- -- necessary to avoid junk warnings on formal parameters.
+ -- Check references in body
- if not Body_Deleted then
- Check_References (Body_Id);
- end if;
+ Check_References (Body_Id);
end;
end Analyze_Subprogram_Body_Helper;
-- Then_Statements (List2)
-- Elsif_Parts (List3) (set to No_List if none present)
-- Else_Statements (List4) (set to No_List if no else part present)
- -- End_Span (Uint5) (set to No_Uint if expander generated)
+ -- End_Span (Uint5) (set to Uint_0 if expander generated)
-- N_Elsif_Part
-- Sloc points to ELSIF
-- Sloc points to CASE
-- Expression (Node3)
-- Alternatives (List4)
- -- End_Span (Uint5) (set to No_Uint if expander generated)
+ -- End_Span (Uint5) (set to Uint_0 if expander generated)
-- Note: Before Ada 2012, a pragma in a statement sequence is always
-- followed by a statement, and this is true in the tree even in Ada