+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