summaryrefslogtreecommitdiff
path: root/gcc/ada
AgeCommit message (Collapse)Author
2020-09-04Daily bump.GCC Administrator
2020-09-03Preliminary work on support for 128bits integersArnaud Charlet
* fe.h, opt.ads (Enable_128bit_Types): New. * stand.ads (Standard_Long_Long_Long_Integer, S_Long_Long_Long_Integer): New.
2020-09-03Look at fullest view when checking for static types in unnestingArnaud Charlet
When seeing if any bound involved in a type is an uplevel reference, we must look at the fullest view of a type, since that's what the backends will do. Similarly for private types. We introduce Get_Fullest_View for that purpose. * sem_util.ads, sem_util.adb (Get_Fullest_View): New procedure. * exp_unst.adb (Check Static_Type): Do all processing on fullest view of specified type.
2020-08-28Daily bump.GCC Administrator
2020-08-27vec: add exact argument for various grow functions.Martin Liska
gcc/ada/ChangeLog: * gcc-interface/trans.c (gigi): Set exact argument of a vector growth function to true. (Attribute_to_gnu): Likewise. gcc/ChangeLog: * alias.c (init_alias_analysis): Set exact argument of a vector growth function to true. * calls.c (internal_arg_pointer_based_exp_scan): Likewise. * cfgbuild.c (find_many_sub_basic_blocks): Likewise. * cfgexpand.c (expand_asm_stmt): Likewise. * cfgrtl.c (rtl_create_basic_block): Likewise. * combine.c (combine_split_insns): Likewise. (combine_instructions): Likewise. * config/aarch64/aarch64-sve-builtins.cc (function_expander::add_output_operand): Likewise. (function_expander::add_input_operand): Likewise. (function_expander::add_integer_operand): Likewise. (function_expander::add_address_operand): Likewise. (function_expander::add_fixed_operand): Likewise. * df-core.c (df_worklist_dataflow_doublequeue): Likewise. * dwarf2cfi.c (update_row_reg_save): Likewise. * early-remat.c (early_remat::init_block_info): Likewise. (early_remat::finalize_candidate_indices): Likewise. * except.c (sjlj_build_landing_pads): Likewise. * final.c (compute_alignments): Likewise. (grow_label_align): Likewise. * function.c (temp_slots_at_level): Likewise. * fwprop.c (build_single_def_use_links): Likewise. (update_uses): Likewise. * gcc.c (insert_wrapper): Likewise. * genautomata.c (create_state_ainsn_table): Likewise. (add_vect): Likewise. (output_dead_lock_vect): Likewise. * genmatch.c (capture_info::capture_info): Likewise. (parser::finish_match_operand): Likewise. * genrecog.c (optimize_subroutine_group): Likewise. (merge_pattern_info::merge_pattern_info): Likewise. (merge_into_decision): Likewise. (print_subroutine_start): Likewise. (main): Likewise. * gimple-loop-versioning.cc (loop_versioning::loop_versioning): Likewise. * gimple.c (gimple_set_bb): Likewise. * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user): Likewise. * haifa-sched.c (sched_extend_luids): Likewise. (extend_h_i_d): Likewise. * insn-addr.h (insn_addresses_new): Likewise. * ipa-cp.c (gather_context_independent_values): Likewise. (find_more_contexts_for_caller_subset): Likewise. * ipa-devirt.c (final_warning_record::grow_type_warnings): Likewise. (ipa_odr_read_section): Likewise. * ipa-fnsummary.c (evaluate_properties_for_edge): Likewise. (ipa_fn_summary_t::duplicate): Likewise. (analyze_function_body): Likewise. (ipa_merge_fn_summary_after_inlining): Likewise. (read_ipa_call_summary): Likewise. * ipa-icf.c (sem_function::bb_dict_test): Likewise. * ipa-prop.c (ipa_alloc_node_params): Likewise. (parm_bb_aa_status_for_bb): Likewise. (ipa_compute_jump_functions_for_edge): Likewise. (ipa_analyze_node): Likewise. (update_jump_functions_after_inlining): Likewise. (ipa_read_edge_info): Likewise. (read_ipcp_transformation_info): Likewise. (ipcp_transform_function): Likewise. * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise. * ipa-split.c (execute_split_functions): Likewise. * ira.c (find_moveable_pseudos): Likewise. * lower-subreg.c (decompose_multiword_subregs): Likewise. * lto-streamer-in.c (input_eh_regions): Likewise. (input_cfg): Likewise. (input_struct_function_base): Likewise. (input_function): Likewise. * modulo-sched.c (set_node_sched_params): Likewise. (extend_node_sched_params): Likewise. (schedule_reg_moves): Likewise. * omp-general.c (omp_construct_simd_compare): Likewise. * passes.c (pass_manager::create_pass_tab): Likewise. (enable_disable_pass): Likewise. * predict.c (determine_unlikely_bbs): Likewise. * profile.c (compute_branch_probabilities): Likewise. * read-rtl-function.c (function_reader::parse_block): Likewise. * read-rtl.c (rtx_reader::read_rtx_code): Likewise. * reg-stack.c (stack_regs_mentioned): Likewise. * regrename.c (regrename_init): Likewise. * rtlanal.c (T>::add_single_to_queue): Likewise. * sched-deps.c (init_deps_data_vector): Likewise. * sel-sched-ir.c (sel_extend_global_bb_info): Likewise. (extend_region_bb_info): Likewise. (extend_insn_data): Likewise. * symtab.c (symtab_node::create_reference): Likewise. * tracer.c (tail_duplicate): Likewise. * trans-mem.c (tm_region_init): Likewise. (get_bb_regions_instrumented): Likewise. * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise. (build_gimple_cfg): Likewise. (create_bb): Likewise. (move_block_to_fn): Likewise. * tree-complex.c (tree_lower_complex): Likewise. * tree-if-conv.c (predicate_rhs_code): Likewise. * tree-inline.c (copy_bb): Likewise. * tree-into-ssa.c (get_ssa_name_ann): Likewise. (mark_phi_for_rewrite): Likewise. * tree-object-size.c (compute_builtin_object_size): Likewise. (init_object_sizes): Likewise. * tree-predcom.c (initialize_root_vars_store_elim_1): Likewise. (initialize_root_vars_store_elim_2): Likewise. (prepare_initializers_chain_store_elim): Likewise. * tree-ssa-address.c (addr_for_mem_ref): Likewise. (multiplier_allowed_in_address_p): Likewise. * tree-ssa-coalesce.c (ssa_conflicts_new): Likewise. * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. * tree-ssa-loop-ivopts.c (addr_offset_valid_p): Likewise. (get_address_cost_ainc): Likewise. * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk): Likewise. * tree-ssa-pre.c (add_to_value): Likewise. (phi_translate_1): Likewise. (do_pre_regular_insertion): Likewise. (do_pre_partial_partial_insertion): Likewise. (init_pre): Likewise. * tree-ssa-propagate.c (ssa_prop_init): Likewise. (update_call_from_tree): Likewise. * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Likewise. * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise. (vn_reference_lookup_pieces): Likewise. (eliminate_dom_walker::eliminate_push_avail): Likewise. * tree-ssa-strlen.c (set_strinfo): Likewise. (get_stridx_plus_constant): Likewise. (zero_length_string): Likewise. (find_equal_ptrs): Likewise. (printf_strlen_execute): Likewise. * tree-ssa-threadedge.c (set_ssa_name_value): Likewise. * tree-ssanames.c (make_ssa_name_fn): Likewise. * tree-streamer-in.c (streamer_read_tree_bitfields): Likewise. * tree-vect-loop.c (vect_record_loop_mask): Likewise. (vect_get_loop_mask): Likewise. (vect_record_loop_len): Likewise. (vect_get_loop_len): Likewise. * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Likewise. * tree-vect-slp.c (vect_slp_convert_to_external): Likewise. (vect_bb_slp_scalar_cost): Likewise. (vect_bb_vectorization_profitable_p): Likewise. (vectorizable_slp_permutation): Likewise. * tree-vect-stmts.c (vectorizable_call): Likewise. (vectorizable_simd_clone_call): Likewise. (scan_store_can_perm_p): Likewise. (vectorizable_store): Likewise. * expr.c: Likewise. * vec.c (test_safe_grow_cleared): Likewise. * vec.h (vec_safe_grow): Likewise. (vec_safe_grow_cleared): Likewise. (vl_ptr>::safe_grow): Likewise. (vl_ptr>::safe_grow_cleared): Likewise. * config/c6x/c6x.c (insn_set_clock): Likewise. gcc/c/ChangeLog: * gimple-parser.c (c_parser_gimple_compound_statement): Set exact argument of a vector growth function to true. gcc/cp/ChangeLog: * class.c (build_vtbl_initializer): Set exact argument of a vector growth function to true. * constraint.cc (get_mapped_args): Likewise. * decl.c (cp_maybe_mangle_decomp): Likewise. (cp_finish_decomp): Likewise. * parser.c (cp_parser_omp_for_loop): Likewise. * pt.c (canonical_type_parameter): Likewise. * rtti.c (get_pseudo_ti_init): Likewise. gcc/fortran/ChangeLog: * trans-openmp.c (gfc_trans_omp_do): Set exact argument of a vector growth function to true. gcc/lto/ChangeLog: * lto-common.c (lto_file_finalize): Set exact argument of a vector growth function to true.
2020-07-28Daily bump.GCC Administrator
2020-07-27[Ada] Revert "Revamp dump and aux output names"Alexandre Oliva
gcc/ada/ * switch.adb (Is_Internal_GCC_Switch): Revert accidental reintroduction of auxbase and auxbase-strip.
2020-07-27[Ada] Ada2020: AI12-0027 Access values and unaliased componentJavier Miranda
gcc/ada/ * sem_res.adb (Resolve_Actuals): Restrict the check on matching aliased components to view conversions of array types that are not placed in an instance. In such case at runtime an object is created. * sem_util.ads (Is_Actual_In_Out_Parameter, Is_View_Conversion): New subprograms. * sem_util.adb (Is_Actual_In_Out_Parameter, Is_View_Conversion): New subprograms.
2020-07-27[Ada] Assert failure on incorrect codeArnaud Charlet
gcc/ada/ * lib-xref.adb (Generate_Reference): Protect against malformed tree in case of severe errors. * sem_ch8.adb (Add_Implicit_Operator): Ditto.
2020-07-27[Ada] Switch Ada_Version_Runtime to Ada 2020Arnaud Charlet
gcc/ada/ * opt.ads (Ada_Version_Runtime): Set to Ada_2020. * sem_ch3.adb (Analyze_Subtype_Declaration): Propagate Is_Independent flag to subtypes. * libgnarl/s-taprop__linux.adb: Adapt to Ada 2020 warning. * libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads, libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb, libgnat/a-nbnbre.ads, libgnat/a-stobbu.adb, libgnat/a-stobbu.ads, libgnat/a-stobfi.adb, libgnat/a-stobfi.ads, libgnat/a-stoubu.adb, libgnat/a-stoubu.ads, libgnat/a-stoufi.adb, libgnat/a-stoufi.ads, libgnat/a-stoufo.adb, libgnat/a-stoufo.ads, libgnat/a-stouut.adb, libgnat/a-stouut.ads, libgnat/a-strsto.ads, libgnat/a-ststbo.adb, libgnat/a-ststbo.ads, libgnat/a-ststun.adb, libgnat/a-ststun.ads, libgnat/a-stteou.ads, libgnat/s-aoinar.ads, libgnat/s-aomoar.ads, libgnat/s-atopex.ads, libgnat/s-putaim.adb, libgnat/s-putaim.ads, libgnat/s-putima.adb, libgnat/s-putima.ads: Remove pragma Ada_2020, now redundant.
2020-07-27[Ada] Wrong accessibility on 'Access of formal in callJustin Squirek
gcc/ada/ * exp_ch6.adb (Expand_Call_Helper): Modify addition of the extra accessibility parameter to take into account the extra accessibility of formals within the calling subprogram.
2020-07-27[Ada] Bug in Enum_Subtype'Image in Ada 2020 modeBob Duff
gcc/ada/ * exp_imgv.adb (Expand_Image_Attribute): Add Root_Type, so constrained subtypes work.
2020-07-27[Ada] Refactor pragma argument gettersGhjuvan Lacambre
gcc/ada/ * exp_prag.adb (Arg1, Arg2, Arg3): Removed. (Arg_N): New function.
2020-07-27[Ada] AI12-0383 Renaming valuesArnaud Charlet
gcc/ada/ * sem_ch8.adb (Analyze_Object_Renaming): Allow values in Ada 2020 mode.
2020-07-27[Ada] AI12-0377 View conversions and out parameters revisitedArnaud Charlet
gcc/ada/ * sem_res.adb (Resolve_Actuals): Refine 6.4.1 rules as per AI12-0377.
2020-07-27[Ada] Ada2020: wording of 'Image messagesBob Duff
gcc/ada/ * errout.ads, errout.adb (Error_Msg_Ada_2020_Feature): New procedure analogous to Error_Msg_Ada_2012_Feature. * sem_attr.adb (Analyze_Image_Attribute): Use Error_Msg_Ada_2012_Feature and Error_Msg_Ada_2020_Feature to indicate that Object'Image is allowed in Ada 2012, and that 'Image is allowed for any type in Ada 2020.
2020-07-27[Ada] Unbounded string overriding controlDmitriy Anisimkov
gcc/ada/ * libgnat/a-strunb.adb (Sum, Mul, Saturated_Sum, Saturated_Mul): New routines. Use them when resulting string size more that length of the strings in parameters. (Unbounded_Slice): Use "- 1" instead of "+ 1" in opposite side of condition to avoid overflow. * libgnat/a-strunb__shared.adb (Sum, Mul): New routines. (Allocate): New routine with 2 parameters. Use routine above when resulting string size more that length of the strings in parameters. (Aligned_Max_Length): Do not try to align to more than Natural'Last. (Unbounded_Slice): Use "- 1" instead of "+ 1" in opposite side of condition to avoid overflow.
2020-07-27[Ada] Remove disabled codeArnaud Charlet
gcc/ada/ * sem_attr.adb (Resolve_Attribute): Remove dead code.
2020-07-27[Ada] Use membership tests in front-endArnaud Charlet
gcc/ada/ * aspects.adb, atree.adb, atree.ads, checks.adb, contracts.adb, einfo.adb, errout.adb, exp_aggr.adb, exp_attr.adb, exp_cg.adb, exp_ch11.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb, exp_ch9.adb, exp_dbug.adb, exp_disp.adb, exp_intr.adb, exp_pakd.adb, exp_prag.adb, exp_put_image.adb, exp_smem.adb, exp_tss.adb, exp_unst.adb, exp_util.adb, freeze.adb, ghost.adb, gnat1drv.adb, inline.adb, lib-writ.adb, lib-xref-spark_specific.adb, lib-xref.adb, namet.adb, namet.ads, nlists.adb, par-ch10.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par-prag.adb, par-util.adb, par_sco.adb, pprint.adb, repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb, sem.adb, sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_cat.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_dim.adb, sem_disp.adb, sem_dist.adb, sem_elab.adb, sem_elim.adb, sem_eval.adb, sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb, sem_scil.adb, sem_type.adb, sem_util.adb, sem_warn.adb, sinfo.adb, sinfo.ads, sprint.adb, styleg.adb, tbuild.adb, treepr.adb (Nkind_In, Nam_In, Ekind_In): Removed, replaced by membership tests.
2020-07-27[Ada] AI12-0194: Language-defined aspects and entry bodiesGary Dismukes
gcc/ada/ * sem_prag.adb (Analyze_Pragma, Pragma_Max_Entry_Queue_Length): Refine error message to indicate that the pragma must apply to an entry declaration, not just an entry.
2020-07-27[Ada] Spurious error in generic dispatching constructorJavier Miranda
gcc/ada/ * exp_ch6.adb (Make_Build_In_Place_Iface_Call_In_Allocator): Revert previous patch, and add a missing type conversion to displace the pointer to the allocated object to reference the target dispatch table.
2020-07-27[Ada] Ada2020: AI12-0027 Access values and unaliased componentJavier Miranda
gcc/ada/ * sem_res.adb (Resolve_Actuals): Restore restrictive check on view conversions which required matching value of Has_Aliased_Components of formals and actuals. Required to avoid the regression of ACATS b460005.
2020-07-27[Ada] Remove obsolete special case in Switch_ViewEric Botcazou
gcc/ada/ * sem_ch12.adb (Instantiate_Package_Body): Add commentary for a nesting issue with parent handling and private view switching. (Switch_View): Do not skip specific private-dependent subtypes.
2020-07-27[Ada] x86-lynx178elf: use a-numaux.ads instead of a-numaux__libc-x86.adsPatrick Bernardi
gcc/ada/ * Makefile.rtl: Remove X86_TARGET_PAIRS for x86-lynx178elf.
2020-07-27[Ada] Warnings on overloays involving generic In_ParametersEd Schonberg
gcc/ada/ * sem_ch13.adb (Analyze_Address_Specification_Clause): Do not emit a warning when a constant declaration in a generic unit overlays a generic In_Parameter.
2020-07-27[Ada] AI12-0382: Loosen type-invariant overriding requirement of AI12-0042Gary Dismukes
gcc/ada/ * sem_ch3.adb (Check_Abstract_Overriding): Remove Scope comparison test from test related to initial implementation of AI12-0042, plus remove the related ??? comment. (Derive_Subprogram): Add test requiring that the type extension appear in the visible part of its enclosing package when checking the overriding requirement of 7.3.2(6.1/4), as clarified by AI12-0382.
2020-07-27[Ada] Add range check for GNATprove on 'Pos to Long_Integer conversionPiotr Trojanek
gcc/ada/ * exp_spark.adb (Expand_SPARK_N_Attribute_Reference) Extend existing workaround to 'Pos.
2020-07-27[Ada] Ada2020: AI12-0304 Put_Image attrs of lang-def typesBob Duff
gcc/ada/ * libgnat/s-rannum.ads, libgnat/s-rannum.adb: Add Put_Image. This will be inherited by the language-defined packages Ada.Numerics.Discrete_Random and Ada.Numerics.Float_Random. * libgnat/a-convec.ads, libgnat/a-convec.adb: Add Put_Image. * libgnat/s-putima.ads: Add pragma Preelaborate, so this can be imported into containers packages. * libgnat/s-putima.adb: Move Digit to private part; otherwise reference to Base is illegal in Preelaborate generic. * exp_put_image.adb (Build_Record_Put_Image_Procedure): Use the base type.
2020-07-24Daily bump.GCC Administrator
2020-07-23[Ada] Stub CUDA_Execute and CUDA_Global pragmasArnaud Charlet
This commit adds CUDA_Execute and CUDA_Global to the list of allowed pragmas. It also implements basic validation of said pragmas. gcc/ada/ * aspects.ads: Declare CUDA_Global as aspect. * einfo.ads: Use Flag118 for the Is_CUDA_Kernel flag. (Set_Is_CUDA_Kernel): New function. (Is_CUDA_Kernel): New function. * einfo.adb (Set_Is_CUDA_Kernel): New function. (Is_CUDA_Kernel): New function. * par-prag.adb (Prag): Ignore Pragma_CUDA_Execute and Pragma_CUDA_global. * rtsfind.ads: Define CUDA.Driver_Types.Stream_T and CUDA.Vector_Types.Dim3 entities * rtsfind.adb: Define CUDA_Descendant subtype. (Get_Unit_Name): Handle CUDA_Descendant packages. * sem_prag.ads: Mark CUDA_Global as aspect-specifying pragma. * sem_prag.adb (Analyze_Pragma): Validate Pragma_CUDA_Execute and Pragma_CUDA_Global. * snames.ads-tmpl: Define Name_CUDA_Execute and Name_CUDA_Global.
2020-07-23[Ada] Ada2020: AI12-0027 Access values and unaliased componentArnaud Charlet
Access values should never designate unaliased components. This new feature is documented in AI12-0027-1. gcc/ada/ * sem_ch13.ads (Same_Representation): Renamed as Has_Compatible_Representation because now the order of the arguments are taken into account; its formals are also renamed as Target_Type and Operand_Type. * sem_ch13.adb (Same_Representation): Renamed and moved to place the routine in alphabetic order. * sem_attr.adb (Prefix_With_Safe_Accessibility_Level): New subprogram. (Resolve_Attribute): Check that the prefix of attribute Access does not have a value conversion of an array type. * sem_res.adb (Resolve_Actuals): Remove restrictive check on view conversions which required matching value of Has_Aliased_Components of formals and actuals. * exp_ch4.adb (Handle_Changed_Representation): Update call to Same_Representation. (Expand_N_Type_Conversion): Update call to Same_Representation. * exp_ch5.adb (Change_Of_Representation): Update call to Same_Representation. * exp_ch6.adb (Add_Call_By_Copy_Code): Update call to Same_Representation. (Expand_Actuals): Update call to Same_Representation. (Expand_Call_Helper): Update call to Same_Representation.
2020-07-23[Ada] Add push/pop capability in OutputArnaud Charlet
Add the capability to use the Write_* procedures in an environment where you want to write debugging info but still use them to write to other files (such a C source files). gcc/ada/ * output.ads (Push_Output, Pop_Output): New procedures. * output.adb (FD_Array, FD_Stack, FD_Stack_Idx): New type and vars. (Push_Output, Pop_Output): New procedures.
2020-07-17Daily bump.GCC Administrator
2020-07-16[Ada] Misplace of internal master renaming declarationJavier Miranda
gcc/ada/ * exp_ch3.adb (Expand_N_Full_Type_Declaration): Ensure a _master declaration on limited types that might have tasks. * exp_ch9.adb (Build_Master_Renaming): For private types, if we are processing declarations in the private part, ensure that master is inserted before its full declaration; otherwise the master renaming may be inserted in the public part of the package (and hence before the declaration of its _master variable).
2020-07-16[Ada] AI12-0132 Freezing of renames_as_bodyArnaud Charlet
gcc/ada/ * sem_ch8.adb (Analyze_Subprogram_Renaming): A renames-as-body freezes the expression of any expression function that it renames.
2020-07-16[Ada] Ongoing work for AI12-0212 : container aggregatesEd Schonberg
gcc/ada/ * sem_aggr.adb (Resolve_Container_Aggregate): Add semantic checks for indexed aggregates, including component associations and iterated component associations. * exp_aggr.adb (Expand_Iterated_Component): New subprogram, subsidiary of Expand_Container_Aggreggate, used for positional, named, and indexed aggregates. (Aggregate_Size): New subprogram to precompute the size of an indexed aggregate prior to call to allocate it. (Expand_Range_Component): New subprogram so generate loop for a component association given by a range or a subtype name in an indexed aggregate.
2020-07-16[Ada] gnatbind: Fix No_Entry_Calls_In_Elaboration_Code messageBob Duff
gcc/ada/ * bindo-diagnostics.adb (Output_Invocation_Related_Suggestions): Use Cumulative_Restrictions.Set, because Restriction_Active only works at compile time.
2020-07-16[Ada] Ada2020: AI12-0117 Restriction No_Tasks_Unassigned_To_CPUBob Duff
gcc/ada/ * gnatbind.adb (Gnatbind): For No_Tasks_Unassigned_To_CPU, check that CPU has been set on the main subprogram. (Restriction_Could_Be_Set): Don't print No_Tasks_Unassigned_To_CPU if it would violate the above-mentioned rule. Up to now, all restrictions were checked by the compiler, with the binder just checking for consistency. But the compiler can't know which subprogram is the main, so it's impossible to check this one at compile time. * restrict.ads, restrict.adb: Misc refactoring. Change Warning to Warn, for consistency, since most already use Warn. (Set_Restriction): New convenience routine. * sem_ch13.adb (Attribute_CPU): Check No_Tasks_Unassigned_To_CPU. * sem_prag.adb (Pragma_CPU): Check No_Tasks_Unassigned_To_CPU. Misc refactoring. * tbuild.ads, tbuild.adb (Sel_Comp): New functions for building selected components.
2020-07-16[Ada] Remove duplicated lineEric Botcazou
gcc/ada/ * impunit.adb (Non_Imp_File_Names_95): Remove duplicate entry.
2020-07-16[Ada] Wrong execution of Tan on large argumentArnaud Charlet
gcc/ada/ * Makefile.rtl: replace a-numaux__x86.ads by a-numaux__libc-x86.ads and a-numaux__x86.adb by a-numaux__dummy.adb. * libgnat/a-numaux__x86.ads, libgnat/a-numaux__x86.adb: Removed. * libgnat/a-numaux__dummy.adb: New.
2020-07-16[Ada] Spurious error in instance nested in formal packageEd Schonberg
gcc/ada/ * sem_ch12.adb (Load_Parent_Of_Generic): If an ancestor is an instance whose source appears within a formal package of the current unit, there is no body of the ancestor needed to complete the current generic compilation.
2020-07-16[Ada] v7r2cert: minor refactoringDoug Rupp
gcc/ada/ * libgnat/s-thread__ae653.adb (taskVarAdd): Defunct, so remove. (Current_ATSD): Make it a TLS variable. (OK): Move to package scope. (System.Storage_Elements): Import and Use.
2020-07-16[Ada] Set missing Parent field of block entityEric Botcazou
gcc/ada/ * exp_ch9.adb (Expand_N_Accept_Statement): Set Parent of the created block entity to the created block statement.
2020-07-16[Ada] AI12-0004 Normalization and allowed charactersArnaud Charlet
gcc/ada/ * scng.adb (Scan): Detect wide characters not in NFKC. * libgnat/a-chahan.adb, libgnat/a-chahan.ads, libgnat/a-wichha.adb, libgnat/a-wichha.ads, libgnat/a-wichun.adb, libgnat/a-wichun.ads, libgnat/a-zchhan.adb, libgnat/a-zchhan.ads, libgnat/a-zchuni.adb, libgnat/a-zchuni.ads (Is_NFKC): New. * libgnat/s-utf_32.ads, libgnat/s-utf_32.adb (Is_UTF_32_NFKC): New.
2020-07-16[Ada] Ada2020: AI12-0117 Restriction No_Tasks_Unassigned_To_CPUBob Duff
gcc/ada/ * libgnat/s-rident.ads (Restriction_Id): Add No_Tasks_Unassigned_To_CPU.
2020-07-16[Ada] Adjust heuristics about size of static aggregatesBob Duff
gcc/ada/ * exp_aggr.adb (Max_Aggregate_Size): Use the small size of 64 when copying is needed (for example, for the initialization of a local variable, and for assignment statements). Use the larger size when static allocation can be done without copying.
2020-07-16[Ada] Ada2020: AI12-0055 No_Dynamic_CPU_Assignment restrictionBob Duff
gcc/ada/ * libgnat/s-rident.ads (No_Dynamic_CPU_Assignment): New restriction. Add it to all relevant profiles. * sem_ch13.adb (Attribute_CPU): Check No_Dynamic_CPU_Assignment restriction. (Attribute_CPU, Attribute_Dispatching_Domain, Attribute_Interrupt_Priority): Remove error checks -- these are checked in the parser. * sem_prag.adb (Pragma_CPU): Check No_Dynamic_CPU_Assignment restriction. We've got a little violation of DRY here. * sem.ads, sem_ch3.ads: Minor comment fix.
2020-07-16[Ada] Implicit dereferencing in container indexingGary Dismukes
gcc/ada/ * sem_ch4.adb (Try_Container_Indexing): When the prefix type is an access type, change it to the designated type, change the prefix to an explicit dereference, and emit a ?d? warning for the implicit dereference. Include a ??? comment questioning whether this is the right context in which to perform the implicit dereferencing.
2020-07-16[Ada] AI12-0373 Additional check on Integer_Literal functionArnaud Charlet
gcc/ada/ * sem_ch13.adb (Validate_Literal_Aspect): Ensure that the parameter is not aliased. Minor reformatting. * sem_util.adb (Statically_Names_Object): Update comment.
2020-07-16[Ada] Handle N_Others_Choice case in range-building functionGhjuvan Lacambre
gcc/ada/ * sem_case.adb (Build_Choice): Set Is_Static_Expression flag. (Lit_Of): Update specification to mention Is_Static_Expression flag. * sem_ch13.adb (Membership_Entry): Check for N_Others_Choice.