aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface
AgeCommit message (Collapse)AuthorFilesLines
2011-11-23Update dependencies.Arnaud Charlet1-24/+22
From-SVN: r181661
2011-11-23[multiple changes]Arnaud Charlet2-5/+7
2011-11-23 Robert Dewar <dewar@adacore.com> * exp_util.adb, par-ch6.adb, sem_res.adb, par-util.adb: Minor reformatting. 2011-11-23 Yannick Moy <moy@adacore.com> * sem_ch13.adb (Analyze_Aspect_Specifications): Place error on line of precondition/ postcondition/invariant. 2011-11-23 Pascal Obry <obry@adacore.com> * g-exptty.ads, g-exptty.adb, g-tty.ads, g-tty.adb, terminals.c: New files. Makefile.rtl: Add these new files. * gnat_rm.texi: Add documentation for GNAT.Expect.TTY. * gcc-interface/Makefile.in: Add g-exptty, g-tty, terminals.o * gcc-interface/Make-lang.in: Update dependencies. From-SVN: r181655
2011-11-21[multiple changes]Arnaud Charlet1-153/+160
2011-11-21 Arnaud Charlet <charlet@adacore.com> * s-taprop-irix.adb, s-taprop-solaris.adb (Create_Task): Use Unrestricted_Access to deal with fact that we properly detect the error if Access is used. * gcc-interface/Make-lang.in: Update dependencies. 2011-11-21 Yannick Moy <moy@adacore.com> * exp_prag.adb (Expand_Pragma_Check): Place error on first character of expression. * sem_res.adb (Resolve_Short_Circuit): Place error on first character of expression. 2011-11-21 Yannick Moy <moy@adacore.com> * exp_util.adb (Remove_Side_Effects): Do nothing in Alfa mode. 2011-11-21 Hristian Kirtchev <kirtchev@adacore.com> * exp_attr.adb (Expand_N_Attribute_Reference, case Max_Size_In_Storage_Elements): Account for the size of the hidden list header which precedes controlled objects allocated on the heap. * rtsfind.ads: Add RE_Header_Size_With_Padding to the runtime tables. * sinfo.adb (Header_Size_Added): New routine. (Set_Header_Size_Added): New routine. * sinfo.ads: Add flag Controlled_Header_Added along with associated comment. (Header_Size_Added): New inlined routine. (Set_Header_Size_Added): New inlined routine. * s-stposu.adb (Allocate_Any_Controlled): Use Header_Size_With_Padding to calculate the proper size of the header. (Deallocate_Any_Controlled): Use Header_Size_With_Padding to calculate the proper size of the header. (Header_Size_With_Padding): New routine. (Nearest_Multiple_Rounded_Up): Removed along with its uses. * s-stposu.ads (Header_Size_With_Padding): New routine. 2011-11-21 Ed Schonberg <schonberg@adacore.com> * aspects.adb: Aspect specifications are allowed on renaming declarations * par-ch6.adb (P_Subprogram): Parse aspect specifications in a subprogram renaming declaration From-SVN: r181576
2011-11-21Makefile.in (INCLUDES_FOR_SUBDIR): Add $(fsrcdir) by means of -iquote ↵Eric Botcazou1-9/+3
unconditionally. * gcc-interface/Makefile.in (INCLUDES_FOR_SUBDIR): Add $(fsrcdir) by means of -iquote unconditionally. From-SVN: r181573
2011-11-20trans.c (struct language_function): Add GNAT_RET.Eric Botcazou1-9/+202
* gcc-interface/trans.c (struct language_function): Add GNAT_RET. (f_gnat_ret): New macro. (struct nrv_data): Add GNAT_RET. (finalize_nrv_unc_r): New helper function. (finalize_nrv): Add GNAT_RET parameter. Copy it into DATA. If the function returns unconstrained, use finalize_nrv_unc_r as callback. (return_value_ok_for_nrv_p): Test the alignment of RET_OBJ only if RET_OBJ is non-null. (Subprogram_Body_to_gnu): Pass GNAT_RET to finalize_nrv. (gnat_to_gnu) <N_Return_Statement>: In the return-unconstrained case, if optimization is enabled, record candidates for the Named Return Value optimization. From-SVN: r181528
2011-11-20trans.c (Subprogram_Body_to_gnu): Add comment.Eric Botcazou2-12/+11
* gcc-interface/trans.c (Subprogram_Body_to_gnu): Add comment. (gnat_to_gnu) <N_Return_Statement>: Add 'else' to avoid doing a useless test. Tweak default case. <N_Goto_Statement>: Use better formatting. * gcc-interface/utils2.c (maybe_wrap_malloc): Use INIT_EXPR instead of MODIFY_EXPR to initialize the storage. (build_allocator): Likewise. From-SVN: r181527
2011-11-20decl.c (gnat_to_gnu_entity): Adjust call to components_to_record.Eric Botcazou2-66/+129
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Adjust call to components_to_record. (components_to_record): Add FIRST_FREE_POS parameter. For the variant part, reuse enclosing union even if there is a representation clause on the Unchecked_Union. If there is a variant part, compute the new first free position, if any. Adjust call to self. Use a single field directly only if it hasn't got a representation clause or is placed at offset zero. Create the variant part at offset 0 if all the fields down to this level have a rep clause. Do not chain the variant part immediately and adjust downstream. Do not test ALL_REP before moving the fields without rep clause to the previous level. Call create_rep_part to create the REP part and force a minimum size on it if necessary. Do not chain it immediately. Create a fake REP part if there are fields without rep clause that need to be laid out starting from FIRST_FREE_POS. At the end, chain the REP part and then the variant part. (create_rep_part): New function. (get_rep_part): Minor tweak. * gcc-interface/utils.c (tree_code_for_record_type): Minor tweak. From-SVN: r181526
2011-11-18re PR target/49992 (lto-bootstrap reveals duplicate symbols on ↵Tristan Gingold1-1/+0
x86_64-apple-darwin11) gcc/ada: 2011-11-18 Tristan Gingold <gingold@adacore.com> Iain Sandoe <iains@gcc.gnu.org> PR target/49992 * mlib-tgt-specific-darwin.adb (Archive_Indexer_Options): Remove. * gcc-interface/Makefile.in (darwin): Remove ranlib special-casing for Darwin. Co-Authored-By: Iain Sandoe <iains@gcc.gnu.org> From-SVN: r181470
2011-11-12Makefile.in (stamp-gnatlib-$(RTSDIR)): Don't link s-oscons.ads.Iain Sandoe2-5/+34
ada: * gcc-interface/Makefile.in (stamp-gnatlib-$(RTSDIR)): Don't link s-oscons.ads. (OSCONS_CPP, OSCONS_EXTRACT): New. (./bldtools/oscons/xoscons): New Target. ($(RTSDIR)/s-oscons.ads): New Target. (gnatlib): Depend on $(RTSDIR)/s-oscons.ads. * gcc-interface/Make-lang.in (ada/s-oscons.ads) Remove as dependency. * Make-generated.in: Remove machinery to generate xoscons and ada/s-oscons.ads. libada: Makefile.in: Change dependency on oscons to depend on the generator tool. From-SVN: r181319
2011-11-10fe.h (Serious_Errors_Detected): New macro.Eric Botcazou4-18/+251
* fe.h (Serious_Errors_Detected): New macro. * gcc-interface/gigi.h (build_atomic_load): Declare. (build_atomic_store): Likewise. * gcc-interface/trans.c (atomic_sync_required_p): New predicate. (call_to_gnu): Add ATOMIC_SYNC parameter. Use local variable. Build an atomic load for an In or In Out parameter if needed. Build an atomic store for the assignment of an Out parameter if needed. Build an atomic store to the target if ATOMIC_SYNC is true. (present_in_lhs_or_actual_p): New predicate. (gnat_to_gnu) <N_Identifier>: Build an atomic load if needed. <N_Explicit_Dereference>: Likewise. <N_Indexed_Component>: Likewise. <N_Selected_Component>: Likewise. <N_Assignment_Statement>: Adjust call to call_to_gnu. Build an atomic store to the LHS if needed. <N_Function_Call>: Adjust call to call_to_gnu. * gcc-interface/utils2.c: Include toplev.h. (resolve_atomic_size): New static function. (build_atomic_load): New function. (build_atomic_store): Likewise. * gcc-interface/Make-lang.in (ada/utils2.o): Add toplev.h. From-SVN: r181267
2011-11-07[multiple changes]Arnaud Charlet1-37/+37
2011-11-07 Olivier Hainque <hainque@adacore.com> * sigtramp-ppcvxw.c: Add general comments. (CFI_COMMON_REGS): Remove rule for r1, as in other unwinders. Add rules for r2 to r13, plus CTR and XER. (CFA_REG): New, register number used to hold the local CFA. (CFI_DEF_CFA, SIGTRAMP_BODY): Use it. Make that 15, not 14, with documentation. (TCR): Undef before definition, preventing conflict with reg number in VxWorks headers. 2011-11-07 Robert Dewar <dewar@adacore.com> * exp_util.ads, exp_alfa.adb, a-cohama.adb, a-cohama.ads, sem_ch4.adb, aspects.ads, exp_ch8.adb, exp_ch8.ads, atree.ads: Minor reformatting. * gcc-interface/Make-lang.in: Update dependencies. 2011-11-07 Ed Schonberg <schonberg@adacore.com> * exp_ch6.adb: A tagged type is a legal actual for an aliased formal. 2011-11-07 Pascal Obry <obry@adacore.com> * g-socket.adb, g-socket.ads: Minor reformatting. 2011-11-07 Robert Dewar <dewar@adacore.com> * sem_res.adb (Resolve_Actuals): Minor error message improvement. 2011-11-07 Robert Dewar <dewar@adacore.com> * gnat_ugn.texi: Add discussion of default mode handling of source representation with no -gnatW option given, in particular noting that NEL (next line) is not recognized in this context. From-SVN: r181094
2011-11-04* gcc-interface/Make-lang.in: Update dependencies.Arnaud Charlet1-5/+6
From-SVN: r180960
2011-11-04[multiple changes]Arnaud Charlet2-33/+30
2011-11-04 Robert Dewar <dewar@adacore.com> * sem_warn.adb (Warn_On_Useless_Assignment): More accurate test for call vs assign. * gcc-interface/Make-lang.in: Update dependencies. 2011-11-04 Robert Dewar <dewar@adacore.com> * sem_prag.adb: Detect more cases of Long_Float inconsistencies at compile time. 2011-11-04 Matthew Heaney <heaney@adacore.com> * Makefile.rtl, impunit.adb: Added a-sfecin.ads, * a-sfhcin.ads, a-sflcin.ads, a-sbecin.ad[sb], a-sbhcin.ad[sb], a-sblcin.ad[sb], a-suecin.ad[sb], a-suhcin.ad[sb], a-sulcin.ad[sb] * a-sfecin.ads, a-sfhcin.ads, a-sflcin.ads, a-sbecin.ad[sb], a-sbhcin.ad[sb], a-sblcin.ad[sb], a-suecin.ad[sb], a-suhcin.ad[sb], a-sulcin.ad[sb]: New files. 2011-11-04 Geert Bosch <bosch@adacore.com> * i-forbla-unimplemented.ads, s-gecola.adb, s-gecola.ads, s-gerebl.adb, s-gerebl.ads, i-forbla.adb, i-forbla.ads, i-forlap.ads, i-forbla-darwin.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads: Remove partial interface to BLAS/LAPACK. * gcc-interface/Makefile.in: Remove libgnala and related objects. From-SVN: r180935
2011-11-04decl.c (gnat_to_gnu_entity): Do not assert that the type of the parameters ↵Eric Botcazou1-1/+2
isn't dummy in type_annotate_only... * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Do not assert that the type of the parameters isn't dummy in type_annotate_only mode. From-SVN: r180931
2011-10-28re PR ada/50842 (gnatmake fails to link in stage3 with undefined symbol ↵Eric Botcazou1-8/+9
_iconv_close) PR ada/50842 * gcc-interface/Makefile.in (SYMDEPS): Delete. (LIBICONV): New variable. (LIBICONV_DEP): Likewise. (LIBS): Add $(LIBICONV). (LIBDEPS): Add $(LIBICONV_DEP). (EXTRA_GNATTOOLS_OBJS): Merge into... (TOOLS_LIBS): ...this. Add $(LIBICONV). From-SVN: r180605
2011-10-26decl.c (elaborate_expression_1): Add EXPR_PUBLIC_P local variable.Eric Botcazou1-6/+6
* gcc-interface/decl.c (elaborate_expression_1): Add EXPR_PUBLIC_P local variable. Always create the elaboration variable, if any, as constant. From-SVN: r180541
2011-10-26decl.c (gnat_to_gnu_entity): Try to make a packable type for fields of union ↵Eric Botcazou5-38/+19
types as well. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Try to make a packable type for fields of union types as well. <is_type>: Use RECORD_OR_UNION_TYPE_P predicate. (gnat_to_gnu_component_type): Try to make a packable type for fields of union types as well. (make_packable_type): Use RECORD_OR_UNION_TYPE_P predicate. (maybe_pad_type): Try to make a packable type for fields of union types as well. (gnat_to_gnu_field): Likewise. (is_variable_size): Use RECORD_OR_UNION_TYPE_P predicate. (set_rm_size): Likewise. (rm_size): Likewise. * gcc-interface/misc.c (gnat_type_max_size): Likewise. * gcc-interface/trans.c (add_decl_expr): Likewise. * gcc-interface/utils.c (finish_record_type): Likewise. * gcc-interface/utils2.c (build_simple_component_ref): Likewise. From-SVN: r180540
2011-10-26decl.c (gnat_to_gnu_field): Always check components declared as atomic.Eric Botcazou1-8/+10
* gcc-interface/decl.c (gnat_to_gnu_field): Always check components declared as atomic. Move around conditionally executed code. From-SVN: r180539
2011-10-24Makefile.in: Use GNU ld switches to generate map files on AIX.Tristan Gingold1-3/+6
2011-10-16 Tristan Gingold <gingold@adacore.com> * gcc-interface/Makefile.in: Use GNU ld switches to generate map files on AIX. From-SVN: r180374
2011-10-23* gcc-interface/decl.c (create_concat_name): Add explicit cast.Eric Botcazou1-1/+1
From-SVN: r180347
2011-10-20Make-lang.in (GNATLIBFLAGS, [...]): Reintroduce.Eric Botcazou1-6/+16
* gcc-interface/Make-lang.in (GNATLIBFLAGS, GNATLIBCFLAGS, THREAD_KIND, TRACE): Reintroduce. (ada/tracebak.o, ada/targext.o, ada/cio.o, ada/init.o, ada/initialize.o, ada/raise.o): Reintroduce explicit compilation rules. From-SVN: r180246
2011-10-20trans.c (lhs_or_actual_p): New predicate.Eric Botcazou1-17/+31
* gcc-interface/trans.c (lhs_or_actual_p): New predicate. (unchecked_conversion_nop): Use it. (gnat_to_gnu): Likewise. From-SVN: r180243
2011-10-20back_end.adb (Call_Back_End): Pass the maximum logical line number instead ↵Eric Botcazou1-0/+4
of the maximum physical line... * back_end.adb (Call_Back_End): Pass the maximum logical line number instead of the maximum physical line number to gigi. * gcc-interface/trans.c (Sloc_to_locus): Cope with line zero. From-SVN: r180242
2011-10-17Linemap infrastructure for virtual locationsTom Tromey1-6/+4
This is the first instalment of a set which goal is to track locations of tokens across macro expansions. Tom Tromey did the original work and attached the patch to PR preprocessor/7263. This opus is a derivative of that original work. This patch modifies the linemap module of libcpp to add virtual locations support. A virtual location is a mapped location that can resolve to several different physical locations. It can always resolve to the spelling location of a token. For tokens resulting from macro expansion it can resolve to: - either the location of the expansion point of the macro. - or the location of the token in the definition of the macro - or, if the token is an argument of a function-like macro, the location of the use of the matching macro parameter in the definition of the macro The patch creates a new type of line map called a macro map. For every single macro expansion, there is a macro map that generates a virtual location for every single resulting token of the expansion. The good old type of line map we all know is now called an ordinary map. That one still encodes spelling locations as it has always had. As a result linemap_lookup as been extended to return a macro map when given a virtual location resulting from a macro expansion. The layout of structs line_map has changed to support this new type of map. So did the layout of struct line_maps. Accessor macros have been introduced to avoid messing with the implementation details of these datastructures directly. This helped already as we have been testing different ways of arranging these datastructure. Having to constantly adjust client code that is too tied with the internals of line_map and line_maps would have been even more painful. Of course, many new public functions have been added to the linemap module to handle the resolution of virtual locations. This patch introduces the infrastructure but no part of the compiler uses virtual locations yet. However the client code of the linemap data structures has been adjusted as per the changes. E.g, it's not anymore reliable for a client code to manipulate struct line_map directly if it just wants to deal with spelling locations, because struct line_map can now represent a macro map as well. In that case, it's better to use the convenient API to resolve the initial (possibly virtual) location to a spelling location (or to an ordinary map) and use that. This is the reason why the patch adjusts the Java, Ada and Fortran front ends. Also, note that virtual locations are not supposed to be ordered for relations '<' and '>' anymore. To test if a virtual location appears "before" another one, one has to use a new operator exposed by the line map interface. The patch updates the only spot (in the diagnostics module) I have found that was making the assumption that locations were ordered for these relations. This is the only change that introduces a use of the new line map API in this patch, so I am adding a regression test for it only. From-SVN: r180081
2011-10-15lang-specs.h: Ensure -mrtp switch is passed when using either rtp-smp or ↵Nicolas Roche1-1/+1
ravenscar-cert-rtp... 2011-10-15 Nicolas Roche <roche@adacore.com> * gcc-interface/lang-specs.h: Ensure -mrtp switch is passed when using either rtp-smp or ravenscar-cert-rtp runtimes. From-SVN: r180026
2011-10-13[multiple changes]Arnaud Charlet2-9/+13
2011-10-13 Ed Schonberg <schonberg@adacore.com> * sem_util.ads, sem_util.adb (Available_Full_View_Of_Component): New predicate to determine whether some operations on an array type are available when the full view of its component may differ from the view of the point of the array declaration. * sem_ch4.adb (Find_Equality_Types): Use Available_Full_View_Of_Component. * sem_type.adb (Valid_Boolean_Arg, Valid_Comparison_Arg): Ditto 2011-10-13 Ed Schonberg <schonberg@adacore.com> * sem_ch9.adb: Analyze aspects while discriminants of protected type are visible. 2011-10-13 Geert Bosch <bosch@adacore.com> * Makefile.rtl (GNATRTL_TASKING_OBJECTS): Add a-nlcoar.o, a-nllcar.o, a-nucoar.o and s-gearop.o, as these no longer depend on an external library. * gcc-interface/Makefile.in (GNATRTL_LINEARALGEBRA_OBJS): Remove a-nlcoar.o, a-nllcar.o, a-nucoar.o and s-gearop.o. Update dependencies. * gcc-interface/Make-lang.in: Update dependencies. From-SVN: r179914
2011-10-13* gcc-interface/Makefile.in: Fix typo.Arnaud Charlet1-1/+1
From-SVN: r179900
2011-10-12Makefile.in (LOOSE_WARN): Delete.Eric Botcazou4-131/+33
gnattools/ * Makefile.in (LOOSE_WARN): Delete. (GCC_WARN_CFLAGS): Set to -W -Wall. (TOOLS_FLAGS_TO_PASS_1): Delete. (TOOLS_FLAGS_TO_PASS_1re): Rename into... (TOOLS_FLAGS_TO_PASS_RE): ...this. (gnattools-native): Use TOOLS_FLAGS_TO_PASS_NATIVE. (regnattools): Use TOOLS_FLAGS_TO_PASS_RE. libada/ * Makefile.in (LOOSE_WARN): Delete. (GCC_WARN_CFLAGS): Likewise. (WARN_CFLAGS): Likewise. (GNATLIBFLAGS): Add -nostdinc. (GNATLIBCFLAGS_FOR_C): Add -W -Wall. (LIBADA_FLAGS_TO_PASS): Remove WARN_CFLAGS. * configure.ac (warn_cflags): Delete. * configure: Regenerate. gcc/ada/ * sem_util.adb (Denotes_Same_Prefix): Fix fatal warning. * gcc-interface/Make-lang.in (WARN_ADAFLAGS): New. (ALL_ADAFLAGS): Include WARN_ADAFLAGS. (ADA_FLAGS_TO_PASS): Likewise. (COMMON_FLAGS_TO_PASS): New. (ADA_TOOLS_FLAGS_TO_PASS): Use COMMON_FLAGS_TO_PASS. In the regular native case, also use FLAGS_TO_PASS and ADA_FLAGS_TO_PASS. (gnatlib): Use COMMON_FLAGS_TO_PASS. (ada.install-common): Likewise. (install-gnatlib): Likewise. (install-gnatlib-obj): Likewise. (gnattools): Use ADA_TOOLS_FLAGS_TO_PASS for gnattools1 as well. (gnat-cross): Delete. (gnatboot): Likewise. (gnatboot2): Likewise. (gnatboot3): Likewise. (gnatstage1): Likewise. (gnatstage2): Likewise. * gcc-interface/Makefile.in (SOME_ADAFLAGS): Likewise. (MOST_ADAFLAGS): Likewise. (LOOSE_CFLAGS): Likewise. (gnat-cross): Likewise. (GNATLIBFLAGS): Add -W -Wall. (GNATLIBCFLAGS_FOR_C): Likewise. * gcc-interface/lang.opt: Remove C-specific warnings. Add doc lines. * gcc-interface/misc.c (gnat_handle_option): Remove obsolete cases. From-SVN: r179878
2011-10-12trans.c (Attribute_to_gnu): Use remove_conversions.Eric Botcazou3-32/+18
* gcc-interface/trans.c (Attribute_to_gnu): Use remove_conversions. (push_range_check_info): Likewise. (gnat_to_gnu) <N_Code_Statement>: Likewise. * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: Likewise. (gnat_invariant_expr): Likewise. * gcc-interface/utils.c (compute_related_constant): Likewise. (max_size): Fix handling of SAVE_EXPR. (remove_conversions): Fix formatting. From-SVN: r179873
2011-10-12ada-tree.h (DECL_LOOP_PARM_P): New flag.Eric Botcazou7-66/+415
* gcc-interface/ada-tree.h (DECL_LOOP_PARM_P): New flag. (DECL_INDUCTION_VAR): New macro. (SET_DECL_INDUCTION_VAR): Likewise. * gcc-interface/gigi.h (convert_to_index_type): Declare. (gnat_invariant_expr): Likewise. * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: If this is a loop parameter, set DECL_LOOP_PARM_P on it. * gcc-interface/misc.c (gnat_print_decl) <VAR_DECL>: If DECL_LOOP_PARM_P is set, print DECL_INDUCTION_VAR instead of DECL_RENAMED_OBJECT. * gcc-interface/trans.c (gnu_loop_label_stack): Delete. (struct range_check_info_d): New type. (struct loop_info_d): Likewise. (gnu_loop_stack): New stack. (Identifier_to_gnu): Set TREE_READONLY flag on the first dereference built for a by-double-ref read-only parameter. If DECL_LOOP_PARM_P is set, do not test DECL_RENAMED_OBJECT. (push_range_check_info): New function. (Loop_Statement_to_gnu): Push a new struct loop_info_d instead of just the label. Reference the label and the iteration variable from it. Build the special induction variable in the unsigned version of the size type, if it is larger than the base type. And attach it to the iteration variable if the latter isn't by-ref. In the iteration scheme case, initialize the invariant conditions in front of the loop if deemed profitable. Use gnu_loop_stack. (gnat_to_gnu) <N_Exit_Statement>: Use gnu_loop_stack. <N_Raise_Constraint_Error>: Always process the reason. In the range check and related cases, and if loop unswitching is enabled, compute invariant conditions and push this information onto the stack. Do not translate again the condition if it has been already translated. * gcc-interface/utils.c (record_global_renaming_pointer): Assert that DECL_LOOP_PARM_P isn't set. (convert_to_index_type): New function. * gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Use it in order to convert the index from the base index type to sizetype. (gnat_invariant_expr): New function. From-SVN: r179868
2011-10-11Convert standard builtin functions from being arrays to using a functional ↵Michael Meissner2-6/+4
interface From-SVN: r179820
2011-10-07re PR lto/50492 (Ada bootstrap failure --with-build-config=bootstrap-lto)Eric Botcazou2-9/+17
PR lto/50492 * gcc-interface/gigi.h (gnat_pushdecl): Adjust comment. * gcc-interface/utils.c (global_context): New variable. (gnat_pushdecl): Initialize it and set it as the DECL_CONTEXT of DECLs that are either public external or at top level. Use "No" macro. (end_subprog_body): Call decl_function_context. (rest_of_subprog_body_compilation): Likewise. From-SVN: r179652
2011-10-07gigi.h (gnat_useless_type_conversion): Declare.Eric Botcazou4-16/+370
* gcc-interface/gigi.h (gnat_useless_type_conversion): Declare. (rest_of_subprog_body_compilation): Likewise. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: For renaming, test for useless conversions by means of gnat_useless_type_conversion. * gcc-interface/trans.c: Include bitmap.h and cgraph.h. (language_function): Add named_ret_val and other_ret_val. (f_named_ret_val): New macro. (f_other_ret_val): Likewise. (gigi): Call rest_of_subprog_body_compilation. (struct nrv_data): New structure. (is_nrv_p): New predicate. (prune_nrv_r): New helper function. (prune_nrv_in_block): New function. (finalize_nrv_r): New helper function. (finalize_nrv): New function. (return_value_ok_for_nrv_p): New predicate. (build_return_expr): If optimization is enabled, record candidates for the Named Return Value optimization. (build_function_stub): Call rest_of_subprog_body_compilation. (Subprogram_Body_to_gnu): If optimization is enabled and there are candidates, finalize the Named Return Value optimization. Call rest_of_subprog_body_compilation. (call_to_gnu): At the end, if a return value is needed, simplify the result before wrapping it up in a COMPOUND_EXPR. * gcc-interface/utils.c (end_subprog_body): Split into... (rest_of_subprog_body_compilation): ...this. New function. (gnat_useless_type_conversion): Likewise. From-SVN: r179650
2011-10-06[multiple changes]Arnaud Charlet1-33/+3
2011-10-06 Thomas Quinot <quinot@adacore.com> * einfo.ads, exp_attr.adb, exp_ch3.adb, exp_ch4.adb, exp_ch7.adb, exp_ch9.adb, exp_ch9.ads, exp_strm.adb, exp_util.adb, freeze.adb, g-debpoo.ads, opt.ads, par-ch12.adb, par-ch2.adb, par-ch3.adb, par-ch5.adb, par-ch6.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb, sem_ch10.adb, sem_ch12.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_intr.adb, sem_res.ads, sem_type.adb, sem_util.adb, s-regpat.adb, s-tpopde-vms.ads: Minor reformatting. * s-osinte-freebsd.ads: Fix for tasking failures on FreeBSD. 2011-10-06 Ed Schonberg <schonberg@adacore.com> * a-cihase.adb, a-ciorma.adb: Avoid accessibility checks in container references. 2011-10-06 Matthew Heaney <heaney@adacore.com> * a-cuprqu.ads, a-cuprqu.adb, a-cbprqu.ads, a-cbprqu.adb (Dequeue_Only_High_Priority): Protected procedure now implemented. 2011-10-06 Vincent Celier <celier@adacore.com> * g-trasym.adb: Replace old implementation with the default implementation that returns list of addresses as "0x...". * g-trasym.ads: Update the list of platforms with the full capability. Indicate that there is a default implementation for other platforms. * g-trasym-unimplemented.ads, g-trasym-unimplemented.adb: Remove. * gcc-interface/Makefile.in: Remove g-trasym-unimplemented, as there is now a default implementation for all platforms without the full capability. From-SVN: r179631
2011-09-30Partial reversion of r179358.Iain Sandoe1-1/+3
ada: Partial reversion of r179358. * gcc-interface/Makefile.in (Darwin): Partial reversion of previous change to powerpc section. From-SVN: r179384
2011-09-29Makefile.in (Darwin): Factor LIBGNAT_TARGET_PAIRS across the port.Iain Sandoe1-35/+15
ada: * gcc-interface/Makefile.in (Darwin): Factor LIBGNAT_TARGET_PAIRS across the port. From-SVN: r179358
2011-09-27a-cbhase.adb, [...]: Add iterator machinery to bounded sets and indefinite sets.Ed Schonberg2-60/+30
2011-09-27 Ed Schonberg <schonberg@adacore.com> * a-cbhase.adb, a-cbhase.ads, a-cborse.adb, a-cborse.ads, a-cihase.adb, a-cihase.ads, a-ciorse.adb, a-ciorse.ads, a-coorse.adb, a-coorse.ads: Add iterator machinery to bounded sets and indefinite sets. * a-coorma.ads: Minor reformmating. * einfo.ads: Improve the comment describing the Directly_Designated_Type function. * a-ciorma.adb, a-ciorma.ads: Add iterator machinery to indefinite ordered maps. * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Update dependencies. From-SVN: r179260
2011-09-26utils2.c (build_allocator): Set TREE_THIS_NOTRAP on the dereference of the ↵Eric Botcazou1-42/+32
pointer to the storage area. * gcc-interface/utils2.c (build_allocator): Set TREE_THIS_NOTRAP on the dereference of the pointer to the storage area. Remove useless type conversions and factor out common code. From-SVN: r179187
2011-09-26utils.c (maybe_unconstrained_array): Declare TYPE local variable and use it ↵Eric Botcazou1-32/+31
throughout. * gcc-interface/utils.c (maybe_unconstrained_array): Declare TYPE local variable and use it throughout. <UNCONSTRAINED_ARRAY_TYPE>: Add 'break' at the end. <RECORD_TYPE>: Do not unconditionally convert to the unpadded type as a first step. Also convert to the unpadded type as a last step. From-SVN: r179186
2011-09-26gigi.h (create_subprog_decl): Replace TREE_CHAIN with DECL_CHAIN in comment.Eric Botcazou3-19/+19
* gcc-interface/gigi.h (create_subprog_decl): Replace TREE_CHAIN with DECL_CHAIN in comment. * gcc-interface/trans.c (gigi): Likewise. (Attribute_to_gnu): Likewise. (build_function_stub): Likewise. (gnat_to_gnu): Likewise. * gcc-interface/utils.c (create_subprog_decl): Likewise. (convert_vms_descriptor64): Likewise. (convert_vms_descriptor32): Likewise. From-SVN: r179185
2011-09-26trans.c (assoc_to_constructor): Minor tweaks.Eric Botcazou2-42/+38
* gcc-interface/trans.c (assoc_to_constructor): Minor tweaks. * gcc-interface/utils2.c (build_simple_component_ref): Fix formatting issues. Use COMPLETE_TYPE_P in assertion. Also set TREE_READONLY if the type of the record is TYPE_READONLY. From-SVN: r179184
2011-09-26ada-tree.h (DECL_CAN_NEVER_BE_NULL_P): New macro.Eric Botcazou4-59/+81
* gcc-interface/ada-tree.h (DECL_CAN_NEVER_BE_NULL_P): New macro. * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Set the flag. (gnat_to_gnu_param): Likewise. * gcc-interface/utils.c (convert) <UNCONSTRAINED_ARRAY_REF>: Invoke maybe_unconstrained_array instead of doing the work manually. (maybe_unconstrained_array): Propagate the TREE_THIS_NOTRAP flag. * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: If operand is a DECL with the flag, set TREE_THIS_NOTRAP on the reference. (gnat_stabilize_reference_1): Propagate the TREE_THIS_NOTRAP flag. (gnat_stabilize_reference): Likewise. From-SVN: r179182
2011-09-26ada-tree.h (TYPE_NULL_BOUNDS): New macro.Eric Botcazou5-22/+134
* gcc-interface/ada-tree.h (TYPE_NULL_BOUNDS): New macro. (SET_TYPE_NULL_BOUNDS): Likewise. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Set again TREE_THIS_NOTRAP on the INDIRECT_REF node built for the template. * gcc-interface/trans.c (Identifier_to_gnu): Return initializers of fat pointer types. * gcc-interface/utils.c (create_var_decl_1): If the object is external, check that the initializer is a valid constant expression for use in initializing a static variable. Add missing guard. (update_pointer_to): Adjust TYPE_NULL_BOUNDS if set. (convert_to_fat_pointer): In the null fat pointer case, build a valid pointer for the bounds. * gcc-interface/utils2.c (compare_fat_pointers): New function. (build_binary_op) <EQ_EXPR>: Call it to compare fat pointers. From-SVN: r179180
2011-09-25ada-tree.h (TREE_THIS_NOTRAP): Redefine.Eric Botcazou3-40/+64
* gcc-interface/ada-tree.h (TREE_THIS_NOTRAP): Redefine. * gcc-interface/trans.c (Identifier_to_gnu): Factor out common code in the by-ref case. Do not set TREE_READONLY on a renamed object. Set TREE_THIS_NOTRAP on UNCONSTRAINED_ARRAY_REF nodes. (Attribute_to_gnu) <Attr_Length>: Expand the use of the parameter cache to the indirect case. * gcc-interface/utils.c (convert) <UNCONSTRAINED_ARRAY_REF>: Preserve the TREE_THIS_NOTRAP flag. From-SVN: r179171
2011-09-25trans.c (Loop_Statement_to_gnu): In the case of an iteration scheme...Eric Botcazou1-60/+99
* gcc-interface/trans.c (Loop_Statement_to_gnu): In the case of an iteration scheme, always generate the do-while form if optimization is enabled. Use more straightforward test at the end. From-SVN: r179169
2011-09-25decl.c (gnat_to_gnu_entity): Use XNEW instead of xmalloc.Eric Botcazou3-75/+59
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Subtype>: Use XNEW instead of xmalloc. Do not build useless pointer type. <E_Anonymous_Access_Subprogram_Type>: Use XNEW instead of xmalloc. * gcc-interface/trans.c (gnat_to_gnu) <N_Raise_Constraint_Error>: Tidy. * gcc-interface/utils2.c (build_unary_op): Remove local variable. From-SVN: r179168
2011-09-25decl.c (gnat_to_gnu_entity): Do not promote the alignment if this doesn't ↵Eric Botcazou1-5/+19
prevent BLKmode access to the object. * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not promote the alignment if this doesn't prevent BLKmode access to the object. From-SVN: r179167
2011-09-24ada, remove flat_namespace library option from darwin port build/defaults :Iain Sandoe1-1/+1
* gcc-interface/Makefile.in (darwin): Do not issue the '-flat_namespace' linker flag during Ada build. * mlib-tgt-specific-darwin.adb: Remove '-flat_namespace' flag from the default shared library options. From-SVN: r179148
2011-09-19decl.c (annotate_value): Look up expression for insertion in the cache at ↵Alexandre Oliva1-7/+19
the end. * gcc-interface/decl.c (annotate_value): Look up expression for insertion in the cache at the end. From-SVN: r178970
2011-09-19Update dependencies.Arnaud Charlet1-53/+54
From-SVN: r178964