trans.c (call_to_gnu): Return an expression with a COMPOUND_EXPR including the call...
authorOlivier Hainque <hainque@adacore.com>
Fri, 6 Apr 2007 09:40:22 +0000 (11:40 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 6 Apr 2007 09:40:22 +0000 (11:40 +0200)
commit3ce5f966ad256483220ae2d3ecbe9b0e1383fabd
tree9a7593fad819d9c81019f18c3864f35ac37f0c64
parent4b437c6bb91baf785bd3f2c9db288eeb4aa38a49
trans.c (call_to_gnu): Return an expression with a COMPOUND_EXPR including the call instead of...

2007-04-06  Olivier Hainque  <hainque@adacore.com>
    Eric Botcazou <botcazou@adacore.com>

* trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
expression with a COMPOUND_EXPR including the call instead of emitting
the call directly here.
(gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
high bound is constant and the slice is empty.  Tidy.
(tree_transform, case N_Op_Not): Handle properly the case where the
operation applies to a private type whose full view is a modular type.
(Case_Statement_To_gnu): If an alternative is an E_Constant with an
Address_Clause, use the associated Expression as the GNAT tree
representing the choice value to ensure the corresponding GCC tree is
of the proper kind.
(maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
instead of just the operands, as the base GCC stabilize_reference does.
<CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
requested; otherwise fail.
(addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.

From-SVN: r123608
gcc/ada/trans.c