Skip to content
Snippets Groups Projects
  1. Mar 29, 2022
    • chenglulu's avatar
      LoongArch Port: libgomp · 34024b71
      chenglulu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      	    Lulu Cheng  <chenglulu@loongson.cn>
      
      libgomp/ChangeLog:
      
      	* configure.tgt: Add LoongArch triplet.
      34024b71
    • chenglulu's avatar
      LoongArch Port: Regenerate libgcc/configure. · b38100eb
      chenglulu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      	    Lulu Cheng  <chenglulu@loongson.cn>
      
      libgcc/ChangeLog:
      
      	* configure: Regenerate file.
      b38100eb
    • chenglulu's avatar
      LoongArch Port: libgcc · bf291a43
      chenglulu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      	    Lulu Cheng  <chenglulu@loongson.cn>
      
      libgcc/ChangeLog:
      
      	* config/loongarch/crtfastmath.c: New file.
      	* config/loongarch/linux-unwind.h: Like wise.
      	* config/loongarch/sfp-machine.h: Like wise.
      	* config/loongarch/t-crtstuff: Like wise.
      	* config/loongarch/t-loongarch: Like wise.
      	* config/loongarch/t-loongarch64: Like wise.
      	* config/loongarch/t-softfp-tf: Like wise.
      	* config.host: Add LoongArch tuples.
      	* configure.ac: Add LoongArch support.
      bf291a43
    • chenglulu's avatar
      LoongArch Port: Builtin macros. · 7e60c24c
      chenglulu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      	    Lulu Cheng  <chenglulu@loongson.cn>
      
      gcc/ChangeLog:
      
      	* config/loongarch/loongarch-c.cc
      7e60c24c
    • chenglulu's avatar
      LoongArch Port: Builtin functions. · 2aca9d5b
      chenglulu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      	    Lulu Cheng  <chenglulu@loongson.cn>
      
      gcc/ChangeLog:
      
      	* config/loongarch/larchintrin.h: New file.
      	* config/loongarch/loongarch-builtins.cc: New file.
      2aca9d5b
    • chenglulu's avatar
      LoongArch Port: Machine description C files and .h files. · 62ec3b53
      chenglulu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      	    Lulu Cheng  <chenglulu@loongson.cn>
      
      gcc/ChangeLog:
      
      	* config/host-linux.cc: Add LoongArch support.
      	* config/loongarch/loongarch-protos.h: New file.
      	* config/loongarch/loongarch-tune.h: Likewise.
      	* config/loongarch/loongarch.cc: Likewise.
      	* config/loongarch/loongarch.h: Likewise.
      62ec3b53
    • chenglulu's avatar
      LoongArch Port: Machine description files. · bcaf571c
      chenglulu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      	    Lulu Cheng  <chenglulu@loongson.cn>
      
      gcc/ChangeLog:
      
      	* config/loongarch/constraints.md: New file.
      	* config/loongarch/generic.md: New file.
      	* config/loongarch/la464.md: New file.
      	* config/loongarch/loongarch-ftypes.def: New file.
      	* config/loongarch/loongarch-modes.def: New file.
      	* config/loongarch/loongarch.md: New file.
      	* config/loongarch/predicates.md: New file.
      	* config/loongarch/sync.md: New file.
      bcaf571c
    • chenglulu's avatar
      LoongArch Port: Regenerate gcc/configure. · 22576139
      chenglulu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      	    Lulu Cheng  <chenglulu@loongson.cn>
      
      gcc/ChangeLog:
      
      	* configure: Regenerate file.
      22576139
    • chenglulu's avatar
      LoongArch Port: gcc build · b44786f6
      chenglulu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      	    Lulu Cheng  <chenglulu@loongson.cn>
      
      gcc/ChangeLog:
      
      	* common/config/loongarch/loongarch-common.cc: New file.
      	* config/loongarch/genopts/genstr.sh: New file.
      	* config/loongarch/genopts/loongarch-strings: New file.
      	* config/loongarch/genopts/loongarch.opt.in: New file.
      	* config/loongarch/loongarch-str.h: New file.
      	* config/loongarch/gnu-user.h: New file.
      	* config/loongarch/linux.h: New file.
      	* config/loongarch/loongarch-cpu.cc: New file.
      	* config/loongarch/loongarch-cpu.h: New file.
      	* config/loongarch/loongarch-def.c: New file.
      	* config/loongarch/loongarch-def.h: New file.
      	* config/loongarch/loongarch-driver.cc: New file.
      	* config/loongarch/loongarch-driver.h: New file.
      	* config/loongarch/loongarch-opts.cc: New file.
      	* config/loongarch/loongarch-opts.h: New file.
      	* config/loongarch/loongarch.opt: New file.
      	* config/loongarch/t-linux: New file.
      	* config/loongarch/t-loongarch: New file.
      	* config.gcc: Add LoongArch support.
      	* configure.ac: Add LoongArch support.
      
      contrib/ChangeLog:
      
      	* gcc_update (files_and_dependencies): Add
      	  config/loongarch/loongarch.opt and config/loongarch/loongarch-str.h.
      b44786f6
    • chenglulu's avatar
      LoongArch Port: Regenerate configure · c6c0594e
      chenglulu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      	    Lulu Cheng  <chenglulu@loongson.cn>
      
      ChangeLog:
      
      	* configure.ac: Add LoongArch tuples.
      	* configure: Regenerate.
      
      config/ChangeLog:
      
      	* picflag.m4: Default add build option '-fpic' for LoongArch.
      c6c0594e
    • Thomas Schwinge's avatar
      options: Fix 'enabledby_negargs' typo in 'LangEnabledBy' option property diagnostics · 2788d42b
      Thomas Schwinge authored
      Originally introduced almost ten years ago in
      r193303/commit 0829c7f7
      "optc-gen.awk: Factor code out to...".
      
      	gcc/
      	* opt-functions.awk (lang_enabled_by): Fix 'enabledby_negargs'
      	typo.
      2788d42b
    • Jonathan Wakely's avatar
      libstdc++: Workaround for missing 'using enum' in Clang 12 · 8bbeffc1
      Jonathan Wakely authored
      Once we no longer care about older compilers without this feature, we
      can drop these static data members, so the names don't have to be
      visible at class scope.
      
      libstdc++-v3/ChangeLog:
      
      	* libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
      	static data members for _Fp_fmt enumerators.
      8bbeffc1
    • Jonathan Wakely's avatar
      libstdc++: Fix incorrect preprocessor conditions in <version> · 7255d29c
      Jonathan Wakely authored
      The conditions that guard the feature test macros in <version> should
      match the main definitions of the macros in other headers.
      
      This doesn't matter for GCC, because it supports all the conditions
      being tested here, but it does matter for non-GCC compilers without the
      relevant C++20 features.
      
      libstdc++-v3/ChangeLog:
      
      	* include/std/version (__cpp_lib_variant): Fix conditions to
      	match <variant>.
      	(__cpp_lib_expected): Fix condition to match <expected>.
      7255d29c
    • Marc Poulhiès's avatar
      testsuite: Check fpic support in pr103275.c · 35464c79
      Marc Poulhiès authored
      Test must check for effective support of fpic.
      
      gcc/testsuite/ChangeLog:
      	* gcc.target/i386/pr103275.c: Add missing
      	dg-require-effective-target for checking fpic.
      35464c79
    • Marc Poulhiès's avatar
      testsuite: fixup pr97521.c and pr96713.c on i686-* · b6cccf88
      Marc Poulhiès authored
      On targets that do not have MXX/SSE enabled by default, pr97521
      and pr96713 fail because they emit warnings:
      
      pr97521.c:12:1: warning: MMX vector return without MMX enabled
                      changes the ABI [-Wpsabi]
      pr97521.c:11:1: note: the ABI for passing parameters with
                      16-byte alignment has changed in GCC 4.6
      pr97521.c:11:1: warning: SSE vector argument without SSE enabled
                      changes the ABI [-Wpsabi]
      
      Add -Wno-psabi to dg-options.
      
      gcc/testsuite/ChangeLog:
      	* gcc.target/i386/pr97521.c: Add -Wno-psabi to dg-options.
      	* gcc.dg/analyzer/pr96713.c: Likewise.
      b6cccf88
    • Richard Biener's avatar
      tree-optimization/105080 - make sure SCEV is available for ranger · 28c5df79
      Richard Biener authored
      When doing format diagnostics at -O0 we should make sure to make
      SCEV available to avoid false positives due to ranges we otherwise
      can trivially compute.
      
      2022-03-28  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/105080
      	* tree-ssa-strlen.cc (printf_strlen_execute): Always init
      	loops and SCEV.
      
      	* gcc.dg/pr105080.c: New testcase.
      28c5df79
    • David Malcolm's avatar
      analyzer: ensure that we purge state when reusing a conjured_svalue [PR105087] · 3734527d
      David Malcolm authored
      
      PR analyzer/105087 describes a false positive from
      -Wanalyzer-double-free in which the analyzer erroneously considers two
      successive inlined vasprintf calls to have allocated the same pointer.
      
      The root cause is that the result written back from vasprintf is a
      conjured_svalue, and that we normally purge state when reusing a
      conjured_svalue, but various places in the code were calling
      region_model_manager::get_or_create_conjured_svalue but failing to
      then call region_model::purge_state_involving on the result.
      
      This patch fixes things by moving responsibility for calling
      region_model::purge_state_involving into
      region_model_manager::get_or_create_conjured_svalue, so that it is
      always called when reusing a conjured_svalue, fixing the false positive.
      
      gcc/analyzer/ChangeLog:
      	PR analyzer/105087
      	* analyzer.h (class conjured_purge): New forward decl.
      	* region-model-asm.cc (region_model::on_asm_stmt): Add
      	conjured_purge param to calls binding_cluster::on_asm and
      	region_model_manager::get_or_create_conjured_svalue.
      	* region-model-impl-calls.cc
      	(call_details::get_or_create_conjured_svalue): Likewise for call
      	to region_model_manager::get_or_create_conjured_svalue.
      	(region_model::impl_call_fgets): Remove call to
      	region_model::purge_state_involving, as this is now done
      	implicitly by call_details::get_or_create_conjured_svalue.
      	(region_model::impl_call_fread): Likewise.
      	(region_model::impl_call_strchr): Pass conjured_purge param to
      	call to region_model_manager::get_or_create_conjured_svalue.
      	* region-model-manager.cc (conjured_purge::purge): New.
      	(region_model_manager::get_or_create_conjured_svalue): Add
      	param "p".  Use it to purge state when reusing an existing
      	conjured_svalue.
      	* region-model.cc (region_model::on_call_pre): Replace call to
      	region_model::purge_state_involving with passing conjured_purge
      	to region_model_manager::get_or_create_conjured_svalue.
      	(region_model::handle_unrecognized_call): Pass conjured_purge to
      	store::on_unknown_fncall.
      	* region-model.h
      	(region_model_manager::get_or_create_conjured_svalue): Add param
      	"p".
      	* store.cc (binding_cluster::on_unknown_fncall): Likewise.  Pass
      	it on to region_model_manager::get_or_create_conjured_svalue.
      	(binding_cluster::on_asm): Likewise.
      	(store::on_unknown_fncall): Add param "p" and pass it on to
      	binding_cluster::on_unknown_fncall.
      	* store.h (binding_cluster::on_unknown_fncall): Add param p.
      	(binding_cluster::on_asm): Likewise.
      	(store::on_unknown_fncall): Likewise.
      	* svalue.h (class conjured_purge): New.
      
      gcc/testsuite/ChangeLog:
      	* gcc.dg/analyzer/pr105087-1.c: New test.
      	* gcc.dg/analyzer/pr105087-2.c: New test.
      	* gcc.dg/analyzer/vasprintf-1.c: New test.
      
      Signed-off-by: default avatarDavid Malcolm <dmalcolm@redhat.com>
      3734527d
    • David Malcolm's avatar
      analyzer: fix ICE with incorrect lookup of cgraph node [PR105074] · 1203e8f7
      David Malcolm authored
      
      gcc/analyzer/ChangeLog:
      	PR analyzer/105074
      	* region.cc (ipa_ref_requires_tracking): Drop "context_fndecl",
      	instead using the ref->referring to get the cgraph node of the
      	caller.
      	(symnode_requires_tracking_p): Likewise.
      
      gcc/testsuite/ChangeLog:
      	PR analyzer/105074
      	* gcc.dg/analyzer/pr105074.c: New test.
      	* gcc.dg/analyzer/untracked-1.c (extern_fn_char_ptr): New decl.
      	(test_13): New.
      
      Signed-off-by: default avatarDavid Malcolm <dmalcolm@redhat.com>
      1203e8f7
    • GCC Administrator's avatar
      Daily bump. · aab0127d
      GCC Administrator authored
      aab0127d
  2. Mar 28, 2022
    • Indu Bhagat's avatar
      ctfout: use ctfc_get_num_ctf_vars instead · eed9d091
      Indu Bhagat authored
      A minor cosmetic fix.
      
      2022-03-28  Indu Bhagat  <indu.bhagat@oracle.com>
      
      gcc/ChangeLog:
      
      	* ctfout.cc (ctf_preprocess): Use ctfc_get_num_ctf_vars instead.
      	(output_ctf_vars): Likewise.
      eed9d091
    • Tom Tromey's avatar
      Remove --with-gmp-dir and --with-mpfr-dir · 88252529
      Tom Tromey authored
      The top-level configure options --with-gmp-dir and --with-mpfr-dir
      were obsoleted and marked as "REMOVED" back in 2006.  I think that's
      long enough ago for everyone to have updated their scripts, so this
      patch removes them entirely.  While doing this, I also found one other
      leftover that wasn't removed by the earlier patch.  This is also
      removed here.
      
      2022-03-28  Tom Tromey  <tromey@adacore.com>
      
      	* configure.ac: Remove --with-mpfr-dir and --with-gmp-dir.
      	* configure: Rebuild.
      88252529
    • Joseph Myers's avatar
      Update gcc sv.po · 00635b6c
      Joseph Myers authored
      	* sv.po: Update.
      00635b6c
    • Jason Merrill's avatar
      c++: Fix __has_trivial_* docs [PR59426] · 83a21c99
      Jason Merrill authored
      These have been misdocumented since C++98 POD was split into C++11 trivial
      and standard-layout in r149721.
      
      	PR c++/59426
      
      gcc/ChangeLog:
      
      	* doc/extend.texi: Refer to __is_trivial instead of __is_pod.
      83a21c99
    • Jason Merrill's avatar
      c++: add comment · f8093854
      Jason Merrill authored
      gcc/cp/ChangeLog:
      
      	* pt.cc (determine_specialization): Add comment.
      f8093854
    • Patrick Palka's avatar
      c++: reject concept w/ multiple tparm lists [PR105067] · 23e57329
      Patrick Palka authored
      We weren't rejecting a concept declared with multiple template
      parameter lists.
      
      	PR c++/105067
      
      gcc/cp/ChangeLog:
      
      	* pt.cc (finish_concept_definition): Check that a concept is
      	declared with exactly one template parameter list.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/cpp2a/concepts-err4.C: New test.
      23e57329
    • Patrick Palka's avatar
      c++: constrained template friend matching ICE [PR105064] · ecb4882e
      Patrick Palka authored
      Here during declaration matching for the two constrained template
      friends, we crash from maybe_substitute_reqs_for because the second
      friend doesn't yet have DECL_TEMPLATE_INFO set (we're being called
      indirectly from push_template_decl).
      
      As far as I can tell, this situation happens only when declaring a
      constrained template friend within a non-template class (as in the
      testcase), in which case the substitution would be a no-op anyway.
      So this patch rearranges maybe_substitute_reqs_for to gracefully
      handle missing DECL_TEMPLATE_INFO by just skipping the substitution.
      
      	PR c++/105064
      
      gcc/cp/ChangeLog:
      
      	* constraint.cc (maybe_substitute_reqs_for): Don't assume
      	DECL_TEMPLATE_INFO is available.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/cpp2a/concepts-friend9.C: New test.
      ecb4882e
    • H.J. Lu's avatar
      x86: Also use Yw in *ssse3_pshufbv8qi3 clobber · cccbb776
      H.J. Lu authored
      	PR target/105068
      	* config/i386/sse.md (*ssse3_pshufbv8qi3): Also replace "Yv" with
      	"Yw" in clobber.
      cccbb776
    • Tom de Vries's avatar
      [nvptx] Improve help description of misa and mptx · 0127fb1b
      Tom de Vries authored
      Currently we have:
      ...
      $ gcc --target-help 2>&1 | egrep "misa|mptx"
        -misa=                      Specify the version of the ptx ISA to use.
        -mptx=                      Specify the version of the ptx version to use.
        Known PTX ISA versions (for use with the -misa= option):
        Known PTX versions (for use with the -mptx= option):
      ...
      
      As reported in PR104818, the "version of the ptx version" doesn't make much
      sense.
      
      Furthermore, the description of misa (and 'Known ISA versions') is misleading
      because it does not specify the version of the PTX ISA, but rather the PTX ISA
      target architecture.
      
      Fix this by printing instead:
      ...
      $ gcc --target-help 2>&1 | egrep "misa|mptx"
        -misa=                      Specify the PTX ISA target architecture to use.
        -mptx=                      Specify the PTX ISA version to use.
        Known PTX ISA target architectures (for use with the -misa= option):
        Known PTX ISA versions (for use with the -mptx= option):
      ...
      
      Tested on nvptx.
      
      gcc/ChangeLog:
      
      2022-03-28  Tom de Vries  <tdevries@suse.de>
      
      	PR target/104818
      	* config/nvptx/gen-opt.sh (ptx_isa): Improve help text.
      	* config/nvptx/nvptx-gen.opt: Regenerate.
      	* config/nvptx/nvptx.opt (misa, mptx, ptx_version): Improve help text.
      	* config/nvptx/t-nvptx (s-nvptx-gen-opt): Add missing dependency on
      	gen-opt.sh.
      0127fb1b
    • Jason Merrill's avatar
      c++: hash table ICE with variadic alias [PR105003] · fc50d9a2
      Jason Merrill authored
      For PR104008 we thought it might be enough to keep strip_typedefs from
      removing this alias template specialization, but this PR demonstrates that
      other parts of the compiler also need to know to consider it dependent.
      
      So, this patch changes complex_alias_template_p to no longer consider
      template parameters used when their only use appears in a pack expansion,
      unless they are the parameter packs being expanded.
      
      To do that I also needed to change it to use cp_walk_tree instead of
      for_each_template_parm.  It occurs to me that find_template_parameters
      should probably also use cp_walk_tree, but I'm not messing with that now.
      
      	PR c++/105003
      	PR c++/104008
      	PR c++/102869
      
      gcc/cp/ChangeLog:
      
      	* pt.cc (complex_alias_template_r): walk_tree callback,	replacing
      	uses_all_template_parms_r, complex_pack_expansion_r.
      	(complex_alias_template_p): Adjust.
      	* tree.cc (strip_typedefs): Revert r12-7710 change.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/cpp0x/variadic-alias6.C: New test.
      	* g++.dg/cpp0x/variadic-alias7.C: New test.
      fc50d9a2
    • David Malcolm's avatar
      gimple-fold: fix location of loads for memory ops [PR104308] · 87534276
      David Malcolm authored
      
      PR analyzer/104308 reports that when -Wanalyzer-use-of-uninitialized-value
      complains about certain memmove operations where the source is
      uninitialized, the diagnostic uses UNKNOWN_LOCATION:
      
      In function 'main':
      cc1: warning: use of uninitialized value '*(short unsigned int *)&s + 1' [CWE-457] [-Wanalyzer-use-of-uninitialized-value]
        'main': event 1
          |
          |pr104308.c:5:8:
          |    5 |   char s[5]; /* { dg-message "region created on stack here" } */
          |      |        ^
          |      |        |
          |      |        (1) region created on stack here
          |
        'main': event 2
          |
          |cc1:
          | (2): use of uninitialized value '*(short unsigned int *)&s + 1' here
          |
      
      The issue is that gimple_fold_builtin_memory_op converts a memmove to:
      
        _3 = MEM <unsigned short> [(char * {ref-all})_1];
        MEM <unsigned short> [(char * {ref-all})&s] = _3;
      
      but only sets the location of the 2nd stmt, not the 1st.
      
      Fixed thusly, giving:
      
      pr104308.c: In function 'main':
      pr104308.c:6:3: warning: use of uninitialized value '*(short unsigned int *)&s + 1' [CWE-457] [-Wanalyzer-use-of-uninitialized-value]
          6 |   memmove(s, s + 1, 2); /* { dg-warning "use of uninitialized value" } */
            |   ^~~~~~~~~~~~~~~~~~~~
        'main': events 1-2
          |
          |    5 |   char s[5]; /* { dg-message "region created on stack here" } */
          |      |        ^
          |      |        |
          |      |        (1) region created on stack here
          |    6 |   memmove(s, s + 1, 2); /* { dg-warning "use of uninitialized value" } */
          |      |   ~~~~~~~~~~~~~~~~~~~~
          |      |   |
          |      |   (2) use of uninitialized value '*(short unsigned int *)&s + 1' here
          |
      
      One side-effect of this change is a change in part of the output of
      gcc.dg/uninit-40.c from:
      
        uninit-40.c:47:3: warning: ‘*(long unsigned int *)(&u[1][0][0])’ is used uninitialized [-Wuninitialized]
           47 |   __builtin_memcpy (&v[1], &u[1], sizeof (V));
              |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        uninit-40.c:45:5: note: ‘*(long unsigned int *)(&u[1][0][0])’ was declared here
           45 |   V u[2], v[2];
              |     ^
      
      to:
      
        uninit-40.c:47:3: warning: ‘u’ is used uninitialized [-Wuninitialized]
           47 |   __builtin_memcpy (&v[1], &u[1], sizeof (V));
              |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        uninit-40.c:45:5: note: ‘u’ declared here
           45 |   V u[2], v[2];
              |     ^
      
      What's happening is that pass "early_uninit"(29)'s call to
      maybe_warn_operand is guarded by this condition:
        1051            else if (gimple_assign_load_p (stmt)
        1052                     && gimple_has_location (stmt))
      
      Before the patch, the stmt:
        _3 = MEM <unsigned long> [(char * {ref-all})&u + 8B];
      has no location, and so early_uninit skips this operand at line
      1052 above.  Later, pass "uninit"(217) tests the var_decl "u$8", and
      emits a warning for it.
      
      With the patch, the stmt has a location, and so early_uninit emits a
      warning for "u" and sets a NW_UNINIT warning suppression at that
      location.  Later, pass "uninit"(217)'s test of "u$8" is rejected
      due to that per-location suppression of uninit warnings, from the
      earlier warning.
      
      gcc/ChangeLog:
      	PR analyzer/104308
      	* gimple-fold.cc (gimple_fold_builtin_memory_op): When optimizing
      	to loads then stores, set the location of the new load stmt.
      
      gcc/testsuite/ChangeLog:
      	PR analyzer/104308
      	* gcc.dg/analyzer/pr104308.c: New test.
      	* gcc.dg/uninit-40.c (foo): Update expression in expected message.
      
      Signed-off-by: default avatarDavid Malcolm <dmalcolm@redhat.com>
      87534276
    • Jason Merrill's avatar
      c++: low -faligned-new [PR102071] · 19b87a06
      Jason Merrill authored
      This test ICEd after the constexpr new patch (r10-3661) because alloc_call
      had a NOP_EXPR around it; fixed by moving the NOP_EXPR to alloc_expr.  And
      the PR pointed out that the size_t cookie might need more alignment, so I
      fix that as well.
      
      	PR c++/102071
      
      gcc/cp/ChangeLog:
      
      	* init.cc (build_new_1): Include cookie in alignment.  Omit
      	constexpr wrapper from alloc_call.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/cpp1z/aligned-new9.C: New test.
      19b87a06
    • Jason Merrill's avatar
      c++: visibility of local extern [PR103291] · 8796eb27
      Jason Merrill authored
      When setting up the hidden namespace-scope decl for a local extern, we also
      need to set its visibility.
      
      	PR c++/103291
      
      gcc/cp/ChangeLog:
      
      	* name-lookup.cc (push_local_extern_decl_alias): Call
      	determine_visibility.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/ext/visibility/visibility-local-extern1.C: New test.
      8796eb27
    • Jason Merrill's avatar
      c++: CTAD and member alias template [PR102123] · b854ce13
      Jason Merrill authored
      When building a deduction guide from the Test constructor, we need to
      rewrite the use of _dummy into a dependent reference, i.e. Test<T>::template
      _dummy.  We were using SCOPE_REF for both type and non-type templates; we
      need to use UNBOUND_CLASS_TEMPLATE for type templates.
      
      	PR c++/102123
      
      gcc/cp/ChangeLog:
      
      	* pt.cc (tsubst_copy): Use make_unbound_class_template for rewriting
      	a type template reference.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/cpp1z/class-deduction110.C: New test.
      b854ce13
    • Jason Merrill's avatar
      c++: member alias declaration [PR103968] · c7361eb3
      Jason Merrill authored
      Here, we were wrongly thinking that (const Options&)Widget<T>::c_options is
      not value-dependent because neither the type nor the (value of) c_options
      are dependent, but since we're binding it to a reference we also need to
      consider that it has a value-dependent address.
      
      	PR c++/103968
      
      gcc/cp/ChangeLog:
      
      	* pt.cc (value_dependent_expression_p): Check
      	has_value_dependent_address for conversion to reference.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/cpp0x/alias-decl-mem1.C: New test.
      c7361eb3
    • Jason Merrill's avatar
      c++: CTAD and member function references [PR103943] · 8bc5cdaa
      Jason Merrill authored
      More quirks of rewriting member references to dependent references for
      CTAD.  A reference to a member of dependent scope is definitely dependent.
      And since r11-7044, tsubst_baselink builds a SCOPE_REF, so
      tsubst_qualified_id should just use it.
      
      	PR c++/103943
      
      gcc/cp/ChangeLog:
      
      	* pt.cc (tsubst_qualified_id): Handle getting SCOPE_REF from
      	tsubst_baselink.
      	(instantiation_dependent_scope_ref_p): Check dependent_scope_p.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/cpp1z/class-deduction109.C: New test.
      8bc5cdaa
    • Jason Merrill's avatar
      c++: missing aggregate base ctor [PR102045] · 72bdfcb8
      Jason Merrill authored
      When make_base_init_ok changes a call to a complete constructor into a call
      to a base constructor, we were never marking the base ctor as used, so it
      didn't get emitted.
      
      	PR c++/102045
      
      gcc/cp/ChangeLog:
      
      	* call.cc (make_base_init_ok): Call make_used.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/cpp1z/aggr-base12.C: New test.
      72bdfcb8
    • Jason Merrill's avatar
      c++: mangling union{1} in template [PR104847] · 71e1db54
      Jason Merrill authored
      My implementation of union non-type template arguments in r11-2016 broke
      braced casts of union type, because they are still in syntactic (undigested)
      form.
      
      	PR c++/104847
      
      gcc/cp/ChangeLog:
      
      	* mangle.cc (write_expression): Don't write a union designator when
      	undigested.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/abi/mangle-union1.C: New test.
      71e1db54
    • Jason Merrill's avatar
      c++: ICE with alias in pack expansion [PR103769] · 07be8f8d
      Jason Merrill authored
      This was breaking because when we stripped the 't' typedef in s<t<Args>...>
      to be s<Args...>, the TYPE_MAIN_VARIANT of "Args..." was still
      "t<Args>...", because type pack expansions are treated as types.  Fixed by
      using the right function to copy a "type".
      
      	PR c++/99445
      	PR c++/103769
      
      gcc/cp/ChangeLog:
      
      	* tree.cc (strip_typedefs): Use build_distinct_type_copy.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/cpp0x/variadic-alias5.C: New test.
      07be8f8d
    • Tom de Vries's avatar
      [libgomp, testsuite] Fix hardcoded libexec in plugin/configfrag.ac · 52f42dce
      Tom de Vries authored
      When building an nvptx offloading configuration on openSUSE Leap 15.3, the
      site script /usr/share/site/x86_64-unknown-linux-gnu is activated, setting
      libexecdir to ${exec_prefix}/lib rather than ${exec_prefix}/libexec:
      ...
      | # If user did not specify libexecdir, set the correct target:
      | # Nor FHS nor openSUSE allow prefix/libexec. Let's default to prefix/lib.
      |
      | if test "$libexecdir" = '${exec_prefix}/libexec' ; then
      |       libexecdir='${exec_prefix}/lib'
      | fi
      ...
      
      However, in libgomp libgomp/plugin/configfrag.ac we hardcode libexec:
      ...
          # Configure additional search paths.
          if test x"$tgt_dir" != x; then
            offload_additional_options="$offload_additional_options \
              -B$tgt_dir/libexec/gcc/\$(target_alias)/\$(gcc_version) \
      	-B$tgt_dir/bin"
      ...
      
      Fix this by using /$(libexecdir:\$(exec_prefix)/%=%)/ instead of /libexec/.
      
      Tested on x86_64-linux with nvptx accelerator.
      
      libgomp/ChangeLog:
      
      2022-03-28  Tom de Vries  <tdevries@suse.de>
      
      	* plugin/configfrag.ac: Use /$(libexecdir:\$(exec_prefix)/%=%)/
      	instead of /libexec/.
      	* configure: Regenerate.
      52f42dce
    • Jonathan Wakely's avatar
      libstdc++: Fix typos in comments in tests · 567eb37c
      Jonathan Wakely authored
      libstdc++-v3/ChangeLog:
      
      	* testsuite/20_util/optional/monadic/and_then.cc: Fix typo.
      	* testsuite/20_util/optional/monadic/transform.cc: Likewise.
      	* testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise.
      	* testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise.
      	* testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
      	* testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise.
      	* testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
      	* testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.
      567eb37c
Loading