summaryrefslogtreecommitdiffstats
path: root/gcc/ada/gcc-interface/trans.c
Commit message (Collapse)AuthorAgeFilesLines
* Update Copyright years for files modified in 2008 and/or 2009.jakub2009-02-201-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144324 138bc75d-0d04-0410-961f-82ee72b054a4
* * alias.h (record_alias_subset): Declare.ebotcazou2009-02-101-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | * alias.c (record_alias_subset): Make global. ada/ * gcc-interface/decl.c (enum alias_set_op): New enumeration. (copy_alias_set): Rename into... (relate_alias_sets): ...this.  Add third parameter OP.  Retrieve the underlying array of unconstrained arrays for the new type as well. If the old and new alias sets don't conflict, make one a subset of the other as per the OP parameter. (gnat_to_gnu_entity): Adjust calls to copy_alias_set. <E_Record_Type>: Do not copy the alias set for derived types. For all types, make the alias set of derived types a superset of that of their parent type. (make_aligning_type): Adjust calls to copy_alias_set. (make_packable_type): Likewise. * gcc-interface/trans.c (gnat_to_gnu)<N_Validate_Unchecked_Conversion>: Check for alias set conflict instead of strict equality to issue the warning. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144084 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/trans.c (emit_check): Put back a final save_exprebotcazou2008-11-151-1/+4
| | | | | | | to prevent exponential expansion during gimplification. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141885 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/ada-tree.def (PLUS_NOMOD_EXPR): New tree code.ebotcazou2008-11-091-11/+27
| | | | | | | | | | | | | (MINUS_NOMOD_EXPR): Likewise. * gcc-interface/utils2.c (build_binary_op) <PREINCREMENT_EXPR>: Make unreachable. <PLUS_NOMOD_EXPR>: New case. <MINUS_NOMOD_EXPR>: Likewise. * gcc-interface/trans.c (Loop_Statement_to_gnu): Build increment-and- assignment statement instead of using an increment operator. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141714 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix typo.ebotcazou2008-11-071-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141671 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/trans.c (Attribute_to_gnu, case Attr_Length): Checkebotcazou2008-11-071-2/+7
| | | | | | | for empty range in original base type, not converted result type. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141670 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/trans.c (build_binary_op_trapv): Convert argumentsebotcazou2008-11-071-1/+7
| | | | | | | and result for call to __gnat_mulv64. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141668 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/trans.c: Fix formatting nits.ebotcazou2008-11-071-40/+33
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141667 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/trans.c (build_binary_op_trapv): Avoid emittingebotcazou2008-11-071-0/+4
| | | | | | | overflow check for constant result. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141666 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/trans.c (build_binary_op_trapv): Use more efficientebotcazou2008-11-071-30/+69
| | | | | | | overflow check for addition/subtraction if neither operand is constant. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141665 138bc75d-0d04-0410-961f-82ee72b054a4
* PR ada/19419ebotcazou2008-11-061-1/+22
| | | | | | | | | * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Generate a call to memmove for an assignment between overlapping array slices. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141637 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/trans.c (gnat_to_gnu) <N_Slice>: Simplify expansionbosch2008-10-171-47/+40
| | | | | | | | | | to use only a single check instead of three, and avoid unnecessary COMPOUND_EXPR. (emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes creating more opportunities for optimizations. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141198 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Minor tweaks.ebotcazou2008-10-061-2/+2
| | | | | | | * gcc-interface/trans.c (Pragma_to_gnu): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140904 138bc75d-0d04-0410-961f-82ee72b054a4
* * exp_dbug.ads: Document new convention for the XVZ variable.ebotcazou2008-09-201-12/+15
| | | | | | | | | | | | | | | * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Generate debug info if necessary for the type padding the component type. <E_Array_Subtype>: Likewise. (maybe_pad_type): Emit the XVZ variable in units. * gcc-interface/trans.c (Loop_Statement_to_gnu): Fix formatting nits. (Subprogram_Body_to_gnu): Set the source line of the subprogram's node on statements generated to initialize the parameter attributes cache. Set the source line of the end label of the body on the special return statement built for a procedure with copy-in copy-out parameters. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140513 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/trans.c (gigi): Declare the name of the compilationebotcazou2008-09-151-1/+8
| | | | | | | unit as the first global name. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140373 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/ada/rwild2008-09-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | * a-crbtgk.adb, a-direct.ads, a-tasatt.adb, ali.ads, bindgen.adb, checks.adb, einfo.ads, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, exp_dbug.ads, exp_disp.adb, exp_dist.adb, exp_pakd.adb, exp_util.adb, g-alveop.ads, g-comlin.adb, g-comlin.ads, g-diopit.adb, g-socket.ads, gcc-interface/decl.c, gcc-interface/gigi.h, gcc-interface/trans.c, lib-load.adb, lib-xref.ads, make.adb, mlib-prj.adb, nlists.ads, opt.ads, par-ch10.adb, par-ch5.adb, par.adb, s-os_lib.ads, s-oscons-tmplt.c, s-parint.ads, s-regpat.ads, s-shasto.ads, s-stausa.ads, s-taprop-vms.adb, sem.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_elim.adb, sem_prag.adb, sem_util.adb, sem_util.ads, sem_warn.adb, sinfo.ads, styleg.adb, vms_data.ads: Fix typos in comments. * gnathtml.pl: Fix typos. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140356 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-08-22 Geert Bosch <bosch@adacore.com>charlet2008-08-221-4/+16
| | | | | | | | | * gcc-interface/trans.c: Define FP_ARITH_MAY_WIDEN (convert_with_check): Only use longest_float_type if FP_ARITH_MAY_WIDEN is 0 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@139468 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/trans.c (call_to_gnu): Use the Sloc of the callebotcazou2008-08-161-2/+2
| | | | | | | for back-copy statements in lieu of that of the actual. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@139161 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-08-04 Doug Rupp <rupp@adacore.com>charlet2008-08-041-1/+2
| | | | | | | | | | | * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter. * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and use it. Calculate pointer range overflow using 64bit types. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138594 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>ebotcazou2008-08-011-11/+21
| | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138513 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-08-01 Doug Rupp <rupp@adacore.com>charlet2008-08-011-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138473 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-07-31 Geert Bosch <bosch@adacore.com>charlet2008-07-311-3/+179
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138384 138bc75d-0d04-0410-961f-82ee72b054a4
* PR ada/36554ebotcazou2008-07-301-3/+25
| | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138348 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-07-30 Doug Rupp <rupp@adacore.com>charlet2008-07-301-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138307 138bc75d-0d04-0410-961f-82ee72b054a4
* * trans.c (process_inlined_subprograms): Remove tree_really_inlinecharlet2008-07-291-2/+2
| | | | | | | check. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138261 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface: New directory.charlet2008-07-291-0/+7091
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138246 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud