2014-02-18 Vincent Celier <celier@adacore.com>
* sem_aux.adb (Is_By_Reference_Type): For each components of
a record type, check also if the component is volatile as it
may have an aspect that makes it volatile. If it is, then the
record type is a by reference type.
From-SVN: r207842
+2014-02-18 Vincent Celier <celier@adacore.com>
+
+ * sem_aux.adb (Is_By_Reference_Type): For each components of
+ a record type, check also if the component is volatile as it
+ may have an aspect that makes it volatile. If it is, then the
+ record type is a by reference type.
+
2014-02-18 Robert Dewar <dewar@adacore.com>
* exp_attr.adb: Minor reformatting.
begin
C := First_Component (Btype);
while Present (C) loop
+
+ -- For each component, test if its type is a by reference
+ -- type and if its type is volatile. Also test the component
+ -- itself for being volatile. This happens for example when
+ -- a Volatile aspect is added to a component.
+
if Is_By_Reference_Type (Etype (C))
or else Is_Volatile (Etype (C))
+ or else Is_Volatile (C)
then
return True;
end if;