aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
AgeCommit message (Collapse)AuthorFilesLines
2016-04-19sem_util.adb (Copy_Node_With_Replacement): use Set_Comes_From_Source instead ↵Arnaud Charlet3-33/+25
of directly manipulating internals of the... 2016-04-19 Arnaud Charlet <charlet@adacore.com> * sem_util.adb (Copy_Node_With_Replacement): use Set_Comes_From_Source instead of directly manipulating internals of the node table. * sem_util.adb (Within_Scope): refactored to remove duplicated code. * sem_aux.adb (Get_Rep_Pragma, Subprogram_Body_Entity, Subprogram_Spec): declare variables that do not change as constants and initialize them in the declaration. (Get_Rep_Pragma, Subprogram_Body_Entity, Subprogram_Spec): declare variables that do not change as constants and initialize them in the declaration. From-SVN: r235193
2016-04-19[multiple changes]Arnaud Charlet5-13/+63
2016-04-19 Ed Schonberg <schonberg@adacore.com> * sem_res.adb (Resolve_Entry_Call): If the entry has preconditions it is rewritten by means of a wrapper that incorporates the original call. Before rewriting generate a reference to the entry being called to prevent spurious warnings and provide correct cross-reference information. 2016-04-19 Hristian Kirtchev <kirtchev@adacore.com> * sem_disp.adb (Check_Dispatching_Context): Code cleanup. Add local constant Scop. Ignore any internally generated loops when performing the check concerning an abstract subprogram call without a controlling argument. * sem_util.ads, sem_util.adb (Current_Scope_No_Loops): New routine. From-SVN: r235192
2016-04-19[multiple changes]Arnaud Charlet10-1235/+166
2016-04-19 Bob Duff <duff@adacore.com> * sem_elab.adb (Check_A_Call): There are cases where we have No (Ent) after the Alias loop, even when there was no previous error, so we can't assert that there was an error. 2016-04-19 Ed Schonberg <schonberg@adacore.com> * sem_attr.adb (Analyze_Access_Attribute, OK_Self_Reference): Reject use of type name as a prefix to 'access within an aggregate in a context that is not the declarative region of a type. 2016-04-19 Vincent Celier <celier@adacore.com> * gnatcmd.adb: Make "gnat ls -P" invoke gprls Make "gnat bind -P" invoke "gprbuild -b" Make "gnat link -P" invoke "gprbuild -l" Fail if the invocation is "gnat find -P" or "gnat xref -P" Remove anything related to project files * g-mbdira.adb: minor whitespace cleanup * g-spipat.adb: minor removal of extra spaces after closing paren 2016-04-19 Ed Schonberg <schonberg@adacore.com> * exp_ch6.adb (Expand_Actuals): If post-statements are present and the enclosing context is a function call or indexing, build an Expression_With_Actions for the call. 2016-04-19 Hristian Kirtchev <kirtchev@adacore.com> * lib-writ.adb (Write_With_Lines): Code cleanup. Do not generate a with line for an ignored Ghost unit. * sem_ch7.adb (Analyze_Package_Declaration): Add local constant Par. A child package is Ghost when its parent is Ghost. * sem_prag.adb (Analyze_Pragma): Pragma Ghost can now apply to a subprogram declaration that acts as a compilation unit. From-SVN: r235191
2016-04-18tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.Michael Matz3-43/+62
* tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount. (SET_TYPE_ALIGN, SET_DECL_ALIGN): New. * tree-core.h (tree_type_common.align): Use bit-field. (tree_type_common.spare): New. (tree_decl_common.off_align): Make smaller. (tree_decl_common.align): Use bit-field. * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN. * omp-low.c (install_var_field): Use SET_DECL_ALIGN. (scan_sharing_clauses): Ditto. (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN. (omp_finish_file): Ditto. * stor-layout.c (do_type_align): Use SET_DECL_ALIGN. (layout_decl): Ditto. (relayout_decl): Ditto. (finalize_record_size): Use SET_TYPE_ALIGN. (finalize_type_size): Ditto. (finish_builtin_struct): Ditto. (layout_type): Ditto. (initialize_sizetypes): Ditto. * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN. * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN. (lookup_field_for_decl): Use SET_DECL_ALIGN. (get_chain_field): Ditto. (get_trampoline_type): Ditto. (get_nl_goto_field): Ditto. * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use SET_DECL_ALIGN. (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN. * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN. * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN. (build_qualified_type): Use SET_TYPE_ALIGN. (build_aligned_type, build_range_type_1): Ditto. (build_atomic_base): Ditto. (build_common_tree_nodes): Ditto. * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN. (expand_one_stack_var_at): Ditto. * coverage.c (build_var): Use SET_DECL_ALIGN. * except.c (init_eh): Ditto. * function.c (assign_parm_setup_block): Ditto. * symtab.c (increase_alignment_1): Ditto. * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto. * tree-vect-stmts.c (ensure_base_align): Ditto. * varasm.c (align_variable): Ditto. (assemble_variable): Ditto. (build_constant_desc): Ditto. (output_constant_def_contents): Ditto. * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN. * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN. * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto. * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto. * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN. ada/ * gcc-interface/decl.c (gnat_to_gnu_entity): Use SET_TYPE_ALIGN. (gnat_to_gnu_field): Ditto. (components_to_record): Ditto. (create_variant_part_from): Ditto. (copy_and_substitute_in_size): Ditto. (substitute_in_type): Ditto. * gcc-interface/utils.c (make_aligning_type): Use SET_TYPE_ALIGN. (make_packable_type): Ditto. (maybe_pad_type): Ditto. (finish_fat_pointer_type): Ditto. (finish_record_type): Ditto and use SET_DECL_ALIGN. (rest_of_record_type_compilation): Use SET_TYPE_ALIGN. (create_field_decl): Use SET_DECL_ALIGN. c-family/ * c-common.c (handle_aligned_attribute): Use SET_TYPE_ALIGN and SET_DECL_ALIGN. c/ * c-decl.c (merge_decls): Use SET_DECL_ALIGN and SET_TYPE_ALIGN. (grokdeclarator, parser_xref_tag, finish_enum): Use SET_TYPE_ALIGN. cp/ * class.c (build_vtable): Use SET_DECL_ALIGN and SET_TYPE_ALIGN. (layout_class_type): Ditto. (build_base_field): Use SET_DECL_ALIGN. (fixup_attribute_variants): Use SET_TYPE_ALIGN. * decl.c (duplicate_decls): Use SET_DECL_ALIGN. (record_unknown_type): Use SET_TYPE_ALIGN. (cxx_init_decl_processing): Ditto. (copy_type_enum): Ditto. (grokfndecl): Use SET_DECL_ALIGN. (copy_type_enum): Use SET_TYPE_ALIGN. * pt.c (instantiate_class_template_1): Use SET_TYPE_ALIGN. (tsubst): Ditto. * tree.c (cp_build_qualified_type_real): Use SET_TYPE_ALIGN. * lambda.c (maybe_add_lambda_conv_op): Use SET_DECL_ALIGN. * method.c (implicitly_declare_fn): Use SET_DECL_ALIGN. * rtti.c (emit_tinfo_decl): Ditto. fortran/ * trans-io.c (gfc_build_io_library_fndecls): Use SET_TYPE_ALIGN. * trans-common.c (build_common_decl): Use SET_DECL_ALIGN. * trans-types.c (gfc_add_field_to_struct): Use SET_DECL_ALIGN. go/ * go-gcc.cc (Gcc_backend::implicit_variable): Use SET_DECL_ALIGN. java/ * class.c (add_method_1): Use SET_DECL_ALIGN. (make_class_data): Ditto. (emit_register_classes_in_jcr_section): Ditto. * typeck.c (build_java_array_type): Ditto. objc/ * objc-act.c (objc_build_struct): Use SET_DECL_ALIGN. libcc1/ * plugin.cc (plugin_finish_record_or_union): Use SET_TYPE_ALIGN. From-SVN: r235172
2016-04-18[multiple changes]Arnaud Charlet27-110/+225
2016-04-18 Arnaud Charlet <charlet@adacore.com> * einfo.adb (Overridden_Operation): assert that function is called for valid arguments. * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, sem_type.adb, s-osinte-vxworks.ads, a-ngcefu.adb, sem_ch10.adb, einfo.ads, sem_prag.adb, sem_ch12.adb, sem.adb, i-cobol.ads, freeze.adb, sem_util.adb, a-chtgop.ads, s-rannum.adb, exp_ch6.adb, s-bignum.adb, s-osinte-freebsd.ads, par-ch5.adb, a-chtgbo.ads, a-cofove.adb: No space after closing parenthesis except where required for layout. * sem_res.adb: Minor reformatting. 2016-04-18 Arnaud Charlet <charlet@adacore.com> * exp_ch4.adb (Expand_N_Case_Expression): Convert into a case statement when relevant. 2016-04-18 Bob Duff <duff@adacore.com> * a-cuprqu.adb (Enqueue): Properly handle the case where the new element has a unique priority. 2016-04-18 Tristan Gingold <gingold@adacore.com> * adaint.h: Define stat structures and functions for iOS simulator. From-SVN: r235146
2016-04-18[multiple changes]Arnaud Charlet6-6/+52
2016-04-18 Arnaud Charlet <charlet@adacore.com> * sem_res.adb (Resolve_Entry_Call): reset Is_Overloaded flag after resolving calls to overloaded protected operations. * exp_spark.adb (Expand_SPARK): call Qualify_Entity_Names for tasking nodes, i.e. protected types, task types and entries. * exp_ch4.adb (Expand_N_If_Expression): Refine previous change in case of an unconstrained type. 2016-04-18 Yannick Moy <moy@adacore.com> * sem_eval.adb, sem_eval.ads (Check_Non_Static_Context): Add comment to document usage of subprogram in GNATprove. From-SVN: r235145
2016-04-18[multiple changes]Arnaud Charlet5-21/+62
2016-04-18 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Analyze_Pragma, case Test_Case): Improve error message for wrong placement of aspect Test_Case. 2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> * einfo.ads: Update the documentation of attribute Renamed_Object. * exp_spark.adb (Expand_Potential_Renaming): Reimplemented. 2016-04-18 Gary Dismukes <dismukes@adacore.com> * exp_ch4.adb (Optimize_Length_Comparison): Return immediately in the case of AAMP (same as for use of the -gnatd.P switch) to suppress this optimization, which avoids creating a dependence on the 64-bit arithmetic package. From-SVN: r235144
2016-04-18Minor editing.Arnaud Charlet1-1/+1
From-SVN: r235143
2016-04-18[multiple changes]Arnaud Charlet3-4/+15
2016-04-18 Arnaud Charlet <charlet@adacore.com> * exp_ch4.adb: Update comment. 2016-04-18 Eric Botcazou <ebotcazou@adacore.com> * exp_ch6.adb (Expand_Call): Make sure instantiations are registered only once as pending here. From-SVN: r235142
2016-04-18[multiple changes]Arnaud Charlet8-69/+254
2016-04-18 Arnaud Charlet <charlet@adacore.com> * exp_ch4.adb, gnat1drv.adb, opt.ads, sem_res.adb (Minimize_Expression_With_Actions): New flag. (Adjust_Global_Switches): Set Minimize_Expression_With_Actions when generating C. (Resolve_Short_Circuit): Redo previous change using Minimize_Expression_With_Actions. (Expand_N_If_Expression, Expand_Short_Circuit_Operator): Restore old code to avoid Expression_With_Actions when Minimize_Expression_With_Actions is set. 2016-04-18 Vincent Celier <celier@adacore.com> * s-os_lib.adb (Non_Blocking_Spawn, version with Stdout_File and Stderr_File): Close local file descriptors when no longer needed. 2016-04-18 Ed Schonberg <schonberg@adacore.com> * sem_ch5.adb (Analyze_Iterator_Specification): Remove SPARK mode check that the type of the cursor in an iteration over a formal container is not volatile. The proper check on the element type is done elsewhere. 2016-04-18 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Process_Formals): Do not set a delay freeze on a subprogram that returns a class-wide type, if the subprogram is a compilation unit, because otherwise gigi will treat the subprogram as external, leading to link errors. From-SVN: r235141
2016-04-18sem_res.adb (Resolve_Short_Circuit): Do not use expression-with-actions when ↵Arnaud Charlet2-2/+9
generating C. 2016-04-18 Arnaud Charlet <charlet@adacore.com> * sem_res.adb (Resolve_Short_Circuit): Do not use expression-with-actions when generating C. From-SVN: r235140
2016-04-18[multiple changes]Arnaud Charlet5-25/+97
2016-04-18 Yannick Moy <moy@adacore.com> * sem_util.adb (Apply_Compile_Time_Constraint_Error): Do not generate raise node in GNATprove mode. 2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> * s-fileio.adb: Minor reformatting. * sem_prag.adb (Analyze_Input_Item): Add local variable Input_OK. Do not consider mappings of generic formal parameters to actuals. 2016-04-18 Ed Schonberg <schonberg@adacore.com> * sem_ch5.adb (Get_Cursor_Type): If iterator type is a derived type, the cursor is declared in the scope of the parent type. (Analyze_Parameter_Specification): A qualified expression with an iterator type indicates an iteration over a container (explicit or implicit). From-SVN: r235139
2016-04-18[multiple changes]Arnaud Charlet10-29/+126
2016-04-18 Arnaud Charlet <charlet@adacore.com> * osint-c.ads, osint-c.adb (Delete_C_File, Delete_H_File): New. * gnat1drv.adb (Gnat1drv): Delete old C files before regenerating them. * debug.adb: Reserve -gnatd.4 to force generation of C files. 2016-04-18 Yannick Moy <moy@adacore.com> * sem_eval.adb (Eval_Arithmetic_Op): Do not issue error on static division by zero, instead possibly issue a warning. * sem_res.adb (Resolve_Arithmetic_Op): Do not issue error on static division by zero, instead add check flag on original expression. * sem_util.adb, sem_util.ads (Compile_Time_Constraint_Error): Only issue error when both SPARK_Mode is On and Warn is False. 2016-04-18 Yannick Moy <moy@adacore.com> * checks.adb (Apply_Scalar_Range_Check): Force warning instead of error when SPARK_Mode is On, on index out of bounds, and set check flag for GNATprove. From-SVN: r235138
2016-04-18[multiple changes]Arnaud Charlet3-43/+79
2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Check_In_Out_States.Check_Constituent_Usage): Update the comment on usage. Reimplemented. (Check_Input_States.Check_Constituent_Usage): Update the comment on usage. A Proof_In constituent can now refine an Input state as long as there is at least one Input constituent present. 2016-04-18 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Check_Inline_Pragma): Use the Sloc of the body id as the sloc of the entity in the generated subprogram declaration, to avoid spurious conformance errors when style checks are enabled. From-SVN: r235137
2016-04-18[multiple changes]Arnaud Charlet7-8/+138
2016-04-18 Ed Schonberg <schonberg@adacore.com> * sem_ch4.adb (Analyze_Selected_Component, Has_Dereference): Refine check on illegal calls to entities within a task body, when the entity is declared in an object of the same type. In a generic context there might be no explicit dereference but if the prefix includes an access type the construct is legal. 2016-04-18 Arnaud Charlet <charlet@adacore.com> * rtsfind.ads, rtsfind.adb (RE_Id, RE_Unit_Table): add RE_Default_Priority. 2016-04-18 Bob Duff <duff@adacore.com> * sem_prag.adb (Check_Arg_Is_Local_Name): Don't do the check if the pragma came from an aspect specification. 2016-04-18 Gary Dismukes <dismukes@adacore.com> * gnat1drv.adb, contracts.adb: Minor reformatting and wording fixes. 2016-04-18 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Analyze_Subprogram_Body_Helper): To suppress superfluous conformance check on an inlined body with a previous spec, use the fact that the generated declaration does not come from source. We must treat the entity as coming from source to enable some back-end inlining when pragma appears after the body. From-SVN: r235136
2016-04-18[multiple changes]Arnaud Charlet11-31/+107
2016-04-18 Gary Dismukes <dismukes@adacore.com> * lib-xref-spark_specific.adb, par-ch2.adb, errout.ads, exp_intr.adb: Minor reformatting and typo corrections. 2016-04-18 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb: Code cleanup. 2016-04-18 Thomas Quinot <quinot@adacore.com> * sem_ch13.adb: Minor reformatting and error message tweaking (remove extraneous spaces). 2016-04-18 Johannes Kanig <kanig@adacore.com> * gnat1drv.adb (Gnat1drv): Force loading of System unit for SPARK. 2016-04-18 Bob Duff <duff@adacore.com> * s-fileio.adb (Fopen_Mode): If Mode = Out_File, and the file exists, and it's a fifo, we use "w" as the open string instead of "r+". This is necessary to make a write to the fifo block until a reader is ready. 2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> * sem_attr.adb (Denote_Same_Function): Account for a special case where a primitive of a tagged type inherits a class-wide postcondition from a parent type. From-SVN: r235135
2016-04-18par-ch2.adb (P_Expression_Or_Reserved_Word): New routine.Hristian Kirtchev7-166/+294
2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> * par-ch2.adb (P_Expression_Or_Reserved_Word): New routine. (P_Pragma): Signal Scan_Pragma_Argument_Association when the use of reserved words is OK. (Scan_Pragma_Argument_Association): Add new formal Reserved_Words_OK and update the comment on usage. Code cleanup. Parse an expression or a reserved word in identifier form for pragmas Restriction_Warnings and Restrictions No_Use_Of_Attribute. * restrict.adb (Check_Restriction_No_Use_Of_Attribute): Reimplemented. (Check_Restriction_No_Use_Of_Pragma): Code cleanup. (Set_Restriction_No_Specification_Of_Aspect): Properly set the warning flag for an aspect. (Set_Restriction_No_Use_Of_Attribute): Properly set the warning flag for an attribute. (Set_Restriction_No_Use_Of_Entity): Update the parameter profile. (Set_Restriction_No_Use_Of_Pragma): Properly set the warning flag for a pragma. * restrict.ads (Check_Restriction_No_Use_Of_Attribute): Update the comment on usage. (Set_Restriction_No_Use_Of_Entity): Update the parameter profile. * sem_attr.adb (Analyze_Attribute): Check restriction No_Use_Of_Attribute. * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Check restriction No_Use_Of_Attribute before any rewritings have taken place. * sem_prag.adb (Analyze_Pragma): Check restriction No_Use_Of_Pragma before any rewritings have taken place. From-SVN: r235134
2016-04-18sem_ch6.adb (Is_Inline_Pragma): The pragma argument can be a selected ↵Bob Duff17-328/+421
component... 2016-04-18 Bob Duff <duff@adacore.com> * sem_ch6.adb (Is_Inline_Pragma): The pragma argument can be a selected component, which has no Chars field, so we need to deal with that case (use the Selector_Name). (Check_Inline_Pragma): We need to test Is_List_Member before calling In_Same_List, because in case of a library unit, they're not in lists, so In_Same_List fails an assertion. 2016-04-18 Bob Duff <duff@adacore.com> * namet.ads, namet.adb: Add an Append that appends a Bounded_String onto a Bounded_String. Probably a little more efficient than "Append(X, +Y);". Also minor cleanup. (Append_Decoded, Append_Decoded_With_Brackets, Append_Unqualified, Append_Unqualified_Decoded): Make sure these work with non-empty buffers. * casing.ads, casing.adb (Set_Casing): Pass a Bounded_String parameter, defaulting to Global_Name_Buffer. * errout.ads, errout.adb (Adjust_Name_Case): Pass a Bounded_String parameter, no default. * exp_ch11.adb (Expand_N_Raise_Statement): Use local Bounded_String instead of Global_Name_Buffer. * exp_intr.ads, exp_intr.adb (Write_Entity_Name): Rename it to Append_Entity_Name, and pass a Bounded_String parameter, instead of using globals. (Add_Source_Info): Pass a Bounded_String parameter, instead of using globals. (Expand_Source_Info): Use local instead of globals. * stringt.ads, stringt.adb (Append): Add an Append procedure for appending a String_Id onto a Bounded_String. (String_To_Name_Buffer, Add_String_To_Name_Buffer): Rewrite in terms of Append. * sem_prag.adb (Set_Error_Msg_To_Profile_Name): Adjust for new Adjust_Name_Case parameter. * erroutc.adb, uname.adb: Don't pass D => Mixed_Case to Set_Casing; that's the default. * lib-xref-spark_specific.adb (Add_SPARK_Scope): Pretend that calls to protected subprograms are entry calls; otherwise it is not possible to distinguish them from regular subprogram calls. From-SVN: r235129
2016-04-18[multiple changes]Arnaud Charlet5-5/+38
2016-04-18 Gary Dismukes <dismukes@adacore.com> * sem_ch13.adb (Has_Good_Profile): Improvement of error message. Now indicates subtype_mark of formal parameter rather than the formal's name, plus minor rewording. 2016-04-18 Pascal Obry <obry@adacore.com> * adaint.c, adaint.h, s-os_lib.ads: Add new routine Current_Process_Id. From-SVN: r235128
2016-04-18[multiple changes]Arnaud Charlet6-13/+21
2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> * stringt.adb, exp_ch6.adb, sem_ch13.adb: Minor reformatting. 2016-04-18 Gary Dismukes <dismukes@adacore.com> * par-ch4.adb, sem_prag.adb: Minor reformatting. From-SVN: r235127
2016-04-18sinput.ads, sinput.adb (Build_Location_String): Take a parameter instead of ↵Bob Duff7-45/+49
using a global variable. 2016-04-18 Bob Duff <duff@adacore.com> * sinput.ads, sinput.adb (Build_Location_String): Take a parameter instead of using a global variable. The function version no longer destroys the Name_Buffer. * stringt.ads, stringt.adb (String_From_Name_Buffer): Take a parameter, which defaults to the Global_Name_Buffer, so some calls can avoid the global. * exp_ch11.adb, exp_intr.adb: Use new interfaces above to avoid using globals. All but one call to Build_Location_String avoids the global. Only one call to String_From_Name_Buffer avoids it. From-SVN: r235126
2016-04-18Minor code cleanups.Arnaud Charlet4-40/+36
From-SVN: r235125
2016-04-18[multiple changes]Arnaud Charlet12-233/+347
2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> * namet.adb, namet.ads, exp_unst.adb: Minor reformatting. 2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> * sem_eval.adb (Choice_Matches): Check the expression against the predicate values when the choice denotes a subtype with a static predicate. (Eval_Membership_Op): Code cleanup. Remove the suspicious guard which tests for predicates. (Is_OK_Static_Subtype): A subtype with a dynamic predicate is not static. (Is_Static_Subtype): A subtype with a dynamic predicate is not static. * sem_eval.ads (Is_OK_Static_Subtype): Update the comment on usage. (Is_Static_Subtype): Update the comment on usage. 2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Analyze_Input_Item): Allow generic formals to appear as initialization items. 2016-04-18 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Analyze_Stream_TSS_Definition, Has_Good_Profile): Additional error message to indicate that the second parameter of the subprogram must be a first subtype. 2016-04-18 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Analyze_Subprogram_Body_Helper, Is_Inline_Pragma): Use the pragma lookahead that determines whether a subprogram is to be inlined, when some level of backend optimization is required. * sem_ch12.ads, sem_ch12.adb (Add_Pending_Instantiation): Factorize code used to create an instance body when needed for inlining. * exp_ch6.adb (Expand_Call): When a call is to be inlined, and the call appears within an instantiation that is not a compilation unit, add a pending instantiation for the enclosing instance, so the backend can inline in turn the calls contained in the inlined body. From-SVN: r235124
2016-04-18[multiple changes]Arnaud Charlet10-701/+897
2016-04-18 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Build_Pragma_Check_Equivalent): The mapping that relates operations of the parent type to the operations of the derived type has three distinct sources: a) explicit operations of the derived type carry an Overridden_Operation that designates the operation in the ancestor. b) Implicit operations that are inherited by the derived type carry an alias that may be an explicit subprogram (in which case it may have an Overridden_ Operation indicator) or may also be inherited and carry its own alias. c) If the parent type is an interface, the operation of the derived type does not override, but the interface operation indicates the operation that implements it. * sem_prag.adb: Minor reformatting. * sem_prag.adb (Check_External_Property): Update the comment on usage. Reimplement. 2016-04-18 Ed Schonberg <schonberg@adacore.com> * exp_ch5.adb (Expand_Assignment_Statement): In restricted profiles such as ZFP, ceiling priority is not available. 2016-04-18 Bob Duff <duff@adacore.com> * namet-sp.ads: Minor typo fix, ironically in 'Spelling_Checker'. 2016-04-18 Bob Duff <duff@adacore.com> * sem_elab.adb (Output_Calls): Use Get_Name_String, to clearly indicate that the global Name_Buffer is being used. The previous code used Is_Internal_Name, which returns a Boolean, but also has a side effect of setting the Name_Buffer. Then it called the other Is_Internal_Name, which uses the Name_Buffer for its input. And then it called Error_Msg_N, again using the Name_Buffer. We haven't eliminated the global usage here, but we've made it a bit clearer. This also allows us to have a side-effect-free version of Is_Internal_Name. * namet.ads, namet.adb: Provide a type Bounded_String, along with routines that can be used without using global variables. Provide Global_Name_Buffer so existing code can continue to use the global. Mark the routines that use globals as obsolete. New code shouldn't call the obsolete ones, and we should clean up existing code from time to time. Name_Find_Str is renamed as Name_Find. * namet.h: Changed as necessary to interface to the new version of Namet. * bindgen.adb, exp_unst.adb: Name_Find_Str is renamed as Name_Find. From-SVN: r235123
2016-04-18[multiple changes]Arnaud Charlet12-121/+223
2016-04-18 Yannick Moy <moy@adacore.com> * sem_util.adb, sem_util.ads (Has_Full_Default_Initialization): used outside of GNATprove, hence it should not be removed. 2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Analyze_Refinement_Clause): The refinement of an external abstract state can now mention non-external constituents. (Check_External_Property): Update all SPARK RM references. 2016-04-18 Bob Duff <duff@adacore.com> * exp_intr.adb: Remove some duplicated code. 2016-04-18 Yannick Moy <moy@adacore.com> * a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-nuflra.ads: Mark package spec and body out of SPARK. 2016-04-18 Johannes Kanig <kanig@adacore.com> * spark_xrefs.ads: Minor comment update. 2016-04-18 Johannes Kanig <kanig@adacore.com> * gnat1drv.adb (Gnat1drv): Force loading of System unit for SPARK. 2016-04-18 Bob Duff <duff@adacore.com> * a-cuprqu.adb: Correction to previous change. If a new node is inserted at the front of the queue (because it is higher priority than the previous front node), we need to update Header.Next_Unequal -- not just in the case where the queue was previously empty. From-SVN: r235122
2016-04-18[multiple changes]Arnaud Charlet6-222/+131
2016-04-18 Bob Duff <duff@adacore.com> * a-cuprqu.ads: Change the representation of List_Type from a singly-linked list to a doubly-linked list. In addition, add a pointer Next_Unequal, which points past a possibly-long chain of equal-priority items. This increases efficiency, especially in the case of many equal-priority items. * a-cuprqu.adb (Dequeue, Enqueue): Rewrite algorithms to take advantage of new data structure. (Finalize): Rewrite in terms of Dequeue, for simplicity. 2016-04-18 Yannick Moy <moy@adacore.com> * contracts.adb (Analyze_Object_Contract, Analyze_Protected_Contract): Remove tests performed in GNATprove. * sem_util.adb, sem_util.ads (Has_Full_Default_Initialization): Remove query for tests performed in GNATprove. From-SVN: r235121
2016-04-18[multiple changes]Arnaud Charlet10-44/+115
2016-04-18 Ed Schonberg <schonberg@adacore.com> * sem_aggr.adb (Resolve_Record_Aggregate): If Warn_On_Redundant_Constructs is enabled, report a redundant box association that does not cover any components, as it done for redundant others associations in case statements. 2016-04-18 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Collect_Inherited_Class_Wide_Conditions): Analyze the generated Check pragma for an inherited condition so that it does not freeze the dispatching type of the primitive operation, because it is pre-analyzed at the point of the subprogram declaration (and not in the subprogram body, as is done during regular expansion). 2016-04-18 Vincent Celier <celier@adacore.com> * ali.ads: Increase the range of all _Id types to 100 millions. 2016-04-18 Gary Dismukes <dismukes@adacore.com> * sem_warn.adb (Check_References): Change warning to suggest using pragma Export rather than saying "volatile has no effect". 2016-04-18 Bob Duff <duff@adacore.com> * g-souinf.ads (Compilation_ISO_Date): New function to return the current date in ISO form. * exp_intr.adb (Expand_Source_Info, Add_Source_Info): Expand a call to Compilation_ISO_Date into a string literal containing the current date in ISO form. * exp_intr.ads (Add_Source_Info): Improve documentation. * sem_intr.adb (Check_Intrinsic_Subprogram): Recognize Compilation_ISO_Date. * snames.ads-tmpl (Name_Compilation_ISO_Date): New Name_Id. From-SVN: r235120
2016-04-18[multiple changes]Arnaud Charlet8-116/+229
2016-04-18 Eric Botcazou <ebotcazou@adacore.com> * layout.adb (Set_Elem_Alignment): Extend setting of alignment to subtypes that are not first subtypes. 2016-04-18 Ed Schonberg <schonberg@adacore.com> * sem_prag.ads (Collect_Inherited_Class_Wide_Conditions): Simplify interface. * sem_prag.adb (Collect_Inherited_Class_Wide_Conditions): Insert generated pragmas after subprogram declaration, rather than in the corresponding subprogram body. * sem_ch6.adb (New_Overloaded_Entity): In GNATProve mode, if the operation is overridding, call Collect_Inherited_Class_Wide_Conditions to generate the corresponding pragmas immediately after the corresponding subprogram declaration. 2016-04-18 Arnaud Charlet <charlet@adacore.com> * spark_xrefs.ads (Xref_Index, Scope_Index, File_Index): restrict type to natural numbers. (Stype): document code characters for concurrent entities. 2016-04-18 Olivier Hainque <hainque@adacore.com> * targparm.ads: Update the Frontend_Exceptions default internal value. (Frontend_Exceptions_On_Target): Change default value to True. 2016-04-18 Ed Schonberg <schonberg@adacore.com> * sem_ch4.adb (Analyze_Selected_Component): Refine error detection when a selected component in the body of a synchronized type is a reference to an object of the same type declared elsewhere. The construct is legal if the prefix of the selected component includes an explicit dereference at any point. From-SVN: r235118
2016-04-18sem_ch3.adb (Analyze_Object_Declaration): Do not consider internally ↵Hristian Kirtchev3-5/+24
generated expressions when... 2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch3.adb (Analyze_Object_Declaration): Do not consider internally generated expressions when trying to determine whether a formal parameter of a tagged type subject to Extensions_Visible False is used to initialize an object. * sem_ch4.adb (Analyze_Type_Conversion): Do not consider internally generated expressions when trying to determine whether a formal parameter of a tagged type subject to Extensions_Visible False is used in a type conversion. From-SVN: r235117
2016-04-18[multiple changes]Arnaud Charlet8-42/+84
2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> * sem_res.adb (Is_Protected_Operation_Call): Add guards to account for a non-decorated selected component. 2016-04-18 Yannick Moy <moy@adacore.com> * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Improve implementation of Body_Has_SPARK_Mode_On. * sem_prag.adb, sem_prag.ads (Get_SPARK_Mode_From_Annotation): New function replacing previous Get_SPARK_Mode_From_Pragma, that deals also with aspects. (Get_SPARK_Mode_Type): Make function internal again. * inline.adb, sem_ch7.adb, sem_util.adb: Use new Get_SPARK_Mode_From_Annotation. From-SVN: r235116
2016-04-18contracts.adb (Analyze_Object_Contract): Update references to SPARK RM.Hristian Kirtchev9-192/+326
2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> * contracts.adb (Analyze_Object_Contract): Update references to SPARK RM. * freeze.adb (Freeze_Entity): Update references to SPARK RM. * ghost.adb Add with and use clauses for Sem_Disp. (Check_Ghost_Derivation): Removed. (Check_Ghost_Overriding): Reimplemented. (Check_Ghost_Policy): Update references to SPARK RM. (Check_Ghost_Primitive): New routine. (Check_Ghost_Refinement): New routine. (Is_OK_Ghost_Context): Update references to SPARK RM. (Is_OK_Pragma): Update references to SPARK RM. Predicates are now a valid context for references to Ghost entities. * ghost.ads (Check_Ghost_Derivation): Removed. (Check_Ghost_Overriding): Update the comment on usage. (Check_Ghost_Primitive): New routine. (Check_Ghost_Refinement): New routine. (Remove_Ignored_Ghost_Code): Update references to SPARK RM. * sem_ch3.adb (Process_Full_View): Remove the now obsolete check related to Ghost derivations * sem_ch6.adb (Check_Conformance): Remove now obsolete check related to the convention-like behavior of pragma Ghost. (Check_For_Primitive_Subprogram): Verify that the Ghost policy of a tagged type and its primitive agree. * sem_prag.adb (Analyze_Pragma): Update references to SPARK RM. Move the verification of pragma Assertion_Policy Ghost to the proper place. Remove the now obsolete check related to Ghost derivations. (Collect_Constituent): Add a call to Check_Ghost_Refinement. * sem_res.adb (Resolve_Actuals): Update references to SPARK RM. From-SVN: r235115
2016-04-18[multiple changes]Arnaud Charlet5-127/+147
2016-04-18 Eric Botcazou <ebotcazou@adacore.com> * layout.adb: Fix more minor typos in comments. 2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> * a-calend.ads, sem_prag.adb, sem_ch6.adb: Minor reformatting. From-SVN: r235114
2016-04-18[multiple changes]Arnaud Charlet7-314/+418
2016-04-18 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Analyze_Subprogram_Body_Helper): In GNATprove mode, collect inherited class-wide conditions to generate the corresponding pragmas. * sem_prag.ads (Build_Pragma_Check_Equivalent): Moved from contracts * contracts.adb (Collect_Inherited_Class_Wide_Conditions): New procedure for overriding subprograms, used to generate the pragmas corresponding to an inherited class- wide pre- or postcondition. * sem_prag.adb (Build_Pragma_Check_Equivalent): moved here from contracts.adb (Replace_Condition_Entities): Subsidiary Build_Pragma_Check_Equivalent, to implement the proper semantics of inherited class-wide conditions, as given in AI12-0113. (Process_Class_Wide_Condition): Removed. (Collect_Inherited_Class_Wide_Conditions): Iterate over pragmas in contract of subprogram, to collect inherited class-wide conditions. (Build_Pragma_Check_Equivalent): Moved to sem_prag.adb 2016-04-18 Yannick Moy <moy@adacore.com> * a-calend.adb (Ada.Calendar): Mark package body as SPARK_Mode Off. * a-calend.ads (Ada.Calendar): Mark package spec as SPARK_Mode and add synchronous external abstract state Clock_Time. From-SVN: r235113
2016-04-18[multiple changes]Arnaud Charlet14-50/+123
2016-04-18 Yannick Moy <moy@adacore.com> * sem_res.adb (Resolve_Call): Prevent inlining of calls inside expression functions. Factor previous code issuing errors to call Cannot_Inline instead, which does appropriate processing of message for GNATprove. 2016-04-18 Arnaud Charlet <charlet@adacore.com> * einfo.ads, sem_ch3.adb, sem_ch8.adb, osint-l.adb, rtsfind.adb, osint-b.adb: Cleanups. 2016-04-18 Yannick Moy <moy@adacore.com> * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Only create body to inline in GNATprove mode when SPARK_Mode On applies to subprogram body. * sem_prag.adb, sem_prag.ads (Get_SPARK_Mode_Type): Make function public. 2016-04-18 Eric Botcazou <ebotcazou@adacore.com> * layout.adb: Fix minor typo in comment. * inline.adb: Fix minor pasto. * sem_ch12.ads: Fix minor typos in comments. From-SVN: r235111
2016-04-18[multiple changes]Arnaud Charlet10-381/+497
2016-04-18 Ed Schonberg <schonberg@adacore.com> * sem_disp.adb (Check_Dispatching_Call): Major rewriting to handle some complex cases of tag indeterminate calls that are actuals in other dispatching calls that are themselves tag indeterminate. (Check_Dispatching_Context): Add parameter to support recursive check for an enclosing construct that may provide a tag for a tag-indeterminate call. 2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Analyze_Depends_In_Decl_Part): Add global variables Task_Input_Seen and Task_Output_Seen. (Analyze_Global_Item): Detect an illegal use of the current instance of a single protected/task type in a global annotation. (Analyze_Input_Output): Inputs and output related to the current instance of a task unit are now tracked. (Check_Usage): Require the presence of the current instance of a task unit only when one input/output is available. (Current_Task_Instance_Seen): New routine. (Is_CCT_Instance): New parameter profile. Update the comment on usage. The routine now properly recognizes several cases related to single protected/task types. 2016-04-18 Hristian Kirtchev <kirtchev@adacore.com> * freeze.adb (Freeze_Entity): Use New_Freeze_Node to create a brand new freeze node. This handles a case where an ignored Ghost context is freezing something which is not ignored Ghost and whose freeze node should not be removed from the tree. (New_Freeze_Node): New routine. 2016-04-18 Jerome Lambourg <lambourg@adacore.com> * sigtramp.h (__gnat_set_is_vxsim) New function to tell sigtramp-vxworks to handle vxsim signal contexts. * sigtramp-vxworks.c (__gnat_sigtramp) Take into account the differences in the sigcontext structure between the expected regular x86 or x86_64 ones and the ones received in case of exexution on the vxworks simulator. * init.c: also compute is_vxsim in case of x86_64-vx7 target. Provide this information to sigtramp-vxworks.c. Remove the old mechanism for vxsim. * init-vxsim.c, sigtramp-vxworks-vxsim.c: remove, now obsolete. 2016-04-18 Eric Botcazou <ebotcazou@adacore.com> * exp_ch3.adb (Inline_Init_Proc): New function returning whether the initialization procedure of a type should be inlined. Return again True for controlled type themselves. (Build_Array_Init_Proc): Call it to set Set_Is_Inlined on Init_Proc. (Build_Record_Init_Proc): Likewise. From-SVN: r235110
2016-04-18gnatvsn.ads (Library_Version): Bump to 7.Arnaud Charlet2-1/+5
* gnatvsn.ads (Library_Version): Bump to 7. From-SVN: r235109
2016-04-18sem_ch6.adb (Analyze_Expression_Function): Set Inlined flag on the entity of ↵Ed Schonberg4-8/+78
a subprogram declaration that is completed by... 2016-04-18 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Analyze_Expression_Function): Set Inlined flag on the entity of a subprogram declaration that is completed by an expression function. 2016-04-18 Ed Schonberg <schonberg@adacore.com> * sem_util.adb (Is_Current_Instance): A entity given by a subtype declaration can appear in an aspect specification for a dynamic predicate, and a pragma for aspect Predicate_Failure. * exp_util.adb (Replace_Subtype_References): Replace current occurrences of the subtype to which a dynamic predicate applies, byt the expression that triggers a predicate check. Needed to implement new aspect Predicate_Failure. From-SVN: r235107
2016-04-18[multiple changes]Arnaud Charlet8-100/+140
2016-04-18 Arnaud Charlet <charlet@adacore.com> * a-intsig.ads, a-intsig.adb: Removed, no longer used. * Makefile.rtl: update accordingly. 2016-04-18 Eric Botcazou <ebotcazou@adacore.com> * sem_type.adb (Disambiguate): Call Covers only when necessary for standard operators. 2016-04-18 Eric Botcazou <ebotcazou@adacore.com> * atree.ads (Num_Extension_Nodes): Add couple of figures to comment. * atree.adb: Add GNAT.Heap_Sort_G dependency. (Print_Statistics): New exported procedure to print statistics. 2016-04-18 Eric Botcazou <ebotcazou@adacore.com> * exp_ch3.adb (Build_Record_Init_Proc): Do not mark the procedure as to be inlined if the type needs finalization. From-SVN: r235106
2016-04-18* gcc-interface/decl.c: Rename Descendent -> DescendantVincent Celier2-2/+3
From-SVN: r235104
2016-04-18sigtramp-vxworks-target.inc: sigtramp-vxworks: force the stack alignment for ↵Jerome Lambourg3-43/+40
x86_64. 2016-04-18 Jerome Lambourg <lambourg@adacore.com> * sigtramp-vxworks-target.inc: sigtramp-vxworks: force the stack alignment for x86_64. * init.c: Better fix for guard page reset on x86_64-vx7. Do not try to retrieve the page that actually raised the signal as the probing mechanism used on x86_64 do not allow such retrieval. We thus just test if the guard page is active, and re-activate it if not. From-SVN: r235102
2016-04-18[multiple changes]Arnaud Charlet4-54/+106
2016-04-18 Arnaud Charlet <charlet@adacore.com> * a-sytaco.adb (Suspension_Object): Aspect Default_Initial_Condition added. 2016-04-18 Jerome Lambourg <lambourg@adacore.com> * affinity.c: Use the proper type for task id. * init.c (__gnat_inum_to_ivec): ivec is a pointer. From-SVN: r235101
2016-04-18[multiple changes]Arnaud Charlet26-158/+184
2016-04-18 Arnaud Charlet <charlet@adacore.com> * sem_prag.adb (Process_Convention): Relax rule on exporting Intrinsic types if Relaxed_RM_Semantics is True. 2016-04-18 Vincent Celier <celier@adacore.com> * sem_ch3.adb, lib.ads, sinfo.ads, sem_ch10.adb, einfo.adb, einfo.ads, checks.ads, sem_ch12.adb, sem.adb, sem_util.adb, sem_util.ads, sem_res.adb, sem_attr.adb, par.adb, exp_ch4.adb, errout.ads, sem_ch4.adb, atree.adb, atree.ads, sem_warn.adb, treepr.adb, exp_ch3.ads, exp_unst.adb: Change "descendent" to "descendant" in comments, error messages and identifiers. 2016-04-18 Eric Botcazou <ebotcazou@adacore.com> * sem_type.adb (Operator_Matches_Spec): Call First_Formal on New_S only once at the beginning of the function. From-SVN: r235100
2016-04-02decl.c (components_to_record): Restrict the previous change to fields with ↵Eric Botcazou2-6/+13
variable size. * gcc-interface/decl.c (components_to_record): Restrict the previous change to fields with variable size. From-SVN: r234696
2016-03-27Fix typoEric Botcazou1-1/+1
From-SVN: r234496
2016-03-27decl.c (components_to_record): Add special case for single field with ↵Eric Botcazou2-0/+22
representation clause at offset 0. * gcc-interface/decl.c (components_to_record): Add special case for single field with representation clause at offset 0. From-SVN: r234494
2016-03-16Makefile.in: Add support for x86 GNU/Hurd.Svante Signell3-1/+836
* gcc-interface/Makefile.in: Add support for x86 GNU/Hurd. * s-osinte-gnu.ads: New file. From-SVN: r234252
2016-03-13vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.Eric Botcazou6-16/+29
* config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define. (STACK_CHECK_PROTECT): Likewise. * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise (STACK_CHECK_PROTECT): Likewise. * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise (STACK_CHECK_PROTECT): Likewise. * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise. * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise. (STACK_CHECK_PROTECT): Likewise. ada/ * system-vxworks-m68k.ads (Stack_Check_Probes): Set to True. (Stack_Check_Limits): Set to False. * system-vxworks-mips.ads (Stack_Check_Probes): Set to True. (Stack_Check_Limits): Set to False. * system-vxworks-ppc.ads (Stack_Check_Probes): Set to True. (Stack_Check_Limits): Set to False. * system-vxworks-sparcv9.ads (Stack_Check_Probes): Set to True. (Stack_Check_Limits): Set to False. * system-vxworks-x86.ads (Stack_Check_Probes): Set to True. (Stack_Check_Limits): Set to False. From-SVN: r234171
2016-03-07trans.c (statement_node_p): New predicate.Eric Botcazou2-12/+46
* gcc-interface/trans.c (statement_node_p): New predicate. (gnat_to_gnu): Invoke it to detect statement nodes. In ASIS mode, do not return dummy results for expressions attached to packed array implementation types. From-SVN: r234020
2016-03-07decl.c (gnat_to_gnu_entity): Always mark the expression of a renaming ↵Eric Botcazou2-6/+9
manually in case #3. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Always mark the expression of a renaming manually in case #3. From-SVN: r234018
2016-03-02S/390: Ada: Enable Stack_Check_Probes.Dominik Vogt3-2/+7
gcc/ada/ChangeLog * system-linux-s390.adsx: Enable Stack_Check_Probes. * system-linux-s390.ads: Likewise. From-SVN: r233893