+2021-05-04 David Edelsohn <dje.gcc@gmail.com>
+
+ * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
+ get_fnname_from_decl for name of thunk.
+ * config/rs6000/rs6000.c (rs6000_declare_alias): Use assemble_name
+ and ASM_OUTPUT_LABEL.
+ (rs6000_xcoff_declare_function_name): Use assemble_name and
+ ASM_OUTPUT_LABEL.
+ (rs6000_xcoff_declare_object_name): Use ASM_OUTPUT_LABEL.
+ (rs6000_xcoff_encode_section_info): Don't add mapping class
+ for aliases. Always add [DS] mapping class to primary
+ FUNCTION_DECL.
+ (rs6000_asm_weaken_decl): Don't explicitly add [DS].
+
+2021-05-04 Martin Sebor <msebor@redhat.com>
+
+ PR middle-end/100307
+ * builtins.c (compute_objsize_r): Clear base0 for pointers.
+
+2021-05-04 Jeff Law <jlaw@tachyum.com>
+
+ * config/bfin/bfin.h (NOTICE_UPDATE_CC): Remove.
+
+2021-05-04 Segher Boessenkool <segher@kernel.crashing.org>
+
+ * caller-save.c: Remove CC0.
+ * cfgcleanup.c: Remove CC0.
+ * cfgrtl.c: Remove CC0.
+ * combine.c: Remove CC0.
+ * compare-elim.c: Remove CC0.
+ * conditions.h: Remove CC0.
+ * config/h8300/h8300.h: Remove CC0.
+ * config/h8300/h8300-protos.h: Remove CC0.
+ * config/h8300/peepholes.md: Remove CC0.
+ * config/i386/x86-tune-sched.c: Remove CC0.
+ * config/m68k/m68k.c: Remove CC0.
+ * config/rl78/rl78.c: Remove CC0.
+ * config/sparc/sparc.c: Remove CC0.
+ * config/xtensa/xtensa.c: Remove CC0.
+ (gen_conditional_move): Use pc_rtx instead of cc0_rtx in a piece of
+ RTL where that is used as a placeholder only.
+ * cprop.c: Remove CC0.
+ * cse.c: Remove CC0.
+ * cselib.c: Remove CC0.
+ * df-problems.c: Remove CC0.
+ * df-scan.c: Remove CC0.
+ * doc/md.texi: Remove CC0. Adjust an example.
+ * doc/rtl.texi: Remove CC0. Adjust an example.
+ * doc/tm.texi: Regenerate.
+ * doc/tm.texi.in: Remove CC0.
+ * emit-rtl.c: Remove CC0.
+ * final.c: Remove CC0.
+ * fwprop.c: Remove CC0.
+ * gcse-common.c: Remove CC0.
+ * gcse.c: Remove CC0.
+ * genattrtab.c: Remove CC0.
+ * genconfig.c: Remove CC0.
+ * genemit.c: Remove CC0.
+ * genextract.c: Remove CC0.
+ * gengenrtl.c: Remove CC0.
+ * genrecog.c: Remove CC0.
+ * haifa-sched.c: Remove CC0.
+ * ifcvt.c: Remove CC0.
+ * ira-costs.c: Remove CC0.
+ * ira.c: Remove CC0.
+ * jump.c: Remove CC0.
+ * loop-invariant.c: Remove CC0.
+ * lra-constraints.c: Remove CC0.
+ * lra-eliminations.c: Remove CC0.
+ * optabs.c: Remove CC0.
+ * postreload-gcse.c: Remove CC0.
+ * postreload.c: Remove CC0.
+ * print-rtl.c: Remove CC0.
+ * read-rtl-function.c: Remove CC0.
+ * reg-notes.def: Remove CC0.
+ * reg-stack.c: Remove CC0.
+ * reginfo.c: Remove CC0.
+ * regrename.c: Remove CC0.
+ * reload.c: Remove CC0.
+ * reload1.c: Remove CC0.
+ * reorg.c: Remove CC0.
+ * resource.c: Remove CC0.
+ * rtl.c: Remove CC0.
+ * rtl.def: Remove CC0.
+ * rtl.h: Remove CC0.
+ * rtlanal.c: Remove CC0.
+ * sched-deps.c: Remove CC0.
+ * sched-rgn.c: Remove CC0.
+ * shrink-wrap.c: Remove CC0.
+ * simplify-rtx.c: Remove CC0.
+ * system.h: Remove CC0. Poison NOTICE_UPDATE_CC, CC_STATUS_MDEP_INIT,
+ CC_STATUS_MDEP, and CC_STATUS.
+ * target.def: Remove CC0.
+ * valtrack.c: Remove CC0.
+ * var-tracking.c: Remove CC0.
+
+2021-05-04 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/100414
+ * tree-ssa-phiopt.c (get_non_trapping): Do not compute dominance
+ info here.
+ (tree_ssa_phiopt_worker): But unconditionally here.
+
+2021-05-04 Tobias Burnus <tobias@codesourcery.com>
+
+ * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses): Handle
+ && and || with floating-point and complex arguments.
+
+2021-05-04 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-inline.c (insert_debug_decl_map): Delete.
+ (copy_debug_stmt): Minor tweak.
+ (setup_one_parameter): Do not use a variable if the value is either
+ a read-only DECL or a non-addressable local variable in the caller.
+ In this case, insert the debug-only variable in the map manually.
+ (expand_call_inline): Do not generate a CLOBBER for these values.
+ * tree-inline.h (debug_map): Minor tweak.
+
+2021-05-04 Eric Botcazou <ebotcazou@adacore.com>
+
+ * builtins.c (builtin_with_linkage_p): Return true for stp[n]cpy.
+ * symtab.c (symtab_node::output_to_lto_symbol_table_p): Tidy up.
+
+2021-05-04 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/100329
+ * tree-ssa-reassoc.c (can_reassociate_p): Do not reassociate
+ asm goto defs.
+ (insert_stmt_after): Assert we're not running into asm goto.
+
+2021-05-04 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/100398
+ * tree-ssa-dse.c (pass_dse::execute): Preserve control
+ altering stmts.
+
+2021-05-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
+
+ * builtins.c (try_store_by_multiple_pieces): Fix constfun's prototype.
+
+2021-05-04 Alexandre Oliva <oliva@adacore.com>
+
+ * builtins.c (try_store_by_multiple_pieces): New.
+ (expand_builtin_memset_args): Use it. If target_char_cast
+ fails, proceed as for non-constant val. Pass len's ctz to...
+ * expr.c (clear_storage_hints): ... this. Try store by
+ multiple pieces after setmem.
+ (clear_storage): Adjust.
+ * expr.h (clear_storage_hints): Likewise.
+ (try_store_by_multiple_pieces): Declare.
+ * passes.def: Replace the last copy_prop with ccp.
+
2021-05-03 Tom de Vries <tdevries@suse.de>
PR target/100321
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * pprint.adb: Remove qualification of arbitrary calls to
+ Sinfo.Expressions and Sinfo.Parameter_Associations.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * pprint.adb (Expr_Name): Simplify with functional variant of
+ UI_Image.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * pprint.adb (To_Mixed): Removed.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * pprint.adb (List_Name_Count): Change type from Integer to
+ Natural.
+
+2021-05-04 Yannick Moy <moy@adacore.com>
+
+ * pprint.adb (Expression_Image): Special case for
+ expression-with-actions.
+
+2021-05-04 Bob Duff <duff@adacore.com>
+
+ * exp_ch4.adb (Expand_Concatenate): Remove the non-optimization.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * lib-xref.adb (Generate_Reference_To_Formals): Remove dedicated
+ branch for generic subprograms (they are now handled together
+ with non-generic subprograms in the ELSE branch); replace a
+ low-level Ekind membership test with a high-level call to
+ Is_Access_Subprogram_Type.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_ch12.adb (Check_Abstract_Primitives): Match First_Formal
+ with Next_Formal.
+ * sem_ch6.adb (Is_Non_Overriding_Operation): Likewise.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_prag.adb (Collect_Global_Item): Iterate directly over
+ formals.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_prag.ads (Collect_Subprogram_Inputs_Outputs): Update
+ comment; this routine is no longer used by GNATprove.
+ * sem_prag.adb (Find_Role): The IN parameter is on output only
+ when it belongs to non-function; also, the otherwise constant
+ object can only be written by a non-function.
+ (Collect_Global_Item): The IN parameter can only be written when
+ it belongs to non-function; also, unnest this check to make it
+ easier to read.
+
+2021-05-04 Arnaud Charlet <charlet@adacore.com>
+
+ * libgnat/s-assert.ads (Assert_Failure): Now a renaming of
+ Assertion_Error.
+ * libgnat/a-assert.ads (Assertion_Error): Now a first class
+ citizen. Remove dependency on System.Assertions.
+ * gcc-interface/a-assert.ads, gcc-interface/a-assert.adb: New.
+ * gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add
+ a-assert.o from gcc-interface.
+
+2021-05-04 Yannick Moy <moy@adacore.com>
+
+ * erroutc.adb (Matches): Move spec...
+ * erroutc.ads (Matches): ...here.
+
+2021-05-04 Yannick Moy <moy@adacore.com>
+
+ * gnat1drv.adb (Adjust_Global_Switches): Force error marker in
+ GNATprove mode.
+
+2021-05-04 Bob Duff <duff@adacore.com>
+
+ * binde.adb: No need for ??? marks in Binde, because it is
+ superseded by Bindo.
+ * bindo-writers.adb (Write_Unit_Closure): Verified that -Ra
+ works.
+ * exp_ch4.adb, sinfo.ads (Expand_N_Type_Conversion): Rules for
+ conversions passed to gigi are documented in sinfo.ads.
+ (Expand_N_Unchecked_Type_Conversion): Comment is a duplicate of
+ one in sinfo.ads.
+ (Expand_N_In): Robert already added sufficient comments years
+ after the ??? comment was inserted.
+ (Expand_Membership_Minimize_Eliminate_Overflow): I don't see any
+ reason why Stand should export Long_Long_Integer'Base -- it
+ doesn't export any other base types.
+ (Size_In_Storage_Elements): We are doing an allocator, so we
+ don't care about sizes in bits.
+ (Expand_N_Allocator): PolyORB isn't going to be significantly
+ improved, so we're not going to mess with remote access to
+ class-wide types.
+ (Optimize_Return_Stmt): It's not important to optimize return
+ statements in predicate functions -- there are many
+ more-important optimizations we could do. Keep part of the
+ comment without "???", to clarify why the "and then ...".
+ (User_Defined_Primitive_Equality_Op): The optimization doesn't
+ seem important enough.
+ (Expand_N_Unchecked_Type_Conversion): Refactor to use
+ Expand_N_Unchecked_Expression.
+ (Make_Array_Comparison_Op): This seems like a case of "it it's
+ not broken, don't fix it". Too much risk of causing bugs.
+ * debug_a.adb: Remove ??? comments asking why Current_Error_Node
+ is maintained unconditionally, and add a comment explaining why.
+ * errout.adb: These kinds of minor bugs do indeed exist, but
+ we're never going to get around to fixing them "properly", so we
+ need this code for robustness.
+ * gnatchop.adb (Read_File): Document when read can fail.
+ * gnatdll.adb (Parse_Command_Line): Nobody is complaining about
+ these arbitrary limits, so no need to use Table. Increase the
+ limits just in case. It is clear from the names what they are
+ limits on.
+ * gnatlink.adb: Add needed comments.
+ (Delete): An existing comment makes clear it's intentional, and
+ it's been like that since 1996.
+ (Process_Args): Improve comments.
+ (Search_Library_Path): Refactoring to avoid deep nesting.
+ * inline.adb (Build_Body_To_Inline): Probably won't get around
+ to doing that optimization.
+ (Is_Unit_Subprogram): No, this should not be moved to Sem_Aux,
+ because it is too specialized to this context.
+ (Do_Reset): No comment is needed here; it's clear from the
+ comment on Reset_Dispatching_Calls. Do_Reset is an artificial
+ subprogram; if we had proper iterators, it would just be an if
+ statement in the loop.
+ (Rewrite_Function_Call): Probably won't get around to doing that
+ optimization.
+ * layout.adb (Layout_Type): The gigi comment doesn't need to be
+ a ??? comment, and it's been that way since 2000. The
+ limitation to scalars will likely never be investigated, and
+ it's been that way since 2009.
+ * lib.adb (Check_Same_Extended_Unit): This doesn't look like
+ something that needs fixing; it looks like a permanent
+ workaround.
+ * lib-load.adb (Change_Main_Unit_To_Spec): It is good enough in
+ practice.
+ (Load_Unit): Nobody will ever get around to investigating the
+ obscure PMES oddity, and the optimization is not worth the
+ trouble.
+ * live.adb: It's not worth documenting this. It is used only
+ with a debug switch. Nobody who has done significant work on it
+ is still around, so it would require substantial investigation.
+ * mdll.ads: I see no reason for USE.
+ * namet.ads: Routines are obsolete, but they're not going
+ anywhere anytime soon (too much work, and surprisingly delicate
+ because of dependences on global variables).
+ * osint.ads: Minor.
+ * osint.adb: Improve comments.
+ (Full_Lib_File_Name): Use Smart_Find_File.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * exp_prag.adb, sem_prag.adb: Replace low-level Ekind membership
+ tests with a high-level call to Is_Formal_Object.
+
+2021-05-04 Arnaud Charlet <charlet@adacore.com>
+
+ * cstand.adb, sprint.adb, switch-c.adb, xr_tabls.ads,
+ xr_tabls.adb, xref_lib.adb: Address ??? comments.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_prag.adb (Analyze_Global_Item): Take subprogram kind into
+ account when accepting or rejecting a constant of an
+ access-to-variable type as a global Output/In_Out; do this check
+ inside an ELSIF branch to avoid unnecessary evaluation of the
+ subsequent condition.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_prag.adb (Role_Error, Usage_Error): Replace calls to
+ Name_Find and Get_Name_String with a call to To_String.
+
+2021-05-04 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_aggr.adb (Build_Siz_Exp): new function, subsidiary of
+ Expand_Container_Aggregate, to create an expression to be used
+ in the dynamic allocation of a container with a single container
+ element association.
+ (Add_Range): Handle static bounds of ranges over enumerations.
+ (Expand_Container_Aggregate): Add declaration for size
+ expression when needed, and use it in container object
+ declaration for container.
+
+2021-05-04 Arnaud Charlet <charlet@adacore.com>
+
+ * exp_ch7.adb (Build_Finalizer_Helper.New_Finalizer_Name):
+ Unnest so that it can be reused.
+ (Build_Finalizer_Helper.Process_Declarations): Call the
+ xxx__finalize_body procedure of a package instantiation in case
+ it contains finalization statements. Code clean ups.
+ (Build_Finalizer_Helper.Create_Finalizer): Export and set an
+ Interface_Name for library level finalizers since these may be
+ imported now.
+ (Build_Finalizer_Helper): Need to process library level package
+ body instantiations which may contain objects requiring
+ finalization.
+ * libgnat/s-finmas.ads: Fix typo.
+
+2021-05-04 Arnaud Charlet <charlet@adacore.com>
+
+ * checks.adb (Append_Range_Checks, Apply_Selected_Length_Checks,
+ Determine_Range, Insert_Range_Checks,
+ Install_Null_Excluding_Check, Selected_Length_Checks,
+ Selected_Range_Checks): Address ??? comments and code cleanups.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
+ Apply the rule even with no explicit Global contract (and remove
+ a dead condition for Refined_Global).
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
+ Extend check to protected entries.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
+ Fix reference to SPARK RM rule number.
+
+2021-05-04 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_intr.adb: Remove with/use clauses for Urealp.
+ (Expand_Is_Negative): Delete.
+ (Expand_Intrinsic_Call): Do not call it.
+ * rtsfind.ads (RE_Id): Remove RE_Float_Unsigned.
+ (RE_Unit_Table): Remove entry for RE_Float_Unsigned.
+ * snames.ads-tmpl (Name_Is_Negative): Delete.
+ * libgnat/s-imgrea.ads (Set_Image_Real): Fix mode of S parameter.
+ * libgnat/s-imgrea.adb: Add with/use clauses for System.Img_Util.
+ (LLU): New subtype.
+ (Maxdigs): Use it.
+ (Is_Negative): Reimplement.
+ (Image_Floating_Point): Simplify.
+ (Set_Image_Real): Fix mode of S parameter. Remove the low-level
+ processing on characters. Flip the sign of the Scale variable.
+ Compute the maximum number of digits for the straight notation.
+ Call Set_Decimal_Digits at the end to do the final formatting.
+ * libgnat/s-imguti.ads (Floating_Invalid_Value): New type.
+ (Set_Floating_Invalid_Value): New procedure.
+ * libgnat/s-imguti.adb (Set_Floating_Invalid_Value): Implement it
+ based on existing code from Set_Image_Real.
+ * libgnat/s-unstyp.ads (Float_Unsigned): Delete.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * csets.adb (Initialize): Refactor into CASE statement; raise
+ exception on unsupported code of character set (it will be
+ gently rejected earlier when scanning command line switches).
+ * switch-b.adb (Scan_Binder_Switches): Refactor into a
+ membership expression; add missing '9' choice; reorder as
+ described by GNAT UG, section 4.3.11.
+ * switch-c.adb (Scan_Front_End_Switches): Refactor into a
+ membership expression and reorder as above.
+ * doc/gnat_ugn/building_executable_programs_with_gnat.rst
+ (gnatic): Mention '5' as an allowed value for "c".
+ * gnat_ugn.texi: Regenerate.
+
+2021-05-04 Piotr Trojanek <trojanek@adacore.com>
+
+ * errout.adb (Error_Msg_Internal): Add assertion to prevent
+ style mistakes reappearing in the future.
+
+2021-05-04 Javier Miranda <miranda@adacore.com>
+
+ * exp_ch4.adb (Tagged_Membership): Remove wrong condition that
+ is not consistent with the documentation of this subprogram.
+
+2021-05-04 Yannick Moy <moy@adacore.com>
+
+ * sem_res.adb (Valid_Conversion): Make message a continuation.
+
+2021-05-04 Arnaud Charlet <charlet@adacore.com>
+
+ * styleg.adb: Address ??? comments.
+
2021-05-03 Arnaud Charlet <charlet@adacore.com>
* libgnat/a-stunau.ads, libgnat/a-stunau.adb,
+2021-05-04 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/future (promise::set_value): Check for existence
+ of shared state before dereferncing it.
+ (promise::set_exception, promise::set_value_at_thread_exit)
+ (promise::set_exception_at_thread_exit): Likewise.
+ (promise<R&>::set_value, promise<R&>::set_exception)
+ (promise<R&>::set_value_at_thread_exit)
+ (promise<R&>::set_exception_at_thread_exit): Likewise.
+ (promise<void>::set_value, promise<void>::set_exception)
+ (promise<void>::set_value_at_thread_exit)
+ (promise<void>::set_exception_at_thread_exit): Likewise.
+ * testsuite/30_threads/promise/members/at_thread_exit2.cc:
+ Remove unused variable.
+
+2021-05-04 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
+ Do not do arithmetic on null pointer.
+
+2021-05-04 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
+ (find_key_pointer(key_const_reference, false_type))
+ (find_key_pointer(key_const_reference, true_type)): Do not
+ dereference null pointer.
+
+2021-05-04 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
+ overflow.
+ * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
+ non-zero value to null pointer.
+ * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
+ Use past-the-end iterator for result.
+ * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
+ * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
+
+2021-05-04 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/100384
+ * include/std/variant (__get_t): New alias template yielding the
+ return type of std::get<N> on a variant.
+ (__visit_result_t): New alias template yielding the result of
+ std::visit.
+ (__same_types): Move into namespace __detail::__variant.
+ (__check_visitor_results): Likewise. Use __invoke_result_t and
+ __get_t.
+ (__check_visitor_result): Remove.
+ (visit): Use __visit_result_t for return type.
+ * testsuite/20_util/variant/100384.cc: New test.
+
+2021-05-04 Jonathan Wakely <jwakely@redhat.com>
+
+ * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
+ checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
+ * config.h.in: Regenerate.
+ * configure: Regenerate.
+ * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
+ * include/bits/random.h (_Select_uint_least_t<s, 1>):
+ Use __SIZEOF_INT128__ to decide whether to use __int128.
+ * include/std/charconv (__to_chars_unsigned_type): Likewise.
+
2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
* doc/xml/manual/ctype.xml: Move unix.org reference to https.