1. 12 Dec, 2019 5 commits
    • [ARC] generate signaling FDCMPF for hard float comparisons · fbf8314b
      PR 92846:
      ARC gcc generates FDCMP instructions which raises Invalid operation for
      signaling NaN only. This causes glibc iseqsig() primitives to fail (in
      the current ongoing glibc port to ARC)
      
      So break up the hard float compares into tw categories and for unordered
      compares generate the FDCMPF instructions which raised exception for
      either NaNs.
      
      With this fix testsuite/gcc.dg/torture/pr52451.c passes for ARC.
      
      Also no regressions for the glibc math testsuite, only 6 additional
      passes for test*iseqsig
      
      gcc/
      xxxx-xx-xx  Vineet Gupta  <vgupta@synopsys.com>
      
      	* config/arc/arc-modes.def (CC_FPUE): New Mode CC_FPUE which
      	helps codegen generate exceptions even for quiet NaN.
      	* config/arc/arc.c (arc_init_reg_tables): Handle New CC_FPUE mode.
      	(get_arc_condition_code): Likewise.
      	(arc_select_cc_mode): LT, LE, GT, GE to use the New CC_FPUE mode.
      	* config/arc/arc.h (REVERSE_CONDITION): Handle New CC_FPUE mode.
      	* config/arc/predicates.md (proper_comparison_operator): Likewise.
      	* config/arc/fpu.md (cmpsf_fpu_trap): New Pattern for CC_FPUE.
      	(cmpdf_fpu_trap): Likewise.
      
      Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
      
      From-SVN: r279274
      Vineet Gupta committed
    • [ARC] Use hardware support for double-precision compare instructions. · 48f13fb1
      Allow the compiler to use the double-precision compare instructions.
      
      xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.md (iterator SDF): Check TARGET_FP_DP_BASE.
      	(cstoredi4): Use TARGET_HARD_FLOAT.
      
      From-SVN: r279273
      Claudiu Zissulescu committed
    • libstdc++: Fix tr1 definition ambiguity in versioned namespace · 5345a190
      	* include/tr1/cctype: Add _GLIBCXX_BEGIN_VERSION_NAMESPACE and
      	_GLIBCXX_END_VERSION_NAMESPACE.
      	* include/tr1/cfenv: Likewise.
      	* include/tr1/cinttypes: Likewise.
      	* include/tr1/cstdint: Likewise.
      	* include/tr1/cstdio: Likewise.
      	* include/tr1/cstdlib: Likewise.
      	* include/tr1/cwchar: Likewise.
      	* include/tr1/cwctype: Likewise.
      
      From-SVN: r279272
      François Dumont committed
    • libstdc++: Qualify isdigit call to fix versioned namespace build. · 8bc19959
      	* src/c++11/random.cc: Include <cctype>.
      	(random_devise::_M_init_pretr1): Qualify isdigit call.
      
      From-SVN: r279271
      François Dumont committed
    • Daily bump. · d64515f5
      From-SVN: r279270
      GCC Administrator committed
  2. 11 Dec, 2019 35 commits
    • opts.c (default_options_table): Move -ftree-loop-distribute-patterns entry from… · afb4cc68
      opts.c (default_options_table): Move -ftree-loop-distribute-patterns entry from -O3 or later section to -O2 or...
      
      	* opts.c (default_options_table): Move -ftree-loop-distribute-patterns
      	entry from -O3 or later section to -O2 or later section.
      	* doc/invoke.texi (-ftree-loop-distribute-patterns): Mention the
      	option is enabled by default at -O2+ rather than just at -O3.
      
      From-SVN: r279267
      Jakub Jelinek committed
    • re PR fortran/92899 ([OpenMP] ICE in gfc_trans_omp_atomic, at fortran/trans-openmp.c:3769) · f8ac7d8f
      	PR fortran/92899
      	* trans-openmp.c (gfc_trans_omp_atomic): For GFC_OMP_ATOMIC_SWAP,
      	do look through conversion on expr2 if any.
      
      	* testsuite/libgomp.fortran/atomic1.f90: New test.
      
      From-SVN: r279266
      Jakub Jelinek committed
    • re PR target/92723 (ICE in expand_shift_1, at expmed.c:2635) · f5c03155
      	PR target/92723
      	* tree-vect-patterns.c (vect_recog_rotate_pattern): If dt is not
      	vect_internal_def, use oprnd1 as is, without trying to cast it.
      	Formatting fix.
      
      	* gcc.dg/vect/pr92723.c: New test.
      
      From-SVN: r279265
      Jakub Jelinek committed
    • configure.ac: Factor out common cases for compare_exclusions. · 4f943869
      2019-12-11  Matthias Klose  <doko@ubuntu.com>
      
              * configure.ac: Factor out common cases for compare_exclusions.
              * configure: Regenerate.
      
      From-SVN: r279250
      Matthias Klose committed
    • builtins.c (compute_objsize): Add an argument and set it to offset into destination. · f7d86b5c
      
      gcc/ChangeLog:
      
      	* builtins.c (compute_objsize): Add an argument and set it to offset
      	into destination.
      	* builtins.h (compute_objsize): Add an argument.
      	* tree-object-size.c (addr_object_size): Add an argument and set it
      	to offset into destination.
      	(compute_builtin_object_size): Same.
      	* tree-object-size.h (compute_builtin_object_size): Add an argument.
      	* tree-ssa-strlen.c (get_addr_stridx): Add an argument and set it
      	to offset into destination.
      	(maybe_warn_overflow): New function.
      	(handle_store): Call maybe_warn_overflow to issue warnings.
      
      gcc/testsuite/ChangeLog:
      
      	* c-c++-common/Wstringop-overflow-2.c: Adjust text of expected messages.
      	* g++.dg/warn/Wstringop-overflow-3.C: Same.
      	* gcc.dg/Wstringop-overflow-17.c: Same.
      
      From-SVN: r279248
      Martin Sebor committed
    • re PR fortran/92897 ([Coarray] ICE in gfc_set_array_spec, at fortran/array.c:864) · c7f5b4ed
      2019-12-11 Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/92897
      	* array.c (gfc_set_array_spec):  Remove invalid assert() triggered
      	by invalid Fortran code.
       
      2019-12-11 Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/92897
      	* gfortran.dg/pr92897.f90: New test.
      
      From-SVN: r279247
      Steven G. Kargl committed
    • MSP430: Add -fno-exceptions multilib · a9046e98
      ChangeLog:
      
      2019-12-11  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* config-ml.in (msp430-*-*): Support --disable-no-exceptions configure
      	flag.
      
      gcc/ChangeLog:
      
      2019-12-11  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* config/msp430/msp430.h (STARTFILE_SPEC) [!fexceptions]: Use
      	crtbegin_no_eh.o if building for the C language.
      	[fno-exceptions]: Use crtbegin_no_eh.o if building for any language
      	except C.
      	(ENDFILE_SPEC) [!fexceptions]: Use crtend_no_eh.o if building for 
      	the C language.
      	[fno-exceptions]: Use crtend_no_eh.o if building for any language
      	except C.
      	* config/msp430/t-msp430: Add -fno-exceptions multilib.
      	* doc/install.texi: Document --disable-no-exceptions multilib configure
      	option.
      	* doc/sourcebuild.texi: Document exceptions_enabled effective target.
      
      gcc/testsuite/ChangeLog:
      
      2019-12-11  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* lib/gcc-dg.exp: Add dg-prune messages for when exception handling is
      	disabled.
      	* lib/target-supports.exp (check_effective_target_exceptions_enabled):
      	New.
      
      libgcc/ChangeLog:
      
      2019-12-11  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* config.host: Add crt{begin,end}_no_eh.o to "extra_parts".
      	* config.host (msp430*-*-elf): Add crt{begin,end}_no_eh.o to
      	"extra_parts".
      
      From-SVN: r279246
      Jozef Lawrynowicz committed
    • Introduce pretty_printer::clone vfunc · 368877a1
      This patch provides a way to clone a pretty_printer.
      
      This is needed so that we can capture text in a label_text and make
      layout decisions based on it, using the policy of global_dc's printer,
      whilst within a call to diagnostic_show_locus.  We can't print with
      the pretty_printer itself within a call to diagnostic_show_locus since
      it has partly-buffered content.
      
      gcc/c-family/ChangeLog:
      	* c-pretty-print.c (c_pretty_printer::clone): New vfunc
      	implementation.
      	* c-pretty-print.h (c_pretty_printer::clone): New vfunc decl.
      
      gcc/cp/ChangeLog:
      	* cxx-pretty-print.c (cxx_pretty_printer::clone): New vfunc
      	implementation.
      	* cxx-pretty-print.h (cxx_pretty_printer::clone): New vfunc decl.
      	* error.c (cxx_format_postprocessor::clone): New vfunc.
      
      gcc/ChangeLog:
      	* pretty-print.c (pretty_printer::pretty_printer): New copy-ctor.
      	(pretty_printer::clone): New vfunc implementation.
      	* pretty-print.h (format_postprocessor::clone): New pure vfunc
      	decl.
      	(pretty_printer::pretty_printer): New copy-ctor decl.
      	(pretty_printer::clone): New vfunc decl.
      
      From-SVN: r279244
      David Malcolm committed
    • libgcc: Declare __dso_handle only if DEFAULT_USE_CXA_ATEXIT is true · 34a53788
      2019-12-11  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* crtstuff.c: Declare __dso_handle only if DEFAULT_USE_CXA_ATEXIT is
      	true.
      
      From-SVN: r279243
      Jozef Lawrynowicz committed
    • function-tests.c: expose selftest::make_fndecl for use elsewhere · 0230c897
      This is used by new selftests in the analyzer patch kit.
      
      gcc/ChangeLog:
      	* function-tests.c (selftest::make_fndecl): Make non-static.
      	* selftest.h (selftest::make_fndecl): New decl.
      
      From-SVN: r279242
      David Malcolm committed
    • re PR c++/92869 (C++17 wrongly reports aggregate type as not-aggregate (when… · 34551153
      re PR c++/92869 (C++17 wrongly reports aggregate type as not-aggregate (when explicitly defaulted ctors are added))
      
      	PR c++/92869
      	* class.c (finish_struct): For C++17 and earlier, check
      	type_has_user_provided_or_explicit_constructor rather than
      	TYPE_HAS_USER_CONSTRUCTOR whether to set CLASSTYPE_NON_AGGREGATE.
      
      	* g++.dg/cpp0x/aggr3.C: New test.
      
      From-SVN: r279241
      Jakub Jelinek committed
    • PR c++/92878 - Parenthesized init of aggregates in new-expression. · c20f7e99
      Ville pointed out that our paren init of aggregates doesn't work for
      
        auto a = new A(1, 2, 3);
      
      and I think it should:
      
      A new-expression that creates an object of type T initializes that object
      as follows:
      ...
      -- Otherwise, the new-initializer is interpreted according to the
         initialization rules of [dcl.init] for direct-initialization.
      
      so I think it follows that we should perform dcl.init#17.6.2.2.
      
      This doesn't work with new[]; we have:
        error ("parenthesized initializer in array new");
      
      	* init.c (build_new_1): Handle parenthesized initialization of
      	aggregates in new-expression.
      
      	* g++.dg/cpp2a/paren-init20.C: New test.
      
      From-SVN: r279240
      Marek Polacek committed
    • * g++.dg/cpp0x/initlist-new2.C: Clarify comment. · cc3b6728
      From-SVN: r279239
      Jason Merrill committed
    • PR c++/92105 - decltype(decltype) error cascade. · 7ae01728
      The primary change here is to do the CPP_DECLTYPE replacement even when we
      get an error, so we don't keep trying and giving the same parse error each
      time.  We also commit to the tentative firewall parse more often, leading to
      better diagnostics.
      
      	* parser.c (cp_parser_decltype_expr): Don't tentative_firewall here.
      	(cp_parser_decltype): Do it here.  Remember a non-tentative error.
      
      From-SVN: r279237
      Jason Merrill committed
    • PR c++/57082 - new X{} and private destructor. · 0e5def81
      build_new_1 already passes tf_no_cleanup to build_value_init, but in this
      testcase we end up calling build_value_init by way of
      build_special_member_call, so we need to pass it to that function as well.
      
      	* init.c (build_new_1): Also pass tf_no_cleanup to
      	build_special_member_call.
      
      From-SVN: r279236
      Jason Merrill committed
    • PR c++/92774 - ICE with implicitly deleted operator<=>. · 60e457d9
      Missing error-recovery code.  While I was poking at this I also figured we
      don't need to iterate over the members of a union.
      
      	* method.c (comp_info::~comp_info): Factor out of...
      	(build_comparison_op): Here.  Handle error return from build_new_op.
      
      From-SVN: r279235
      Jason Merrill committed
    • [PR92843] [OpenACC] Fix dynamic reference counting for structured 'REFCOUNT_INFINITY' · d6e8c01c
      	libgomp/
      	PR libgomp/92843
      	* oacc-mem.c (present_create_copy, delete_copyout): Fix dynamic
      	reference counting for structured 'REFCOUNT_INFINITY'.  Add some
      	assertions.
      	(goacc_insert_pointer, goacc_remove_pointer): Adjust accordingly.
      	* testsuite/libgomp.oacc-c-c++-common/pr92843-1.c: New file.
      	* testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Fix OpenACC.
      	* testsuite/libgomp.oacc-c-c++-common/lib-82.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/nested-1.c: Likewise.
      
      From-SVN: r279234
      Thomas Schwinge committed
    • [OpenACC] Consolidate 'GOACC_enter_exit_data' and its helper functions in 'libgomp/oacc-mem.c' · 57963e39
      	libgomp/
      	* oacc-parallel.c (find_pointer, GOACC_enter_exit_data): Move...
      	* oacc-mem.c: ... here.
      	(gomp_acc_insert_pointer, gomp_acc_remove_pointer): Rename to
      	'goacc_insert_pointer', 'goacc_remove_pointer', and make 'static'.
      	* libgomp.h (gomp_acc_insert_pointer, gomp_acc_remove_pointer):
      	Remove.
      	* libgomp_g.h: Update.
      
      From-SVN: r279233
      Thomas Schwinge committed
    • [OpenACC] Consolidate 'async'/'wait' code in 'libgomp/oacc-async.c' · c5578b56
      	libgomp/
      	* oacc-parallel.c (GOACC_wait, goacc_wait): Move...
      	* oacc-async.c: ... here.
      	* oacc-int.h (goacc_wait): Declare.
      	* libgomp_g.h: Update
      
      From-SVN: r279232
      Thomas Schwinge committed
    • [PR92854] Add 'libgomp.oacc-c-c++-common/acc_map_data-device_already-*.c',… · 3d1b5e71
      [PR92854] Add 'libgomp.oacc-c-c++-common/acc_map_data-device_already-*.c', 'libgomp.oacc-c-c++-common/acc_map_data-host_already-*.c'
      
      ... to document the status quo.
      
      	libgomp/
      	PR libgomp/92854
      	* testsuite/libgomp.oacc-c-c++-common/acc_map_data-device_already-1.c:
      	New file.
      	* testsuite/libgomp.oacc-c-c++-common/acc_map_data-device_already-2.c:
      	Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/acc_map_data-device_already-3.c:
      	Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/acc_map_data-host_already-1.c:
      	Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/acc_map_data-host_already-2.c:
      	Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/acc_map_data-host_already-3.c:
      	Likewise.
      
      From-SVN: r279231
      Thomas Schwinge committed
    • [OpenACC] Initialize 'dynamic_refcount' whenever we initialize 'refcount' · 5e939438
      Cases missed in r261813 "Update OpenACC data clause semantics to the 2.5
      behavior".
      
      	libgomp/
      	* target.c (gomp_load_image_to_device, omp_target_associate_ptr):
      	Initialize 'dynamic_refcount' whenever we initialize 'refcount'.
      
      Co-Authored-By: Julian Brown <julian@codesourcery.com>
      
      From-SVN: r279230
      Thomas Schwinge committed
    • PR c++/92859 - ADL and bit-field. · 7c0a6187
      We also need unlowered_expr_type when considering associated types for ADL.
      
      	* name-lookup.c: Use unlowered_expr_type.
      
      From-SVN: r279229
      Jason Merrill committed
    • PR c++/92446 - deduction of class NTTP. · 3e7a892c
      Another place we need to look through the VIEW_CONVERT_EXPR we add to make a
      use of a class NTTP have const type.
      
      	* pt.c (deducible_expression): Look through VIEW_CONVERT_EXPR.
      
      From-SVN: r279228
      Jason Merrill committed
    • PR middle-end/79221 - missing -Wstringop-overflow= on a strcat overflow · 0a22f996
      gcc/testsuite/ChangeLog:
      	* gcc.dg/Wstringop-overflow-26.c: New test.
      
      From-SVN: r279227
      Martin Sebor committed
    • Adds multibyte awareness to pretty-print.c · ddd0fd17
      2019-12-11  Lewis Hyatt  <lhyatt@gmail.com>
      
      	PR 91853
      	* pretty-print.c (pp_quoted_string): Avoid hex-escaping valid
      	multibyte input.  Fix off-by-one-bug printing the last byte before a
      	hex-escaped output.
      	(pp_character): Don't apply line wrapping in the middle of multibyte
      	characters.
      	(test_utf8): New test.
      	(pretty_print_c_tests): Call the new test.
      
      From-SVN: r279226
      Lewis Hyatt committed
    • [testsuite][arm] Remove xfail for vect-epilogues test · 0dc4e690
      gcc/testsuite/ChangeLog:
      2019-12-11  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* gcc.dg/vect/vect-epilogues.c: Remove xfail for arm.
      
      From-SVN: r279225
      Andre Vieira committed
    • libstdc++: Fix whitepace in changelog · 554c02a5
      From-SVN: r279220
      Jonathan Wakely committed
    • arm: Fix an incorrect warning when -mcpu=cortex-a55 is used with -mfloat-abi=soft · fd9058b6
      When a CPU such as cortex-a55 is used with the soft-float ABI variant,
      the compiler is incorrectly issuing a warning about a mismatch between
      the architecture (generated internally) and the CPU.  This is not
      expected or intended.
      
      The problem stems from the fact that we generate (correctly) an
      architecture for a soft-float compilation, but then try to compare it
      against the one recorded for the CPU.  Normally we strip out the
      floating point information before doing that comparison, but we
      currently only do that for the features that can be affected by the
      -mfpu option.  For a soft-float environment we also need to strip out
      any bits that depend on having floating-point present.
      
      So this patch implements that and does a bit of housekeeping at the
      same time:
      
      - in arm-cpus.in it is not necessary for a CPU to specify both
        +dotprod and +simd in its architecture specification, since +dotprod
        implies +simd.
      
      - I've refactored the ALL_SIMD fgroup in arm-cpus.in to create a new
        subgroup ALL_SIMD_EXTERNAL and containing the bits that were
        previously added directly to ALL_SIMD.  Similarly, I've added an
        ALL_FPU_EXTERNAL subgroup.
      
      - in arm.c rename fpu_bitlist and all_fpubits to fpu_bitlist_internal
        and all_fpubits_internal for consistency with the fgroup bits which
        they contain.
      
      	* config/arm/arm-cpus.in (ALL_SIMD_EXTERNAL): New fgroup.
      	(ALL_SIMD): Use it.
      	(ALL_FPU_EXTERNAL): New fgroup.
      	(ALL_FP): Use it.
      	(cortex-a55, cortex-a75, cortex-a76, cortex-a76ae): Remove redundant
      	+simd from architecture specification.
      	(cortex-a77, neoverse-n1, cortex-a75.cortex-a55): Likewise.
      	* config/arm/arm.c (isa_all_fpubits, fpu_bitlist): Rename to ...
      	(isa_all_fpubits_internal, fpu_bitlist_internal): ... these.
      	(isa_all_fpbits): New bitmap.
      	(arm_option_override): Initialize it.
      	(arm_configure_build_target): If the target isa does not have any
      	FP enabled, do not warn about mismatches in FP-related feature bits.
      
      From-SVN: r279219
      Richard Earnshaw committed
    • libgomp – spelling fixes, incl. omp_lib.h.in · 93d90219
              * omp_lib.h.in: Fix spelling of function declaration
              omp_get_cancell(l)ation.
              * libgomp.texi (acc_is_present, acc_async_test, acc_async_test_all):
              Fix typos.
              * env.c: Fix comment typos.
              * oacc-host.c: Likewise.
              * ordered.c: Likewise.
              * task.c: Likewise.
              * team.c: Likewise.
              * config/gcn/task.c: Likewise.
              * config/gcn/team.c: Likewise.
              * config/nvptx/task.c: Likewise.
              * config/nvptx/team.c: Likewise.
              * plugin/plugin-gcn.c: Likewise.
              * testsuite/libgomp.fortran/jacobi.f: Likewise.
              * testsuite/libgomp.hsa.c/tiling-2.c: Likewise.
              * testsuite/libgomp.oacc-c-c++-common/enter_exit-lib.c: Likewise.
      
      From-SVN: r279218
      Tobias Burnus committed
    • [OpenMP/OpenACC/Fortran] Fix mapping of optional (present|absent) arguments · a0221aee
              * testsuite/libgomp.oacc-fortran/optional-cache.f95: Add 'dg-do run'.
              * testsuite/libgomp.oacc-fortran/optional-reduction.f90: Remove
              unnecessary 'dg-additional-options "-w"'.
      
      From-SVN: r279217
      Tobias Burnus committed
    • Add ARM-specific Bfloat format support to middle-end · d5ffd47e
      2019-12-11  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
      
      	* real.c (struct arm_bfloat_half_format,
      	encode_arm_bfloat_half, decode_arm_bfloat_half): New.
      	* real.h (arm_bfloat_half_format): New.
      
      From-SVN: r279216
      Stam Markianos-Wright committed
    • Fix PR92901: Change test expectation for C++ in OpenACC test clause-locations.c · e6c90dba
      The columns of the clause locations that are reported for C and C++ are
      different and hence we need separate test expectations for both languages.
      
      2019-12-11  Frederik Harwath  <frederik@codesourcery.com>
      
      	PR other/92901
      	/gcc/testsuite/
      	* c-c++-common/clause-locations.c: Adjust test expectation for C++.
      
      From-SVN: r279215
      Frederik Harwath committed
    • Fix unrecognizable insn of pr92865. · a8654147
      gcc/
          PR target/92865
          * config/i386/i386-expand.c (ix86_valid_mask_cmp_mode): Enable
          integer mask cmov when available even with TARGET_XOP.
      
      gcc/testsuite
          * gcc.target/i386/pr92865-1.c: New test.
      
      From-SVN: r279214
      Hongtao Liu committed
    • Restore enable_if lost during original import of pstl · 2aae713b
              * include/pstl/glue_numeric_defs.h: Restore enable_if lost
              during original import of pstl.
              * include/pstl/glue_numeric_impl.h: Likewise.
      
      From-SVN: r279212
      Thomas Rodgers committed
    • Daily bump. · 03e5f213
      From-SVN: r279210
      GCC Administrator committed