decl.c (gnat_to_gnu_entity): Move down code applying atomic checks to the object.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Move down code applying atomic checks to the object. From-SVN: r223767
This commit is contained in:
parent
b6840fb7da
commit
e590690ef2
|
@ -1,3 +1,8 @@
|
|||
2015-05-27 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Move down
|
||||
code applying atomic checks to the object.
|
||||
|
||||
2015-05-27 Robert Dewar <dewar@adacore.com>
|
||||
|
||||
* sem_aux.adb: Minor rewording.
|
||||
|
|
|
@ -881,15 +881,6 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
|
|||
check_ok_for_atomic_type (gnu_inner, gnat_entity, true);
|
||||
}
|
||||
|
||||
/* Now check if the type of the object allows atomic access. Note
|
||||
that we must test the type, even if this object has size and
|
||||
alignment to allow such access, because we will be going inside
|
||||
the padded record to assign to the object. We could fix this by
|
||||
always copying via an intermediate value, but it's not clear it's
|
||||
worth the effort. */
|
||||
if (Is_Atomic_Or_VFA (gnat_entity))
|
||||
check_ok_for_atomic_type (gnu_type, gnat_entity, false);
|
||||
|
||||
/* If this is an aliased object with an unconstrained nominal subtype,
|
||||
make a type that includes the template. */
|
||||
if (Is_Constr_Subt_For_UN_Aliased (Etype (gnat_entity))
|
||||
|
@ -955,6 +946,10 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
|
|||
debug_info_p, gnat_entity);
|
||||
}
|
||||
|
||||
/* Now check if the type of the object allows atomic access. */
|
||||
if (Is_Atomic_Or_VFA (gnat_entity))
|
||||
check_ok_for_atomic_type (gnu_type, gnat_entity, false);
|
||||
|
||||
/* If this is a renaming, avoid as much as possible to create a new
|
||||
object. However, in some cases, creating it is required because
|
||||
renaming can be applied to objects that are not names in Ada.
|
||||
|
|
Loading…
Reference in New Issue