Skip to content
Snippets Groups Projects
  1. Dec 30, 2019
    • Olivier Hainque's avatar
      Setup system header wrappers for C++ on VxWorks · 41c1b913
      Olivier Hainque authored
      Starting from VxWorks 7, the system comes with a Dinkumware
      environment which requires the inclusion of "yvals.h" before other
      system headers.  We provide wrapped versions of a few headers to
      accommodate such constraints.
      
      2019-12-30  Jerome Lambourg  <lambourg@adaccore.com>
                  Olivier Hainque  <hainque@adacore.com>
      
      	gcc/
      	* config/vxworks/_yvals.h: New file.
      	* config/vxworks/_yvals-wrapper.h: New file.
      	* gcc/config/vxworks/math.h: Use it to wrap the VxWorks
      	math.h header.
      	* gcc/config/vxworks/complex.h: Likewise.
      	* gcc/config/vxworks/setjmp.h: Likewise.
      	* gcc/config/vxworks/inttypes.h: Likewise.
      	* config.gcc (*-*-vxworks*): Add system header wrappers
      	to extra_headers.
      	(powerpc-*-vxworks*): Reuse the common extra_headers.
      
      From-SVN: r279784
      41c1b913
    • Olivier Hainque's avatar
      Introduce an internal API for VxWorks version checks · abb6c3ee
      Olivier Hainque authored
      This changes introduces an internal API for VxWorks version checks
      within runtime files, a prerequisite to a few fixes coming up for libstdc++
      builds on more recent versions of the OS.
      
      2019-12-30  Olivier Hainque  <hainque@adacore.com>
      
      	gcc/
      	* config/vxworks/_vxworks-versions.h: New file.
      	* config.gcc (*-*-vxworks*): Add it to extra_headers.
      
      	libgcc/
      	* config/gthr-vxworks.h: Use _vxworks-versions.h.
      	* config/gthr-vxworks-tls.c: Likewise.
      
      From-SVN: r279783
      abb6c3ee
    • Olivier Hainque's avatar
      Simplify the compilation commands for config/vxworks.c · c62f986a
      Olivier Hainque authored
      2019-12-30  Olivier Hainque  <hainque@adacore.com>
      
      	* config/t-vxworks: Rework the vxworks.o compilation
      	rules to use $(COMPILE).
      
      From-SVN: r279782
      c62f986a
    • Joel Brobecker's avatar
      Setup TARGET_C_PREINCLUDE for VxWorks · b3405ddc
      Joel Brobecker authored
      This patch modifies the C & C++ VxWorks compiler to predefine
      the __STDC_ macros verified by gcc.dg/c99-predef-1.c in the testsuite.
      
      2019-12-13  Joel Brobecker  <brobecker@adacore.com>
      
      	* config.gcc <*-*-vxworks*>: Add vxworks-c.o to c_target_objs
      	and cxx_target_objs. Set target_has_targetcm to "yes". Add
      	vxworks-predef.h to extra_headers.
      	* config/t-vxworks (vxworks-c.o): New target.
      	* config/vxworks-c.c: New file.
      	* config/vxworks/vxworks-predef.h: New file.
      
      From-SVN: r279781
      b3405ddc
    • Alexandre Oliva's avatar
      Refine definitions for wchar_t/wint_t on VxWorks · 1361ae0e
      Alexandre Oliva authored
      
      This change refines the VxWorks macro definitions configuring
      wchar_t to accommodate the VxWorks7 environment, where wchar_t
      is now typically a 32bit type.
      
      We also ensure that the definitions for wint_t are always based
      on those for wchar_t, so the two remain in sync in environments
      where WCHAR_TYPE is redefined for a specific CPU architecture.
      
      2019-12-30  Alexandre Oliva  <oliva@adacore.com>
                 Olivier Hainque  <hainque@adacore.com>
      
      	* config/vx-common.h (WCHAR_TYPE_SIZE): 32 on VxWorks 7.
      	(WCHAR_TYPE): Pick accordingly.
      	(WINT_TYPE_SIZE): Define in terms of WCHAR_TYPE_SIZE.
      	(WINT_TYPE): Define in terms of WCHAR_TYPE.
      
      Co-Authored-By: default avatarOlivier Hainque <hainque@adacore.com>
      
      From-SVN: r279780
      1361ae0e
    • Olivier Hainque's avatar
      Identify sections in vx-common.h · 4e6bcaa6
      Olivier Hainque authored
      2019-12-30  Olivier Hainque  <hainque@adacore.com>
      
              * config/vx-common.h: Minor reorganization and add
              sectioning comments.
      
      From-SVN: r279779
      4e6bcaa6
    • Doug Rupp's avatar
      Define STARTFILE_PREFIX_SPEC for powerpc VxWorks < 7 · bd8efb66
      Doug Rupp authored
      2019-12-30  Doug Rupp  <rupp@adacore.com>
      
      	* config/rs6000/vxworks.h (STARTFILE_PREFIX_SPEC): Define.
      
      From-SVN: r279778
      bd8efb66
    • Olivier Hainque's avatar
      Improve recursion protection for VxWorks limits.h · 7800631f
      Olivier Hainque authored
      
      2019-12-30  Olivier Hainque  <hainque@adacore.com>
                  Jerome Lambourg  <labourg@adacore.com>
      
         	* config/t-vxworks: Arrange to alter/restore glimits.h
         	before/after stmp-int-hdrs, so it uses a different macro
         	name to protect itself against recursive inclusions.
      
      Co-Authored-By: default avatarJerome Lambourg <lambourg@adacore.com>
      
      From-SVN: r279777
      7800631f
    • Olivier Hainque's avatar
      Improve VxWorks GTHREAD_ONCE_INIT · d7f5094a
      Olivier Hainque authored
      2019-12-30  Olivier Hainque  <hainque@adacore.com>
      
      	* config/gthr-vxworks.h (GTHREAD_ONCE_INIT): Use
      	standard zero-initializer syntax.
      
      From-SVN: r279776
      d7f5094a
    • Olivier Hainque's avatar
      Fix macro reference in gthr-vxworks-tls.c · 49cfaa2a
      Olivier Hainque authored
      2019-12-30  Olivier Hainque  <hainque@adacore.com>
      
      	libgcc/
      	* config/gthr-vxworks-tls.c (__gthread_getspecific): Fix
      	reference to the internal VX_GET_TLS_DATA interface.
      
      From-SVN: r279775
      49cfaa2a
    • Olivier Hainque's avatar
      Fix typo in macro name guarding conditional in vxcrtstuff.c · 89b9a554
      Olivier Hainque authored
      2019-12-30  Olivier Hainque  <hainque@adacore.com>
      
      	libgcc/
      	* config/vxcrtstuff.c: Fix incorrect spelling of
      	USE_INITFINI_ARRAY in guard.
      
      From-SVN: r279774
      89b9a554
    • John David Anglin's avatar
      re PR libgomp/93066 (libgomp/target.c:525:46: error: expected expression before ')' token) · 5ee5eddb
      John David Anglin authored
      	PR libgomp/93066
      	* inclhack.def (hpux_c99_inttypes3): Fix defines for INTPTR_MAX
      	and UINTPTR_MAX, and missing define for SIZE_MAX.
      	* fixincl.x: Regenerate.
      	* tests/base/inttypes.h: Update for above fix.
      
      From-SVN: r279773
      5ee5eddb
    • Peter Bergner's avatar
      Fix builtin functions needlessly using VIEW_CONVERT_EXPRs on their operands. · 4559be23
      Peter Bergner authored
      gcc/
      	PR target/92923
      	* config/rs6000/rs6000-builtin.def (VAND, VANDC, VNOR, VOR, VXOR):
      	Delete.
      	(EQV_V16QI_UNS, EQV_V8HI_UNS, EQV_V4SI_UNS, EQV_V2DI_UNS, EQV_V1TI_UNS,
      	NAND_V16QI_UNS, NAND_V8HI_UNS, NAND_V4SI_UNS, NAND_V2DI_UNS,
      	NAND_V1TI_UNS, ORC_V16QI_UNS, ORC_V8HI_UNS, ORC_V4SI_UNS, ORC_V2DI_UNS,
      	ORC_V1TI_UNS, VAND_V16QI_UNS, VAND_V16QI, VAND_V8HI_UNS, VAND_V8HI,
      	VAND_V4SI_UNS, VAND_V4SI, VAND_V2DI_UNS, VAND_V2DI, VAND_V4SF,
      	VAND_V2DF, VANDC_V16QI_UNS, VANDC_V16QI, VANDC_V8HI_UNS, VANDC_V8HI,
      	VANDC_V4SI_UNS, VANDC_V4SI, VANDC_V2DI_UNS, VANDC_V2DI, VANDC_V4SF,
      	VANDC_V2DF, VNOR_V16QI_UNS, VNOR_V16QI, VNOR_V8HI_UNS, VNOR_V8HI,
      	VNOR_V4SI_UNS, VNOR_V4SI, VNOR_V2DI_UNS, VNOR_V2DI, VNOR_V4SF,
      	VNOR_V2DF, VOR_V16QI_UNS, VOR_V16QI, VOR_V8HI_UNS, VOR_V8HI,
      	VOR_V4SI_UNS, VOR_V4SI, VOR_V2DI_UNS, VOR_V2DI, VOR_V4SF, VOR_V2DF,
      	VXOR_V16QI_UNS, VXOR_V16QI, VXOR_V8HI_UNS, VXOR_V8HI,
      	VXOR_V4SI_UNS, VXOR_V4SI, VXOR_V2DI_UNS, VXOR_V2DI, VXOR_V4SF,
      	VXOR_V2DF): Add definitions.
      	* config/rs6000/rs6000-call.c (altivec_overloaded_builtins)
      	<ALTIVEC_BUILTIN_VAND, ALTIVEC_BUILTIN_VANDC, ALTIVEC_BUILTIN_VNOR,
      	ALTIVEC_BUILTIN_VOR, ALTIVEC_BUILTIN_VXOR>: Remove.
      	<ALTIVEC_BUILTIN_VAND_V4SF, ALTIVEC_BUILTIN_VAND_V2DF,
      	ALTIVEC_BUILTIN_VAND_V2DI, ALTIVEC_BUILTIN_VAND_V2DI_UNS,
      	ALTIVEC_BUILTIN_VAND_V4SI_UNS, ALTIVEC_BUILTIN_VAND_V4SI,
      	ALTIVEC_BUILTIN_VAND_V8HI_UNS, ALTIVEC_BUILTIN_VAND_V8HI,
      	ALTIVEC_BUILTIN_VAND_V16QI, ALTIVEC_BUILTIN_VAND_V16QI_UNS,
      	ALTIVEC_BUILTIN_VANDC_V4SF, ALTIVEC_BUILTIN_VANDC_V2DF,
      	ALTIVEC_BUILTIN_VANDC_V2DI, ALTIVEC_BUILTIN_VANDC_V2DI_UNS,
      	ALTIVEC_BUILTIN_VANDC_V4SI_UNS, ALTIVEC_BUILTIN_VANDC_V4SI,
      	ALTIVEC_BUILTIN_VANDC_V8HI_UNS, ALTIVEC_BUILTIN_VANDC_V8HI,
      	ALTIVEC_BUILTIN_VANDC_V16QI, ALTIVEC_BUILTIN_VANDC_V16QI_UNS,
      	ALTIVEC_BUILTIN_VNOR_V4SF, ALTIVEC_BUILTIN_VNOR_V2DF,
      	ALTIVEC_BUILTIN_VNOR_V2DI, ALTIVEC_BUILTIN_VNOR_V2DI_UNS,
      	ALTIVEC_BUILTIN_VNOR_V4SI, ALTIVEC_BUILTIN_VNOR_V4SI_UNS,
      	ALTIVEC_BUILTIN_VNOR_V8HI, ALTIVEC_BUILTIN_VNOR_V8HI_UNS,
      	ALTIVEC_BUILTIN_VNOR_V16QI, ALTIVEC_BUILTIN_VNOR_V16QI_UNS,
      	ALTIVEC_BUILTIN_VOR_V4SF, ALTIVEC_BUILTIN_VOR_V2DF,
      	ALTIVEC_BUILTIN_VOR_V2DI, ALTIVEC_BUILTIN_VOR_V2DI_UNS,
      	ALTIVEC_BUILTIN_VOR_V4SI_UNS, ALTIVEC_BUILTIN_VOR_V4SI,
      	ALTIVEC_BUILTIN_VOR_V8HI_UNS, ALTIVEC_BUILTIN_VOR_V8HI,
      	ALTIVEC_BUILTIN_VOR_V16QI, ALTIVEC_BUILTIN_VOR_V16QI_UNS,
      	ALTIVEC_BUILTIN_VXOR_V4SF, ALTIVEC_BUILTIN_VXOR_V2DF,
      	ALTIVEC_BUILTIN_VXOR_V2DI, ALTIVEC_BUILTIN_VXOR_V2DI_UNS,
      	ALTIVEC_BUILTIN_VXOR_V4SI_UNS, ALTIVEC_BUILTIN_VXOR_V4SI,
      	ALTIVEC_BUILTIN_VXOR_V8HI, ALTIVEC_BUILTIN_VXOR_V8HI_UNS,
      	ALTIVEC_BUILTIN_VXOR_V16QI, ALTIVEC_BUILTIN_VXOR_V16QI_UNS>: Add
      	definitions.
      	<P8V_BUILTIN_EQV_V16QI, P8V_BUILTIN_EQV_V8HI, P8V_BUILTIN_EQV_V4SI,
      	P8V_BUILTIN_EQV_V2DI, P8V_BUILTIN_NAND_V16QI, P8V_BUILTIN_NAND_V8HI,
      	P8V_BUILTIN_NAND_V4SI, P8V_BUILTIN_NAND_V2DI, P8V_BUILTIN_ORC_V16QI,
      	P8V_BUILTIN_ORC_V8HI, P8V_BUILTIN_ORC_V4SI,
      	P8V_BUILTIN_ORC_V2DI>: Change unsigned usages to use the new *_UNS
      	definition names.
      	(rs6000_gimple_fold_builtin) <ALTIVEC_BUILTIN_VAND_V16QI_UNS,
      	ALTIVEC_BUILTIN_VAND_V16QI, ALTIVEC_BUILTIN_VAND_V8HI_UNS,
      	ALTIVEC_BUILTIN_VAND_V8HI, ALTIVEC_BUILTIN_VAND_V4SI_UNS,
      	ALTIVEC_BUILTIN_VAND_V4SI, ALTIVEC_BUILTIN_VAND_V2DI_UNS,
      	ALTIVEC_BUILTIN_VAND_V2DI, ALTIVEC_BUILTIN_VAND_V4SF,
      	ALTIVEC_BUILTIN_VAND_V2DF, ALTIVEC_BUILTIN_VANDC_V16QI_UNS,
      	ALTIVEC_BUILTIN_VANDC_V16QI, ALTIVEC_BUILTIN_VANDC_V8HI_UNS,
      	ALTIVEC_BUILTIN_VANDC_V8HI, ALTIVEC_BUILTIN_VANDC_V4SI_UNS,
      	ALTIVEC_BUILTIN_VANDC_V4SI, ALTIVEC_BUILTIN_VANDC_V2DI_UNS,
      	ALTIVEC_BUILTIN_VANDC_V2DI, ALTIVEC_BUILTIN_VANDC_V4SF,
      	ALTIVEC_BUILTIN_VANDC_V2DF, P8V_BUILTIN_NAND_V16QI_UNS,
      	P8V_BUILTIN_NAND_V8HI_UNS, P8V_BUILTIN_NAND_V4SI_UNS,
      	P8V_BUILTIN_NAND_V2DI_UNS, P8V_BUILTIN_NAND_V2DI,
      	ALTIVEC_BUILTIN_VOR_V16QI_UNS, ALTIVEC_BUILTIN_VOR_V16QI,
      	ALTIVEC_BUILTIN_VOR_V8HI_UNS, ALTIVEC_BUILTIN_VOR_V8HI,
      	ALTIVEC_BUILTIN_VOR_V4SI_UNS, ALTIVEC_BUILTIN_VOR_V4SI,
      	ALTIVEC_BUILTIN_VOR_V2DI_UNS, ALTIVEC_BUILTIN_VOR_V2DI,
      	ALTIVEC_BUILTIN_VOR_V4SF, ALTIVEC_BUILTIN_VOR_V2DF,
      	P8V_BUILTIN_ORC_V16QI_UNS, P8V_BUILTIN_ORC_V8HI_UNS,
      	P8V_BUILTIN_ORC_V4SI_UNS, P8V_BUILTIN_ORC_V2DI_UNS,
      	P8V_BUILTIN_ORC_V2DI, ALTIVEC_BUILTIN_VXOR_V16QI_UNS,
      	ALTIVEC_BUILTIN_VXOR_V16QI, ALTIVEC_BUILTIN_VXOR_V8HI_UNS,
      	ALTIVEC_BUILTIN_VXOR_V8HI, ALTIVEC_BUILTIN_VXOR_V4SI_UNS,
      	ALTIVEC_BUILTIN_VXOR_V4SI, ALTIVEC_BUILTIN_VXOR_V2DI_UNS,
      	ALTIVEC_BUILTIN_VXOR_V2DI, ALTIVEC_BUILTIN_VXOR_V4SF,
      	ALTIVEC_BUILTIN_VXOR_V2DF, ALTIVEC_BUILTIN_VNOR_V16QI_UNS,
      	ALTIVEC_BUILTIN_VNOR_V16QI, ALTIVEC_BUILTIN_VNOR_V8HI_UNS,
      	ALTIVEC_BUILTIN_VNOR_V8HI, ALTIVEC_BUILTIN_VNOR_V4SI_UNS,
      	ALTIVEC_BUILTIN_VNOR_V4SI, ALTIVEC_BUILTIN_VNOR_V2DI_UNS,
      	ALTIVEC_BUILTIN_VNOR_V2DI, ALTIVEC_BUILTIN_VNOR_V4SF,
      	ALTIVEC_BUILTIN_VNOR_V2DF>: Use new definition names.
      	(builtin_function_type) <ALTIVEC_BUILTIN_VAND_V16QI_UNS,
      	ALTIVEC_BUILTIN_VAND_V8HI_UNS, ALTIVEC_BUILTIN_VAND_V4SI_UNS,
      	ALTIVEC_BUILTIN_VAND_V2DI_UNS, ALTIVEC_BUILTIN_VANDC_V16QI_UNS,
      	ALTIVEC_BUILTIN_VANDC_V8HI_UNS, ALTIVEC_BUILTIN_VANDC_V4SI_UNS,
      	ALTIVEC_BUILTIN_VANDC_V2DI_UNS, ALTIVEC_BUILTIN_VNOR_V16QI_UNS,
      	ALTIVEC_BUILTIN_VNOR_V8HI_UNS, ALTIVEC_BUILTIN_VNOR_V4SI_UNS,
      	ALTIVEC_BUILTIN_VNOR_V2DI_UNS, ALTIVEC_BUILTIN_VOR_V16QI_UNS,
      	ALTIVEC_BUILTIN_VOR_V8HI_UNS, ALTIVEC_BUILTIN_VOR_V4SI_UNS,
      	ALTIVEC_BUILTIN_VOR_V2DI_UNS, ALTIVEC_BUILTIN_VXOR_V16QI_UNS,
      	ALTIVEC_BUILTIN_VXOR_V8HI_UNS, ALTIVEC_BUILTIN_VXOR_V4SI_UNS,
      	ALTIVEC_BUILTIN_VXOR_V2DI_UNS, P8V_BUILTIN_EQV_V16QI_UNS,
      	P8V_BUILTIN_EQV_V8HI_UNS, P8V_BUILTIN_EQV_V4SI_UNS,
      	P8V_BUILTIN_EQV_V2DI_UNS, P8V_BUILTIN_EQV_V1TI_UNS,
      	P8V_BUILTIN_NAND_V16QI_UNS, P8V_BUILTIN_NAND_V8HI_UNS,
      	P8V_BUILTIN_NAND_V4SI_UNS, P8V_BUILTIN_NAND_V2DI_UNS,
      	P8V_BUILTIN_NAND_V1TI_UNS, P8V_BUILTIN_ORC_V16QI_UNS,
      	P8V_BUILTIN_ORC_V8HI_UNS, P8V_BUILTIN_ORC_V4SI_UNS,
      	P8V_BUILTIN_ORC_V2DI_UNS, P8V_BUILTIN_ORC_V1TI_UNS>: Handle unsigned
      	builtins.
      
      gcc/testsuite/
             PR target/92923
             * gcc.target/powerpc/pr92923-1.c: New test.
             * gcc.target/powerpc/pr92923-2.c: Likewise.
      
      From-SVN: r279772
      4559be23
    • Marek Polacek's avatar
      Remove assert in reshape_init_r. · a5650762
      Marek Polacek authored
      Asserting !BRACE_ENCLOSED_INITIALIZER_P seems pretty pointless, since
      that checks for init_list_type_node, and a compound literal won't have
      that type, nor will we see that type if we just checked that it's
      something else.
      
      	* decl.c (reshape_init_r): Remove assert.
      
      From-SVN: r279771
      a5650762
    • Paolo Carlini's avatar
      decl2.c (delete_sanity): Add location_t parameter and use it throughout. · 04e4997a
      Paolo Carlini authored
      /gcc/cp
      2019-12-30  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* decl2.c (delete_sanity): Add location_t parameter and use
      	it throughout.
      	* init.c (build_vec_delete_1): Likewise.
      	(build_delete): Likewise.
      	(build_vec_delete): Likewise.
      	(perform_target_ctor): Adjust call.
      	(perform_member_init): Likewise.
      	(build_vec_init): Likewise.
      	* decl.c (cxx_maybe_build_cleanup): Likewise.
      	* pt.c (tsubst_copy_and_build): Likewise.
      	* parser.c (cp_parser_delete_expression): Likewise, pass the
      	combined_loc.
      	* cp-tree.h: Update declarations.
      
      /libcc1
      2019-12-30  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* libcp1plugin.cc (plugin_build_unary_expr): Update delete_sanity
      	call.
      
      /gcc/testsuite
      2019-12-30  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/init/delete1.C: Check locations too.
      	* g++.dg/ipa/pr85607.C: Likewise.
      	* g++.dg/warn/Wdelete-incomplete-1.C: Likewise.
      	* g++.dg/warn/delete-non-virtual-dtor.C: Likewise.
      	* g++.dg/warn/incomplete1.C: Likewise.
      
      From-SVN: r279768
      04e4997a
    • Thomas Koenig's avatar
      re PR fortran/91651 ([F03] Implement KIND argument for INDEX) · 9332e5ac
      Thomas Koenig authored
      2019-12-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/91651
      	* gfortran.dg/index_3.f90: Fix PR number.
      
      From-SVN: r279766
      9332e5ac
    • Thomas Koenig's avatar
      re PR fortran/91651 ([F03] Implement KIND argument for INDEX) · f1cc032c
      Thomas Koenig authored
      2019-12-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/91651
      	Fix PR numbers in ChangeLog.
      
      From-SVN: r279765
      f1cc032c
    • Thomas Koenig's avatar
      Remove KIND argument from INDEX so it does not mess up scalarization. · d0984735
      Thomas Koenig authored
      2019-12-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/91541
      	* intrinsic.c (add_sym_4ind): New function.
      	(add_functions): Use it for INDEX.
      	(resolve_intrinsic): Also call f1m for INDEX.
      	* intrinsic.h (gfc_resolve_index_func): Adjust prototype to
      	take a gfc_arglist instead of individual arguments.
      	* iresolve.c (gfc_resolve_index_func): Adjust arguments.
      	Remove KIND argument if present, and make sure this is
      	not done twice.
      	* trans-decl.c: Include "intrinsic.h".
      	(gfc_get_extern_function_decl): Special case for resolving INDEX.
      
      2019-12-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/91541
      	* gfortran.dg/index_3.f90: New test.
      
      From-SVN: r279763
      d0984735
    • Thomas Koenig's avatar
      Catch division by zero errors in array sizes. · 67251118
      Thomas Koenig authored
      2019-12-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/92961
      	* gfortran.h (gfc_seen_div0): Add declaration.
      	* arith.h (gfc_seen_div0): Add definition.
      	(eval_intrinsic): For integer division by zero, set gfc_seen_div0.
      	* decl.c (variable_decl):  If resolution resp. simplification
      	fails for array spec and a division of zero error has been
      	seen, return MATCH_ERROR.
      
      2019-12-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/92961
      	* gfortran.dg/arith_divide_2.f90: New test.
      
      From-SVN: r279762
      67251118
    • GCC Administrator's avatar
      Daily bump. · c3182576
      GCC Administrator authored
      From-SVN: r279761
      c3182576
  2. Dec 29, 2019
    • Jakub Jelinek's avatar
      re PR c++/92745 (Initializing array with vec4 results in compile error) · 769019d9
      Jakub Jelinek authored
      	PR c++/92745
      	* g++.dg/cpp0x/initlist118.C: Add -Wno-psabi -w to dg-options.
      
      From-SVN: r279758
      769019d9
    • Marek Polacek's avatar
      PR c++/88337 - Implement P1327R1: Allow dynamic_cast in constexpr. · 22edf943
      Marek Polacek authored
      This patch implements
      <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1327r1.html>.
      
      When build_dynamic_cast realizes that a dynamic_cast needs a run-time check, it
      generates a call to __dynamic_cast -- see dyncast.cc in libsupc++ for its
      definition.  The gist of my approach is to evaluate such a call at compile time.
      
      	* constexpr.c (cxx_dynamic_cast_fn_p): New function.
      	(extract_obj_from_addr_offset): New function.
      	(get_component_with_type): New function.
      	(cxx_eval_dynamic_cast_fn): New function.
      	(cxx_eval_call_expression): Call cxx_eval_dynamic_cast_fn for a call
      	to __dynamic_cast.
      	(potential_constant_expression_1): Don't give up on
      	cxx_dynamic_cast_fn_p.
      	* rtti.c (build_dynamic_cast_1): When creating a call to
      	__dynamic_cast, use the location of the original expression.
      
      	* g++.dg/cpp2a/constexpr-dynamic1.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic10.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic11.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic12.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic13.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic14.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic15.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic16.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic17.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic2.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic3.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic4.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic5.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic6.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic7.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic8.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic9.C: New test.
      
      From-SVN: r279755
      22edf943
    • Jakub Jelinek's avatar
      re PR target/93078 (Missing fma and round functions auto-vectorization with x86-64 (sse2)) · 6ec06754
      Jakub Jelinek authored
      	PR target/93078
      	* config/i386/i386-builtins.c (ix86_builtin_vectorized_function):
      	Remove CASE_CFN_RINT handling.
      	* config/i386/i386-builtin.def (IX86_BUILTIN_RINTPD,
      	IX86_BUILTIN_RINTPS, IX86_BUILTIN_RINTPD256, IX86_BUILTIN_RINTPS256):
      	Remove.
      	* config/i386/sse.md (nearbyint<mode>2, rint<mode>2): New expanders
      	with VF iterator.
      
      	* gcc.target/i386/sse4_1-pr93078.c: New test.
      	* gcc.target/i386/avx-pr93078.c: New test.
      	* gcc.target/i386/avx512f-pr93078.c: New test.
      
      From-SVN: r279754
      6ec06754
    • Richard Sandiford's avatar
      Unshare DR_STEP before gimplifying it · f0657516
      Richard Sandiford authored
      In this testcase we use an unmasked SVE loop with an Advanced SIMD
      epilogue (because we don't yet support fully-masked downward loops).
      The main loop uses a gather load for the strided access while the
      epilogue loop builds the access from scalars instead.  In both cases
      we gimplify expressions based on the DR_STEP and insert them in the
      loop preheader.
      
      The problem was that the gather load code didn't copy the DR_STEP before
      gimplifying it, meaning that the epilogue loop tried to reuse a result
      from the (non-dominating) main loop preheader.
      
      It looks at first glance like there could be other instances of this too,
      but this patch just deals with the gather/scatter case.
      
      2019-12-29  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* tree-vect-stmts.c (vect_get_strided_load_store_ops): Copy
      	DR_STEP before gimplifying it.
      
      gcc/testsuite/
      	* gcc.dg/vect/vect-strided-epilogue-1.c: New test.
      
      From-SVN: r279753
      f0657516
    • Richard Sandiford's avatar
      Check for a supported comparison when using EXTRACT_LAST_REDUCTION · 4bbd661e
      Richard Sandiford authored
      The EXTRACT_LAST_REDUCTION handling needs to generate a separate
      comparison instruction that feeds the vector mask argument of the
      IFN_EXTRACT_LAST call.  We weren't checking whether that comparison
      was supported, leading to an ICE on the testcase.
      
      2019-12-29  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* tree-vect-stmts.c (vectorizable_condition): For extract-last
      	reductions, check that the target supports the required comparison
      	operation.
      
      gcc/testsuite/
      	* gcc.dg/vect/vect-cond-12.c: New test.
      
      From-SVN: r279752
      4bbd661e
    • GCC Administrator's avatar
      Daily bump. · ba2bf6fe
      GCC Administrator authored
      From-SVN: r279751
      ba2bf6fe
  3. Dec 28, 2019
  4. Dec 27, 2019
    • Richard Sandiford's avatar
      [AArch64] Fix typo in V_INT_CONTAINER · 3261d8ba
      Richard Sandiford authored
      All VNx2 V_INT_CONTAINER entries should map to VNx2DI.  The lower-case
      version was already correct.
      
      2019-12-27  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* config/aarch64/iterators.md (V_INT_CONTAINER): Fix VNx2SF entry.
      
      gcc/testsuite/
      	* gcc.target/aarch64/sve/mixed_size_11.c: New test.
      
      From-SVN: r279743
      3261d8ba
    • Richard Sandiford's avatar
      Add missing target check for fully-masked fold-left reductions · cd8aa0d1
      Richard Sandiford authored
      The fold-left reduction code has a (rarely-used) fallback that handles
      cases in which the loop is fully-masked and the target has no native
      support for the reduction.  The fallback includea a VEC_COND_EXPR
      between the reduction vector and a safe value, so we should check
      whether that VEC_COND_EXPR is supported.
      
      2019-12-27  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* tree-vect-loop.c (vectorizable_reduction): Check whether the
      	target supports the required VEC_COND_EXPR operation before
      	allowing the fallback handling of masked fold-left reductions.
      
      gcc/testsuite/
      	* gcc.target/aarch64/sve/mixed_size_10.c: New test.
      
      From-SVN: r279742
      cd8aa0d1
    • GCC Administrator's avatar
      Daily bump. · 049e64f8
      GCC Administrator authored
      From-SVN: r279739
      049e64f8
  5. Dec 26, 2019
  6. Dec 25, 2019
    • Alexandre Oliva's avatar
      Define HAVE_ for math long double functions declared in vxworks headers · 85129ff1
      Alexandre Oliva authored
      When cross-building for vxworks, test for declarations of long double
      functions in math.h.  We don't normally test for these functions when
      cross compiling, because link tests don't work, or ever really, but
      not defining them as available causes replacements to be defined in
      ways that may cause duplicate definition linker errors if the units
      defining both the replacement and the actual implementation are
      brought in because of other symbols.
      
      
      for libstdc++-v3/ChangeLog
      
      	* crossconfig.m4 (GLIBCXX_CROSSCONFIG) [*-vxworks*]: Define
      	long double functions as available if declared by math.h.
      	(GLIBCXX_CHECK_MATH_DECL, GLIBCXX_CHECK_MATH_DECLS): New.
      	* configure: Rebuild.
      
      From-SVN: r279731
      85129ff1
    • GCC Administrator's avatar
      Daily bump. · de0db051
      GCC Administrator authored
      From-SVN: r279730
      de0db051
  7. Dec 24, 2019
  8. Dec 23, 2019
    • Thomas Schwinge's avatar
      Restrict 'c-c++-common/goacc/mdc-1.c' to LP64, LLP64 · c36371aa
      Thomas Schwinge authored
      The tree dump scanning has certain expectations.
      
      	gcc/testsuite/
      	* c-c++-common/goacc/mdc-1.c: Restrict to LP64, LLP64.
      
      From-SVN: r279720
      c36371aa
    • Richard Sandiford's avatar
      [C++] Make same_type_p return false for gnu_vector_type_p differences (PR 92789) · b8c9cc51
      Richard Sandiford authored
      As Jason pointed out in the review of the C++ gnu_vector_type_p patch:
      
          https://gcc.gnu.org/ml/gcc-patches/2019-12/msg00173.html
      
      the real fix for the XFAILs in acle/general-c++/gnu_vectors_*.C is to
      make same_type_p return false for two types if one is gnu_vector_type_p
      and the other isn't.  This patch does that and fixes the fallout.
      
      Originally I'd tried to make it so that "X *" and "Y *" are
      interconvertible whenever X and Y are, and similarly for
      "X &" and "Y &".  That doesn't fall out naturally though,
      and is different from how -flax-vector-conversions works.
      The patch therefore accepts all the consequences of making
      X and Y !same_type_p instead of trying to work around them.
      
      2019-12-23  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/cp/
      	PR c++/92789
      	* typeck.c (structural_comptypes): Make sure that two vector types
      	agree on gnu_vector_type_p.
      
      gcc/testsuite/
      	PR c++/92789
      	* g++.dg/ext/sve-sizeless-2.C (statements): Expect pointer
      	difference and comparisons between GNU and non-GNU types
      	to be rejected.  Expect __is_same to be false for such pairs.
      	* g++.target/aarch64/sve/acle/general-c++/gnu_vectors_1.C: Remove
      	XFAILs.  Expect conversions between SVE vector pointers and
      	GNU vector pointers to be rejected.  Test references.
      	* g++.target/aarch64/sve/acle/general-c++/gnu_vectors_2.C: Likewise.
      
      From-SVN: r279717
      b8c9cc51
Loading