Commit 5e017b1e by Eric Botcazou Committed by Eric Botcazou

trans.c (gnat_to_gnu): Do not set the location on an expression used for a tag.

	* gcc-interface/trans.c (gnat_to_gnu): Do not set the location on an
	expression used for a tag.

From-SVN: r275197
parent 0c2837b5
2019-08-30 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/trans.c (gnat_to_gnu): Do not set the location on an
expression used for a tag.
2019-08-30 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/gigi.h (aggregate_type_contains_array_p): Declare.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: For an
extension, test Has_Record_Rep_Clause instead of Has_Specified_Layout.
......
......@@ -8727,10 +8727,16 @@ gnat_to_gnu (Node_Id gnat_node)
set_gnu_expr_location_from_node (gnu_result, gnat_node);
}
/* Set the location information on the result if it's not a simple name.
/* Set the location information on the result if it's not a simple name
or something that contains a simple name, for example a tag, because
we don"t want all the references to get the location of the first use.
Note that we may have no result if we tried to build a CALL_EXPR node
to a procedure with no side-effects and optimization is enabled. */
else if (kind != N_Identifier && gnu_result && EXPR_P (gnu_result))
else if (kind != N_Identifier
&& !(kind == N_Selected_Component
&& Chars (Selector_Name (gnat_node)) == Name_uTag)
&& gnu_result
&& EXPR_P (gnu_result))
set_gnu_expr_location_from_node (gnu_result, gnat_node);
/* If we're supposed to return something of void_type, it means we have
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment