2011-08-01 Ed Schonberg * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator over an arbitrary expression of an array or container type. * lib-xref.adb: clarify comment. 2011-08-01 Bob Duff * einfo.ads: Minor reformatting. * debug.adb: Minor comment improvement. 2011-08-01 Javier Miranda * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not consider hidden subprograms as valid candidates. 2011-08-01 Arnaud Charlet * make.adb (Compile): Strip -mxxx switches in CodePeer mode. 2011-08-01 Vasiliy Fofanov * gnat_ugn.texi: Fix typo. 2011-08-01 Robert Dewar * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb, lib-xref.adb: Minor reformatting 2011-08-01 Gary Dismukes * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of when to generate a call to Move_Final_List. (Has_Controlled_Parts): Remove this function. 2011-08-01 Geert Bosch * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra "," in choice list. 2011-08-01 Thomas Quinot * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for explicit raise of a predefined exception as Comes_From_Source if the original N_Raise_Statement comes from source. 2011-08-01 Robert Dewar * sinfo.ads: Add comment. * sem_ch6.adb: Minor reformatting. 2011-08-01 Robert Dewar * freeze.adb (Freeze_Entity): Refine check for bad component size clause to avoid rejecting confirming clause when atomic/aliased present. 2011-08-01 Ed Schonberg * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to better determine whether an entity reference is a write. * sem_util.adb (Is_LHS): refine predicate to handle assignment to a subcomponent. * lib-xref.adb (Output_References): Do no suppress a read reference at the same location as an immediately preceeding modify-reference, to handle properly in-out actuals. 2011-08-01 Tristan Gingold * env.c (__gnat_setenv) [VMS]: Refine previous change. 2011-08-01 Quentin Ochem * i-cstrin.adb (New_String): Changed implementation, now uses only the heap to compute the result. 2011-08-01 Robert Dewar * atree.ads: Minor reformatting. 2011-08-01 Emmanuel Briot * g-expect.adb (Get_Command_Output): Fix memory leak. 2011-08-01 Geert Bosch * cstand.adb (P_Float_Type): New procedure to print the definition of predefined fpt types. (P_Mixed_Name): New procedure to print a name using mixed case (Print_Standard): Use P_Float_Type for printing floating point types * einfo.adb (Machine_Emax_Value): Add preliminary support for quad precision IEEE float. 2011-08-01 Thomas Quinot * sem_ch3.adb: Minor reformatting. 2011-08-01 Ed Schonberg * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is the completion of a generic function, insert the new body rather than rewriting the original. 2011-08-01 Yannick Moy * sinfo.ads, errout.ads: Typos in comments. 2011-08-01 Robert Dewar * par-endh.adb: Minor reformatting. 2011-08-01 Robert Dewar * aspects.ads, aspects.adb: Add aspects for library unit pragmas (Pre_Post_Aspects): New subtype. * par-ch12.adb (P_Generic): New syntax for aspects in packages * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter * par-ch7.adb (P_Package): Remove Decl parameter (P_Package): Handle new syntax for aspects (before IS) * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle new aspect syntax (P_Task_Definition): Remove Decl parameter, handle new aspect syntax * par.adb (P_Aspect_Specifications): Add Semicolon parameter (P_Package): Remove Decl parameter * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit aspects * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect specs * sem_util.ads, sem_util.adb (Static_Boolean): New function * sinfo.ads: Document new syntax for aspects in packages etc. * sprint.adb: Handle new syntax of aspects before IS in package 2011-08-01 Thomas Quinot * atree.ads: Minor reformatting. * sem_prag.adb: Minor reformatting. 2011-08-01 Robert Dewar * exp_util.adb (Insert_Actions): Fix error in handling Actions for case expr alternative. 2011-08-01 Ed Schonberg * sem_ch12.adb: Fix typo. 2011-08-01 Geert Bosch * sem_prag.adb (Check_No_Link_Name): New procedure. (Process_Import_Or_Interface): Use Check_No_Link_Name. * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float) instead of Standard_Long_Long_Float_Size global. Preparation for eventual removal of per type constants. * exp_util.ads (Get_Stream_Size): New function returning the stream size value of subtype E. * exp_util.adb (Get_Stream_Size): Implement new function. * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size function. * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size * einfo.adb: (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats 2011-08-01 Geert Bosch * cstand.adb: Fix comments. * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit count of arguments. 2011-08-01 Robert Dewar * exp_ch4.adb, sem_cat.adb: Minor reformatting. 2011-08-01 Geert Bosch * atree.ads: Fix comment. 2011-08-01 Robert Dewar * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec. * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name. * par.adb: Add with for Namet.Sp. * par-tchk.adb: Minor reformatting. 2011-08-01 Vincent Celier * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name of the init procedure of a SAL. * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name): New procedure. 2011-08-01 Thomas Quinot * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor reformatting. 2011-08-01 Richard Kenner * adaint.c (__gnat_file_time_name_attr): Get rid of warning. 2011-08-01 Thomas Quinot * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function conformant with its spec (return True only for types that have an overriding Initialize primitive operation that prevents them from having preelaborable initialization). * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable initialization for controlled types in Ada 2005 or later mode. 2011-08-01 Robert Dewar * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition, Postcondition. (Same_Aspect): New function. * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect Type_Invariant, Precondition, Postcondition. * snames.ads-tmpl: Add Name_Type_Invariant. 2011-08-01 Robert Dewar * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point here. (Freeze_All_Ent): Fix error in handling inherited aspects. * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is already analyzed, but don't skip entire processing of a declaration, that's wrong in some cases of declarations being rewritten. (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects. Don't delay for integer, string literals Treat predicates in usual manner for delay, remove special case code, not needed. (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point (Build_Predicate_Function): Update saved expression in aspect (Build_Invariant_Procedure): Update saved expression in aspect * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization of replacement of discriminant references if the reference is simple. 2011-08-01 Robert Dewar * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate. * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for Static_Predicate and Dynamic_Predicate. (Build_Predicate_Function): Add processing for Static_Predicate and Dynamic_Predicate. * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag (From_Static_Predicate): New flag * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate 2011-08-01 Robert Dewar * usage.adb: Documentation cleanup for Ada version modes in usage. * expander.adb: Minor reformatting. 2011-08-01 Robert Dewar * atree.ads: Minor comment fix. * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads, a-witeio.ads, sem_prag.adb: Minor reformatting. 2011-08-01 Doug Rupp * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure pointers. Use descrip.h header file for convenience. Add some comments. 2011-08-01 Robert Dewar * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point (Freeze_All): Call Check_Aspect_At_End_Of_Declarations * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point): New procedure. (Check_Aspect_At_End_Of_Declarations): New procedure (Analye_Aspect_Specification): Minor changes for above procedures * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect specification node as well. 2011-08-01 Pascal Obry * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special Windows files. Use GetFilesAttributes() in this case to check for file existence instead of returning with an error code. 2011-08-01 Vincent Celier * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when High is above Source length. 2011-08-01 Robert Dewar * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment. 2011-08-01 Robert Dewar * aspects.ads (Boolean_Aspects): New subtype. * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects for derived types in cases where the parent type and derived type have aspects. * freeze.adb (Freeze_Entity): Fix problems in handling derived type with aspects when parent type also has aspects. (Freeze_Entity): Deal with delay of boolean aspects (must evaluate boolean expression at this point). * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in accordance with final decision on the Ada 2012 feature. * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag. 2011-08-01 Matthew Heaney * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector. 2011-08-01 Pascal Obry * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Fix Replace_Slice when High is above current string size. (Replace_Slice): Fix DL computation when High is above current string length. 2011-08-01 Gary Dismukes * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired. 2011-08-01 Matthew Heaney * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child of node. 2011-08-01 Pascal Obry * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor reformatting. 2011-08-01 Ed Schonberg * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named access to protected subprograms in generic bodies. * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a protected type, indicate that the convention of the subprogram is Convention_Protected, because it may be used in subsequent declarations within the protected declaration. 2011-08-01 Vincent Celier * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init" and "final" procedures when the name of the library is "ada", to avoid duplicate symbols "adainit" and "adafinal" in executables. 2011-08-01 Ed Schonberg * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a quantified expression that appears within a postcondition and uses the Ada2012 'Result attribute. 2011-07-28 Rainer Orth * init.c (__gnat_error_handler): Cast reason to int. (__gnat_install_handler): Explain sa_sigaction use. 2011-07-24 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : If the subprogram has copy-in copy-out parameters, try to promote the mode of the return type if it is passed in registers. 2011-07-24 Eric Botcazou * gcc-interface/utils2.c (build_binary_op) : Do not mark the left operand as addressable. 2011-07-24 Eric Botcazou * gcc-interface/gigi.h (build_function_stub): Remove. (build_return_expr): Likewise. (convert_vms_descriptor): Declare. * gcc-interface/utils.c (convert_vms_descriptor): Make global. (build_function_stub): Move to... * gcc-interface/utils2.c (build_return_expr): Move to... * gcc-interface/trans.c (build_function_stub): ...here. (build_return_expr): ...here. (Subprogram_Body_to_gnu): Add local variable for language_function. Disconnect the parameter attributes cache, if any, once done with it. Call end_subprog_body only after setting the end_locus. Build the stub associated with the function, if any, at the very end. (gnat_to_gnu) : Remove couple of useless local variables and streamline control flow. 2011-07-23 Arnaud Charlet PR ada/49819 * gcc-interface/Makefile.in (powerpc-linux): Remove reference to g-trasym-dwarf.adb. 2011-07-22 Rainer Orth PR bootstrap/49794 * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler): Assign to act.sa_sigaction. * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast current->return_address to char * before arithmetic. 2011-07-22 Rainer Orth * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation. Correct argument types. Extract code from reason. (__gnat_install_handler): Assign to act.sa_sigaction. 2011-07-21 Eric Botcazou * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to... (GNAT1_OBJS): ...here. 2011-07-15 Eric Botcazou PR ada/48711 * g-socthi-mingw.adb (Fill): Fix formatting. * gcc-interface/gigi.h: Move around comment. 2011-07-14 John David Anglin PR ada/46350 * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast. 2011-07-14 Florian Weimer PR ada/48711 * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL. 2011-07-13 Eric Botcazou * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit range comparison if Pmode is SImode. 2011-07-12 Laurent GUERBY Eric Botcazou * adadecode.c: Wrap up in extern "C" block. * adadecode.h: Likewise. * adaint.c: Likewise. Remove 'const' keyword. * adaint.h: Likewise. * argv.c: Likewise. * atree.h: Likewise. * cio.c: Likewise. * cstreams.c: Likewise. * env.c: Likewise. * exit.c: Likewise. * fe.h: Likewise. * final.c: Likewise. * init.c: Likewise. * initialize.c: Likewise. * link.c: Likewise. * namet.h: Likewise. * nlists.h: Likewise. * raise.c: Likewise. * raise.h: Likewise. * repinfo.h: Likewise. * seh_init.c: Likewise. * targext.c: Likewise. * tracebak.c: Likewise. * uintp.h: Likewise. * urealp.h: Likewise. * xeinfo.adb: Wrap up generated C code in extern "C" block. * xsinfo.adb: Likewise. * xsnamest.adb: Likewise. * gcc-interface/gadaint.h: Wrap up in extern "C" block. * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block. * gcc-interface/misc.c: Likewise. * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER. (GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o and ada/targext.o here... (GNAT_ADA_OBJS): ...and not here. (GNAT1_ADA_OBJS): Add ada/b_gnat1.o. (GNATBIND_OBJS): Reorder. 2011-07-07 Richard Henderson * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call dwarf2out_frame_init. 2011-07-07 Eric Botcazou * gcc-interface/misc.c (gnat_init): Tweak previous change. 2011-07-07 Rainer Orth PR target/39150 * gcc-interface/Makefile.in: Handle x86_64-solaris2. 2011-07-06 Richard Guenther * gcc-interface/misc.c (gnat_init): Merge calls to build_common_tree_nodes and build_common_tree_nodes_2. Re-initialize boolean_false_node. 2011-07-02 Eric Botcazou Olivier Hainque Nicolas Setton * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on the type according to the ARTIFICIAL_P parameter. (create_type_decl): Likewise. (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1. 2011-07-01 Eric Botcazou * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command. (gnatbind): Likewise. 2011-06-29 Rainer Orth * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL). 2011-06-18 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE local variable throughout. Remove useless call to Base_Type. (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout. Take it also into account for the volatileness of the field. Set the TREE_SIDE_EFFECTS flag as well in this case. Reorder some warnings. 2011-06-18 Eric Botcazou * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP on a dereference built for a by-ref object if it has an address clause. 2011-06-18 Eric Botcazou * einfo.ads (Address_Taken): Document use for the second argument of Asm_Input and Asm_Output attributes. * sem_attr.adb (Analyze_Attribute) : If the second argument is an entity name, then set Address_Taken on it. : Likewise. * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the Attr_Asm_Input and Attr_Asm_Output attributes explicitly. (gnat_to_gnu) : If an operand is going to end up in memory and is a CONST_DECL, retrieve its corresponding VAR_DECL. 2011-06-16 Joern Rennecke PR middle-end/46500 * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args. 2011-06-14 Joseph Myers * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o. (ada/utils.o): Update dependencies. * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add ../../../libcpp/libcpp.a. * gcc-interface/utils.c: Include common/common-target.h. (process_attributes): Use targetm_common.have_named_sections. 2011-06-07 Richard Guenther * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call set_sizetype. 2011-06-06 Eric Botcazou * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the TREE_THIS_NOTRAP flag. 2011-06-06 Eric Botcazou * gcc-interface/utils2.c (gnat_stabilize_reference) : Fix thinko. 2011-06-06 Eric Botcazou * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred constants whose full view has discriminants specially. 2011-06-06 Eric Botcazou * gcc-interface/utils.c: Include diagnostic.h. (gnat_write_global_declarations): Output debug information for all global type declarations before finalizing the compilation unit. * gcc-interface/Make-lang.in (ada/utils.o): Add dependency. 2011-05-25 Jakub Jelinek * gcc-interface/utils.c (def_fn_type): Remove extra va_end. 2011-05-25 Kai Tietz * adaint.c (__gnat_to_canonical_file_list_next): Use array initialization instead of const/none-const pointer assignment. 2011-05-24 Joseph Myers * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include $(EXTRA_GNAT1_OBJS). (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS). (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove. (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a. * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon-target.a instead of prefix.o. 2011-05-21 Joseph Myers PR ada/49097 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS). 2011-05-20 Joseph Myers * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o. * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a instead of version.o. 2011-05-18 Kai Tietz * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use boolean_false_node instead of integer_zero_node. (convert_with_check): Likewise. * gcc-interface/decl.c (choices_to_gnu): Likewise. 2011-05-12 Eric Botcazou * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the type of the parameter is an unconstrained array, convert the actual to the type of the formal in the In Out and Out cases as well. 2011-05-11 Nathan Froyd * gcc-interface/utils.c (def_fn_type): Don't call build_function_type; call build_function_type_array or build_varargs_function_type_array instead. (create_subprog_type): Don't call build_function_type; call build_function_type_vec instead. 2011-05-11 Nathan Froyd * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL. (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL. (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL. 2011-05-07 Eric Botcazou * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces. * gcc-interface/gigi.h (global_bindings_p): Adjust prototype. * gcc-interface/utils.c (global_bindings_p): Return bool and simplify. 2011-05-05 Nathan Froyd * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label. 2011-05-05 Nathan Froyd * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators instead of accessing TYPE_ARG_TYPES directly. * gcc-interface/utils.c (handle_nonnull_attribute): Likewise. 2011-05-05 Eric Botcazou PR ada/48844 * gcc-interface/gigi.h (get_variant_part): Declare. * gcc-interface/decl.c (get_variant_part): Make global. * gcc-interface/utils2.c (find_common_type): Do not return T1 if the types have the same constant size, are record types and T1 has a variant part while T2 doesn't. 2011-05-05 Eric Botcazou * gcc-interface/utils.c (begin_subprog_body): Do not call get_pending_sizes. (end_subprog_body): Likewise. 2011-05-04 Richard Guenther * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to int_const_binop. (pos_to_constructor): Likewise. 2011-05-03 Nathan Froyd Eric Botcazou * gcc-interface/trans.c (gigi): Call build_function_type_list instead of build_function_type. Adjust calls to... (build_raise_check): ...this. Do not take a void_tree parameter. Call build_function_type_list instead of build_function_type. Fix head comment and swap couple of conditional blocks. 2011-04-30 Eric Botcazou * gnatvsn.ads (Library_Version): Bump to 4.7. (Current_Year): Bump to 2011. 2011-04-29 Michael Matz * gcc-interface/misc.c (gnat_handle_option): Set warn_maybe_uninitialized. 2011-04-23 Gerald Pfeifer * gnat_ugn.texi (Complexity Metrics Control): Update link to the Watson/McCabe paper. 2011-04-23 Jim Meyering * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/ 2011-04-22 Eric Botcazou * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE onto the new type. 2011-04-22 Eric Botcazou * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG parameter. * gcc-interface/utils.c (create_subprog_decl): Likewise. Set DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly. * gcc-interface/decl.c (gnat_to_gnu_entity) : Add ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl. : Do not set flags on the reused DECL node coming from an alias. Set DECL_IGNORED_P on the DECL node built for subprograms if they don't need debug info here... * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here. (gigi): Adjust calls to create_subprog_decl. (build_raise_check): Likewise. (establish_gnat_vms_condition_handler): Likewise. (Compilation_Unit_to_gnu): Likewise. (gnat_to_gnu): Likewise. 2011-04-21 Eric Botcazou * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define. (NO_REORDER_ADAFLAGS): New variable. (EXTRA_GNATTOOLS): Always define. (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h. Clean up and adjust list of files compiled with special options. * gcc-interface/Make-lang.in: Likewise. (ada/decl.o): Cosmetical change. (ada/misc.o): Remove dependency on $(PLUGIN_H). 2011-04-20 Jim Meyering * initialize.c (__gnat_initialize): Remove useless if-before-free. 2011-04-17 Eric Botcazou * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with $(CFLAGS) on the link line. 2011-04-17 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : Declare the padded type built for the return type if it is unconstrained. 2011-04-14 Nathan Froyd * gcc-interface/utils.c (gnat_poplevel): Use block_chainon. 2011-04-12 Nathan Froyd * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON before calling TREE_CHAIN. * gcc-interface/misc.c (gnat_init_ts): New function. (LANG_HOOKS_INIT_TS): Define. 2011-04-12 Martin Jambor * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node instead of cgraph_node. 2011-04-08 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : Set minimum alignment on fields of the RETURN type built for the Copy-In Copy-Out mechanism. 2011-04-08 Eric Botcazou * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers of aggregate types that contain a placeholder. 2011-04-08 Nathan Froyd * gcc-interface/utils.c (handle_sentinel_attribute): Don't use TYPE_ARG_TYPES. (handle_type_generic_attribute): Likewise. 2011-04-04 Eric Botcazou PR ada/47163 * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change. 2011-04-04 Kai Tietz PR ada/47163 * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets to flag value. 2011-04-02 Eric Botcazou * gcc-interface/utils2.c (build_allocator): In the unconstrained array type case, do not strip a padding type around the array type. 2011-04-02 Eric Botcazou * gcc-interface/utils.c (update_pointer_to): Finalize named pointer types. 2011-04-02 Eric Botcazou * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete. * gcc-interface/misc.c (gnat_handle_option): Remove special handling code for -feliminate-unused-debug-types. (gnat_post_options): Likewise. 2011-04-02 Eric Botcazou * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a distinct copy. 2011-04-02 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the DECL_ARTIFICIAL flag on enumeration types. 2011-04-02 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not make fat pointer types artificial unconditionally. : Attach the base array type as a parallel type if it isn't artificial. 2011-04-02 Eric Botcazou * gcc-interface/gigi.h (get_dummy_type): Declare. (build_dummy_unc_pointer_types): Likewise. (finish_fat_pointer_type): Likewise. * gcc-interface/decl.c (gnat_to_gnu_entity) : If a dummy fat pointer type has been built, complete it in place. : Call build_dummy_unc_pointer_types to build dummy fat and thin pointers. Remove useless variable. (finish_fat_pointer_type): Make global and move to... * gcc-interface/utils.c (finish_fat_pointer_type): ...here. (get_dummy_type): New function. (build_dummy_unc_pointer_types): Likewise. (gnat_pushdecl): Propage the name to the anonymous variants only. (update_pointer_to): Only adjust the pointer types in the unconstrained array case. 2011-04-02 Eric Botcazou * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag. * gcc-interface/decl.c (gnat_to_gnu_entity) : Set it if this is a Taft amendment type and the full declaration is available. * gcc-interface/trans.c (process_type): Likewise. If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P. (process_freeze_entity): Likewise. * gcc-interface/utils.c (dummy_global): New static variable. (gnat_write_global_declarations): If there are types declared as used at the global level, insert them in the global hash table. 2011-04-02 Eric Botcazou * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param. * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct copy. (record_builtin_type): Add ARTIFICIAL_P parameter. Set DECL_ARTIFICIAL flag of the type accordingly. * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type. 2011-04-02 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : Defer finalizing types when updating the pointers to the designated type. : Finalize the deferred types even if we didn't defer processing of incomplete types in this invocation. 2011-04-01 Olivier Hainque Nicolas Setton Eric Botcazou * gcc-interface/misc.c (gnat_descriptive_type): New function. (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type. 2011-03-28 Kai Tietz * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native Windows targets. (EH_MECHANISM): Use GCC exception mechanism for native Windows targets. * system-mingw.ads (System): Change ZCX_By_Default default to True. * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype. 2011-03-28 Tristan Gingold PR ada/44431 * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c. Use ada output of gnatbind. (ada/b_gnatb.adb): Ditto. (ada/b_gnat1.o, ada/b_gnatb.o): New rules. (ada.mostlyclean, ada.stage1) (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile) (ada.stagefeedback): Adjust. * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c. Use ada output of gnatbind. (b_gnatm.adb): Ditto. (b_gnatl.o, b_gnatm.o): New rules. 2011-03-26 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : Create TYPE_DECL for the padded type built to support a specified size or alignment. 2011-03-26 Eric Botcazou * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment. * gcc-interface/decl.c (gnat_to_gnu_entity) : Defer unconditionally to the end of the unit when the designated type is limited_with'ed. : Rename local variable. Attempt to un-defer types only and do it for limited_with'ed types as well. (finalize_from_with_types): Adjust comment. Rename variable and tidy. * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT consistently and remove redundant call to finalize_from_with_types. 2011-03-26 Eric Botcazou * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to subprograms without a previous spec declared in the same unit. * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined subprograms at the end of the unit instead of at the beginning. * gcc-interface/utils.c (create_subprog_decl): Check that the entity isn't public for the special handling of non-inline functions nested inside inline external functions. 2011-03-25 Jeff Law * gcc-interface/utils.c (def_fn_type): Add missing va_end. 2011-03-24 Eric Botcazou * einfo.ads (Size_Depends_On_Discriminant): Adjust description. * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure to compute Set_Size_Depends_On_Discriminant. (Layout_Type): Call it on array types in back-end layout mode. * sem_util.adb (Requires_Transient_Scope): Return true for array types only if the size depends on the value of discriminants. * gcc-interface/utils2.c (build_binary_op) : Use the RHS type if the RHS is a call to a function that returns an unconstrained type with default discriminant. 2011-03-24 Eric Botcazou * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of non-conversion to the nominal result type at the end. 2011-03-23 Eric Botcazou * gcc-interface/trans.c (create_temporary): New function taken from... (create_init_temporary): ...here. Call it. (call_to_gnu): Create the temporary for the return value early, if any. Create it for a function with copy-in/copy-out parameters if there is no target; in other cases of copy-in/copy-out, use another temporary. Push the new binding level lazily. Add and rename local variables. 2011-03-23 Eric Botcazou * gcc-interface/decl.c (validate_size): Improve comments and tweak error message. (set_rm_size): Likewise. 2011-03-23 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : Create TYPE_DECL for the padded type built in order to support a specified alignment. Fix incorrect formatting. 2011-03-21 Eric Botcazou PR bootstrap/48216 * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL. 2011-03-21 Eric Botcazou * gcc-interface/decl.c (components_to_record): Add REORDER parameter, rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter to the end of the list. Adjust recursive call. Rename local variable. If REORDER is true, reorder components of the record type. (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to components_to_record and adjust the parameter list. 2011-03-21 Eric Botcazou * gcc-interface/decl.c (elaborate_expression_1): When optimization is disabled, use the variable for bounds of loop iteration scheme. 2011-03-21 Kai Tietz PR target/12171 * gcc-interface/utils.c (gnat_internal_attribute_table): Add column. 2011-03-17 Eric Botcazou * gcc-interface/decl.c (elaborate_expression_1): Try harder to find out whether the expression is read-only. Short-circuit placeholder case and rename a couple of local variables. 2011-03-17 Eric Botcazou * gcc-interface/gigi.h (smaller_form_type_p): Declare. * gcc-interface/trans.c (smaller_form_type_p): Make global and move... * gcc-interface/utils.c (smaller_form_type_p): ...to here. (convert): Deal with conversions from a smaller form type specially. 2011-02-14 Eric Botcazou * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and its argument, except for the special -I- switch. 2011-02-12 Gerald Pfeifer * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to "Ada Issues". 2011-02-08 Eric Botcazou * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs. 2011-02-03 Eric Botcazou * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of GNAT_FORMAL. * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to... * gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPE instead of GNAT_FORMAL. Protect the expression against multiple uses. Do not generate the check directly, instead instantiate the template check present in the descriptor. (make_descriptor_field): Move around. (build_vms_descriptor32): Build a template check in the POINTER field. (build_vms_descriptor): Remove useless suffixes. * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call. 2011-01-26 Eric Botcazou PR bootstrap/47467 * targext.c: Include target files if IN_RTS is defined. 2011-01-26 Richard Guenther PR bootstrap/47467 * targext.c: Include config.h. * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H) dependency. 2011-01-04 Pascal Obry Eric Botcazou * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit. 2011-01-04 Eric Botcazou * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the end-of-case on the end label and its associated gotos, if any. 2011-01-04 Eric Botcazou * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the expressions of the parameter cache within the statement group of the CICO mechanism. 2011-01-04 Olivier Hainque Eric Botcazou * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default. (set_end_locus_from_node): New function. (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we make and the function end_locus. (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus for the elaboration subprogram. (set_gnu_expr_location_from_node) : Use it to attempt to set the end_locus of the expression as well. 2011-01-04 Eric Botcazou PR ada/47131 * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make variables that are referenced in exception handlers volatile. Copyright (C) 2011 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.