Commit Graph

19 Commits

Author SHA1 Message Date
Eric Botcazou
229077b0b4 decl.c (compile_time_known_address_p): Rewrite and move around.
* decl.c (compile_time_known_address_p): Rewrite and move around.
	(gnat_to_gnu_type): Move around.
	(get_unpadded_type): Likewise.
	* utils.c (update_pointer_to): Use synthetic macro.  Tidy comments.

From-SVN: r145654
2009-04-07 07:56:11 +00:00
Eric Botcazou
63787194e1 utils.c (finish_record_type): Force structural equality checks if the record type is discriminated.
* gcc-interface/utils.c (finish_record_type): Force structural equality
	checks if the record type is discriminated.

From-SVN: r145549
2009-04-04 19:11:05 +00:00
H.J. Lu
d9223014f9 re PR target/39323 (MAX_OFILE_ALIGNMENT in elfos.h is too big)
gcc/

2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR c/39323
	* c-common.c (handle_aligned_attribute): Properly check alignment
	overflow.  Use (1U << i) instead of (1 << i).

	* emit-rtl.c (get_mem_align_offset): Use "unsigned int" for
	align.

	* expr.h (get_mem_align_offset): Updated.

	* tree.h (tree_decl_common): Change align to "unsigned int" and
	move it before pointer_alias_set.

gcc/ada/

2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR c/39323
	* gcc-interface/utils.c (create_field_decl): Use "unsigned int"
	on bit_align.

gcc/testsuite/

2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR c/39323
	* gcc.dg/pr39323-1.c: New.
	* gcc.dg/pr39323-2.c: Likewise.
	* gcc.dg/pr39323-3.c: Likewise.

From-SVN: r145136
2009-03-27 15:33:16 -07:00
Jakub Jelinek
6f9f0ce349 re PR ada/38450 (ada bootstrap is broken)
PR ada/38450
	* gcc-interface/utils.c (finish_record_type): Use SET_TYPE_MODE.
	* gcc-interface/decl.c (gnat_to_gnu_entity, make_aligning_type):
	Likewise.

From-SVN: r142588
2008-12-09 11:35:15 +01:00
Eric Botcazou
521f661554 Follow up fix for GC19-015:
* utils.c (init_gigi_decls): Fix type mismatch.

From-SVN: r142057
2008-11-20 20:24:53 +00:00
Jakub Jelinek
0adef32bee re PR middle-end/37601 (gcc-4.4-20080919 ada build failure)
PR middle-end/37601
	* gcc-interface/utils.c (gnat_types_compatible_p): Handle
	NULL TYPE_DOMAIN.

From-SVN: r141092
2008-10-13 21:10:32 +02:00
Eric Botcazou
afcea85941 utils.c (can_fold_for_view_convert_p): New predicate.
2008-10-06  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (can_fold_for_view_convert_p): New predicate.
	(unchecked_convert): Use it to disable problematic folding with
	VIEW_CONVERT_EXPR in the general case.  Always disable it for the
	special VIEW_CONVERT_EXPR built for integral types and cope with
	its addressability issues by preserving the first conversion.

From-SVN: r140902
2008-10-06 07:09:41 +00:00
Eric Botcazou
d84b344a6c re PR ada/37585 (undefined references at -O for ACATS c650001)
PR ada/37585
	* gcc-interface/utils.c (create_subprog_decl): Disable inlining for
	inlined external functions if they contain a nested function not
	declared inline.

From-SVN: r140511
2008-09-20 08:41:55 +00:00
Jan Hubicka
4db26d6c4d utils.c (create_subprog_decl): Use DECL_DECLARED_INLINE_P.
* gcc-interface/utils.c (create_subprog_decl): Use DECL_DECLARED_INLINE_P.
	(end_subprog_body): Do not set DECL_INLINE.

From-SVN: r140472
2008-09-18 20:08:13 +00:00
Eric Botcazou
a981c96402 ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
* gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
	* gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify
	and adjust for above renaming.
	* gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new
	gnu_expr_alt_type parameter.  Convert the expression to it instead
	of changing its type in place.
	(build_function_stub): Adjust call to above function.

From-SVN: r138518
2008-08-01 14:02:10 +00:00
Eric Botcazou
6b093baca5 Revert incorrect patch.
From-SVN: r138514
2008-08-01 13:11:51 +00:00
Eric Botcazou
8df2e90229 decl.c (gnat_to_gnu_entity): Remove dead code.
2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead
	code.  Do not get full definition of deferred constants with address
	clause for a use.  Do not ignore deferred constant definitions with
	address clause.  Ignore constant definitions already marked with the
	error node.
	<object>: Remove obsolete comment.  For a deferred constant with
	address clause, get the initializer from the full view.
	* gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
	Rework and remove obsolete comment.
	<N_Object_Declaration>: For a deferred constant with address clause,
	mark the full view with the error node.
	*  gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
	formatting nits.

From-SVN: r138513
2008-08-01 12:39:57 +00:00
Eric Botcazou
f252a7d6bd utils.c (convert_vms_descriptor): Add gnu_expr_alt_type parameter.
2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (convert_vms_descriptor): Add gnu_expr_alt_type
	parameter.
	Convert the expression to it instead of changing its type in place.
	(build_function_stub): Adjust call to above function.

From-SVN: r138492
2008-08-01 11:10:16 +02:00
Doug Rupp
d628c01538 gnat_rm.texi: Document new mechanism Short_Descriptor.
2008-08-01  Doug Rupp  <rupp@adacore.com>

	* gnat_rm.texi: Document new mechanism Short_Descriptor.
	
	* types.ads (Mechanism_Type): Modify range for new Short_Descriptor
	mechanism values.

	* sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
	mechanism and Short_Descriptor mechanism values.

	* snames.adb (preset_names): Add short_descriptor entry.

	* snames.ads: Add Name_Short_Descriptor.

	* types.h: Add new By_Short_Descriptor mechanism values.

	* sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
	mechanism and Short_Descriptor mechanism values.

	* sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism
	values.
	(Descriptor_Codes): Modify range for new mechanism values.

	* treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
	mechanism values.

	* gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
	(gnat_to_gnu_param): Handle By_Short_Descriptor.

	* gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
	(build_vms_descriptor32): New prototype.
	(fill_vms_descriptor): Remove unneeded gnat_actual parameter.

	* gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
	argument in call fill_vms_descriptor.

	* gcc-interface/utils.c (build_vms_descriptor32): Renamed from
	build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
	(build_vms_descriptor): Renamed from build_vms_descriptor64. 
	(convert_vms_descriptor32): New function.
	(convert_vms_descriptor64): New function.
	(convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
	descriptors.

	* gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
	no longer needed.

From-SVN: r138473
2008-08-01 09:56:20 +02:00
Eric Botcazou
4c5a06150c decl.c (gnat_to_gnu_entity): Fix formatting.
* gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting.
	* gcc-interface/utils.c (create_field_decl): Avoid superfluous work.

From-SVN: r138440
2008-07-31 22:04:03 +00:00
Geert Bosch
b666e56815 arit64.c: New file implementing __gnat_mulv64 signed integer multiplication with overflow...
2008-07-31  Geert Bosch  <bosch@adacore.com>

	* arit64.c:
	New file implementing __gnat_mulv64 signed integer multiplication with
	overflow checking

	* fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi

	* gcc-interface/gigi.h:
	(standard_types): Add ADT_mulv64_decl
	(mulv64_decl): Define subprogram declaration for __gnat_mulv64

	* gcc-interface/utils.c:
	(init_gigi_decls): Add initialization of mulv64_decl

	* gcc-interface/trans.c:
	(build_unary_op_trapv): New function
	(build_binary_op_trapv): New function
	(gnat_to_gnu): Use the above functions instead of
	build_{unary,binary}_op

	* gcc-interface/Makefile.in
	(LIBGNAT_SRCS): Add arit64.c
	(LIBGNAT_OBJS): Add arit64.o

From-SVN: r138384
2008-07-31 12:27:20 +02:00
Eric Botcazou
01ddebf208 re PR ada/36554 (verify_flow_info ICE can not throw but has EH edges)
PR ada/36554
        * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
ada/
        * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
        * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
        Set precision to 1 for subtype of BOOLEAN_TYPE.
        (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
        (make_type_from_size): Deal with BOOLEAN_TYPE.
        * gcc-interface/misc.c (gnat_print_type): Likewise.
        * gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
        Set boolean_type_node as its translation in the table, as well
        as boolean_false_node for False and boolean_true_node for True.
        * gcc-interface/utils.c (gnat_init_decl_processing): Create custom
        8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
        (create_param_decl): Deal with BOOLEAN_TYPE.
        (build_vms_descriptor): Likewise.
        (build_vms_descriptor64): Likewise.
        (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.

From-SVN: r138348
2008-07-30 23:54:56 +00:00
Doug Rupp
6ca2b0a038 gigi.h (build_vms_descriptor64): New function prototype.
2008-07-30  Doug Rupp  <rupp@adacore.com>

	* gigi.h (build_vms_descriptor64): New function prototype.
	(fill_vms_descriptor): Modified function prototype.

	* utils.c (build_vms_descriptor64): New function.

	* utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.

	* trans.c (call_to_gnu): Call fill_vms_descriptor with new third
	argument.

	* decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
	64bit and 32bit descriptor and save the 64bit version as an alternate
	TREE_TYPE in the parameter.
	(make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
	thin pointer.

	* ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.

From-SVN: r138307
2008-07-30 15:06:45 +02:00
Arnaud Charlet
a1ab4c317a gcc-interface: New directory.
* gcc-interface: New directory.

	* ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h,
	utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c,
	config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
	to gcc-interface subdirectory.

From-SVN: r138246
2008-07-29 17:46:37 +02:00