1. 29 Nov, 2019 11 commits
    • Fix testcase - was missing -fopenacc · 18279486
              PR ipa/84963
              * gfortran.dg/goacc/pr84963.f90: Use dg-additional-options not
              dg-options as otherwise -fopenacc is not used.
      
      From-SVN: r278836
      Tobias Burnus committed
    • profile-count.c (profile_count::to_cgraph_frequency, [...]): Check for compaibility of counts. · db51f624
      
      	* profile-count.c (profile_count::to_cgraph_frequency,
      	profile_count::to_sreal_scale): Check for compaibility of counts.
      	* profile-count.h (compatible_p): Make public; add checking for
      	global0 versus global types.
      	* cgraph.c (cgraph_node::verify_node): Verify count compatibility.
      
      From-SVN: r278835
      Jan Hubicka committed
    • Testsuite: Turn off vect-epilogue-nomask for slp-rect-3 · 60178a32
      Without epiloque no mask it would only try HI modes, but thanks to the
      epiloques nomask It tries QI mode as well which succeeds.  The xfail
      then generates an xpass since the condition on it checks for HI to SI
      and not QI.
      
      So I disabled the epiloque mask since it seems to violate the conditions
      the test actually wanted to test for.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.dg/vect/slp-reduc-3.c: Turn off epilogue-nomask.
      
      From-SVN: r278834
      Tamar Christina committed
    • re PR tree-optimization/92715 (error: position plus size exceeds size of… · 438d9c4a
      re PR tree-optimization/92715 (error: position plus size exceeds size of referenced object in  ‘bit_field_ref’)
      
      2019-11-29  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/92715
      	* tree-ssa-forwprop.c (simplify_vector_constructor): Bail
      	out for uniform vectors and source vectors with less elements
      	than the destination.
      
      	* gcc.dg/torture/pr92715.c: New testcase.
      
      From-SVN: r278833
      Richard Biener committed
    • re PR c++/60228 (ICE using lambda in #pragma omp declare reduction) · 52702016
      	PR c++/60228
      	* parser.c (cp_parser_omp_declare_reduction_exprs): If
      	processing_template_decl, wrap the combiner or initializer
      	into EXPR_STMT.
      	* decl.c (start_preparsed_function): Don't start a lambda scope
      	for DECL_OMP_DECLARE_REDUCTION_P functions.
      	(finish_function): Don't finish a lambda scope for
      	DECL_OMP_DECLARE_REDUCTION_P functions, nor cp_fold_function
      	them nor cp_genericize them.
      	* mangle.c (decl_mangling_context): Look through
      	DECL_OMP_DECLARE_REDUCTION_P functions.
      	* semantics.c (expand_or_defer_fn_1): For DECL_OMP_DECLARE_REDUCTION_P
      	functions, use tentative linkage, don't keep their bodies with
      	-fkeep-inline-functions and return false at the end.
      
      	* g++.dg/gomp/openmp-simd-2.C: Don't expect bodies for
      	DECL_OMP_DECLARE_REDUCTION_P functions.
      
      	* testsuite/libgomp.c++/udr-20.C: New test.
      	* testsuite/libgomp.c++/udr-21.C: New test.
      
      From-SVN: r278832
      Jakub Jelinek committed
    • re PR c++/60228 (ICE using lambda in #pragma omp declare reduction) · b3f44388
      	PR c++/60228
      	* parser.c (cp_parser_omp_declare_reduction_exprs): If
      	processing_template_decl, wrap the combiner or initializer
      	into EXPR_STMT.
      	* decl.c (start_preparsed_function): Don't start a lambda scope
      	for DECL_OMP_DECLARE_REDUCTION_P functions.
      	(finish_function): Don't finish a lambda scope for
      	DECL_OMP_DECLARE_REDUCTION_P functions, nor cp_fold_function
      	them nor cp_genericize them.
      	* mangle.c (decl_mangling_context): Look through
      	DECL_OMP_DECLARE_REDUCTION_P functions.
      	* semantics.c (expand_or_defer_fn_1): For DECL_OMP_DECLARE_REDUCTION_P
      	functions, use tentative linkage, don't keep their bodies with
      	-fkeep-inline-functions and return false at the end.
      
      	* g++.dg/gomp/openmp-simd-2.C: Don't expect bodies for
      	DECL_OMP_DECLARE_REDUCTION_P functions.
      
      	* testsuite/libgomp.c++/udr-20.C: New test.
      	* testsuite/libgomp.c++/udr-21.C: New test.
      
      From-SVN: r278831
      Jakub Jelinek committed
    • Check for TYPE_NAME in type_with_linkage_p. · efeeda75
      2019-11-29  Martin Liska  <mliska@suse.cz>
      
      	PR lto/91574
      	* ipa-devirt.c (types_same_for_odr): Check for existence
      	of TYPE_NAMEs first.
      2019-11-29  Martin Liska  <mliska@suse.cz>
      
      	PR lto/91574
      	* g++.dg/lto/pr91574_0.C: New test.
      
      From-SVN: r278829
      Martin Liska committed
    • re PR tree-optimization/92704 (ICE: Segmentation fault (in process_bb)) · d5e82c9f
      2019-11-29  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/92704
      	* tree-if-conv.c (combine_blocks): Deal with virtual PHIs
      	in loops performing only loads.
      
      	* gcc.dg/torture/pr92704.c: New testcase.
      
      From-SVN: r278828
      Richard Biener committed
    • Handle C2x attributes in Objective-C. · 34b43828
      When adding the initial support for C2x attributes, I deferred the
      unbounded lookahead support required to support such attributes in
      Objective-C (except for the changes to string literal handling, which
      were the riskier piece of preparation for such lookahead support).
      This patch adds that remaining ObjC support.
      
      For C, the parser continues to work exactly as it did before.  For
      ObjC, however, when checking for whether '[[' starts attributes, it
      lexes however many tokens are needed to check for a matching ']]', but
      in a raw mode that omits all the context-sensitive processing that
      c_lex_with_flags normally does, so that that processing can be done
      later when the right context-sensitive flags are set.  Those tokens
      are saved in a separate raw_tokens vector in the parser, and normal
      c_lex_one_token calls will get tokens from there and perform the
      remaining processing on them, if any tokens are found there, so all
      parsing not using the new interfaces gets the same tokens as it did
      before.  (For C, this raw lexing never occurs and the vector of raw
      tokens is always NULL.)
      
      Bootstrapped with no regressions for x86_64-pc-linux-gnu.
      
      gcc/c:
      	* c-parser.c (struct c_parser): Add members raw_tokens and
      	raw_tokens_used.
      	(c_lex_one_token): Add argument raw.  Handle lexing raw tokens and
      	using previously-lexed raw tokens.
      	(c_parser_peek_nth_token_raw)
      	(c_parser_check_balanced_raw_token_sequence): New functions.
      	(c_parser_nth_token_starts_std_attributes): Use
      	c_parser_check_balanced_raw_token_sequence for Objective-C.
      
      gcc/testsuite:
      	* objc.dg/attributes/gnu2x-attr-syntax-1.m: New test.
      
      From-SVN: r278827
      Joseph Myers committed
    • Remove unused decimal floating-point pointer types · 70ce1ab9
      	gcc/
      	* builtin-types.def (BT_DFLOAT32_PTR, BT_DFLOAT64_PTR,
      	BT_DFLOAT128_PTR) Remove.
      	* tree-core.h (TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE,
      	TI_DFLOAT128_PTR_TYPE): Remove.
      	* tree.c (build_common_type_nodes): Remove dfloat32_ptr_type_node,
      	dfloat64_ptr_type_node and dfloat128_ptr_type_node initialisation.
      	* tree.h (dfloat32_ptr_type_node, dfloat64_ptr_type_node,
      	dfloat128_ptr_type_node): Remove macros.
      
      	gcc/jit/
      	* jit-builtins.c (BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR):
      	Remove commented-out cases.
      
      Reviewed-by: Joseph Myers <joseph@codesourcery.com>
      
      From-SVN: r278826
      Julian Brown committed
    • Daily bump. · 19f9ca88
      From-SVN: r278825
      GCC Administrator committed
  2. 28 Nov, 2019 26 commits
  3. 27 Nov, 2019 3 commits
    • Reformat movsi_internal. · 4a54de9d
      2019-11-27  Michael Meissner  <meissner@linux.ibm.com>
      
      	* config/rs6000/rs6000.md (movsi_internal): Reformat.
      
      From-SVN: r278787
      Michael Meissner committed
    • Implement P1814R0, CTAD for alias templates. · 1a291106
      This patch implements C++20 class template argument deduction for alias
      templates, which works by a moderately arcane transformation of the
      deduction guides for the underlying class template.  When implementing it,
      it seemed that I could simplify the rules in the draft a bit and get
      essentially the same effect; I'll be emailing the committee to that effect
      soon.
      
      gcc/cp/
      	* pt.c (rewrite_tparm_list): Factor out of build_deduction_guide.
      	(maybe_aggr_guide): Check for copy-init here.
      	(alias_ctad_tweaks, deduction_guides_for): New.
      	(ctor_deduction_guides_for): Factor out of do_class_deduction.
      	(ctad_template_p): New.
      	* parser.c (cp_parser_simple_type_specifier): Use it.
      	* constraint.cc (append_constraint): New.
      gcc/c-family/
      	* c-cppbuiltin.c (c_cpp_builtins): Update __cpp_deduction_guides.
      
      From-SVN: r278786
      Jason Merrill committed
    • Fix constrained alias template transparency. · 1f41df91
      A constrained alias template can't be treated as equivalent to its
      underlying template/type for much the same reason that an alias template
      like void_t can't; we're relying on checking during substitution.
      
      	* cxx-pretty-print.c (pp_cxx_unqualified_id): Handle alias
      	template-id.
      	* pt.c (complex_alias_template_p): True if constraints.
      	(get_underlying_template, tsubst): Check alias constraints.
      	(push_template_decl_real): Set alias constraints here.
      	* parser.c (cp_parser_alias_declaration): Not here.
      	* constraint.cc (get_constraints): Take const_tree.
      
      From-SVN: r278785
      Jason Merrill committed