* gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 23 Apr 2009 16:40:55 +0000 (16:40 +0000)
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 23 Apr 2009 16:40:55 +0000 (16:40 +0000)
commit7fd3f504416286edc2584ec8099490432443ceb6
treec50f816477650b4e3cbb25b84c72aae959f07b1b
parent99151707982f2e28ea809036b7ee310c42c861ba
* gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
assignment from the constructor either if the target is volatile.
ada/
* einfo.ads (Is_True_Constant): Lift restriction on atomic objects.
* sinfo.ads (Object Declaration): Likewise.
(Assignment Statement): Likewise.
* freeze.adb (Expand_Atomic_Aggregate): Remove useless test.
Do not force Is_True_Constant to false on the temporary.
(Freeze_Entity): Do not force Is_True_Constant to false on names on
the RHS of object declarations.
* gcc-interface/trans.c (lvalue_required_p) <N_Object_Declaration>:
New case.  Return 1 if the object is atomic.
<N_Assignment_Statement>: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146652 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/ada/ChangeLog
gcc/ada/einfo.ads
gcc/ada/freeze.adb
gcc/ada/gcc-interface/trans.c
gcc/ada/sinfo.ads
gcc/gimplify.c
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/atomic1.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/atomic1_pkg.ads [new file with mode: 0644]