Skip to content
Snippets Groups Projects
Commit a0b8b1b7 authored by Eric Botcazou's avatar Eric Botcazou Committed by Eric Botcazou
Browse files

ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Add checking.

	* gcc-interface/ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Add checking.
	(TYPE_BY_REFERENCE_P): New flag.
	(TYPE_IS_BY_REFERENCE_P): New macro.
	(TYPE_DUMMY_P): Add checking and remove VOID_TYPE.
	(TYPE_IS_DUMMY_P): Adjust for above change.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Use TYPE_BY_REFERENCE_P
	and TYPE_IS_BY_REFERENCE_P instead of TREE_ADDRESSABLE.
	(gnat_to_gnu_param): Likewise.
	(maybe_pad_type): Likewise.
	(make_type_from_size): Use TYPE_IS_PACKED_ARRAY_TYPE_P.
	* gcc-interface/misc.c (must_pass_by_ref): Use TYPE_IS_BY_REFERENCE_P
	instead of TREE_ADDRESSABLE.
	* gcc-interface/trans.c (finalize_nrv): Likewise.
	(call_to_gnu): Likewise.  Do not create a temporary for return values
	with by-reference type here.
	(gnat_to_gnu): Test TYPE_IS_DUMMY_P instead of TYPE_DUMMY_P.
	(gnat_gimplify_expr) <ADDR_EXPR>: Don't do anything for non-constant
	CONSTRUCTORs and calls.
	* gcc-interface/utils.c (make_dummy_type): Get the equivalent type of
	the underlying type and use it throughout.  Use TYPE_IS_BY_REFERENCE_P
	instead of TREE_ADDRESSABLE.
	* gcc-interface/utils2.c (build_cond_expr): Deal with by-reference
	types explicitly.

From-SVN: r184594
parent 184d436a
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment