* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Always build the
	UNC variable for aliased objects with unconstrained nominal subtype.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199335 138bc75d-0d04-0410-961f-82ee72b054a4
	* gcc-interface/decl.c (gnat_to_gnu_entity): Do not prematurely
	elaborate the full view of a type with a freeze node.
	* gcc-interface/trans.c (process_type): Add explicit predicate.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199336 138bc75d-0d04-0410-961f-82ee72b054a4
	* gcc-interface/gigi.h (make_aligning_type): Adjust prototype.
	* gcc-interface/utils.c (make_aligning_type): Take GNAT_NODE parameter
	for the position of the associated TYPE_DECL.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Adjust call to above.
	* gcc-interface/utils2.c (maybe_wrap_malloc): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199337 138bc75d-0d04-0410-961f-82ee72b054a4
	* gcc-interface/gigi.h (create_type_decl): Adjust prototype.
	(create_label_decl): Complete prototype.
	(process_attributes): Declare.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Adjust multiple calls to
	create_type_decl throughout.
	<E_Enumeration_Type>: Do the layout of the type manually and call
	process_attributes on it.  Reindent.
	<E_Enumeration_Subtype>: Minor tweak.
	<E_Floating_Point_Subtype>: Reindent.
	<E_Array_Subtype>: Call process_attributes on the array type built
	for a packed array type.
	<E_Record_Type>: Call process_attributes on the type.
	<E_Record_Subtype>: Likewise.
	<E_Access_Type>: Likewise.
	<E_Subprogram_Type>: Likewise.
	Likewise for all types at the end of the processing.
	* gcc-interface/utils.c (make_aligning_type): Adjust call to
	create_type_decl.
	(maybe_pad_type): Likewise.
	(create_index_type): Likewise.
	(create_type_decl): Remove attr_list parameter and associated code.
	(create_var_decl_1): Call process_attributes on the variable.
	(process_attributes): Take a pointer to the object and add in_place
	and gnat_node parameters and adjust throughout.
	<ATTR_MACHINE_ATTRIBUTE>: Pass ATTR_FLAG_TYPE_IN_PLACE only on demand
	and set the input location.
	Zap the attribute list at the end.
	(create_subprog_decl): Call process_attributes on the subprogram.
	(build_unc_object_type): Adjust call to create_type_decl.
	(handle_vector_type_attribute): Remove dead code.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199338 138bc75d-0d04-0410-961f-82ee72b054a4
	* gcc-interface/trans.c (Attribute_to_gnu) <Attr_Last_Bit>: Add kludge
	to avoid generating an overflow for -1.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199339 138bc75d-0d04-0410-961f-82ee72b054a4
	* gcc-interface/decl.c (vinfo_t): New type and associated vector.
	(components_to_record): Change return type to bool.
	Lay out the variants in two passes.  Do not force a specific layout for
	the variant part if the variants do not have a representation clause.
	Take the alignment of the variant part into account when laying out
	variants without rep clause in a record type with a partial rep clause.
	(create_rep_part): Do not set the position of the field.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199342 138bc75d-0d04-0410-961f-82ee72b054a4
	* gcc-interface/decl.c: (gnat_to_gnu_entity): In ASIS mode, do not
	check that access types have a set size.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199343 138bc75d-0d04-0410-961f-82ee72b054a4