[gcc/aoliva/heads/testme] (69 commits) [PR95456] avoid memcpy (_, NULL, 0) in gcc.c

Alexandre Oliva aoliva@gcc.gnu.org
Thu Jun 4 07:35:50 GMT 2020


The branch 'aoliva/heads/testme' was updated to point to:

 324e5967286... [PR95456] avoid memcpy (_, NULL, 0) in gcc.c

It previously pointed to:

 38bee856de4... [Ada] remove last traces of -auxbase

Diff:

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

  38bee85... [Ada] remove last traces of -auxbase
  4d78a4f... spell ldscript correctly in outputs.exp et al

commit 38bee856de4dfe3440d65f0d65cb5b0081f4f788
Author: Alexandre Oliva <oliva@adacore.com>
Date:   Tue Jun 2 11:18:58 2020 -0300

    [Ada] remove last traces of -auxbase
    
    Remove occurrences of auxbase that remained in comments.
    
    
    for  gcc/ada/ChangeLog
    
            * lib.ads (Compilation_Switches): Remove -auxbase from
            comments.
            * switch.ads (Is_Internal_GCC_Switch): Likewise.

commit 4d78a4fc8c83aab937a32de4e9ac4075351c8a35
Author: Alexandre Oliva <oliva@adacore.com>
Date:   Tue Jun 2 09:12:16 2020 -0300

    spell ldscript correctly in outputs.exp et al
    
    In my recent changes to outputs.exp and gcc-defs.exp, I misreferenced
    dejagnu board property ldscript, singular, as ldscripts, plural.
    
    This probably didn't have much impact on gcc-defs.exp: the code there
    would just prefix with -Wl, any options that amounted to file names,
    and linker scripts probably wouldn't be named without a -T or even an
    -Wl,-T, prefix.
    
    The visible effects were in outputs.exp, that also intended to add the
    ldscript, if present, to the set of options to be passed to the
    compiler driver for linking.  Using the wrong option name, that
    wouldn't work.
    
    
    for  gcc/testsuite/ChangeLog
    
            * gcc.misc-tests/outputs.exp: Spell ldscript correctly.
            * lib/gcc-defs.exp (gcc_adjust_linker_flags): Likewise.


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

  324e596... [PR95456] avoid memcpy (_, NULL, 0) in gcc.c
  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.
  4fc2610... [Ada] Fix for missing calls to Adjust primitive with nested
  48b185b... [Ada] Spurious ineffective with clause warnings on use type
  dca8f39... [Ada] Small housekeeping work in Check_Private_View
  3f06f6c... [Ada] Add detection of uninitialized big reals
  e4ef65f... [Ada] Remove more cases of empty loops
  415c22d... [Ada] Support pragma Allow_Integer_Address on 64-bit target
  30c6e57... [Ada] Get rid of more references to Universal_Integer in ex
  f38efc1... [Ada] Fix typos
  e454264... [Ada] Avoid creating temporaries in Universal_Integer, cont
  a103408... [Ada] Update headers
  b5b032e... [Ada] Small improvement to Expand_N_Unchecked_Type_Conversi
  93b3110... [Ada] Improve handling of SPARK_Mode in generic instances
  e60b6e2... [Ada] Initial infrastructure for adding a tree checker
  da566ee... [Ada] Incorrect accessibility checking on aliased formals
  79e267f... [Ada] Improve 'Val implementation for some enumeration type
  0751169... [Ada] Unnesting problems with expansion of Loop_Entry attri
  0000998... [Ada] Minor change to comment in System.Regexp spec
  10e168c... [Ada] Get rid of more references to Universal_Integer in ex
  eebcb56... [Ada] More efficient System.Random_Numbers.Random_Discrete 
  8f8fc38... [Ada] Debug info not available on subp having a class-wide 
  9ff488f... [Ada] Fix missing overflow checks in analysis of predefined
  3c5fb4f... [Ada] Fix typo in comment
  99859ea... [Ada] Iterate with procedural versions of Next_... routines
  fe2684a... [Ada] Get rid of more references to Universal_Integer in ex
  c35b8ee... [Ada] Add Address_Int declaration in s-auxdec.ads
  ba20346... [Ada] Remove ASIS tree generation
  bad8184... [Ada] Put a couple of options in alphabetical order
  cf9e382... [Ada] Avoid creating temporaries in Universal_Integer for r
  5cea137... [Ada] Remove -gnatt switch processing
  6f4ad96... [Ada] Minor tweaks in commentary
  eb3480f... gcov: Fix build on AIX
  a9312a7... Daily bump.
  44564c4... jit: fix __builtin_unreachable [PR 95426]
  4b68cb3... c++: *this capture in const member fn [PR95193].
  4013baf... RISC-V: Make __divdi3 handle div by zero same as hardware.
  578c013... [Ada] remove last traces of -auxbase
  324276f... coroutines: Wrap co_await in a target expr where needed [PR
  ce95db1... spell ldscript correctly in outputs.exp et al
  b2672dd... aarch64: Fix an ICE in aarch64_short_vector_p [PR95459]
  eca833b... libstdc++: Make debug containers prefer copy ctor to base c
  9582796... aarch64: Add initial support for -mcpu=zeus
  85bce48... Correctly identify stfs if prefixed
  34e5efa... Simplify streaming of tree references
  d3b6767... amdgcn: Remove -mlocal-symbol-id option
  4b6dcfd... gcc-changelog: support patterns
  a04b741... libgcov: replace malloc and calloc.

commit 324e59672869eb34336ee41327c6513a504974ec
Author: Alexandre Oliva <oliva@adacore.com>
Date:   Thu Jun 4 04:24:43 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 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.

commit 4fc2610a8301198367c590759a578b03167a1868
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Fri Jan 17 19:37:39 2020 +0100

    [Ada] Fix for missing calls to Adjust primitive with nested generics
    
    2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * sem_ch12.adb (Denotes_Previous_Actual): Delete.
            (Check_Generic_Actuals): Do not special case array types whose
            component type denotes a previous actual.  Do not special case
            access types whose base type is private.
            (Check_Private_View): Remove code dealing with secondary types.
            Do not switch the views of an array because of its component.
            (Copy_Generic_Node): Add special handling for a comparison
            operator on array types.
            (Instantiate_Type): Do not special case access types whose
            designated type is private.
            (Set_Global_Type): Do not special case array types whose
            component type is private.

commit 48b185bd015b72e43736e79887afe31296ae5fe2
Author: Justin Squirek <squirek@adacore.com>
Date:   Fri Jan 17 09:10:43 2020 -0500

    [Ada] Spurious ineffective with clause warnings on use type clause
    
    2020-06-03  Justin Squirek  <squirek@adacore.com>
    
    gcc/ada/
    
            * sem_ch10.adb (Process_Body_Clauses): Add loop to interate
            through all prefixes in a use_type clause so that all packages
            in the expanded name get examined for effectiveness.

commit dca8f39d62c4e9d54016a5f86c09906408b58e4e
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Thu Jan 16 16:53:39 2020 +0100

    [Ada] Small housekeeping work in Check_Private_View
    
    2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * sem_ch12.adb (Check_Private_View): Clean up implementation of
            second main case, when the generic sees the private declaration.

commit 3f06f6c30a8c168388886c13785597e56b398981
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Tue Jan 14 08:21:20 2020 -0500

    [Ada] Add detection of uninitialized big reals
    
    2020-06-03  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * libgnat/a-nbnbin.ads: Minor reformatting.
            * libgnat/a-nbnbre.ads, libgnat/a-nbnbre.adb (Is_Valid): Add
            convention Intrinsic. Add detection of uninitialized big reals.

commit e4ef65f9049ff5cf04635917e7cc845a8c4446ec
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Wed Jan 15 05:05:52 2020 -0500

    [Ada] Remove more cases of empty loops
    
    2020-06-03  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * sem_util.ads, sem_util.adb (Side_Effect_Free_Statements,
            Side_Effect_Free_Loop): New functions.
            (Has_Non_Null_Statements): Consider N_Call_Marker as a null
            statement.
            * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Call
            Set_Is_Null_Loop even inside a generic instantiation.
            (Analyze_Loop_Statement): Mark for removal loops with no side
            effects.

commit 415c22da949f15a18c914588e4796b218ccf0db5
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Wed Jan 15 11:03:14 2020 +0100

    [Ada] Support pragma Allow_Integer_Address on 64-bit targets
    
    2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * opt.ads (Allow_Integer_Address): Fix typo in comment.
            * stand.ads (Standard_Address): New entity.
            * cstand.adb (Create_Standard): Create it.
            * sem_ch4.adb (Operator_Check): Convert the operands of an
            operation with addresses and integers to Standard_Address
            if pragma Allow_Integer_Address is in effect.

commit 30c6e576a32bfa132fd57434a80b35b712f05458
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Tue Jan 14 21:56:28 2020 +0100

    [Ada] Get rid of more references to Universal_Integer in expanded code
    
    2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * libgnat/s-atopar.adb (Atomic_Fetch_And_Add): Make use of an
            equivalent static expression.
            (Atomic_Fetch_And_Subtract): Likewise.
            (Is_Lock_Free): Likewise.
            * libgnat/s-atopex.adb (Atomic_Exchange): Likewise.
            (Atomic_Compare_And_Exchange): Likewise.
            (Is_Lock_Free): Likewise.

commit f38efc1361c67077f175f194a34718de85d17a24
Author: Vadim Godunko <godunko@adacore.com>
Date:   Sat Jan 11 18:25:18 2020 +0300

    [Ada] Fix typos
    
    2020-06-03  Vadim Godunko  <godunko@adacore.com>
    
    gcc/ada/
    
            * libgnat/s-parame.ads, libgnat/s-parame__ae653.ads,
            libgnat/s-parame__hpux.ads: Fix typos.

commit e4542648e1d0e922bb2bb700f25b42e5af0da9ab
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Mon Jan 13 21:17:48 2020 +0100

    [Ada] Avoid creating temporaries in Universal_Integer, continued
    
    2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * exp_util.adb (Remove_Side_Effects): For a type conversion, do
            not remove the side effects of the expression only if it is of
            universal integer type.

commit a10340812c6315b7b78bdfd69d31afef03184ba0
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Sat Jan 11 05:33:27 2020 -0500

    [Ada] Update headers
    
    2020-06-03  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * libgnat/s-aotase.ads, libgnat/s-atoope.ads,
            libgnat/s-atopar.ads, libgnat/s-atopex.ads: Update header.

commit b5b032ec6e3532d9362d4dd4b1097ebf53509b81
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Fri Jan 10 21:55:33 2020 +0100

    [Ada] Small improvement to Expand_N_Unchecked_Type_Conversion
    
    2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * exp_ch4.adb (Expand_N_Unchecked_Type_Conversion): Also fold the
            conversion for literals of enumeration types.

commit 93b3110d75423001107785967a9f9c962e96d2e9
Author: Yannick Moy <moy@adacore.com>
Date:   Fri Jan 10 14:46:25 2020 +0100

    [Ada] Improve handling of SPARK_Mode in generic instances
    
    2020-06-03  Yannick Moy  <moy@adacore.com>
    
    gcc/ada/
    
            * rtsfind.adb (Load_RTU): Correctly set/reset global variable to
            ignore SPARK_Mode in instances around loading.
            * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Accept Off
            without prior On.
            * sem_ch7.adb (Analyze_Package_Body_Helper): Likewise.
            * sem_prag.adb (Analyze_Pragma): Always take into account
            SPARK_Mode Off.

commit e60b6e23741c6d6059e6f765f18ce4c56366874b
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Thu Jan 9 11:04:35 2020 -0500

    [Ada] Initial infrastructure for adding a tree checker
    
    2020-06-03  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * frontend.adb (Frontend): Call (dummy for now) tree checker.
            * debug.adb: Reserve -gnatd_V for the tree checker.
            * vast.ads, vast.adb: New files.
            * gcc-interface/Make-lang.in: Add vast.o.

commit da566eeb31056d9f40ab48688dc3fe680535ce80
Author: Justin Squirek <squirek@adacore.com>
Date:   Tue Jan 7 22:57:19 2020 -0500

    [Ada] Incorrect accessibility checking on aliased formals
    
    2020-06-03  Justin Squirek  <squirek@adacore.com>
    
    gcc/ada/
    
            * libgnat/a-cborse.adb, libgnat/a-cihase.adb,
            libgnat/a-ciorse.adb, libgnat/a-coorse.adb: Modified to use
            'Unrestricted_Access in certain cases where static accessibility
            errors were triggered.
            * exp_ch6.adb (Expand_Simple_Return_Statement): Add generation
            of dynamic accessibility checks as determined by
            Is_Special_Aliased_Formal_Access.
            * sem_attr.adb (Resolve_Attribute): Add call to
            Is_Special_Aliased_Formal_Access to avoid performing static
            checks where dynamic ones are required.
            * sem_ch6.adb (Check_Return_Obj_Accessibility): Handle renamed
            objects within component associations requiring special
            accessibility checks.
            * sem_util.adb, sem_util.ads (Is_Special_Aliased_Formal_Access):
            Created to detect the special case where an aliased formal is
            being compared against the level of an anonymous access return
            object.
            (Object_Access_Level): Remove incorrect condition leading to
            overly permissive accessibility levels being returned on
            explicitly aliased parameters.

commit 79e267f9fb23da4e9553a97dc45ea757545cf521
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Thu Jan 9 16:25:39 2020 +0100

    [Ada] Improve 'Val implementation for some enumeration types
    
    2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * einfo.ads (Enum_Pos_To_Rep): Adjust description.
            * exp_attr.adb (Expand_N_Attribute_Reference) <Pred>:
            Reimplement in the case of an enumeration type with non-standard
            but contiguous representation.
            <Succ>: Likewise.
            <Val>: Likewise.
            * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Count the
            literals in the first loop.  If the representation is
            contiguous, just build the index type of the array type and set
            Enum_Pos_To_Rep to it.

commit 075116992690d6f29530a0a7f08cf2f7d5652a93
Author: Gary Dismukes <dismukes@adacore.com>
Date:   Wed Jan 8 17:36:43 2020 -0500

    [Ada] Unnesting problems with expansion of Loop_Entry attribute
    
    2020-06-03  Gary Dismukes  <dismukes@adacore.com>
    
    gcc/ada/
    
            * exp_attr.adb (Expand_Loop_Entry_Attribute): Revise loop that
            resets the scopes of entities associated with Loop_Id to the
            scope of the new function, so the resetting is not restricted to
            itypes, but excludes loop parameters and the function entity
            itself. However, this fix is believed to be incomplete and a ???
            comment is added to indicate that.

commit 0000998e65ce6109d351200bf8e896762932ec2e
Author: Bob Duff <duff@adacore.com>
Date:   Wed Jan 8 10:55:33 2020 -0500

    [Ada] Minor change to comment in System.Regexp spec
    
    2020-06-03  Bob Duff  <duff@adacore.com>
    
    gcc/ada/
    
            * libgnat/s-regexp.ads: Fix comment

commit 10e168cdbe4fc6ca1d42b0d56936602feb2ef38b
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Thu Jan 9 00:04:34 2020 +0100

    [Ada] Get rid of more references to Universal_Integer in expanded code
    
    2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * exp_attr.adb (Expand_N_Attribute_Reference) <Enum_Rep>:
            In the case of an enumeration type, do an intermediate
            conversion to a small integer type.  Remove useless stuff.
            <Finalization_Size>: Do not hardcode Universal_Integer and
            fix a type mismatch in the assignment to the variable.
            <Max_Size_In_Storage_Elements>: Likewise.
            <From_Any>: Do not redefine the Ptyp local variable.
            <To_Any>: Likewise.
            <TypeCode>: Likewise.
            <Pos>: Small tweaks.
            <Val>: For an enumeration type with standard representation,
            apply the range check to the expression of a convertion to
            Universal_Integer, if any.  For an integer type, expand to
            a mere conversion.

commit eebcb5618002bcd30219203ce4c59b0ef809f236
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Tue Jan 7 23:04:13 2020 +0100

    [Ada] More efficient System.Random_Numbers.Random_Discrete for 32-bit types
    
    2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * libgnat/s-rannum.adb (Random_Discrete): In the 32-bit case,
            use the same linear implementation as in the 64-bit case when
            the type has a contiguous representation.

commit 8f8fc3840e9ac62a053fc8ebe0d25955a9ecf290
Author: Gary Dismukes <dismukes@adacore.com>
Date:   Tue Jan 7 17:28:16 2020 -0500

    [Ada] Debug info not available on subp having a class-wide precondition
    
    2020-06-03  Gary Dismukes  <dismukes@adacore.com>
    
    gcc/ada/
    
            * sem_util.adb (Build_Class_Wide_Clone_Decl): Call
            Set_Debug_Info_Needed to set the Needs_Debug_Info flag on
            Clone_Id if the flag is set on Spec_Id.

commit 9ff488f0292841a709840b6d2cb4d18e2f1b491a
Author: Yannick Moy <moy@adacore.com>
Date:   Tue Jan 7 17:39:31 2020 +0100

    [Ada] Fix missing overflow checks in analysis of predefined unit
    
    2020-06-03  Yannick Moy  <moy@adacore.com>
    
    gcc/ada/
    
            * inline.adb (Expand_Inlined_Call): Do not suppress checks on
            inlined code in GNATprove mode.

commit 3c5fb4f4957a7046f631c648b362522d55d19fbc
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Tue Jan 7 23:17:30 2020 +0100

    [Ada] Fix typo in comment
    
    2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * einfo.ads (Has_Contiguous_Rep): Fix typo in comment.

commit 99859ea756671ac375a231d803623394de872ece
Author: Piotr Trojanek <trojanek@adacore.com>
Date:   Sun Jan 5 23:53:42 2020 +0100

    [Ada] Iterate with procedural versions of Next_... routines where possible
    
    2020-06-03  Piotr Trojanek  <trojanek@adacore.com>
    
    gcc/ada/
    
            * checks.adb, einfo.adb, exp_aggr.adb, exp_ch4.adb, exp_ch6.adb,
            exp_unst.adb, exp_util.adb, freeze.adb, inline.adb, repinfo.adb,
            sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_ch13.adb,
            sem_ch3.adb, sem_ch4.adb, sem_ch8.adb, sem_elab.adb,
            sem_eval.adb, sem_prag.adb, sem_res.adb, sem_smem.adb,
            sem_util.adb, treepr.adb: Replace uses of Next_ functions with
            corresponding procedures.

commit fe2684adda4c471b48e1cb1a69a8ea3d02bf4e1a
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Mon Jan 6 13:14:58 2020 +0100

    [Ada] Get rid of more references to Universal_Integer in expanded code
    
    2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * exp_attr.adb (Attribute_Valid): Use Standard_Long_Long_Integer
            in lieu of Universal_Integer as large integer type.
            * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Likewise.

commit c35b8eed79041b1d8f6001904a4c55d6e56ebb21
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Fri Jan 3 11:18:18 2020 -0500

    [Ada] Add Address_Int declaration in s-auxdec.ads
    
    2020-06-03  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * libgnat/s-auxdec.ads (Address_Int): New.

commit ba2034610fcc0d56dd52cb20c26f9ab1997b520e
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Wed Jan 1 15:19:05 2020 -0500

    [Ada] Remove ASIS tree generation
    
    2020-06-03  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * aspects.adb, aspects.ads, atree.adb, atree.ads, elists.adb,
            elists.ads, fname.adb, fname.ads, gnat1drv.adb, lib.adb,
            lib.ads, namet.adb, namet.ads, nlists.adb, nlists.ads, opt.adb,
            opt.ads, osint-c.adb, osint-c.ads, repinfo.adb, repinfo.ads,
            sem_aux.adb, sem_aux.ads, sinput.adb, sinput.ads, stand.ads,
            stringt.adb, stringt.ads, switch-c.adb, table.adb, table.ads,
            uintp.adb, uintp.ads, urealp.adb, urealp.ads (Tree_Read,
            Tree_Write): Remove generation of ASIS trees.
            * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
            Remove -gnatt and -gnatct documentation.
            * gnat_ugn.texi: Regenerate.
            * tree_in.ads, tree_in.adb, tree_io.ads, tree_io.adb,
            tree_gen.ads, tree_gen.adb, stand.adb: Remove.
            * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Remove
            references to tree_gen.o tree_in.o tree_io.o.

commit bad8184e3e16dfd4d30099e18e443c4a54b97c83
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Mon Jan 6 10:12:44 2020 +0100

    [Ada] Put a couple of options in alphabetical order
    
    2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * opt.ads (Disable_FE_Inline): Move around.
            (Disable_FE_Inline_Always): Likewise.

commit cf9e38295f751336e2ce4bc08fe8bf9f7b3ae898
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Fri Jan 3 15:31:08 2020 +0100

    [Ada] Avoid creating temporaries in Universal_Integer for range checks
    
    2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * checks.adb (Is_Single_Attribute_Reference): New predicate.
            (Generate_Range_Check): Do not force the evaluation if the
            node is a single attribute reference.
            * exp_util.adb (Side_Effect_Free_Attribute): New predicate.
            (Side_Effect_Free) <N_Attribute_Reference>: Call it.
            (Remove_Side_Effects): Remove the side effects of the prefix
            for an attribute reference whose prefix is not a name.

commit 5cea137308eb2e3912e052132131c7b7d9e19e63
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Fri Jan 3 11:58:37 2020 +0100

    [Ada] Remove -gnatt switch processing
    
    2020-06-03  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * switch-c.adb (Scan_Front_End_Switches): Remove processing of
            -gnatt.
            * usage.adb (Usage): Remove mention of -gnatt.

commit 6f4ad963f8e56096b52989e1a4199199da73a935
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Fri Jan 3 08:55:57 2020 +0100

    [Ada] Minor tweaks in commentary
    
    2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * sinfo.ads: Minor tweaks in commentary.

commit eb3480fc0fe68c0062a5548e922d530c78121cb5
Author: Martin Liska <mliska@suse.cz>
Date:   Tue Jun 2 16:57:35 2020 +0200

    gcov: Fix build on AIX
    
    We must guard used atomic builtins with GCOV_SUPPORTS_ATOMIC.
    The patch is tested on AIX and I'm going to push it.
    
    libgcc/ChangeLog:
    
            PR gcov-profile/95480
            * libgcov-profiler.c (GCOV_SUPPORTS_ATOMIC): Move to...
            * libgcov.h (GCOV_SUPPORTS_ATOMIC): ...here.
            (gcov_counter_add): Use GCOV_SUPPORTS_ATOMIC guard.
            (gcov_counter_set_if_null): Likewise.

commit a9312a7926079ddb78b5f93681a9f6823422f5e1
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Jun 3 00:16:34 2020 +0000

    Daily bump.

commit 44564c4c811f4751daf363ca019a9f9bed702f4f
Author: David Malcolm <dmalcolm@redhat.com>
Date:   Sun May 31 13:28:41 2020 -0400

    jit: fix __builtin_unreachable [PR 95426]
    
    PR jit/95426 reports a crash deep inside "expand" when using
    __builtin_unreachable via gcc_jit_context_get_builtin_function,
    due to BLOCK_FOR_INSN being erroneously used on a barrier within
    rtl_verify_bb_pointers.
    
    The root cause turns out to be that I didn't implement
    LANG_HOOKS_COMMON_ATTRIBUTE_TABLE and LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE
    for the jit "frontend".  When building a decl for the builtin, the
    libgccjit frontend generates a chain of attributes names, but when
    this is passed to decl_attributes and the attributes are looked up by
    namespace and name within lookup_scoped_attribute_spec, attributes_table
    is empty.  Hence no attributes were being associated with the fndecl,
    and so ECF_NORETURN was not set on the gimple_call (along with various
    other flags missing on the decl, etc), and so the call is treated as
    not terminating its BB, and so the CFG rapidly diverges from the
    equivalent created by the C frontend.
    
    This patch fixes things by implementing these langhooks, copying the
    minimal attribute-handling code from LTO.  I stepped through the
    creation of the fndecl and verified that with this fix it has the same
    attributes as the equivalent created by the C frontend.
    
    gcc/jit/ChangeLog:
            PR jit/95426
            * dummy-frontend.c: Include "options.h", "stringpool.h", and
            "attribs.h".
            (ATTR_EXCL): New, copied from lto/lto-lang.c.
            (attr_noreturn_exclusions): Likewise.
            (attr_returns_twice_exclusions): Likewise.
            (attr_const_pure_exclusions): Likewise.
            (jit_attribute_table): Likewise, copied from lto_attribute_table.
            (jit_format_attribute_table): Likewise, copied from
            lto_format_attribute_table.
            (handle_noreturn_attribute): New, copied from lto/lto-lang.c.
            (handle_leaf_attribute): Likewise.
            (handle_const_attribute): Likewise.
            (handle_malloc_attribute): Likewise.
            (handle_pure_attribute): Likewise.
            (handle_novops_attribute): Likewise.
            (get_nonnull_operand): Likewise.
            (handle_nonnull_attribute): Likewise.
            (handle_nothrow_attribute): Likewise.
            (handle_sentinel_attribute): Likewise.
            (handle_type_generic_attribute): Likewise.
            (handle_transaction_pure_attribute): Likewise.
            (handle_returns_twice_attribute): Likewise.
            (handle_patchable_function_entry_attribute): Likewise.
            (ignore_attribute): Likewise.
            (handle_format_attribute): Likewise.
            (handle_format_arg_attribute): Likewise.
            (handle_fnspec_attribute): Likewise.
            (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Define.
            (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Define.
    
    gcc/testsuite/ChangeLog:
            PR jit/95426
            * jit.dg/all-non-failing-tests.h: Add note about...
            * jit.dg/test-builtin-unreachable.c: New test.

commit 4b68cb38ddca37a14a6f2f43de3a6d396ee1bc79
Author: Jason Merrill <jason@redhat.com>
Date:   Mon Jun 1 17:58:57 2020 -0400

    c++: *this capture in const member fn [PR95193].
    
    Here, the capture proxy for *this is const, but its DECL_VALUE_EXPR is not.
    Don't ICE on this; it's a reasonable difference, since in C++ an rvalue of
    scalar type does not have cv-qualifiers.
    
    gcc/cp/ChangeLog:
    
            PR c++/95193
            * pt.c (tsubst_decl): Relax assert.
    
    gcc/testsuite/ChangeLog:
    
            PR c++/95193
            * g++.dg/cpp1z/lambda-this7.C: New test.

commit 4013baf99c38f7bca06a51f8301e8fb195ccfa33
Author: Jim Wilson <jimw@sifive.com>
Date:   Tue Jun 2 11:19:39 2020 -0700

    RISC-V: Make __divdi3 handle div by zero same as hardware.
    
    The ISA manual specifies that divide by zero always returns -1 as the result.
    We were failing to do that when the dividend was negative.
    
    Original patch from Virginie Moser.
    
            libgcc/
            * config/riscv/div.S (__divdi3): For negative arguments, change bgez
            to bgtz.

commit 578c013aa697cb81a46e9b335ce61c82c009c77f
Author: Alexandre Oliva <oliva@adacore.com>
Date:   Tue Jun 2 15:36:49 2020 -0300

    [Ada] remove last traces of -auxbase
    
    Remove occurrences of auxbase that remained in comments.
    
    
    for  gcc/ada/ChangeLog
    
            * lib.ads (Compilation_Switches): Remove -auxbase from
            comments.
            * switch.ads (Is_Internal_GCC_Switch): Likewise.

commit 324276ff9b1aa5128e5cb9f5d43182d1ebab0752
Author: Iain Sandoe <iain@sandoe.co.uk>
Date:   Tue Jun 2 16:47:54 2020 +0100

    coroutines: Wrap co_await in a target expr where needed [PR95050]
    
    Since the co_await expression is mostly opaque to the existing
    machinery, we were hiding the details of the await_resume return
    value.  If that needs to be wrapped in a target expression, then
    emulate this with the whole co_await.  Similarly, if the await
    expression we build in response to co_await p.yield_value (e)
    is wrapped in a target expression, then we need to transfer that
    wrapper to the resultant CO_YIELD_EXPR (which is, itself, just
    a proxy for the underlying co_await).
    
    gcc/cp/ChangeLog:
    
            PR c++/95050
            * coroutines.cc (build_co_await): Wrap the co_await expression
            in a TARGET_EXPR, where needed.
            (finish_co_yield_expr): Likewise.
    
    gcc/testsuite/ChangeLog:
    
            PR c++/95050
            * g++.dg/coroutines/pr95050.C: New test.

commit ce95db102aab4dea9af24a20de78db2f57c0a37b
Author: Alexandre Oliva <oliva@adacore.com>
Date:   Tue Jun 2 14:33:38 2020 -0300

    spell ldscript correctly in outputs.exp et al
    
    In my recent changes to outputs.exp and gcc-defs.exp, I misreferenced
    dejagnu board property ldscript, singular, as ldscripts, plural.
    
    This probably didn't have much impact on gcc-defs.exp: the code there
    would just prefix with -Wl, any options that amounted to file names,
    and linker scripts probably wouldn't be named without a -T or even an
    -Wl,-T, prefix.
    
    The visible effects were in outputs.exp, that also intended to add the
    ldscript, if present, to the set of options to be passed to the
    compiler driver for linking.  Using the wrong option name, that
    wouldn't work.
    
    
    for  gcc/testsuite/ChangeLog
    
            * gcc.misc-tests/outputs.exp: Spell ldscript correctly.
            * lib/gcc-defs.exp (gcc_adjust_linker_flags): Likewise.

commit b2672dd630c81513e08829adc63294ffeedf5693
Author: Fei Yang <felix.yang@huawei.com>
Date:   Tue Jun 2 18:17:34 2020 +0100

    aarch64: Fix an ICE in aarch64_short_vector_p [PR95459]
    
    In aarch64_short_vector_p, we are simply checking whether a type (and a mode)
    is a 64/128-bit short vector or not.  This should not be affected by the value
    of TARGET_SVE.  Simply leave later code to report an error if SVE is disabled.
    
    2020-06-02  Felix Yang  <felix.yang@huawei.com>
    
    gcc/
            PR target/95459
            * config/aarch64/aarch64.c (aarch64_short_vector_p):
            Leave later code to report an error if SVE is disabled.
    
    gcc/testsuite/
            PR target/95459
            * gcc.target/aarch64/mgeneral-regs_6.c: New test.

commit eca833b81289438ec5ae3ed4c77ffb49cfb65f34
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Jun 2 18:13:08 2020 +0100

    libstdc++: Make debug containers prefer copy ctor to base ctor (PR 90102)
    
    When given a type which can convert to any container-like type, the
    C(const C&) copy constructor and C(const C::_Base&) converting
    constructor are ambiguous. This change replaces the converting
    constructor's parameter with a reference_wrapper-like type so that
    calling that constructor requires an additional user-defined conversion.
    This gives it a lower rank than the copy constructor, avoiding the
    ambiguity.
    
    While testing this change I discovered that __gnu_debug::forward_list
    doesn't have a convering constructor from the std::forward_list base, so
    this adds it.
    
    We should probably consider whether the converting constructors should
    be 'explicit' but I'm not changing that now.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/90102
            * include/debug/deque (deque(const _Base&)): Replace parameter
            with a struct that wraps a const _Base&.
            * include/debug/forward_list (forward_list(_Base_ref)): New
            constructor.
            * include/debug/list (list(const _Base&)): Replace parameter
            with a struct that wraps a const _Base&.
            * include/debug/map.h (map(const _Base&)): Likewise.
            * include/debug/multimap.h (multimap(const _Base&)): Likewise.
            * include/debug/multiset.h (multiset(const _Base&)): Likewise.
            * include/debug/set.h (set(const _Base&)): Likewise.
            * include/debug/unordered_map (unordered_map(const _Base&))
            (unordered_multimap(const _Base&)): Likewise.
            * include/debug/unordered_set (unordered_set(const _Base&))
            (unordered_multiset(const _Base&)): Likewise.
            * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
            Adjust dg-error line number.
            * include/debug/vector (vector(const _Base&)): Likewise.
            * testsuite/23_containers/deque/debug/90102.cc: New test.
            * testsuite/23_containers/forward_list/debug/90102.cc: New test.
            * testsuite/23_containers/list/debug/90102.cc: New test.
            * testsuite/23_containers/map/debug/90102.cc: New test.
            * testsuite/23_containers/multimap/debug/90102.cc: New test.
            * testsuite/23_containers/multiset/debug/90102.cc: New test.
            * testsuite/23_containers/set/debug/90102.cc: New test.
            * testsuite/23_containers/unordered_map/debug/90102.cc: New test.
            * testsuite/23_containers/unordered_multimap/debug/90102.cc: New test.
            * testsuite/23_containers/unordered_multiset/debug/90102.cc: New test.
            * testsuite/23_containers/unordered_set/debug/90102.cc: New test.
            * testsuite/23_containers/vector/debug/90102.cc: New test.

commit 95827968e5f3e472bbef0ad8b65b0a7537c9cee3
Author: Kyrylo Tkachov <kyrylo.tkachov@arm.com>
Date:   Tue Jun 2 17:42:48 2020 +0100

    aarch64: Add initial support for -mcpu=zeus
    
    This patch adds support for the Arm Zeus CPU.
    Bootstrapped and tested on aarch64-none-linux-gnu.
    
    gcc/
    
    2020-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
    
            * config/aarch64/aarch64-cores.def (zeus): Define.
            * config/aarch64/aarch64-tune.md: Regenerate.
            * doc/invoke.texi (AArch64 Options): Document zeus -mcpu option.

commit 85bce484d37fdda9c7eadb9bdcdb1ded891462bb
Author: Aaron Sawdey <acsawdey@linux.ibm.com>
Date:   Fri May 29 16:19:10 2020 -0500

    Correctly identify stfs if prefixed
    
    Because reg_to_non_prefixed() only looks at the register being used, it
    doesn't get the right answer for stfs, which leads to us not seeing
    that it has a PCREL symbol ref.  This patch works around this by
    introducing a helper function that inspects the insn to see if it is in
    fact a stfs. Then if we use NON_PREFIXED_DEFAULT, address_to_insn_form()
    can see that it has the PCREL symbol ref.
    
    gcc/ChangeLog:
    
            PR target/95347
            * config/rs6000/rs6000.c (prefixed_store_p): Add special case
            for stfs.
            (is_stfs_insn): New helper function.

commit 34e5efa10a7b514238ed9a914b802898d2d8cb36
Author: Jan Hubicka <jh@suse.cz>
Date:   Tue Jun 2 17:39:58 2020 +0200

    Simplify streaming of tree references
    
            * lto-streamer-in.c (stream_read_tree_ref): Simplify streaming of
            references.
            * lto-streamer-out.c (stream_write_tree_ref): Likewise.

commit d3b6767dce45a7100e4cc32d2986a55f09a2cce2
Author: Andrew Stubbs <ams@codesourcery.com>
Date:   Tue Jun 2 14:41:21 2020 +0100

    amdgcn: Remove -mlocal-symbol-id option
    
    This patch removes the obsolete -mlocal-symbol-id option.  This was used to
    control mangling of local symbol names in order to work around a ROCm runtime
    bug, but that has not been needed in some time, and the mangling was removed
    already.
    
    gcc/ChangeLog:
    
            * config/gcn/gcn-hsa.h (CC1_SPEC): Delete.
            * config/gcn/gcn.opt (-mlocal-symbol-id): Delete.
            * config/gcn/mkoffload.c (main): Don't use -mlocal-symbol-id.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.dg/intermod-1.c: Don't use -mlocal-symbol-id.

commit 4b6dcfd542aed2d14a0bcd2bee116d0779cc1d48
Author: Martin Liska <mliska@suse.cz>
Date:   Tue Jun 2 15:13:22 2020 +0200

    gcc-changelog: support patterns
    
    contrib/ChangeLog:
    
            * gcc-changelog/git_commit.py: Support foo/bar/*: patterns in
            wildcard_prefixes locations.
            * gcc-changelog/test_email.py: Test it.
            * gcc-changelog/test_patches.txt: Add 3 new patches.

commit a04b7410d305800b747963ab940d2b1a602b5ddf
Author: Martin Liska <mliska@suse.cz>
Date:   Tue Jun 2 13:57:31 2020 +0200

    libgcov: replace malloc and calloc.
    
    The calloc was in the original tested version of the patch
    and I made accidental last minute change.
    
    Installed to master as obvious.
    
    libgcc/ChangeLog:
    
            * libgcov.h (gcov_topn_add_value): Use xcalloc instead
            of xmalloc.


More information about the Gcc-cvs mailing list