[gcc/marxin/heads/slp-function-v2] (327 commits) Experiment with SLP - whole function scope.

Martin Liska marxin@gcc.gnu.org
Thu Jun 11 09:46:43 GMT 2020


The branch 'marxin/heads/slp-function-v2' was updated to point to:

 d90b8a772e8... Experiment with SLP - whole function scope.

It previously pointed to:

 7a3f144c1a5... Experiment with SLP - whole function scope.

Diff:

!!! WARNING: THE FOLLOWING COMMITS ARE NO LONGER ACCESSIBLE (LOST):
-------------------------------------------------------------------

  7a3f144... Experiment with SLP - whole function scope.

commit 7a3f144c1a5ace29931c4c6f47ddd0119f8852d3
Author: Martin Liska <mliska@suse.cz>
Date:   Wed Jun 3 11:40:17 2020 +0200

    Experiment with SLP - whole function scope.


Summary of changes (added commits):
-----------------------------------

  d90b8a7... Experiment with SLP - whole function scope.
  8cff672... asan: fix RTX emission for ilp32
  3747878... vect: Rename things related to rgroup_masks
  b337242... vect: Rename fully_masked_p to using_partial_vectors_p
  042f408... vect: Rename can_fully_mask_p to can_use_partial_vectors_p
  8ff5739... prepare-commit-hook: Use gcc-config.diff-file.
  9aadfdd... contrib: Avoid redundant 'git diff' in prepare-commit-msg h
  656e363... Fix -Wformat-diag in options-save.c
  184c21b... slim up mem exprs to avoid line breaks in -fverbose-asm
  dcf41a4... RISC-V: Unify the output asm pattern between gpr_save and g
  d0e0c13... RISC-V: Describe correct USEs for gpr_save pattern [PR95252
  ec6ffbb... Daily bump.
  a73051a... libstdc++: Fix some ranges algos optimizations [PR95578]
  06ef9c1... [PR51447] restore the global reg var before returning from 
  a9eec96... coroutines: Make call argument handling more robust [PR9544
  a2c2cee... PR middle-end/95353 - spurious -Wstringop-overflow writing 
  3a391ad... libstdc++: Extend memcmp optimization in std::lexicographic
  371cc68... avoid stmt-info allocation for debug stmts
  36e95a9... tree-optimization/95576 - fix compare-debug issue with SLP 
  b5cebc9... aarch64: Fix an ICE in register_tuple_type [PR95523]
  73266be... [Ada] AI12-0364 Add a modular atomic arithmetic package
  50ff02b... gcc-changelog: fix parse_git_name_status for renames.
  4fed5d5... c++: Fix ICE with delayed parsing of noexcept-specifier [PR
  2db262f... [Ada] AI12-0311 New checks for language-defined units
  8439cae... [Ada] Don't build equivalent record aggregate if type has p
  76e0721... [Ada] Ada 202x AI12-0192 "requires late initialization"
  5c0c89c... [Ada] Add missing Sloc on new explicit dereferences
  f95fb9d... [Ada] Additional warnings on overlapping actuals of composi
  67a44a4... [Ada] Implement AI12-0162 Memberships and Unchecked_Unions
  e156631... [Ada] Remove obsolete code in Resolve_Call
  2378f3e... [Ada] Insert explicit dereferences when building actual sub
  b9daf13... [Ada] Disable unwanted warnings in Assertion_Policy(Ignore)
  9c62140... [Ada] Fix gnatmetric switches description
  536c271... [Ada] Update headers
  e67df67... [Ada] Improve code generated for dynamic discriminated aggr
  3aeb5eb... [Ada] Remove more references to ASIS
  a53b03b... [Ada] Fix typo in exception message
  9c4b497... [Ada] Fix minor typo in comment of membership choice parsin
  8ecc348... [Ada] Revert workaround for expansion of Enum_Rep in GNATpr
  c64ac47... [Ada] Fold Enum_Rep attribute in evaluation and not in expa
  4322f3d... [Ada] Classwide controlled obj not dispatching
  dc419b9... [Ada] Ada_2020 AI12-0220: Pre/Postconditions on Access_To_S
  057548b... [Ada] Fix assertion failure on functions with contracts
  3ea9566... [Ada] Simplify detection of static membership choices
  414e752... [Ada] Minor fix style and typos in comments
  bbfd4f2... [Ada] Remove unreferenced GNATprove utility routine Get_Low
  640ef71... [Ada] Remove Determine_License
  948590a... [Ada] Incorrect accessibility checks on functions calls
  71c4a2b... [Ada] Reject illegal bodies for null procedures
  895cf05... [Ada] Fix incorrect insertion of post-call actions in if-ex
  c392a00... [Ada] Minor reformatting and some typo fixes
  f25161b... Make {SLP_TREE,STMT_VINFO}_VEC_STMTS a vector of gimple *
  1396fa5... Merge evrp uses of substitute_and_fold_engine into the engi
  8b6731e... Add missing store in emission of asan_stack_free.
  df81764... AArch64: Adjust costing of by element MUL to be the same as
  b05d556... Introduce STMT_VINFO_VEC_STMTS
  6d9ef06... tmmark: verify_ssa failed [PR95569]
  dc6d15e... Add gcc_assert that &global_options are not dirty modified.
  771e60d... gcc-changelog: add more Review by prefixes.
  1ea9a0b... gcc-changelog: Improve git_commit.py diagnostics
  b952c2c... Daily bump.
  733167f... libstdc++: Define converting assignment operator for std::m
  d364705... libstdc++: Define std::bad_optional_access constructor as d
  d7274db... PowerPC: Add future hwcap2 bits
  2753f2f... PowerPC: Add future hwcap2 bits
  7ba33e8... PowerPC: Add future hwcap2 bits
  243e5bb... PowerPC: Add pcrel/prefixed target supports.
  7762567... When specifying a non-system prefix with --with-zstd, the b
  84fa38d... asan: fix wrong options for a test-case.
  006f28a... coroutines: Ensure distinct DTOR trees [PR95137].
  62963c6... gcc-changelog: Use non-zero exit status on error
  7710368... tree-inline: Fix VLA handling [PR95552]
  ab2789e... tsan: Add optional support for distinguishing volatiles
  6e52b22... PowerPC: PowerPC tests: Add prefixed/pcrel tests.
  ec34277... Remove dead code
  9886612... d: Merge upstream dmd 13d67c575.
  ef41587... c++: Tweak predeclare_vla.
  bf4ab26... openmp: ensure variables in offload table are streamed out 
  ac22e65... Remove dead code
  e12516e... Fix some ChangeLog entries
  f6ee4c4... gcov-dump: fix --help spacing
  4089df8... sanitizer: do not inline no-sanitize into sanitizer fn
  bb3ab62... AArch64+SVE: Add support for unpacked unary ops and BIC
  452283b... gcov: improve --coverage small example
  862b9b2... libgcov: fix TOPN type casting
  009668e... [Ada] Missing check on private overriding of dispatching pr
  a2048d0... [Ada] Small enhancement in XEinfo utility
  fd66407... [Ada] Implement AI12-0028: Import of variadic C functions
  2d6f6e0... [Ada] Code clean ups and comments updates
  3e67110... [Ada] Improve handling of null unbounded strings
  1a7748a... [Ada] Remove kludge for AI05-0087
  148c86d... [Ada] Small cleanup in Einfo unit
  4e510a0... [Ada] Ada2020 AI12-0282: Shared variable control aspects in
  c4609e7... [Ada] Improve handling of aggregates in Side_Effect_Free
  10212bd... [Ada] Fix wrong type being used for range check generation
  c42006e... [Ada] Expand more others aggregates statically
  4228c32... [Ada] Code refactoring on calls to Set_Debug_Info_Needed
  7d4d54a... [Ada] Missing documentation for Returns_By_Ref
  d4fd463... [Ada] Spurious overlap error on zero-sized arrays with -gna
  7bf5f4d... [Ada] Write_Invocation_Graph_Vertex: include lib item name
  b97813a... [Ada] Propagate DIC, Invariant and Predicate attributes to 
  bf2480e... [Ada] Crash on exit statement within predicated loop
  059a704... [Ada] gnatbind: Correct assertions in Add_Edge_Kind_Check
  338c32f... [Ada] Add debugging message
  dc8adf5... [Ada] Remove bypass for instance bodies from Is_Visible_Com
  1138102... [Ada] Membership test against a non-excluding subtype
  8e6ca7a... [Ada] Ada2020 AI12-0282: Shared variable control aspects in
  05cb816... [Ada] gnatpp: documentation for --no-separate-return switch
  881d7a9... [Ada] Add missing tag with -gnatw.d
  742048a... [Ada] Refine implementation of AI05-0149 missing conversion
  5402594... [Ada] Spurious error on instantiations with Taft_Amendment 
  6859ef4... [Ada] Annotate Ada.Synchronous_Barriers with SPARK_Mode => 
  3795dac... [Ada] AI1-0201 Relational operators of static string types 
  c68d70e... [Ada] Ada2020: AI12-0301 Predicates and Default_Value
  d68c6d7... [Ada] Disable assertion regarding Body_Before_Spec_Edge
  942a384... libsanitizer: use gnu++14
  4373fd2... gcc-changelog: fix deduction for root ChangeLog
  d6dbb71... c-family: Fix up MEM_REF printing [PR95580]
  653ab08... match.pd: Optimize ffs comparisons against constants [PR955
  9a39b91... testsuite: Fix g++.dg/torture/pr95493.C FAIL on i686-linux 
  1d9921c... xtensa: libgcc: fix PR target/95571
  df2c006... rs6000/testsuite: Allow xxperm* instead of only vperm*
  2c455ae... Daily bump.
  1c0fdaf... openmp: ensure variables in offload table are streamed out 
  ffac959... bootstrap: Fix --disable-bootstrap with older g++.
  a37fbff... libstdc++: Fix failing tests
  931fdcc... Add missing ChangeLog entries
  187da2c... libstdc++: Implement operator<< for std::unique_ptr (LWG 29
  5fceefe... d: Fix regression caused by recent refactoring
  49a09af... d: Merge upstream dmd 955b8b36f.
  8cd2396... PR fortran/95195 - Fortran testcase should clean up afterwa
  c1057cc... PR bootstrap/95555 - powepc64 bootstrap failure due to -Wma
  5dc3986... Fortran  : ICE in maybe_canonicalize_comparison_1 PR92993
  8be374e... forwprop: Ignore scalar mode vectors in simplify_vector_con
  296d644... testsuite: Fix up pr95548.C testcase.
  d6430e3... AArch64: Expand on comment of stack-clash and implicit prob
  635408d... [arm] Fix vfp_operand_register for VFP HI regs
  291f65f... rs6000: Replace FAIL with gcc_unreachable
  e7b3f65... [arm] (header usage fix) include c++ algorithm header via s
  48b799e... [Ada] Implement AI12-0073 (Ravenscar disallows Synchronous_
  63408d0... [Ada] AI12-0204 Renaming of a prefixed view
  072c507... [Ada] AI12-0085 Missing aspect cases for Remote_Types
  a689887... [Ada] Spurious error on call to controlled primitive
  5351d61... [Ada] Port a modified expansion of Enum_Rep from GNAT to GN
  e344ec2... [Ada] Style cleanups in new code for Pure_Barriers
  a998e58... [Ada] Implement AI12-0291 (Jorvik profile)
  4b8c2c4... [Ada] AI12-0228 Properties of qualified expressions used as
  8eda13a... [Ada] Fix handling of 'Enum_Rep and renamings
  bbe7d67... [Ada] Remove the Has_Dynamic_Range_Check flag
  6476fc3... [Ada] Implement AI12-0290 (Simple_Barriers restriction)
  8b0ec65... [Ada] Issue with unnesting of 'First/Last and renaming
  24eda9e... [Ada] Implement predicate checks on qualified expressions (
  7b7f1ca... [Ada] Restore Snames.Name_SPARK as it used in the GNATprove
  7907619... [Ada] Remove processing of SPARK_05 restriction
  b4aa6e2... [Ada] AI12-0287 Legality Rules for null exclusions in renam
  58c4038... [Ada] Ada.Text_IO: fix typo
  8214938... [Ada] Do not warn on partial access to atomic object with a
  591bdee... [Ada] Add gnatname use for multiple units files support
  fccf77d... [Ada] Update doc on Enum_Rep/Enum_Val
  176de68... [Ada] Better code generation for nested aggregates
  c382d07... [Ada] Reuse standard expansion of 'First and 'Last in GNATp
  3ebf0cb... [Ada] Reuse Get_Index_Subtype in the special expander for G
  6e063ac... [Ada] AI12-0226 Make objects more consistent
  ae9293f... [Ada] Silence spurious warning on instances of formal vecto
  d2f7fa0... [Ada] gnatbind: Deterministic No_Entry_Calls_In_Elaboration
  2f7294f... [Ada] Ada_2020: shared variable control aspects on formal d
  8472d81... [Ada] Fix socket timeout correction for Windows Server 2019
  54c1fdb... [Ada] Add Depends contracts to Delete procedures of formal 
  9490fd5... [Ada] AI12-0309 Missing checks for pragma Suppress
  53d461e... Daily bump.
  0a2ee40... d: Merge upstream dmd 73d8e2fec.
  f08995e... i386: Improve expansion of __builtin_parity
  fced594... d: Merge upstream dmd 108ca1bcd.
  c3a2ba1... d: Merge upstream dmd b0df0e982
  5aaccde... PR fortran/95091 - Buffer overflows with submodules and lon
  761306f... d: Merge upstream dmd 1831b24ff.
  b342cfd... PR fortran/95091 - Buffer overflows with submodules and lon
  d8930b1... d: Merge upstream dmd cef1e7991.
  557a40f... rs6000: allow cunroll to grow size according to -funroll-lo
  71489d8... Introduce flag_cunroll_grow_size for cunroll
  905ba62... Added test case for a PR which has been fixed in the meanti
  8f94b07... Daily bump.
  eca7a60... Fix ICE in ODR enum streaming [PR95548]
  1ca05de... MAINTAINERS: Add myself as xtensa port maintainer
  2e6a664... [PR95456] avoid memcpy (_, NULL, 0) in gcc.c
  1a59f3d... Daily bump.
  5bc13e5... d: Merge upstream dmd 740f3d1ea.
  3a73a6a... Temporarily remove an unintentionally commited test.
  cecc73a... c++: Make braced-init-list as template arg work with aggr i
  bcd96c9... PR fortran/95530, PR fortran/95537 - Buffer overflows with 
  6088327... coroutines: co_returns are statements, not expressions.
  1c7bcef... diagnostics: Consistently add fixit hint for implicit built
  0cdc55f... d: Merge upstream dmd f5638c7b8.
  5094c44... c++: Fix pretty-print of pointer minus integer.
  640e05e... fortran/95509 - fix spellcheck-operator.f90 regression
  1afc467... [OpenACC 'exit data'] Strip 'GOMP_MAP_STRUCT' mappings
  1809628... [OpenACC 'exit data'] Simplify 'GOMP_MAP_STRUCT' handling
  9643f5b... Add 'libgomp.oacc-c-c++-common/struct-copyout-{1,2}.c'
  5905cbd... d: Merge upstream dmd 56f0a65c4.
  300452d... Adjust text of expected warnings to g:b825a22890740f341eae5
  89b49a9... [Ada] Replace ? by ?? in Error_Msg_N
  f67a6e9... [Ada] Update comments wrt Ada 83 handling
  4ccf713... [Ada] Support 'Reduce under -gnatX
  3af132b... [Ada] Add note about gnatcov reliance on thunk names
  faf2500... [Ada] Subtype inherits Atomic flag from base type
  bf44027... [Ada] Fix punctuation in description of Enum_Rep attribute
  32115be... [Ada] Make the Has_Dynamic_Range_Check flag obsolete
  0ad46f0... [Ada] Do not create an empty list of nodes that confuses GN
  f8ca4dd... [Ada] Optimize Normalize_Pathname
  c8e89a6... [Ada] Spurious assert failure in Walk_Library_Items
  2db2527... [Ada] Use Is_Incomplete_Type instead of a low-level Ekind t
  5055499... [Ada] Simplify iteration over components
  c7d1931... [Ada] Fix incorrect initialization for array of non-standar
  a275441... [Ada] Put_Image attribute: Rtsfind cleanups
  d1987ff... [Ada] Move routine for detecting special Text_IO packages f
  ca124a6... [Ada] Add comment about function only used in CodePeer
  2107ca0... [Ada] Spurious error on address clause in task body
  a8aecf3... [Ada] Add missing Global contract to Ada.Containers.Functio
  a9969d7... [Ada] AI12-0207 Convention of anonymous access types
  632d4a4... [Ada] AI12-0336 Meaning of Time_Offset
  bec1369... [Ada] Fix assertion failure on double rederivation of priva
  e0fd1b9... [Ada] Put_Image attribute
  c3c80e3... [Ada] AI12-0144 Make Discrete_Random more flexible
  61fa3fd... [Ada] AI12-0237 Getting the representation of an enumeratio
  79d09a4... [Ada] AI12-0318 No_IO should apply to Ada.Directories
  f191b2c... [Ada] AI12-0235 System.Storage_Pools should be pure
  efd0843... [Ada] Add No_Truncation flag on view conversion for GNAT-LL
  5620a9c... [Ada] Assertion_Policy (Ignore) ignores invariants
  6c8e70f... [Ada] Rename parameter of routines in Checks
  a4c1787... [Ada] Minor wording changes wrt Ada 202x
  d3da83f... d: Merge upstream dmd 6d5bffa54
  9758d19... tree-optimization/95539 - fix SLP_TREE_REPRESENTATIVE vs. d
  9a182ef... expand: Simplify removing subregs when expanding a copy [PR
  892b51c... ix86: Improve __builtin_c[lt]z followed by extension [PR955
  6ea6c49... Add new/delete to struct occurence
  80d6f89... middle-end/95493 - bogus MEM_ATTRS for variable array acces
  6c6931a... Fix bitmask conflict between PTA_AVX512VP2INTERSECT and PTA
  3add342... Daily bump.
  f2242ec... libstdc++: Remove workarounds for constrained nested class 
  b825a22... Implement a solution for PR middle-end/10138 and PR middle-
  2cbc99d... d: Merge upstream dmd 48d704f08
  4e05c91... libstdc++: Specialize copy/copy_n for istreambuf_iterator a
  8e788ac... d: Merge upstream dmd 47ed0330f
  7ece3bd... c++: Fix complex constexpr virtual cases [PR93310].
  0ddb93c... c++: Fix FE devirt with diamond inheritance [PR95158]
  8c727bd... PR fortran/95500 - Segfault compiling extra interface on in
  4f2d05e... coroutines: Fix missed ramp function return copy elision [P
  e7ef9a4... Add test for PR95464.c.
  2c838a3... [OpenACC 'exit data'] Evaluate 'copyfrom' individually for 
  a02f1ad... [OpenACC 'exit data'] Evaluate 'finalize' individually for 
  db7179e... Fix 'sizeof' usage in 'libgomp.oacc-c-c++-common/deep-copy-
  06ec617... [OpenACC] Repair/restore 'is_tgt_unmapped' checking
  2112d32... [OpenACC] Don't open-code 'gomp_remove_var' in 'acc_unmap_d
  4662f7f... [OpenACC] Remove 'tgt' reference counting from 'acc_unmap_d
  af8fd1a... Extend 'libgomp.oacc-c-c++-common/pr92854-1.c' some more [P
  f233418... [OpenACC] Use 'tgt' returned from 'gomp_map_vars'
  8d7794c... [OpenACC] XFAIL behavior of over-eager 'finalize' clause
  2e24d45... [OpenACC] Missing unlocking on error paths in attach/detach
  dc95415... [OpenACC] Missing unlocking on error paths in attach/detach
  1e378ed... 'libgomp.oacc-fortran/{error_,}stop-{1,2,3}.f': initialize 
  2803d2f... d: Split up d-frontend.cc into multiple parts.
  5261cf8... Add processing STRICT_LOW_PART for matched reloads.
  ab56390... aarch64: PR target/95526: Fix gimplification of varargs
  1980ffe... ipa-sra: Do not remove statements necessary because of non-
  9a810e5... [ARM]: Correct the grouping of operands in MVE vector scatt
  d34f510... [PATCH][GCC] arm: Fix the MVE ACLE vbicq intrinsics.
  b15369e... add vect_get_slp_vect_def
  a0dae76... Add explicit SLP_TREE_LANES
  e1008cd... libstdc++: Make std::copy_n work with negative and non-inte
  a3a70bf... Simplify SLP code wrt SLP_TREE_DEF_TYPE
  43088bb... Fix zero-masking for vcvtps2ph when dest operand is memory.
  53ec04c... [Ada] AI12-0184: Long Long C Data types
  301e2a1... [Ada] New package Ada.Task_Initialization
  9531ffd... [Ada] Ada_2020: contracts for formal subprograms
  25a76d6... [Ada] Add missing conversion in call to Finalize primitive
  3ab26de... [Ada] Get rid of Disable_FE_Inline_Always
  198064c... [Ada] Fix a couple of oversights in previous change
  110d082... [Ada] Put_Image attribute
  a3fbece... [Ada] Alignment clause ignored on completion derived from p
  e5e53c7... [Ada] Remove OpenACC support
  a6b37ab... [Ada] Remove obsolete reference to gigi in comment
  4f31d6d... [Ada] Implement AI12-0275 (Make subtype_mark optional in ob
  96cd894... [Ada] Fix glitch for N_Delta_Aggregate/N_Case_Expression/N_
  354cce5... [Ada] Avoid redefining IS_DIR_SEPARATOR macro
  c21938b... [Ada] Wrong walk order in Walk_Library_Items
  1e01ddd... [Ada] Import Adafinal as convention Ada
  0b27ccc... [Ada] Incorrect source line range on subprogram body with c
  593627b... [Ada] Revamp dump and aux output names
  d2f87b2... [Ada] Set convention and inlined flag on default null proce
  a0c94bd... [Ada] Missing accessibility check on access discriminant in
  7c02e40... [Ada] Fix Is_Absolute_Path on Windows
  51bc44b... [Ada] Update the documentation in checks.ads about range ch
  d46b330... [Ada] Small tweak to special handling of private index type
  528576d... [Ada] New procedure Register_Global_Unhandled_Action
  32cc672... [Ada] Update URL and bug report instructions
  b5682bf... [Ada] Avoid buffer overflow in Long_Long_Float_Text_IO
  b68c167... [Ada] Remove System.Parameters.Single_Lock
  bbe376e... [Ada] Continuation of "Get rid of more references to Univer
  8b3bf48... [Ada] Add another ad-hoc case to the Has_Private_View mecha
  8a91f77... [Ada] Fix fallout of cleanup to Has_Private_View mechanism
  9f3a179... [Ada] Minor editorial fixes
  54ecfb1... cselim: Extend to check non-trapping for more references [P
  9b4e77e... Fix missing assemble_external in ASM_OUTPUT_FDESC
  0ecf522... Missing __divtf3@@GCC_4.4.0 on ia64
  c0b99f6... Fix uppercase in trunc<mode><pmov_dst_3>2.
  eeb54a1... c++: Reject some further reinterpret casts in constexpr [PR
  9a5b743... Daily bump.
  1dc83b4... Provide diagnostic hints for missing C++ cinttypes string c
  9eea5d2... Provide diagnostic hints for missing C inttypes.h string co
  34e4962... diagnostics: Add function call parens matching to c_parser.
  29e304f... optimize tanh(x) / sinh (x) to 1/ cosh (x)
  817738f... Update gcc sv.po.
  c0d738a... identify lfs prefixed case PR95347
  c06280a... c++: more constrained nested partial specialization
  aee6907... c++: constrained nested partial specialization [PR92103]
  3fb68f2... Optimize ODR enum streaming
  cf7eac5... coroutines: Allow parameter packs in co_await/yield express
  b19d8aa... Fix missing dependencies for selftests which occasionally c
  ef4e0c3... c++: Fix VLA in template [PR95232]
  8d57c30... Simple patch only add assumed-rank to the list of possible 
  887c45f... tree-optimization/95487 - use a truth type for scatter mask
  6d36cc2... jit: implement BT_CONST_VOLATILE_PTR [PR 95306]
  779ae32... tree-optimization/95495 - use SLP_TREE_REPRESENTATIVE in as
  079632d... Prefer simple case changes in spelling suggestions
  f05c84a... simplify visited flag unsetting in SLP scalar cost computat
  93535a2... [OpenMP] Fix mapping of artificial variables (PR94874)
  dda7167... Cleanup LTO tag streaming.

commit d90b8a772e856dcbffa8e147438bf1a84e721cf4
Author: Martin Liska <mliska@suse.cz>
Date:   Wed Jun 3 11:40:17 2020 +0200

    Experiment with SLP - whole function scope.

commit 8cff672cb9a132d3d3158c2edfc9a64b55292b80
Author: Martin Liska <mliska@suse.cz>
Date:   Thu Jun 11 09:34:41 2020 +0200

    asan: fix RTX emission for ilp32
    
    gcc/ChangeLog:
    
            PR sanitizer/95634
            * asan.c (asan_emit_stack_protection): Fix emission for ilp32
            by using Pmode instead of ptr_mode.
    
    Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

commit 37478789dc446a28ffc642ee121e8c3959e5fe47
Author: Kewen Lin <linkw@gcc.gnu.org>
Date:   Thu Jun 4 13:57:19 2020 +0800

    vect: Rename things related to rgroup_masks
    
    Power supports vector memory access with length (in bytes) instructions.
    Like existing fully masking for SVE, it is another approach to vectorize
    the loop using partially-populated vectors.
    
    As Richard Sandiford pointed out, we can rename the rgroup struct
    rgroup_masks to rgroup_controls, rename its members mask_type to type,
    masks to controls to be more generic.
    
    Besides, this patch also renames some functions like vect_set_loop_mask
    to vect_set_loop_control, release_vec_loop_masks to
    release_vec_loop_controls, vect_set_loop_masks_directly to
    vect_set_loop_controls_directly.
    
    Bootstrapped/regtested on aarch64-linux-gnu.
    
    gcc/ChangeLog:
    
            * tree-vect-loop-manip.c (vect_set_loop_mask): Renamed to ...
            (vect_set_loop_control): ... this.
            (vect_maybe_permute_loop_masks): Rename rgroup_masks related things.
            (vect_set_loop_masks_directly): Renamed to ...
            (vect_set_loop_controls_directly): ... this.  Also rename some
            variables with ctrl instead of mask.  Rename vect_set_loop_mask to
            vect_set_loop_control.
            (vect_set_loop_condition_masked): Rename rgroup_masks related things.
            Also rename some variables with ctrl instead of mask.
            * tree-vect-loop.c (release_vec_loop_masks): Renamed to ...
            (release_vec_loop_controls): ... this.  Rename rgroup_masks related
            things.
            (_loop_vec_info::~_loop_vec_info): Rename release_vec_loop_masks to
            release_vec_loop_controls.
            (can_produce_all_loop_masks_p): Rename rgroup_masks related things.
            (vect_get_max_nscalars_per_iter): Likewise.
            (vect_estimate_min_profitable_iters): Likewise.
            (vect_record_loop_mask): Likewise.
            (vect_get_loop_mask): Likewise.
            * tree-vectorizer.h (struct rgroup_masks): Renamed to ...
            (struct rgroup_controls): ... this.  Also rename mask_type
            to type and rename masks to controls.

commit b3372425ecf3e225d7a2b3c73e061e11498b6f74
Author: Kewen Lin <linkw@gcc.gnu.org>
Date:   Thu Jun 4 10:09:01 2020 +0800

    vect: Rename fully_masked_p to using_partial_vectors_p
    
    Power supports vector memory access with length (in bytes) instructions.
    Like existing fully masking for SVE, it is another approach to vectorize
    the loop using partially-populated vectors.
    
    As Richard Sandiford suggested, this patch is to update the existing
    fully_masked_p field to using_partial_vectors_p.  Introduce one macro
    LOOP_VINFO_USING_PARTIAL_VECTORS_P for partial vectorization checking
    usage, update the LOOP_VINFO_FULLY_MASKED_P with
    LOOP_VINFO_USING_PARTIAL_VECTORS_P && !masks.is_empty() and still use
    it for mask-based partial vectors approach specific checks.
    
    Bootstrapped/regtested on aarch64-linux-gnu.
    
    gcc/ChangeLog:
    
            * tree-vect-loop-manip.c (vect_set_loop_condition): Rename
            LOOP_VINFO_FULLY_MASKED_P to LOOP_VINFO_USING_PARTIAL_VECTORS_P.
            (vect_gen_vector_loop_niters): Likewise.
            (vect_do_peeling): Likewise.
            * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Rename
            fully_masked_p to using_partial_vectors_p.
            (vect_analyze_loop_costing): Rename LOOP_VINFO_FULLY_MASKED_P to
            LOOP_VINFO_USING_PARTIAL_VECTORS_P.
            (determine_peel_for_niter): Likewise.
            (vect_estimate_min_profitable_iters): Likewise.
            (vect_transform_loop): Likewise.
            * tree-vectorizer.h (LOOP_VINFO_FULLY_MASKED_P): Updated.
            (LOOP_VINFO_USING_PARTIAL_VECTORS_P): New macro.

commit 042f4082979aa22e08c008ed4c5b4bab3915a9c2
Author: Kewen Lin <linkw@gcc.gnu.org>
Date:   Wed Jun 3 17:15:14 2020 +0800

    vect: Rename can_fully_mask_p to can_use_partial_vectors_p
    
    Power supports vector memory access with length (in bytes) instructions.
    Like existing fully masking for SVE, it is another approach to vectorize
    the loop using partially-populated vectors.
    
    As Richard Sandiford pointed out, we should extend the existing flag
    can_fully_mask_p to be more generic, to indicate whether we have
    any chances with partial vectors for this loop.  So this patch
    is to rename this flag to can_use_partial_vectors_p to be more
    meaningful, also rename the macro LOOP_VINFO_CAN_FULLY_MASK_P
    to LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P.
    
    Bootstrapped/regtested on aarch64-linux-gnu.
    
    gcc/ChangeLog:
    
            * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Rename
            can_fully_mask_p to can_use_partial_vectors_p.
            (vect_analyze_loop_2): Rename LOOP_VINFO_CAN_FULLY_MASK_P to
            LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P.  Rename saved_can_fully_mask_p
            to saved_can_use_partial_vectors_p.
            (vectorizable_reduction): Rename LOOP_VINFO_CAN_FULLY_MASK_P to
            LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P.
            (vectorizable_live_operation): Likewise.
            * tree-vect-stmts.c (permute_vec_elements): Likewise.
            (check_load_store_masking): Likewise.
            (vectorizable_operation): Likewise.
            (vectorizable_store): Likewise.
            (vectorizable_load): Likewise.
            (vectorizable_condition): Likewise.
            * tree-vectorizer.h (LOOP_VINFO_CAN_FULLY_MASK_P): Renamed to ...
            (LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P): ... this.
            (_loop_vec_info): Rename can_fully_mask_p to can_use_partial_vectors_p.

commit 8ff57396d6dea4976b05902919070aa0e562354d
Author: Martin Liska <mliska@suse.cz>
Date:   Thu Jun 11 10:02:26 2020 +0200

    prepare-commit-hook: Use gcc-config.diff-file.
    
    contrib/ChangeLog:
    
            * prepare-commit-msg: Replace ENV variable with a git config
            value.

commit 9aadfdd650bc32150c9800b73fb3e5ac83fc5a72
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Jun 11 09:57:58 2020 +0200

    contrib: Avoid redundant 'git diff' in prepare-commit-msg hook
    
    contrib/ChangeLog:
    
            * prepare-commit-msg: Use 'tee' to save the diff to a file
            instead of running 'git diff' twice.

commit 656e363bccc1926b223eb78962338d638ba72d32
Author: Martin Liska <mliska@suse.cz>
Date:   Thu Jun 11 09:12:25 2020 +0200

    Fix -Wformat-diag in options-save.c
    
    The patch removes bunch of warnings:
    
    options-save.c:12004:29: warning: unquoted identifier or keyword ‘global_options’ in format [-Wformat-diag]
    12004 |     internal_error ("Error: global_options are modified in local context\n");
    
    gcc/ChangeLog:
    
            * optc-save-gen.awk: Quote error string.

commit 184c21bf1cd04a108ed9bd04635e7d57ac39f616
Author: Alexandre Oliva <oliva@adacore.com>
Date:   Wed Jun 10 23:58:23 2020 -0300

    slim up mem exprs to avoid line breaks in -fverbose-asm
    
    An asm operand with a "VIEW_CONVERT_EXPR<struct {
      [...]
    }>" will output the definition of the struct as asm code.  Oops.
    
    Enable TDF_SLIM in print_mem_expr to avoid such line breaks.
    
    
    for  gcc/ChangeLog
    
            * print-rtl.c (print_mem_expr): Enable TDF_SLIM in dump_flags.

commit dcf41a4e6033213f5e5f80da23080df961d83996
Author: Kito Cheng <kito.cheng@sifive.com>
Date:   Wed Jun 10 19:41:06 2020 -0700

    RISC-V: Unify the output asm pattern between gpr_save and gpr_restore pattern.
    
    gcc/ChangeLog:
    
            * config/riscv/riscv-protos.h (riscv_output_gpr_save): Remove.
            * config/riscv/riscv-sr.c (riscv_sr_match_prologue): Update
            value.
            * config/riscv/riscv.c (riscv_output_gpr_save): Remove.
            * config/riscv/riscv.md (gpr_save): Update output asm pattern.

commit d0e0c1300f9f08608873df5571e14a61308dd0c0
Author: Kito Cheng <kito.cheng@sifive.com>
Date:   Wed Jun 10 19:40:59 2020 -0700

    RISC-V: Describe correct USEs for gpr_save pattern [PR95252]
    
     - Verified on rv32emc/rv32gc/rv64gc bare-metal target and rv32gc/rv64gc
       linux target with qemu.
    
    gcc/ChangeLog:
    
            * config/riscv/predicates.md (gpr_save_operation): New.
            * config/riscv/riscv-protos.h (riscv_gen_gpr_save_insn): New.
            (riscv_gpr_save_operation_p): Ditto.
            * config/riscv/riscv-sr.c (riscv_remove_unneeded_save_restore_calls):
            Ignore USEs for gpr_save patter.
            * config/riscv/riscv.c (gpr_save_reg_order): New.
            (riscv_expand_prologue): Use riscv_gen_gpr_save_insn to gen gpr_save.
            (riscv_gen_gpr_save_insn): New.
            (riscv_gpr_save_operation_p): Ditto.
            * config/riscv/riscv.md (S3_REGNUM): New.
            (S4_REGNUM): Ditto.
            (S5_REGNUM): Ditto.
            (S6_REGNUM): Ditto.
            (S7_REGNUM): Ditto.
            (S8_REGNUM): Ditto.
            (S9_REGNUM): Ditto.
            (S10_REGNUM): Ditto.
            (S11_REGNUM): Ditto.
            (gpr_save): Model USEs correctly.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/riscv/pr95252.c: New.

commit ec6ffbb919cdde26da3fbc949e65d564c70a3084
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Jun 11 00:16:45 2020 +0000

    Daily bump.

commit a73051a0ea9ce8281e748a74dd924a6eb8fb3723
Author: Patrick Palka <ppalka@redhat.com>
Date:   Wed Jun 10 17:37:53 2020 -0400

    libstdc++: Fix some ranges algos optimizations [PR95578]
    
    ranges::copy and a number of other ranges algorithms have unwrapping
    optimizations for iterators of type __normal_iterator, move_iterator and
    reverse_iterator.  But in the checks that guard these optimizations we
    currently only test that the iterator of the iterator/sentinel pair has
    the appropriate type before proceeding with the corresponding
    optimization, and do not also test the sentinel type.
    
    This breaks the testcase in this PR because this testcase constructs via
    range adaptors a range whose begin() is a __normal_iterator and whose
    end() is a custom sentinel type, and then performs ranges::copy on it.
    From there we bogusly perform the __normal_iterator unwrapping
    optimization on this iterator/sentinel pair, which immediately leads to
    a constraint failure since the custom sentinel type does not model
    sentinel_for<int*>.
    
    This patch fixes this issue by refining each of the problematic checks
    to also test that the iterator and sentinel types are the same before
    applying the corresponding unwrapping optimization.  Along the way, some
    code simplifications are made.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/95578
            * include/bits/ranges_algo.h (__lexicographical_compare_fn):
            Also check that the iterator and sentinel have the same type before
            applying the unwrapping optimization for __normal_iterator.
            Split the check into two, one for the first iterator/sentinel
            pair and another for second iterator/sentinel pair.  Remove uses
            of __niter_base, and remove uses of std::move on a
            __normal_iterator.
            * include/bits/ranges_algobase.h (__equal_fn): Likewise.
            (__copy_or_move): Likewise.  Perform similar adjustments for
            the reverse_iterator and move_iterator optimizations.  Inline
            the checks into the if-constexprs, and use using-declarations to
            make them less visually noisy.  Remove uses of __niter_wrap.
            (__copy_or_move_backward): Likewise.
            * testsuite/25_algorithms/copy/95578.cc: New test.
            * testsuite/25_algorithms/copy_backward/95578.cc: New test.
            * testsuite/25_algorithms/equal/95578.cc: New test.
            * testsuite/25_algorithms/lexicographical_compare/95578.cc: New test.
            * testsuite/25_algorithms/move/95578.cc: New test.
            * testsuite/25_algorithms/move_backward/95578.cc: New test.

commit 06ef9c119c56568e5f77a5189aa382cb97c95a9e
Author: Alexandre Oliva <oliva@adacore.com>
Date:   Wed Jun 10 17:56:36 2020 -0300

    [PR51447] restore the global reg var before returning from main
    
    A runtime system might legitimately hold in rbx a value expected to be
    preserved across the call to main, but its use as a global register
    variable stops main from preserving it.
    
    
    for  gcc/testsuite/ChangeLog
    
            PR rtl-optimization/51447
            * gcc.c-torture/execute/pr51447.c (main): Preserve call-saved
            register.

commit a9eec9625ea7165292958be04899b057804192fb
Author: Iain Sandoe <iain@sandoe.co.uk>
Date:   Wed Jun 10 00:15:28 2020 +0100

    coroutines: Make call argument handling more robust [PR95440]
    
    build_new_method_call is supposed to be able to handle a null
    arguments list pointer (when the method has no parms).  There
    were a couple of places where uses of the argument list pointer
    were not defended against NULL.
    
    gcc/cp/ChangeLog:
    
            PR c++/95440
            * call.c (add_candidates): Use vec_safe_length() for
            testing the arguments list.
            (build_new_method_call_1): Use vec_safe_is_empty() when
            checking for an empty args list.
    
    gcc/testsuite/ChangeLog:
    
            PR c++/95440
            * g++.dg/coroutines/pr95440.C: New test.

commit a2c2cee92e5defff9bf23d3b1184ee96e57e5fdd
Author: Martin Sebor <msebor@redhat.com>
Date:   Wed Jun 10 12:00:08 2020 -0600

    PR middle-end/95353 - spurious -Wstringop-overflow writing to a trailing array plus offset
    
    Also resolves:
    PR middle-end/92939 - missing -Wstringop-overflow on negative index from the end of array
    
    gcc/ChangeLog:
    
            PR middle-end/95353
            PR middle-end/92939
            * builtins.c (inform_access): New function.
            (check_access): Call it.  Add argument.
            (addr_decl_size): Remove.
            (get_range): New function.
            (compute_objsize): New overload.  Only use compute_builtin_object_size
            with raw memory function.
            (check_memop_access): Pass new argument to compute_objsize and
            check_access.
            (expand_builtin_memchr, expand_builtin_strcat): Same.
            (expand_builtin_strcpy, expand_builtin_stpcpy_1): Same.
            (expand_builtin_stpncpy, check_strncat_sizes): Same.
            (expand_builtin_strncat, expand_builtin_strncpy): Same.
            (expand_builtin_memcmp): Same.
            * builtins.h (check_nul_terminated_array): Declare extern.
            (check_access): Add argument.
            (struct access_ref, struct access_data): New structs.
            * gimple-ssa-warn-restrict.c (clamp_offset): New helper.
            (builtin_access::overlap): Call it.
            * tree-object-size.c (decl_init_size): Declare extern.
            (addr_object_size): Correct offset computation.
            * tree-object-size.h (decl_init_size): Declare.
            * tree-ssa-strlen.c (handle_integral_assign): Remove a call
            to maybe_warn_overflow when assigning to an SSA_NAME.
    
    gcc/testsuite/ChangeLog:
    
            PR middle-end/95353
            PR middle-end/92939
            * c-c++-common/Wstringop-truncation.c: Remove an xfail.
            * gcc.dg/Warray-bounds-46.c: Remove a bogus warning.
            * gcc.dg/Wrestrict-9.c: Disable -Wstringop-overflow.
            * gcc.dg/Wstringop-overflow-12.c: Remove xfails.
            * gcc.dg/Wstringop-overflow-28.c: Same.
            * gcc.dg/builtin-stringop-chk-4.c: Same.
            * gcc.dg/builtin-stringop-chk-5.c: Same.
            * gcc.dg/builtin-stringop-chk-8.c: Same.
            * gcc.dg/strlenopt-74.c: Avoid buffer overflow.
            * gcc.dg/Wstringop-overflow-34.c: New test.
            * gcc.dg/Wstringop-overflow-35.c: New test.
            * gcc.dg/Wstringop-overflow-36.c: New test.
            * gcc.dg/Wstringop-overflow-37.c: New test.
            * gcc.dg/Wstringop-overflow-38.c: New test.

commit 3a391adf7a38780f8d01dbac08a2a143fc80b469
Author: François Dumont <fdumont@gcc.gnu.org>
Date:   Wed Jun 10 17:48:46 2020 +0100

    libstdc++: Extend memcmp optimization in std::lexicographical_compare
    
    Make the memcmp optimization work for std::deque iterators and safe
    iterators.
    
    Co-authored-by: Jonathan Wakely  <jwakely@redhat.com>
    
    libstdc++-v3/ChangeLog:
    
    2020-06-08  François Dumont  <fdumont@gcc.gnu.org>
                Jonathan Wakely  <jwakely@redhat.com>
    
            * include/bits/deque.tcc (__lex_cmp_dit): New.
            (__lexicographical_compare_aux1): Define overloads for deque
            iterators.
            * include/bits/stl_algobase.h (__lexicographical_compare::__3way):
            New static member function.
            (__lexicographical_compare<true>::__3way): Likewise.
            (__lexicographical_compare<true>::__lc): Use __3way.
            (__lexicographical_compare_aux): Rename to
            __lexicographical_compare_aux1 and declare overloads for deque
            iterators.
            (__lexicographical_compare_aux): Define new forwarding function
            that calls __lexicographical_compare_aux1 and declare new overloads
            for safe iterators.
            (lexicographical_compare): Do not use __niter_base on
            parameters.
            * include/debug/safe_iterator.tcc
            (__lexicographical_compare_aux): Define overloads for safe
            iterators.
            * testsuite/25_algorithms/lexicographical_compare/1.cc: Add
            checks with random access iterators.
            * testsuite/25_algorithms/lexicographical_compare/deque_iterators/1.cc:
            New test.

commit 371cc683371bedb0e53ebcee0c0e89604a1e74b1
Author: Richard Biener <rguenther@suse.de>
Date:   Wed Jun 10 18:07:37 2020 +0200

    avoid stmt-info allocation for debug stmts
    
    The following avoids allocating stmt info structs for debug stmts.
    
    2020-06-10  Richard Biener  <rguenther@suse.de>
    
            * tree-vect-loop.c (vect_determine_vectorization_factor):
            Skip debug stmts.
            (_loop_vec_info::_loop_vec_info): Likewise.
            (vect_update_vf_for_slp): Likewise.
            (vect_analyze_loop_operations): Likewise.
            (update_epilogue_loop_vinfo): Likewise.
            * tree-vect-patterns.c (vect_determine_precisions): Likewise.
            (vect_pattern_recog): Likewise.
            * tree-vect-slp.c (vect_detect_hybrid_slp): Likewise.
            (_bb_vec_info::_bb_vec_info): Likewise.
            * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized):
            Likewise.

commit 36e95a9e539a08275a0a6ef542a7fae5baa5710f
Author: Richard Biener <rguenther@suse.de>
Date:   Wed Jun 10 15:16:23 2020 +0200

    tree-optimization/95576 - fix compare-debug issue with SLP vectorization
    
    The following avoids leading debug stmts in BB vectorizer regions.
    
    2020-06-10  Richard Biener  <rguenther@suse.de>
    
            PR tree-optimization/95576
            * tree-vect-slp.c (vect_slp_bb): Skip leading debug stmts.
    
            * g++.dg/vect/pr95576.cc: New testcase.

commit b5cebc9ab7f6ab47067dc04cae17bf9921a62a18
Author: z00219097 <z.zhanghaijian@huawei.com>
Date:   Wed Jun 10 16:58:51 2020 +0100

    aarch64: Fix an ICE in register_tuple_type [PR95523]
    
    When registering the tuple type in register_tuple_type, the
    TYPE_ALIGN (tuple_type) will be changed by -fpack-struct=n. We need to
    maintain natural alignment in handle_arm_sve_h.
    
    2020-06-10  Haijian Zhang  <z.zhanghaijian@huawei.com>
    
    gcc/
            PR target/95523
            * config/aarch64/aarch64-sve-builtins.h
            (sve_switcher::m_old_maximum_field_alignment): New member.
            * config/aarch64/aarch64-sve-builtins.cc
            (sve_switcher::sve_switcher): Save maximum_field_alignment in
            m_old_maximum_field_alignment and clear maximum_field_alignment.
            (sve_switcher::~sve_switcher): Restore maximum_field_alignment.
    
    gcc/testsuite/
            PR target/95523
            * gcc.target/aarch64/sve/pr95523.c: New test.

commit 73266be246a1bf1781b8ef6ee1395e8602681350
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Thu Mar 12 09:46:55 2020 -0400

    [Ada] AI12-0364 Add a modular atomic arithmetic package
    
    2020-06-10  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * libgnat/s-aomoar.ads, libgnat/s-aomoar.adb: New files.
            * libgnat/s-atopar.ads: Move...
            * libgnat/s-aoinar.ads: Here.
            * libgnat/s-atopar.adb: Move...
            * libgnat/s-aoinar.adb: Here.
            * impunit.adb: Update list of runtime files.
            * Makefile.rtl (GNATRTL_NONTASKING_OBJS=): Adjust.

commit 50ff02b534195c12298c64311d03a8b2d2dc261f
Author: Martin Liska <mliska@suse.cz>
Date:   Wed Jun 10 16:07:10 2020 +0200

    gcc-changelog: fix parse_git_name_status for renames.
    
    Renamed files are listed in the following format:
    
    M       gcc/ada/Makefile.rtl
    M       gcc/ada/impunit.adb
    R097    gcc/ada/libgnat/s-atopar.adb    gcc/ada/libgnat/s-aoinar.adb
    R095    gcc/ada/libgnat/s-atopar.ads    gcc/ada/libgnat/s-aoinar.ads
    A       gcc/ada/libgnat/s-aomoar.adb
    A       gcc/ada/libgnat/s-aomoar.ads
    
    So 'R' is followed by a percentage number.
    
    contrib/ChangeLog:
    
            * gcc-changelog/git_commit.py: Fix renamed files in
            parse_git_name_status.
            * gcc-changelog/test_email.py: Add test for it.

commit 4fed5d5dd85e3f5d812d125f692351646a0417cb
Author: Marek Polacek <polacek@redhat.com>
Date:   Tue Jun 9 18:08:45 2020 -0400

    c++: Fix ICE with delayed parsing of noexcept-specifier [PR95562]
    
    Here we ICE because a DEFERRED_PARSE expression leaked to tsubst_copy.
    We create these expressions for deferred noexcept-specifiers in
    cp_parser_save_noexcept; they are supposed to be re-parsed in
    cp_parser_late_noexcept_specifier.  In this case we never got around
    to re-parsing it because the noexcept-specifier was attached to a
    pointer to a function, not to a function declaration.  But we should
    not have delayed the parsing here in the first place; we already
    avoid delaying the parsing for alias-decls, typedefs, and friend
    function declarations.  (Clang++ also doesn't delay the parsing
    for pointers to function.)
    
    gcc/cp/ChangeLog:
    
            PR c++/95562
            * parser.c (cp_parser_direct_declarator): Clear
            CP_PARSER_FLAGS_DELAY_NOEXCEPT if the declarator kind is not
            cdk_id.
    
    gcc/testsuite/ChangeLog:
    
            PR c++/95562
            * g++.dg/cpp0x/noexcept60.C: New test.

commit 2db262f29a4b1495885b1f23335b6dc363bf1143
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Wed Mar 11 07:56:34 2020 -0400

    [Ada] AI12-0311 New checks for language-defined units
    
    2020-06-10  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * snames.ads-tmpl (Name_Characters_Assertion_Check,
            Name_Containers_Assertion_Check,
            Name_Interfaces_Assertion_Check, Name_IO_Assertion_Check,
            Name_Numerics_Assertion_Check, Name_Strings_Assertion_Check,
            Name_System_Assertion_Check): New constants.
            * types.ads (Characters_Assertion_Check,
            Containers_Assertion_Check, Interfaces_Assertion_Check,
            IO_Assertion_Check, Numerics_Assertion_Check,
            Strings_Assertion_Check, System_Assertion_Check): New constants.
            (All_Checks): Update accordingly.

commit 8439cae845f2148c2df5aefa120b968ec73dd07e
Author: Ghjuvan Lacambre <lacambre@adacore.com>
Date:   Wed Mar 11 08:55:56 2020 +0100

    [Ada] Don't build equivalent record aggregate if type has predicates
    
    2020-06-10  Ghjuvan Lacambre  <lacambre@adacore.com>
    
    gcc/ada/
    
            * exp_ch3.adb (Build_Equivalent_Record_Aggregate): Return Empty
            if Etype of record component has predicates.

commit 76e0721abb9283c9127921850bee619f354701c9
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Sat Mar 7 10:05:11 2020 -0500

    [Ada] Ada 202x AI12-0192 "requires late initialization"
    
    2020-06-10  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * exp_ch3.adb (Build_Init_Statements): Implement the notion of
            "require late initialization".

commit 5c0c89cb163ec78c3dd1ca7cdffe026c706bedd7
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Tue Mar 10 12:14:49 2020 +0100

    [Ada] Add missing Sloc on new explicit dereferences
    
    2020-06-10  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * sem_util.adb (Copy_And_Maybe_Dereference): Temporarily copy
            the parent node of the original tree when dereferencing.

commit f95fb9d019147b2af0c8107d6c6a6e2b6034d9fe
Author: Ed Schonberg <schonberg@adacore.com>
Date:   Mon Mar 9 16:36:55 2020 -0400

    [Ada] Additional warnings on overlapping actuals of composite types
    
    2020-06-10  Ed Schonberg  <schonberg@adacore.com>
    
    gcc/ada/
    
            * sem_warn.adb (Warn_On_Overlapping_Actuals): Add a warning when
            two actuals in a call overlap, both are composite types that may
            be passed by reference, and only one of them is writable.

commit 67a44a4c109e6b2e684e96c346ec0f0fc1f56591
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Tue Mar 10 09:09:25 2020 +0100

    [Ada] Implement AI12-0162 Memberships and Unchecked_Unions
    
    2020-06-10  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * exp_ch4.adb (Expand_N_In): Use an expression with actions to
            insert the PE raise statement for the Unchecked_Union case.

commit e156631a27d599f118ef2d384c6974172cd0c74d
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Mon Mar 9 10:14:53 2020 +0100

    [Ada] Remove obsolete code in Resolve_Call
    
    2020-06-10  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * sem_ch4.adb (Analyze_Call): Use idiomatic condition.
            * sem_res.adb (Resolve_Call): Remove obsolete code.

commit 2378f3eb81a5a7d4a31cd36ea99d9202eb21f0ef
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Sun Mar 8 19:25:51 2020 +0100

    [Ada] Insert explicit dereferences when building actual subtype
    
    2020-06-10  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * sem_util.adb (Copy_And_Maybe_Dereference): New function.
            (Build_Access_Record_Constraint): Use it to copy the prefix.
            (Build_Actual_Array_Constraint): Likewise.
            (Build_Actual_Record_Constraint): Likewise.

commit b9daf13c9350cc02c120971a472092d474d63e8f
Author: Bob Duff <duff@adacore.com>
Date:   Sun Mar 8 17:50:49 2020 -0400

    [Ada] Disable unwanted warnings in Assertion_Policy(Ignore) mode
    
    2020-06-10  Bob Duff  <duff@adacore.com>
    
    gcc/ada/
    
            * sem_prag.adb (Invariant): Remove the pragma removing code.  It
            doesn't work to remove the pragma, because various flags are set
            during Build_Invariant_Procedure_Declaration and
            Build_Invariant_Procedure_Body that need to be set to avoid the
            spurious warnings.
            * exp_util.adb (Make_Invariant_Call): Avoid calling the
            invariant-checking procedure if the body is empty. This is an
            optimization.

commit 9c62140e826a5cda62b49ad7712e7bc297ab77f6
Author: Vasiliy Fofanov <fofanov@adacore.com>
Date:   Mon Mar 9 11:22:17 2020 +0100

    [Ada] Fix gnatmetric switches description
    
    2020-06-10  Vasiliy Fofanov  <fofanov@adacore.com>
    
    gcc/ada/
    
            * doc/gnat_ugn/gnat_utility_programs.rst: Fix gnatmetric
            switches description.

commit 536c271ca7d5707fdedb85e1f999379f1f4e896f
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Sat Mar 7 15:20:04 2020 -0500

    [Ada] Update headers
    
    2020-06-10  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * repinfo-input.ads, repinfo-input.adb, repinfo.adb,
            repinfo.ads: Update header.

commit e67df677b4d7672f0e3d1055ec0443fafb3e9aee
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Fri Mar 6 21:58:39 2020 +0100

    [Ada] Improve code generated for dynamic discriminated aggregate
    
    2020-06-10  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * exp_aggr.adb (In_Place_Assign_OK): Do not necessarily return
            false for a type with discriminants.
            (Convert_To_Assignments): Use Parent_Node and Parent_Kind more
            consistently.  In the in-place assignment case, first apply a
            discriminant check if need be, and be prepared for a rewritten
            aggregate as a result.

commit 3aeb5ebe953a78223ef7ac9abee9b7adb709b29f
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Fri Mar 6 05:33:41 2020 -0500

    [Ada] Remove more references to ASIS
    
    2020-06-10  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * atree.adb, contracts.adb, debug.adb, freeze.adb,
            repinfo-input.adb, repinfo.adb, sem_attr.adb, sem_ch10.adb,
            sem_ch13.adb, sem_ch3.adb, sem_ch5.adb, sem_ch6.adb,
            sem_ch8.adb, sem_ch9.adb, sem_disp.adb, sem_eval.adb,
            sem_prag.adb: Remove more references to ASIS.

commit a53b03b5a7b2cdb00aed0618117f6b855eb3891a
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Fri Mar 6 06:13:36 2020 -0500

    [Ada] Fix typo in exception message
    
    2020-06-10  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * libgnat/s-secsta.adb (Round_Up): Fix typo in exception
            message.

commit 9c4b4975bb425c86c56b3aa791890ed9edabe0f6
Author: Piotr Trojanek <trojanek@adacore.com>
Date:   Fri Mar 6 10:32:15 2020 +0100

    [Ada] Fix minor typo in comment of membership choice parsing
    
    2020-06-10  Piotr Trojanek  <trojanek@adacore.com>
    
    gcc/ada/
    
            * par-ch4.adb (P_Membership_Test): Fix typo in a grammar rule.

commit 8ecc34842c6884a508aaf56328ee76576c348cf7
Author: Piotr Trojanek <trojanek@adacore.com>
Date:   Thu Mar 5 11:57:50 2020 +0100

    [Ada] Revert workaround for expansion of Enum_Rep in GNATprove mode
    
    2020-06-10  Piotr Trojanek  <trojanek@adacore.com>
    
    gcc/ada/
    
            * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Remove
            expansion of First and Last attributes.

commit c64ac479d37f32198f75eee496d32c175fc4260b
Author: Piotr Trojanek <trojanek@adacore.com>
Date:   Thu Mar 5 11:46:59 2020 +0100

    [Ada] Fold Enum_Rep attribute in evaluation and not in expansion
    
    2020-06-10  Piotr Trojanek  <trojanek@adacore.com>
    
    gcc/ada/
    
            * exp_attr.adb (Expand_N_Attribute_Reference): Remove folding
            for Enum_Rep attribute.
            * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Remove
            duplicated code for folding Enum_Rep attribute.
            * sem_attr.adb (Eval_Attribute): Relax condition for folding
            Enum_Rep attribute; previously dead code is now executed when
            the attribute prefix is an enumeration literal; refine type in
            processing of Enum_Val.

commit 4322f3d99b7e5875de59c04939c4a4def1ffde5c
Author: Javier Miranda <miranda@adacore.com>
Date:   Tue Mar 3 14:27:18 2020 -0500

    [Ada] Classwide controlled obj not dispatching
    
    2020-06-10  Javier Miranda  <miranda@adacore.com>
    
    gcc/ada/
    
            * sem_ch3.adb (Analyze_Declarations): Adjust the machinery that
            takes care of late body overriding of initialize, adjust,
            finalize.  Remove ASIS mode code.

commit dc419b9f8d6f998186706aa1afa50db1ca7efae5
Author: Ed Schonberg <schonberg@adacore.com>
Date:   Mon Mar 2 14:58:59 2020 -0500

    [Ada] Ada_2020 AI12-0220: Pre/Postconditions on Access_To_Subprogram types
    
    2020-06-10  Ed Schonberg  <schonberg@adacore.com>
    
    gcc/ada/
    
            * einfo.ads (Access_Subprogram_Wrapper): New attribute of
            Subprogram_Type entities. Denotes subprogram constructed for
            Access_To_Subprogram types that include pre- and postconditions.
            * einfo.adb: Subprogram bodies for Access_Subprogram_Wrapper.
            * exp_ch6.adb (Expand_Call): An indirect call through an
            Access_To_subprogram that includes contracts is rewritten as a
            call to the corresponding Access_ ubprogram_Wrapper. Handle
            derived types that inherit contract from parent.
            * sem_prag.adb (Build_Access_Subprogram_Wrapper): Build
            subprogram declaration for subprogram that incorporates the
            contracts of an Access_To_Subprogram type declaration. Build
            corresponding body and attach it to freeze actions for type.
            * sem_util.ads, sem_util.adb (Is_Access_Subprogram_Wrapper):
            Utility that uses signature of the subprogram to determine
            whether it is a generated wrapper for an Access_To_Subprogram
            type.

commit 057548bc5f3a067f881cd6985419956b0f2696fc
Author: Ghjuvan Lacambre <lacambre@adacore.com>
Date:   Wed Mar 4 14:40:01 2020 +0100

    [Ada] Fix assertion failure on functions with contracts
    
    2020-06-10  Ghjuvan Lacambre  <lacambre@adacore.com>
    
    gcc/ada/
    
            * par-ch6.adb (P_Subprogram): Make sure the specification
            belongs to a procedure.

commit 3ea95664954775a1a85c9ea097877754984807aa
Author: Piotr Trojanek <trojanek@adacore.com>
Date:   Thu Feb 20 12:10:53 2020 +0100

    [Ada] Simplify detection of static membership choices
    
    2020-06-10  Piotr Trojanek  <trojanek@adacore.com>
    
    gcc/ada/
    
            * sem_ch13.adb (All_Membership_Choices_Static): Assert an AST
            property documented in sinfo.ads and simplify an excessive
            condition.

commit 414e7520e608aaef1cac17bfeddd13af893ef81c
Author: Piotr Trojanek <trojanek@adacore.com>
Date:   Wed Mar 4 13:28:14 2020 +0100

    [Ada] Minor fix style and typos in comments
    
    2020-06-10  Piotr Trojanek  <trojanek@adacore.com>
    
    gcc/ada/
    
            * exp_attr.adb (Expand_N_Attribute_Reference): Fix a copy-paste
            mistake in comment.
            * sem_res.adb (Flag_Effectively_Volatile_Objects): Fix a type in
            the SPARK RM rule number.
            * exp_ch4.adb, sem_util.adb: Fix style in single line comments.

commit bbfd4f21c04a7e41c68e1841fcbd97853a94eb40
Author: Piotr Trojanek <trojanek@adacore.com>
Date:   Thu Feb 27 17:48:42 2020 +0100

    [Ada] Remove unreferenced GNATprove utility routine Get_Low_Bound
    
    2020-06-10  Piotr Trojanek  <trojanek@adacore.com>
    
    gcc/ada/
    
            * sem_aux.ads, sem_aux.adb (Get_Low_Bound): Remove.

commit 640ef7149ec24b61b0a1dcb642d59cb29c7e9983
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Tue Mar 3 11:48:54 2020 -0500

    [Ada] Remove Determine_License
    
    2020-06-10  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * scn.adb (Determine_License): Remove.

commit 948590aa2838a8b77dc8e48eb225312865303ce9
Author: Justin Squirek <squirek@adacore.com>
Date:   Wed Mar 4 05:32:57 2020 -0500

    [Ada] Incorrect accessibility checks on functions calls
    
    2020-06-10  Justin Squirek  <squirek@adacore.com>
    
    gcc/ada/
    
            * exp_ch3.adb (Expand_N_Object_Declaration): Add condition to
            handle processing of objects initialized by a call to a function
            return an anonymous access type.
            * exp_ch6.adb, exp_ch6.ads
            (Has_Unconstrained_Access_Discriminants): Moved to sem_util.adb
            (Needs_Result_Accessibility_Level): Moved to sem_util.adb
            * sem_util.adb, sem_util.ads
            (Has_Unconstrained_Access_Discriminants): Moved from exp_ch6.adb
            (Needs_Result_Accessibility_Level): Moved from exp_ch6.adb
            * sem_res.adb (Valid_Conversion): Add condition for the special
            case where the operand of a conversion is the result of an
            anonymous access type

commit 71c4a2b35600a1177542b293cf075d6cf6d4dae4
Author: Ghjuvan Lacambre <lacambre@adacore.com>
Date:   Mon Mar 2 12:41:52 2020 +0100

    [Ada] Reject illegal bodies for null procedures
    
    2020-06-10  Ghjuvan Lacambre  <lacambre@adacore.com>
    
    gcc/ada/
    
            * par-ch6.adb (P_Subprogram): Reject duplicate subprogram
            declarations.

commit 895cf059f064bb0c86c333f9bd05fc95fa9e8d56
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Wed Mar 4 09:32:03 2020 +0100

    [Ada] Fix incorrect insertion of post-call actions in if-expression
    
    2020-06-10  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * exp_ch6.adb (Insert_Post_Call_Actions): Deal with the context
            of an if-expression and with a call written in prefixed notation.

commit c392a001491bd8603556bd922d073a96b6df8724
Author: Gary Dismukes <dismukes@adacore.com>
Date:   Mon Mar 2 19:13:33 2020 -0500

    [Ada] Minor reformatting and some typo fixes
    
    2020-06-10  Gary Dismukes  <dismukes@adacore.com>
    
    gcc/ada/
    
            * einfo.ads: Minor reformatting of a comment.
            * exp_aggr.adb: Minor reformatting and a grammar correction.
            * exp_attr.adb: Minor reformatting and a typo fix in some
            comments.
            * sem_ch12.adb: Fix three typos in comments.

commit f25161bdcc2b098a4678a42bb2c581ac47625b17
Author: Richard Biener <rguenther@suse.de>
Date:   Wed Jun 10 13:47:12 2020 +0200

    Make {SLP_TREE,STMT_VINFO}_VEC_STMTS a vector of gimple *
    
    This makes {SLP_TREE,STMT_VINFO}_VEC_STMTS a vector of gimple * and
    not allocate a stmt_vec_info for vectorizer generated stmts since
    this is now possible after removing the only use which was chaining
    of vector stmts via STMT_VINFO_RELATED_STMT.
    
    This also removes all stmt_vec_info allocations done for vector
    stmts, the remaining ones are for stmts in the scalar IL and for
    patterns which are not part of the IL.  Thus after this the stmt
    UIDs inside a basic-block are suitable for dominance checking
    if you ignore (or lazy-fill) UIDs of zero of the vector stmts
    inserted during transform.  This property is ensured by a new
    flag set when pattern analysis is complete.
    
    2020-06-10  Richard Biener  <rguenther@suse.de>
    
            * tree-vectorizer.h (_slp_tree::vec_stmts): Make it a vector
            of gimple * stmts.
            (_stmt_vec_info::vec_stmts): Likewise.
            (vec_info::stmt_vec_info_ro): New flag.
            (vect_finish_replace_stmt): Adjust declaration.
            (vect_finish_stmt_generation): Likewise.
            (vectorizable_induction): Likewise.
            (vect_transform_reduction): Likewise.
            (vectorizable_lc_phi): Likewise.
            * tree-vect-data-refs.c (vect_create_data_ref_ptr): Do not
            allocate stmt infos for increments.
            (vect_record_grouped_load_vectors): Adjust.
            * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
            (vectorize_fold_left_reduction): Likewise.
            (vect_transform_reduction): Likewise.
            (vect_transform_cycle_phi): Likewise.
            (vectorizable_lc_phi): Likewise.
            (vectorizable_induction): Likewise.
            (vectorizable_live_operation): Likewise.
            (vect_transform_loop): Likewise.
            * tree-vect-patterns.c (vect_pattern_recog): Set stmt_vec_info_ro.
            * tree-vect-slp.c (vect_get_slp_vect_def): Adjust.
            (vect_get_slp_defs): Likewise.
            (vect_transform_slp_perm_load): Likewise.
            (vect_schedule_slp_instance): Likewise.
            (vectorize_slp_instance_root_stmt): Likewise.
            * tree-vect-stmts.c (vect_get_vec_defs_for_operand): Likewise.
            (vect_finish_stmt_generation_1): Do not allocate a stmt info.
            (vect_finish_replace_stmt): Do not return anything.
            (vect_finish_stmt_generation): Likewise.
            (vect_build_gather_load_calls): Adjust.
            (vectorizable_bswap): Likewise.
            (vectorizable_call): Likewise.
            (vectorizable_simd_clone_call): Likewise.
            (vect_create_vectorized_demotion_stmts): Likewise.
            (vectorizable_conversion): Likewise.
            (vectorizable_assignment): Likewise.
            (vectorizable_shift): Likewise.
            (vectorizable_operation): Likewise.
            (vectorizable_scan_store): Likewise.
            (vectorizable_store): Likewise.
            (vectorizable_load): Likewise.
            (vectorizable_condition): Likewise.
            (vectorizable_comparison): Likewise.
            (vect_transform_stmt): Likewise.
            * tree-vectorizer.c (vec_info::vec_info): Initialize
            stmt_vec_info_ro.
            (vec_info::replace_stmt): Copy over stmt UID rather than
            unsetting/setting a stmt info allocating a new UID.
            (vec_info::set_vinfo_for_stmt): Assert !stmt_vec_info_ro.

commit 1396fa5b91cfa0b3708ec9df33c0bb84386081d6
Author: Aldy Hernandez <aldyh@redhat.com>
Date:   Tue May 5 13:45:39 2020 +0200

    Merge evrp uses of substitute_and_fold_engine into the engine itself.
    
    This patch merges the evrp uses of the substitute and fold engine into
    the engine itself, at least the parts that can be re-used by other
    engine uses.  It also adds a context parameter to get_value() for
    further use.
    
    gcc/
            * gimple-loop-versioning.cc (loop_versioning::name_prop::get_value):
            Add stmt parameter.
            * gimple-ssa-evrp.c (class evrp_folder): New.
            (class evrp_dom_walker): Remove.
            (execute_early_vrp): Use evrp_folder instead of evrp_dom_walker.
            * tree-ssa-ccp.c (ccp_folder::get_value): Add stmt parameter.
            * tree-ssa-copy.c (copy_folder::get_value): Same.
            * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in):
            Pass stmt to get_value.
            (substitute_and_fold_engine::replace_phi_args_in): Same.
            (substitute_and_fold_dom_walker::after_dom_children): Call
            post_fold_bb.
            (substitute_and_fold_dom_walker::foreach_new_stmt_in_bb): New.
            (substitute_and_fold_dom_walker::propagate_into_phi_args): New.
            (substitute_and_fold_dom_walker::before_dom_children): Adjust to
            call virtual functions for folding, pre_folding, and post folding.
            Call get_value with PHI.  Tweak dump.
            * tree-ssa-propagate.h (class substitute_and_fold_engine):
            New argument to get_value.
            New virtual function pre_fold_bb.
            New virtual function post_fold_bb.
            New virtual function pre_fold_stmt.
            New virtual function post_new_stmt.
            New function propagate_into_phi_args.
            * tree-vrp.c (vrp_folder::get_value): Add stmt argument.
            * vr-values.c (vr_values::extract_range_from_stmt): Adjust dump
            output.
            (vr_values::fold_cond): New.
            (vr_values::simplify_cond_using_ranges_1): Call fold_cond.
            * vr-values.h (class vr_values): Add
            simplify_cond_using_ranges_when_edge_is_known.
    gcc/testsuite/
            * gcc.dg/tree-ssa/ssa-dse-30.c: Adjust test for folding of
            memmove happening later.

commit 8b6731e674c76cb48a417f2eef74ced92a17f469
Author: Martin Liska <mliska@suse.cz>
Date:   Tue May 19 16:57:56 2020 +0200

    Add missing store in emission of asan_stack_free.
    
    gcc/ChangeLog:
    
    2020-05-19  Martin Liska  <mliska@suse.cz>
    
            PR sanitizer/94910
            * asan.c (asan_emit_stack_protection): Emit
            also **SavedFlagPtr(FakeStack, class_id) = 0 in order to release
            a stack frame.

commit df81764ba1a276d9b48f408bd2dd1e71e09e7863
Author: Tamar Christina <tamar.christina@arm.com>
Date:   Wed Jun 10 11:55:46 2020 +0100

    AArch64: Adjust costing of by element MUL to be the same as SAME3 MUL.
    
    The cost model is currently treating multiplication by element as being more
    expensive than 3 same multiplication.  This means that if the value is on the
    SIMD side we add an unneeded DUP.  If the value is on the genreg side we use the
    more expensive DUP instead of fmov.
    
    This patch corrects the costs such that the two multiplies are costed the same
    which allows us to generate
    
            fmul    v3.4s, v3.4s, v0.s[0]
    
    instead of
    
            dup     v0.4s, v0.s[0]
            fmul    v3.4s, v3.4s, v0.4s
    
    gcc/ChangeLog:
    
            * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Adjust costs for mul.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/aarch64/asimd-mull-elem.c: New test.

commit b05d5563f4be13b4a0d0951375a82adf483973c0
Author: Richard Biener <rguenther@suse.de>
Date:   Tue Jun 9 16:07:45 2020 +0200

    Introduce STMT_VINFO_VEC_STMTS
    
    This gets rid of the linked list of STMT_VINFO_VECT_STMT and
    STMT_VINFO_RELATED_STMT in preparation for vectorized stmts no
    longer needing a stmt_vec_info (just for this chaining).  This
    has ripple-down effects in all places we gather vectorized
    defs.  For this new interfaces are introduced and used
    throughout vectorization, simplifying code in a lot of places
    and merging it with the SLP way of gathering vectorized
    operands.  There is vect_get_vec_defs as the new recommended
    unified interface and vect_get_vec_defs_for_operand as one
    for non-SLP operation.  I've resorted to keep the structure
    of the code the same where using vect_get_vec_defs would have
    been too disruptive for this already large patch.
    
    2020-06-10  Richard Biener  <rguenther@suse.de>
    
            * tree-vect-data-refs.c (vect_vfa_access_size): Adjust.
            (vect_record_grouped_load_vectors): Likewise.
            * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
            (vectorize_fold_left_reduction): Likewise.
            (vect_transform_reduction): Likewise.
            (vect_transform_cycle_phi): Likewise.
            (vectorizable_lc_phi): Likewise.
            (vectorizable_induction): Likewise.
            (vectorizable_live_operation): Likewise.
            (vect_transform_loop): Likewise.
            * tree-vect-slp.c (vect_get_slp_defs): New function, split out
            from overload.
            * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Remove.
            (vect_get_vec_def_for_operand): Likewise.
            (vect_get_vec_def_for_stmt_copy): Likewise.
            (vect_get_vec_defs_for_stmt_copy): Likewise.
            (vect_get_vec_defs_for_operand): New function.
            (vect_get_vec_defs): Likewise.
            (vect_build_gather_load_calls): Adjust.
            (vect_get_gather_scatter_ops): Likewise.
            (vectorizable_bswap): Likewise.
            (vectorizable_call): Likewise.
            (vectorizable_simd_clone_call): Likewise.
            (vect_get_loop_based_defs): Remove.
            (vect_create_vectorized_demotion_stmts): Adjust.
            (vectorizable_conversion): Likewise.
            (vectorizable_assignment): Likewise.
            (vectorizable_shift): Likewise.
            (vectorizable_operation): Likewise.
            (vectorizable_scan_store): Likewise.
            (vectorizable_store): Likewise.
            (vectorizable_load): Likewise.
            (vectorizable_condition): Likewise.
            (vectorizable_comparison): Likewise.
            (vect_transform_stmt): Adjust and remove no longer applicable
            sanity checks.
            * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
            STMT_VINFO_VEC_STMTS.
            (vec_info::free_stmt_vec_info): Relase it.
            * tree-vectorizer.h (_stmt_vec_info::vectorized_stmt): Remove.
            (_stmt_vec_info::vec_stmts): Add.
            (STMT_VINFO_VEC_STMT): Remove.
            (STMT_VINFO_VEC_STMTS): New.
            (vect_get_vec_def_for_operand_1): Remove.
            (vect_get_vec_def_for_operand): Likewise.
            (vect_get_vec_defs_for_stmt_copy): Likewise.
            (vect_get_vec_def_for_stmt_copy): Likewise.
            (vect_get_vec_defs): New overloads.
            (vect_get_vec_defs_for_operand): New.
            (vect_get_slp_defs): Declare.

commit 6d9ef0621f8e1aaafd458dba1a8b5476e655b479
Author: Qian Chao <qianchao9@huawei.com>
Date:   Wed Jun 10 04:46:56 2020 -0400

    tmmark: verify_ssa failed [PR95569]
    
    This patch fixes a latent bug exposed by eb72dc663e9070b281be83a80f6f838a3a878822.
    See the discussion on the bug for details.
    
    Bootstrapped and regtested on aarch64-linux-gnu. No new fails introduced.
    
    2020-06-10  Qian Chao  <qianchao9@huawei.com>
    
    gcc/ChangeLog:
    
            PR tree-optimization/95569
            * trans-mem.c (expand_assign_tm): Ensure that rtmp is marked TREE_ADDRESSABLE.
    
    gcc/testsuite/ChangeLog:
    
            PR tree-optimization/95569
            * gcc.dg/tm/pr95569.c: New test.

commit dc6d15eaa23cbae1468a6ef92371b1c856c14819
Author: Martin Liska <mliska@suse.cz>
Date:   Tue Dec 10 19:41:08 2019 +0100

    Add gcc_assert that &global_options are not dirty modified.
    
    gcc/ChangeLog:
    
    2020-03-20  Martin Liska  <mliska@suse.cz>
    
            PR tree-optimization/92860
            * optc-save-gen.awk: Generate new function cl_optimization_compare.
            * opth-gen.awk: Generate declaration of the function.
    
    gcc/c-family/ChangeLog:
    
    2020-03-20  Martin Liska  <mliska@suse.cz>
    
            PR tree-optimization/92860
            * c-attribs.c (handle_optimize_attribute):
            Save global options and compare it after parsing of function
            attribute.
            * c-pragma.c (opt_stack::saved_global_options): New field.
            (handle_pragma_push_options): Save global_options.
            (handle_pragma_pop_options): Compare them after pop.

commit 771e60dd073b4dc0663fa9282b854dafdd92242d
Author: Martin Liska <mliska@suse.cz>
Date:   Wed Jun 10 09:57:51 2020 +0200

    gcc-changelog: add more Review by prefixes.
    
    contrib/ChangeLog:
    
            * gcc-changelog/git_commit.py: Add more supported prefixes.
            * gcc-changelog/test_email.py: Fix one flake8 error.
            * gcc-changelog/test_patches.txt: Add tested for newly
            supported prefixes.

commit 1ea9a0b74e60e6cdca6372403d7bd564a5410d82
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Jun 10 09:36:34 2020 +0200

    gcc-changelog: Improve git_commit.py diagnostics
    
    This changes some error messages to be more self-consistent and to fix
    some grammar.
    
    contrib/ChangeLog:
    
            * gcc-changelog/git_commit.py (GitCommit.parse_changelog):
            Improve error strings.
            * gcc-changelog/test_email.py: Update expected errors.

commit b952c2cfcd74c284970e1b9bf1fca58f5f69ab23
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Jun 10 00:16:47 2020 +0000

    Daily bump.

commit 733167f9d5ca5b9417559b7362d91e967be95a01
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Jun 9 22:16:24 2020 +0100

    libstdc++: Define converting assignment operator for std::move_iterator
    
    As clarified by LWG 3265, std::move_iterator is supposed to have an
    assignment operator that converts from a different specialization of
    std::move_iterator, which performs an assignment. That has always been
    missing from libstdc++, so assigning a different type actually performs
    a converting construction, then an assignment. This is non-conforming
    for the (fairly contrived) case where the converting assignment is
    well-formed but the converting construction is not.
    
            * include/bits/stl_iterator.h (move_iterator::operator=): Define.
            * testsuite/24_iterators/move_iterator/dr3265.cc: New test.

commit d3647057913d3671312a79a77be02fc459d89fb6
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Jun 9 22:13:37 2020 +0100

    libstdc++: Define std::bad_optional_access constructor as defaulted
    
    The standard requires that std::bad_optional_access' default
    constructor has a non-throwing exception specification.
    
            * include/std/optional (bad_optional_access): Define default
            constructor and destructor as defaulted.
            * testsuite/20_util/optional/bad_access.cc: New test.

commit d7274dbf82001ae52e5c9a514129b49152498d40
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Tue Jun 9 15:35:43 2020 -0500

    PowerPC: Add future hwcap2 bits
    
    This patch adds support for the two new HWCAP2 fields used by the
    __builtin_cpu_supports function.  It adds support in the target_clones
    attribute for -mcpu=future.
    
    The two new __builtin_cpu_supports tests are:
            __builtin_cpu_supports ("isa_3_1")
            __builtin_cpu_supports ("mma")
    
    The bits used are the bits that the Linux kernel engineers will be using for
    these new features.
    
    gcc/
    2020-06-09  Michael Meissner  <meissner@linux.ibm.com>
    
            * config/rs6000/ppc-auxv.h (PPC_PLATFORM_FUTURE): Allocate
            'future' PowerPC platform.
            (PPC_FEATURE2_ARCH_3_1): New HWCAP2 bit for ISA 3.1.
            (PPC_FEATURE2_MMA): New HWCAP2 bit for MMA.
            * config/rs6000/rs6000-call.c (cpu_supports_info): Add ISA 3.1 and
            MMA HWCAP2 bits.
            * config/rs6000/rs6000.c (CLONE_ISA_3_1): New clone support.
            (rs6000_clone_map): Add 'future' system target_clones support.
    
    testsuite/
    2020-06-09  Michael Meissner  <meissner@linux.ibm.com>
    
            * gcc.target/powerpc/clone3.c: New test for using 'future' with
            the target_clones attribute.

commit 2753f2f8b4a4534ab364595ba4b8a913cc7254a7
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Tue Jun 9 15:32:52 2020 -0500

    PowerPC: Add future hwcap2 bits
    
    This patch adds support for the two new HWCAP2 fields used by the
    __builtin_cpu_supports function.  It adds support in the target_clones
    attribute for -mcpu=future.
    
    The two new __builtin_cpu_supports tests are:
            __builtin_cpu_supports ("isa_3_1")
            __builtin_cpu_supports ("mma")
    
    The bits used are the bits that the Linux kernel engineers will be using for
    these new features.
    
    testsuite/
    2020-06-05  Michael Meissner  <meissner@linux.ibm.com>
    
            * gcc.target/powerpc/clone3.c: New test for using 'future' with
            the target_clones attribute.

commit 7ba33e898fa4a097c0f2b4d9cae35041a5933f9c
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Tue Jun 9 15:32:02 2020 -0500

    PowerPC: Add future hwcap2 bits
    
    This patch adds support for the two new HWCAP2 fields used by the
    __builtin_cpu_supports function.  It adds support in the target_clones
    attribute for -mcpu=future.
    
    The two new __builtin_cpu_supports tests are:
            __builtin_cpu_supports ("isa_3_1")
            __builtin_cpu_supports ("mma")
    
    The bits used are the bits that the Linux kernel engineers will be using for
    these new features.
    
    gcc/
    2020-06-05  Michael Meissner  <meissner@linux.ibm.com>
    
            * config/rs6000/ppc-auxv.h (PPC_PLATFORM_FUTURE): Allocate
            'future' PowerPC platform.
            (PPC_FEATURE2_ARCH_3_1): New HWCAP2 bit for ISA 3.1.
            (PPC_FEATURE2_MMA): New HWCAP2 bit for MMA.
            * config/rs6000/rs6000-call.c (cpu_supports_info): Add ISA 3.1 and
            MMA HWCAP2 bits.
            * config/rs6000/rs6000.c (CLONE_ISA_3_1): New clone support.
            (rs6000_clone_map): Add 'future' system target_clones support.

commit 243e5bbfef7be74bfe22747c4e51136dd38c1245
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Tue Jun 9 15:17:12 2020 -0500

    PowerPC: Add pcrel/prefixed target supports.
    
    2020-06-09  Michael Meissner  <meissner@linux.ibm.com>
    
            * lib/target-supports.exp (check_effective_target_powerpc_pcrel):
            New.
            (check_effective_target_powerpc_prefixed_addr): New.

commit 776256757b3d12830e5449c41f1dd6c13fdf2868
Author: Michael Kuhn <gcc@ikkoku.de>
Date:   Tue Jun 9 14:05:07 2020 -0600

    When specifying a non-system prefix with --with-zstd, the build fails because the header and library cannot be found (see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95005).
    
    The attached patch fixes the problem and is what we use in Spack to
    make GCC build with zstd support.
    
    gcc/
            * Makefile.in (ZSTD_INC): Define.
            (ZSTD_LIB): Include ZSTD_LDFLAGS.
            (CFLAGS-lto-compress.o): Add ZSTD_INC.
            * configure.ac (ZSTD_CPPFLAGS, ZSTD_LDFLAGS): New variables for
            AC_SUBST.
            * configure: Rebuilt.

commit 84fa38d20a65e6d0dd5707c275acdb5cad3ceb5a
Author: Martin Liska <mliska@suse.cz>
Date:   Tue Jun 9 21:54:35 2020 +0200

    asan: fix wrong options for a test-case.
    
    gcc/testsuite/ChangeLog:
    
            * c-c++-common/asan/inline-kernel.c: Add missing
            -fno-sanitize-address option.

commit 006f28aefeb3be575239beddc7febe56dff463a2
Author: Iain Sandoe <iain@sandoe.co.uk>
Date:   Tue Jun 9 19:17:14 2020 +0100

    coroutines: Ensure distinct DTOR trees [PR95137].
    
    Part of the PR notes that there are UBSAN fails for the coroutines
    test suite.  These are primarily related to the use of the same DTOR
    tree in the two edges from the await block.  Fixed by building a new
    tree for each.
    
    gcc/cp/ChangeLog:
    
            PR c++/95137
            * coroutines.cc (expand_one_await_expression): Build separate
            DTOR trees for the awaitable object on the destroy and resume
            paths.

commit 62963c60fc19d07615afe9d4f1b897b2f60801b2
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Jun 9 20:39:39 2020 +0100

    gcc-changelog: Use non-zero exit status on error
    
    Also add comment explaining what the script does.
    
    contrib/ChangeLog:
    
            * gcc-changelog/git_email.py: Set exit status on error.

commit 77103685ff4b50b3c4d7ee76688bdf452acc82c7
Author: Jason Merrill <jason@redhat.com>
Date:   Fri Jun 5 16:36:27 2020 -0400

    tree-inline: Fix VLA handling [PR95552]
    
    The problem in this testcase comes from cloning the constructor into
    complete and base variants.  When we clone the body the first time,
    walk_tree_1 calls copy_tree_body_r on the type of the artificial TYPE_DECL
    we made for the VLA type without calling it on the decl itself, so we
    overwrite the type of the TYPE_DECL without copying the decl first.
    
    This has been broken since we started inserting a TYPE_DECL for anonymous
    VLAs in r7-457.
    
    This patch fixes walk_tree_1 to call the function on the TYPE_DECL, as we do
    for other decls of a DECL_EXPR.
    
    gcc/ChangeLog:
    
            PR c++/95552
            * tree.c (walk_tree_1): Call func on the TYPE_DECL of a DECL_EXPR.
    
    gcc/testsuite/ChangeLog:
    
            PR c++/95552
            * g++.dg/ext/vla23.C: New test.

commit ab2789ec507a94f1a75a6534bca51c7b39037ce0
Author: Marco Elver <elver@google.com>
Date:   Tue Jun 9 15:15:39 2020 +0200

    tsan: Add optional support for distinguishing volatiles
    
    Add support to optionally emit different instrumentation for accesses to
    volatile variables. While the default TSAN runtime likely will never
    require this feature, other runtimes for different environments that
    have subtly different memory models or assumptions may require
    distinguishing volatiles.
    
    One such environment are OS kernels, where volatile is still used in
    various places, and often declare volatile to be appropriate even in
    multi-threaded contexts. One such example is the Linux kernel, which
    implements various synchronization primitives using volatile
    (READ_ONCE(), WRITE_ONCE()).
    
    Here the Kernel Concurrency Sanitizer (KCSAN), is a runtime that uses
    TSAN instrumentation but otherwise implements a very different approach
    to race detection from TSAN:
    
            https://github.com/google/ktsan/wiki/KCSAN
    
    Due to recent changes in requirements by the Linux kernel, KCSAN
    requires that the compiler supports tsan-distinguish-volatile (among
    several new requirements):
    
            https://lore.kernel.org/lkml/20200521142047.169334-7-elver@google.com/
    
    gcc/
            * params.opt: Define --param=tsan-distinguish-volatile=[0,1].
            * sanitizer.def (BUILT_IN_TSAN_VOLATILE_READ1): Define new
            builtin for volatile instrumentation of reads/writes.
            (BUILT_IN_TSAN_VOLATILE_READ2): Likewise.
            (BUILT_IN_TSAN_VOLATILE_READ4): Likewise.
            (BUILT_IN_TSAN_VOLATILE_READ8): Likewise.
            (BUILT_IN_TSAN_VOLATILE_READ16): Likewise.
            (BUILT_IN_TSAN_VOLATILE_WRITE1): Likewise.
            (BUILT_IN_TSAN_VOLATILE_WRITE2): Likewise.
            (BUILT_IN_TSAN_VOLATILE_WRITE4): Likewise.
            (BUILT_IN_TSAN_VOLATILE_WRITE8): Likewise.
            (BUILT_IN_TSAN_VOLATILE_WRITE16): Likewise.
            * tsan.c (get_memory_access_decl): Argument if access is
            volatile. If param tsan-distinguish-volatile is non-zero, and
            access if volatile, return volatile instrumentation decl.
            (instrument_expr): Check if access is volatile.
    
    gcc/testsuite/
            * c-c++-common/tsan/volatile.c: New test.

commit 6e52b2297ecce1243c00d76b3f079b71016b8ffa
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Tue Jun 9 14:48:24 2020 -0400

    PowerPC: PowerPC tests: Add prefixed/pcrel tests.
    
    testsuite/
    2020-06-09  Michael Meissner  <meissner@linux.ibm.com>
    
            * lib/target-supports.exp (check_effective_target_powerpc_pcrel):
            New.
            (check_effective_target_powerpc_prefixed_addr): New.

commit ec34277611416aacdfdf3b8469b8e6ed43f623e6
Author: Richard Biener <rguenther@suse.de>
Date:   Tue Jun 9 18:23:22 2020 +0200

    Remove dead code
    
    This removes dead code left over from the reduction vectorization
    refactoring last year.
    
    2020-06-09  Richard Biener  <rguenther@suse.de>
    
            * tree-vect-loop.c (vectorizable_induction): Remove dead code.

commit 98866120092edfd7d5a7ae008db960dae8ab1523
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date:   Tue Jun 9 18:56:52 2020 +0200

    d: Merge upstream dmd 13d67c575.
    
    Reviewed-on: https://github.com/dlang/dmd/pull/11224
    
    gcc/d/ChangeLog:
    
            * dmd/MERGE: Merge upstream dmd 13d67c575.
            * d-builtins.cc (build_frontend_type): Update call to
            TypeVector::create.
            * d-frontend.cc (Global::_init): Move setting of errorLimit to ...
            * d-lang.cc (d_init_options): ... here.  Update for new field
            location of errorLimit.
            (d_post_options): Likewise.
            * d-port.cc (Port::readwordLE): Update signature.
            (Port::readwordBE): Likewise.
            (Port::readlongLE): Likewise.
            (Port::readlongBE): Likewise.
            * decl.cc (get_symbol_decl): Update for new field types.

commit ef41587df9839d1dfc77dbc48a0830e42b36626e
Author: Jason Merrill <jason@redhat.com>
Date:   Sat Jun 6 00:07:21 2020 -0400

    c++: Tweak predeclare_vla.
    
    We only need to predeclare a VLA type if it's wrapped in a pointer type;
    otherwise gimplify_type_sizes will handle it.
    
    gcc/cp/ChangeLog:
    
            PR c++/95552
            * cp-gimplify.c (predeclare_vla): Only predeclare a VLA if it's
            wrapped in a pointer type.

commit bf4ab2689bb586971d5b2ab6b13d078cd7ac45af
Author: Tobias Burnus <tobias@codesourcery.com>
Date:   Tue Jun 9 16:31:22 2020 +0200

    openmp: ensure variables in offload table are streamed out (PRs 94848 + 95551)
    
    gcc/ChangeLog:
    
            * omp-offload.c (add_decls_addresses_to_decl_constructor,
            omp_finish_file): With in_lto_p, stream out all offload-table
            items even if the symtab_node does not exist.

commit ac22e651efe0da924925ac33a31e5c8d73e11fef
Author: Richard Biener <rguenther@suse.de>
Date:   Tue Jun 9 16:00:43 2020 +0200

    Remove dead code
    
    This removes dead code that was left over from the reduction
    vectorization refactoring last year.
    
    2020-06-09  Richard Biener  <rguenther@suse.de>
    
            * tree-vect-stmts.c (vect_transform_stmt): Remove dead code.

commit e12516e140a4e6aa75d886b165d959991e3350c3
Author: Patrick Palka <ppalka@redhat.com>
Date:   Tue Jun 9 09:57:25 2020 -0400

    Fix some ChangeLog entries

commit f6ee4c4fe7e288e852466ac61436048d43e11b7f
Author: Martin Liska <mliska@suse.cz>
Date:   Tue Jun 9 14:39:26 2020 +0200

    gcov-dump: fix --help spacing
    
    Pushed to master.
    
    gcc/ChangeLog:
    
            * gcov-dump.c (print_usage): Fix spacing for --raw option
            in --help.

commit 4089df8ef4a63126b0774c39b6638845244c20d2
Author: Martin Liska <mliska@suse.cz>
Date:   Tue Jun 9 13:03:55 2020 +0200

    sanitizer: do not inline no-sanitize into sanitizer fn
    
    gcc/ChangeLog:
    
            * cif-code.def (ATTRIBUTE_MISMATCH): Rename to...
            (SANITIZE_ATTRIBUTE_MISMATCH): ...this.
            * ipa-inline.c (sanitize_attrs_match_for_inline_p):
            Handle all sanitizer options.
            (can_inline_edge_p): Use renamed CIF_* enum value.
    
    gcc/testsuite/ChangeLog:
    
            * c-c++-common/asan/inline.c: New test.
            * c-c++-common/asan/inline-kernel.c: New test.
            * c-c++-common/tsan/inline.c: New test.
            * c-c++-common/ubsan/inline.c: New test.

commit bb3ab62a8b4a108f01ea2eddfe31e9f733bd9cb6
Author: Joe Ramsay <joe.ramsay@arm.com>
Date:   Tue Jun 9 12:23:56 2020 +0100

    AArch64+SVE: Add support for unpacked unary ops and BIC
    
    MD patterns extended for unary ops ABS, CLS, CLZ, CNT, NEG and NOT
    to support unpacked vectors. Also extended patterns for BIC to
    support unpacked vectors where input elements are of the same width.
    
    gcc/ChangeLog:
    
    2020-06-09  Joe Ramsay  <joe.ramsay@arm.com>
    
            * config/aarch64/aarch64-sve.md (<optab><mode>2): Add support for
            unpacked vectors.
            (@aarch64_pred_<optab><mode>): Add support for unpacked vectors.
            (@aarch64_bic<mode>): Enable unpacked BIC.
            (*bic<mode>3): Enable unpacked BIC.
    
    gcc/testsuite/ChangeLog:
    
    2020-06-09  Joe Ramsay  <joe.ramsay@arm.com>
    
            * gcc.target/aarch64/sve/logical_unpacked_abs.c: New test.
            * gcc.target/aarch64/sve/logical_unpacked_bic_1.c: New test.
            * gcc.target/aarch64/sve/logical_unpacked_bic_2.c: New test.
            * gcc.target/aarch64/sve/logical_unpacked_bic_3.c: New test.
            * gcc.target/aarch64/sve/logical_unpacked_bic_4.c: New test.
            * gcc.target/aarch64/sve/logical_unpacked_neg.c: New test.
            * gcc.target/aarch64/sve/logical_unpacked_not.c: New test.

commit 452283bd060eb9bae41199b4b5e7266155d40e12
Author: Martin Liska <mliska@suse.cz>
Date:   Tue Jun 9 13:14:57 2020 +0200

    gcov: improve --coverage small example
    
    Pushed to master.
    
    gcc/ChangeLog:
    
            PR gcov-profile/95365
            * doc/gcov.texi: Compile and link one example in 2 steps.

commit 862b9b225fba6cf3c63234206f2dbc47f1ab5350
Author: Martin Liska <mliska@suse.cz>
Date:   Mon Jun 8 20:07:08 2020 +0200

    libgcov: fix TOPN type casting
    
    The patch fixes tree-prof.exp tests on solaris11 and i686-linux-gnu,
    problem was that sizeof of a pointer is different from sizeof gcov_type.
    
    I'm going to install it if there are no objections.
    Thanks,
    Martin
    
    libgcc/ChangeLog:
    
            PR gcov-profile/95494
            * libgcov-driver.c (write_top_counters): Cast first to
            intptr_t as sizeof(*) != sizeof(gcov_type).
            * libgcov.h (gcov_counter_set_if_null): Remove.
            (gcov_topn_add_value): Cast first to intptr_t and update
            linked list directly.

commit 009668e31f4ee910eae874b24afb8eb6adf65fae
Author: Javier Miranda <miranda@adacore.com>
Date:   Sun Mar 1 14:04:48 2020 -0500

    [Ada] Missing check on private overriding of dispatching primitive
    
    2020-06-09  Javier Miranda  <miranda@adacore.com>
    
    gcc/ada/
    
            * sem_ch6.adb (New_Overloaded_Entity): Add missing call to check
            subtype conformance of overriding dispatching primitive.
            * sem_eval.adb (Subtypes_Statically_Match): Handle derivations
            of private subtypes.
            * libgnat/g-exptty.adb, libgnat/g-exptty.ads
            (Set_Up_Communications): Fix the profile since null-exclusion is
            missing in the access type formals.
            * sem_disp.ads (Check_Operation_From_Private_View): Adding
            documentation.

commit a2048d055bfe230b7074c492245ac041f739e471
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Tue Mar 3 16:13:20 2020 +0100

    [Ada] Small enhancement in XEinfo utility
    
    2020-06-09  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * einfo.ads (XEINFO section): Update format description.
            (Is_Subprogram_Or_Entry): Move pragma to regular section.
            (Is_Subprogram_Or_Generic_Subprogram): Likewise.
            * xeinfo.adb (Get_B4): Rename to...
            (Get_B0): ...this.
            (Translate_Expr): New procedure extracted from...
            (XEinfo): ...here.  Try to apply Get_B0 first and then
            call Translate_Expr to translate supported constructs.

commit fd66407104b2133f0e55deb84db787c692a21948
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Tue Mar 3 12:44:18 2020 +0100

    [Ada] Implement AI12-0028: Import of variadic C functions
    
    2020-06-09  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * exp_ch6.adb (Freeze_Subprogram): Deal with convention C_Family.
            * freeze.adb (Freeze_Profile): Likewise.  Add missing guard.
            * sem_mech.adb (Set_Mechanisms): Likewise.
            * lib-xref.adb (Output_Import_Export_Info): Ditto for C_Variadic.
            * repinfo.adb (List_Subprogram_Info): Likewise.
            * sem_prag.adb (Set_Convention_From_Pragma): Move main checks for
            Stdcall to...
            (Process_Convention): ...here.  Add checks for C_Variadic.
            * snames.ads-tmpl: Add Name_C_Variadic_0 .. Name_C_Variadic_16.
            Use consistent format for subtype declarations.
            (Convention_Id): Add Convention_C_Variadic_0 .. C_Variadic_16
            and move Convention_CPP up.
            (Convention_C_Family): New subtype of Convention_Id.
            (Convention_C_Variadic): Likewise.
            (Foreign_Convention): Use explicit upper bound.
            Add pragma Inline for Is_Configuration_Pragma_Name,
            Is_Function_Attribute_Name, Is_Internal_Attribute_Name
            and Is_Procedure_Attribute_Name.
            * snames.adb-tmpl (Get_Convention_Id): Deal with Name_Variadic_n.
            (Get_Convention_Name): Deal with Convention_Variadic_n.
            * types.h (Convention_Id): New typedef.
            * xsnamest.adb (Name2): New variable.
            (Is_Conv): New pattern.
            (Get_Subt1): Likewise.
            (Get_Subt2): Likewise.
            Output subtypes of Convention_Id into the C header file.

commit 2d6f6e08e69209d3df5b49b738c08ce3e921bf44
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Tue Mar 3 11:51:49 2020 -0500

    [Ada] Code clean ups and comments updates
    
    2020-06-09  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch9.adb,
            exp_disp.adb, exp_util.adb: Add comments related to errors that
            should be moved to semantic analysis. Also replace "?" with "??"
            in warning messages.

commit 3e6711046ae71601a40636e768c8d9d7def57add
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Sun Mar 1 10:07:11 2020 -0500

    [Ada] Improve handling of null unbounded strings
    
    2020-06-09  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * libgnat/a-strunb__shared.ads, libgnat/a-strunb__shared.adb
            (Reference, Unreference): No-op for Empty_Shared_String.
            Remove unneeded calls to Reference.

commit 1a7748ad4c356f37d324a36c21054735f2ca6f89
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Mon Mar 2 06:58:01 2020 -0500

    [Ada] Remove kludge for AI05-0087
    
    2020-06-09  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * exp_ch5.adb (Expand_N_Assignment): Remove kludge for
            AI05-0087.
            * sem_ch12.adb (Validate_Derived_Type_Instance): Implement
            AI05-0087 retroactively since it's a binding interpretation.

commit 148c86d1ab9a1cc02651056a2da3b67003f1a51a
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Mon Mar 2 12:46:14 2020 +0100

    [Ada] Small cleanup in Einfo unit
    
    2020-06-09  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * einfo.ads (Has_Foreign_Convention): Fix description.
            (Component_Alignment): Move around.
            (Has_DIC): Likewise.
            (Has_Interrupt_Handler): Likewise.
            (Has_Invariants): Likewise.
            (Is_Atomic_Or_VFA): Likewise.
            (Next_Index): Likewise.
            (Scope_Depth): Likewise.
            (Init_Component_Size): Likewise.
            (Init_Component_Location): Likewise.
            (Init_Size): Likewise.
            (Inline Pragmas for functions): Add Corresponding_Function,
            Corresponding_Procedure, Entry_Max_Queue_Lengths_Array,
            Finalize_Storage_Only, Has_DIC, Has_Invariants,
            Initialization_Statements, Is_Anonymous_Access_Type,
            Next_Stored_Discriminant, Address_Clause, Alignment_Clause,
            Float_Rep, Has_Foreign_Convention, Has_Non_Limited_View,
            Is_Constant_Object, Is_Discriminal, Is_Finalizer, Is_Null_State,
            Is_Prival, Is_Protected_Component, Is_Protected_Record_Type,
            Is_Subprogram_Or_Entry, Is_Task_Record_Type, Size_Clause,
            Stream_Size_Clause, Type_High_Bound, Type_Low_Bound, Known_*,
            Unknown_*.
            (Inline Pragmas for procedures): Add Set_Corresponding_Function,
            Set_Corresponding_Procedure, Set_Finalize_Storage_Only,
            Set_Float_Rep, Set_Initialization_Statements,
            Init_Normalized_First_Bit, Init_Normalized_Position,
            Init_Normalized_Position_Max.
            * einfo.adb (Was_Hidden): Move around.
            (Is_Packed_Array): Likewise.
            (Model_Emin_Value): Likewise.
            (Model_Epsilon_Value): Likewise.
            (Model_Mantissa_Value): Likewise.
            (Model_Small_Value): Likewise.

commit 4e510a0a2baa41a22a7acef872cd309ea78ef737
Author: Ed Schonberg <schonberg@adacore.com>
Date:   Fri Feb 28 14:26:02 2020 -0500

    [Ada] Ada2020 AI12-0282: Shared variable control aspects in generics
    
    2020-06-09  Ed Schonberg  <schonberg@adacore.com>
    
    gcc/ada/
    
            * sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Require
            exact match between formal and actual for aspects Atomic and
            Volatile only for formal derived types.

commit c4609e75ef41546d7b7373cc3d6d0ba9fa15dfcd
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Mon Mar 2 03:58:02 2020 -0500

    [Ada] Improve handling of aggregates in Side_Effect_Free
    
    2020-06-09  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * exp_util.adb (Side_Effect_Free): Improve handling of
            N_Aggregate.

commit 10212bd8f06e0f8577e15883cae6f9b7c5f381d8
Author: Ghjuvan Lacambre <lacambre@adacore.com>
Date:   Fri Feb 28 14:56:31 2020 +0100

    [Ada] Fix wrong type being used for range check generation
    
    2020-06-09  Ghjuvan Lacambre  <lacambre@adacore.com>
    
    gcc/ada/
    
            * sem_res.adb (Resolve_Qualified_Expression): Use Subtype_Mark
            type.

commit c42006e91e021ec222fd1a24d30eff38554f1d4c
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Sun Mar 1 11:12:11 2020 -0500

    [Ada] Expand more others aggregates statically
    
    2020-06-09  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * exp_aggr.adb (Max_Aggregate_Size): New function to factorize
            code.
            (Convert_To_Positional, Aggr_Size_OK): Use Max_Aggregate_Size.

commit 4228c32ab0b50e10e74ff53159894708471bcdbc
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Sun Mar 1 06:59:11 2020 -0500

    [Ada] Code refactoring on calls to Set_Debug_Info_Needed
    
    2020-06-09  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * sem_util.ads, sem_util.adb (Set_Debug_Info_Defining_Id): New.
            * exp_ch3.adb, exp_ch8.adb: Call Set_Debug_Info_Defining_Id when
            relevant.

commit 7d4d54aa7c2d6dadcc24fb946b127bd1a179e3ec
Author: Justin Squirek <squirek@adacore.com>
Date:   Sun Mar 1 04:18:57 2020 -0500

    [Ada] Missing documentation for Returns_By_Ref
    
    2020-06-09  Justin Squirek  <squirek@adacore.com>
    
    gcc/ada/
    
            * einfo.ads (Returns_By_Ref): Modify documentation to reflect
            that Returns_By_Ref can be applied to E_Subprogram_Type
            entities.

commit d4fd46371a6fd708c4c16ccd7b56410d9cfc72e6
Author: Justin Squirek <squirek@adacore.com>
Date:   Fri Feb 28 16:21:59 2020 -0500

    [Ada] Spurious overlap error on zero-sized arrays with -gnateV
    
    2020-06-09  Justin Squirek  <squirek@adacore.com>
    
    gcc/ada/
    
            * exp_attr.adb (Expand_N_Attribute_Reference): Modify expansion
            of 'Overlaps_Storage to take into account zero sized arrays.

commit 7bf5f4d985c59e4c5a64e8d7b263af92c9ec6339
Author: Bob Duff <duff@adacore.com>
Date:   Fri Feb 28 13:50:49 2020 -0500

    [Ada] Write_Invocation_Graph_Vertex: include lib item name
    
    2020-06-09  Bob Duff  <duff@adacore.com>
    
    gcc/ada/
    
            * bindo-graphs.adb, bindo-graphs.ads: For each invocation graph,
            record the corresponding library graph.
            * bindo-writers.adb (Write_Invocation_Graph_Vertex): Print the
            lib item name. Remove library graph parameters.
            * bindo-augmentors.adb, bindo-augmentors.ads,
            bindo-builders.adb, bindo-diagnostics.adb,
            bindo-diagnostics.ads, bindo-elaborators.adb: Remove library
            graph parameters.

commit b97813ab96391d0c7bd518d31855a9db4960c770
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Fri Feb 28 12:46:58 2020 +0100

    [Ada] Propagate DIC, Invariant and Predicate attributes to views
    
    2020-06-09  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * checks.adb (Apply_Predicate_Check): Extend trick used for
            aggregates to qualified aggregates and object declarations
            * einfo.ads (Has_Own_DIC): Mention the underlying full view.
            (Has_Own_Invariants): Likewise.
            (Has_Predicates): Likewise.
            * exp_util.adb (Build_DIC_Procedure_Declaration): Do not deal
            with base types explicitly but with underlying full views.
            (Build_Invariant_Procedure_Declaration): Likewise.
            * sem_ch13.adb (Build_Predicate_Functions): Do not deal with
            the full view manually but call Propagate_Predicate_Attributes
            to propagate attributes to views.
            (Build_Predicate_Function_Declaration): Likewise.
            * sem_ch3.adb (Build_Assertion_Bodies_For_Type): Build bodies
            for private full views with an underlying full view.
            (Build_Derived_Private_Type): Small comment tweak.
            (Complete_Private_Subtype): Call Propagate_Predicate_Attributes.
            (Process_Full_View): Do not deal with base types explicitly for
            DIC and Invariant attributes.  Deal with underlying full views
            for them.  Call Propagate_Predicate_Attributes and deal with
            underlying full views for them.
            * sem_ch7.adb (Preserve_Full_Attributes): Do not cross propagate
            DIC and Invariant attributes between full type and its base type.
            Propagate Predicate attributes from the full to the private view.
            * sem_ch9.adb (Analyze_Protected_Type_Declaration): Likewise.
            (Analyze_Task_Type_Declaration): Likewise.
            * sem_util.ads (Get_Views): Remove Full_Base parameter and add
            UFull_Typ parameter.
            (Propagate_Predicate_Attributes): New procedure.
            * sem_util.adb (Get_Views): Remove Full_Base parameter and add
            UFull_Typ parameter.  Retrieve the Corresponding_Record_Type
            from the underlying full view, if any.
            (Propagate_DIC_Attributes): Remove useless tests.
            (Propagate_Invariant_Attributes): Likewise.
            (Propagate_Predicate_Attributes): New procedure.

commit bf2480e2fbf29772f8acca9d184f18dbfb6d00bc
Author: Justin Squirek <squirek@adacore.com>
Date:   Fri Feb 28 10:21:38 2020 -0500

    [Ada] Crash on exit statement within predicated loop
    
    2020-06-09  Justin Squirek  <squirek@adacore.com>
    
    gcc/ada/
    
            * exp_ch5.adb (Expand_Predicated_Loop): Perserve the original
            loop identifier within the expansion.

commit 059a704a4195f49c299ab0e92f772df39a27971a
Author: Bob Duff <duff@adacore.com>
Date:   Fri Feb 28 09:46:07 2020 -0500

    [Ada] gnatbind: Correct assertions in Add_Edge_Kind_Check
    
    2020-06-09  Bob Duff  <duff@adacore.com>
    
    gcc/ada/
    
            * bindo-graphs.ads (Library_Graph_Edge_Kind): Reorder enumerals
            to reflect the order of adding edges. Clarify comments.
            * bindo-graphs.adb (Add_Edge_Kind_Check): Correct the
            assertions.  Reorder the "when"s to match the order of adding
            edges, and therefore the order of enumerals in type
            Library_Graph_Edge_Kind.  Change names to "Old_" and "New_" to
            clarify what's what.  Combine Invocation_Edge into the "<="
            test.  Fix the "raise Program_Error" message, which was
            backwards.

commit 338c32f1375440aaeb66c65d5d40906a388d20c8
Author: Bob Duff <duff@adacore.com>
Date:   Thu Feb 27 10:49:47 2020 -0500

    [Ada] Add debugging message
    
    2020-06-09  Bob Duff  <duff@adacore.com>
    
    gcc/ada/
    
            * bindo-graphs.adb (Add_Edge_Kind_Check): Add the Image of the
            old and new Kinds to the raise Program_Error message.

commit dc8adf598fb3a7d6086b69e02007098bd7555d16
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Thu Feb 27 17:02:14 2020 +0100

    [Ada] Remove bypass for instance bodies from Is_Visible_Component
    
    2020-06-09  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * sem_ch3.adb (Is_Visible_Component): Do not special-case
            bodies of instances.

commit 11381028a623f939cb7148d908e75ec624e00085
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Thu Feb 27 04:28:04 2020 -0500

    [Ada] Membership test against a non-excluding subtype
    
    2020-06-09  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * exp_ch4.adb (Expand_N_In): Fix handling of null exclusion.

commit 8e6ca7a87bf96e0baa3bfb3775bf1bff40ea0464
Author: Ed Schonberg <schonberg@adacore.com>
Date:   Tue Feb 25 16:58:06 2020 -0500

    [Ada] Ada2020 AI12-0282: Shared variable control aspects in generics
    
    2020-06-09  Ed Schonberg  <schonberg@adacore.com>
    
    gcc/ada/
    
            * sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Require
            exact match between formal and actual for aspects Atomic,
            Atomic_Component, Volatile, and Volatile_Components.

commit 05cb816ba5a1b4ab00df26699829483d7c1d156c
Author: Bob Duff <duff@adacore.com>
Date:   Wed Feb 26 09:51:56 2020 -0500

    [Ada] gnatpp: documentation for --no-separate-return switch
    
    2020-06-09  Bob Duff  <duff@adacore.com>
    
    gcc/ada/
    
            * doc/gnat_ugn/gnat_utility_programs.rst: Add documentation for
            the --no-separate-return switch of gnatpp.

commit 881d7a9f46d7cd3d47fb96671454db4aa5ec630a
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Wed Feb 26 05:01:53 2020 -0500

    [Ada] Add missing tag with -gnatw.d
    
    2020-06-09  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * sem_warn.adb (Warn_On_Constant_Valid_Condition): Add proper
            warning tag.

commit 742048af50e79b4e0dabba3f4cf2e5779bdc273a
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Fri Feb 21 11:36:40 2020 -0500

    [Ada] Refine implementation of AI05-0149 missing conversion checks
    
    2020-06-09  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * sem_type.adb (Covers): Fix implementation of AI05-0149.
            * sem_res.adb: Fix typo.

commit 54025948c0a4cad05cc22fe67d104e5e3ac9b0de
Author: Ed Schonberg <schonberg@adacore.com>
Date:   Mon Feb 24 13:37:58 2020 -0500

    [Ada] Spurious error on instantiations with Taft_Amendment types and tasks
    
    2020-06-09  Ed Schonberg  <schonberg@adacore.com>
    
    gcc/ada/
    
            * exp_ch9.adb (Build_Master_Renaming): Make name in renaming
            declaration unique by adding a numeric suffix, to prevent
            accidental name conflict when several instantiations of a
            package containing an access_to_incomplete type that designate
            tasks appear in the same scope.

commit 6859ef489341d436ebf2fd5d41282c4f68b0283d
Author: Piotr Trojanek <trojanek@adacore.com>
Date:   Tue Feb 25 13:58:04 2020 +0100

    [Ada] Annotate Ada.Synchronous_Barriers with SPARK_Mode => Off
    
    2020-06-09  Piotr Trojanek  <trojanek@adacore.com>
    
    gcc/ada/
    
            * libgnarl/a-synbar.ads, libgnarl/a-synbar.adb,
            libgnarl/a-synbar__posix.ads, libgnarl/a-synbar__posix.adb
            (Ada.Synchronous_Barriers): Annotate with SPARK_Mode => Off.

commit 3795dac6fa7e6514cdc4daa138e29d5a4f4d001e
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Mon Feb 24 15:35:12 2020 -0500

    [Ada] AI1-0201 Relational operators of static string types are now static
    
    2020-06-09  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * sem_eval.adb (Eval_Relational_Op, Eval_String_Literal,
            Eval_Type_Conversion): Relax rules on relational operators and
            type conversions of static string types.

commit c68d70e8bda9423f502351e88e464803f73941b4
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Sun Feb 23 13:50:18 2020 -0500

    [Ada] Ada2020: AI12-0301 Predicates and Default_Value
    
    2020-06-09  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * sem_util.ads, sem_util.adb (Is_Partially_Initialized_Type):
            Take Default_Value and Default_Component_Value into account.
            * sem_ch3.adb (Analyze_Object_Declaration): Update comment.

commit d68c6d7dcc46a50ec248f9989243f83ad9a3ca0e
Author: Bob Duff <duff@adacore.com>
Date:   Mon Feb 24 19:22:56 2020 -0500

    [Ada] Disable assertion regarding Body_Before_Spec_Edge
    
    2020-06-09  Bob Duff  <duff@adacore.com>
    
    gcc/ada/
    
            * bindo-graphs.adb (Add_Edge_Kind_Check): Disable failing part
            of the assertion.

commit 942a384ef9f38777df25b2bfa421ce6a07553a98
Author: Martin Liska <mliska@suse.cz>
Date:   Mon Jun 8 16:04:31 2020 +0200

    libsanitizer: use gnu++14
    
    libsanitizer/ChangeLog:
    
            * asan/Makefile.am: Replace gnu++11 with gnu++14.
            * interception/Makefile.am: Likewise.
            * libbacktrace/Makefile.am: Likewise.
            * lsan/Makefile.am: Likewise.
            * sanitizer_common/Makefile.am: Likewise.
            * tsan/Makefile.am: Likewise.
            * ubsan/Makefile.am: Likewise.
            * asan/Makefile.in: Regenerate.
            * interception/Makefile.in: Likewise.
            * libbacktrace/Makefile.in: Likewise.
            * lsan/Makefile.in: Likewise.
            * sanitizer_common/Makefile.in: Likewise.
            * tsan/Makefile.in: Likewise.
            * ubsan/Makefile.in: Likewise.

commit 4373fd2c7f7307f970df73a943e636b2b9d272b6
Author: Martin Liska <mliska@suse.cz>
Date:   Tue Jun 9 10:01:05 2020 +0200

    gcc-changelog: fix deduction for root ChangeLog
    
    contrib/ChangeLog:
    
            * gcc-changelog/git_commit.py: Fix ChangeLog regex in order to
            match the top-level ChangeLog.
            * gcc-changelog/test_email.py: Add test.
            * gcc-changelog/test_patches.txt: Likewise.

commit d6dbb71e468d0db561cc9eca99eeaca1efb81c11
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Jun 9 08:39:36 2020 +0200

    c-family: Fix up MEM_REF printing [PR95580]
    
    The C FE in the MEM_REF printing ICEs if the type of the first argument
    (which due to useless pointer conversions can be an arbitrary type) is a
    pointer to an incomplete type.  The code just wants to avoid printing a cast
    if it is a pointer to single byte elements.
    
    2020-06-09  Jakub Jelinek  <jakub@redhat.com>
    
            PR c/95580
            * c-pretty-print.c (c_pretty_printer::unary_expression): Handle the
            case when MEM_REF's first argument has type pointer to incomplete type.
    
            * gcc.dg/pr95580.c: New test.

commit 653ab081391e9e7e38b304f3234323c93693d40c
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Jun 9 08:38:19 2020 +0200

    match.pd: Optimize ffs comparisons against constants [PR95527]
    
    The following patch implements various optimizations of __builtin_ffs*
    against constants.
    
    2020-06-09  Jakub Jelinek  <jakub@redhat.com>
    
            PR tree-optimization/95527
            * match.pd (__builtin_ffs (X) cmp CST): New optimizations.
    
            * gcc.dg/tree-ssa/pr95527.c: New test.

commit 9a39b91d934e7acd8f3a9767b6d5febe90168d0d
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Jun 9 08:34:13 2020 +0200

    testsuite: Fix g++.dg/torture/pr95493.C FAIL on i686-linux with -O0.
    
    2020-06-09  Jakub Jelinek  <jakub@redhat.com>
    
            * g++.dg/torture/pr95493.C: Add -Wno-psabi -w to dg-additional-options.

commit 1d9921cbdc732e1a7fc66b9c24a6dfa9625bd4c0
Author: Max Filippov <jcmvbkbc@gmail.com>
Date:   Sat Jun 6 05:06:04 2020 -0700

    xtensa: libgcc: fix PR target/95571
    
    Rewrite uw_install_context without function calls to avoid register
    spilling in _Unwind_RaiseException during return context installation.
    
    2020-06-08  Max Filippov  <jcmvbkbc@gmail.com>
    gcc/testsuite/
            * g++.target/xtensa/pr95571.C: New test.
            * g++.target/xtensa/xtensa.exp: New testsuite.
    
    libgcc/
            * config/xtensa/unwind-dw2-xtensa.c (uw_install_context): Merge
            with uw_install_context_1.

commit df2c0060e5d1e0a37001b93f36e9245bb75ef33b
Author: Segher Boessenkool <segher@kernel.crashing.org>
Date:   Mon Jun 8 22:34:21 2020 +0000

    rs6000/testsuite: Allow xxperm* instead of only vperm*
    
    Some testcases failed (esp. with --with-cpu=power9) after my change to
    prefer xxperm over vperm when all else is equal.  Fix that.  (This also
    tightens the relevant REs somewhat).
    
    2020-06-09  Segher Boessenkool  <segher@kernel.crashing.org>
    
    gcc/testsuite/
            * gcc.target/powerpc/fold-vec-perm-char.c: Allow both vperm/vpermr and
            xxperm/xxpermr.
            * gcc.target/powerpc/fold-vec-perm-double.c: Ditto.
            * gcc.target/powerpc/fold-vec-perm-float.c: Ditto.
            * gcc.target/powerpc/fold-vec-perm-int.c: Ditto.
            * gcc.target/powerpc/fold-vec-perm-longlong.c: Ditto.
            * gcc.target/powerpc/fold-vec-perm-pixel.c: Ditto.
            * gcc.target/powerpc/fold-vec-perm-short.c: Ditto.
            * gcc.target/powerpc/lvsl-lvsr.c: Ditto.
            * gcc.target/powerpc/vec-mult-char-2.c: Ditto.
            * gcc.target/powerpc/vsx-vector-6.p9.c: Also allow xxpermr.

commit 2c455ae06c0b46a6a27be3a6bd869384758e4707
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Jun 9 00:16:47 2020 +0000

    Daily bump.

commit 1c0fdaf79e3618fd7512608a2e5c62b6b306e9e8
Author: Tobias Burnus <tobias@codesourcery.com>
Date:   Mon Jun 8 23:24:57 2020 +0200

    openmp: ensure variables in offload table are streamed out (PRs 94848 + 95551)
    
    gcc/ChangeLog:
    
            PR lto/94848
            PR middle-end/95551
            * omp-offload.c (add_decls_addresses_to_decl_constructor,
            omp_finish_file): Skip removed items.
            * lto-cgraph.c (output_offload_tables): Likewise; set force_output
            to this node for variables and functions.
    
    libgomp/ChangeLog:
    
            PR lto/94848
            PR middle-end/95551
            * testsuite/libgomp.fortran/target-var.f90: New test.

commit ffac9597256823612fb63bbab0f9ba3c11255e6b
Author: Jason Merrill <jason@redhat.com>
Date:   Fri Jun 5 12:45:11 2020 -0400

    bootstrap: Fix --disable-bootstrap with older g++.
    
    Previously I had AX_CXX_COMPILE_STDCXX in the gcc directory configure, which
    added -std=c++11 to CXX if needed, but then CXX is overridden from the
    toplevel directory, so it didn't have the desired effect.  Fixed by moving
    the check to the toplevel.  Currently it is only used when building GCC
    without bootstrapping; other packages that share the toplevel directory
    can adjust the condition if they also want to require C++11 support.
    
    /ChangeLog:
    
            * configure.ac: Check AX_CXX_COMPILE_STDCXX if not bootstrapping.
            * configure: Regenerate.
    
    gcc/ChangeLog:
    
            * aclocal.m4: Remove ax_cxx_compile_stdcxx.m4.
            * configure.ac: Remove AX_CXX_COMPILE_STDCXX.
            * configure: Regenerate.

commit a37fbff12c3a441753f5eb677cebeab7350f24eb
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Jun 8 21:34:46 2020 +0100

    libstdc++: Fix failing tests
    
    These started failing with the previous commit, because I forgot to add
    the tests after adjusting them.
    
            * testsuite/20_util/default_delete/48631_neg.cc: Adjust dg-error
            line number.
            * testsuite/20_util/default_delete/void_neg.cc: Likewise.

commit 931fdcc5324417c46d6a67e9a4116fffb7bda2e0
Author: Jason Merrill <jason@redhat.com>
Date:   Mon Jun 8 15:22:24 2020 -0400

    Add missing ChangeLog entries

commit 187da2ce31f13b2f75d5bb780e30ee364ead9d1d
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Jun 8 18:08:14 2020 +0100

    libstdc++: Implement operator<< for std::unique_ptr (LWG 2948)
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/unique_ptr.h (operator<<): Define for C++20.
            * testsuite/20_util/unique_ptr/io/lwg2948.cc: New test.

commit 5fceefeee9a10cfba621d215f011a58badc246ad
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date:   Mon Jun 8 22:11:00 2020 +0200

    d: Fix regression caused by recent refactoring
    
    gcc/d/ChangeLog:
    
            PR d/95573
            * dmd/MERGE: Merge upstream dmd 5041e56f1.

commit 49a09af117be32adf230efd2c52a41f810b9ee04
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date:   Mon Jun 8 21:57:59 2020 +0200

    d: Merge upstream dmd 955b8b36f.
    
    Merges AndAndExp and OrOrExp into a LogicalExp AST node.
    
    gcc/d/ChangeLog:
    
            * dmd/MERGE: Merge upstream dmd 955b8b36f.
            * expr.cc (ExprVisitor::visit (AndAndExp *)): Rename type to ...
            (ExprVisitor::visit (LogicalExp *)): ... this.  Handle both 'and if'
            and 'or if' expression nodes.
            (ExprVisitor::visit (OrOrExp *)): Remove.

commit 8cd239614e43c9dcc0838845aec504e5eb938dbd
Author: Harald Anlauf <anlauf@gmx.de>
Date:   Mon Jun 8 21:00:11 2020 +0200

    PR fortran/95195 - Fortran testcase should clean up afterwards
    
    Change testcase to check error message (iomsg) at runtime, rather than to crash.
    
    libgfortran/
            PR fortran/95091
            * io/transfer.c (finalize_transfer): Fix type in error message.
    
    gcc/testsuite/
            PR fortran/95195
            * gfortran.dg/namelist_97.f90: Adjust testcase.

commit c1057cc0a8ad972e0a2218ab74038a56e5514c39
Author: Martin Sebor <msebor@redhat.com>
Date:   Mon Jun 8 09:06:48 2020 -0600

    PR bootstrap/95555 - powepc64 bootstrap failure due to -Wmaybe-uninitialized in reload_cse_simplify_operands
    
    gcc/ChangeLog:
    
            * postreload.c (reload_cse_simplify_operands): Clear first array element
            before using it.  Assert a precondition.

commit 5dc3986103d8908c802e940dea8f2def3a6989c2
Author: Mark Eggleston <markeggleston@gcc.gnu.org>
Date:   Thu Jun 4 05:53:31 2020 +0100

    Fortran  : ICE in maybe_canonicalize_comparison_1 PR92993
    
    This issue has been fixed by PR94090.  Add test case to ensure that
    this does not re-occur.
    
    2020-06-08  Mark Eggleston  <markeggleston@gcc.gnu.org>
    
    gcc/testsuite/
    
            PR fortran/92993
            * gfortran.dg/pr92993.f90: New test.

commit 8be374e02761c9d63d2753d71e4bd4874a1577b1
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Mon Jun 8 11:05:10 2020 +0200

    forwprop: Ignore scalar mode vectors in simplify_vector_constructor [PR95528]
    
    As mentioned in the PR, the problem is that at least the x86 backend asumes
    that the vec_unpack* and vec_pack* optabs with integral modes are for the
    AVX512-ish vector masks rather than for very small vectors done in GPRs.
    The only other target that seems to have a scalar mode vec_{,un}pack* optab
    is aarch64 as discussed in the PR, so there is also a condition for that.
    All other targets have just vector mode optabs.
    
    2020-06-08  Jakub Jelinek  <jakub@redhat.com>
    
            PR target/95528
            * tree-ssa-forwprop.c (simplify_vector_constructor): Don't use
            VEC_UNPACK*_EXPR or VEC_PACK_TRUNC_EXPR with scalar modes unless the
            type is vector boolean.
    
            * g++.dg/opt/pr95528.C: New test.

commit 296d644b9f526e44fbe574426f24799c1d545fd3
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Mon Jun 8 10:30:48 2020 +0200

    testsuite: Fix up pr95548.C testcase.
    
    2020-06-08  Jakub Jelinek  <jakub@redhat.com>
    
            PR lto/95548
            * g++.dg/torture/pr95548.C: Change from dg-do compile to dg-do link,
            add return type for main, for __SIZEOF_INT128__ test with __uint128_t
            enumerator constants and add a test with unsigned long long
            enumerators for all targets.

commit d6430e3cccb37bec6c5604dffe48c52016509013
Author: Tamar Christina <tamar.christina@arm.com>
Date:   Mon Jun 8 09:23:10 2020 +0100

    AArch64: Expand on comment of stack-clash and implicit probing through LR.
    
    This expands the comment on an assert we have in aarch64_layout_frame
    and points to an existing comment somewhere else that has a much longer
    explanation of what's going on.
    
    Committed under the GCC Obvious rule.
    
    gcc/ChangeLog:
    
            * config/aarch64/aarch64.c (aarch64_layout_frame): Expand comments.

commit 635408da1eb1d441ef4d59fe00a038c920e51085
Author: Christophe Lyon <christophe.lyon@linaro.org>
Date:   Mon Jun 8 08:17:20 2020 +0000

    [arm] Fix vfp_operand_register for VFP HI regs
    
    While looking at PR target/94743 I noticed an ICE when I tried to save
    all the FP registers: this was because all HI registers wouldn't match
    vfp_register_operand.
    
    gcc/ChangeLog:
    
            * config/arm/predicates.md (vfp_register_operand): Use VFP_HI_REGS
            instead of VFP_REGS.

commit 291f65f15a70dafd5b345f55028947ad048c3bb7
Author: Martin Liska <mliska@suse.cz>
Date:   Tue Jun 2 15:29:37 2020 +0200

    rs6000: Replace FAIL with gcc_unreachable
    
    gcc/ChangeLog:
    
            * config/rs6000/vector.md: Replace FAIL with gcc_unreachable
            in all vcond* patterns.

commit e7b3f654f2ab0400c95c0517387a9ad645a5c4cd
Author: Christophe Lyon <christophe.lyon@linaro.org>
Date:   Mon Jun 8 08:04:19 2020 +0000

    [arm] (header usage fix) include c++ algorithm header via system.h
    
    After the recent commit that forces uses of c++11, the arm part failed
    to build because it does not include <algorithm> via system.h as
    should be done.
    
    This results in:
    from /gcc/common/config/arm/arm-common.c:34:
    /usr/lib/gcc/x86_64-linux-gnu/5/include/mm_malloc.h:42:12: error:
    attempt to use poisoned "malloc"
         return malloc (size);
    
    This patch fixes the problem by defining INCLUDE_ALGORITHM before
    including system.h and no longer includes <algorithm> directly.
    
    gcc/ChangeLog:
    
            * common/config/arm/arm-common.c (INCLUDE_ALGORITHM):
            Define. No longer include <algorithm>.

commit 48b799ea9a6a252c355947f33f78f43a38fe31b0
Author: Steve Baird <baird@adacore.com>
Date:   Thu Feb 20 15:35:51 2020 -0800

    [Ada] Implement AI12-0073 (Ravenscar disallows Synchronous_Barriers)
    
    2020-06-08  Steve Baird  <baird@adacore.com>
    
    gcc/ada/
    
            * sem_prag.adb (Analyze_Pragma.Set_Ravenscar_Profile): Add
            appropriate call to Set_Restriction_No_Dependence if Ada_Version
            >= Ada2012 and Profile is either Ravenscar or a GNAT-defined
            Ravenscar variant (i.e., not Jorvik).

commit 63408d0eb2f6fd33b6b423396e3d80d54f3235ae
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Mon Feb 24 05:41:00 2020 -0500

    [Ada] AI12-0204 Renaming of a prefixed view
    
    2020-06-08  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * sem_ch5.adb: Fix typo.
            * sem_ch8.adb (Analyze_Renamed_Primitive_Operation): Check that
            the prefix of a prefixed view must be renamable as an object.

commit 072c5071e0e95401cec2b700c3f276c9eb91abb1
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Fri Feb 21 09:44:28 2020 -0500

    [Ada] AI12-0085 Missing aspect cases for Remote_Types
    
    2020-06-08  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * sem_cat.ads: Fix typo.
            * sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type): Add
            handling of N_Attribute_Definition_Clause.
            * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Call
            Validate_Remote_Access_To_Class_Wide_Type for Storage_Size and
            Storage_Pool.
            * sem_attr.adb, exp_ch4.adb: Update comments.

commit a689887372e80f748fedd95e98ce9a85e7b09c9b
Author: Justin Squirek <squirek@adacore.com>
Date:   Fri Feb 21 16:12:35 2020 -0500

    [Ada] Spurious error on call to controlled primitive
    
    2020-06-08  Justin Squirek  <squirek@adacore.com>
    
    gcc/ada/
    
            * sem_ch4.adb (Analyze_One_Call): Add extra condition to the
            predicate for deciding when a given controlled call is visible.

commit 5351d617ec82bc2795a514e9de815484fb8cd0fc
Author: Piotr Trojanek <trojanek@adacore.com>
Date:   Mon Feb 17 18:00:41 2020 +0100

    [Ada] Port a modified expansion of Enum_Rep from GNAT to GNATprove
    
    2020-06-08  Piotr Trojanek  <trojanek@adacore.com>
    
    gcc/ada/
    
            * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Port
            changes in frontend expander.

commit e344ec2553320fa95414e39001435076f277e335
Author: Piotr Trojanek <trojanek@adacore.com>
Date:   Thu Feb 20 12:10:53 2020 +0100

    [Ada] Style cleanups in new code for Pure_Barriers
    
    2020-06-08  Piotr Trojanek  <trojanek@adacore.com>
    
    gcc/ada/
    
            * sem_ch13.adb (All_Membership_Choices_Static): Fix style.

commit a998e58bf019c7174a7480fc4d46ec9fcbc4cd92
Author: Steve Baird <baird@adacore.com>
Date:   Wed Feb 19 16:27:47 2020 -0800

    [Ada] Implement AI12-0291 (Jorvik profile)
    
    2020-06-08  Steve Baird  <baird@adacore.com>
    
    gcc/ada/
    
            * libgnat/s-rident.ads: Add Jorvik to the Profile_Name
            enumeration type.  Add an element for Jorvik to the array
            aggregate that is the initial value of the constant
            Profile_Info.
            * targparm.adb (Get_Target_Parameters): Handle "pragma Profile
            (Jorvik);" similarly to "pragma Profile (Ravenscar);".
            * snames.ads-tmpl: Declare Name_Jorvik Name_Id. Unlike
            Ravenscar, Jorvik is not a pragma name and has no corresponding
            element in the Pragma_Id enumeration type; this means that its
            declaration must not occur between those of First_Pragma_Name
            and Last_Pragma_Name.
            * sem_prag.adb (Analyze_Pragma): Add call to
            Set_Ravenscar_Profile for Jorvik, similar to the existing calls
            for Ravenscar and the GNAT Ravenscar variants.

commit 4b8c2c4ba3566f8dd6d256e4b93321410782a0b4
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Mon Feb 17 12:41:37 2020 -0500

    [Ada] AI12-0228 Properties of qualified expressions used as names
    
    2020-06-08  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * sem_ch8.adb (Analyze_Object_Renaming): Update Get_Object_Name
            to go through N_Qualified_Expression and N_Type_Conversion.  Fix
            another case of wrong usage of E_Anonymous_Access_Type instead
            of Anonymous_Access_Kind.
            * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Work
            on the original node.
            (Is_Aliased_View): Take into account N_Qualified_Expression.

commit 8eda13a49e566270f04323dbec11b2e86d3ddccc
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Fri Feb 14 11:50:12 2020 -0500

    [Ada] Fix handling of 'Enum_Rep and renamings
    
    2020-06-08  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * sem_eval.adb (Eval_Type_Conversion): Fix handling of
            enumeration to integer conversions.
            * exp_attr.adb (Expand_N_Attribute_Reference
            [Attribute_Enum_Rep]): Remove special casing for first-level
            renaming, best left to the general folding mechanism via
            Eval_Type_Conversion.

commit bbe7d67f5ffdadeee67e0060bde212d09e38a704
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Sun Feb 9 18:03:48 2020 +0100

    [Ada] Remove the Has_Dynamic_Range_Check flag
    
    2020-06-08  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * atree.adb (New_Copy): Do not clear Has_Dynamic_Range_Check.
            * checks.ads (Append_Range_Checks): Remove Flag_Node parameter.
            (Insert_Range_Checks): Likewise and remove default value of
            Static_Loc parameter.
            * checks.adb (Append_Range_Checks): Remove Flag_Node parameter.
            Do not test and set Has_Dynamic_Range_Check.
            (Insert_Range_Checks): Likewise and remove default value of
            Static_Loc parameter.
            * csinfo.adb (CSinfo): Remove 'L' from [NEUB]_Fields pattern and
            do not handle Has_Dynamic_Range_Check.
            * exp_ch5.adb (Expand_N_Assignment_Statement): Remove argument
            in call to Insert_Range_Checks.
            * sem_ch3.adb (Analyze_Subtype_Declaration): Do not fiddle
            with Has_Dynamic_Range_Check.
            (Process_Range_Expr_In_Decl): Remove argument in calls to
            Insert_Range_Checks and Append_Range_Checks.
            * sinfo.ads (Has_Dynamic_Range_Check): Delete.
            (Set_Has_Dynamic_Range_Check): Likewise.
            * sinfo.adb (Has_Dynamic_Range_Check): Delete.
            (Set_Has_Dynamic_Range_Check): Likewise.
            * treepr.adb (Print_Node): Do not print Has_Dynamic_Range_Check.

commit 6476fc372a684ff42712c10508dddf0e6d229df5
Author: Steve Baird <baird@adacore.com>
Date:   Fri Feb 14 16:24:47 2020 -0800

    [Ada] Implement AI12-0290 (Simple_Barriers restriction)
    
    2020-06-08  Steve Baird  <baird@adacore.com>
    
    gcc/ada/
    
            * sem_ch13.ads: Export new function
            All_Membership_Choices_Static.
            * sem_ch13.adb: Implement new function
            All_Membership_Choices_Static.  This involves moving the
            functions Is_Static_Choice and All_Membership_Choices_Static,
            which were previously declared within the function
            Is_Predicate_Static, out to library level so that they can be
            called by the new function. The already-exisiting code in
            Is_Predicate_Static which became the body of
            All_Membership_Choices_Static is replaced with a call to the new
            function in order to avoid duplication.
            * exp_ch9.adb (Is_Pure_Barrier): Several changes needed to
            implement rules of AI12-0290 and RM D.7's definition of
            "pure-barrier-eligible". These changes include adding a call to
            the new function Sem_13.All_Membership_Choices_Static, as per
            the "see 4.9" in RM D.7(1.6/5).

commit 8b0ec65d852c11fde3937629d10c6b24083b5737
Author: Richard Kenner <kenner@adacore.com>
Date:   Mon Feb 17 18:17:58 2020 -0500

    [Ada] Issue with unnesting of 'First/Last and renaming
    
    2020-06-08  Richard Kenner  <kenner@adacore.com>
    
    gcc/ada/
    
            * exp_unst.adb (Visit_Node): When visiting array attribute
            nodes, in addition to checking the type of Get_Referenced_Object
            of the prefix, also check the actual type of the prefix.

commit 24eda9e701253cc482c0c70a102fcad103aa1591
Author: Gary Dismukes <dismukes@adacore.com>
Date:   Mon Feb 17 01:31:57 2020 -0500

    [Ada] Implement predicate checks on qualified expressions (AI12-0100)
    
    2020-06-08  Gary Dismukes  <dismukes@adacore.com>
    
    gcc/ada/
    
            * checks.adb (Apply_Predicate_Check): Refine test for being in a
            subprogram body to account for no Corresponding_Body case,
            avoiding blowups arising due to other changes here.
            * exp_ch4.adb (Expand_N_Qualified_Expression): Apply predicate
            checks, if any, after constraint checks are applied.
            * sem_eval.ads (Check_Expression_Against_Static_Predicate): Add
            Check_Failure_Is_Error formal for conditionalizing warning vs.
            error messages.
            * sem_eval.adb (Check_Expression_Against_Static_Predicate):
            Issue an error message rather than a warning when the new
            Check_Failure_Is_Error formal is True. In the nonstatic or
            Dynamic_Predicate case where the predicate is known to fail,
            emit the check to ensure that folded cases get checks applied.
            * sem_res.adb (Resolve_Qualified_Expression): Call
            Check_Expression_Against_Static_Predicate, passing True for
            Check_Failure_Is_Error, to ensure we reject static predicate
            violations. Remove code that was conditionally calling
            Apply_Predicate_Check, which is no longer needed, and that check
            procedure shouldn't be called from a resolution routine in any
            case. Also remove associated comment about preventing infinite
            recursion and consistency with Resolve_Type_Conversion, since
            that handling was already similarly removed from
            Resolve_Type_Convesion at some point.
            (Resolve_Type_Conversion): Add passing of True for
            Check_Failure_Is_Error parameter on call to
            Check_Expression_Against_Static_Predicate, to ensure that static
            conversion cases that violate a predicate are rejected as
            errors.

commit 7b7f1ca1b28b650eedd1074bf723b04e99adcdaf
Author: Piotr Trojanek <trojanek@adacore.com>
Date:   Mon Feb 17 14:15:16 2020 +0100

    [Ada] Restore Snames.Name_SPARK as it used in the GNATprove backend
    
    2020-06-08  Piotr Trojanek  <trojanek@adacore.com>
    
    gcc/ada/
    
            * snames.ads-tmpl (Name_SPARK): Restore after being deleted.

commit 7907619e7737b6cb38ee334996a7d7a33bb7a1d6
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Mon Feb 10 15:18:47 2020 -0500

    [Ada] Remove processing of SPARK_05 restriction
    
    2020-06-08  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * exp_aggr.adb, exp_ch6.adb, par-ch11.adb, par-ch6.adb,
            par-ch7.adb, par-prag.adb, restrict.adb, restrict.ads,
            scans.ads, scng.adb, sem_aggr.adb, sem_attr.adb, sem_ch11.adb,
            sem_ch12.adb, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
            sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
            sem_res.adb, sem_util.adb, sem_util.ads, snames.ads-tmpl,
            gnatbind.adb, libgnat/s-rident.ads,
            doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
            Remove processing of SPARK_05 restriction.
            * gnat_rm.texi: Regenerate.
            * opt.ads: Remove processing of old checksum which is now
            handled by gprbuild directly.

commit b4aa6e2978408f0f45fe1074481cfd4044947ab9
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Sun Feb 16 07:16:45 2020 -0500

    [Ada] AI12-0287 Legality Rules for null exclusions in renaming are too fierce
    
    2020-06-08  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * sem_ch12.adb (Instantiate_Object): Relax rules related to null
            exclusions and generic objects. Handle all anonymous types
            consistently and not just E_Anonymous_Access_Type.
            * sem_ch8.adb (Analyze_Object_Renaming): Change wording so that
            it applies to both renamings and instantiations to avoid
            confusion.

commit 58c4038810a0951979d2b3c06bda0cadea3a50ea
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Sat Feb 15 12:37:13 2020 -0500

    [Ada] Ada.Text_IO: fix typo
    
    2020-06-08  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * libgnat/a-textio.ads (File_Mode): Fix typo in comment.

commit 8214938ab2e0775ff70b344a8fbc0a43bda0b0c5
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Sat Feb 15 16:48:15 2020 +0100

    [Ada] Do not warn on partial access to atomic object with address clause
    
    2020-06-08  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * sem_res.adb (Resolve_Indexed_Component): Do not give a warning
            for a nonatomic component of an atomic array which is subject to
            an address clause in Ada 2020 mode.
            (Resolve_Selected_Component): Likewise for an atomic record.

commit 591bdee0fa1087daeab3c0f901d5139c6776469d
Author: Philippe Gil <gil@adacore.com>
Date:   Mon Feb 3 14:56:23 2020 +0100

    [Ada] Add gnatname use for multiple units files support
    
    2020-06-08  Philippe Gil  <gil@adacore.com>
    
    gcc/ada/
    
            * doc/gnat_ugn/the_gnat_compilation_model.rst: in "Handling
            Files with Multiple Units" part documents gnatname use for
            unmodified files handling and gnatchop use for files
            refactoring.
            * gnat_ugn.texi: Regenerate.

commit fccf77d504b72a749b6aba877454b9d846c0b568
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Fri Feb 14 03:12:30 2020 -0500

    [Ada] Update doc on Enum_Rep/Enum_Val
    
    2020-06-08  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * doc/gnat_rm/implementation_defined_attributes.rst:
            Enum_Rep/Enum_Val are standard Ada 202x attributes.
            * gnat_rm.texi: Regenerate.

commit 176de683776a26f97ba8fa4189ce953886753c18
Author: Javier Miranda <miranda@adacore.com>
Date:   Mon Feb 10 17:12:32 2020 -0500

    [Ada] Better code generation for nested aggregates
    
    2020-06-08  Javier Miranda  <miranda@adacore.com>
    
    gcc/ada/
    
            * exp_aggr.adb (Safe_Component): Remove code that considers as
            unsafe components that are aggregates; such removal allows the
            frontend to proceed and evaluate if they are safe by means of
            invoking Safe_Aggregate.

commit c382d0712fba76b6fce4a9aadc5a4487fad7efaf
Author: Piotr Trojanek <trojanek@adacore.com>
Date:   Wed Feb 12 11:00:38 2020 +0100

    [Ada] Reuse standard expansion of 'First and 'Last in GNATprove mode
    
    2020-06-08  Piotr Trojanek  <trojanek@adacore.com>
    
    gcc/ada/
    
            * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Apply
            standard expansion to attributes First and Last.

commit 3ebf0cbda50a5f5682456cdbb064576e0a08c0f7
Author: Piotr Trojanek <trojanek@adacore.com>
Date:   Tue Feb 11 23:01:06 2020 +0100

    [Ada] Reuse Get_Index_Subtype in the special expander for GNATprove
    
    2020-06-08  Piotr Trojanek  <trojanek@adacore.com>
    
    gcc/ada/
    
            * exp_attr.adb, exp_util.ads, exp_util.adb (Get_Index_Subtype):
            Move from the body of Exp_Attr to Exp_Util and expose from the
            spec.
            * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Replace
            duplicated code with a call to Get_Index_Subtype.

commit 6e063ac3887d7e3b2992fa5fa12a57e743be6c1d
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Sun Feb 9 14:53:05 2020 -0500

    [Ada] AI12-0226 Make objects more consistent
    
    2020-06-08  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * sem_ch8.adb (Analyze_Object_Renaming): Simplify code by moving
            many special cases to Is_Object_Reference and removing others by
            only checking renamings coming from sources.
            * sem_util.adb (Is_Object_Reference): Update for AI12-0226 and
            add more regular handling of 'Priority. Remove special cases no
            longer needed now that we are only checking renamings coming
            from sources.

commit ae9293fb8e1895006ce33069eaabdecfe65c46a2
Author: Claire Dross <dross@adacore.com>
Date:   Mon Feb 10 14:51:30 2020 +0100

    [Ada] Silence spurious warning on instances of formal vectors
    
    2020-06-08  Claire Dross  <dross@adacore.com>
    
    gcc/ada/
    
            * libgnat/a-cofove.adb (Insert_Space): The computation of Index
            generates a spurious compiler warning about a value not being in
            range for a statically dead branch.  Silence it using pragma
            Warnings.

commit d2f7fa08bd557db89d771b648631bb98c61a631e
Author: Bob Duff <duff@adacore.com>
Date:   Mon Feb 10 19:21:00 2020 -0500

    [Ada] gnatbind: Deterministic No_Entry_Calls_In_Elaboration_Code messages
    
    2020-06-08  Bob Duff  <duff@adacore.com>
    
    gcc/ada/
    
            * bindo-graphs.adb (function Add_Edge): Rename
            Add_Edge_With_Return to Add_Edge; we can tell it returns because
            it's a function, and overloading seems appropriate in this case.
            If Activates_Task=True, and we're not going to add a new edge
            because an existing Pred-->Succ edge already exists, then set
            Activates_Task to True on the preexisting edge.  This ensures
            that the message:
    
            info: use pragma Restrictions (No_Entry_Calls_In_Elaboration_Code)
    
            appears when appropriate, no matter in what order the edges
            happened to be processed.
            (procedure Add_Edge): Remove redundant assertions.
            (Activates_Task): Other kinds of edges can have
            Activates_Task=True.  For example, if we had a With_Edge and
            then an Invocation_Edge with Activates_Task=True, then the
            With_Edge has Activates_Task set to True.
            (Add_Edge_Kind_Check): New procedure to prevent other bugs of
            this nature. For example, if we were to sometimes call Add_Edge
            for a Spec_Before_Body_Edge followed by Add_Edge for a
            With_Edge, and sometimes in the other order, that would cause a
            similar bug to what we're fixing here.
            (Set_Is_Recorded_Edge): Val parameter is not used. Get rid of
            it.
            (Set_Activates_Task): New procedure to set the Activates_Task flag.
            * bindo-graphs.ads (Library_Graph_Edge_Kind): Reorder the
            enumeration literals to facilitate Add_Edge_Kind_Check.
            * ali.adb (Known_ALI_Lines): The comment about "still available"
            was wrong. Fix that by erasing the comment, and encoding the
            relevant information in real code. Take advantage of Ada's full
            coverage rules by removing "others =>".  Also DRY.

commit 2f7294f23e87c4e0a48e50814ab7bb9a4a756a9f
Author: Ed Schonberg <schonberg@adacore.com>
Date:   Sun Feb 9 19:30:05 2020 -0500

    [Ada] Ada_2020: shared variable control aspects on formal derived types
    
    2020-06-08  Ed Schonberg  <schonberg@adacore.com>
    
    gcc/ada/
    
            * par-ch12.adb (P_Formal_Derived_Type_Definition): Handle
            properly formal derived types that include aspect
            specifications, so that the "with" keyword appears twice in the
            formal type declaration.
            * sem_ch13.adb (Has_Generic_Parent): Return true if the type
            itself is a generic formal.

commit 8472d81ea00dc16a55b55a21ed34499390604941
Author: Dmitriy Anisimkov <anisimko@adacore.com>
Date:   Thu Feb 6 16:25:06 2020 +0600

    [Ada] Fix socket timeout correction for Windows Server 2019 case
    
    2020-06-08  Dmitriy Anisimkov  <anisimko@adacore.com>
    
    gcc/ada/
    
            * socket.c (__gnat_minus_500ms): Remove
            IsWindowsVersionOrGreater from condition.

commit 54c1fdb62b647c1dedf6d58d260ed85e93e0af20
Author: Claire Dross <dross@adacore.com>
Date:   Mon Feb 10 12:30:40 2020 +0100

    [Ada] Add Depends contracts to Delete procedures of formal containers
    
    2020-06-08  Claire Dross  <dross@adacore.com>
    
    gcc/ada/
    
            * libgnat/a-cfdlli.ads, libgnat/a-cfhama.ads,
            libgnat/a-cfhase.ads, libgnat/a-cforma.ads, libgnat/a-cforse.ads
            (Delete): Add Depends contract.

commit 9490fd58a82b80a7048d5e1a82f749da438b4306
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Fri Jan 31 11:09:11 2020 -0500

    [Ada] AI12-0309 Missing checks for pragma Suppress
    
    2020-06-08  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * snames.ads-tmpl (Name_Program_Error_Check,
            Name_Tasking_Check): New constants.
            * types.ads (Program_Error_Check, Tasking_Check): New constants.
            (All_Checks): Update accordingly.

commit 53d461e4e0fbc6d2ef7385509e8c3785e9b205fd
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Jun 8 00:16:23 2020 +0000

    Daily bump.

commit 0a2ee4099d9c964dadd097f829a9624164d98743
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date:   Sun Jun 7 21:58:49 2020 +0200

    d: Merge upstream dmd 73d8e2fec.
    
    Renames the enum PROTKIND to Prot::Kind, updates all uses of the
    original enum accordingly.
    
    gcc/d/ChangeLog:
    
            * dmd/MERGE: Merge upstream dmd 73d8e2fec.
            * decl.cc (get_symbol_decl): Use new Prot::Kind enum.
            * modules.cc (get_internal_fn): Likewise.

commit f08995eefbf579acfe40f0204727d5ce388e3d0a
Author: Uros Bizjak <ubizjak@gmail.com>
Date:   Sun Jun 7 22:07:28 2020 +0200

    i386: Improve expansion of __builtin_parity
    
    GCC currently hides the shift and xor reduction inside a backend
    specific UNSPEC PARITY, making it invisible to the RTL optimizers until
    very late during compilation.  It is normally reasonable for the
    middle-end to maintain wider mode representations for as long as possible
    and split them later, but this only helps if the semantics are visible
    at the RTL-level (to combine and other passes), but UNSPECs are black
    boxes, so in this case splitting early (during RTL expansion) is a
    better strategy.
    
    It turns out that that popcount instruction on modern x86_64 processors
    has (almost) made the integer parity flag in the x86 ALU completely
    obsolete, especially as POPCOUNT's integer semantics are a much better
    fit to RTL.  The one remaining case where these transistors are useful
    is where __builtin_parity is immediately tested by a conditional branch,
    and therefore the result is wanted in a flags register rather than as
    an integer.  This case is captured by two peephole2 optimizations in
    the attached patch.
    
    2020-06-07  Roger Sayle  <roger@nextmovesoftware.com>
    
    gcc/ChangeLog:
    
            * config/i386/i386.md (paritydi2, paritysi2): Expand reduction
            via shift and xor to an USPEC PARITY matching a parityhi2_cmp.
            (paritydi2_cmp, paritysi2_cmp): Delete these define_insn_and_split.
            (parityhi2, parityqi2): New expanders.
            (parityhi2_cmp): Implement set parity flag with xorb insn.
            (parityqi2_cmp): Implement set parity flag with testb insn.
            New peephole2s to use these insns (UNSPEC PARITY) when appropriate.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/i386/parity-3.c: New test.
            * gcc.target/i386/parity-4.c: Likewise.
            * gcc.target/i386/parity-5.c: Likewise.
            * gcc.target/i386/parity-6.c: Likewise.
            * gcc.target/i386/parity-7.c: Likewise.
            * gcc.target/i386/parity-8.c: Likewise.
            * gcc.target/i386/parity-9.c: Likewise.

commit fced594b313ddfb941913b2f59b10ce3514faaf6
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date:   Sun Jun 7 19:42:58 2020 +0200

    d: Merge upstream dmd 108ca1bcd.
    
    Renames OutBuffer::peekString to OutBuffer::peekChars, and
    OutBuffer::extractString to OutBuffer::extractChars.  All callers have
    been updated as appropriate.
    
    Reviewed-on: https://github.com/dlang/dmd/pull/11247
    
    gcc/d/ChangeLog:
    
            * dmd/MERGE: Merge upstream dmd 108ca1bcd.
            * d-diagnostic.cc (expand_d_format): Adjust to use extractChars().
            * d-frontend.cc (Loc::toChars): Likewise.
            * d-lang.cc (deps_write): Likewise.
            (d_parse_file): Likewise.
            * decl.cc (d_mangle_decl): Likewise.
            * intrinsics.cc (maybe_set_intrinsic): Likewise.

commit c3a2ba10b272fd9581560604284da2a6283bcde0
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date:   Sun Jun 7 16:50:46 2020 +0200

    d: Merge upstream dmd b0df0e982
    
    Adds a struct ParameterList to encapulate parameter and vararg
    information in the front-end.
    
    Reviewed-on: https://github.com/dlang/dmd/pull/11226
    
    gcc/d/ChangeLog:
    
            * dmd/MERGE: Merge upstream dmd b0df0e982.
            * d-builtins.cc (build_frontend_type): Use VarArg for varargs_p.
            * d-codegen.cc (declaration_type): Call TypeFunction::create with
            argument VARARGnone.
            (parameter_type): Likewise.
            (d_build_call): Use new field names and member functions.
            * d-target.cc (Target::cppParameterType): Call TypeFunction::create
            with argument VARARGnone.
            * types.cc (TypeVisitor::visit (TypeFunction *): Use new field names
            and member functions.

commit 5aaccde3db39fac7e7f6677ceccc1eadd9c6a424
Author: Harald Anlauf <anlauf@gmx.de>
Date:   Sun Jun 7 16:43:12 2020 +0200

    PR fortran/95091 - Buffer overflows with submodules and long symbols
    
    Add cast to fix bootstrap error with -Werror=sign-compare.
    
    gcc/fortran/
            PR fortran/95091
            * class.c (gfc_hash_value): Add cast.

commit 761306fc5e60b1af1f7d0cc076da772a6c821cac
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date:   Sun Jun 7 16:37:25 2020 +0200

    d: Merge upstream dmd 1831b24ff.
    
    Converts some global and param fields from pointers to value types.
    
    Reviewed-on: https://github.com/dlang/dmd/pull/11245
    
    gcc/d/ChangeLog:
    
            * dmd/MERGE: Merge upstream dmd 1831b24ff.
            * d-lang.cc (d_init_options): Remove initialization of updated fields.
            (d_handle_option): Adjust for new field types.

commit b342cfd648e6658363c7c8fef83af8f59dba1795
Author: Harald Anlauf <anlauf@gmx.de>
Date:   Sun Jun 7 14:47:24 2020 +0200

    PR fortran/95091 - Buffer overflows with submodules and long symbols
    
    With submodules, name mangling results in long internal symbols.  This
    requires adjustment of the sizes of temporaries to avoid buffer overflows.
    
    2020-06-07  Harald Anlauf  <anlauf@gmx.de>
    
    gcc/fortran/
            PR fortran/95091
            * class.c (get_unique_type_string, gfc_hash_value): Enlarge
            buffers, and check whether the strings returned by
            get_unique_type_string() fit.

commit d8930b138788258aaad77b8fe821ce44d08a66d1
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date:   Sun Jun 7 11:26:32 2020 +0200

    d: Merge upstream dmd cef1e7991.
    
    Adds a DString type, a struct that has a compatible layout with D
    strings.  Many parameters in the Global struct have been switched over
    to this type, and users of these params have been adjust to use the
    length or ptr field as appropriate.
    
    gcc/d/ChangeLog:
    
            * dmd/MERGE: Merge upstream dmd cef1e7991.
            * d-lang.cc (d_parse_file): Adjust for new field types.

commit 557a40f599f64e40cc1b20254bf82acc775375f5
Author: guojiufu <guojiufu@linux.ibm.com>
Date:   Thu May 28 14:10:39 2020 +0800

    rs6000: allow cunroll to grow size according to -funroll-loop or -fpeel-loops
    
    Previously, flag_unroll_loops was turned on at -O2 implicitly.  This
    also turned on cunroll with allowance size increasing, and cunroll
    will unroll/peel the loop even the loop is complex like code in PR95018.
    With this patch, size growth for cunroll is allowed only for if -funroll-loops
    or -fpeel-loops or -O3 is specified explicitly.
    
    gcc/ChangeLog
    2020-06-07  Jiufu Guo  <guojiufu@linux.ibm.com>
    
            PR target/95018
            * config/rs6000/rs6000.c (rs6000_option_override_internal):
            Override flag_cunroll_grow_size.

commit 71489d8e7572388c6e9528a45e4942b7c7b67e4f
Author: guojiufu <guojiufu@linux.ibm.com>
Date:   Thu May 28 13:42:23 2020 +0800

    Introduce flag_cunroll_grow_size for cunroll
    
    Currently GIMPLE complete unroller(cunroll) is checking
    flag_unroll_loops and flag_peel_loops to see if allow size growth.
    Beside affects curnoll, flag_unroll_loops also controls RTL unroler.
    To have more freedom to control cunroll and RTL unroller, this patch
    introduces flag_cunroll_grow_size.  With this patch, we can control
    cunroll and RTL unroller indepently.
    
    gcc/ChangeLog
    2020-06-07  Jiufu Guo  <guojiufu@linux.ibm.com>
    
            * common.opt (flag_cunroll_grow_size): New flag.
            * toplev.c (process_options): Set flag_cunroll_grow_size.
            * tree-ssa-loop-ivcanon.c (pass_complete_unroll::execute):
            Use flag_cunroll_grow_size.

commit 905ba62ec96f8469c1085861d9ceec58fbee5709
Author: Thomas Koenig <tkoenig@gcc.gnu.org>
Date:   Sun Jun 7 10:43:54 2020 +0200

    Added test case for a PR which has been fixed in the meantime.
    
    gcc/testsuite/ChangeLog:
    
            PR tree-optimization/50439
            * gfortran.dg/loop_interchange_2.f: New test.

commit 8f94b078cc11903bb54e5d57dfb44377c7e498b0
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Jun 7 00:16:19 2020 +0000

    Daily bump.

commit eca7a60bd24ebd91addd785e420a06d8f5086634
Author: Jan Hubicka <jh@suse.cz>
Date:   Sat Jun 6 22:19:46 2020 +0200

    Fix ICE in ODR enum streaming [PR95548]
    
    gcc/ChangeLog:
    
    2020-06-06  Jan Hubicka  <hubicka@ucw.cz>
    
            PR lto/95548
            * ipa-devirt.c (struct odr_enum_val): Turn values to wide_int.
            (ipa_odr_summary_write): Update streaming.
            (ipa_odr_read_section): Update streaming.
    
    gcc/testsuite/ChangeLog:
    
    2020-06-06  Jan Hubicka  <hubicka@ucw.cz>
    
            * g++.dg/torture/pr95548.C: New test.

commit 1ca05dead046d88c4bd9e7b8f3129269a5c5eea4
Author: Max Filippov <jcmvbkbc@gmail.com>
Date:   Sat Jun 6 01:26:56 2020 -0700

    MAINTAINERS: Add myself as xtensa port maintainer
    
    2020-06-06  Max Filippov  <jcmvbkbc@gmail.com>
    
            * MAINTAINERS: Add myself as xtensa port maintainer.

commit 2e6a6644db0ef0f369df4e5b1b337122d84c1a39
Author: Alexandre Oliva <oliva@adacore.com>
Date:   Fri Jun 5 22:31:19 2020 -0300

    [PR95456] avoid memcpy (_, NULL, 0) in gcc.c
    
    Some newly-added code in gcc.c might call memcpy with a NULL source
    pointer and zero-length inputs.  Avoid such calls by rearranging the
    code a little.
    
    
    for  gcc/ChangeLog
    
            PR driver/95456
            * gcc.c (do_spec_1): Don't call memcpy (_, NULL, 0).

commit 1a59f3db4a4174d02256be51e9e08e9c68478a41
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Jun 6 00:16:29 2020 +0000

    Daily bump.

commit 5bc13e5217f687f5d08a7022b4c6081befc54402
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date:   Fri Jun 5 23:09:23 2020 +0200

    d: Merge upstream dmd 740f3d1ea.
    
    Backports the conversion of the parameter fields debugids and versionids
    to Identifiers.  The idea is that Identifiers should be used instead of
    C strings where ever possible.
    
    gcc/d/ChangeLog:
    
            * dmd/MERGE: Merge upstream dmd 740f3d1ea.
            * d-lang.cc (d_handle_option): Use new fields to save debug and
            version levels passed over command-line.
            (d_post_options): Add them to front-end here.

commit 3a73a6adb605df1462be176442851b5a37839fc0
Author: Martin Sebor <msebor@redhat.com>
Date:   Fri Jun 5 14:59:16 2020 -0600

    Temporarily remove an unintentionally commited test.
    
    gcc/testsuite/ChangeLog:
            * g++.dg/warn/Wnonnull5.C: Temporarily remove.

commit cecc73af4980004502f4c327b6c639125defb379
Author: Marek Polacek <polacek@redhat.com>
Date:   Fri Jun 5 14:22:35 2020 -0400

    c++: Make braced-init-list as template arg work with aggr init [PR95369]
    
    Barry pointed out to me that our braced-init-list as a template-argument
    extension doesn't work as expected when we aggregate-initialize.  Since
    aggregate list-initialization is a user-defined conversion sequence, we
    allow it as part of a converted constant expression.
    
    Co-authored-by: Jason Merrill <jason@redhat.com>
    
    gcc/cp/ChangeLog:
    
            PR c++/95369
            * call.c (build_converted_constant_expr_internal): Allow
            list-initialization.
    
    gcc/testsuite/ChangeLog:
    
            PR c++/95369
            * g++.dg/cpp2a/nontype-class38.C: New test.

commit bcd96c9cce962ca5b2c6f8459597fb759f945ccf
Author: Harald Anlauf <anlauf@gmx.de>
Date:   Fri Jun 5 20:30:34 2020 +0200

    PR fortran/95530, PR fortran/95537 - Buffer overflows with long symbols
    
    The testcases for PR95090 and PR95106 trigger buffer overflows with long
    symbols that were found with an instrumented compiler.  Enlarge the
    affected buffers, and add checks that the buffers will suffice.
    
    2020-06-05  Harald Anlauf  <anlauf@gmx.de>
    
    gcc/fortran/
            PR fortran/95530
            PR fortran/95537
            * decl.c (gfc_match_decl_type_spec): Enlarge buffer, and enhance
            string copy to detect buffer overflow.
            * gfortran.h (gfc_common_head): Enlarge buffer.
            * trans-common.c (finish_equivalences): Enhance string copy to
            detect buffer overflow.

commit 608832716e27ca356ee38d14ae30b3ab525884ea
Author: Iain Sandoe <iain@sandoe.co.uk>
Date:   Fri Jun 5 15:09:39 2020 +0100

    coroutines: co_returns are statements, not expressions.
    
    This corrects an error in the CO_RETURN_EXPR tree
    class.
    
    gcc/cp/ChangeLog:
    
            * cp-tree.def (CO_RETURN_EXPR): Correct the class
            to use tcc_statement.

commit 1c7bcefbc95220cd74cee7c239f6d723f75a0ccc
Author: Mark Wielaard <mark@klomp.org>
Date:   Thu May 28 02:55:36 2020 +0200

    diagnostics: Consistently add fixit hint for implicit builtin declaration
    
    There are two warnings that might trigger when a builtin function is
    used but not declared yet. Both called through implicitly_declare in
    c-decl. The first in implicit_decl_warning does warn for builtins,
    but does not add a fixit hint for them (only for non-builtins when
    a header is suggested through lookup_name_fuzzy). This warning is
    guarded by -Wimplicit-function-declaration. The second warning, which
    does include a fixit hint if possible, is given when the implicit
    builtin declaration has an incompatible signature. This second warning
    cannot be disabled.
    
    This setup means that you only get a fixit-hint for usage of builtin
    functions where the implicit signature is different than the actual
    signature of the builtin. No fixit hints with header suggestions
    are ever generated for builtins like abs, isdigit or putchar.
    
    It seems more consistent to always generate a fixit-hint if possible
    for the -Wimplicit-function-declaration warning. And for the second
    warning to make it depend on -Wbuiltin-declaration-mismatch like
    other warnings about builtin declaration mismatches.
    
    Include a new test to show we get fixit-hints for abs, isdigit and
    putchar now. Some small tweaks to existing tests to show the
    effect of -Wno-builtin-declaration-mismatch with this change. And
    a testcase to show that #pragma GCC diagnostic ignored now works.
    
    gcc/c/ChangeLog:
    
            * c-decl.c (implicit_decl_warning): When warned and olddecl is
            an undeclared builtin, then add a fixit header hint, if found.
            (implicitly_declare): Add OPT_Wbuiltin_declaration_mismatch to
            warning_at about implicit builtin declaration type mismatch.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.dg/missing-header-fixit-3.c: Add
            -Wno-implicit-function-declaration.
            * gcc.dg/missing-header-fixit-4.c: Add new expected output.
            * gcc.dg/missing-header-fixit-5.c: New testcase.
            * gcc.dg/Wbuiltin-declaration-mismatch-ignore.c: Likewise.

commit 0cdc55f5ed881436c49d313b6cead244bdcf0654
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date:   Fri Jun 5 19:27:29 2020 +0200

    d: Merge upstream dmd f5638c7b8.
    
    Adds a CHECKENABLE enum, uses it for all contract parameters for
    consistency in state checking.
    
    gcc/d/ChangeLog:
    
            * dmd/MERGE: Merge upstream dmd f5638c7b8.
            * d-builtins.cc (d_init_versions): Use new CHECKENABLE enum.
            * d-codegen.cc (array_bounds_check): Likewise.
            (build_frame_type): Likewise.
            (get_frameinfo): Likewise.
            * d-lang.cc (d_init_options): Likewise.
            (d_init_options_struct): Don't initialize x_flag_bounds_check.
            (d_handle_option): Use new CHECKENABLE enum.
            (d_post_options): Likewise.  Set flag_bounds_check here.
            * expr.cc (ExprVisitor::visit(AssertExp *)): Use new CHECKENABLE enum.

commit 5094c4400a8687dcf44f5993aee3a88e98519f3b
Author: Jason Merrill <jason@redhat.com>
Date:   Thu Jun 4 15:56:57 2020 -0400

    c++: Fix pretty-print of pointer minus integer.
    
    For whatever reason, GCC internally represents a pointer minus an integer as
    a pointer plus a very large unsigned integer.  But exposing that to users is
    unsightly, and it's easy enough to show the real value.
    
    gcc/cp/ChangeLog:
    
            * error.c (dump_binary_op): Handle negative operand to
            POINTER_PLUS_EXPR.
    
    gcc/c-family/ChangeLog:
    
            * c-pretty-print.c (pp_c_additive_expression): Handle negative
            operand to POINTER_PLUS_EXPR.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp0x/constexpr-ptrsub2.C: New test.

commit 640e05e02b567fa5ccf4c207e6fc6c3e9a93b17c
Author: Tom Tromey <tromey@adacore.com>
Date:   Fri Jun 5 06:40:14 2020 -0600

    fortran/95509 - fix spellcheck-operator.f90 regression
    
    My earlier patch to add case handling to the spell checker caused a
    Fortran regression.  I believe I must have misread the test results.
    
    This patch fixes the problem by changing the cutoff.  I chose this
    value because the previous patch effectively multiplied the result of
    get_edit_distance by 2 (unless a case change is involved).
    
    gcc/fortran/ChangeLog:
    
            PR fortran/95509
            * misc.c (gfc_closest_fuzzy_match): Update cutoff value
            computation.

commit 1afc4672561a41dfbf4e3f2c1f35f7a5b7a20339
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Wed May 20 10:56:55 2020 +0200

    [OpenACC 'exit data'] Strip 'GOMP_MAP_STRUCT' mappings
    
    These are not itself necessary for OpenACC 'exit data' directives, and are
    skipped over (now) in libgomp.  We might as well not emit them to start with,
    in line with the equivalent OpenMP directive.  We keep the no-op handling in
    libgomp for the reason of backward compatibility.
    
            gcc/
            * gimplify.c (gimplify_adjust_omp_clauses): Remove
            'GOMP_MAP_STRUCT' mapping from OpenACC 'exit data' directives.
            gcc/testsuite/
            * c-c++-common/goacc/struct-enter-exit-data-1.c: New file.
            libgomp/
            * oacc-mem.c (goacc_exit_data_internal) <GOMP_MAP_STRUCT>: Explain
            special handling.
    
    Co-Authored-By: Julian Brown <julian@codesourcery.com>

commit 1809628fcff6f512206efd0ae03a3faccc4096f2
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Wed May 20 10:53:33 2020 +0200

    [OpenACC 'exit data'] Simplify 'GOMP_MAP_STRUCT' handling
    
            libgomp/
            * oacc-mem.c (goacc_exit_data_internal) <GOMP_MAP_STRUCT>:
            Simplify.
    
    Co-Authored-By: Julian Brown <julian@codesourcery.com>

commit 9643f5bbe237764cbefc975e934d1281f47ee3c2
Author: Julian Brown <julian@codesourcery.com>
Date:   Thu Jun 4 06:40:53 2020 -0700

    Add 'libgomp.oacc-c-c++-common/struct-copyout-{1,2}.c'
    
            libgomp/
            * testsuite/libgomp.oacc-c-c++-common/struct-copyout-1.c: New test.
            * testsuite/libgomp.oacc-c-c++-common/struct-copyout-2.c: New test.
    
    Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>

commit 5905cbdbcf6d760303ca87f27e04824f26976de4
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date:   Fri Jun 5 17:50:49 2020 +0200

    d: Merge upstream dmd 56f0a65c4.
    
    Updates the Target interface, removing static from all members, so all
    field accesses and member function calls go through a single global
    'target'.  Information relating to extern ABI are now in TargetC,
    TargetCPP, and TargetObjC for each supported language respectively.
    
    Reviewed-on: https://github.com/dlang/dmd/pull/11228
    
    gcc/d/ChangeLog:
    
            * dmd/MERGE: Merge upstream dmd 56f0a65c4.
            * d-builtins.cc (build_frontend_type): Remove static.
            (d_build_builtins_module): Use target.va_listType() to get front-end
            type for va_list.
            (d_init_builtins): Move creation of va_list to Target::va_listType.
            * d-codegen.cc (build_interface_binfo): Use new target global.
            (build_vindex_ref): Likewise.
            (identity_compare_p): Likewise.
            * d-ctfloat.cc (CTFloat::parse): Likewise.
            * d-lang.cc (d_init): Likewise.
            * d-port.cc (Port::isFloat32LiteralOutOfRange): Likewise.
            (Port::isFloat64LiteralOutOfRange): Likewise.
            * d-target.cc (define_float_constants): Initialize constants through a
            reference, instead of setting globals.
            (Target::_init): Initialize new fields instead of setting globals.
            (Target::va_listType): Build front-end type from va_list_type_node.
            (Target::toCppMangle): Renamed to ...
            (TargetCPP::toMangle): ... this.
            (Target::cppTypeInfoMangle): Renamed to ...
            (TargetCPP::typeInfoMangle): ... this.
            (Target::cppTypeMangle): Renamed to ...
            (TargetCPP::typeMangle): this.
            (Target::cppParameterType): Renamed to ...
            (TargetCPP::parameterType): ... this.  Use target.va_listType() to get
            front-end type for va_list.
            (Target::cppFundamentalType): Renamed to ...
            (TargetCPP::fundamentalType): ... this.
            * d-tree.h (build_frontend_type): Declare.
            * decl.cc (base_vtable_offset): Use new target global.
            * typeinfo.cc (layout_classinfo_interfaces): Likewise.
            (layout_cpp_typeinfo): Likewise.
            * types.cc (valist_array_p): Use target.va_listType() to get front-end
            type for va_list.
            (layout_aggregate_type): Use new target global.

commit 300452d7bf1d3a0ff3f7585a1166f3d473c70556
Author: Martin Sebor <msebor@redhat.com>
Date:   Fri Jun 5 09:34:39 2020 -0600

    Adjust text of expected warnings to g:b825a22890740f341eae566af27e18e528cd29a7.
    
    gcc/testsuite/ChangeLog:
            * c-c++-common/goacc/uninit-use-device-clause.c: Adjust.
            * c-c++-common/pr59223.c: Same.
            * g++.dg/warn/Wnonnull5.C: Same.
            * gcc.dg/pr59924.c: Same.
            * gcc.dg/ubsan/pr81981.c: Same.
            * gcc.dg/ubsan/pr89284.c: Same.
            * gfortran.dg/goacc/uninit-use-device-clause.f95: Same.

commit 89b49a963c5f997df1c19ff9cde18d3d45c3aa15
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Sun Feb 9 14:52:12 2020 -0500

    [Ada] Replace ? by ?? in Error_Msg_N
    
    2020-06-05  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * sem_prag.adb (Validate_Compile_Time_Warning_Or_Error): Use ??.

commit f67a6e93a15d3d1e00f35ba8f2fd231cad67048c
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Sun Feb 9 14:50:50 2020 -0500

    [Ada] Update comments wrt Ada 83 handling
    
    2020-06-05  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * cstand.adb (Create_Standard): Update comments.

commit 4ccf713e545cc77ba13218c12ec47d21b01bab4e
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Mon Feb 3 05:22:57 2020 -0500

    [Ada] Support 'Reduce under -gnatX
    
    2020-06-05  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * scng.adb (Scan): Fix typo to take into account all future
            versions of Ada.
            * sem_attr.ads (Attribute_Impl_Def): Add Attribute_Reduce for
            now.
            * sem_attr.adb (Analyze_Attribute): Only allow 'Reduce under
            -gnatX.
            * snames.ads-tmpl (Name_Reduce): Update comment.

commit 3af132b801a6e58c530a6571117df51bca6f6572
Author: Thomas Quinot <quinot@adacore.com>
Date:   Thu Feb 6 19:03:24 2020 +0100

    [Ada] Add note about gnatcov reliance on thunk names
    
    2020-06-05  Thomas Quinot  <quinot@adacore.com>
    
    gcc/ada/
    
            * exp_disp.adb (Expand_Interface_Thunk): Add comment about
            gnatcov reliance on specific name used for thunks.

commit faf250080011f5e92a6ba5ee5af22b12654992ba
Author: Ed Schonberg <schonberg@adacore.com>
Date:   Wed Feb 5 11:38:38 2020 -0500

    [Ada] Subtype inherits Atomic flag from base type
    
    2020-06-05  Ed Schonberg  <schonberg@adacore.com>
    
    gcc/ada/
    
            * sem_ch3.adb (Analyze_Subtype_Declaration): For scalar types,
            and for subtype declarations without a constraint, subtype
            inherits Atomic flag from base type.

commit bf44027a464e71142999f1ba454469fc80453fd9
Author: Piotr Trojanek <trojanek@adacore.com>
Date:   Thu Feb 6 11:12:45 2020 +0100

    [Ada] Fix punctuation in description of Enum_Rep attribute
    
    2020-06-05  Piotr Trojanek  <trojanek@adacore.com>
    
    gcc/ada/
    
            * doc/gnat_rm/implementation_defined_attributes.rst (Enum_Rep):
            Remove extra colon.
            * gnat_rm.texi: Regenerate.

commit 32115be843e3d7bd344b1e899deee27aef9a3b65
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Wed Feb 5 18:02:03 2020 +0100

    [Ada] Make the Has_Dynamic_Range_Check flag obsolete
    
    2020-06-05  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * atree.adb (New_Copy): Clear Has_Dynamic_Range_Check on
            subexpression nodes.
            * checks.adb (Append_Range_Checks): Assert that the node
            doesn't have the Has_Dynamic_Range_Check flag set.
            (Insert_Range_Checks): Likewise.
            * exp_ch3.adb (Expand_N_Subtype_Indication): Do not apply
            range checks for a full type or object declaration.
            * sem_ch3.ads: Move with and use clauses for Nlists to...
            (Process_Range_Expr_In_Decl): Change default to No_List for
            the Check_List parameter.
            * sem_ch3.adb: ...here.
            (Process_Range_Expr_In_Decl): Likewise.  When the insertion
            node is a declaration, only insert on the list if is present
            when the declaration involves discriminants, and only insert
            on the node when there is no list otherwise.

commit 0ad46f04488199557f2b407f8d10839ef5c6e604
Author: Piotr Trojanek <trojanek@adacore.com>
Date:   Wed Feb 5 17:22:17 2020 +0100

    [Ada] Do not create an empty list of nodes that confuses GNATprove
    
    2020-06-05  Piotr Trojanek  <trojanek@adacore.com>
    
    gcc/ada/
    
            * sem_aggr.adb (Resolve_Record_Aggregate): Create the
            N_Aggregate node with its Expressions field set to No_List and
            not to an empty list.

commit f8ca4dd657f767c5f7da335462a5150ced368697
Author: Dmitriy Anisimkov <anisimko@adacore.com>
Date:   Thu Jan 23 15:05:58 2020 +0600

    [Ada] Optimize Normalize_Pathname
    
    2020-06-05  Dmitriy Anisimkov  <anisimko@adacore.com>
    
    gcc/ada/
    
            * libgnat/s-os_lib.adb (Is_Dirsep): Moved from Build_Path to
            package level to reuse.
            (Normalize_Pathname.Final_Value): Reduce 2 'if' statements to
            one.
            (Normalize_Pathname.Fill_Directory): New procedure instead of
            function Get_Directory. Remove slash to backslash conversion and
            drive letter uppercasing on Windows.

commit c8e89a6de5d926701e0a68dba5ace9f27c33725a
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Sun Feb 2 19:42:50 2020 +0100

    [Ada] Spurious assert failure in Walk_Library_Items
    
    2020-06-05  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * sem.adb (Assert_Done): Relax check for main unit, as it was
            overzealous in the case of the main unit itself.

commit 2db2527a8dc7e2d2da8893a339ec863b72079bb4
Author: Piotr Trojanek <trojanek@adacore.com>
Date:   Thu Jan 16 18:56:38 2020 +0100

    [Ada] Use Is_Incomplete_Type instead of a low-level Ekind test
    
    2020-06-05  Piotr Trojanek  <trojanek@adacore.com>
    
    gcc/ada/
    
            * exp_ch3.adb, sem_ch8.adb, sem_util.adb: Use Is_Incomplete_Type
            to make the code easier to read.

commit 50554999f23127a962ef17f1ea06961a09811f75
Author: Piotr Trojanek <trojanek@adacore.com>
Date:   Thu Jan 16 18:50:05 2020 +0100

    [Ada] Simplify iteration over components
    
    2020-06-05  Piotr Trojanek  <trojanek@adacore.com>
    
    gcc/ada/
    
            * einfo.adb: Minor reformatting.
            * sem_util.adb (Has_Full_Default_Initialization,
            Is_Partially_Initialized_Type, Caller_Known_Size_Record,
            Large_Max_Size_Mutable): Iterate with
            First_Component/Next_Component; rename Ent to Comp.

commit c7d193178f7b3a7747849d4f8574091bc2d4a7f8
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Wed Feb 5 00:13:00 2020 +0100

    [Ada] Fix incorrect initialization for array of non-standard enumeration type
    
    2020-06-05  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Use
            Expr_Rep_Value instead of Expr_Value to obtain the equivalent
            integer value.
            * sem_eval.ads (Expr_Value): Document more supported cases.
            * sem_eval.adb (Expr_Rep_Value): Copy missing cases from
            Exp_Value.

commit a2754419d08d5a49551fb817a01067e81c3da3f4
Author: Bob Duff <duff@adacore.com>
Date:   Tue Feb 4 11:08:32 2020 -0500

    [Ada] Put_Image attribute: Rtsfind cleanups
    
    2020-06-05  Bob Duff  <duff@adacore.com>
    
    gcc/ada/
    
            * rtsfind.adb, rtsfind.ads: Move subtypes of RTU_Id into package
            body, because they are not needed by clients. Change "Child_" to
            "Descendant", because grandchildren and great grandchildren are
            involved.  Replace all the repetitive comments with a single
            concise one.  Change the parent subtypes to be more consistent;
            use the most specific parent.

commit d1987ffdc27f0302dba0958083d69b7241194c1c
Author: Piotr Trojanek <trojanek@adacore.com>
Date:   Mon Feb 3 17:44:41 2020 +0100

    [Ada] Move routine for detecting special Text_IO packages from GNATprove
    
    2020-06-05  Piotr Trojanek  <trojanek@adacore.com>
    
    gcc/ada/
    
            * rtsfind.ads, rtsfind.adb (Is_Text_IO_Special_Package): Moved
            from the GNATprove backend to the frontend.

commit ca124a628569b6f3038223b690d051f9ab5344f1
Author: Yannick Moy <moy@adacore.com>
Date:   Mon Feb 3 16:30:34 2020 +0100

    [Ada] Add comment about function only used in CodePeer
    
    2020-06-05  Yannick Moy  <moy@adacore.com>
    
    gcc/ada/
    
            * sem_util.ads: Add comment about function only used in
            CodePeer.

commit 2107ca0242fdbe6f21c9c33c0fd1b812ae944404
Author: Ed Schonberg <schonberg@adacore.com>
Date:   Fri Jan 31 12:28:21 2020 -0500

    [Ada] Spurious error on address clause in task body
    
    2020-06-05  Ed Schonberg  <schonberg@adacore.com>
    
    gcc/ada/
    
            * sem_ch9.adb, (Analyze_Task_Body): After analying the task
            body, indicate that all local variables have no delayed aspects.
            This prevents improper later calls to
            Check_Aspect_At_End_Of_Declarations, that would happen when the
            constructed task_procedure body (generated during expansion) is
            analyzed. The legality of aspect specifications that may appear
            on local declarations has already been established, and it is in
            general not possible to recheck them properly during expansion,
            when visibility may not be fully established.

commit a8aecf319aaa77429584ac8c18f556c2577616b9
Author: Piotr Trojanek <trojanek@adacore.com>
Date:   Fri Jan 31 21:13:31 2020 +0100

    [Ada] Add missing Global contract to Ada.Containers.Functional_Vectors
    
    2020-06-05  Piotr Trojanek  <trojanek@adacore.com>
    
    gcc/ada/
    
            * libgnat/a-cofuve.ads (First): Add Global contract.

commit a9969d7feb35306ba82bc5d605d9c8c48f1c8271
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Fri Jan 31 15:53:42 2020 -0500

    [Ada] AI12-0207 Convention of anonymous access types
    
    2020-06-05  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * sem_prag.adb (Set_Convention_From_Pragma): Set the convention
            of anonymous access array components.

commit 632d4a43d7ab74554898509d7a99edccf09819cc
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Fri Jan 31 09:18:37 2020 -0500

    [Ada] AI12-0336 Meaning of Time_Offset
    
    2020-06-05  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * libgnat/a-calfor.ads, libgnat/a-catizo.ads,
            libgnat/a-catizo.adb (Local_Time_Offset, Local_Image): New.
            (UTC_Time_Offset): Now a renaming of Local_Time_Offset.

commit bec136971a7a45de978c398b5ecaaea9d73eb501
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Fri Jan 31 11:56:30 2020 +0100

    [Ada] Fix assertion failure on double rederivation of private type
    
    2020-06-05  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * sem_ch3.adb (Available_Full_View): New function returning
            either the full or the underlying full view.
            (Build_Full_Derivation): Add guard for the full view.
            (Copy_And_Build): Retrieve the underlying full view, if any,
            also if deriving a completion.
            (Build_Derived_Private_Type): Use Available_Full_View throughout
            to decide whether a full derivation must be done.

commit e0fd1b9c9d906f9693bb4e7d56a37ec5adf4bc0a
Author: Bob Duff <duff@adacore.com>
Date:   Fri Jan 31 08:28:45 2020 -0500

    [Ada] Put_Image attribute
    
    2020-06-05  Bob Duff  <duff@adacore.com>
    
    gcc/ada/
    
            * exp_attr.adb, exp_ch11.adb, exp_imgv.adb, exp_tss.ads,
            par-ch4.adb, sem_attr.adb, sem_util.ads: Misc cleanup.

commit c3c80e3c3adde1f96d9f5070eccf1184a97ce2cd
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Fri Jan 31 05:47:01 2020 -0500

    [Ada] AI12-0144 Make Discrete_Random more flexible
    
    2020-06-05  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * libgnat/a-nudira.ads, libgnat/a-nudira.adb (Random): New
            function.

commit 61fa3fd79ff9bf41651ca99f2f13902e91ca736d
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Fri Jan 31 07:52:25 2020 -0500

    [Ada] AI12-0237 Getting the representation of an enumeration value
    
    2020-06-05  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * sem_attr.ads (Attribute_Impl_Def): Remove Enum_Rep/Val.
            * sem_attr.adb (Attribute_20): New, move Enum_Rep/Val here.
            (Analyze_Attribute): Take Attribute_20 into account.

commit 79d09a491c9ca17e2159d73e0e9855d64d6fa7cf
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Fri Jan 31 06:22:26 2020 -0500

    [Ada] AI12-0318 No_IO should apply to Ada.Directories
    
    2020-06-05  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * restrict.ads (Unit_Array): Add a-direct.

commit f191b2c8646a8d37a869752919fbfbe39a94cc72
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Fri Jan 31 06:05:01 2020 -0500

    [Ada] AI12-0235 System.Storage_Pools should be pure
    
    2020-06-05  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * libgnat/s-stopoo.ads: Mark package Pure and leave room for
            Nonblocking once this aspect is supported.

commit efd0843da81aafee053afe573bfa944bbd1ee32b
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Thu Jan 30 21:48:27 2020 +0100

    [Ada] Add No_Truncation flag on view conversion for GNAT-LLVM
    
    2020-06-05  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * exp_attr.adb (Expand_N_Attribute_Reference) <Valid_Scalars>:
            Set the No_Truncation flag on the unchecked conversion built for
            scalar types.

commit 5620a9cd825f48f2ffa123de7c35a69f1dcd975f
Author: Bob Duff <duff@adacore.com>
Date:   Thu Jan 30 14:45:19 2020 -0500

    [Ada] Assertion_Policy (Ignore) ignores invariants
    
    2020-06-05  Bob Duff  <duff@adacore.com>
    
    gcc/ada/
    
            * einfo.adb, einfo.ads, exp_util.adb: Remove Invariants_Ignored
            flag.
            * sem_prag.adb (Invariant): Instead of setting a flag to be
            checked elsewhere, remove the pragma as soon as it is analyzed
            and checked for legality.

commit 6c8e70fe86da1b52160aa380f30cbb1bf644c407
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Thu Jan 30 13:23:31 2020 +0100

    [Ada] Rename parameter of routines in Checks
    
    2020-06-05  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * checks.ads (Apply_Length_Check): Rename Ck_Node parameter to
            Expr.
            (Apply_Range_Check): Likewise.
            (Get_Range_Checks): Likewise.
            * checks.adb (Apply_Float_Conversion_Check): Likewise.
            (Apply_Selected_Length_Checks): Likewise.
            (Apply_Selected_Range_Checks): Likewise.
            (Guard_Access): Likewise.
            (Selected_Length_Checks): Likewise.  Also avoid shadowing in
            child procedures.
            (Selected_Range_Checks): Likewise.

commit a4c17870b85470fa3b4727bfe2dbac7ca7464e50
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Thu Jan 30 03:09:19 2020 -0500

    [Ada] Minor wording changes wrt Ada 202x
    
    2020-06-05  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * par-ch3.adb, par-ch4.adb, scng.adb, sem_aggr.adb,
            sem_ch10.adb, sem_ch12.adb, sem_prag.adb: Update wording: change
            Ada_2020 to Ada 2020 in comments and mention -gnat2020 instead
            of -gnatX switch.

commit d3da83f66f13d371f8bb73443fed32d5c820484d
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date:   Fri Jun 5 11:37:47 2020 +0200

    d: Merge upstream dmd 6d5bffa54
    
    Removes an unused parameter from Condition::include(), all callers have
    been updated in the front-end.
    
    Reviewed-on: https://github.com/dlang/dmd/pull/11229
    
    gcc/d/ChangeLog:
    
            * dmd/MERGE: Merge upstream dmd 6d5bffa54.
            * d-builtins.cc (maybe_set_builtin_1): Update call to
            Condition::include().
            * decl.cc (DeclVisitor::visit(AttribDeclaration *)): Likewise.
            * types.cc (layout_aggregate_members): Likewise.

commit 9758d196f57950ea89baa5cdf6ebd7125b5056e0
Author: Richard Biener <rguenther@suse.de>
Date:   Fri Jun 5 10:13:27 2020 +0200

    tree-optimization/95539 - fix SLP_TREE_REPRESENTATIVE vs. dr_info
    
    This fixes a disconnect between the stmt_info used for dr_info
    analysis and the one in SLP_TREE_REPRESENTATIVE with a temporary
    workaround.
    
    2020-06-05  Richard Biener  <rguenther@suse.de>
    
            PR tree-optimization/95539
            * tree-vect-data-refs.c
            (vect_slp_analyze_and_verify_instance_alignment): Use
            SLP_TREE_REPRESENTATIVE for the data-ref check.
            * tree-vect-stmts.c (vectorizable_load): Reset stmt_info
            back to the first scalar stmt rather than the
            SLP_TREE_REPRESENTATIVE to match previous behavior.
    
            * gcc.dg/vect/pr95539.c: New testcase.

commit 9a182ef9ee011935d827ab5c6c9a7cd8e22257d8
Author: Fei Yang <felix.yang@huawei.com>
Date:   Fri Jun 5 10:34:59 2020 +0100

    expand: Simplify removing subregs when expanding a copy [PR95254]
    
    In rtl expand, if we have a copy that matches one of the following patterns:
      (set (subreg:M1 (reg:M2 ...)) (subreg:M1 (reg:M2 ...)))
      (set (subreg:M1 (reg:M2 ...)) (mem:M1 ADDR))
      (set (mem:M1 ADDR) (subreg:M1 (reg:M2 ...)))
      (set (subreg:M1 (reg:M2 ...)) (constant C))
    where mode M1 is equal in size to M2, try to detect whether the mode change
    involves an implicit round trip through memory.  If so, see if we can avoid
    that by removing the subregs and doing the move in mode M2 instead.
    
    2020-06-05  Felix Yang  <felix.yang@huawei.com>
    
    gcc/
            PR target/95254
            * expr.c (emit_move_insn): Check src and dest of the copy to see
            if one or both of them are subregs, try to remove the subregs when
            innermode and outermode are equal in size and the mode change involves
            an implicit round trip through memory.
    
    gcc/testsuite/
            PR target/95254
            * gcc.target/aarch64/pr95254.c: New test.
            * gcc.target/i386/pr67609.c: Check "movq\t%xmm0" instead of "movdqa".

commit 892b51cb73f24157391cd18c2215e8d703af97e7
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Jun 5 10:44:23 2020 +0200

    ix86: Improve __builtin_c[lt]z followed by extension [PR95535]
    
    In January I've added patterns to optimize SImode -> DImode sign or zero
    extension of __builtin_popcount, this patch does the same for
    __builtin_c[lt]z.  Like most other instructions, the [tl]zcntl instructions
    clear the upper 32 bits of the destination register and as the instructions
    only result in values 0 to 32 inclusive, both sign and zero extensions
    behave the same.
    
    2020-06-05  Jakub Jelinek  <jakub@redhat.com>
    
            PR target/95535
            * config/i386/i386.md (*ctzsi2_zext, *clzsi2_lzcnt_zext): New
            define_insn_and_split patterns.
            (*ctzsi2_zext_falsedep, *clzsi2_lzcnt_zext_falsedep): New
            define_insn patterns.
    
            * gcc.target/i386/pr95535-1.c: New test.
            * gcc.target/i386/pr95535-2.c: New test.

commit 6ea6c4978111d146db8d33c80d9da93d7bd2bc8d
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri May 22 07:22:50 2020 +0100

    Add new/delete to struct occurence
    
    This adds an example how to use new/delete operators to pool
    allocated objects.
    
    2020-06-04  Jonathan Wakely  <jwakely@redhat.com>
    
            * alloc-pool.h (object_allocator::remove_raw): New.
            * tree-ssa-math-opts.c (struct occurrence): Use NSMDI.
            (occurrence::occurrence): Add.
            (occurrence::~occurrence): Likewise.
            (occurrence::new): Likewise.
            (occurrence::delete): Likewise.
            (occ_new): Remove.
            (insert_bb): Use new occurence (...) instead of occ_new.
            (register_division_in): Likewise.
            (free_bb): Use delete occ instead of manually removing
            from the pool.

commit 80d6f89e78fc3b772701988cc73aa8e8006283be
Author: Richard Biener <rguenther@suse.de>
Date:   Thu Jun 4 13:44:58 2020 +0200

    middle-end/95493 - bogus MEM_ATTRS for variable array access
    
    The following patch avoids keeping the inherited MEM_ATTRS when
    set_mem_attributes_minus_bitpos is called with a variable ARRAY_REF.
    The inherited ones may not reflect the correct offset and neither
    does the updated alias-set match the inherited MEM_EXPR.  This all
    ends up confusing path-based alias-analysis, causing wrong-code.
    
    The fix is to stop not adopting a MEM_EXPR for certain kinds of
    expressions and instead handle everything we can.  There's still
    the constant kind trees case which I'm too lazy to look into right
    now.  I did refrain from adding SSA_NAME there and instead avoided
    calling set_mem_attributes_minus_bitpos when debug expression
    expansion ended up expanding a SSA definition RHS which should
    already have taken care of setting the appropriate MEM_ATTRS.
    
    2020-06-04  Richard Biener  <rguenther@suse.de>
    
            PR middle-end/95493
            * cfgexpand.c (expand_debug_expr): Avoid calling
            set_mem_attributes_minus_bitpos when we were expanding
            an SSA name.
            * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
            ARRAY_REF special-casing, add CONSTRUCTOR to the set of
            special-cases we do not want MEM_EXPRs for.  Assert
            we end up with reasonable MEM_EXPRs.
    
            * g++.dg/torture/pr95493.C: New testcase.

commit 6c6931a353a6c41b2c9eb4bd2abec540104e940f
Author: Cui,Lili <lili.cui@intel.com>
Date:   Thu Jun 4 15:01:43 2020 +0800

    Fix bitmask conflict between PTA_AVX512VP2INTERSECT and PTA_WAITPKG in gcc/config/i386/i386.h
    
    2020-06-05  Lili Cui  <lili.cui@intel.com>
    
    gcc/ChangeLog:
            PR target/95525
            * config/i386/i386.h (PTA_WAITPKG): Change bitmask value.

commit 3add342502b9506b6f1a0f70c156a97a7b38ef4d
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Jun 5 00:16:30 2020 +0000

    Daily bump.

commit f2242ec0d3f1bb13c78ef3c21e0354d84fe57222
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Jun 4 23:20:49 2020 +0100

    libstdc++: Remove workarounds for constrained nested class templates
    
    With PR c++/92078 and PR c++/92103 both fixed, nested class templates
    can now be constrained. That means a number of namespace-scope helpers
    can be moved to the class scope, so they're only visible where they're
    needed.
    
            * include/bits/iterator_concepts.h (__detail::__ptr, __detail::__ref)
            (__detail::__cat, __detail::__diff): Move to class scope in the
            relevant __iterator_traits specializations.
            (__iterator_traits<>): Use nested class templates instead of ones from
            namespace __detail.
            * include/bits/stl_iterator.h (__detail::__common_iter_ptr): Move to
            class scope in iterator_traits<common_iterator<I, S>>.
            (iterator_traits<common_iterator<I, S>>): Use nested class template
            instead of __detail::__common_iter_ptr.

commit b825a22890740f341eae566af27e18e528cd29a7
Author: Martin Sebor <msebor@redhat.com>
Date:   Thu Jun 4 16:06:10 2020 -0600

    Implement a solution for PR middle-end/10138 and PR middle-end/95136.
    
    PR middle-end/10138 - warn for uninitialized arrays passed as const arguments
    PR middle-end/95136 - missing -Wuninitialized on an array access with a variable offset
    
    gcc/c-family/ChangeLog:
    
            PR middle-end/10138
            PR middle-end/95136
            * c-attribs.c (append_access_attrs): Handle attr_access::none.
            (handle_access_attribute): Same.
    
    gcc/ChangeLog:
    
            PR middle-end/10138
            PR middle-end/95136
            * attribs.c (init_attr_rdwr_indices): Move function here.
            * attribs.h (rdwr_access_hash, rdwr_map): Define.
            (attr_access): Add 'none'.
            (init_attr_rdwr_indices): Declared function.
            * builtins.c (warn_for_access)): New function.
            (check_access): Call it.
            * builtins.h (checK-access): Add an optional argument.
            * calls.c (rdwr_access_hash, rdwr_map): Move to attribs.h.
            (init_attr_rdwr_indices): Declare extern.
            (append_attrname): Handle attr_access::none.
            (maybe_warn_rdwr_sizes): Same.
            (initialize_argument_information): Update comments.
            * doc/extend.texi (attribute access): Document 'none'.
            * tree-ssa-uninit.c (struct wlimits): New.
            (maybe_warn_operand): New function.
            (maybe_warn_pass_by_reference): Same.
            (warn_uninitialized_vars): Refactor code into maybe_warn_operand.
            Also call for function calls.
            (pass_late_warn_uninitialized::execute): Adjust comments.
            (execute_early_warn_uninitialized): Same.
    
    gcc/testsuite/ChangeLog:
    
            PR middle-end/10138
            PR middle-end/95136
            * c-c++-common/Wsizeof-pointer-memaccess1.c: Prune out valid
            Wuninitialized.
            * c-c++-common/uninit-pr51010.c: Adjust expected warning format.
            * c-c++-common/goacc/uninit-dim-clause.c: Same.
            * c-c++-common/goacc/uninit-firstprivate-clause.c: Same.
            * c-c++-common/goacc/uninit-if-clause.c: Same.
            * c-c++-common/gomp/pr70550-1.c: Same.
            * c-c++-common/gomp/pr70550-2.c: Adjust.
            * g++.dg/20090107-1.C: Same.
            * g++.dg/20090121-1.C: Same.
            * g++.dg/ext/attr-access.C: Avoid -Wuninitialized.
            * gcc.dg/tree-ssa/forwprop-6.c: Prune out -Wuninitialized.
            * gcc.dg/Warray-bounds-52.c: Prune out valid -Wuninitialized.
            * gcc.dg/Warray-bounds-53.c: Same.
            * gcc.dg/Warray-bounds-54.c: Same.
            * gcc.dg/Wstringop-overflow-33.c: New test.
            * gcc.dg/attr-access-none.c: New test.
            * gcc.dg/attr-access-read-only.c: Adjust.
            * gcc.dg/attr-access-read-write.c: Same.
            * gcc.dg/attr-access-write-only.c: Same.
            * gcc.dg/pr71581.c: Adjust text of expected warning.
            * gcc.dg/uninit-15.c: Same.
            * gcc.dg/uninit-32.c: New test.
            * gcc.dg/uninit-33.c: New test.
            * gcc.dg/uninit-34.c: New test.
            * gcc.dg/uninit-36.c: New test.
            * gcc.dg/uninit-B-O0.c: Adjust text of expected warning.
            * gcc.dg/uninit-I-O0.c: Same.
            * gcc.dg/uninit-pr19430-O0.c: Same.
            * gcc.dg/uninit-pr19430.c: Same.
            * gcc.dg/uninit-pr95136.c: New test.
            * gfortran.dg/assignment_4.f90: Expect -Wuninitialized.
            * gfortran.dg/goacc/uninit-dim-clause.f95: Adjust text of expected
            warning.
            * gfortran.dg/goacc/uninit-firstprivate-clause.f95
            * gfortran.dg/goacc/uninit-if-clause.f95
            * gfortran.dg/pr66545_2.f90

commit 2cbc99d18dc411ac3fdef94e22ce86859806e63c
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date:   Thu Jun 4 22:36:26 2020 +0200

    d: Merge upstream dmd 48d704f08
    
    Updates the Array interface in dmd/root/array.h to use a DArray<TYPE>
    internally.  Splits out BitArray into a separate header.
    
    Reviewed-on: https://github.com/dlang/dmd/pull/11219
    
    gcc/d/ChangeLog:
    
            * dmd/MERGE: Merge upstream dmd 48d704f08.
            * d-attribs.cc (build_attributes): Use new field name.
            * d-builtins.cc (build_frontend_type): Likewise.
            (maybe_set_builtin_1): Likewise.
            (d_maybe_set_builtin): Likewise.
            * d-codegen.cc (build_interface_binfo): Likewise.
            (identity_compare_p): Likewise.
            (lower_struct_comparison): Likewise.
            (build_struct_comparison): Likewise.
            (d_build_call): Likewise.
            (build_frame_type): Likewise.
            (build_closure): Likewise.
            * d-compiler.cc (Compiler::paintAsType): Likewise.
            (Compiler::loadModule): Likewise.
            * d-incpath.cc (add_globalpaths): Likewise.
            (add_filepaths): Likewise.
            (add_import_paths): Likewise.
            * d-lang.cc (deps_write): Likewise.
            (d_parse_file): Likewise.
            * decl.cc (gcc_attribute_p): Likewise.
            (base_vtable_offset): Likewise.
            (get_vtable_decl): Likewise.
            (build_class_instance): Likewise.
            * expr.cc (class ExprVisitor): Likewise.
            * modules.cc (layout_moduleinfo_fields): Likewise.
            (layout_moduleinfo): Likewise.
            (build_module_tree): Likewise.
            * toir.cc (class IRVisitor): Likewise.
            * typeinfo.cc (class TypeInfoVisitor): Likewise.
            (layout_classinfo_interfaces): Likewise.
            * types.cc (layout_aggregate_members): Likewise.
            (layout_aggregate_type): Likewise.

commit 4e05c918d28e3fa66f5baaf556f6886447c68c9a
Author: François Dumont <fdumont@gcc.gnu.org>
Date:   Wed Jan 22 18:21:28 2020 +0100

    libstdc++: Specialize copy/copy_n for istreambuf_iterator and deque iterators
    
    Add __copy_n_a overloads for std::deque iterators to replace with C memmove
    when possible. Expose std::copy_n implementation details in pre-C++11 modes
    and use it for std::copy overloads.
    
    libstdc++-v3/ChangeLog
    
            * include/bits/stl_algo.h (__copy_n_a): Move to ...
            * include/bits/stl_algobase.h (__copy_n_a): ...here. Add __strict
            parameter.
            (__copy_n_a(istreambuf_iterator<>, _Size, _Deque_iterator<>, bool)):
            Declare.
            (__niter_base(const _Safe_iterator<_Ite, _Seq,
            random_access_iterator_tag>&)): Declare.
            (__copy_move_a2(istreambuf_iterator<>, istreambuf_iterator<>,
            _Deque_iterator<>)): Declare.
            * include/bits/deque.tcc
            (__copy_move_a2(istreambuf_iterator<>, istreambuf_iterator<>,
            _Deque_iterator<>)): New.
            (__copy_n_a(istreambuf_iterator<>, _Size, _Deque_iterator<>, bool)):
            New.
            * include/bits/streambuf_iterator.h
            (__copy_n_a(istreambuf_iterator<>, _Size, _CharT*, bool)): Adapt.
            * include/debug/safe_iterator.tcc (__niter_base): New.
            * testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc
            (test03): New.
            * testsuite/25_algorithms/copy/streambuf_iterators/char/debug/deque_neg.cc:
            New test.
            * testsuite/25_algorithms/copy_n/debug/istreambuf_ite_deque_neg.cc:
            New test.
            * testsuite/25_algorithms/copy_n/istreambuf_iterator/2.cc: New test.
            * testsuite/25_algorithms/copy_n/istreambuf_iterator/deque.cc:
            New test.

commit 8e788ac671626344fa79390808c4d02302387d0f
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date:   Thu Jun 4 22:05:49 2020 +0200

    d: Merge upstream dmd 47ed0330f
    
    Updates the copyright years of the front-end sources.
    
    Reviewed-on: https://github.com/dlang/dmd/pull/11221
    
    gcc/d/ChangeLog:
    
            * dmd/MERGE: Merge upstream dmd 47ed0330f.

commit 7ece3bd8088983289731450826c238eb2bdd2db5
Author: Jason Merrill <jason@redhat.com>
Date:   Wed Jun 3 23:50:50 2020 -0400

    c++: Fix complex constexpr virtual cases [PR93310].
    
    The code in constexpr for looking up the actual type of the object and then
    getting the virtual function from there broke for both of these tests: for
    16, it assumed incorrectly that the DECL_VINDEX would apply to the most
    derived type's vtable; for 17, it failed to consider that during
    construction the base subobject is treated as being of the base type.
    
    Fixed by just doing constant evaluation of the expression that looks up the
    function in the vtable.  This means that a virtual call will involve loading
    the vptr, so we will reject some calls through non-constexpr variables that
    we previously accepted, but this seems appropriate to me.  None of our
    testcases were affected.
    
    gcc/cp/ChangeLog:
    
            PR c++/93310
            * constexpr.c (cxx_eval_constant_expression) [OBJ_TYPE_REF]:
            Evaluate OBJ_TYPE_REF_EXPR.
    
    gcc/testsuite/ChangeLog:
    
            PR c++/93310
            * g++.dg/cpp2a/constexpr-virtual16.C: New test.
            * g++.dg/cpp2a/constexpr-virtual17.C: New test.
            * g++.dg/cpp2a/constexpr-new12.C: Adjust diagnostic.

commit 0ddb93ce77374004c49cdfbd748ba35867620cf1
Author: Jason Merrill <jason@redhat.com>
Date:   Wed Jun 3 23:50:06 2020 -0400

    c++: Fix FE devirt with diamond inheritance [PR95158]
    
    This started breaking in GCC 8 because of the fix for PR15272; after that
    change, we (correctly) remember the lookup from template parsing time that
    found Base::foo through the non-dependent MiddleB base, and so we overlook
    the overrider in MiddleA.  But given that, the devirtualization condition
    from the fix for PR59031 is insufficient; we know that d has to be a
    Derived, and we found Base::foo in Base, but forcing a non-virtual call
    gets the wrong function.
    
    Fixed by removing the PR59031 code that the PR67184 patch moved to
    build_over_call, and instead looking up the overrider in BINFO_VIRTUALS.
    
    gcc/cp/ChangeLog:
    
            PR c++/95158
            * class.c (lookup_vfn_in_binfo): New.
            * call.c (build_over_call): Use it.
            * cp-tree.h (resolves_to_fixed_type_p): Add default argument.
            (lookup_vfn_in_binfo): Declare.
    
    gcc/testsuite/ChangeLog:
    
            PR c++/95158
            * g++.dg/template/virtual5.C: New test.

commit 8c727bdf4acf28c8315b119a1c8f6d6af745c2af
Author: Harald Anlauf <anlauf@gmx.de>
Date:   Thu Jun 4 21:00:33 2020 +0200

    PR fortran/95500 - Segfault compiling extra interface on intrinsic
    
    Converting an expression so that it can be passed by reference could
    result in a NULL pointer dereference.
    
    2020-06-04  Steven G. Kargl  <kargl@gcc.gnu.org>
                Harald Anlauf  <anlauf@gmx.de>
    
    gcc/fortran/
            PR fortran/95500
            * trans-expr.c (gfc_conv_expr_reference): Do not dereference NULL
            pointer.
    
    gcc/testsuite/
            PR fortran/95500
            * gfortran.dg/pr95500.f90: New test.

commit 4f2d05ef0142d269964e165c14c6f7fe4bdfd5a3
Author: Iain Sandoe <iain@sandoe.co.uk>
Date:   Thu Jun 4 17:14:37 2020 +0100

    coroutines: Fix missed ramp function return copy elision [PR95346].
    
    Confusingly, "get_return_object ()" can do two things:
    - Firstly it can provide the return object for the ramp function (as
      the name suggests).
    - Secondly if the type of the ramp function is different from that
      of the get_return_object call, this is used as a single parameter
      to a CTOR for the ramp's return type.
    
    In the first case we can rely on finish_return_stmt () to do the
    necessary processing for copy elision.
    In the second case, we should have passed a prvalue to the CTOR as
    per the standard comment, but I had omitted the rvalue () call.  Fixed
    thus.
    
    gcc/cp/ChangeLog:
    
            PR c++/95346
            * coroutines.cc (morph_fn_to_coro): Ensure that the get-
            return-object is constructed correctly; When it is not the
            final return value, pass it to the CTOR of the return type
            as an rvalue, per the standard comment.
    
    gcc/testsuite/ChangeLog:
    
            PR c++/95346
            * g++.dg/coroutines/pr95346.C: New test.

commit e7ef9a40cd0c688cd331bc26224d1fbe360c1fe6
Author: Vladimir N. Makarov <vmakarov@redhat.com>
Date:   Thu Jun 4 13:32:24 2020 -0400

    Add test for PR95464.c.
    
    2020-06-04  Vladimir Makarov  <vmakarov@redhat.com>
    
            PR middle-end/95464
            * gcc.target/i386/pr95464.c: New.

commit 2c838a3e4ea06c69c856d074ae5b0400e08ae3c2
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Thu Jun 4 16:13:35 2020 +0200

    [OpenACC 'exit data'] Evaluate 'copyfrom' individually for 'GOMP_MAP_STRUCT' entries
    
    Currently, we don't at all evaluate 'copyfrom' for 'GOMP_MAP_STRUCT' entries.
    Fix this by copying/adapting the corresponding non-'GOMP_MAP_STRUCT' code.
    
            libgomp/
            * oacc-mem.c (goacc_exit_data_internal) <GOMP_MAP_STRUCT>:
            Evaluate 'copyfrom' individually for each entry.
            * testsuite/libgomp.oacc-c-c++-common/struct-1.c: Update.

commit a02f1adbfe619ab19cf142438e0a02950d3594da
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Thu Jun 4 16:01:07 2020 +0200

    [OpenACC 'exit data'] Evaluate 'finalize' individually for 'GOMP_MAP_STRUCT' entries
    
    Currently, we don't at all evaluate 'finalize' for 'GOMP_MAP_STRUCT' entries.
    Fix this by copying/adapting the corresponding non-'GOMP_MAP_STRUCT' code.
    
            libgomp/
            * oacc-mem.c (goacc_exit_data_internal) <GOMP_MAP_STRUCT>:
            Evaluate 'finalize' individually for each entry.
            * testsuite/libgomp.oacc-c-c++-common/struct-1.c: New file.
            * testsuite/libgomp.oacc-c-c++-common/struct-refcount-1.c: Remove
            file.

commit db7179ec74dda8c92db18399e5041a96ece8d56d
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Tue May 19 22:35:15 2020 +0200

    Fix 'sizeof' usage in 'libgomp.oacc-c-c++-common/deep-copy-{7,8}.c'
    
            libgomp/
            * testsuite/libgomp.oacc-c-c++-common/deep-copy-7.c: Fix 'sizeof'
            usage.
            * testsuite/libgomp.oacc-c-c++-common/deep-copy-8.c: Likewise.

commit 06ec61726d192659cd446e59a91e78745037f0fd
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Fri May 29 15:22:42 2020 +0200

    [OpenACC] Repair/restore 'is_tgt_unmapped' checking
    
            libgomp/
            * oacc-mem.c (goacc_exit_datum): Repair 'is_tgt_unmapped'
            checking.
            (acc_unmap_data, goacc_exit_data_internal): Restore
            'is_tgt_unmapped' checking.
            * testsuite/libgomp.oacc-c-c++-common/struct-refcount-1.c: New
            file.
            * testsuite/libgomp.oacc-fortran/deep-copy-6.f90: Adjust.
            * testsuite/libgomp.oacc-fortran/mdc-refcount-1-1-1.f90: Likewise.
            * testsuite/libgomp.oacc-fortran/mdc-refcount-1-2-1.f90: Likewise.
            * testsuite/libgomp.oacc-fortran/mdc-refcount-1-2-2.f90: Likewise.
            * testsuite/libgomp.oacc-fortran/mdc-refcount-1-3-1.f90: Likewise.
            * testsuite/libgomp.oacc-fortran/mdc-refcount-1-4-1.f90: Likewise.
    
    Co-Authored-By: Julian Brown <julian@codesourcery.com>

commit 2112d3242f413979931e371423dcead9d19440e7
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Fri May 29 14:21:03 2020 +0200

    [OpenACC] Don't open-code 'gomp_remove_var' in 'acc_unmap_data'
    
            libgomp/
            * oacc-mem.c (acc_unmap_data): Don't open-code 'gomp_remove_var'.
    
    Co-Authored-By: Julian Brown <julian@codesourcery.com>

commit 4662f7fe7863b19fcc20ba58c22880f8d6661f3a
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Fri May 29 14:12:16 2020 +0200

    [OpenACC] Remove 'tgt' reference counting from 'acc_unmap_data' [PR92854]
    
            libgomp/
            PR libgomp/92854
            * oacc-mem.c (acc_unmap_data): Remove 'tgt' reference counting.

commit af8fd1a99d9a21f8088ebb11250cd06a3f275052
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Fri May 29 14:11:27 2020 +0200

    Extend 'libgomp.oacc-c-c++-common/pr92854-1.c' some more [PR92854]
    
            libgomp/
            PR libgomp/92854
            * testsuite/libgomp.oacc-c-c++-common/pr92854-1.c: Extend some
            more.

commit f233418ccf6a16eb3bf53018852c5f8926780143
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Thu May 14 15:49:52 2020 +0200

    [OpenACC] Use 'tgt' returned from 'gomp_map_vars'
    
            libgomp/
            * oacc-mem.c (goacc_enter_datum): Use 'tgt' returned from
            'gomp_map_vars'.
             (acc_map_data): Clean up accordingly.
    
    Co-Authored-By: Julian Brown <julian@codesourcery.com>

commit 8d7794c0a2aa6696ab1a91ef209e8a9fe2df56ac
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Fri May 29 21:36:27 2020 +0200

    [OpenACC] XFAIL behavior of over-eager 'finalize' clause
    
            libgomp/
            * testsuite/libgomp.oacc-fortran/deep-copy-6.f90: XFAIL behavior
            of over-eager 'finalize' clause.
            * testsuite/libgomp.oacc-fortran/deep-copy-6-no_finalize.F90: New
            file.
            * testsuite/libgomp.oacc-fortran/mdc-refcount-1-1-1.f90: Likewise.
            * testsuite/libgomp.oacc-fortran/mdc-refcount-1-1-2.F90: Likewise.
            * testsuite/libgomp.oacc-fortran/mdc-refcount-1-2-1.f90: Likewise.
            * testsuite/libgomp.oacc-fortran/mdc-refcount-1-2-2.f90: Likewise.
            * testsuite/libgomp.oacc-fortran/mdc-refcount-1-3-1.f90: Likewise.
            * testsuite/libgomp.oacc-fortran/mdc-refcount-1-3-2.f90: Likewise.
            * testsuite/libgomp.oacc-fortran/mdc-refcount-1-4-1.f90: Likewise.
            * testsuite/libgomp.oacc-fortran/mdc-refcount-1-4-2.f90: Likewise.

commit 2e24d457d8c97e409549848715ff046cfa9efd3d
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Sat May 23 17:20:30 2020 +0200

    [OpenACC] Missing unlocking on error paths in attach/detach code, part II
    
            libgomp/
            * oacc-mem.c (goacc_exit_data_internal): Unlock on error path.

commit dc9541545d9e5705a97c41713c557f55522b54dc
Author: Julian Brown <julian@codesourcery.com>
Date:   Fri May 22 15:16:04 2020 -0700

    [OpenACC] Missing unlocking on error paths in attach/detach code
    
            libgomp/
            * oacc-mem.c (acc_attach_async): Add missing gomp_mutex_unlock on
            error path.
            (goacc_detach_internal): Likewise.
    
    Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>

commit 1e378edd8f038c52914bc6cac8f6dd5a5c4f8a98
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Wed May 6 10:05:49 2020 +0200

    'libgomp.oacc-fortran/{error_,}stop-{1,2,3}.f': initialize before the checkpoint
    
    If, for example, GCC is configured such that 'libgomp-plugin-nvptx.so.1'
    dynamically links against 'libcuda.so.1', but testing is run on a system where
    there is no 'libcuda.so.1', this produces output such as:
    
        PASS: libgomp.oacc-fortran/error_stop-1.f -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -foffload=disable  -O0  (test for excess errors)
        PASS: libgomp.oacc-fortran/error_stop-1.f -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -foffload=disable  -O0  execution test
        FAIL: libgomp.oacc-fortran/error_stop-1.f -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -foffload=disable  -O0  output pattern test, is  CheCKpOInT
    
        libgomp: while loading libgomp-plugin-nvptx.so.1: libcuda.so.1: cannot open shared object file: No such file or directory
        ERROR STOP
    
        Error termination. Backtrace: [...]
        , should match CheCKpOInT(
        |
        |^M)+ERROR STOP (
        |
        |^M)+Error termination.*
    
    ..., where after 'CheCKpOInT' we got 'libgomp: while loading [...]' injected
    before the expected 'ERROR STOP'.
    
            libgomp/
            * testsuite/libgomp.oacc-fortran/error_stop-1.f: Initialize before
            the checkpoint.
            * testsuite/libgomp.oacc-fortran/error_stop-2.f: Likewise.
            * testsuite/libgomp.oacc-fortran/error_stop-3.f: Likewise.
            * testsuite/libgomp.oacc-fortran/stop-1.f: Likewise.
            * testsuite/libgomp.oacc-fortran/stop-2.f: Likewise.
            * testsuite/libgomp.oacc-fortran/stop-3.f: Likewise.

commit 2803d2f27cdb7b892bf5490ffd6d9309a966fb62
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date:   Tue Jun 2 16:29:26 2020 +0200

    d: Split up d-frontend.cc into multiple parts.
    
    gcc/d/ChangeLog:
    
            * Make-lang.in (D_OBJS): Add d-compiler.o, d-ctfloat.o, d-port.o.
            * d-frontend.cc (Port::memicmp): Move to d-port.cc.
            (Port::strupr): Likewise.
            (Port::isFloat32LiteralOutOfRange): Likewise.
            (Port::isFloat64LiteralOutOfRange): Likewise.
            (Port::readwordLE): Likewise.
            (Port::readwordBE): Likewise.
            (Port::readlongLE): Likewise.
            (Port::readlongBE): Likewise.
            (Port::valcpy): Likewise.
            (CTFloat::fabs): Move to d-ctfloat.cc.
            (CTFloat::ldexp): Likewise.
            (CTFloat::isIdentical): Likewise.
            (CTFloat::isNaN): Likewise.
            (CTFloat::isSNaN): Likewise.
            (CTFloat::isInfinity): Likewise.
            (CTFloat::parse): Likewise.
            (CTFloat::sprint): Likewise.
            (CTFloat::hash): Likewise.
            (Compiler::genCmain): Move to d-compiler.cc.
            (Compiler::paintAsType): Likewise.
            (Compiler::loadModule): Likewise.
            * d-compiler.cc: New file.
            * d-ctfloat.cc: New file.
            * d-port.cc: New file.

commit 5261cf8ce824bfc75eb6f12ad5e3716c085b6f9a
Author: Vladimir N. Makarov <vmakarov@redhat.com>
Date:   Thu Jun 4 12:04:48 2020 -0400

    Add processing STRICT_LOW_PART for matched reloads.
    
    2020-06-04  Vladimir Makarov  <vmakarov@redhat.com>
    
            PR middle-end/95464
            * lra.c (lra_emit_move): Add processing STRICT_LOW_PART.
            * lra-constraints.c (match_reload): Use STRICT_LOW_PART in output
            reload if the original insn has it too.

commit ab56390384cd5168b548ff07e6f0c9c4d41420fb
Author: Richard Biener <rguenther@suse.de>
Date:   Thu Jun 4 16:26:36 2020 +0100

    aarch64: PR target/95526: Fix gimplification of varargs
    
    This patch fixes a latent bug exposed by
    eb72dc663e9070b281be83a80f6f838a3a878822 in the aarch64 backend that was
    causing wrong codegen and several testsuite failures. See the discussion
    on the bug for details.
    
    Bootstrapped and regtested on aarch64-linux-gnu. Cleaned up several
    failing tests and no new fails introduced.
    
    2020-06-04  Richard Biener  <rguenther@suse.de>
    
    gcc/:
    
            * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr):
            Ensure that tmp_ha is marked TREE_ADDRESSABLE.

commit 1980ffec48c6fa41396bea66366f2e591798e1e1
Author: Martin Jambor <mjambor@suse.cz>
Date:   Thu Jun 4 17:03:27 2020 +0200

    ipa-sra: Do not remove statements necessary because of non-call EH (PR 95113)
    
    PR 95113 revealed that when reasoning about which parameters are dead,
    IPA-SRA does not perform the same check related to non-call exceptions
    as tree DCE.  It most certainly should and so this patch moves the
    condition used in tree-ssa-dce.c into a separate predicate (in
    tree-eh.c) and uses it from both places.
    
    gcc/ChangeLog:
    
    2020-05-27  Martin Jambor  <mjambor@suse.cz>
    
            PR ipa/95113
            * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move non-call
            exceptions check to...
            * tree-eh.c (stmt_unremovable_because_of_non_call_eh_p): ...this
            new function.
            * tree-eh.h (stmt_unremovable_because_of_non_call_eh_p): Declare it.
            * ipa-sra.c (isra_track_scalar_value_uses): Use it.  New parameter
            fun.
    
    gcc/testsuite/ChangeLog:
    
    2020-05-27  Martin Jambor  <mjambor@suse.cz>
    
            PR ipa/95113
            * gcc.dg/ipa/pr95113.c: New test.

commit 9a810e57c4e6af54d29c325a013f451ade2b85e8
Author: Srinath Parvathaneni <srinath.parvathaneni@arm.com>
Date:   Thu Jun 4 15:41:29 2020 +0100

    [ARM]: Correct the grouping of operands in MVE vector scatter store intrinsics (PR94735).
    
    The operands in RTL patterns of MVE vector scatter store intrinsics are wrongly grouped,
    because of which few vector loads and stores instructions are wrongly getting optimized
    out with -O2.
    
    A new predicate "mve_scatter_memory" is defined in this patch, this predicate returns TRUE on
    matching: (mem(reg)) for MVE scatter store intrinsics.
    This patch fixes the issue by adding define_expand pattern with "mve_scatter_memory" predicate
    and calls the corresponding define_insn by passing register_operand as first argument.
    This register_operand is extracted from the operand with "mve_scatter_memory" predicate in
    define_expand pattern.
    
    gcc/ChangeLog:
    
    2020-06-01  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
    
            PR target/94735
            * config/arm/predicates.md (mve_scatter_memory): Define to
            match (mem (reg)) for scatter store memory.
            * config/arm/mve.md (mve_vstrbq_scatter_offset_<supf><mode>): Modify
            define_insn to define_expand.
            (mve_vstrbq_scatter_offset_p_<supf><mode>): Likewise.
            (mve_vstrhq_scatter_offset_<supf><mode>): Likewise.
            (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>): Likewise.
            (mve_vstrhq_scatter_shifted_offset_<supf><mode>): Likewise.
            (mve_vstrdq_scatter_offset_p_<supf>v2di): Likewise.
            (mve_vstrdq_scatter_offset_<supf>v2di): Likewise.
            (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di): Likewise.
            (mve_vstrdq_scatter_shifted_offset_<supf>v2di): Likewise.
            (mve_vstrhq_scatter_offset_fv8hf): Likewise.
            (mve_vstrhq_scatter_offset_p_fv8hf): Likewise.
            (mve_vstrhq_scatter_shifted_offset_fv8hf): Likewise.
            (mve_vstrhq_scatter_shifted_offset_p_fv8hf): Likewise.
            (mve_vstrwq_scatter_offset_fv4sf): Likewise.
            (mve_vstrwq_scatter_offset_p_fv4sf): Likewise.
            (mve_vstrwq_scatter_offset_p_<supf>v4si): Likewise.
            (mve_vstrwq_scatter_offset_<supf>v4si): Likewise.
            (mve_vstrwq_scatter_shifted_offset_fv4sf): Likewise.
            (mve_vstrwq_scatter_shifted_offset_p_fv4sf): Likewise.
            (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si): Likewise.
            (mve_vstrwq_scatter_shifted_offset_<supf>v4si): Likewise.
            (mve_vstrbq_scatter_offset_<supf><mode>_insn): Define insn for scatter
            stores.
            (mve_vstrbq_scatter_offset_p_<supf><mode>_insn): Likewise.
            (mve_vstrhq_scatter_offset_<supf><mode>_insn): Likewise.
            (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>_insn): Likewise.
            (mve_vstrhq_scatter_shifted_offset_<supf><mode>_insn): Likewise.
            (mve_vstrdq_scatter_offset_p_<supf>v2di_insn): Likewise.
            (mve_vstrdq_scatter_offset_<supf>v2di_insn): Likewise.
            (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn): Likewise.
            (mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn): Likewise.
            (mve_vstrhq_scatter_offset_fv8hf_insn): Likewise.
            (mve_vstrhq_scatter_offset_p_fv8hf_insn): Likewise.
            (mve_vstrhq_scatter_shifted_offset_fv8hf_insn): Likewise.
            (mve_vstrhq_scatter_shifted_offset_p_fv8hf_insn): Likewise.
            (mve_vstrwq_scatter_offset_fv4sf_insn): Likewise.
            (mve_vstrwq_scatter_offset_p_fv4sf_insn): Likewise.
            (mve_vstrwq_scatter_offset_p_<supf>v4si_insn): Likewise.
            (mve_vstrwq_scatter_offset_<supf>v4si_insn): Likewise.
            (mve_vstrwq_scatter_shifted_offset_fv4sf_insn): Likewise.
            (mve_vstrwq_scatter_shifted_offset_p_fv4sf_insn): Likewise.
            (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si_insn): Likewise.
            (mve_vstrwq_scatter_shifted_offset_<supf>v4si_insn): Likewise.
    
    gcc/testsuite/ChangeLog:
    
    2020-06-01  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
    
            PR target/94735
            * gcc.target/arm/mve/intrinsics/mve_vstore_scatter_base.c: New test.
            * gcc.target/arm/mve/intrinsics/mve_vstore_scatter_base_p.c: Likewise.
            * gcc.target/arm/mve/intrinsics/mve_vstore_scatter_offset.c: Likewise.
            * gcc.target/arm/mve/intrinsics/mve_vstore_scatter_offset_p.c: Likewise.
            * gcc.target/arm/mve/intrinsics/mve_vstore_scatter_shifted_offset.c:
            Likewise.
            * gcc.target/arm/mve/intrinsics/mve_vstore_scatter_shifted_offset_p.c:
            Likewise.

commit d34f510e2bf976cff3b9fbf7a8c5a41c233db2e4
Author: Srinath Parvathaneni <srinath.parvathaneni@arm.com>
Date:   Thu Jun 4 15:29:18 2020 +0100

    [PATCH][GCC] arm: Fix the MVE ACLE vbicq intrinsics.
    
    Following MVE intrinsic testcases are failing in GCC testsuite.
    
    Directory: gcc.target/arm/mve/intrinsics/
    Testcases: vbicq_f16.c, vbicq_f32.c, vbicq_s16.c, vbicq_s32.c, vbicq_s8.c
    ,vbicq_u16.c, vbicq_u32.c and vbicq_u8.c.
    
    This patch fixes the vbicq intrinsics by modifying the intrinsic parameters
    and polymorphic variants in "arm_mve.h" header file.
    
    Thanks,
    Srinath.
    
    gcc/ChangeLog:
    
    2020-05-20  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
    
            * config/arm/arm_mve.h (__arm_vbicq_n_u16): Correct the intrinsic
            arguments.
            (__arm_vbicq_n_s16): Likewise.
            (__arm_vbicq_n_u32): Likewise.
            (__arm_vbicq_n_s32): Likewise.
            (__arm_vbicq): Modify polymorphic variant.
    
    gcc/testsuite/ChangeLog:
    
    2020-05-20  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
    
            * gcc.target/arm/mve/intrinsics/vbicq_f16.c: Modify.
            * gcc.target/arm/mve/intrinsics/vbicq_f32.c: Likewise.
            * gcc.target/arm/mve/intrinsics/vbicq_n_s16.c: Likewise.
            * gcc.target/arm/mve/intrinsics/vbicq_n_s32.c: Likewise.
            * gcc.target/arm/mve/intrinsics/vbicq_n_u16.c: Likewise.
            * gcc.target/arm/mve/intrinsics/vbicq_n_u32.c: Likewise.
            * gcc.target/arm/mve/intrinsics/vbicq_s16.c: Likewise.
            * gcc.target/arm/mve/intrinsics/vbicq_s32.c: Likewise.
            * gcc.target/arm/mve/intrinsics/vbicq_s8.c: Likewise.
            * gcc.target/arm/mve/intrinsics/vbicq_u16.c: Likewise.
            * gcc.target/arm/mve/intrinsics/vbicq_u32.c: Likewise.
            * gcc.target/arm/mve/intrinsics/vbicq_u8.c: Likewise.

commit b15369e2538086c95250ac57c56a4c2590f922f4
Author: Richard Biener <rguenther@suse.de>
Date:   Thu Jun 4 14:59:16 2020 +0200

    add vect_get_slp_vect_def
    
    This adds vect_get_slp_vect_def to get at a SLP nodes vectorized def,
    abstracting away the details.  It also fixes one stray failure to
    use SLP_TREE_REPRESENTATIVE.
    
    2020-05-04  Richard Biener  <rguenther@suse.de>
    
            * tree-vectorizer.h (vect_get_slp_vect_def): Declare.
            * tree-vect-loop.c (vect_create_epilog_for_reduction): Use it.
            * tree-vect-stmts.c (vect_transform_stmt): Likewise.
            (vect_is_simple_use): Use SLP_TREE_REPRESENTATIVE.
            * tree-vect-slp.c (vect_get_slp_vect_defs): Fold into single
            use ...
            (vect_get_slp_defs): ... here.
            (vect_get_slp_vect_def): New function.

commit a0dae768c6f78eba6997930065b55184202d87ba
Author: Richard Biener <rguenther@suse.de>
Date:   Fri May 29 11:23:05 2020 +0200

    Add explicit SLP_TREE_LANES
    
    This adds an explicit number of scalar lanes to the SLP node
    avoiding to dispatch between stmts/ops and eventually not require
    those vectors at all.
    
    2020-05-27  Richard Biener  <rguenther@suse.de>
    
            * tree-vectorizer.h (_slp_tree::lanes): New.
            (SLP_TREE_LANES): Likewise.
            * tree-vect-loop.c (vect_create_epilog_for_reduction): Use it.
            (vectorizable_reduction): Likewise.
            (vect_transform_cycle_phi): Likewise.
            (vectorizable_induction): Likewise.
            (vectorizable_live_operation): Likewise.
            * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize lanes.
            (vect_create_new_slp_node): Likewise.
            (slp_copy_subtree): Copy it.
            (vect_optimize_slp): Use it.
            (vect_slp_analyze_node_operations_1): Likewise.
            (vect_slp_convert_to_external): Likewise.
            (vect_bb_vectorization_profitable_p): Likewise.
            * tree-vect-stmts.c (vectorizable_load): Likewise.
            (get_vectype_for_scalar_type): Likewise.

commit e1008cd1d8504775e6a5e39325e396e61b39b84c
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Jun 4 13:52:21 2020 +0100

    libstdc++: Make std::copy_n work with negative and non-integral sizes
    
    Since it was added in C++11, std::copy_n and std::ranges::copy_n should
    do nothing given a negative size, but for random access iterators we add
    the size to the iterator, possibly resulting in undefined behaviour.
    
    Also, C++20 clarified that std::copy_n requires the Size type to be
    convertible to an integral type. We previously assumed that it could be
    directly used in arithmetic expressions, without conversion to an
    integral type.
    
    This also fixes a bug in the random_access_iterator_wrapper helper adds
    some convenience aliases for using the iterator wrappers.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/ranges_algobase.h (__copy_n_fn): Only call
            ranges::copy for positive values.
            * include/bits/stl_algo.h (copy_n): Convert Size argument to an
            integral type and only call __copy_n for positive values.
            * testsuite/util/testsuite_iterators.h
            (random_access_iterator_wrapper::operator+=): Fix range check for
            negative values.
            (output_container, input_container, forward_container)
            (bidirectional_container, random_access_container): New alias
            templates.
            * testsuite/25_algorithms/copy_n/5.cc: New test.

commit a3a70bf6690e310fb1d4afa4b3dd1b19ddd0e2f4
Author: Richard Biener <rguenther@suse.de>
Date:   Thu Jun 4 14:17:21 2020 +0200

    Simplify SLP code wrt SLP_TREE_DEF_TYPE
    
    The following removes the ugly pushing of SLP_TREE_DEF_TYPE to
    stmt_infos and instead makes sure to handle invariants fully
    in vect_is_simple_use plus adjusting a few places I refrained
    from touching when enforcing vector types for them.
    
    It also simplifies building SLP nodes with all external operands
    from scalars by not doing that in the parent but instead not
    building those from the start.  That also gets rid of
    vect_update_all_shared_vectypes.
    
    2020-06-04  Richard Biener  <rguenther@suse.de>
    
            * tree-vect-slp.c (vect_update_all_shared_vectypes): Remove.
            (vect_build_slp_tree_2): Simplify building all external op
            nodes from scalars.
            (vect_slp_analyze_node_operations): Remove push/pop of
            STMT_VINFO_DEF_TYPE.
            (vect_schedule_slp_instance): Likewise.
            * tree-vect-stmts.c (ect_check_store_rhs): Pass in the
            stmt_info, use the vect_is_simple_use overload combining
            SLP and stmt_info analysis.
            (vect_is_simple_cond): Likewise.
            (vectorizable_store): Adjust.
            (vectorizable_condition): Likewise.
            (vect_is_simple_use): Fully handle invariant SLP nodes
            here.  Amend stmt_info operand extraction with COND_EXPR
            and masked stores.
            * tree-vect-loop.c (vectorizable_reduction): Deal with
            COND_EXPR representation ugliness.

commit 43088bb4dadd3d14b6b594c5f9363fe879f3d7f7
Author: liuhongt <hongtao.liu@intel.com>
Date:   Fri May 29 13:38:49 2020 +0800

    Fix zero-masking for vcvtps2ph when dest operand is memory.
    
    When dest is memory, zero-masking is not valid, only merging-masking is available,
    
    2020-06-24  Hongtao Liu  <hongtao.liu@inte.com>
    
    gcc/ChangeLog:
            PR target/95254
            * config/i386/sse.md (*vcvtps2ph_store<merge_mask_name>):
            Refine from *vcvtps2ph_store<mask_name>.
            (vcvtps2ph256<mask_name>): Refine constraint from vm to v.
            (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Ditto.
            (*vcvtps2ph256<merge_mask_name>): New define_insn.
            (*avx512f_vcvtps2ph512<merge_mask_name>): Ditto.
            * config/i386/subst.md (merge_mask): New define_subst.
            (merge_mask_name): New define_subst_attr.
            (merge_mask_operand3): Ditto.
    
    gcc/testsuite/ChangeLog:
            * gcc.target/i386/avx512f-vcvtps2ph-pr95254.c: New test.
            * gcc.target/i386/avx512vl-vcvtps2ph-pr95254.c: Ditto.

commit 53ec04cbdd192468d1975640759084f4e37fe4e8
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Thu Jan 30 04:05:44 2020 -0500

    [Ada] AI12-0184: Long Long C Data types
    
    2020-06-04  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * libgnat/i-c.ads (long_long, unsigned_long_long): New
            definitions.

commit 301e2a16c443924c90e0d038862e957165dd899d
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Thu Jan 23 10:48:08 2020 -0500

    [Ada] New package Ada.Task_Initialization
    
    2020-06-04  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * Makefile.rtl: add a-tasini object
            * impunit.adb (Non_Imp_File_Names_95): Add s-tasini.
            * libgnarl/a-tasini.ads, libgnarl/a-tasini.adb: New files.
            * libgnarl/s-taskin.ads (Global_Initialization_Handler): New.
            * libgnarl/s-tassta.adb (Task_Wrapper): Call
            Global_Initialization_Handler if non null.

commit 9531ffdaafe38f8cf07481430daba035e855bdf4
Author: Ed Schonberg <schonberg@adacore.com>
Date:   Fri Jan 24 14:14:14 2020 -0500

    [Ada] Ada_2020: contracts for formal subprograms
    
    2020-06-04  Ed Schonberg  <schonberg@adacore.com>
    
    gcc/ada/
    
            * sem_ch12.adb (Build_Suprogram_Body_Wrapper,
            Build_Subprogram_Decl_Wrapper): New suprograms, to create the
            wrappers needed to implement contracts on formsl subprograms at
            the point of instantiation.
            (Build_Subprogram_Wrappers): New subprogram within
            Analyze_Associations, calls the above when the formal subprogram
            has contracts, and expansion is enabled.
            (Instantiate_Formal_Subprogram): If the actual is not an entity,
            such as a function attribute, or a synchronized operation,
            create a function with an internal name and call it within the
            wrapper.
            (Analyze_Generic_Formal_Part): Analyze contracts at the end of
            the list of formal declarations.
            * sem_prag.adb (Analyze_Pre_Post_Condtion): In Ada_2020 the
            aspect and corresponding pragma can appear on a formal
            subprogram declaration.
            (Find_Related_Declaration_Or_Body): Ditto.

commit 25a76d621a4b6e324777677c8a5a81c09da2db9d
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Wed Jan 29 16:15:09 2020 +0100

    [Ada] Add missing conversion in call to Finalize primitive
    
    2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * exp_ch7.adb (Make_Final_Call): Set the type of the object, if
            it is unanalyzed, before calling Convert_View on it.

commit 3ab26de1c003d0ac640eaa114e041bf78fb151ac
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Tue Jan 28 14:13:14 2020 -0500

    [Ada] Get rid of Disable_FE_Inline_Always
    
    2020-06-04  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * adabkend.adb, back_end.ads, opt.ads, sem_ch6.adb: Get rid of
            Disable_FE_Inline_Always.

commit 198064c06a1e1e85cf498ad42983c5eab1f27c4a
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Tue Jan 28 23:52:17 2020 +0100

    [Ada] Fix a couple of oversights in previous change
    
    2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * exp_ch7.adb (Make_Final_Call): Add missing guard.
            * sem_ch3.adb (Copy_And_Build): Adjust recursive call for
            private types.
            (Build_Derived_Private_Type): Deal with underlying full views.

commit 110d0820bfcb421b8c680409cf5c65aa2a0b4b8e
Author: Bob Duff <duff@adacore.com>
Date:   Tue Jan 28 15:06:41 2020 -0500

    [Ada] Put_Image attribute
    
    2020-06-04  Bob Duff  <duff@adacore.com>
    
    gcc/ada/
    
            * 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-stteou.ads, libgnat/s-putaim.adb,
            libgnat/s-putaim.ads, libgnat/s-putima.adb, libgnat/s-putima.ads
            (Ada.Strings.Text_Output and children, System.Put_Images): New
            runtime support for Put_Image.
            * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add
            exp_put_image.o.
            * exp_put_image.adb, exp_put_image.ads: New compiler package
            that generates calls to runtime routines that implement
            Put_Image.
            * Makefile.rtl: Add object files for Ada.Strings.Text_Output and
            children and System.Put_Images.
            * aspects.adb: Simplify initialization of Canonical_Aspect.
            * aspects.ads: Improve documentation. Add Aspect_Put_Image.
            * exp_attr.adb: Add support for Put_Image, by calling routines
            in Exp_Put_Image.
            * sem_util.adb (Is_Predefined_Dispatching_Operation): Return
            True for new TSS_Put_Image operation.
            * exp_ch3.adb: For tagged types, build a dispatching
            TSS_Put_Image operation by calling routines in Exp_Put_Image.
            * exp_disp.adb, exp_disp.ads: Make TSS_Put_Image be number 10,
            adjusting other operations' numbers after 10. We choose 10
            because that's the last number shared by all runtimes.
            * exp_strm.adb: Use named notation as appropriate.
            * exp_cg.adb, exp_tss.ads: Add TSS_Put_Image.
            * libgnat/a-tags.ads: Modify Max_Predef_Prims for the new
            TSS_Put_Image.
            * impunit.adb: Add new runtime packages.
            * rtsfind.adb, rtsfind.ads: Add support for
            Ada.Strings.Text_Output, Ada.Strings.Text_Output.Utils, and
            System.Put_Images.
            * sem_attr.adb: Error checking for Put_Image calls.
            * sem_ch12.adb (Valid_Default_Attribute): Support for passing
            Put_Image as a generic formal parameter.
            * sem_ch13.adb: Analysis of Put_Image aspect. Turn it into a
            Put_Image attribute definition clause.
            * sem_ch8.adb (Analyze_Subprogram_Renaming): Support for
            renaming of the Put_Image attribute.
            * snames.adb-tmpl: Fix comments.
            * snames.ads-tmpl (Name_Put_Image): New Name_Id.
            (Attribute_Put_Image): New Attribute_Id.
            * tbuild.adb, tbuild.ads (Make_Increment): New utility.

commit a3fbeceef46546fd47ed370474feed347c86713f
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Mon Jan 27 12:50:23 2020 +0100

    [Ada] Alignment clause ignored on completion derived from private type
    
    2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * exp_attr.adb (xpand_N_Attribute_Reference) <Input>: Call
            Find_Inherited_TSS to look up the Stream_Read TSS.
            <Output>: Likewise for the Stream_Write TSS.
            * exp_ch7.adb (Make_Final_Call): Call Underlying_Type on
            private types to account for underlying full views.
            * exp_strm.ads  (Build_Record_Or_Elementary_Input_Function):
            Remove Use_Underlying parameter.
            * exp_strm.adb (Build_Record_Or_Elementary_Input_Function):
            Likewise and adjust accordingly.
            * exp_tss.adb (Find_Inherited_TSS): Deal with full views.
            Call Find_Inherited_TSS recursively on the parent type if
            the base type is a derived type.
            * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Take
            into account underlying full views for derived types.
            * sem_ch3.adb (Copy_And_Build): Look up the underlying full
            view only for a completion.  Be prepared for private types.
            (Build_Derived_Private_Type): Build an underlying full view
            for a completion in the general case too.

commit e5e53c73a0cf2e326bbfdacbe94e4a3bb79cd219
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Sun Jan 26 15:32:43 2020 -0500

    [Ada] Remove OpenACC support
    
    2020-06-04  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * back_end.adb, opt.ads, par-prag.adb, sem_ch5.adb,
            sem_prag.adb, sinfo.adb, sinfo.ads, snames.ads-tmpl,
            doc/gnat_rm/implementation_defined_pragmas.rst: Remove
            experimental support for OpenACC.
            * gcc-interface/misc.c, gcc-interface/trans.c,
            gcc-interface/lang.opt: Ditto.
            * gnat_rm.texi: Regenerate.
    
    gcc/testsuite/
    
            * gnat.dg/openacc1.adb: Remove testcase.

commit a6b37ab0acd34629a41c694c0f3482c450bbd18b
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Tue Jan 28 10:03:23 2020 +0100

    [Ada] Remove obsolete reference to gigi in comment
    
    2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * checks.adb (Generate_Discriminant_Check): Remove obsolete
            comment.

commit 4f31d6dbb8deafd7ab54e70eddfd931b10b3309b
Author: Gary Dismukes <dismukes@adacore.com>
Date:   Fri Jan 24 14:11:47 2020 -0500

    [Ada] Implement AI12-0275 (Make subtype_mark optional in object renamings)
    
    2020-06-04  Gary Dismukes  <dismukes@adacore.com>
    
    gcc/ada/
    
            * par-ch3.adb (P_Identifier_Declarations): Add parsing of object
            renamings that have neither a subtype_mark nor an
            access_definition. Issue an error if the version is earlier than
            Ada_2020, and suggest using -gnatX.
            * sem_ch8.adb (Analyze_Object_Renaming): Handle
            object_renaming_declarations that don't have an explicit
            subtype. Errors are issued when the name is inappropriate or
            ambiguous, and otherwise the Etype of the renaming entity is set
            from the Etype of the renamed object.
            * sem_util.adb (Has_Null_Exclusion): Allow for the case of no
            subtype given in an N_Object_Renaming_Declaration.
            * sprint.adb (Sprint_Node_Actual): Handle printing of
            N_Object_Renaming_Declarations that are specified without an
            explicit subtype.

commit 96cd8940614e0f87aca7bb6064a45710aca6212f
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Wed Jan 22 09:33:40 2020 +0100

    [Ada] Fix glitch for N_Delta_Aggregate/N_Case_Expression/N_Quantified_Expression
    
    2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * sinfo.ads (N_Delta_Aggregate): Document Etype field.
            (N_Case_Expression): Likewise.
            (Is_Syntactic_Field) <N_Quantified_Expression>: Adjust.
            <N_Case_Expression>: Likewise.

commit 354cce532c1923601f5eadf25557efe62870e88e
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Sat Jan 25 05:00:20 2020 -0500

    [Ada] Avoid redefining IS_DIR_SEPARATOR macro
    
    2020-06-04  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * adaint.c: Avoid redefining IS_DIR_SEPARATOR macro.

commit c21938bee0d0a5cb3da442d3d4500d2eeb416b44
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Fri Jan 24 11:58:35 2020 -0500

    [Ada] Wrong walk order in Walk_Library_Items
    
    2020-06-04  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * sem.adb (Walk_Library_Items): Defer processing of main spec
            after all other specs and before processing bodies.

commit 1e01dddb44e051224239d44f6042a379cbf583ab
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Thu Jan 23 14:03:35 2020 -0500

    [Ada] Import Adafinal as convention Ada
    
    2020-06-04  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * bindgen.adb (Gen_Adafinal): Adafinal is convention Ada, not C.

commit 0b27ccce0849ef93b95aebae12c8a0e77929810e
Author: Ed Schonberg <schonberg@adacore.com>
Date:   Thu Jan 23 11:00:46 2020 -0500

    [Ada] Incorrect source line range on subprogram body with contract
    
    2020-06-04  Ed Schonberg  <schonberg@adacore.com>
    
    gcc/ada/
    
            * sinput.adb (Sloc_Range): Ignore node in the tree if it appears
            in a unit different from that of the node whose Sloc range we
            are computing. This is necessary when computing the source range
            of a subprogram body whose declaration includes a pre- or
            postcondition, because declaration and body may appear in
            different units, and the expanded code for the body includes
            copies of the contract code.

commit 593627b4562814d2206e53e9ad6ce2e85295aa58
Author: Alexandre Oliva <oliva@adacore.com>
Date:   Thu Jan 23 21:15:30 2020 -0300

    [Ada] Revamp dump and aux output names
    
    2020-06-04  Alexandre Oliva  <oliva@adacore.com>
    
    gcc/ada/
    
            * switch.adb (Is_Internal_GCC_Switch): Recognize dumpdir and
            dumpbase-ext.  Mark auxbase and auxbase-strip for removal.

commit d2f87b22d1e47859166efc90eda830d21a0c31b9
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Thu Jan 23 21:52:19 2020 +0100

    [Ada] Set convention and inlined flag on default null procedure
    
    2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * sem_attr.adb (Resolve_Attribute) <Access>: Do not generate
            the secondary message about a missing pragma if the convention
            of the prefix is Intrinsic.
            * sem_ch12.adb (Instantiate_Formal_Subprogram): Only set the
            Convention and the Is_Inlined flag on a null procedure.

commit a0c94bd34a4ed6b8239d9a6d749ad5c94022acff
Author: Justin Squirek <squirek@adacore.com>
Date:   Thu Jan 23 13:12:11 2020 -0500

    [Ada] Missing accessibility check on access discriminant in extended return
    
    2020-06-04  Justin Squirek  <squirek@adacore.com>
    
    gcc/ada/
    
            * sem_ch6.adb (Check_Return_Obj_Accessibility): Change to
            Check_Return_Construct_Accessibility to better reflect its
            purpose.  Add loop to properly obtain the object declaration
            from an expanded extended return statement and add calls to get
            the original node for associated values. Also, avoid checks when
            the return statement being examined comes from an internally
            generated function.

commit 7c02e403d145989ed9f291123689baa96f455fb5
Author: Dmitriy Anisimkov <anisimko@adacore.com>
Date:   Thu Jan 23 12:38:47 2020 +0600

    [Ada] Fix Is_Absolute_Path on Windows
    
    2020-06-04  Dmitriy Anisimkov  <anisimko@adacore.com>
    
    gcc/ada/
    
            * adaint.c (__gnat_is_absolute_path): Check for directory
            separator after drive and colon.
            (IS_DIR_SEPARATOR): Define new inline substitution.

commit 51bc44b84aafd0bbdcd6cacfbbe2d20f5a15df6a
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Thu Jan 23 16:40:14 2020 +0100

    [Ada] Update the documentation in checks.ads about range checks
    
    2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * checks.ads: Update documentation about range checks and fix
            minor other things.

commit d46b330ddc1dc1c16e9638e144db64df7365a820
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Mon Jan 20 11:24:07 2020 +0100

    [Ada] Small tweak to special handling of private index types
    
    2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * sem_ch3.adb (Array_Type_Declaration): Apply special handling
            of private index types to generic packages and restrict it to
            index types defined in the current scope.

commit 528576de0bd3bf7154952d9b5e7ced2b4ed7f038
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Wed Jan 22 06:43:54 2020 -0500

    [Ada] New procedure Register_Global_Unhandled_Action
    
    2020-06-04  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * libgnat/a-exextr.adb (Global_Unhandled_Action): New global
            variable.
            (Notify_Exception): Take into account Global_Unhandled_Action
            and fix latent race condition.
            (Exception_Action): Mark Favor_Top_Level so that variables can
            be atomic.
            (Global_Action): Mark atomic to remove the need for a lock.
            * libgnat/g-excact.ads, libgnat/g-excact.adb
            (Register_Global_Unhandled_Action): New procedure.
            (Register_Global_Action): Remove lock.
            * libgnat/s-stalib.ads (Raise_Action): Mark Favor_Top_Level to
            be compatible with Exception_Action.
            * sem_warn.adb (Warn_On_Unreferenced_Entity): Fix logic wrt
            Volatile entities and entities with an address clause: the code
            did not match the comment/intent.

commit 32cc67203388abd9559b8acc6997b3c26dcc7080
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Wed Jan 22 07:13:42 2020 -0500

    [Ada] Update URL and bug report instructions
    
    2020-06-04  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * comperr.adb (Compiler_Abort): Update URL and bug report
            instructions.

commit b5682bf40cedf95d1e0150c6a6ba7a64c59fd968
Author: Steve Baird <baird@adacore.com>
Date:   Fri Jan 17 22:10:13 2020 -0800

    [Ada] Avoid buffer overflow in Long_Long_Float_Text_IO
    
    2020-06-04  Steve Baird  <baird@adacore.com>
    
    gcc/ada/
    
            * libgnat/s-imgrea.ads: Declare a named number
            Max_Real_Image_Length with value 5200.  Provide a comment
            explaining why this value was chosen.
            * libgnat/s-imgrea.adb (Set_Image_Real): Increase the upper
            bound of the local String variable Digs to
            Max_Real_Image_Length.
            * libgnat/a-tiflau.adb (Put): Increase the upper bound of the
            local String variable Buf to Max_Real_Image_Length.
            (Puts): Increase the upper bound of the local String variable
            Buf to Max_Real_Image_Length.

commit b68c1670b7d40b09be2995e1e730ce4c87eb688c
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Tue Jan 21 06:44:25 2020 -0500

    [Ada] Remove System.Parameters.Single_Lock
    
    2020-06-04  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * libgnarl/a-dynpri.adb, libgnarl/a-taside.adb,
            libgnarl/a-taster.adb, libgnarl/s-interr.adb,
            libgnarl/s-interr__sigaction.adb, libgnarl/s-taasde.adb,
            libgnarl/s-taenca.adb, libgnarl/s-taenca.ads,
            libgnarl/s-taprop.ads, libgnarl/s-taprop__hpux-dce.adb,
            libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb,
            libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__qnx.adb,
            libgnarl/s-taprop__solaris.adb, libgnarl/s-taprop__vxworks.adb,
            libgnarl/s-tarest.adb, libgnarl/s-tasini.adb,
            libgnarl/s-tasque.adb, libgnarl/s-tasque.ads,
            libgnarl/s-tasren.adb, libgnarl/s-tasren.ads,
            libgnarl/s-tassta.adb, libgnarl/s-tasuti.adb,
            libgnarl/s-tasuti.ads, libgnarl/s-tpoben.adb,
            libgnarl/s-tpobop.adb, libgnarl/s-tpopmo.adb,
            libgnarl/s-tposen.adb, libgnat/s-parame.ads,
            libgnat/s-parame__ae653.ads, libgnat/s-parame__hpux.ads,
            libgnat/s-parame__vxworks.ads: Remove references to Single_Lock
            and Global_Lock.

commit bbe376e136edb8456088d7298d4ba7c93d4e0529
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Mon Jan 20 06:07:09 2020 -0500

    [Ada] Continuation of "Get rid of more references to Universal_Integer"
    
    2020-06-04  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * libgnat/s-atopar.adb, libgnat/s-atopex.adb: Use Object_Size
            instead of Size, otherwise many derived types will be rejected
            (e.g. a type with a 14 bits 'Size and a 16 bits 'Object_Size).

commit 8b3bf48a31e4eb238ae8bd61b9ff9d4c6abb932e
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Sun Jan 19 18:25:37 2020 +0100

    [Ada] Add another ad-hoc case to the Has_Private_View mechanism
    
    2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * sem_ch12.adb (Copy_Generic_Node): Add special handling for a
            conversion between access types.

commit 8a91f77d3ac51d7b1aa07c00929c64a91b08175f
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Sat Jan 18 23:40:05 2020 +0100

    [Ada] Fix fallout of cleanup to Has_Private_View mechanism
    
    2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * sem_ch12.adb (Check_Generic_Actuals): Also restore the proper
            views of the actuals of the parent instances if the formals are
            used as actuals of the children.
            (Instantiate_Type): Add comment.

commit 9f3a17960b09f36bf67e15eb8a5e1feea9c2c9ba
Author: Gary Dismukes <dismukes@adacore.com>
Date:   Fri Jan 17 17:50:13 2020 -0500

    [Ada] Minor editorial fixes
    
    2020-06-04  Gary Dismukes  <dismukes@adacore.com>
    
    gcc/ada/
    
            * sem_ch12.adb: Minor editorial fixes.

commit 54ecfb182bc32140722022c1d9818dee4bdc0e45
Author: Hao Liu <hliu@os.amperecomputing.com>
Date:   Thu Jun 4 16:28:37 2020 +0800

    cselim: Extend to check non-trapping for more references [PR89430]
    
    If there is a dominating store, a store to the same reference can not be
    trapped.  But previously, it only supports such check on MEM_REFs.
    So this patch extends it to support ARRAY_REFs and COMPONENT_REFs.
    
    This patch also supports a special case: if there is a dominating load of
    local variable without address escape, a store is not trapped, as local
    stack is always writable.  Other loads are ignored for simplicity, as they
    don't help to check if a store can be trapped (the memory may be read-only).
    
    gcc/ChangeLog:
    
            PR tree-optimization/89430
            * tree-ssa-phiopt.c
            (struct name_to_bb): Rename to ref_to_bb; add a new field exp;
            remove ssa_name_ver, store, offset fields.
            (struct ssa_names_hasher): Rename to refs_hasher; update functions.
            (class nontrapping_dom_walker): Rename m_seen_ssa_names to m_seen_refs.
            (nontrapping_dom_walker::add_or_mark_expr): Extend to support ARRAY_REFs
            and COMPONENT_REFs.
    
    gcc/testsuite/ChangeLog:
    
            PR tree-optimization/89430
            * gcc.dg/tree-ssa/pr89430-1.c: Remove xfail.
            * gcc.dg/tree-ssa/pr89430-2.c: Remove xfail.
            * gcc.dg/tree-ssa/pr89430-5.c: Remove xfail.
            * gcc.dg/tree-ssa/pr89430-6.c: Remove xfail.
            * gcc.dg/tree-ssa/pr89430-7-comp-ref.c: New test.
            * gcc.dg/tree-ssa/pr89430-8-mem-ref-size.c: New test.
            * gcc.dg/tree-ssa/ssa-pre-17.c: Add -fno-tree-cselim.

commit 9b4e77e807e0099c3cfbf9c5b0c9e4154b9cb7a0
Author: Andreas Schwab <schwab@suse.de>
Date:   Fri May 15 17:38:30 2020 +0200

    Fix missing assemble_external in ASM_OUTPUT_FDESC
    
    When TARGET_VTABLE_USES_DESCRIPTORS is defined then function pointers in
    the vtable are output by ASM_OUTPUT_FDESC.  The only current user of
    this is ia64, but its implementation of ASM_OUTPUT_FDESC lacks a call to
    assemble_external.  Thus if there is no other reference to the function
    the weak declaration for it will be missing.
    
            PR target/95154
            * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Call assemble_external.

commit 0ecf5229723ec99e6b5099dd68d48bd925da6b0d
Author: Andreas Schwab <schwab@suse.de>
Date:   Thu Nov 21 15:15:40 2013 +0100

    Missing __divtf3@@GCC_4.4.0 on ia64
    
    gcc/testsuite/
            PR libfortran/59227
            * gfortran.dg/erf_3.F90: Remove XFAIL on ia64-*-linux*.
    
    libgcc/
            PR target/59230
            PR libfortran/59227
            * config/ia64/t-softfp-compat (softfp_file_list): Filter out
            soft-fp/divtf3.c.
            (LIB2ADD): Add config/ia64/divtf3.c.
            * config/ia64/divtf3.c: New file.

commit c0b99f67639956eaadfc8da6a704e0e1edbafc18
Author: liuhongt <hongtao.liu@intel.com>
Date:   Thu Jun 4 13:22:09 2020 +0800

    Fix uppercase in trunc<mode><pmov_dst_3>2.
    
    2020-06-04  Hongtao.liu  <hongtao.liu@intel.com>
    
    gcc/ChangeLog:
            * config/i386/sse.md (pmov_dst_3_lower): New mode attribute.
            (trunc<mode><pmov_dst_3_lower>2): Refine from
            trunc<mode><pmov_dst_3>2.
    
    gcc/testsuite
            * gcc.target/i386/pr92658-avx512bw-trunc.c: Adjust testcase.

commit eeb54a14c48f543857f561556ab1fc49dc21af26
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Jun 4 09:09:01 2020 +0200

    c++: Reject some further reinterpret casts in constexpr [PR82304, PR95307]
    
    cxx_eval_outermost_constant_expr had a check for reinterpret_casts from
    pointers (well, it checked from ADDR_EXPRs) to integral type, but that
    only caught such cases at the toplevel of expressions.
    As the comment said, it should be done even inside of the expressions,
    but at the point of the writing e.g. pointer differences used to be a
    problem.  We now have POINTER_DIFF_EXPR, so this is no longer an issue.
    
    Had to do it just for CONVERT_EXPR, because the FE emits NOP_EXPR casts
    from pointers to integrals in various spots, e.g. for the PMR & 1 tests,
    though on NOP_EXPR we have the REINTERPRET_CAST_P bit that we do check,
    while on CONVERT_EXPR we don't.
    
    2020-06-04  Jakub Jelinek  <jakub@redhat.com>
    
            PR c++/82304
            PR c++/95307
            * constexpr.c (cxx_eval_constant_expression): Diagnose CONVERT_EXPR
            conversions from pointer types to arithmetic types here...
            (cxx_eval_outermost_constant_expr): ... instead of here.
    
            * g++.dg/template/pr79650.C: Expect different diagnostics and expect
            it on all lines that do pointer to integer casts.
            * g++.dg/cpp1y/constexpr-shift1.C: Expect different diagnostics.
            * g++.dg/cpp1y/constexpr-82304.C: New test.
            * g++.dg/cpp0x/constexpr-95307.C: New test.

commit 9a5b7438c85a926a0dba9dc980039f3d67571763
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Jun 4 00:16:34 2020 +0000

    Daily bump.

commit 1dc83b460653c29f96b4659579e2151fae0d1e6e
Author: Mark Wielaard <mark@klomp.org>
Date:   Sun May 24 00:44:22 2020 +0200

    Provide diagnostic hints for missing C++ cinttypes string constants.
    
    When reporting an error in cp_parser and we notice a string literal
    followed by an unknown name check whether there is a known standard
    header containing a string macro with the same name, then add a hint
    to the error message to include that header.
    
    gcc/c-family/ChangeLog:
    
            * known-headers.cc (get_cp_stdlib_header_for_string_macro_name):
            New function.
            * known-headers.h (get_cp_stdlib_header_for_string_macro_name):
            New function declaration.
    
    gcc/cp/ChangeLog:
    
            * parser.c (cp_lexer_safe_previous_token): New function.
            (cp_parser_error_1): Add name_hint if the previous token is
            a string literal and next token is a CPP_NAME and we have a
            missing header suggestion for the name.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/spellcheck-inttypes.C: Add string-literal testcases.

commit 9eea5d2ddf73037e21b59bcd8084ba969ae10174
Author: Mark Wielaard <mark@klomp.org>
Date:   Fri May 22 01:10:50 2020 +0200

    Provide diagnostic hints for missing C inttypes.h string constants.
    
    This adds a flag to c_parser so we know when we were trying to
    construct a string literal. If there is a parse error and we were
    constructing a string literal, and the next token is an unknown
    identifier name, and we know there is a standard header that defines
    that name as a string literal, then add a missing header hint to
    the error messsage.
    
    The list of macro names are also used when providing a hint for
    missing identifiers.
    
    gcc/c-family/ChangeLog:
    
            * known-headers.cc (get_string_macro_hint): New function.
            (get_stdlib_header_for_name): Use get_string_macro_hint.
            (get_c_stdlib_header_for_string_macro_name): New function.
            * known-headers.h (get_c_stdlib_header_for_string_macro_name):
            New function declaration.
    
    gcc/c/ChangeLog:
    
            * c-parser.c (struct c_parser): Add seen_string_literal
            bitfield.
            (c_parser_consume_token): Reset seen_string_literal.
            (c_parser_error_richloc): Add name_hint if seen_string_literal
            and next token is a CPP_NAME and we have a missing header
            suggestion for the name.
            (c_parser_string_literal): Set seen_string_literal.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.dg/spellcheck-inttypes.c: New test.
            * g++.dg/spellcheck-inttypes.C: Likewise.

commit 34e4962aed08b38f37e37242234bfbbd1b897f39
Author: Mark Wielaard <mark@klomp.org>
Date:   Sun May 24 18:01:51 2020 +0200

    diagnostics: Add function call parens matching to c_parser.
    
    The C++ parser already tracks function call parens matching, but the C
    parser doesn't. This adds the same functionality to the C parser and adds
    a testcase showing the C++ and C parser matching function call parens
    in an error message.
    
    gcc/c/ChangeLog:
    
            * c-parser.c (c_parser_postfix_expression_after_primary): Add
            scope with matching_parens after CPP_OPEN_PAREN.
    
    gcc/testsuite/ChangeLog:
    
            * c-c++-common/missing-close-func-paren.c: New test.

commit 29e304fd5f9097335c5d7d1b16f139439eeabe1f
Author: Vitor Guidi <vitor.guidi@usp.br>
Date:   Wed Jun 3 17:01:21 2020 -0600

    optimize tanh(x) / sinh (x) to 1/ cosh (x)
    
    gcc/
            * match.pd (tanh/sinh -> 1/cosh): New simplification.
    
    gcc/testsuite
    
            * gcc.dg/tanhbysinh.c: New testcase.

commit 817738fdf1ea368e47da4822dfe9ee1a7deb477b
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Wed Jun 3 22:18:54 2020 +0000

    Update gcc sv.po.
    
            * sv.po: Update.

commit c0d738a0f493a85f46d7618efe20a89bf7f7ead8
Author: Aaron Sawdey <acsawdey@linux.ibm.com>
Date:   Tue Jun 2 15:48:01 2020 -0500

    identify lfs prefixed case PR95347
    
    The same problem also arises for plfs where prefixed_load_p()
    doesn't recognize it so we get just lfs in the asm output
    with an @pcrel address.
    
            PR target/95347
            * config/rs6000/rs6000.c (is_stfs_insn): Rename to
            is_lfs_stfs_insn and make it recognize lfs as well.
            (prefixed_store_p): Use is_lfs_stfs_insn().
            (prefixed_load_p): Use is_lfs_stfs_insn() to recognize lfs.

commit c06280ac4c34b0aff8cfa2e74ae8c7afd759d52f
Author: Patrick Palka <ppalka@redhat.com>
Date:   Wed Jun 3 16:37:24 2020 -0400

    c++: more constrained nested partial specialization
    
    When checking that a constrained partial specialization is more
    constrained than the primary template, we pass only the innermost level
    of generic template arguments to strictly_subsumes.  This leads to us
    doing a nonsensical substitution from normalize_concept_check if the
    full set of template arguments has multiple levels, and it ultimately
    causes strictly_subsumes to sometimes erroneously return false as in the
    testcase below.
    
    gcc/cp/ChangeLog:
    
            * pt.c (process_partial_specialization): Pass the full set of
            generic template arguments to strictly_subsumes.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp2a/concepts-partial-spec8.C: New test.

commit aee69073cdb8086d393f12474c6177e75467ceaa
Author: Patrick Palka <ppalka@redhat.com>
Date:   Wed Jun 3 16:40:28 2020 -0400

    c++: constrained nested partial specialization [PR92103]
    
    When determining the most specialized partial specialization of a
    primary template that is nested inside a class template, we first
    tsubst the outer template arguments into the TEMPLATE_DECL of each
    partial specialization, and then check for satisfaction of each of the
    new TEMPLATE_DECL's constraints.
    
    But tsubst_template_decl does not currently guarantee that constraints
    from the original DECL_TEMPLATE_RESULT get reattached to the new
    DECL_TEMPLATE_RESULT.  In the testcase below, this leads to the
    constraints_satisfied_p check in most_specialized_partial_spec to
    trivially return true for each of the partial specializations.
    
    I'm not sure if such a guarantee would be desirable, but in this case we
    can just check constraints_satisfied_p on the original TEMPLATE_DECL
    instead of on the tsubsted TEMPLATE_DECL here, which is what this patch
    does (alongside some reorganizing).
    
    gcc/cp/ChangeLog:
    
            PR c++/92103
            * pt.c (most_specialized_partial_spec): Reorganize the loop over
            DECL_TEMPLATE_SPECIALIZATIONS.  Check constraints_satisfied_p on
            the original template declaration, not on the tsubsted one.
    
    gcc/testsuite/ChangeLog:
    
            PR c++/92103
            * g++.dg/cpp2a/concepts-partial-spec7.C: New test.

commit 3fb68f2e666d9de7e0326af9f43b12c9e98f19a6
Author: Jan Hubicka <jh@suse.cz>
Date:   Wed Jun 3 21:16:43 2020 +0200

    Optimize ODR enum streaming
    
    it turns out that half of the global decl stream of cc1 LTO build consits
    TREE_LISTS, identifiers and integer cosntats representing TYPE_VALUES of enums.
    Those are streamed only to produce ODR warning and used otherwise, so this
    patch moves the info to a separate section that is represented and streamed
    more effectively.
    
    This also adds place for more info that may be used for ODR diagnostics
    (i.e. at the moment we do not warn when the declarations differs i.e. by the
    associated member functions and their types) and the type inheritance graph
    rather then poluting the global stream.
    
    I was bit unsure what enums we want to store into the section.  All parsed
    enums is probably too expensive, only those enums streamed to represent IL is
    bit hard to get, so I went for those seen by free lang data.
    
    As a plus we now get bit more precise warning because also the location of
    mismatched enum CONST_DECL is streamed.
    
    It changes:
    [WPA] read 4608466 unshared trees
    [WPA] read 2942094 mergeable SCCs of average size 1.365328
    [WPA] 8625389 tree bodies read in total
    [WPA] tree SCC table: size 524287, 247652 elements, collision ratio: 0.383702
    [WPA] tree SCC max chain length 2 (size 1)
    [WPA] Compared 2694442 SCCs, 228 collisions (0.000085)
    [WPA] Merged 2694419 SCCs
    [WPA] Merged 3731982 tree bodies
    [WPA] Merged 633335 types
    [WPA] 122077 types prevailed (155548 associated trees)
    ...
    [WPA] Compression: 110593119 input bytes, 287696614 uncompressed bytes (ratio: 2.601397)
    [WPA] Size of mmap'd section decls: 85628556 bytes
    [WPA] Size of mmap'd section function_body: 13842928 bytes
    
    [WPA] read 1720989 unshared trees
    [WPA] read 1252217 mergeable SCCs of average size 1.858507
    [WPA] 4048243 tree bodies read in total
    [WPA] tree SCC table: size 524287, 226524 elements, collision ratio: 0.491759
    [WPA] tree SCC max chain length 2 (size 1)
    [WPA] Compared 1025693 SCCs, 196 collisions (0.000191)
    [WPA] Merged 1025670 SCCs
    [WPA] Merged 2063373 tree bodies
    [WPA] Merged 633497 types
    [WPA] 122299 types prevailed (155827 associated trees)
    ...
    [WPA] Compression: 103428770 input bytes, 281151423 uncompressed bytes (ratio: 2.718310)
    [WPA] Size of mmap'd section decls: 49390917 bytes
    [WPA] Size of mmap'd section function_body: 13858258 bytes
    ...
    [WPA] Size of mmap'd section odr_types: 29054816 bytes
    
    So number of SCCs streamed drops to 38% and the number of unshared trees (that
    are bit misnamed since it is mostly integer_cst) to 37%.
    
    Things speeds up correspondingly, but I did not save time report from previous
    build.
    
    The enum values are still quite surprisingly large.  I may take a look into
    ways getting it smaller incrementally, but it streams reasonably fast:
    
    Time variable                                   usr           sys          wall               GGC
     phase opt and generate             :  25.20 ( 68%)  10.88 ( 72%)  36.13 ( 69%)  868060 kB ( 52%)
     phase stream in                    :   4.46 ( 12%)   0.90 (  6%)   5.38 ( 10%)  790724 kB ( 48%)
     phase stream out                   :   6.69 ( 18%)   3.32 ( 22%)  10.03 ( 19%)       8 kB (  0%)
     ipa lto gimple in                  :   0.79 (  2%)   1.86 ( 12%)   2.39 (  5%)  252612 kB ( 15%)
     ipa lto gimple out                 :   2.48 (  7%)   0.78 (  5%)   3.26 (  6%)       0 kB (  0%)
     ipa lto decl in                    :   1.71 (  5%)   0.46 (  3%)   2.34 (  4%)  417883 kB ( 25%)
     ipa lto decl out                   :   3.28 (  9%)   0.07 (  0%)   3.27 (  6%)       0 kB (  0%)
     whopr wpa I/O                      :   0.40 (  1%)   2.24 ( 15%)   2.77 (  5%)       8 kB (  0%)
     lto stream decompression           :   1.38 (  4%)   0.31 (  2%)   1.36 (  3%)       0 kB (  0%)
     ipa ODR types                      :   0.18 (  0%)   0.02 (  0%)   0.25 (  0%)       0 kB (  0%)
     ipa inlining heuristics            :  11.64 ( 31%)   1.45 ( 10%)  13.12 ( 25%)  453160 kB ( 27%)
     ipa pure const                     :   1.74 (  5%)   0.00 (  0%)   1.76 (  3%)       0 kB (  0%)
     ipa icf                            :   1.72 (  5%)   5.33 ( 35%)   7.06 ( 13%)   16593 kB (  1%)
     whopr partitioning                 :   2.22 (  6%)   0.01 (  0%)   2.23 (  4%)    5689 kB (  0%)
     TOTAL                              :  37.17         15.20         52.46        1660886 kB
    
    LTO-bootstrapped/regtested x86_64-linux, will comit it shortly.
    
    gcc/ChangeLog:
    
    2020-06-03  Jan Hubicka  <hubicka@ucw.cz>
    
            * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
            streamer-hooks.h.
            (odr_enums): New static var.
            (struct odr_enum_val): New struct.
            (class odr_enum): New struct.
            (odr_enum_map): New hashtable.
            (odr_types_equivalent_p): Drop code testing TYPE_VALUES.
            (add_type_duplicate): Likewise.
            (free_odr_warning_data): Do not free TYPE_VALUES.
            (register_odr_enum): New function.
            (ipa_odr_summary_write): New function.
            (ipa_odr_read_section): New function.
            (ipa_odr_summary_read): New function.
            (class pass_ipa_odr): New pass.
            (make_pass_ipa_odr): New function.
            * ipa-utils.h (register_odr_enum): Declare.
            * lto-section-in.c: (lto_section_name): Add odr_types section.
            * lto-streamer.h (enum lto_section_type): Add odr_types section.
            * passes.def: Add odr_types pass.
            * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream
            TYPE_VALUES.
            (hash_tree): Likewise.
            * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
            Likewise.
            * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
            Likewise.
            * timevar.def (TV_IPA_ODR): New timervar.
            * tree-pass.h (make_pass_ipa_odr): Declare.
            * tree.c (free_lang_data_in_type): Regiser ODR types.
    
    gcc/lto/ChangeLog:
    
    2020-06-03  Jan Hubicka  <hubicka@ucw.cz>
    
            * lto-common.c (compare_tree_sccs_1): Do not compare TYPE_VALUES.
    
    gcc/testsuite/ChangeLog:
    
    2020-06-03  Jan Hubicka  <hubicka@ucw.cz>
    
            * g++.dg/lto/pr84805_0.C: Update.

commit cf7eac5805e714c7e71b699329e2c4f4a88addc1
Author: Iain Sandoe <iain@sandoe.co.uk>
Date:   Wed Jun 3 09:03:22 2020 +0100

    coroutines: Allow parameter packs in co_await/yield expressions [PR95345]
    
    This corrects a pasto, where I copied the constraint on bare
    parameter packs from the co_return to co_yield/await without
    properly reviewing it.
    
    gcc/cp/ChangeLog:
    
            PR c++/95345
            * coroutines.cc (finish_co_await_expr): Revise to allow for
            parameter packs.
            (finish_co_yield_expr): Likewise.
    
    gcc/testsuite/ChangeLog:
    
            PR c++/95345
            * g++.dg/coroutines/pr95345.C: New test.

commit b19d8aac15649f31a7588b2634411a1922906ea8
Author: Romain Naour <romain.naour@gmail.com>
Date:   Wed Jun 3 12:30:57 2020 -0600

    Fix missing dependencies for selftests which occasionally causes failed builds.
    
    gcc/
    
            * Makefile.in (SELFTEST_DEPS): Move before including language makefile
            fragments.

commit ef4e0c35546ba2c897613925c1d2485603ca3ab1
Author: Jason Merrill <jason@redhat.com>
Date:   Tue Jun 2 16:23:02 2020 -0400

    c++: Fix VLA in template [PR95232]
    
    In a non-template, grokdeclarator notices when we build a pointer to a
    variably-modified type, and inserts a TYPE_DECL to make sure that type gets
    gimplified.  But in a template we can't always recognize a variably-modified
    type, so we need to deal with it at instantiation time.
    
    gcc/cp/ChangeLog:
    
            PR c++/95232
            * cp-tree.h (predeclare_vla): Declare.
            * cp-gimplify.c (predeclare_vla): Handle getting a decl.
            * pt.c (tsubst_expr) [DECL_EXPR]: Use it.
    
    gcc/testsuite/ChangeLog:
    
            PR c++/95232
            * g++.dg/ubsan/vla-2.C: New test.

commit 8d57c30611b05a89fd265f6c0a74fe829c21cd34
Author: José Rui Faustino de Sousa <jrfsousa@gmail.com>
Date:   Wed Jun 3 19:33:11 2020 +0200

    Simple patch only add assumed-rank to the list of possible attributes.
    
    gcc/fortran/ChangeLog:
    
    2020-06-03  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
    
            PR fortran/95214
            PR fortran/66833
            PR fortran/67938
            * trans-expr.c (gfc_maybe_dereference_var): Add assumed-rank to
            character dummy arguments list of possible attributes.
    
    gcc/testsuite/ChangeLog:
    
    2020-06-03  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
    
            PR fortran/95214
            PR fortran/66833
            PR fortran/67938
            * gfortran.dg/PR95214.f90: New test.

commit 887c45fb5b047171e82710baa51108d5c210eb42
Author: Richard Biener <rguenther@suse.de>
Date:   Wed Jun 3 15:51:29 2020 +0200

    tree-optimization/95487 - use a truth type for scatter masks
    
    This makes sure to get a truth type for scatter masks even when they
    are invariant.
    
    2020-06-03  Richard Biener  <rguenther@suse.de>
    
            PR tree-optimization/95487
            * tree-vect-stmts.c (vectorizable_store): Use a truth type
            for the scatter mask.
    
            * g++.dg/vect/pr95487.cc: New testcase.

commit 6d36cc21b69d952967a4df6653954f572a101796
Author: David Malcolm <dmalcolm@redhat.com>
Date:   Wed Jun 3 08:59:23 2020 -0400

    jit: implement BT_CONST_VOLATILE_PTR [PR 95306]
    
    gcc/jit/ChangeLog:
            PR jit/95306
            * jit-builtins.c (builtins_manager::make_primitive_type):
            Implement BT_CONST_VOLATILE_PTR.
    
    gcc/testsuite/ChangeLog:
            PR jit/95306
            * jit.dg/test-pr95306-builtin-types.c (create_code): Add
            test of getting __atomic_load.

commit 779ae320bfadc5d867ecaeddf394838d546b57b9
Author: Richard Biener <rguenther@suse.de>
Date:   Wed Jun 3 14:06:20 2020 +0200

    tree-optimization/95495 - use SLP_TREE_REPRESENTATIVE in assertion
    
    This fixes a place where I missed to use SLP_TREE_REPRESENTATIVE
    after its introduction.
    
    2020-06-03  Richard Biener  <rguenther@suse.de>
    
            PR tree-optimization/95495
            * tree-vect-slp.c (vect_slp_analyze_node_operations): Use
            SLP_TREE_REPRESENTATIVE in the shift assertion.
    
            * gcc.dg/vect/pr95495.c: New testcase.

commit 079632de497a58a78971b8fc35cf3a52148857d1
Author: Tom Tromey <tromey@adacore.com>
Date:   Fri May 29 10:46:57 2020 -0600

    Prefer simple case changes in spelling suggestions
    
    I got this error message when editing gcc and recompiling:
    
    ../../gcc/gcc/ada/gcc-interface/decl.c:7714:39: error: ‘DWARF_GNAT_ENCODINGS_all’ was not declared in this scope; did you mean ‘DWARF_GNAT_ENCODINGS_GDB’?
     7714 |     = debug_info && gnat_encodings == DWARF_GNAT_ENCODINGS_all;
          |                                       ^~~~~~~~~~~~~~~~~~~~~~~~
          |                                       DWARF_GNAT_ENCODINGS_GDB
    
    This suggestion could be improved -- what happened here is that I
    failed to upper-case the word, and DWARF_GNAT_ENCODINGS_ALL was the
    correct spelling.
    
    This patch changes gcc's spell checker to prefer simple case changes
    when possible.
    
    I tested this using the self-tests.  A new self-test is also included.
    
    gcc/ChangeLog:
    
            * spellcheck.c (CASE_COST): New define.
            (BASE_COST): New define.
            (get_edit_distance): Recognize case changes.
            (get_edit_distance_cutoff): Update.
            (test_edit_distances): Update.
            (get_old_cutoff): Update.
            (test_find_closest_string): Add case sensitivity test.

commit f05c84ac139ccd5398542369aad2b5ff3059ced4
Author: Richard Biener <rguenther@suse.de>
Date:   Wed Jun 3 13:17:11 2020 +0200

    simplify visited flag unsetting in SLP scalar cost computation
    
    This changes the loop over all stmts to a loop over all costed stmts.
    
    2020-06-03  Richard Biener  <rguenther@suse.de>
    
            * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Loop over
            the cost vector to unset the visited flag on stmts.

commit 93535a2b40367e6f68433295b37dc52c0e9c2c55
Author: Tobias Burnus <tobias@codesourcery.com>
Date:   Wed Jun 3 12:28:25 2020 +0200

    [OpenMP] Fix mapping of artificial variables (PR94874)
    
    gcc/c-family/ChangeLog:
    
            * c-common.h (c_omp_predetermined_mapping): Declare.
            * c-omp.c (c_omp_predetermined_mapping): New.
    
    gcc/c/ChangeLog:
    
            * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_MAPPING): Redefine.
    
    gcc/cp/ChangeLog:
    
            * cp-gimplify.c (cxx_omp_predetermined_mapping): New.
            * cp-objcp-common.h (LANG_HOOKS_OMP_PREDETERMINED_MAPPING): Redfine.
            * cp-tree.h (cxx_omp_predetermined_mapping): Declare.
    
    gcc/fortran/ChangeLog:
    
            * f95-lang.c (LANG_HOOKS_OMP_PREDETERMINED_MAPPING): Redefine.
            * trans-openmp.c (gfc_omp_predetermined_mapping): New.
            * trans.h (gfc_omp_predetermined_mapping): Declare.
    
    gcc/ChangeLog:
    
            * gimplify.c (omp_notice_variable): Use new hook.
            * langhooks-def.h (lhd_omp_predetermined_mapping): Declare.
            (LANG_HOOKS_OMP_PREDETERMINED_MAPPING): Define
            (LANG_HOOKS_DECLS): Add it.
            * langhooks.c (lhd_omp_predetermined_sharing): Remove bogus unused attr.
            (lhd_omp_predetermined_mapping): New.
            * langhooks.h (struct lang_hooks_for_decls): Add new hook.
    
    gcc/testsuite/ChangeLog
    2020-06-03  Thomas Schwinge  <thomas@codesourcery.com>
                Tobias Burnus  <tobias@codesourcery.com>
    
            PR middle-end/94874
            * c-c++-common/gomp/pr94874.c: New.

commit dda71670514e88dcd9b913c44c0ee64d8c3d6da9
Author: Jan Hubicka <jh@suse.cz>
Date:   Wed Jun 3 12:03:40 2020 +0200

    Cleanup LTO tag streaming.
    
    this patch cleanups a bit the way LTO tags are assigned (so we do not use magic
    numbers of 2) and reorders them approximately by their frequency so the stream
    gets little bit smaller because of uleb coding.
    
    From:
    
    [WPA] Compression: 111213968 input bytes, 293801489 uncompressed bytes (ratio: 2.641768)
    [WPA] Size of mmap'd section decls: 85983129 bytes
    [WPA] Size of mmap'd section function_body: 14058627 bytes
    
    to:
    
    [WPA] Compression: 110593119 input bytes, 287696614 uncompressed bytes (ratio: 2.601397)
    [WPA] Size of mmap'd section decls: 85628556 bytes
    [WPA] Size of mmap'd section function_body: 13842928 bytes
    
    lto-bootstrapped/regtested x86_64-linux, will commit it shortly.
    
            * lto-streamer.h (LTO_tags): Reorder so frequent tags has small indexes;
            add LTO_first_tree_tag and LTO_first_gimple_tag.
            (lto_tag_is_tree_code_p): Update.
            (lto_tag_is_gimple_code_p): Update.
            (lto_gimple_code_to_tag): Update.
            (lto_tag_to_gimple_code): Update.
            (lto_tree_code_to_tag): Update.
            (lto_tag_to_tree_code): Update.


More information about the Gcc-cvs mailing list