Daily bump.
authorGCC Administrator <gccadmin@gcc.gnu.org>
Wed, 21 Oct 2020 00:16:36 +0000 (00:16 +0000)
committerGCC Administrator <gccadmin@gcc.gnu.org>
Wed, 21 Oct 2020 00:16:36 +0000 (00:16 +0000)
gcc/ChangeLog
gcc/DATESTAMP
gcc/ada/ChangeLog
gcc/cp/ChangeLog
gcc/testsuite/ChangeLog
libbacktrace/ChangeLog
libcpp/ChangeLog
libgomp/ChangeLog
libstdc++-v3/ChangeLog

index 6eef4e842410a18c7a555116cae0b34d1109797e..a44bc0995ff5bcc54a33a82c31ef574f3fd045f8 100644 (file)
@@ -1,3 +1,139 @@
+2020-10-20  Andrew MacLeod  <amacleod@redhat.com>
+
+       PR tree-optimization/97505
+       * vr-values.c (vr_values::extract_range_basic): Trap if
+       vr_values version disagrees with range_of_builtin_call.
+
+2020-10-20  David Edelsohn  <dje.gcc@gmail.com>
+
+       * config/rs6000/rs6000.c (rs6000_option_override_internal):
+       Don't implcitly enable Altivec ABI if set on the command line.
+
+2020-10-20  Aldy Hernandez  <aldyh@redhat.com>
+
+       * calls.c (get_size_range): Adjust to work with ranger.
+       * calls.h (get_size_range): Add ranger argument to prototype.
+       * gimple-ssa-warn-restrict.c (class wrestrict_dom_walker): Remove.
+       (check_call): Pull out of wrestrict_dom_walker into a
+       static function.
+       (wrestrict_dom_walker::before_dom_children): Rename to...
+       (wrestrict_walk): ...this.
+       (pass_wrestrict::execute): Instantiate ranger.
+       (class builtin_memref): Add stmt and query fields.
+       (builtin_access::builtin_access): Add range_query field.
+       (builtin_memref::builtin_memref): Same.
+       (builtin_memref::extend_offset_range): Same.
+       (builtin_access::builtin_access): Make work with ranger.
+       (wrestrict_dom_walker::check_call): Pull out into...
+       (check_call): ...here.
+       (check_bounds_or_overlap): Add range_query argument.
+       * gimple-ssa-warn-restrict.h (check_bounds_or_overlap):
+       Add range_query and gimple stmt arguments.
+
+2020-10-20  Aldy Hernandez  <aldyh@redhat.com>
+
+       * gimple-ssa-warn-alloca.c (enum alloca_type): Remove
+       ALLOCA_BOUND_UNKNOWN and ALLOCA_CAST_FROM_SIGNED.
+       (warn_limit_specified_p): New.
+       (alloca_call_type_by_arg): Remove.
+       (cast_from_signed_p): Remove.
+       (is_max): Remove.
+       (alloca_call_type): Remove heuristics and replace with call into
+       ranger.
+       (pass_walloca::execute): Instantiate ranger.
+
+2020-10-20  Tobias Burnus  <tobias@codesourcery.com>
+
+       * lto-wrapper.c (run_gcc): Use proper variable for
+       %u.ltrans_args dump suffix.
+
+2020-10-20  Zhiheng Xie  <xiezhiheng@huawei.com>
+           Nannan Zheng  <zhengnannan@huawei.com>
+
+       * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG
+       for get/set reg intrinsics.
+
+2020-10-20  Aldy Hernandez  <aldyh@redhat.com>
+
+       * gimple-range.cc (gimple_ranger::range_of_builtin_ubsan_call):
+       Make externally visble...
+       (range_of_builtin_ubsan_call): ...here.  Add range_query argument.
+       (gimple_ranger::range_of_builtin_call): Make externally visible...
+       (range_of_builtin_call): ...here.  Add range_query argument.
+       * gimple-range.h (range_of_builtin_call): Move out from class and
+       make externally visible.
+       * vr-values.c (vr_values::extract_range_basic): Abstract out
+       builtin handling to...
+       (vr_values::range_of_expr): Handle non SSAs.
+       (vr_values::extract_range_builtin): ...here.
+       * vr-values.h (class vr_values): Add extract_range_builtin.
+       (range_of_expr): Rename NAME to EXPR.
+
+2020-10-20  Aldy Hernandez  <aldyh@redhat.com>
+
+       PR tree-optimization/97501
+       * gimple-range.cc (gimple_ranger::range_of_ssa_name_with_loop_info):
+       Saturate overflows returned from SCEV.
+
+2020-10-20  Aldy Hernandez  <aldyh@redhat.com>
+
+       * value-range.cc (irange::operator=): Split up call to
+       copy_legacy_range into...
+       (irange::copy_to_legacy): ...this.
+       (irange::copy_legacy_to_multi_range): ...and this.
+       (irange::copy_legacy_range): Remove.
+       * value-range.h: Remove copoy_legacy_range.
+       Add copy_legacy_to_multi_range and copy_to_legacy.
+
+2020-10-20  Tobias Burnus  <tobias@codesourcery.com>
+
+       * doc/invoke.texi (NVPTX options): Use @item not @itemx.
+
+2020-10-20  Richard Biener  <rguenther@suse.de>
+
+       * tree-cfg.c (reinstall_phi_args): Remove.
+       (gimple_split_edge): Remove PHIs around the edge redirection
+       to avoid touching them at all.
+
+2020-10-20  Richard Biener  <rguenther@suse.de>
+
+       * tree-vect-loop.c (vectorizable_reduction): Use the correct
+       loops latch edge for the PHI arg lookup.
+
+2020-10-20  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
+
+       * config/msp430/msp430.md (andneghi3): Allow general operand for
+       op1 and update output assembler template.
+
+2020-10-20  Tobias Burnus  <tobias@codesourcery.com>
+
+       * collect-utils.c (collect_execute, fork_execute): Add at-file suffix
+       argument.
+       * collect-utils.h (collect_execute, fork_execute): Update prototype.
+       * collect2.c (maybe_run_lto_and_relink, do_link, main, do_dsymutil):
+       Update calls by passing NULL.
+       * config/i386/intelmic-mkoffload.c (compile_for_target,
+       generate_host_descr_file, prepare_target_image, main): Likewise.
+       * config/gcn/mkoffload.c (compile_native, main): Pass at-file suffix.
+       * config/nvptx/mkoffload.c (compile_native, main): Likewise.
+       * lto-wrapper.c (compile_offload_image): Likewise.
+
+2020-10-20  Aldy Hernandez  <aldyh@redhat.com>
+
+       * range-op.cc (operator_rshift::op1_range): Special case
+       shifting by zero.
+
+2020-10-20  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/97496
+       * tree-vect-slp.c (vect_get_and_check_slp_defs): Guard extern
+       promotion with not in pattern.
+
+2020-10-20  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+
+       * config/s390/s390.c (s390_expand_vec_strlen): Add alignment
+       for memory access inside loop.
+
 2020-10-19  Andrew MacLeod  <amacleod@redhat.com>
 
        PR tree-optimization/97360
index 90bac5173df9217de108a021d26e8cf4017c04af..8a26653d7f826a92ab7326ca7930d098ccd607ec 100644 (file)
@@ -1 +1 @@
-20201020
+20201021
index 56ea2a3bd4d5788bc0b1da0c7c78c0028726c6ae..85d1f54f020badfa102f1255f278c9749231f6d4 100644 (file)
@@ -1,3 +1,441 @@
+2020-10-20  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch3.adb (Constrain_Decimal, Constrain_Enumeration,
+       Constrain_Float, Constrain_Integer, Constrain_Ordinary_Fixed):
+       Refine parameter type from Node_Id to Entity_Id.
+
+2020-10-20  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sprint.adb (po): Set Dump_Freeze_Null to False; align colons.
+       (ps): Likewise.
+
+2020-10-20  Ed Schonberg  <schonberg@adacore.com>
+
+       * sinfo.ads, sinfo.adb: The flag Box_Present can appear in
+       Iterated_Element_Association nodes.
+       * sem_aggr.adb (Resolve_Aggregate): Call
+       Resolve_Container_Aggregate when type of context has
+       corresponding aspect.
+       * sem_type.adb (Covers): In Ada_2020 an aggregate is compatible
+       with a type that carries the corresponding aspect.
+       * exp_ch3.adb (Make_Controlling_Function_Wrappers): Do not
+       create declarations and bodies for inherited primitive functions
+       of null extensions that dispatch on result, when current scope
+       includes an immediately visible non-overloadable homonym of the
+       function.
+       * libgnat/a-cborse.adb, libgnat/a-cborse.ads,
+       libgnat/a-cbhase.ads, libgnat/a-cbhase.adb,
+       libgnat/a-cborma.adb, libgnat/a-cborma.ads,
+       libgnat/a-cbhama.adb, libgnat/a-cbhama.ads,
+       libgnat/a-cbdlli.adb, libgnat/a-cbdlli.ads,
+       libgnat/a-convec.ads, libgnat/a-ciorse.ads,
+       libgnat/a-cihase.ads, libgnat/a-cihase.adb,
+       libgnat/a-ciorma.ads, libgnat/a-cihama.ads,
+       libgnat/a-cihama.adb, libgnat/a-cidlli.ads,
+       libgnat/a-cidlli.adb, libgnat/a-coinve.adb,
+       libgnat/a-cobove.adb, libgnat/a-cobove.ads,
+       libgnat/a-convec.adb, libgnat/a-coinve.ads,
+       libgnat/a-coorse.ads, libgnat/a-cohase.adb,
+       libgnat/a-cohase.ads, libgnat/a-coorma.ads,
+       libgnat/a-cohama.adb, libgnat/a-cohama.ads,
+       libgnat/a-cdlili.ads: Add primitive function Empty for use in
+       aspect Aggregate, and add corresponding body or expression
+       function.
+
+2020-10-20  Arnaud Charlet  <charlet@adacore.com>
+
+       * aspects.adb (Has_Aspect_Specifications_Flag): Add
+       N_Parameter_Specification.
+       * par-ch13.adb (Aspect_Specifications_Present): Also handle case
+       of an unknown aspect on the last formal parameter (terminated by
+       a Tok_Right_Paren). Minor reformatting.
+       * par-ch6.adb (P_Formal_Part): Scan aspects on formal
+       parameters.
+       * par.adb: Fix typos.
+       * sem_ch6.adb (Process_Formals): Add processing of aspects and
+       in particular Unreferenced aspect for now.
+       * sinfo.ads: Allow ASPECT_SPECIFICATIONS on a
+       PARAMETER_SPECIFICATION.
+       * doc/gnat_rm/implementation_defined_aspects.rst
+       (Aspect Unreferenced): Update documentation.
+       * gnat_rm.texi: Regenerate.
+
+2020-10-20  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_util.ads, sem_util.adb (Get_Accessibility): Refine result
+       type from Node_Id to Entity_Id.
+
+2020-10-20  Piotr Trojanek  <trojanek@adacore.com>
+
+       * einfo.adb, exp_attr.adb, sem_ch13.adb, sem_util.adb: Use
+       Is_Formal where possible.
+
+2020-10-20  Steve Baird  <baird@adacore.com>
+
+       * sem_util.ads: Declare a new package, Old_Attr_Util, which in
+       turn declares two more packages, Conditional_Evaluation and
+       Indirect_Temps. Conditional_Evaluation provides a predicate for
+       deciding whether a given 'Old attribute reference is eligible
+       for conditional evaluation and, in the case where it is
+       eligible, a function that constructs the Boolean-valued
+       condition that is to be evaluated at run time in deciding
+       whether to evaluate the attribute prefix.  Indirect_Temps
+       provides support for declaring a temporary which is only
+       initialized conditionally; more specifically, an access type and
+       a variable of that type are declared (unconditionally) and then
+       the variable is (conditionally) initialized with an allocator.
+       The existence of the access type and the pointer variable is
+       hidden from clients, except that a predicate,
+       Is_Access_Type_For_Indirect_Temp, is provided for identifying
+       such access types. This is needed because we want such an access
+       type to be treated like a "normal" access type (specifically
+       with respect to finalization of allocated objects). Other parts
+       of the compiler treat access types differently if
+       Comes_From_Source is False, or if the secondary stack storage
+       pool is used; this predicate is used to disable this special
+       treatment.
+       * sem_attr.adb (Uneval_Old_Msg): Improve message text to reflect
+       Ada202x changes.
+       (Analyze_Attribute): A previously-illegal 'Old attribute
+       reference is accepted in Ada2020 if it is eligible for
+       conditional evaluation.
+       * sem_res.adb (Valid_Conversion): Do not treat a rewritten 'Old
+       attribute like other rewrite substitutions. This makes a
+       difference, for example, in the case where we are generating the
+       expansion of a membership test of the form "Saooaaat'Old in
+       Named_Access_Type"; in this case Valid_Conversion needs to
+       return True (otherwise the expansion will be False - see the
+       call site in exp_ch4.adb).
+       * exp_attr.adb (Expand_N_Attribute_Reference): When expanding a
+       'Old attribute reference, test for the case where the reference
+       is eligible for conditional evaluation. In that case, use the
+       new "indirect temporary" mechanism provided by Sem_Util.
+       * exp_prag.adb
+       (Expand_Attributes_In_Consequence.Expand_Attributes): If
+       Sem_Util.Indirect_Temp_Needed indicates that there could be
+       correctness problems associated with the old expansion scheme
+       for dealing with 'Old attributes in contract cases consequences,
+       then we use the new "indirect temporary" mechanism provided by
+       Sem_Util instead. We do not want to do this unconditionally.
+       * sem_util.adb: Provide a body for the new Old_Attr_Util
+       package. Further work is needed in several areas for
+       correctness:
+       - The function Is_Repeatedly_Evaluated does not deal with
+       container aggregates yet.
+       - The function Is_Known_On_Entry does not deal with interactions
+       with the Global aspect.
+       Each area where more work is needed is indicated with a "???"
+       comment in the code; a more detailed description can be found
+       there. Some optimization opportunties are similarly indicated
+       with a "???" comment.
+       * exp_ch3.adb (Freeze_Type): In deciding whether to generate
+       expansion for the list controller of an access type, take the
+       predicate Is_Access_Type_For_Indirect_Temp into account. If the
+       predicate yields True, then generate the expansion.
+       * exp_util.adb (Build_Allocate_Deallocate_Proc): We don't
+       normally finalize allocated objects that are allocated on the
+       secondary stack. Add an exception to this rule if the predicate
+       Is_Access_Type_For_Indirect_Temp yields True.  As a result of
+       this exception, we have to deal with the fact that gigi expects
+       a different parameter profile if we are using the secondary
+       stack pool; the Pool and Alignment parameters must be omitted in
+       this case.
+
+2020-10-20  Javier Miranda  <miranda@adacore.com>
+
+       * sem_ch12.adb (Install_Parents_Of_Generic_Context,
+       Remove_Parents_Of_Generic_Context): New subprograms.
+       (Instantiate_Package_Body): Adding assertions to ensure that
+       installed parents are properly removed.
+
+2020-10-20  Claire Dross  <dross@adacore.com>
+
+       * sem_attr.adb (Analyze_Attribute): Emit a warning on 'Update
+       when Warn_On_Obsolescent_Feature is set to True.
+
+2020-10-20  Richard Kenner  <kenner@adacore.com>
+
+       * gnat_cuda.adb (Build_Register_Function_Call): Make procedure
+       call instead of function, rename to
+       Build_Register_Procedure_Call.
+       (Build_CUDA_Init_Proc): Make procedure call instead of function.
+
+2020-10-20  Justin Squirek  <squirek@adacore.com>
+
+       * exp_ch6.adb (Expand_Branch): Properly anticipate expansion of
+       conditional expressions producing object declarations in
+       addition to assignment statements, and rename formal.
+
+2020-10-20  Yannick Moy  <moy@adacore.com>
+
+       * errout.adb (Write_Source_Code_Line): Adopt display closer to
+       GCC format.
+       (Output_Messages): Deal specially with info messages.
+       * erroutc.adb (Prescan_Message): Fix bug leading to check
+       messages being considered as error messages in pretty output
+       mode.
+
+2020-10-20  Justin Squirek  <squirek@adacore.com>
+
+       * exp_ch6.adb (Expand_Call_Helper): Properly handle the case
+       where the condition of a conditional expression has been
+       optimized out when calculating the value of an extra
+       accessibility parameter.
+
+2020-10-20  Bob Duff  <duff@adacore.com>
+
+       * doc/gnat_ugn/gnat_utility_programs.rst: Change "_" to "-".
+
+2020-10-20  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_aggr.adb (Resolve_Aggregate): Warn on not fully
+       initialized box aggregate.
+       * sem_aggr.ads: Fix typo.
+       * sem_res.adb (Resolve_Actuals): Fix typo in error message
+       format marking it incorrectly as a continuation message.
+       * sem_elab.adb (Check_Internal_Call_Continue): Similarly, add
+       missing primary message in case of a call to an actual generic
+       subprogram.
+       * sem_warn.adb (Check_References): Do not warn on read but never
+       assigned variables if the type is partially initialized.
+       * libgnat/a-except.ads, libgnat/a-ststun.ads,
+       libgnat/g-sechas.ads, libgnat/a-cbdlli.ads,
+       libgnat/a-cfdlli.ads, libgnat/a-cobove.ads,
+       libgnat/a-cohata.ads, libgnat/a-crbltr.ads,
+       libgnat/a-cbmutr.ads, libgnat/a-crdlli.ads,
+       libgnat/a-cbsyqu.ads: Address new warning.
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+       Update doc on -gnatwv.
+       * gnat_ugn.texi: Regenerate.
+
+2020-10-20  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_ch6.adb (Analyze_Expression_Function): Mark static
+       expression functions as inlined.
+
+2020-10-20  Arnaud Charlet  <charlet@adacore.com>
+
+       * contracts.adb (Is_Prologue_Renaming): This function was
+       missing support for E_Constant which can also be generated in
+       protected objects.
+
+2020-10-20  Arnaud Charlet  <charlet@adacore.com>
+
+       * bindgen.adb (Gen_Bind_Env_String): Generate Ada 2012 compatible
+       strings. Code cleanup.
+
+2020-10-20  Yannick Moy  <moy@adacore.com>
+
+       * sem_util.adb, sem_util.ads: Comment fix.
+
+2020-10-20  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch8.adb (Check_Constrained_Object): Suppress discriminant
+       checks when the type has default discriminants and comes from
+       expansion of a "for of" loop.
+
+2020-10-20  Bob Duff  <duff@adacore.com>
+
+       * atree.ads: Make Default_Node a constant.  Remove the
+       modification of Comes_From_Source, and use a separate flag for
+       that.  Change Sloc to 0; it always overwritten, and never left
+       as the No_Location value.
+       (Print_Statistics): Move to spec so we can call it from
+       gnat1drv.
+       (Num_Nodes): Rename to clarify that this is approximate.
+       Correct comment: nodes and entities are never deleted, the count
+       is never decremented, and this is not used by Xref.
+       (Initialize): Correct comment: Error_List is not created here.
+       Other minor naming and comment changes.
+       * atree.adb (Extend_Node, New_Copy, New_Entity, New_Node):
+       Streamline these. Simplify and improve efficiency.  Move code
+       from Allocate_Initialize_Node to these, where it can be executed
+       unconditionally.  Take advantage of automatic zeroing of the
+       Nodes table.
+       (Allocate_Initialize_Node): Remove this. It was an efficiency
+       bottleneck, and somewhat complicated, because it was called from
+       4 places, and had all sorts of conditionals to check where it
+       was called from. Better to move most of that code to the call
+       sites, where it can be executed (or not) unconditionally.
+       (Allocate_New_Node): New procedure to partly replace
+       Allocate_Initialize_Node (called from just 2 of those 4 places).
+       (Comes_From_Source_Default): New flag written/read by
+       Set_Comes_From_Source_Default/Get_Comes_From_Source_Default.
+       This allows us to make Default_Node into a constant with
+       all-zeros value.
+       (Set_Paren_Count_Of_Copy): New procedure to avoid duplicated
+       code.
+       (Report): New procedure to encapsulate the call to the reporting
+       procedure.
+       (Atree_Private_Part): We now need a body for this package, to
+       contain package body Nodes.
+       (Approx_Num_Nodes_And_Entities): Was Num_Nodes.  For efficiency,
+       compute the answer from Nodes.Last. That way we don't need to
+       increment a counter on every node creation. Other minor naming
+       and comment changes.
+       * gnat1drv.adb: Call Atree.Print_Statistics if -gnatd.A switch
+       was given.  Add comment documenting the new order dependency (we
+       must process the command line before calling Atree.Initialize).
+       * debug.adb: Document -gnatd.A.
+       * einfo.adb, sinfo.adb: Remove useless Style_Checks pragmas.
+       * nlists.ads (Allocate_List_Tables): Inline makes node creation
+       a little faster.
+       * nlists.adb (Initialize): Remove local constant E, which didn't
+       seem to add clarity.
+       * treepr.adb (Print_Init): Use renamed
+       Approx_Num_Nodes_And_Entities function.
+       * types.ads: Change the Low and High bounds as described above.
+       * types.h: Change Low and High bounds to match types.ads.
+       * sem_ch8.adb, namet.adb, namet.ads: Move the computation of
+       Last_Name_Id from sem_ch8 to namet, and correct it to not assume
+       Name_Ids are positive.
+       * ali.adb, ali-util.adb, bindo-writers.adb, exp_dist.adb,
+       fmap.adb, fname-uf.adb, osint.adb: Fix various hash functions to
+       avoid assuming the various ranges are positive. Note that "mod"
+       returns a nonnegative result when the second operand is
+       positive. "rem" can return negative values in that case (in
+       particular, if the first operand is negative, which it now is).
+       * switch-c.adb: Allow switch -gnaten to control the value of
+       Nodes_Size_In_Meg.
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+       Remove traling whitespaces.
+       * opt.ads (Nodes_Size_In_Meg): New Variable.
+
+2020-10-20  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_util.adb (Remove_Side_Effects): Always generate a renaming
+       that is handled by the front-end in the case of an indexed or a
+       selected component whose prefix has a nonstandard representation.
+
+2020-10-20  Pat Rogers  <rogers@adacore.com>
+
+       * doc/gnat_rm/the_gnat_library.rst: Add Ada.Task_Initialization.
+       * gnat_rm.texi: Regenerate.
+
+2020-10-20  Yannick Moy  <moy@adacore.com>
+
+       * errout.adb: (Error_Msg-Internal): Pass the location for a line
+       insertion if any in the message.
+       (Output_Messages: Add display of source code lines if -gnatdF is
+       set.
+       (Write_Source_Code_Line): Code clean up.
+       * erroutc.adb (Prescan_Message): Apply prescan for continuation
+       lines when -gnatdF is set, and record presence of line
+       insertion.
+       * erroutc.ads (Has_Insertion_Line): New global for prescan.
+       (Error_Msg_Object): Add field to record line insertion if
+       present.
+       * errutil.adb (Error_Msg): Pass no location for Insertion_Sloc.
+
+2020-10-20  Arnaud Charlet  <charlet@adacore.com>
+
+       * exp_ch5.adb (Expand_N_Case_Statement): Do not generate
+       validity check when possible.
+
+2020-10-20  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_aggr.adb (Expand_Iterated_Component): Reorganize code to
+       ensure that Loop_Id is properly initialized on all paths, and
+       remove code duplication.
+
+2020-10-20  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch3.adb (Analyze_Subtype_Declaration): Propagate predicate
+       function to full view of the created type as well, if it was
+       created.
+
+2020-10-20  Arnaud Charlet  <charlet@adacore.com>
+
+       * exp_attr.adb (Expand_N_Attribute_Reference): Merge handling of
+       Simple_Storage_Pool and Storage_Pool.
+
+2020-10-20  Piotr Trojanek  <trojanek@adacore.com>
+
+       * aspects.ads: Introduce Subprogram_Variant aspect with the
+       following properties: GNAT-specific, with mandatory expression,
+       not a representation aspect, never delayed.
+       * contracts.adb (Expand_Subprogram_Contract): Mention new aspect
+       in the comment.
+       (Add_Contract_Item): Support addition of pragma
+       Subprogram_Variant to N_Contract node.
+       (Analyze_Entry_Or_Subprogram_Contract): Mention new aspect in
+       the comment; add pragma Subprogram_Variant to N_Contract node.
+       (Build_Postconditions_Procedure): Adapt call to
+       Insert_Before_First_Source_Declaration, which is now reused in
+       expansion of new aspect.
+       (Process_Contract_Cases_For): Also process Subprogram_Variant,
+       which is stored in N_Contract node together with Contract_Cases.
+       * contracts.ads (Analyze_Entry_Or_Subprogram_Contract): Mention
+       new aspect in the comment.
+       (Analyze_Entry_Or_Subprogram_Body_Contract): Likewise.
+       * einfo.adb (Get_Pragma): Support retrieval of new pragma.
+       * einfo.ads (Get_Pragma): Likewise.
+       * exp_ch6.adb (Check_Subprogram_Variant): New routine for
+       emitting call to check Subprogram_Variant expressions at run
+       time.
+       (Expand_Call_Helper): Check Subprogram_Variant expressions at
+       recursive calls.
+       * exp_prag.adb (Make_Op): Moved from expansion of pragma
+       Loop_Variant to Exp_Util, so it is now reused for expansion of
+       pragma Subprogram_Variant.
+       (Process_Variant): Adapt call to Make_Op after moving it to
+       Exp_Util.
+       (Expand_Pragma_Subprogram_Variant): New routine.
+       * exp_prag.ads (Expand_Pragma_Subprogram_Variant): Likewise.
+       * exp_util.adb (Make_Variant_Comparison): Moved from Exp_Prag
+       (see above).
+       * exp_util.ads (Make_Variant_Comparison): Likewise.
+       * inline.adb (Remove_Aspects_And_Pragmas): Handle aspect/pragma
+       Subprogram_Variant just like similar contracts.
+       * par-prag.adb (Prag): Likewise.
+       * sem.adb (Insert_Before_First_Source_Declaration): Moved from
+       Contracts (see above).
+       * sem.ads (Insert_Before_First_Source_Declaration): Likewise.
+       * sem_ch12.adb: Mention new aspect in the comment about
+       "Implementation of Generic Contracts", just like similar aspects
+       are mentioned there.
+       * sem_ch13.adb (Insert_Pragma): Mention new aspect in the
+       comment, because this routine is now used for Subprogram_Variant
+       just like for other similar aspects.
+       (Analyze_Aspect_Specifications): Mention new aspect in comments;
+       it is handled just like aspect Contract_Cases.
+       (Check_Aspect_At_Freeze_Point): Do not expect aspect
+       Subprogram_Variant just like we don't expect aspect
+       Contract_Cases.
+       * sem_prag.adb (Ensure_Aggregate_Form): Now also used for pragma
+       Subprogram_Variant, so update comment.
+       (Analyze_Pragma): Add initial checks for pragma
+       Subprogram_Variant.
+       (Analyze_Subprogram_Variant_In_Decl_Part): New routine with
+       secondary checks on the new pragma.
+       (Sig_Flags): Handle references within pragma Subprogram_Variant
+       expression just like references in similar pragma
+       Contract_Cases.
+       (Is_Valid_Assertion_Kind): Handle Subprogram_Variant just like
+       other similar contracts.
+       * sem_prag.ads (Analyze_Subprogram_Variant_In_Decl_Part): New
+       routine.
+       * sem_res.adb (Same_Or_Aliased_Subprograms): Moved to Sem_Util,
+       so it can be reused for detection of recursive calls where
+       Subprogram_Variant needs to be verified.
+       * sem_util.adb (Is_Subprogram_Contract_Annotation): Handle new
+       Subprogram_Variant annotation just like other similar
+       annotations.
+       (Same_Or_Aliased_Subprograms): Moved from Sem_Res (see above).
+       * sem_util.ads (Is_Subprogram_Contract_Annotation): Mention new
+       aspect in the comment.
+       (Same_Or_Aliased_Subprograms): Moved from Sem_Res (see above).
+       * sinfo.ads (N_Contract): Document handling of
+       Subprogram_Variant.
+       * snames.ads-tmpl: Add name for the internally generated
+       procedure with checks for Subprogram_Variant expression, name
+       for the new aspect and new pragma corresponding to aspect
+       Subprogram_Variant.
+
+2020-10-20  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_util.ads: Reorder declaration.
+
 2020-10-19  Ed Schonberg  <schonberg@adacore.com>
 
        * par-ch4.adb: (P_Aggregate_Or_Paren_Expr): Recognize
index 004df549897e44c534169c3c21120be98451bd45..aa321fb8a8962da885b7b8244f52ed5ce311d61d 100644 (file)
@@ -1,3 +1,8 @@
+2020-10-20  Nathan Sidwell  <nathan@acm.org>
+
+       * name-lookup.c (push_local_extern_decl_alias): Reconstextualize
+       alias' parm decls.  Drop any default args.
+
 2020-10-19  Iain Sandoe  <iain@sandoe.co.uk>
 
        PR c++/97438
index bbfb97b406929b8f324d4fcc99f2417ee6770623..649f2bd0c63bc76d91c02423b109ef157671bb91 100644 (file)
@@ -1,3 +1,68 @@
+2020-10-20  Jeff Law  <law@redhat.com>
+
+       * gcc.dg/Wbuiltin-declaration-mismatch-9.c: Improve pruning of
+       invalid scanf call messages.
+
+2020-10-20  Andrew MacLeod  <amacleod@redhat.com>
+
+       PR tree-optimization/97505
+       * gfortran.dg/pr97505.f90: New file.
+
+2020-10-20  Nathan Sidwell  <nathan@acm.org>
+
+       * g++.dg/lookup/local-extern.C: New.
+
+2020-10-20  Aldy Hernandez  <aldyh@redhat.com>
+
+       * gcc.dg/Wrestrict-22.c: New test.
+       * g++.dg/torture/pr92421.C: Adjust for ranger.
+
+2020-10-20  Aldy Hernandez  <aldyh@redhat.com>
+
+       * gcc.dg/Walloca-1.c: Adjust for ranger.
+       * gcc.dg/Walloca-12.c: Same.
+       * gcc.dg/Walloca-13.c: Same.
+       * gcc.dg/Walloca-2.c: Same.
+       * gcc.dg/Walloca-3.c: Same.
+       * gcc.dg/Walloca-6.c: Same.
+       * gcc.dg/Wvla-larger-than-2.c: Same.
+
+2020-10-20  Tobias Burnus  <tobias@codesourcery.com>
+
+       * gcc.misc-tests/outputs.exp: Add ltrans_args dump files
+       for 'lto save-temps'.
+
+2020-10-20  Aldy Hernandez  <aldyh@redhat.com>
+
+       * gcc.dg/pr97501.c: New test.
+
+2020-10-20  Nathan Sidwell  <nathan@acm.org>
+
+       * gcc.dg/cpp/endif.c: Move to ...
+       * c-c++-common/cpp/endif.c: ... here.
+       * gcc.dg/cpp/endif.h: Move to ...
+       * c-c++-common/cpp/endif.h: ... here.
+       * c-c++-common/cpp/eof-2.c: Adjust diagnostic.
+       * c-c++-common/cpp/eof-3.c: Adjust diagnostic.
+
+2020-10-20  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/82239
+       * g++.dg/cpp0x/static_assert16.C: New test.
+
+2020-10-20  Arnaud Charlet  <charlet@adacore.com>
+
+       * gnat.dg/opt11.adb: Add new expected warning.
+
+2020-10-20  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/97496
+       * gcc.dg/vect/bb-slp-pr97496.c: New testcase.
+
+2020-10-20  Aldy Hernandez  <aldyh@redhat.com>
+
+       * gcc.dg/pr97488.c: Add target int128 predicate.
+
 2020-10-19  Andrew MacLeod  <amacleod@redhat.com>
 
        * gcc.dg/pr97360-2.c: New test.
index 79837b302da8b8e0356cf84326e6fdf7fdfc3241..528b2b0e2f27dbc37e51295ed0db9a7038e9579b 100644 (file)
@@ -1,3 +1,8 @@
+2020-10-20  Ian Lance Taylor  <iant@golang.org>
+
+       * internal.h (ATTRIBUTE_FALLTHROUGH): Define.
+       * elf.c (elf_zlib_inflate): Use ATTRIBUTE_FALLTHROUGH.
+
 2020-09-28  Ian Lance Taylor  <iant@golang.org>
 
        PR libbacktrace/97082
index 411b2be8ce35b00ba910ff767bce0ffd8d6563fc..61bfe8131678b802cfa992db7fcc045021c6876c 100644 (file)
@@ -1,3 +1,11 @@
+2020-10-20  Nathan Sidwell  <nathan@acm.org>
+
+       * lex.c (_cpp_lex_direct): Do not complete EOF processing when
+       parsing_args.
+       * macro.c (collect_args): Do not unwind fake EOF.
+       (funlike_invocation_p): Do not unwind fake EOF.
+       (cpp_context): Replace abort with gcc_assert.
+
 2020-10-19  Nathan Sidwell  <nathan@acm.org>
 
        * internal.h (struct cpp_reader): Rename 'eof' field to 'endarg'.
index 34aa326987c91cd76a92f141b1c97c83226dd032..931df0a19eb3231405b7399041ee65566070a1da 100644 (file)
@@ -1,3 +1,30 @@
+2020-10-20  Jakub Jelinek  <jakub@redhat.com>
+
+       * target.c (gomp_target_init): Inside of the function, use automatic
+       variables corresponding to num_devices, num_devices_openmp and devices
+       global variables and update the globals only at the end of the
+       function.
+
+2020-10-20  Kwok Cheung Yeung  <kcy@codesourcery.com>
+
+       * env.c (gomp_target_offload_var): New.
+       (parse_target_offload): New.
+       (handle_omp_display_env): Print value of OMP_TARGET_OFFLOAD.
+       (initialize_env): Parse OMP_TARGET_OFFLOAD.
+       * libgomp.h (gomp_target_offload_t): New.
+       (gomp_target_offload_var): New.
+       * libgomp.texi (OMP_TARGET_OFFLOAD): New section.
+       * target.c (resolve_device): Generate error if device not found and
+       offloading is mandatory.
+       (gomp_target_fallback): Generate error if offloading is mandatory.
+       (GOMP_target): Add argument in call to gomp_target_fallback.
+       (GOMP_target_ext): Likewise.
+       (gomp_target_data_fallback): Generate error if offloading is mandatory.
+       (GOMP_target_data): Add argument in call to gomp_target_data_fallback.
+       (GOMP_target_data_ext): Likewise.
+       (gomp_target_task_fn): Add argument in call to gomp_target_fallback.
+       (gomp_target_init): Return early if offloading is disabled.
+
 2020-10-15  Kwok Cheung Yeung  <kcy@codesourcery.com>
 
        * libgomp.texi (omp_get_max_active_levels): Modify description.
index 5861f3a077e92fba5079836dabb0361fa80e15b6..b898cee82955a88e1acf38ad019fbf3abd3ad78a 100644 (file)
@@ -1,3 +1,88 @@
+2020-10-20  François Dumont  <fdumont@gcc.gnu.org>
+
+       * include/bits/hashtable_policy.h
+       (_Hash_node_value_base<>): Remove _Hash_node_base inheritance.
+       (_Hash_node_code_cache<bool _Cache_hash_code>): New.
+       (_Hash_node_value<typename _Value, bool _Cache_hash_code>): New.
+       (_Hash_node<>): Inherits _Hash_node_base<> and _Hash_node_value<>.
+       (_Map_base<>::__node_type): Remove.
+       (_Map_base<>::iterator): Remove.
+       (_Insert_base<>::__hash_cached): New.
+       (_Insert_base<>::__constant_iterators): New.
+       (_Insert_base<>::__hashtable_alloc): New.
+       (_Insert_base<>::__node_type): Remove.
+       (_Insert_base<>::__node_ptr): New.
+       (_Hash_code_base<>): Remove specializations.
+       (_Hash_code_base<>::__node_type): Remove.
+       (_Hash_code_base<>::_M_bucket_index(const __node_type*, size_t)):
+       Replace by...
+       (_Hash_code_base<>::_M_bucket_index(const _Hash_node_value<>&, size_t)):
+       ...this.
+       (_Hash_code_base<>::_M_store_code(__node_type*, __hash_code)):
+       Replace by...
+       (_Hash_code_base<>::_M_store_code(_Hash_node_code_cache<>&, __hash_code)):
+       ...this.
+       (_Hash_code_base<>::_M_copy_code(__node_type*, const __node_type*)):
+       Replace by...
+       (_Hash_code_base<>::_M_copy_code(_Hash_node_code_cache<>&,
+       const _Hash_node_code_base<>&)): ...this.
+       (_Hashtable_base<>::__constant_iterators): Remove.
+       (_Hashtable_base<>::__unique_keys): Remove.
+       (_Hashtable_base<>::__node_type): Remove.
+       (_Hashtable_base<>::iterator): Remove.
+       (_Hashtable_base<>::const_iterator): Remove.
+       (_Hashtable_base<>::local_iterator): Remove.
+       (_Hashtable_base<>::const_local_iterator): Remove.
+       (_Hashtable_base<>::__ireturn_type): Remove.
+       (_Hashtable_base<>::_Equal_hash_code<>::_S_equals): Replace by...
+       (_Hashtable_base<>::_S_equals(__hash_code, const _Hash_node_code_hash<>&)):
+       ...this.
+       (_Hashtable_base<>::_Equal_hash_code<>::_S_node_equals): Replace by...
+       (_Hashtable_base<>::_S_node_equals(__hash_code,
+       const _Hash_node_code_hash<>&)): ...this.
+       (_Hashtable_base<>::_Equal_hash_code<>): Remove.
+       (_Hashtable_base<>::_M_equals): Adapt.
+       (_Hashtable_baxe<>::_M_node_equals): Adapt.
+       (_Equality<>::_M_equal): Adapt.
+       (_Hashtable_alloc<>::__node_ptr): New.
+       (_Hashtable_alloc<>::__bucket_type): Rename into...
+       (_Hashtable_alloc<>::__node_base_ptr): ...this.
+       (_Hashtable_alloc<>::__bucket_alloc_type): Rename into...
+       (_Hashtable_alloc<>::__buckets_alloc_type): ...this.
+       (_Hashtable_alloc<>::__bucket_alloc_traits): Rename into...
+       (_Hashtable_alloc<>::__buckets_alloc_traits): ...this.
+       (_Hashtable_alloc<>::__buckets_ptr): New.
+       (_Hashtable_alloc<>::_M_allocate_node): Adapt.
+       (_Hashtable_alloc<>::_M_deallocate_node): Adapt.
+       (_Hashtable_alloc<>::_M_deallocate_node_ptr): Adapt.
+       (_Hashtable_alloc<>::_M_deallocate_nodes): Adapt.
+       (_Hashtable_alloc<>::_M_allocate_buckets): Adapt.
+       (_Hashtable_alloc<>::_M_deallocate_buckets): Adapt.
+       * include/bits/hashtable.h (_Hashtable<>): Adapt.
+
+2020-10-20  Aldy Hernandez  <aldyh@redhat.com>
+
+       * testsuite/21_strings/basic_string/capacity/1.cc: Pass
+       -Wno-stringop-overflow to test.
+
+2020-10-20  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/95917
+       * include/std/coroutine (__noop_coro_frame): Replace with
+       noop_coroutine_handle::__frame.
+       (__dummy_resume_destroy): Define inline in __frame.
+       (__noop_coro_fr): Replace with noop_coroutine_handle::_S_fr
+       and define as inline.
+       * testsuite/18_support/coroutines/95917.cc: New test.
+
+2020-10-20  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/std/coroutine (coroutine_handle<_Promise>): Remove
+       base class. Add constructors, conversions, accessors etc. as
+       proposed for LWG 3460.
+       (coroutine_handle<noop_coroutine_promise>): Likewise.
+       * testsuite/18_support/coroutines/lwg3460.cc: New test.
+
 2020-10-19  Jonathan Wakely  <jwakely@redhat.com>
 
        * include/bits/unique_ptr.h (make_unique_for_overwrite): Define