Skip to content
Snippets Groups Projects
  1. May 03, 2022
    • Christophe Lyon's avatar
      dfp.m4: Add missing license header · da6d834b
      Christophe Lyon authored
      It seems the license header was omitted when dfp.m4 was originally
      contributed in 2010 (commit 3c39bca6, r0-102573 or svn r163815.
      
      This copies the license from libdecnumber/configure.ac since dfp.m4
      was originally extracted from that file.
      
      2022-04-29  Christophe Lyon  <christophe.lyon@arm.com>
      
      	config/
      	* dfp.m4: Add license header.
      da6d834b
    • Richard Biener's avatar
      middle-end/105083 - check prerequesites in scev_initialize · 7bb6fa5a
      Richard Biener authored
      2022-05-03  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/105083
      	* tree-scalar-evolution.cc (scev_initialize): Verify we
      	have appropriate loop state.
      	* tree-ssa-dce.cc (perform_tree_ssa_dce): Re-order SCEV and
      	loop init and finalization.
      7bb6fa5a
    • Richard Biener's avatar
      middle-end/105461 - opts processing of -fvar-tracking · 6b4cc784
      Richard Biener authored
      The flag_var_tracking reset in finish_options doesn't match the
      condition in process_options, in particular we fail to reset it
      when the option was specified on the command line.  The following
      fixes this and also alters the debug info level guard to match
      the one in process_options.
      
      2022-05-03  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/105461
      	* opts.cc (finish_options): Match the condition to
      	disable flag_var_tracking to that of process_options.
      
      	* gcc.dg/pr105461.c: New testcase.
      6b4cc784
    • Richard Biener's avatar
      Fixup OPTION_SET_P usage in finish_options · 99f55024
      Richard Biener authored
      When some code was moved from process_options to finish_options,
      uses of OPTION_SET_P were not replaced with references to the
      opts_set option set.  The following fixes this.
      
      2022-05-03  Richard Biener  <rguenther@suse.de>
      
      	* opts.cc: #undef OPTIONS_SET_P.
      	(finish_options): Use opts_set instead of OPTIONS_SET_P.
      99f55024
    • Richard Biener's avatar
      tree-optimization/105394 - vector lowering of compares · dfae0c5a
      Richard Biener authored
      The following fixes missing handling of non-integer mode but
      masked (SVE or MVE) compares in vector lowering by using the
      appropriate mask element width to extract the components and
      adjust the index.
      
      2022-04-29  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/105394
      	* tree-vect-generic.cc (expand_vector_condition): Adjust
      	comp_width for non-integer mode masks as well.
      dfae0c5a
    • Marcel Vollweiler's avatar
      OpenMP, libgomp: Add new runtime routine omp_get_mapped_ptr. · 941cdc8b
      Marcel Vollweiler authored
      This patch adds the OpenMP runtime routine "omp_get_mapped_ptr" which was
      introduced in OpenMP 5.1.
      
      gcc/ChangeLog:
      
      	* omp-low.cc (omp_runtime_api_call): Added get_mapped_ptr to
      	omp_runtime_apis array.
      
      libgomp/ChangeLog:
      
      	* libgomp.map: Added omp_get_mapped_ptr.
      	* libgomp.texi: Tagged omp_get_mapped_ptr as supported.
      	* omp.h.in: Added omp_get_mapped_ptr.
      	* omp_lib.f90.in: Added interface for omp_get_mapped_ptr.
      	* omp_lib.h.in: Likewise.
      	* target.c (omp_get_mapped_ptr): Added implementation of
      	omp_get_mapped_ptr.
      	* testsuite/libgomp.c-c++-common/get-mapped-ptr-1.c: New test.
      	* testsuite/libgomp.c-c++-common/get-mapped-ptr-2.c: New test.
      	* testsuite/libgomp.c-c++-common/get-mapped-ptr-3.c: New test.
      	* testsuite/libgomp.c-c++-common/get-mapped-ptr-4.c: New test.
      	* testsuite/libgomp.fortran/get-mapped-ptr-1.f90: New test.
      	* testsuite/libgomp.fortran/get-mapped-ptr-2.f90: New test.
      	* testsuite/libgomp.fortran/get-mapped-ptr-3.f90: New test.
      	* testsuite/libgomp.fortran/get-mapped-ptr-4.f90: New test.
      941cdc8b
    • Alexandre Oliva's avatar
      testsuite: vect: update unaligned message · 404edfce
      Alexandre Oliva authored
      gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c covers ppc variants
      that accept and reject misaligned accesses.  The message that it
      expects for rejection was removed in the gcc-11 development cycle by
      commit r11-1969.  The patch adjusted multiple tests to use the message
      introduced in r11-1945, but missed this one.
      
      
      for  gcc/testsuite/ChangeLog
      
      	* gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c: Update
      	the expected message for the case in which unaligned accesses
      	are not allowed.
      404edfce
    • GCC Administrator's avatar
      Daily bump. · 6259d8aa
      GCC Administrator authored
      6259d8aa
  2. May 02, 2022
    • Jason Merrill's avatar
      c++: improve template-id location · 6f78c52d
      Jason Merrill authored
      On PR102629 I noticed that we were giving the entire lambda as the location
      for this template-id.
      
      gcc/cp/ChangeLog:
      
      	* pt.cc (tsubst_copy_and_build) [TEMPLATE_ID_EXPR]: Copy location.
      	(do_auto_deduction): Use expr location.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/cpp2a/lambda-pack-init7.C: Check column number.
      6f78c52d
    • Jason Merrill's avatar
      c++: also note name used in enclosing class · dcb4bd07
      Jason Merrill authored
      While looking at PR96645 I noticed that while we were diagnosing names
      changing meaning in the full class context, we weren't doing this for
      lookups in nested class bodies.
      
      Note that this breaks current range-v3; I've submitted a pull request to fix
      its violation of the rule.
      
      gcc/cp/ChangeLog:
      
      	* class.cc (maybe_note_name_used_in_class): Note in all enclosing
      	classes.  Remember location of use.
      	(note_name_declared_in_class): Adjust.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/lookup/name-clash13.C: New test.
      	* g++.dg/lookup/name-clash14.C: New test.
      	* g++.dg/lookup/name-clash15.C: New test.
      	* g++.dg/lookup/name-clash16.C: New test.
      dcb4bd07
    • H.J. Lu's avatar
      x86: Add missing .note.GNU-stack to assembly source · 7e1f30d7
      H.J. Lu authored
      Add .note.GNU-stack assembly source to avoid linker warning:
      
      ld: warning: /tmp/ccPZSZ7Z.o: missing .note.GNU-stack section implies executable stack
      ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
      FAIL: gcc.target/i386/iamcu/test_3_element_struct_and_unions.c compilation,  -O0
      
      	PR testsuite/105433
      	* gcc.target/i386/iamcu/asm-support.S: Add .note.GNU-stack.
      	* gcc.target/x86_64/abi/asm-support.S: Likewise.
      	* gcc.target/x86_64/abi/avx/asm-support.S: Likewise.
      	* gcc.target/x86_64/abi/avx512f/asm-support.S: Likewise.
      	* gcc.target/x86_64/abi/avx512fp16/asm-support.S: Likewise.
      	* gcc.target/x86_64/abi/avx512fp16/m256h/asm-support.S: Likewise.
      	* gcc.target/x86_64/abi/avx512fp16/m512h/asm-support.S: Likewise.
      	* gcc.target/x86_64/abi/ms-sysv/do-test.S: Likewise.
      7e1f30d7
    • Sandra Loosemore's avatar
      Fortran: Add location info to OpenMP tree nodes · 198bd0d5
      Sandra Loosemore authored
      gcc/fortran/
      	* trans-openmp.cc (gfc_trans_omp_critical): Set location on OMP
      	tree node.
      	(gfc_trans_omp_do): Likewise.
      	(gfc_trans_omp_masked): Likewise.
      	(gfc_trans_omp_do_simd): Likewise.
      	(gfc_trans_omp_scope): Likewise.
      	(gfc_trans_omp_taskgroup): Likewise.
      	(gfc_trans_omp_taskwait): Likewise.
      	(gfc_trans_omp_distribute): Likewise.
      	(gfc_trans_omp_taskloop): Likewise.
      	(gfc_trans_omp_master_masked_taskloop): Likewise.
      198bd0d5
    • Marek Polacek's avatar
      c++: uses_template_parms cleanups · 05cd2d3f
      Marek Polacek authored
      gcc/cp/ChangeLog:
      
      	* cp-tree.h (uses_template_parms): Adjust declaration.
      	* pt.cc (uses_template_parms): Return bool.  Use a RAII sentinel.
      05cd2d3f
    • Richard Biener's avatar
      Assume a call is expensive when it mismatches · 1cb22049
      Richard Biener authored
      This makes sure to not consider calls to builtin decls with
      mismatching arguments as inexpensive.
      
      2022-04-13  Richard Biener  <rguenther@suse.de>
      
      	* tree-scalar-evolution.cc (expression_expensive_p):
      	Never consider mismatched calls as cheap.
      1cb22049
    • Richard Biener's avatar
      tree-optimization/104240 - SLP discovery with swapped comparisons · 41e3db05
      Richard Biener authored
      The following extends SLP discovery to handle swapped operands
      in comparisons.
      
      2022-05-02  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/104240
      	* tree-vect-slp.cc (op1_op0_map): New.
      	(vect_get_operand_map): Handle compares.
      	(vect_build_slp_tree_1): Support swapped operands for
      	tcc_comparison.
      
      	* gcc.dg/vect/bb-slp-pr104240.c: New testcase.
      41e3db05
    • Patrick Palka's avatar
      libstdc++: Don't use std::tolower in <charconv> [PR103911] · 86d821dd
      Patrick Palka authored
      As with std::isdigit in r12-6281-gc83ecfbe74a5cf, we shouldn't be using
      std::tolower in <charconv> either.
      
      	PR libstdc++/103911
      
      libstdc++-v3/ChangeLog:
      
      	* src/c++17/floating_from_chars.cc (find_end_of_float): Accept
      	two delimeters for the exponent part in the form of a possibly
      	NULL string of length two.  Don't use std::tolower.
      	(pattern): Adjust calls to find_end_of_float accordingly.
      86d821dd
    • Patrick Palka's avatar
      libstdc++: case-sensitivity in hexfloat std::from_chars [PR105441] · 576f975c
      Patrick Palka authored
      The hexfloat parser for binary32/64 added in r12-6645-gcc3bf3404e4b1c
      overlooked that the exponent part can also begin with an uppercase 'P'.
      
      	PR libstdc++/105441
      
      libstdc++-v3/ChangeLog:
      
      	* src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
      	Also accept 'P' as the start of the exponent.
      	* testsuite/20_util/from_chars/7.cc: Add corresponding testcase.
      576f975c
    • Jakub Jelinek's avatar
      expand: Throw away non-external decls without varpool nodes [PR105415] · 02f03c5c
      Jakub Jelinek authored
      The following testcase fails -fcompare-debug on aarch64-linux.  The problem
      is that for the n variable we create a varpool node, then remove it again
      because the var isn't really used, but it keeps being referenced in debug
      stmts/insns with -g.  Later during sched1 pass we ask whether the n var
      can be modified through some store to an anchored variable and with -g
      we create a new varpool node for it again just so that we can find its
      ultimate alias target.  Even later on we create some cgraph node for the
      loop parallelization, but as there has been an extra varpool node creation
      in between, we get higher node->order with -g than without.
      
      The patch fixes that by throwing variables without varpool nodes away
      during expansion time, they are very unlikely to actually end up with
      useful debug info anyway.
      
      I've bootstrapped/regtested the following on x86_64-linux and i686-linux,
      then bootstrapped with the patch reverted, reapplied the patch and did make
      cc1plus in stage3.  The debug section sizes are identical, .debug_info and
      .debug_loc is identical too, so I think we don't lose any debug info through
      it.
      So at least on cc1plus it makes no difference.
      
      2022-05-02  Jakub Jelinek  <jakub@redhat.com>
      
      	PR debug/105415
      	* cfgexpand.cc (expand_debug_expr): Don't make_decl_rtl_for_debug
      	if there is no symtab node for the VAR_DECL.
      
      	* gcc.dg/pr105415.c: New test.
      02f03c5c
    • Sebastian Huber's avatar
      gcov: Fix first time gcov info dump · 880a9845
      Sebastian Huber authored
      This patch fixes an issue introduced by commit
      ef9a53fe:
      
      gcc --coverage main.c && ./a.out
      libgcov profiling error:a-main.gcda:Error writing
      
      gcc/ChangeLog:
      
      	* gcov-io.cc (gcov_rewrite):  Clear the file error status.
      880a9845
    • Richard Biener's avatar
      tree-optimization/105437 - BB vect with extern defs of throwing stmts · 3a3eda00
      Richard Biener authored
      We have to watch out for vectorized stmt insert locations if the
      def from the last stmt alters control flow.  We constrain region
      building so we know the def is outside of the current region
      and thus we can insert at the region start point.
      
      2022-05-02  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/105437
      	* tree-vect-slp.cc (vect_schedule_slp_node): Handle the
      	case where last_stmt alters control flow.
      
      	* g++.dg/vect/pr105437.cc: New testcase.
      3a3eda00
    • Richard Biener's avatar
      Use CASE_CONVERT in a few more cases · 82a344f2
      Richard Biener authored
      This uses CASE_CONVERT more which eases eventual removal of NOP_EXPR.
      
      2022-04-29  Richard Biener  <rguenther@suse.de>
      
      gcc/cp/
      	* constexpr.cc (fold_simple_1): Use CASE_CONVERT.
      	* cp-gimplify.cc (cp_fold): Likewise.
      	* pt.cc (tsubst_copy): Likewise.
      
      gcc/
      	* dojump.cc (do_jump): Use CASE_CONVERT.
      	* tree-ssa-dom.cc (edge_info::derive_equivalences): Likewise.
      82a344f2
    • Jakub Jelinek's avatar
      system.h: Include <initializer_list> in system.h unconditionally · 4a0e89b1
      Jakub Jelinek authored
      On Sun, May 01, 2022 at 07:06:53PM +0100, Jonathan Wakely wrote:
      > > >> the reason is that "gcc/analyzer/region-model.cc” uses initializer_lists, and it seems that <initializer_list>
      > > >> is not transitively included by any used headers for _LIBCPP_VERSION < 4000.  I fixed that locally by
      > > >> adding initializer_list into system.h (and adding INCLUDE_INITIALIZER_LIST to the top of gcc/analyzer/region-model.cc)
      > > >> - with that change those versions do bootstrap and test OK***
      > > >
      > > > From what I can see, with libstdc++ it works because <utility> which is
      > > > included by system.h includes <initializer_list>.
      > > > If I rename initializer_list in analyzer/region-model.ii to initializer_listx, I
      > > > also get:
      > > > ../../gcc/analyzer/region-model.cc: In function ‘void ana::selftest::test_binop_svalue_folding()’:
      > > > ../../gcc/analyzer/region-model.cc:4966:48: error: deducing from brace-enclosed initializer list requires ‘#include <initializer_list>’
      > > > 4508 |
      > > >  +++ |+#include <initializer_list>
      > > > 4509 | static void
      > > > ......
      > > > 4966 |     for (auto op : {BIT_IOR_EXPR, TRUTH_OR_EXPR})
      > > >      |                                                ^
      > > > ../../gcc/analyzer/region-model.cc:4978:49: error: deducing from brace-enclosed initializer list requires ‘#include <initializer_list>’
      > > > 4978 |     for (auto op : {BIT_AND_EXPR, TRUTH_AND_EXPR})
      > > >      |                                                 ^
      > > >
      > > > I think we have 2 options, one is do what you wrote above,
      > > > INCLUDE_INITIALIZER_LIST defined before system.h to get #include <initializer_list>.
      > > > The other option is just to include that unconditionally, it is a very small
      > > > header.  For libstdc++ it will make no difference as it is included anyway
      > > > and the header is really small there, libc++ includes <cstddef> which isn't
      > > > normally included and system.h includes <stddef.h> instead.
      > >
      > > I’d say unconditionally would be OK. I suppose the chance that any host
      > > C++ is good enough to build GCC as-is but fails to provide
      > > <initializer_list> is zero?
      > >
      >
      > Yes, definitely.
      >
      > > I’d be OK to do this change without a new RC even.
      
      2022-05-02  Jakub Jelinek  <jakub@redhat.com>
      
      	* system.h: Include initializer_list.
      4a0e89b1
    • Martin Liska's avatar
      libgcov: add ATTRIBUTE_UNUSED for dump_string · 28cfea98
      Martin Liska authored
      Mitigates the following clang warning:
      libgcc/libgcov-driver.c:416:1: warning: unused function 'dump_string' [-Wunused-function]
      
      libgcc/ChangeLog:
      
      	* libgcov-driver.c: Add ATTRIBUTE_UNUSED.
      28cfea98
    • GCC Administrator's avatar
      Daily bump. · bee8b860
      GCC Administrator authored
      bee8b860
  3. May 01, 2022
    • Segher Boessenkool's avatar
      rs6000: "Y" is DS-form, not DQ-form · 69daa924
      Segher Boessenkool authored
      2022-05-01  Segher Boessenkool  <segher@kernel.crashing.org>
      
      	* config/rs6000/constraints.md (Y constraint): Fix comment.
      69daa924
    • Aldy Hernandez's avatar
      Denormalize VR_VARYING to VR_RANGE before passing it to set_range_info_raw. · 75bbc3da
      Aldy Hernandez authored
      We are ICEing in set_range_info_raw because value_range_kind cannot be
      VR_VARYING, since SSA_NAME_RANGE_TYPE can only hold VR_RANGE /
      VR_ANTI_RANGE.  Most of the time setting a VR_VARYING as a global
      range makes no sense.  However, we can have a range spanning the
      entire domain (VR_RANGE of [MIN,MAX] which is essentially a
      VR_VARYING), if the nonzero bits are set.
      
      This was working before because set_range_info_raw allows setting
      VR_RANGE of [MIN, MAX].  However, when going through an irange, we
      normalize this to a VR_VARYING, thus causing the ICE.  It's
      interesting that other calls to set_range_info with an irange haven't
      triggered this.
      
      One solution would be to just ignore VR_VARYING and bail, since
      set_range_info* is really an update of the current range semantic
      wise.  After all, we keep the nonzero bits which provide additional
      info.  But this would be a change in behavior, so not suitable until
      after GCC 12 is released.  So in order to keep with current behavior
      we can just denormalize the varying to VR_RANGE.
      
      Tested on x86-64 Linux.
      
      	    PR tree-optimization/105432
      
      gcc/ChangeLog:
      
      	* tree-ssanames.cc (set_range_info): Denormalize VR_VARYING to
      	VR_RANGE before passing a piecewise range to set_range_info_raw.
      75bbc3da
    • GCC Administrator's avatar
      Daily bump. · 95874f95
      GCC Administrator authored
      95874f95
  4. Apr 30, 2022
    • Patrick Palka's avatar
      gengtype: remove "tree_exp" special attribute · 559bba46
      Patrick Palka authored
      The function comment for adjust_field_tree_exp says this attribute is
      for handling expression trees whose operands may contain pointers to RTL
      instead of to trees.  But ever since r0-59671-gac45df5dba5804, which
      fixed/removed the last two tree codes for which this was possible
      (WITH_CLEANUP_EXPR and GOTO_SUBROUTINE_EXPR), this special attribute is
      mostly a no-op.
      
      This patch removes it and instead just annotates struct tree_exp
      with the "length" attribute directly.  Not sure it makes a difference,
      but I use %h instead of %0 in the attribute string to be consistent with
      the other uses of the "length" attribute within tree-core.h.
      
      This changes the code generated for TS_EXP handling in gt-cp-tree.h from:
      
        case TS_EXP:
          gt_ggc_m_9tree_node ((*x).generic.exp.typed.type);
          switch ((int) (TREE_CODE ((tree) &(*x))))
            {
            default:
      	{
      	  size_t i3;
      	  size_t l3 = (size_t)(TREE_OPERAND_LENGTH ((tree) &(*x)));
      	  for (i3 = 0; i3 != l3; i3++) {
      	    gt_ggc_m_9tree_node ((*x).generic.exp.operands[i3]);
      	  }
      	}
      	break;
            }
          break;
      
      to:
      
        case TS_EXP:
          {
            size_t l3 = (size_t)(TREE_OPERAND_LENGTH ((tree)&((*x).generic.exp)));
            gt_ggc_m_9tree_node ((*x).generic.exp.typed.type);
            {
      	size_t i3;
      	for (i3 = 0; i3 != l3; i3++) {
      	  gt_ggc_m_9tree_node ((*x).generic.exp.operands[i3]);
      	}
            }
          }
      
      which seems equivalent and simpler.
      
      gcc/ChangeLog:
      
      	* gengtype.cc (adjust_field_tree_exp): Remove.
      	(adjust_field_type): Don't handle the "tree_exp" special attribute.
      	* tree-core.h (struct tree_exp): Remove "special" and "desc"
      	attributes.  Add "length" attribute.
      559bba46
    • Jason Merrill's avatar
      c-family: attribute ((aligned, mode)) [PR100545] · 0aa277bf
      Jason Merrill authored
      The problem here was that handle_mode_attribute clobbered the changes of any
      previous attribute, only copying type qualifiers to the new type.  And
      common_handle_aligned_attribute had previously set up the typedef, so when
      we later called set_underlying_type it saw DECL_ORIGINAL_TYPE set and just
      returned, even though handle_mode_attribute had messed up the TREE_TYPE.
      So, let's fix handle_mode_attribute to copy attributes, alignment, and
      typedefness to the new type.
      
      	PR c/100545
      
      gcc/c-family/ChangeLog:
      
      	* c-attribs.cc (handle_mode_attribute): Copy attributes, aligned,
      	and typedef.
      	* c-common.cc (set_underlying_type): Add assert.
      
      gcc/testsuite/ChangeLog:
      
      	* c-c++-common/attr-mode-1.c: New test.
      	* c-c++-common/attr-mode-2.c: New test.
      0aa277bf
    • GCC Administrator's avatar
      Daily bump. · 66d1e440
      GCC Administrator authored
      66d1e440
  5. Apr 29, 2022
    • Jason Merrill's avatar
      c++: reorganize friend template matching [PR91618] · e9d2adc1
      Jason Merrill authored
      The the different calling of check_explicit_specialization for class and
      namespace scope friends bothered me, so this patch combines them.
      
      	PR c++/91618
      	PR c++/96604
      
      gcc/cp/ChangeLog:
      
      	* friend.cc (do_friend): Call check_explicit_specialization here.
      	* decl.cc (grokdeclarator): Not here.
      	* decl2.cc (check_classfn): Or here.
      e9d2adc1
    • Jason Merrill's avatar
      c++: alias CTAD and member alias templates [PR104470] · 4259c229
      Jason Merrill authored
      In this testcase, we were trying to substitute into
      variant<Foo<T>>::__accepted_type, but failed to look it up because
      variant<Foo<T>> doesn't exist.  In other cases we already rewrite such
      things into a dependent reference; we need to do that for alias templates as
      well.
      
      This caused some testsuite regressions on alias uses outside of deduction
      guides, so I've made all of this rewriting conditional on a new tf_dguide
      tsubst flag.
      
      	PR c++/104470
      
      gcc/cp/ChangeLog:
      
      	* cp-tree.h (enum tsubst_flags): Add tf_dguide.
      	* pt.cc (tsubst_aggr_type): Check it.
      	(tsubst_baselink, tsubst_copy): Check it.
      	(maybe_dependent_member_ref): Check it.
      	(instantiate_alias_template): Handle it.
      	(build_deduction_guide): Set it.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/cpp2a/explicit11.C: Second example also ill-formed.
      	* g++.dg/cpp2a/class-deduction-alias12.C: New test.
      4259c229
    • Jason Merrill's avatar
      c++: lambda capture dependent type [PR82980] · 53e72521
      Jason Merrill authored
      The stage 4 patch limited direct propagation of dependent type to capture
      field/proxy to the "current instantiation", but many more types should be
      suitable as well.
      
      	PR c++/82980
      
      gcc/cp/ChangeLog:
      
      	* lambda.cc (type_deducible_expression_p): Allow more types.
      53e72521
    • Jason Merrill's avatar
      c++: tidy auto deduction · 8189838d
      Jason Merrill authored
      In r185768 I added the !FUNCTION_DECL check, but we might as well just check
      for variable; nothing else should take this path, and asserting as much
      doesn't regress anything.
      
      gcc/cp/ChangeLog:
      
      	* decl.cc (cp_finish_decl): Only consider auto for vars.
      8189838d
    • Marek Polacek's avatar
      c++: pedwarn for empty unnamed enum in decl [PR67048] · fd0d3e91
      Marek Polacek authored
      [dcl.dcl]/5 says that
      
        enum { };
      
      is ill-formed, and since r197742 we issue a pedwarn.  However, the
      pedwarn also fires for
      
         enum { } x;
      
      which is well-formed.  So only warn when {} is followed by a ;.  This
      should be correct since you can't have "enum {}, <whatever>" -- that
      produces "expected unqualified-id before ',' token".
      
      	PR c++/67048
      
      gcc/cp/ChangeLog:
      
      	* parser.cc (cp_parser_enum_specifier): Warn about empty unnamed enum
      	only when it's followed by a semicolon.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/cpp0x/enum42.C: New test.
      fd0d3e91
    • Jason Merrill's avatar
      c++: check completeness after auto deduction [PR80351] · 8d0fcf13
      Jason Merrill authored
      Normally we check for incomplete type in start_decl, but that obviously
      doesn't work for auto variables. Thanks to Pokechu22 for the analysis and
      testcases:
      
      "When cp_finish_decl calls cp_apply_type_quals_to_decl on a const auto or
      constexpr auto variable, the type might not be complete the first time
      (this happened when auto deduces to an initializer_list).
      cp_apply_type_quals_to_decl removes the const qualifier if the type is
      not complete, which is appropriate for grokdeclarator, on the assumption
      that the type will be complete when called by cp_finish_decl."
      
      	PR c++/80351
      
      gcc/cp/ChangeLog:
      
      	* decl.cc (cp_finish_decl): Check completeness of deduced type.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/cpp0x/constexpr-77482.C: Adjust message.
      	* g++.dg/cpp1y/auto-fn27.C: Likewise.
      	* g++.dg/cpp1y/lambda-generic-variadic22.C: Likewise.
      	* g++.dg/cpp1z/decomp54.C: Likewise.
      	* g++.dg/cpp0x/initlist-const1.C: New test.
      	* g++.dg/warn/Wunused-var-37.C: New test.
      	* g++.dg/warn/Wunused-var-38.C: New test.
      	* g++.dg/warn/Wunused-var-39.C: New test.
      8d0fcf13
    • Thomas Koenig's avatar
      Fix exchanged period and letter in gfortan.texi. · 4a8b45e8
      Thomas Koenig authored
      gcc/fortran/ChangeLog:
      
      	* gfortran.texi: Fix exchanged period and letter.
      4a8b45e8
    • Martin Jambor's avatar
      ipa: Release body of clone_of when removing its last clone (PR 100413) · 27ee75db
      Martin Jambor authored
      In the PR, the verifier complains that we did not manage to remove the
      body of a node and it is right.  The node is kept for materialization
      of two clones but after one is materialized, the other one is removed
      as unneeded (as a part of delete_unreachable_blocks_update_callgraph).
      The problem is that the node removal does not check for this situation
      and can leave the clone_of node there with a body attached to it even
      though there is no use for it any more.  This patch does checks for it
      and handles the situation in a simlar way that
      cgraph_node::materialize_clone does it, except that it also has to be
      careful that the removed node itself does not have any clones, which
      would still need the clone_of's body.  Failing to do that results in a
      bootstrap failure.
      
      gcc/ChangeLog:
      
      2022-04-27  Martin Jambor  <mjambor@suse.cz>
      
      	PR ipa/100413
      	* cgraph.cc (cgraph_node::remove): Release body of the node this
      	is clone_of if appropriate.
      
      gcc/testsuite/ChangeLog:
      
      2022-04-27  Martin Jambor  <mjambor@suse.cz>
      
      	PR ipa/100413
      	* g++.dg/ipa/pr100413.C: New test.
      Unverified
      27ee75db
    • Andre Vieira's avatar
      aarch64: Add option to pr105219 testcase · 210cda73
      Andre Vieira authored
      Add option that originally caused testcase to fail for aarch64.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/105219
      	* gcc.dg/vect/pr105219.c: Add aarch64 target option.
      210cda73
    • Marek Polacek's avatar
      c++: Add fixed test [PR83596] · 1c798ab7
      Marek Polacek authored
      This was fixed by r269078.
      
      	PR c++/83596
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/cpp1z/nontype5.C: New test.
      1c798ab7
Loading