gcc-old.git
5 years agoDaily bump.
gccadmin [Tue, 7 Jan 2020 00:16:13 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279932 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * config/pa/pa.md: Revert change to use ordered_comparison_operator
danglin [Mon, 6 Jan 2020 23:48:42 +0000 (23:48 +0000)]
* config/pa/pa.md: Revert change to use ordered_comparison_operator
instead of cmpib_comparison_operator in cmpib patterns.
* config/pa/predicates.md (cmpib_comparison_operator): Revert removal
of cmpib_comparison_operator.  Revise comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279927 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRequire equal shift amounts for IFN_DIV_POW2
rsandifo [Mon, 6 Jan 2020 18:00:15 +0000 (18:00 +0000)]
Require equal shift amounts for IFN_DIV_POW2

IFN_DIV_POW2 currently requires all elements to be shifted by the
same amount, in a similar way as for WIDEN_LSHIFT_EXPR.  This patch
enforces that when building the SLP tree.

If in future targets want to support IFN_DIV_POW2 without this
restriction, we'll probably need the kind of vector-vector/
vector-scalar split that we already have for normal shifts.

2020-01-06  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* tree-vect-slp.c (vect_build_slp_tree_1): Require all shifts
in an IFN_DIV_POW2 node to be equal.

gcc/testsuite/
* gcc.target/aarch64/sve/asrdiv_1.c: Remove trailing %s.
* gcc.target/aarch64/sve/asrdiv_2.c: New test.
* gcc.target/aarch64/sve/asrdiv_3.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279908 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoCheck mask argument's type when vectorising conditional functions
rsandifo [Mon, 6 Jan 2020 17:58:57 +0000 (17:58 +0000)]
Check mask argument's type when vectorising conditional functions

We can't yet vectorise conditional internal functions whose boolean
condition is fed by a data access (or more generally, by a tree of logic
ops in which all the leaves are data accesses).  Although we should add
that eventually, we'd need further work to generate good-quality code.

Unlike vectorizable_load and vectorizalbe_store, vectorizable_call
wasn't checking whether the mask had a suitable type, leading to an
ICE on the testcases.

2020-01-06  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* tree-vect-stmts.c (vect_check_load_store_mask): Rename to...
(vect_check_scalar_mask): ...this.
(vectorizable_store, vectorizable_load): Update call accordingly.
(vectorizable_call): Use vect_check_scalar_mask to check the mask
argument in calls to conditional internal functions.

gcc/testsuite/
* gcc.dg/vect/vect-cond-arith-8.c: New test.
* gcc.target/aarch64/sve/cond_fmul_5.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279907 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFix amdgcn issue with '0' constraints
ams [Mon, 6 Jan 2020 17:10:40 +0000 (17:10 +0000)]
Fix amdgcn issue with '0' constraints

2020-01-06  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* config/gcn/gcn-valu.md (subv64di3): Use separate alternatives for
'0' matching inputs.
(subv64di3_exec): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279906 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2020-01-06 Bryan Stenson <bryan@siliconvortex.com>
law [Mon, 6 Jan 2020 16:15:04 +0000 (16:15 +0000)]
2020-01-06  Bryan Stenson  <bryan@siliconvortex.com>

* config/mips/mips.c (vr4130_align_insns): Fix typo.
* doc/md.texi (movstr): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279905 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFix early-clobber in amdgcn vec_extract
ams [Mon, 6 Jan 2020 15:40:01 +0000 (15:40 +0000)]
Fix early-clobber in amdgcn vec_extract

2020-01-06  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* config/gcn/gcn-valu.md (vec_extract<mode><scalar_mode>): Add early
clobber.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279904 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoPR c++/79592 adjust testcase
nathan [Mon, 6 Jan 2020 15:22:02 +0000 (15:22 +0000)]
PR c++/79592 adjust testcase

https://gcc.gnu.org/ml/gcc-patches/2020-01/msg00127.html
* g++.dg/ubsan/vptr-4.C: Add expected error.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279902 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[AArch64] Use move-if-change for aarch64-tune.md
rsandifo [Mon, 6 Jan 2020 13:01:48 +0000 (13:01 +0000)]
[AArch64] Use move-if-change for aarch64-tune.md

If aarch64-tune.md was older than gentune.sh or aarch64-cores.def,
we'd try to overwrite it even if the current contents were correct.
This could cause problems with read-only source directories and
could cause spurious copying for rsync --archive.

2020-01-06  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* config/aarch64/t-aarch64 ($(srcdir)/config/aarch64/aarch64-tune.md):
Depend on...
(s-aarch64-tune-md): ...this new stamp file.  Pipe the new contents
to a temporary file and use move-if-change to update the real
file where necessary.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279900 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[AArch64] Fix constraints for CPY /M
rsandifo [Mon, 6 Jan 2020 13:00:04 +0000 (13:00 +0000)]
[AArch64] Fix constraints for CPY /M

The constraints for CPY /M allowed p0-p15 instead of the intended p0-p7.
This looks like a pasto from the preceding constant pattern, where p0-p15
is allowed.

2020-01-06  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* config/aarch64/aarch64-sve.md (@aarch64_sel_dup<mode>): Use Upl
rather than Upa for CPY /M.

gcc/testsuite/
* gcc.target/aarch64/sve/acle/general/cpy_1.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279899 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFix amdgcn inline immediate range
ams [Mon, 6 Jan 2020 12:22:21 +0000 (12:22 +0000)]
Fix amdgcn inline immediate range

2020-01-06  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* config/gcn/gcn.c (gcn_inline_constant_p): Allow 64 as an inline
immediate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279898 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolibstdc++: Remove redundant inequality operators in <stop_token>
redi [Mon, 6 Jan 2020 12:06:47 +0000 (12:06 +0000)]
libstdc++: Remove redundant inequality operators in <stop_token>

* include/std/stop_token (stop_token): Remove operator!= (LWG 3254).
(stop_source): Likewise (LWG 3362).
* testsuite/30_threads/stop_token/stop_source.cc: Test equality
comparisons.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279897 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolibstdc++: Define __cpp_lib_three_way_comparison conditionally
redi [Mon, 6 Jan 2020 12:06:41 +0000 (12:06 +0000)]
libstdc++: Define __cpp_lib_three_way_comparison conditionally

The contents of the <compare> header are not complete unless concepts
are supported, so the feature test macro should depend on the macro for
concepts.

As a result, the std::lexicographical_compare_three_way function will
not be defined unless concepts are supported, so there is no need to
check __cpp_lib_concepts before using concepts in those functions.

* include/bits/stl_algobase.h (__is_byte_iter, __min_cmp)
(lexicographical_compare_three_way): Do not depend on
__cpp_lib_concepts.
* include/std/version (__cpp_lib_three_way_comparison): Only define
when __cpp_lib_concepts is defined.
* libsupc++/compare (__cpp_lib_three_way_comparison): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279896 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoMark param_max_combine_insns with Optimization keyword.
marxin [Mon, 6 Jan 2020 09:13:15 +0000 (09:13 +0000)]
Mark param_max_combine_insns with Optimization keyword.

    PR tree-optimization/92860
    * params.opt: Mark param_max_combine_insns with Optimization
    keyword.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279895 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoNew bitfield testcases.
pinskia [Mon, 6 Jan 2020 01:08:21 +0000 (01:08 +0000)]
New bitfield testcases.

2020-01-05  Andrew Pinski  <apinski@marvell.com>

        * gcc.c-torture/compile/20200105-1.c: New testcase.
        * gcc.c-torture/compile/20200105-2.c: New testcase.
        * gcc.c-torture/compile/20200105-3.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279893 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Mon, 6 Jan 2020 00:16:19 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279892 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * gnat.dg/specs/discr1.ads: Compile with -gnatc instead of -gnatct.
ebotcazou [Sun, 5 Jan 2020 16:02:53 +0000 (16:02 +0000)]
* gnat.dg/specs/discr1.ads: Compile with -gnatc instead of -gnatct.
* gnat.dg/specs/limited_with4.ads: Likewise.
* gnat.dg/specs/limited_with4_pkg.ads: Likewise.
* gnat.dg/specs/private1-sub.ads: Likewise.
* gnat.dg/specs/task1.ads: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279889 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[testsuite, Darwin] Fix failing darwin-version-1.c.
iains [Sun, 5 Jan 2020 15:26:19 +0000 (15:26 +0000)]
[testsuite, Darwin] Fix failing darwin-version-1.c.

Recent platform linkers will no longer accept linking for a target
OS version less than 10.4.  Recent SDKs no longer have the libgcc_s
shims used for 10.4 and 10.5.  So we need to adjust tests that expect
these.

gcc/testsuite/ChangeLog:

2020-01-05  Iain Sandoe  <iain@sandoe.co.uk>

* gcc.dg/darwin-version-1.c: Adjust test to use different
options for Darwin4-9 and Darwin10+.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279888 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR target/93141
jakub [Sun, 5 Jan 2020 12:52:24 +0000 (12:52 +0000)]
PR target/93141
* config/i386/i386.md (SWIDWI): New mode iterator.
(DWI, dwi): Add TImode variants.
(addv<mode>4): Use SWIDWI iterator instead of SWI.  Use
<general_hilo_operand> instead of <general_operand>.  Use
CONST_SCALAR_INT_P instead of CONST_INT_P.
(*addv<mode>4_1): Rename to ...
(addv<mode>4_1): ... this.
(QWI): New mode attribute.
(*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1): New
define_insn_and_split patterns.
(*addv<mode>4_overflow_1, *addv<mode>4_overflow_2): New define_insn
patterns.
(uaddv<mode>4): Use SWIDWI iterator instead of SWI.  Use
<general_hilo_operand> instead of <general_operand>.
(*addcarry<mode>_1): New define_insn.
(*add<dwi>3_doubleword_cc_overflow_1): New define_insn_and_split.

* gcc.target/i386/pr93141-1.c: New test.
* gcc.dg/pr67089-6.c: Expect 16 ADD_OVERFLOW calls even on ia32.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279887 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/93138
jakub [Sun, 5 Jan 2020 12:50:40 +0000 (12:50 +0000)]
PR c++/93138
* parser.c (cp_parser_check_class_key): Disable access checks for the
simple name lookup.
(cp_parser_maybe_warn_enum_key): Likewise.  Return early if
!warn_redundant_tags.

* g++.dg/warn/Wredundant-tags-2.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279886 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoGuard inclusion of vxAtomicLib.h from gthr-vxworks.h
hainque [Sun, 5 Jan 2020 12:45:54 +0000 (12:45 +0000)]
Guard inclusion of vxAtomicLib.h from gthr-vxworks.h

2020-01-05  Olivier Hainque  <hainque@adacore.com>

        * config/gthr-vxworks.h: Guard #include vxAtomicLib.h
by IN_LIBGCC2.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279885 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/93046
jakub [Sun, 5 Jan 2020 00:49:14 +0000 (00:49 +0000)]
PR c++/93046
* cp-gimplify.c (cp_gimplify_init_expr): Don't look through
TARGET_EXPR if it has been gimplified already.

* g++.dg/ext/cond4.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279884 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Sun, 5 Jan 2020 00:16:15 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279883 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * gnatvsn.ads: Bump copyright year.
ebotcazou [Sat, 4 Jan 2020 08:31:22 +0000 (08:31 +0000)]
* gnatvsn.ads: Bump copyright year.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279880 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFortran] PR91640 – Fix call to contiguous dummy
burnus [Sat, 4 Jan 2020 08:19:51 +0000 (08:19 +0000)]
Fortran] PR91640 – Fix call to contiguous dummy

        PR fortran/91640
        * trans-expr.c (gfc_conv_procedure_call): Avoid copy-out for nonvariable
        arguments to contiguous dummy args.  Avoid re-checking whether fsym is
        NULL.

        PR fortran/91640
        * gfortran.dg/contiguous_10.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279879 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Sat, 4 Jan 2020 00:16:22 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279876 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/93033 - incorrect tree node sharing with array init.
jason [Fri, 3 Jan 2020 22:10:56 +0000 (22:10 +0000)]
PR c++/93033 - incorrect tree node sharing with array init.

The split_nonconstant_init piece is the only one necessary to fix the
testcase, but it occurred to me that we might as well not split when
-fno-exceptions.

* typeck2.c (split_nonconstant_init): Unshare non-decl.
* cp-gimplify.c (cp_gimplify_init_expr): Only split if -fexceptions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279871 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoReject class template placeholder as non-type template parm type in C++17.
jason [Fri, 3 Jan 2020 22:10:25 +0000 (22:10 +0000)]
Reject class template placeholder as non-type template parm type in C++17.

* pt.c (invalid_nontype_parm_type_p): Reject class placeholder in
C++17.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279870 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[testsuite, X86] Require effective target masm_intel for two tests.
iains [Fri, 3 Jan 2020 21:05:38 +0000 (21:05 +0000)]
[testsuite, X86] Require effective target masm_intel for two tests.

These tests currently fail on targets that do not support intel asm
syntax.

gcc/testsuite/ChangeLog:

2020-01-03  Iain Sandoe  <iain@sandoe.co.uk>

* gcc.target/i386/avx512bw-pr92686-vpcmp-intelasm-1.c: Require
effective target masm_intel.
* gcc.target/i386/avx512vl-pr92686-vpcmp-intelasm-1.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279869 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agogdbinit.in: call a function with "call", not "set"
amonakov [Fri, 3 Jan 2020 19:35:48 +0000 (19:35 +0000)]
gdbinit.in: call a function with "call", not "set"

Calling a function foo in gdb as "set foo()" results in a warning.
Disregarding, it looks wrong to call a function with "set". Let's use
"call" instead.

2019-11-14  Konstantin Kharlamov  <Hi-Angel@yandex.ru>

* gdbinit.in (pr, prl, pt, pct, pgg, pgq, pgs, pge, pmz, pdd, pbs, pbm):
Use "call" instead of "set".

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279866 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolibstdc++: Only use std::compare_three_way when concepts are supported
redi [Fri, 3 Jan 2020 14:44:39 +0000 (14:44 +0000)]
libstdc++: Only use std::compare_three_way when concepts are supported

Clang now supports three-way comparisons. That causes both overloads of
std::lexicographical_compare_three_way to be defined, but the second one
uses std::compare_three_way which depends on concepts. Clang does not
yet support concepts, so the second overload should also depend on
__cpp_lib_concepts.

* include/bits/stl_algobase.h (lexicographical_compare_three_way):
Only define four-argument overload when __cpp_lib_concepts is defined.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279861 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoAvoid segfault when dumping IPA-CP lattices for unoptimized functions (PR 92917)
jamborm [Fri, 3 Jan 2020 13:52:38 +0000 (13:52 +0000)]
Avoid segfault when dumping IPA-CP lattices for unoptimized functions (PR 92917)

2020-01-03  Martin Jambor  <mjambor@suse.cz>

PR ipa/92917
* ipa-cp.c (print_all_lattices): Skip functions without info.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279859 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFortran] OpenMP/OpenACC – fix more issues with OPTIONAL
burnus [Fri, 3 Jan 2020 12:56:46 +0000 (12:56 +0000)]
Fortran] OpenMP/OpenACC – fix more issues with OPTIONAL

        gcc/fortran/
        * trans-openmp.c (gfc_omp_check_optional_argument): Always return a
        Boolean expression; handle unallocated/disassociated actual arguments
        as absent if passed to nonallocatable/nonpointer dummy array arguments.
        (gfc_build_cond_assign): Change to assume a Boolean expr not a pointer.
        (gfc_omp_finish_clause, gfc_trans_omp_clauses): Assign NULL to generated
        array-data variable if the argument is absent. Simplify code as
        'present' is now a Boolean expression.

        libgomp/
        * testsuite/libgomp.fortran/optional-map.f90: Add test for
        unallocated/disassociated actual arguments to nonallocatable/nonpointer
        dummy arguments; those are/shall be regarded as absent arguments.
        * testsuite/libgomp.fortran/use_device_ptr-optional-2.f90: Ditto.
        * testsuite/libgomp.fortran/use_device_ptr-optional-3.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279858 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR target/93089
jakub [Fri, 3 Jan 2020 10:14:03 +0000 (10:14 +0000)]
PR target/93089
* config/i386/i386-options.c (ix86_simd_clone_adjust): If
TARGET_PREFER_AVX128, use prefer-vector-width=256 for 'c' and 'd'
simd clones.  If TARGET_PREFER_AVX256, use prefer-vector-width=512
for 'e' simd clones.

* gcc.target/i386/pr93089-2.c: New test.
* gcc.target/i386/pr93089-3.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279857 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR target/93089
jakub [Fri, 3 Jan 2020 10:12:31 +0000 (10:12 +0000)]
PR target/93089
* config/i386/i386.opt (x_prefer_vector_width_type): Remove TargetSave
entry.
(mprefer-vector-width=): Add Save.
* config/i386/i386-options.c (ix86_target_string): Add PVW argument, print
-mprefer-vector-width= if non-zero.  Fix up -mfpmath= comment.
(ix86_debug_options, ix86_function_specific_print): Adjust
ix86_target_string callers.
(ix86_valid_target_attribute_inner_p): Handle prefer-vector-width=.
(ix86_valid_target_attribute_tree): Likewise.
* config/i386/i386-options.h (ix86_target_string): Add PVW argument.
* config/i386/i386-expand.c (ix86_expand_builtin): Adjust
ix86_target_string caller.

* gcc.target/i386/pr93089-1.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279856 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR target/93110
jakub [Fri, 3 Jan 2020 10:11:17 +0000 (10:11 +0000)]
PR target/93110
* config/i386/i386.md (abs<mode>2): Use expand_simple_binop instead of
emitting ASHIFTRT, XOR and MINUS by hand.  Use gen_int_mode with QImode
instead of gen_int_shift_amount + convert_modes.

* gcc.dg/torture/pr93110.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279855 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR rtl-optimization/93088
jakub [Fri, 3 Jan 2020 09:10:13 +0000 (09:10 +0000)]
PR rtl-optimization/93088
* loop-iv.c (find_single_def_src): Punt after looking through
128 reg copies for regs with single definitions.  Move definitions
to first uses.

* gcc.target/i386/pr93088.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279854 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFortran] PR 92994 – add more ASSOCIATE checks
burnus [Fri, 3 Jan 2020 08:08:30 +0000 (08:08 +0000)]
Fortran] PR 92994 – add more ASSOCIATE checks

        PR fortran/92994
        * primary.c (gfc_match_rvalue): Add some flavor checks
        gfc_matching_procptr_assignment.
        * resolve.c (resolve_assoc_var): Add more checks for invalid targets.

        PR fortran/92994
        * gfortran.dg/associate_50.f90: Update dg-error.
        * gfortran.dg/associate_51.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279853 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Fri, 3 Jan 2020 00:16:32 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279852 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR fortran/68020
jakub [Thu, 2 Jan 2020 23:58:35 +0000 (23:58 +0000)]
PR fortran/68020
* gfortran.dg/impled_shape_5.f90: Use dg-do compile rather than dg-do
run.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279849 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago compiler, runtime, reflect: generate hash functions only for map keys
ian [Thu, 2 Jan 2020 21:55:32 +0000 (21:55 +0000)]
compiler, runtime, reflect: generate hash functions only for map keys

    Right now we generate hash functions for all types, just in case they
    are used as map keys. That's a lot of wasted effort and binary size
    for types which will never be used as a map key. Instead, generate
    hash functions only for types that we know are map keys.

    Just doing that is a bit too simple, since maps with an interface type
    as a key might have to hash any concrete key type that implements that
    interface. So for that case, implement hashing of such types at
    runtime (instead of with generated code). It will be slower, but only
    for maps with interface types as keys, and maybe only a bit slower as
    the aeshash time probably dominates the dispatch time.

    Reorg where we keep the equals and hash functions. Move the hash function
    from the key type to the map type, saving a field in every non-map type.
    That leaves only one function in the alg structure, so get rid of that and
    just keep the equal function in the type descriptor itself.

    While we're here, reorganize the rtype struct to more closely match
    the gc version.

    This is the gofrontend version of https://golang.org/cl/191198.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/212843

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279848 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago compiler: split writing of equal and hash functions for types
ian [Thu, 2 Jan 2020 21:51:07 +0000 (21:51 +0000)]
compiler: split writing of equal and hash functions for types

    Separate the generation of type equality and hash functions, rather
    than doing them in a single operation.

    This is almost entirely a pure refactoring in preparation for
    generating hash functions only for types that are map keys.  The only
    change in generated code is that for types that are the size of
    numeric types, but not aligned like numeric types, such as [8]byte,
    now use standard hash functions.  They previously used special-purpose
    hash functions because they required special-purpose equal functions.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/212842

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279847 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoAdd 1bit bit-field testcases.
pinskia [Thu, 2 Jan 2020 20:27:25 +0000 (20:27 +0000)]
Add 1bit bit-field testcases.

2020-01-02  Andrew Pinski  <apinski@marvell.com>

        * gcc.c-torture/execute/bitfld-8.c: New testcase.
        * gcc.c-torture/execute/bitfld-9.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279846 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c/90677
jakub [Thu, 2 Jan 2020 17:29:59 +0000 (17:29 +0000)]
PR c/90677
* cp-objcp-common.c (identifier_global_tag): Return NULL_TREE if name
has not been found, rather than error_mark_node.

* c-c++-common/pr90677-2.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279840 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[Arm] Enable CLI for Armv8.6-a: armv8.6-a, i8mm and bf16.
xczhang [Thu, 2 Jan 2020 17:22:53 +0000 (17:22 +0000)]
[Arm] Enable CLI for Armv8.6-a: armv8.6-a, i8mm and bf16.

2020-01-02  Dennis Zhang  <dennis.zhang@arm.com>

* config/arm/arm-c.c (arm_cpu_builtins): Define
__ARM_FEATURE_MATMUL_INT8, __ARM_FEATURE_BF16_VECTOR_ARITHMETIC,
__ARM_FEATURE_BF16_SCALAR_ARITHMETIC, and
__ARM_BF16_FORMAT_ALTERNATIVE when enabled.
* config/arm/arm-cpus.in (armv8_6, i8mm, bf16): New features.
* config/arm/arm-tables.opt: Regenerated.
* config/arm/arm.c (arm_option_reconfigure_globals): Initialize
arm_arch_i8mm and arm_arch_bf16 when enabled.
* config/arm/arm.h (TARGET_I8MM): New macro.
(TARGET_BF16_FP, TARGET_BF16_SIMD): Likewise.
* config/arm/t-aprofile: Add matching rules for -march=armv8.6-a.
* config/arm/t-arm-elf (all_v8_archs): Add armv8.6-a.
* config/arm/t-multilib: Add matching rules for -march=armv8.6-a.
(v8_6_a_simd_variants): New.
(v8_*_a_simd_variants): Add i8mm and bf16.
* doc/invoke.texi (armv8.6-a, i8mm, bf16): Document new options.

2020-01-02  Dennis Zhang  <dennis.zhang@arm.com>

* gcc.target/arm/multilib.exp: Add combination tests for armv8.6-a.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279839 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoAdd myself to MAINTAINERS
xczhang [Thu, 2 Jan 2020 16:09:57 +0000 (16:09 +0000)]
Add myself to MAINTAINERS

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279837 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFortran] PR68020 – Fix implied-shape handling for rank > 2
burnus [Thu, 2 Jan 2020 15:40:51 +0000 (15:40 +0000)]
Fortran] PR68020 – Fix implied-shape handling for rank > 2

        PR fortran/68020
        * array.c (gfc_match_array_spec): Fix implied-type matching
        for rank > 2.

        PR fortran/68020
        * gfortran.dg/implied_shape_4.f90: New.
        * gfortran.dg/implied_shape_5.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279835 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR ipa/93087
jakub [Thu, 2 Jan 2020 09:15:00 +0000 (09:15 +0000)]
PR ipa/93087
* predict.c (compute_function_frequency): Don't call
warn_function_cold on functions that already have cold attribute.

* c-c++-common/cold-1.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279829 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoPR 90374 d0.d, e0.d, es0.d, en0.d, g0.d and ew.d edit descriptors.
jvdelisle [Thu, 2 Jan 2020 00:57:31 +0000 (00:57 +0000)]
PR 90374 d0.d, e0.d, es0.d, en0.d, g0.d and ew.d edit descriptors.

        PR libfortran/90274
        * io/format.c (parse_format_list): Implement the E0 exponent
        width to provide smallest possible width for exponent fields.
        Refactor code for correct parsing and better readability of the
        code.
        * io/io.h (write_real_w0): Change interface to pass in pointer
        to fnode.
        * io/transfer.c: Update all calls to write_real_w0 to use the
        new interface.
        * io/write.c ((write_real_w0): Use the new interface with fnode
        to access both the decimal precision and exponent widths used in
        build_float_string.
        * io/write_float.def (build_float_string): Use the passed in
        exponent width to calculate the used width in the case of E0.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279828 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Thu, 2 Jan 2020 00:16:38 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279827 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR target/67834
danglin [Wed, 1 Jan 2020 22:57:54 +0000 (22:57 +0000)]
PR target/67834
* config/pa/pa.c (pa_elf_select_rtx_section): New.  Put references to
COMDAT group function labels in .data.rel.ro.local section.
* config/pa/pa32-linux.h (TARGET_ASM_SELECT_RTX_SECTION): Define.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279823 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFix windows libobjc build (PR libobjc/93099)
pinskia [Wed, 1 Jan 2020 22:16:35 +0000 (22:16 +0000)]
Fix windows libobjc build (PR libobjc/93099)

2020-01-01  Andrew Pinski  <pinskia@gmail.com>

        PR libobjc/93099
        * objc/objc-decls.h (objc_EXPORT): Define it to
        extern for DLL_EXPORT define case.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279822 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoHandle REF_INQUIRY for dependency checking.
tkoenig [Wed, 1 Jan 2020 21:40:35 +0000 (21:40 +0000)]
Handle REF_INQUIRY for dependency checking.

2020-01-01  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/93113
* dependency.c (gfc_dep_resolver): Handle REF_INQUIRY in switch
for ref types.

2020-01-01  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/93113
* gfortran.dg/dependency_58.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279821 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR target/93111
danglin [Wed, 1 Jan 2020 20:54:58 +0000 (20:54 +0000)]
PR target/93111
* config/pa/pa.md (scc): Use ordered_comparison_operator instead of
comparison_operator in B and S integer comparisons.  Likewise, use
ordered_comparison_operator instead of cmpib_comparison_operator in
cmpib patterns.
* config/pa/predicates.md (cmpib_comparison_operator): Remove.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279818 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
danglin [Wed, 1 Jan 2020 19:19:51 +0000 (19:19 +0000)]
* config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279816 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago Update copyright years.
jakub [Wed, 1 Jan 2020 11:51:42 +0000 (11:51 +0000)]
Update copyright years.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279813 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * update-copyright.py: Add Mentor Graphics Corporation and Yoshinori
jakub [Wed, 1 Jan 2020 11:26:53 +0000 (11:26 +0000)]
* update-copyright.py: Add Mentor Graphics Corporation and Yoshinori
Sato as external authors.  Skip LICENSE.txt files.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279812 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * gcc.c (process_command): Update copyright notice dates.
jakub [Wed, 1 Jan 2020 11:14:37 +0000 (11:14 +0000)]
* gcc.c (process_command): Update copyright notice dates.
* gcov-dump.c (print_version): Ditto.
* gcov.c (print_version): Ditto.
* gcov-tool.c (print_version): Ditto.
* gengtype.c (create_file): Ditto.
* doc/cpp.texi: Bump @copying's copyright year.
* doc/cppinternals.texi: Ditto.
* doc/gcc.texi: Ditto.
* doc/gccint.texi: Ditto.
* doc/gcov.texi: Ditto.
* doc/install.texi: Ditto.
* doc/invoke.texi: Ditto.
gcc/fortran/
* gfortranspec.c (lang_specific_driver): Update copyright notice
dates.
* gfc-internals.texi: Bump @copying's copyright year.
* gfortran.texi: Ditto.
* intrinsic.texi: Ditto.
* invoke.texi: Ditto.
gcc/d/
* gdc.texi: Bump @copyrights-d year.
gcc/go/
* gccgo.texi: Bump @copyrights-go year.
gcc/ada/
   * gnat_ugn.texi: Bump @copying's copyright year.
   * gnat_rm.texi: Likewise.
libitm/
* libitm.texi: Bump @copying's copyright year.
libgomp/
* libgomp.texi: Bump @copying's copyright year.
libquadmath/
* libquadmath.texi: Bump @copying's copyright year.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279811 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * ipa.c (walk_polymorphic_call_targets): Fix updating of overall
hubicka [Wed, 1 Jan 2020 10:47:21 +0000 (10:47 +0000)]
* ipa.c (walk_polymorphic_call_targets): Fix updating of overall
summary.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279810 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR tree-optimization/93098
jakub [Wed, 1 Jan 2020 00:20:39 +0000 (00:20 +0000)]
PR tree-optimization/93098
* match.pd (popcount): For shift amounts, use integer_onep
or wi::to_widest () == cst instead of tree_to_uhwi () == cst
tests.  Make sure that precision is power of two larger than or equal
to 16.  Ensure shift is never negative.  Use HOST_WIDE_INT_UC macro
instead of ULL suffixed constants.  Formatting fixes.

* gcc.c-torture/compile/pr93098.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279809 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Wed, 1 Jan 2020 00:16:17 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279808 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFix EXTRACT_LAST_REDUCTION segfault
rsandifo [Tue, 31 Dec 2019 15:32:06 +0000 (15:32 +0000)]
Fix EXTRACT_LAST_REDUCTION segfault

This code:

      /* Make sure we don't accidentally use the old condition.  */
      cond_expr = NULL_TREE;

was misplaced, since it triggered even when we needed to force the
original unmodified cond_expr into a mask temporary and then invert it.

2019-12-31  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* tree-vect-stmts.c (vectorizable_condition): Only nullify cond_expr
if we've created a new condition.  Don't nullify it if we've decided
to keep it and then invert the result.

gcc/testsuite/
* gcc.dg/vect/vect-cond-reduc-6.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279804 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR libgomp/93065
jakub [Tue, 31 Dec 2019 10:34:34 +0000 (10:34 +0000)]
PR libgomp/93065
* oacc-init.c (goacc_runtime_deinitialize): New function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279803 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFix SSA update when vectorisation adds a vdef to a read-only loop
rsandifo [Tue, 31 Dec 2019 08:28:24 +0000 (08:28 +0000)]
Fix SSA update when vectorisation adds a vdef to a read-only loop

This patch fixes an awkward corner case in which:

(a) we apply if-conversion to a loop;

(b) the original scalar loop doesn't have a vdef, and thus doesn't
    need a virtual phi;

(c) the vectorised main loop does need a vdef and a virtual phi (see below);

(d) we also vectorise the epilogue; and

(e) the vectorised epilogue still needs a scalar epilogue

The specific case in which (c) applies is if a read-only loop is
vectorised using IFN_LOAD_LANES, which uses clobber statements to
mark the lifetime of the temporary array.

The vectoriser relies on the SSA renamer to update virtual operands.
All would probably be well if it postponed this update until after
it had vectorised both the main loop and the epilogue loop.  However,
when vectorising the epilogue, vect_do_peeling does:

  create_lcssa_for_virtual_phi (loop);
  update_ssa (TODO_update_ssa_only_virtuals);

(with "loop" in this case being the to-be-vectorised epilogue loop).
So the vectoriser puts the virtual operand into SSA form for the
vectorised main loop as a separate step, during the early stages
of vectorising the epilogue.

I wasn't sure at first why that update_ssa was there.  It looked
initially like it was related to create_lcssa_for_virtual_phi,
which seemed strange when create_lcssa_for_virtual_phi keeps the
SSA form up-to-date.  But before r241099 it had the following comment,
which AFAICT is still the reason:

  /* We might have a queued need to update virtual SSA form.  As we
     delete the update SSA machinery below after doing a regular
     incremental SSA update during loop copying make sure we don't
     lose that fact.
     ???  Needing to update virtual SSA form by renaming is unfortunate
     but not all of the vectorizer code inserting new loads / stores
     properly assigns virtual operands to those statements.  */

The patch restores that comment since IMO it's helpful.

(a), (d) and (e) mean that we copy the original un-if-converted scalar
loop to act as the scalar epilogue.  The update_ssa above means that this
copying needs to cope with any new virtual SSA names in the main loop.
The code to do that (reasonably) assumed that one of two things was true:

(1) the scalar loop and the vector loops don't have vdefs, and so no
    virtual operand update is needed.  The definition that applies
    on entry to the loops is the same in all cases.

(2) the scalar loop and the vector loops have virtual phis, and so --
    after applying create_lcssa_for_virtual_phi on the to-be-vectorised
    epilogue loop -- the virtual operand update can be handled in the
    same way as for normal SSA names.

But (b) and (c) together mean that the scalar loop and the
still-to-be-vectorised epilogue loop have no virtual phi that (2)
can use.  We'd therefore keep the original vuses when duplicating,
rather than updating them to the definition that applies on exit
from the epilogue loop.  (Since the epilogue is still unvectorised
and has no vdefs, the definition that applies on exit is the same
as the one that applies on entry.)

This patch therefore adds a third case: the scalar loop and
to-be-vectorised epilogue have no virtual defs, but the main loop does.

2019-12-31  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* tree-vect-loop-manip.c (create_lcssa_for_virtual_phi): Return
the incoming virtual operand definition.
(vect_do_peeling): When vectorizing an epilogue loop, handle the
case in which the main loop has a virtual phi and the epilogue
and scalar loops don't.  Restore an earlier comment about the
update_ssa call.

gcc/testsuite/
* gcc.dg/vect/vect-epilogues-2.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279802 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Tue, 31 Dec 2019 00:16:37 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279801 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoAdd ChangeLog entry for rev 279797
hainque [Mon, 30 Dec 2019 22:46:25 +0000 (22:46 +0000)]
Add ChangeLog entry for rev 279797

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279798 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoundefine OFFSET in testsuite/gcc.dg/vect/tree-vect.h
hainque [Mon, 30 Dec 2019 22:42:02 +0000 (22:42 +0000)]
undefine OFFSET in testsuite/gcc.dg/vect/tree-vect.h

2019-12-20  Olivier Hainque  <hainque@adacore.com>

* gcc.dg/vect/tree-vect.h: #undef OFFSET.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279797 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoVxWorks has_nanosleep for libstdc++ enable-libstdcxx-time auto
hainque [Mon, 30 Dec 2019 22:36:14 +0000 (22:36 +0000)]
VxWorks has_nanosleep for libstdc++ enable-libstdcxx-time auto

2019-12-30  Corentin Gay  <gay@adacore.com>

* acinclude.m4 (vxworks*): New entry. Set ac_has_nanosleep=yes.
* configure: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279796 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoPrevent redefinition of WCHAR_MAX from testsuite/gcc.dg/cpp/ucs.c
hainque [Mon, 30 Dec 2019 22:31:37 +0000 (22:31 +0000)]
Prevent redefinition of WCHAR_MAX from testsuite/gcc.dg/cpp/ucs.c

gcc/testsuite/gcc.dg/cpp/ucs.c #include <limits.h>
and then crafts a definition of WCHAR_MAX depending
on __WCHAR_TYPE__.

The test fails in VxWorks configurations because WCHAR_MAX
is already exposed by the system limits.h.

The patch simply guards the tentative definition
by a check verifying if the macro is defined already, so
we're using the value exposed by limits.h in this case.

2019-12-30  Olivier Hainque  <hainque@adacore.com>

* testsuite/gcc.dg/cpp/ucs.c: Prevent redefinition
of WCHAR_MAX if already exposed by limits.h.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279795 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoallow $ in scan-tree-dump expressions matching symbol names
hainque [Mon, 30 Dec 2019 22:28:18 +0000 (22:28 +0000)]
allow $ in scan-tree-dump expressions matching symbol names

This change adjusts a few scan-tree-dump expressions
to allow '$' as well as '.' when matching symbol names,

This improves results on VxWorks targets configured with:

 #undef NO_DOLLAR_IN_LABEL
 #define NO_DOT_IN_LABEL

2019-12-20  Olivier Hainque  <hainque@adacore.com>
           Jerome Lambourg  <lambourg@adacore.com>

* c-c++-common/pr56493.c: Allow '$' in addition to '.'
scan-tree-dump expressions matching symbol names.
* gcc.dg/tree-ssa/sra-17.c: Likewise.
* gcc.dg/tree-ssa/sra-18.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279794 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoGuard aarch64/aapcs64 tests using abitest.S by check_weak_available
hainque [Mon, 30 Dec 2019 22:26:29 +0000 (22:26 +0000)]
Guard aarch64/aapcs64 tests using abitest.S by check_weak_available

2019-12-16  Joel Brobecker  <brobecker@adacore.com>
           Olivier Hainque  <hainque@adacore.com>

* gcc.target/aarch64/aapcs64/aapcs64.exp: Guard tests using
abitest.S by check_weak_available.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279793 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoAdapt libstdc++ os_defines for VxWorks to more recent versions
hainque [Mon, 30 Dec 2019 22:22:34 +0000 (22:22 +0000)]
Adapt libstdc++ os_defines for VxWorks to more recent versions

This change reworks the VxWorks specific os_defines.h internal
lisbstdc++ header to help fix build and runtime failures of various
kinds in environments from 6.4/6.9 to 7 SR640, based on experiments
and observations conducted against real installs of these OSes for
different CPU architectures.

2019-12-30  Jerome Lambourg  <lambourg@adacore.com>
           Olivier Hainque  <hainque@adacore.com>

libstdc++
* config/os/vxworks/os_defines.h
(NOMINMAX): Always redefine to 1.
(_NO_CPP_INLINES): Likewise.
(_GLIBCXX_USE_WEAK_REF): Define to 1 for RTP on
VxWorks >= 7, to 0 otherwise.
(_GLIBCXX_HAVE_TLS): Define to 1.
For VxWorks >= 7:
(_GLIBCXX_USE_C99_MATH): Define to 1.
(_GLIBCXX_USE_C99_MATH_FP_MACROS_DYNAMIC): Define to 0.
(_HAS_TR1_DECLARATIONS): Redefine to 0.
For VxWorks < 7, RTP:
(_GLIBCXX_INCLUDE_NEXT_C_HEADERS): Define to 1.
(_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC): Redefine to 1.
(__CORRECT_ISO_CPP11_MATH_H_PROTO_FP): Define.
For VxWorks < 7, kernel: #include <vxWorks.h>

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279792 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoArrange to preinclude yvals.h ahead of stdint on VxWorks 7
hainque [Mon, 30 Dec 2019 22:16:37 +0000 (22:16 +0000)]
Arrange to preinclude yvals.h ahead of stdint on VxWorks 7

On Vxworks 7, includers of stdint.h (which we currently "provide")
need yvals.h to have been included ahead.

Instead of altering the common stdint-gcc.h with unpleasant
vxworks specific bits to do that, we arrange to provide stdint-gcc.h
on its own along with a stdint.h wrapper which preincludes yvals.h
on vx7 then includes stdint-gcc.h.

2019-12-30  Olivier Hainque  <hainque@adacore.com>

* config/vxworks/stdint.h: New file.  Include _yvals.h
then stdint-gcc.h.
* config/t-vxworks: Arrange to install the stdint.h wrapper.
* config.gcc (*-*-vxworks*): Add stdint-gcc.h to $extra_headers
so it gets copied.  Set use_gcc_stdint to request _not_ crafting
stdint.h through the common Makefile rules.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279791 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoAdd missing file expected with rev 279781
hainque [Mon, 30 Dec 2019 22:09:26 +0000 (22:09 +0000)]
Add missing file expected with rev 279781

            * config/vxworks-c.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279790 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * fi.po: Update.
jsm28 [Mon, 30 Dec 2019 22:08:39 +0000 (22:08 +0000)]
* fi.po: Update.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279788 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoAdd missing files expected with rev 279784
hainque [Mon, 30 Dec 2019 21:55:47 +0000 (21:55 +0000)]
Add missing files expected with rev 279784

* config/vxworks/_yvals.h: New file.
* config/vxworks/_yvals-wrapper.h: New file.
* config/vxworks/math.h: Use it to wrap the VxWorks
math.h header.
* config/vxworks/complex.h: Likewise.
* config/vxworks/setjmp.h: Likewise.
* config/vxworks/inttypes.h: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279787 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoAdd missing file expected with rev 279783
hainque [Mon, 30 Dec 2019 21:55:39 +0000 (21:55 +0000)]
Add missing file expected with rev 279783

* config/vxworks/_vxworks-versions.h: New File.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279786 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoAdd missing file expected with rev 279781
hainque [Mon, 30 Dec 2019 21:50:40 +0000 (21:50 +0000)]
Add missing file expected with rev 279781

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279785 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoSetup system header wrappers for C++ on VxWorks
hainque [Mon, 30 Dec 2019 21:46:21 +0000 (21:46 +0000)]
Setup system header wrappers for C++ on VxWorks

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279784 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoIntroduce an internal API for VxWorks version checks
hainque [Mon, 30 Dec 2019 21:42:26 +0000 (21:42 +0000)]
Introduce an internal API for VxWorks version checks

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279783 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoSimplify the compilation commands for config/vxworks.c
hainque [Mon, 30 Dec 2019 21:39:15 +0000 (21:39 +0000)]
Simplify the compilation commands for config/vxworks.c

2019-12-30  Olivier Hainque  <hainque@adacore.com>

* config/t-vxworks: Rework the vxworks.o compilation
rules to use $(COMPILE).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279782 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoSetup TARGET_C_PREINCLUDE for VxWorks
hainque [Mon, 30 Dec 2019 21:36:34 +0000 (21:36 +0000)]
Setup TARGET_C_PREINCLUDE for VxWorks

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279781 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRefine definitions for wchar_t/wint_t on VxWorks
hainque [Mon, 30 Dec 2019 21:34:35 +0000 (21:34 +0000)]
Refine definitions for wchar_t/wint_t on VxWorks

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279780 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoIdentify sections in vx-common.h
hainque [Mon, 30 Dec 2019 21:31:18 +0000 (21:31 +0000)]
Identify sections in vx-common.h

2019-12-30  Olivier Hainque  <hainque@adacore.com>

        * config/vx-common.h: Minor reorganization and add
        sectioning comments.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279779 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDefine STARTFILE_PREFIX_SPEC for powerpc VxWorks < 7
hainque [Mon, 30 Dec 2019 21:28:50 +0000 (21:28 +0000)]
Define STARTFILE_PREFIX_SPEC for powerpc VxWorks < 7

2019-12-30  Doug Rupp  <rupp@adacore.com>

* config/rs6000/vxworks.h (STARTFILE_PREFIX_SPEC): Define.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279778 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoImprove recursion protection for VxWorks limits.h
hainque [Mon, 30 Dec 2019 21:26:08 +0000 (21:26 +0000)]
Improve recursion protection for VxWorks limits.h

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279777 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoImprove VxWorks GTHREAD_ONCE_INIT
hainque [Mon, 30 Dec 2019 21:22:21 +0000 (21:22 +0000)]
Improve VxWorks GTHREAD_ONCE_INIT

2019-12-30  Olivier Hainque  <hainque@adacore.com>

* config/gthr-vxworks.h (GTHREAD_ONCE_INIT): Use
standard zero-initializer syntax.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279776 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFix macro reference in gthr-vxworks-tls.c
hainque [Mon, 30 Dec 2019 21:14:35 +0000 (21:14 +0000)]
Fix macro reference in gthr-vxworks-tls.c

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279775 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFix typo in macro name guarding conditional in vxcrtstuff.c
hainque [Mon, 30 Dec 2019 21:11:22 +0000 (21:11 +0000)]
Fix typo in macro name guarding conditional in vxcrtstuff.c

2019-12-30  Olivier Hainque  <hainque@adacore.com>

libgcc/
* config/vxcrtstuff.c: Fix incorrect spelling of
USE_INITFINI_ARRAY in guard.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279774 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR libgomp/93066
danglin [Mon, 30 Dec 2019 20:33:17 +0000 (20:33 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279773 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFix builtin functions needlessly using VIEW_CONVERT_EXPRs on their operands.
bergner [Mon, 30 Dec 2019 20:23:25 +0000 (20:23 +0000)]
Fix builtin functions needlessly using VIEW_CONVERT_EXPRs on their operands.

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279772 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRemove assert in reshape_init_r.
mpolacek [Mon, 30 Dec 2019 16:07:33 +0000 (16:07 +0000)]
Remove assert in reshape_init_r.

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279771 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago/gcc/cp
paolo [Mon, 30 Dec 2019 13:23:40 +0000 (13:23 +0000)]
/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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279768 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-12-30 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Mon, 30 Dec 2019 12:35:05 +0000 (12:35 +0000)]
2019-12-30  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/91651
* gfortran.dg/index_3.f90: Fix PR number.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279766 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-12-30 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Mon, 30 Dec 2019 10:47:39 +0000 (10:47 +0000)]
2019-12-30  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/91651
Fix PR numbers in ChangeLog.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279765 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRemove KIND argument from INDEX so it does not mess up scalarization.
tkoenig [Mon, 30 Dec 2019 10:43:38 +0000 (10:43 +0000)]
Remove KIND argument from INDEX so it does not mess up scalarization.

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279763 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoCatch division by zero errors in array sizes.
tkoenig [Mon, 30 Dec 2019 10:34:11 +0000 (10:34 +0000)]
Catch division by zero errors in array sizes.

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279762 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Mon, 30 Dec 2019 00:16:14 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279761 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/92745
jakub [Sun, 29 Dec 2019 23:47:55 +0000 (23:47 +0000)]
PR c++/92745
* g++.dg/cpp0x/initlist118.C: Add -Wno-psabi -w to dg-options.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279758 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/88337 - Implement P1327R1: Allow dynamic_cast in constexpr.
mpolacek [Sun, 29 Dec 2019 16:44:41 +0000 (16:44 +0000)]
PR c++/88337 - Implement P1327R1: Allow dynamic_cast in constexpr.

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279755 138bc75d-0d04-0410-961f-82ee72b054a4

This page took 0.12841 seconds and 5 git commands to generate.