platform/upstream/gcc.git
5 years agore PR tree-optimization/88074 (g++ hangs on math expression)
Jakub Jelinek [Wed, 20 Feb 2019 22:41:26 +0000 (23:41 +0100)]
re PR tree-optimization/88074 (g++ hangs on math expression)

PR middle-end/88074
PR middle-end/89415
* toplev.c (do_compile): Double the emin/emax exponents to workaround
buggy mpc_norm.

* gcc.dg/pr88074-2.c: New test.

From-SVN: r269055

5 years agore PR target/89397 (ICE in build_call_expr_loc_array at gcc/tree.c:11563 since r229082)
Uros Bizjak [Wed, 20 Feb 2019 21:58:45 +0000 (22:58 +0100)]
re PR target/89397 (ICE in build_call_expr_loc_array at gcc/tree.c:11563 since r229082)

PR target/89397
* config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
TARGET_SSE in addition to TARGET_SSE_MATH.

(ix86_excess_precision): Ditto.
(ix86_float_exceptions_rounding_supported_p): Ditto.
(use_rsqrt_p): Ditto.
* config/i386/sse.md (rsqrt<mode>2): Ditto.

From-SVN: r269054

5 years agolinux-unwind.h (alpha_fallback_frame_state): Cast 'mcontext_t *' &rt_->uc.uc_mcontext...
Uros Bizjak [Wed, 20 Feb 2019 21:37:21 +0000 (22:37 +0100)]
linux-unwind.h (alpha_fallback_frame_state): Cast 'mcontext_t *' &rt_->uc.uc_mcontext to 'struct sigcontext *'.

* config/alpha/linux-unwind.h (alpha_fallback_frame_state):
Cast 'mcontext_t *' &rt_->uc.uc_mcontext to 'struct sigcontext *'.

From-SVN: r269053

5 years agore PR c++/89336 (internal compiler error when compiling a constexpr function)
Jakub Jelinek [Wed, 20 Feb 2019 21:16:27 +0000 (22:16 +0100)]
re PR c++/89336 (internal compiler error when compiling a constexpr function)

PR c++/89336
* constexpr.c (cxx_eval_store_expression): Diagnose changing of active
union member for -std=c++17 and earlier.

* g++.dg/cpp1y/constexpr-89336-3.C: New test.

From-SVN: r269052

5 years agoFix ICE with #line directive (PR c/89410)
David Malcolm [Wed, 20 Feb 2019 20:07:20 +0000 (20:07 +0000)]
Fix ICE with #line directive (PR c/89410)

PR c/89410 reports various issues with #line directives with very
large numbers; one of them is an ICE inside diagnostic-show-locus.c
when emitting a diagnostic at line 0xffffffff.

The issue is that the arithmetic in layout::calculate_line_spans to
determine if two line spans are sufficiently close to consolidate
was using the unsigned 32-bit linenum_type, which was overflowing
when comparing the line for the expanded location with those of
the location range (all on line 0xffffffff), leading to it
erroneously adding two spans for the same line, leading to an
assertion failure.

This patch fixes the ICE by generalizing the use of long long in
line-map.h's comparison function for linenum_type into a new
linenum_arith_t typedef, and using it here.

Doing so uncovered a second problem: the loop to print the lines
within the line_span for this case is infinite: looping from
0xfffffff upwards, overflowing to 0, and then never becoming
greater than 0xfffffff.  The patch fixes this by using linenum_arith_t
there also.

gcc/ChangeLog:
PR c/89410
* diagnostic-show-locus.c (layout::calculate_line_spans): Use
linenum_arith_t when determining if two adjacent line spans are
close enough to merge.
(diagnostic_show_locus): Use linenum_arith_t when iterating over
lines within each line_span.

gcc/testsuite/ChangeLog:
PR c/89410
* gcc.dg/pr89410-1.c: New test.
* gcc.dg/pr89410-2.c: New test.

libcpp/ChangeLog:
PR c/89410
* include/line-map.h (linenum_arith_t): New typedef.
(compare): Use it.

From-SVN: r269050

5 years agocompiler: fix a typo in comments
Ian Lance Taylor [Wed, 20 Feb 2019 19:14:12 +0000 (19:14 +0000)]
compiler: fix a typo in comments

    Reviewed-on: https://go-review.googlesource.com/c/163097

From-SVN: r269049

5 years agoPR c++/87513 - 'sorry' mangling PMF template-id.
Jason Merrill [Wed, 20 Feb 2019 18:59:18 +0000 (13:59 -0500)]
PR c++/87513 - 'sorry' mangling PMF template-id.

Here build_offset_ref calls build_qualified_name to make a SCOPE_REF because
the dependent template arguments make type_dependent_expression_p (member)
true.  We could probably work hard to prevent this, but it doesn't seem
necessary, and it's easy to fix write_expression to handle the result.

* mangle.c (write_expression): Handle SCOPE_REF to BASELINK.

From-SVN: r269048

5 years ago* g++.old-deja/g++.robertl/eb92.C: Handle warning as well.
Jason Merrill [Wed, 20 Feb 2019 18:58:46 +0000 (13:58 -0500)]
* g++.old-deja/g++.robertl/eb92.C: Handle warning as well.

From-SVN: r269047

5 years agoPR c++/88380 - wrong-code with flexible array and NSDMI.
Jason Merrill [Wed, 20 Feb 2019 18:54:45 +0000 (13:54 -0500)]
PR c++/88380 - wrong-code with flexible array and NSDMI.

Here 'skipped' was set to -1 to force an explicit initializer for 'uninit'
before the initializer for 'initialized', and so we also tried to emit an
explicit initializer for the flexible array, for which build_zero_init
returns error_mark_node.  We should ignore flexarrays even when
skipped < 0.

* typeck2.c (process_init_constructor_record): Skip flexarrays.

From-SVN: r269046

5 years agoPR c++/88572 - wrong handling of braces on scalar init.
Will Wray [Wed, 20 Feb 2019 18:50:32 +0000 (13:50 -0500)]
PR c++/88572 - wrong handling of braces on scalar init.

* decl.c (reshape_init_r): Allow braces around scalar initializer
within aggregate init.  Reject double braced-init of scalar
variable.

From-SVN: r269045

5 years agotarget-supports.exp (check_effective_target_vect_usad_char): Add PowerPC support.
Pat Haugen [Wed, 20 Feb 2019 17:50:28 +0000 (17:50 +0000)]
target-supports.exp (check_effective_target_vect_usad_char): Add PowerPC support.

* lib/target-supports.exp (check_effective_target_vect_usad_char):
Add PowerPC support.
* gcc.dg/vect/slp-reduc-sad.c: Update scan string.
* gcc.dg/vect/vect-reduc-sad.c: Likewise.

From-SVN: r269043

5 years agolibsanitizer: Restore internal_readlink for x32
H.J. Lu [Wed, 20 Feb 2019 16:20:50 +0000 (16:20 +0000)]
libsanitizer: Restore internal_readlink for x32

Cherry-pick compiler-rt revision 354451:

r316591 has

@@ -389,13 +383,11 @@ uptr internal_dup2(int oldfd, int newfd) {
 }

 uptr internal_readlink(const char *path, char *buf, uptr bufsize) {
-#if SANITIZER_NETBSD
-  return internal_syscall_ptr(SYSCALL(readlink), path, buf, bufsize);
-#elif SANITIZER_USES_CANONICAL_LINUX_SYSCALLS
+#if SANITIZER_USES_CANONICAL_LINUX_SYSCALLS
   return internal_syscall(SYSCALL(readlinkat), AT_FDCWD,
                           (uptr)path, (uptr)buf, bufsize);
 #else
-  return internal_syscall(SYSCALL(readlink), (uptr)path, (uptr)buf, bufsize);
+  return internal_syscall_ptr(SYSCALL(readlink), path, buf, bufsize);
 #endif
 }

which dropped the (uptr) cast and broke x32.  This patch puts back the
(uptr) cast to restore x32 and fixes:

https://bugs.llvm.org/show_bug.cgi?id=40783

Differential Revision: https://reviews.llvm.org/D58413

PR sanitizer/89409
* sanitizer_common/sanitizer_linux.cc (internal_readlink):
Cherry-pick compiler-rt r354451.

From-SVN: r269042

5 years agoFix testsuite
Caroline Tice [Wed, 20 Feb 2019 16:07:19 +0000 (08:07 -0800)]
Fix testsuite

2019-02-19  Caroline Tice <cmtice@google.com>

Fix testsuite
* testsuite/libvtv.cc/const_vtable.cc (main): Fix function signature.

From-SVN: r269041

5 years agorevert: re PR target/89397 (ICE in build_call_expr_loc_array at gcc/tree.c:11563...
Uros Bizjak [Wed, 20 Feb 2019 15:23:47 +0000 (16:23 +0100)]
revert: re PR target/89397 (ICE in build_call_expr_loc_array at gcc/tree.c:11563 since r229082)

Revert:
        PR target/89397
        * config/i386/i386.c (ix86_option_override_internal): Set
        opts->x_ix86_fpmath to FPMATH_387 when SSE is disabled.

        gcc/testsuite/

        PR target/89397
        * gcc.target/i386/pr89397.c: New test.

From-SVN: r269040

5 years ago[GCC] PR target/86487: fix the way 'uses_hard_regs_p' handles paradoxical
Andre Vieira [Wed, 20 Feb 2019 14:11:43 +0000 (14:11 +0000)]
[GCC] PR target/86487: fix the way 'uses_hard_regs_p' handles paradoxical
subregs

gcc/ChangeLog:
2019-02-20 Andre Vieira  <andre.simoesdiasvieira@arm.com>

PR target/86487
* lra-constraints.c(uses_hard_regs_p): Fix handling of
paradoxical SUBREGS.

gcc/testsuite/ChangeLog:
2019-02-20 Andre Vieira  <andre.simoesdiasvieira@arm.com>

PR target/86487
* gcc.target/arm/pr86487.c: New.

From-SVN: r269039

5 years agoChange singular to plural in gfortran.texi.
Martin Liska [Wed, 20 Feb 2019 11:12:10 +0000 (12:12 +0100)]
Change singular to plural in gfortran.texi.

2019-02-20  Martin Liska  <mliska@suse.cz>

* gfortran.texi: Change singular to plural.

From-SVN: r269038

5 years agore PR c++/84536 (ICE with non-type template parameter)
Paolo Carlini [Wed, 20 Feb 2019 10:47:02 +0000 (10:47 +0000)]
re PR c++/84536 (ICE with non-type template parameter)

/cp
2019-02-20  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/84536
* pt.c (tsubst_init): Diagnose an initializer expanding to an
empty list of expressions; tweak wrt dependent types.
(regenerate_decl_from_template): For VAR_DECLs call tsubst_init
instead of tsubst_expr.

/testsuite
2019-02-20  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/84536
* g++.dg/cpp1y/var-templ60.C: New.

From-SVN: r269037

5 years agoCorrection of ChangeLog entry, Thomas provided the code for this change.
Thomas Schwinge [Wed, 20 Feb 2019 10:09:53 +0000 (10:09 +0000)]
Correction of ChangeLog entry, Thomas provided the code for this change.

2019-02-19  Thomas Schwinge  <thomas@codesourcery.com>

PR c/87924
* openmp.c (gfc_match_omp_clauses): Add representation of wait clause
without argument as 'wait (GOMP_ASYNC_NOVAL)'.

From-SVN: r269036

5 years agoDocument Fortran header directive.
Martin Liska [Wed, 20 Feb 2019 09:23:12 +0000 (10:23 +0100)]
Document Fortran header directive.

2019-02-20  Martin Liska  <mliska@suse.cz>

* gfortran.texi: Document Fortran header directive.

From-SVN: r269035

5 years agore PR libstdc++/89402 (warning: ‘void _ZNKSt4hashIeEclEe()’ specifies less restrictiv...
Jakub Jelinek [Wed, 20 Feb 2019 07:57:41 +0000 (08:57 +0100)]
re PR libstdc++/89402 (warning: ‘void _ZNKSt4hashIeEclEe()’ specifies less restrictive attribute than its target)

PR libstdc++/89402
* src/c++98/compatibility-ldbl.cc (_ZNKSt4hashIeEclEe): Add
_GLIBCXX_PURE to the alias declaration.

From-SVN: r269034

5 years ago[rs6000] fix PR 88100, range check for vec_splat_{su}{8,16,32}
Li Jia He [Wed, 20 Feb 2019 02:35:39 +0000 (02:35 +0000)]
[rs6000] fix PR 88100, range check for vec_splat_{su}{8,16,32}

GCC revision 259524 implemented range check for the vec_splat_{su}{8,16,32}
builtins.  However, as a consequence of the implementation, the range check
is not done correctly for the expected vspltis[bhw] instructions.  The result
is that we may not get a valid error message if the valid range of the data
is exceeded.

Although the input of the function prototype of vec_splat_{su}{8,16,32} is
const int, the actual data usage range is limited to the data range of 5 bits
signed.  We should limit the int_cst.val[0] data to the 5 bit signed data range
without any modification in the input arg0 parameter.  However, the sext_hwi
function intercepts the data of TREE_INT_CST_LOW (arg0) as size bits in the
sext_hwi (TREE_INT_CST_LOW (arg0), size) statement.  This will cause some of
the excess data to fall within the range of 5 bits signed, so that the correct
diagnostic information cannot be generated, we need to remove the sext_hwi to
ensure that the input data has not been modified.

This patch fix range check for the vec_splat_s[8,16,32] builtins.  The argument
must be a 5-bit const int as specified for the vspltis[bhw] instructions.

for gcc/ChangeLog

PR target/88100
* gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
<case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
range checking it.

for gcc/testsuite/ChangeLog

PR target/88100
* gcc/testsuite/gcc.target/powerpc/pr88100.c: New testcase.

From-SVN: r269033

5 years agoPR c++/88368 - wrong 'use of deleted function'
Jason Merrill [Wed, 20 Feb 2019 02:00:29 +0000 (21:00 -0500)]
PR c++/88368 - wrong 'use of deleted function'

Since my patch for 81359 allowed us to signal failure on return from
maybe_instantiate_noexcept, we no longer need to turn an error into
noexcept(false).  We also need to handle NSDMI instantiation errors under
synthesized_method_walk.  This change caused some instantiation context
notes to be lost in the testsuite, so I added push_tinst_level to
get_defaulted_eh_spec to restore that context.

* method.c (walk_field_subobs): Remember errors from get_nsdmi.
(get_defaulted_eh_spec): Call push_tinst_level.
* pt.c (maybe_instantiate_noexcept): Keep error_mark_node.
* typeck2.c (merge_exception_specifiers): Handle error_mark_node.

From-SVN: r269032

5 years agoDaily bump.
GCC Administrator [Wed, 20 Feb 2019 00:16:45 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r269031

5 years ago* config/gcn/gcn.c (print_operand): Fix typo.
Jonathan Wakely [Tue, 19 Feb 2019 19:30:59 +0000 (19:30 +0000)]
* config/gcn/gcn.c (print_operand): Fix typo.

From-SVN: r269028

5 years agocompiler: add debugger-callable AST dump functins
Ian Lance Taylor [Tue, 19 Feb 2019 18:44:24 +0000 (18:44 +0000)]
compiler: add debugger-callable AST dump functins

    Introduce a set debug_go_* global functions that can be used to emit
    AST dumps for Go statements and expressions from within GDB (for use
    by people developing gccgo).

    Reviewed-on: https://go-review.googlesource.com/c/162903

From-SVN: r269027

5 years agoFix pr88850 test
Wilco Dijkstra [Tue, 19 Feb 2019 18:43:43 +0000 (18:43 +0000)]
Fix pr88850 test

Fix pr88850.c testcase which was failing in hardfp environments.

Committed as obvious.

    gcc/testsuite/
* gcc.target/arm/pr88850.c: Block -mfloat-abi override.

From-SVN: r269026

5 years agoMakefile.am: Avoid the -D option which is not available with the install-sh fallback.
Bernd Edlinger [Tue, 19 Feb 2019 18:21:26 +0000 (18:21 +0000)]
Makefile.am: Avoid the -D option which is not available with the install-sh fallback.

2019-02-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * src/Makefile.am: Avoid the -D option which is not available
        with the install-sh fallback.  Use $(MKDIR_P) instead.
        * libdruntime/Makefile.am: Likewise.
        * src/Makefile.in: Regenerated.
        * libdruntime/Makefile.in: Regenerated.

From-SVN: r269025

5 years agore PR fortran/89384 (CONTIGUOUS dummy argument in BIND(C) interface incorrect when...
Thomas Koenig [Tue, 19 Feb 2019 17:55:33 +0000 (17:55 +0000)]
re PR fortran/89384 (CONTIGUOUS dummy argument in BIND(C) interface incorrect when actual is non-contiguous)

2019-02-19  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/89384
* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): If the dummy
argument is contiguous and the actual argument may not be,
use gfc_conv_subref_array_arg.

2019-02-19  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/89384
* gfortran.dg/ISO_Fortran_binding_4.f90

From-SVN: r269024

5 years agounwind-dw2.c (_Unwind_GetGR): Compare regno instead of index to DWARF_ZERO_REG.
Uros Bizjak [Tue, 19 Feb 2019 16:10:00 +0000 (17:10 +0100)]
unwind-dw2.c (_Unwind_GetGR): Compare regno instead of index to DWARF_ZERO_REG.

* unwind-dw2.c (_Unwind_GetGR) [DWARF_ZERO_REG]: Compare
regno instead of index to DWARF_ZERO_REG.

From-SVN: r269021

5 years ago[PR87924] OpenACC wait clauses without async-arguments: remove XFAILs
Thomas Schwinge [Tue, 19 Feb 2019 16:04:17 +0000 (17:04 +0100)]
[PR87924] OpenACC wait clauses without async-arguments: remove XFAILs

... which the recent r269016 didn't do.

gcc/testsuite/
PR c/87924
* c-c++-common/goacc/asyncwait-5.c: Remove XFAILs.
* gfortran.dg/goacc/asyncwait-5.f: Likewise.

From-SVN: r269020

5 years agore PR go/89169 (FAIL: internal/cpu)
Ian Lance Taylor [Tue, 19 Feb 2019 15:42:09 +0000 (15:42 +0000)]
re PR go/89169 (FAIL: internal/cpu)

PR go/89169
    internal/cpu: do not require POWER8

    Although the gc toolchain requires POWER8, the gccgo toolchain does not.

    Fixes https://gcc.gnu.org/PR89169

    Reviewed-on: https://go-review.googlesource.com/c/162979

From-SVN: r269019

5 years agoruntime: abort stack scan in cases that we cannot unwind the stack
Ian Lance Taylor [Tue, 19 Feb 2019 15:32:34 +0000 (15:32 +0000)]
runtime: abort stack scan in cases that we cannot unwind the stack

    In signal-triggered stack scan, if the signal is delivered at
    certain bad time (e.g. in vdso, or in the middle of setcontext?),
    the unwinder may not be able to unwind the whole stack, while it
    still reports _URC_END_OF_STACK. So we cannot rely on _URC_END_OF_STACK
    to tell if it successfully scanned the stack. Instead, we check
    the last Go frame to see it actually reached the end of the stack.
    For Go-created stack, this is runtime.kickoff. For C-created
    stack, we need to record the outermost Go frame when it enters
    the Go side.

    Also we cannot unwind the stack if the signal is delivered in the
    middle of runtime.gogo, halfway through a goroutine switch, where
    the g and the stack don't match. Give up in this case as well.

    Reviewed-on: https://go-review.googlesource.com/c/159098

From-SVN: r269018

5 years agoi386: Set ix86_fpmath to FPMATH_387 without SSE
H.J. Lu [Tue, 19 Feb 2019 14:19:33 +0000 (14:19 +0000)]
i386: Set ix86_fpmath to FPMATH_387 without SSE

ix86_fpmath should be set to combination of FPMATH_387 and FPMATH_SSE.
When SSE is disabled, it should be set to FPMATH_387 and 387 codegen is
also controlled by -msoft-float.

gcc/

PR target/89397
* config/i386/i386.c (ix86_option_override_internal): Set
opts->x_ix86_fpmath to FPMATH_387 when SSE is disabled.

gcc/testsuite/

PR target/89397
* gcc.target/i386/pr89397.c: New test.

From-SVN: r269017

5 years agore PR c/87924 (OpenACC wait clauses without async-arguments)
Chung-Lin Tang [Tue, 19 Feb 2019 14:10:15 +0000 (14:10 +0000)]
re PR c/87924 (OpenACC wait clauses without async-arguments)

2019-02-19  Chung-Lin Tang <cltang@codesourcery.com>

PR c/87924
gcc/c/
* c-parser.c (c_parser_oacc_clause_wait): Add representation of wait
clause without argument as 'wait (GOMP_ASYNC_NOVAL)', adjust comments.

gcc/cp/
* parser.c (cp_parser_oacc_clause_wait): Add representation of wait
clause without argument as 'wait (GOMP_ASYNC_NOVAL)', adjust comments.

gcc/fortran/
* openmp.c (gfc_match_omp_clauses): Add representation of wait clause
without argument as 'wait (GOMP_ASYNC_NOVAL)'.

libgomp/
* oacc-parallel.c (GOACC_parallel_keyed): Remove condition on call to
goacc_wait().
(goacc_wait): Handle ACC_ASYNC_NOVAL case, remove goacc_thread() call
and related adjustment.

Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>
From-SVN: r269016

5 years agore PR tree-optimization/88074 (g++ hangs on math expression)
Richard Biener [Tue, 19 Feb 2019 12:46:48 +0000 (12:46 +0000)]
re PR tree-optimization/88074 (g++ hangs on math expression)

2019-02-19  Richard Biener  <rguenther@suse.de>

        PR middle-end/88074
* toplev.c (do_compile): Initialize mpfr's exponent range
based on available float modes.

* gcc.dg/pr88074.c: New testcase.

From-SVN: r269015

5 years agoFix libphobos.shared/load.d compile failure on Solaris
Iain Buclaw [Tue, 19 Feb 2019 12:38:48 +0000 (12:38 +0000)]
Fix libphobos.shared/load.d compile failure on Solaris

2019-02-19  Iain Buclaw  <ibuclaw@gdcproject.org>

* testsuite/libphobos.shared/load.d: Import core.sys.posix.dlfcn.
[DragonFlyBSD, FreeBSD, linux, NetBSD, OSX, Solaris]: Import only
RTLD_NOLOAD from core.sys.*.dlfcn.
Assert RTLD_NOLOAD is available.

From-SVN: r269014

5 years agortlanal.c (get_initial_register_offset): Fall back to the estimate as long as the...
Eric Botcazou [Tue, 19 Feb 2019 09:25:39 +0000 (09:25 +0000)]
rtlanal.c (get_initial_register_offset): Fall back to the estimate as long as the epilogue isn't completed.

* rtlanal.c (get_initial_register_offset): Fall back to the estimate
as long as the epilogue isn't completed.

From-SVN: r269013

5 years agoFix libphobos linking on Solaris 11
Rainer Orth [Tue, 19 Feb 2019 09:24:50 +0000 (09:24 +0000)]
Fix libphobos linking on Solaris 11

* m4/druntime/libraries.m4 (DRUNTIME_LIBRARIES_NET): New macro.
* configure.ac: Invoke it.
* configure: Regenerate.

From-SVN: r269012

5 years agore PR middle-end/89303 (memory leak with shared_ptr and enable_shared_from_this)
Jakub Jelinek [Tue, 19 Feb 2019 08:57:24 +0000 (09:57 +0100)]
re PR middle-end/89303 (memory leak with shared_ptr and enable_shared_from_this)

PR middle-end/89303
* g++.dg/torture/pr89303.C: Move everything from std namespace to my
namespace.

From-SVN: r269010

5 years agore PR c++/89387 (ICE in maybe_generic_this_capture at gcc/cp/lambda.c:945 since r268851)
Jakub Jelinek [Tue, 19 Feb 2019 08:43:23 +0000 (09:43 +0100)]
re PR c++/89387 (ICE in maybe_generic_this_capture at gcc/cp/lambda.c:945 since r268851)

PR c++/89387
* lambda.c (maybe_generic_this_capture): Don't check
DECL_NONSTATIC_MEMBER_FUNCTION_P on USING_DECLs.

* g++.dg/cpp0x/lambda/lambda-89387.C: New test.

From-SVN: r269009

5 years agore PR c++/89391 (ICE in build_target_expr_with_type, at cp/tree.c:795)
Jakub Jelinek [Tue, 19 Feb 2019 08:40:07 +0000 (09:40 +0100)]
re PR c++/89391 (ICE in build_target_expr_with_type, at cp/tree.c:795)

PR c++/89391
* typeck.c (build_reinterpret_cast_1): Don't handle void to
&& conversion go through build_target_expr_with_type.

* g++.dg/cpp0x/reinterpret_cast2.C: New test.

From-SVN: r269008

5 years agore PR c++/89390 (ICE in get_string, at spellcheck-tree.h:46)
Jakub Jelinek [Tue, 19 Feb 2019 08:38:54 +0000 (09:38 +0100)]
re PR c++/89390 (ICE in get_string, at spellcheck-tree.h:46)

PR c++/89390
* error.c (qualified_name_lookup_error): Only call
suggest_alternative_in_scoped_enum if name is IDENTIFIER_NODE.

* g++.dg/diagnostic/pr89390.C: New test.

From-SVN: r269007

5 years agoAdjust C++11/C++14 tests to work with -fchar8_t
Jonathan Wakely [Tue, 19 Feb 2019 02:55:12 +0000 (02:55 +0000)]
Adjust C++11/C++14 tests to work with -fchar8_t

* testsuite/21_strings/basic_string/literals/types.cc
[_GLIBCXX_USE_CHAR8_T]: Adjust expected string type for u8 literal.
* testsuite/21_strings/basic_string/literals/values.cc
[_GLIBCXX_USE_CHAR8_T]: Likewise.
* testsuite/22_locale/codecvt/char16_t.cc: Adjust for u8 literals
potentially having different type.
* testsuite/22_locale/codecvt/char32_t.cc: Likewise.
* testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: Cast u8 literal
to char.
* testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: Likewise.
* testsuite/22_locale/codecvt/utf8.cc: Likewise.
* testsuite/22_locale/conversions/string/2.cc: Remove u8 prefix from
string literals only using basic character set.
* testsuite/22_locale/conversions/string/3.cc: Likewise. Cast other
u8 literals to char.
* testsuite/29_atomics/headers/atomic/macros.cc [_GLIBCXX_USE_CHAR8_T]:
Test ATOMIC_CHAR8_T_LOCK_FREE.
Add missing #error to ATOMIC_CHAR16_T_LOCK_FREE test.
* testsuite/29_atomics/headers/atomic/types_std_c++0x.cc
[_GLIBCXX_USE_CHAR8_T]: Check for std::atomic_char8_t.
* testsuite/experimental/string_view/literals/types.cc
[_GLIBCXX_USE_CHAR8_T]: Adjust expected string_view type for u8
literal.
* testsuite/experimental/string_view/literals/values.cc
[_GLIBCXX_USE_CHAR8_T]: Likewise.

From-SVN: r269006

5 years agoP0482R5 char8_t: New standard library tests
Tom Honermann [Tue, 19 Feb 2019 02:55:05 +0000 (02:55 +0000)]
P0482R5 char8_t: New standard library tests

2019-02-19  Tom Honermann  <tom@honermann.net>

* testsuite/18_support/numeric_limits/char8_t.cc: New test cloned
from char16_32_t.cc; validates numeric_limits<char8_t>.
* testsuite/21_strings/basic_string/literals/types-char8_t.cc: New
test cloned from types.cc; validates operator""s for char8_t
returns u8string.
* testsuite/21_strings/basic_string/literals/values-char8_t.cc: New
test cloned from values.cc; validates construction and comparison
of u8string values.
* testsuite/21_strings/basic_string/requirements/
/explicit_instantiation/char8_t/1.cc: New test cloned from
char16_t/1.cc; validates explicit instantiation of
basic_string<char8_t>.
* testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
New test cloned from types.cc; validates operator""sv for char8_t
returns u8string_view.
* testsuite/21_strings/basic_string_view/literals/
values-char8_t.cc: New test cloned from values.cc; validates
construction and comparison of u8string_view values.
* testsuite/21_strings/basic_string_view/requirements/
explicit_instantiation/char8_t/1.cc: New test cloned from
char16_t/1.cc; validates explicit instantiation of
basic_string_view<char8_t>.
* testsuite/21_strings/char_traits/requirements/char8_t/65049.cc:
New test cloned from char16_t/65049.cc; validates that
char_traits<char8_t> is not vulnerable to the concerns in PR65049.
* testsuite/21_strings/char_traits/requirements/char8_t/
typedefs.cc: New test cloned from char16_t/typedefs.cc; validates
that char_traits<char8_t> member typedefs are present and correct.
* testsuite/21_strings/char_traits/requirements/
explicit_instantiation/char8_t/1.cc: New test cloned from
char16_t/1.cc; validates explicit instantiation of
char_traits<char8_t>.
* testsuite/22_locale/codecvt/char16_t-char8_t.cc: New test cloned
from char16_t.cc: validates
codecvt<char16_t, char8_t, mbstate_t>.
* testsuite/22_locale/codecvt/char32_t-char8_t.cc: New test cloned
from char32_t.cc: validates
codecvt<char32_t, char8_t, mbstate_t>.
* testsuite/22_locale/codecvt/utf8-char8_t.cc: New test cloned from
utf8.cc; validates codecvt<char16_t, char8_t, std::mbstate_t> and
codecvt<char32_t, char8_t, std::mbstate_t>.
* testsuite/27_io/filesystem/path/native/string-char8_t.cc: New
test cloned from string.cc; validates filesystem::path construction
from char8_t input.
* testsuite/experimental/feat-char8_t.cc: New test; validates that
the __cpp_lib_char8_t feature test macro is defined with the
correct value.
* testsuite/experimental/filesystem/path/native/string-char8_t.cc:
New test cloned from string.cc; validates filesystem::path
construction from char8_t input.
* testsuite/experimental/string_view/literals/types-char8_t.cc: New
test cloned from types.cc; validates operator""sv for char8_t
returns u8string_view.
* testsuite/experimental/string_view/literals/values-char8_t.cc:
New test cloned from values.cc; validates construction and
comparison of u8string_view values.
* testsuite/experimental/string_view/requirements/
explicit_instantiation/char8_t/1.cc: New test cloned from
char16_t/1.cc; validates explicit instantiation of
basic_string_view<char8_t>.
* testsuite/ext/char8_t/atomic-1.cc: New test; validates that
ATOMIC_CHAR8_T_LOCK_FREE is not defined if char8_t support is not
enabled.

From-SVN: r269005

5 years agoP0482R5 char8_t: Standard library support
Tom Honermann [Tue, 19 Feb 2019 02:54:42 +0000 (02:54 +0000)]
P0482R5 char8_t: Standard library support

gcc/cp:

2019-02-19  Tom Honermann  <tom@honermann.net>

* name-lookup.c (get_std_name_hint): Added u8string as a name hint.

libstdc++:

2019-02-19  Tom Honermann  <tom@honermann.net>

P0482R5 char8_t: Standard library support
* config/abi/pre/gnu-versioned-namespace.ver (CXXABI_2.0): Add
typeinfo symbols for char8_t.
* config/abi/pre/gnu.ver: Add CXXABI_1.3.12.
(GLIBCXX_3.4.26): Add symbols for specializations of
numeric_limits and codecvt that involve char8_t.
(CXXABI_1.3.12): Add typeinfo symbols for char8_t.
* include/bits/atomic_base.h: Add atomic_char8_t.
* include/bits/basic_string.h: Add std::hash<u8string> and
operator""s(const char8_t*, size_t).
* include/bits/c++config: Define _GLIBCXX_USE_CHAR8_T and
__cpp_lib_char8_t.
* include/bits/char_traits.h: Add char_traits<char8_t>.
* include/bits/codecvt.h: Add
codecvt<char16_t, char8_t, mbstate_t>,
codecvt<char32_t, char8_t, mbstate_t>,
codecvt_byname<char16_t, char8_t, mbstate_t>, and
codecvt_byname<char32_t, char8_t, mbstate_t>.
* include/bits/cpp_type_traits.h: Add __is_integer<char8_t> to
recognize char8_t as an integral type.
* include/bits/fs_path.h: (path::__is_encoded_char): Recognize
char8_t.
(path::u8string): Return std::u8string when char8_t support is
enabled.
(path::generic_u8string): Likewise.
(path::_S_convert): Handle conversion from char8_t input.
(path::_S_str_convert): Likewise.
* include/bits/functional_hash.h: Add hash<char8_t>.
* include/bits/locale_conv.h (__str_codecvt_out): Add overloads for
char8_t.
* include/bits/locale_facets.h (_GLIBCXX_NUM_UNICODE_FACETS): Bump
for new char8_t specializations.
* include/bits/localefwd.h: Add missing declarations of
codecvt<char16_t, char, mbstate_t> and
codecvt<char32_t, char, mbstate_t>.  Add char8_t declarations
codecvt<char16_t, char8_t, mbstate_t> and
codecvt<char32_t, char8_t, mbstate_t>.
* include/bits/postypes.h: Add u8streampos
* include/bits/stringfwd.h: Add declarations of
char_traits<char8_t> and u8string.
* include/c_global/cstddef: Add __byte_operand<char8_t>.
* include/experimental/bits/fs_path.h (path::__is_encoded_char):
Recognize char8_t.
(path::u8string): Return std::u8string when char8_t support is
enabled.
(path::generic_u8string): Likewise.
(path::_S_convert): Handle conversion from char8_t input.
(path::_S_str_convert): Likewise.
* include/experimental/string: Add u8string.
* include/experimental/string_view: Add u8string_view,
hash<experimental::u8string_view>, and
operator""sv(const char8_t*, size_t).
* include/std/atomic: Add atomic<char8_t> and atomic_char8_t.
* include/std/charconv (__is_int_to_chars_type): Recognize char8_t
as a character type.
* include/std/limits: Add numeric_limits<char8_t>.
* include/std/string_view: Add u8string_view,
hash<experimental::u8string_view>, and
operator""sv(const char8_t*, size_t).
* include/std/type_traits: Add __is_integral_helper<char8_t>,
__make_unsigned<char8_t>, and __make_signed<char8_t>.
* libsupc++/atomic_lockfree_defines.h: Define
ATOMIC_CHAR8_T_LOCK_FREE.
* src/c++11/Makefile.am: Compile with -fchar8_t when compiling
codecvt.cc and limits.cc so that char8_t specializations of
numeric_limits and codecvt and emitted.
* src/c++11/Makefile.in: Likewise.
* src/c++11/codecvt.cc: Define members of
codecvt<char16_t, char8_t, mbstate_t>,
codecvt<char32_t, char8_t, mbstate_t>,
codecvt_byname<char16_t, char8_t, mbstate_t>, and
codecvt_byname<char32_t, char8_t, mbstate_t>.
* src/c++11/limits.cc: Define members of
numeric_limits<char8_t>.
* src/c++98/Makefile.am: Compile with -fchar8_t when compiling
locale_init.cc and localename.cc.
* src/c++98/Makefile.in: Likewise.
* src/c++98/locale_init.cc: Add initialization for the
codecvt<char16_t, char8_t, mbstate_t> and
codecvt<char32_t, char8_t, mbstate_t> facets.
* src/c++98/localename.cc: Likewise.
* testsuite/util/testsuite_abi.cc: Validate ABI bump.

From-SVN: r269004

5 years agoPR c++/89336 - multiple stores in constexpr stmt.
Jason Merrill [Tue, 19 Feb 2019 01:01:50 +0000 (20:01 -0500)]
PR c++/89336 - multiple stores in constexpr stmt.

If we evaluate the RHS in the context of the LHS, that evaluation might
change the LHS in ways that mess with being able to store the value later.
So for assignment or scalar values, evaluate the RHS first.

* constexpr.c (cxx_eval_store_expression): Preevaluate scalar or
assigned value.

From-SVN: r269003

5 years agoDaily bump.
GCC Administrator [Tue, 19 Feb 2019 00:16:16 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r269002

5 years agolibphobos: Detect if qsort_r is available
Johannes Pfau [Mon, 18 Feb 2019 23:29:39 +0000 (23:29 +0000)]
libphobos: Detect if qsort_r is available

Merges upstream druntime bbfb58e8.

libphobos/ChangeLog:

2019-02-19  Johannes Pfau  <johannespfau@gmail.com>

PR d/88127
* m4/druntime/libraries.m4 (DRUNTIME_LIBRARIES_CLIB): Add new macro.
* configure.ac: Use DRUNTIME_LIBRARIES_CLIB.
* configure: Regenerate
* Makefile.in: Regenerate
* libdruntime/gcc/config.d.in: Add Have_Qsort_R.
* libdruntime/Makefile.in: Regenerate.
* src/Makefile.in: Regenerate.
* testsuite/Makefile.in: Regenerate.

From-SVN: r268999

5 years ago* fr.po: Update.
Joseph Myers [Mon, 18 Feb 2019 23:16:00 +0000 (23:16 +0000)]
* fr.po: Update.

From-SVN: r268998

5 years agoImprove diagnostic for redundant template arguments in declaration.
Jason Merrill [Mon, 18 Feb 2019 21:35:48 +0000 (16:35 -0500)]
Improve diagnostic for redundant template arguments in declaration.

* pt.c (check_explicit_specialization): If the declarator is a
template-id, only check whether the arguments are dependent.

From-SVN: r268997

5 years agoREADME: Fix typos.
Sharon Dvir [Mon, 18 Feb 2019 21:10:57 +0000 (21:10 +0000)]
README: Fix typos.

2019-02-18  Sharon Dvir  <unapologtic@gmail.com>

gcc/testsuite/
* README: Fix typos.

From-SVN: r268996

5 years agoFix g++.dg/torture/pr89303.C with Solaris ld
Rainer Orth [Mon, 18 Feb 2019 20:25:55 +0000 (20:25 +0000)]
Fix g++.dg/torture/pr89303.C with Solaris ld

* g++.dg/torture/pr89303.C (bad_weak_ptr): Rename to
bad_weak_ptr_.

From-SVN: r268995

5 years agoImprove duplicate [[likely]] diagnostic.
Jason Merrill [Mon, 18 Feb 2019 19:34:02 +0000 (14:34 -0500)]
Improve duplicate [[likely]] diagnostic.

* parser.c (cp_parser_statement): Make attrs_loc a range.  Pass it
to process_stmt_hotness_attribute.
* cp-gimplify.c (process_stmt_hotness_attribute): Take attrs_loc.
(genericize_if_stmt): Use likely/unlikely instead of predictor_name.

From-SVN: r268994

5 years agocpp.texi (Conditional syntax): Add __has_attribute, __has_cpp_attribute, and __has_in...
Martin Sebor [Mon, 18 Feb 2019 18:37:55 +0000 (18:37 +0000)]
cpp.texi (Conditional syntax): Add __has_attribute, __has_cpp_attribute, and __has_include.

gcc/ChangeLog:

* doc/cpp.texi (Conditional syntax): Add __has_attribute,
__has_cpp_attribute, and __has_include.

From-SVN: r268993

5 years agore PR fortran/87689 (PowerPC64 ELFv2 function parameter passing violation)
Thomas Koenig [Mon, 18 Feb 2019 18:28:58 +0000 (18:28 +0000)]
re PR fortran/87689 (PowerPC64 ELFv2 function parameter passing violation)

2019-02-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

    PR fortran/87689
    * trans-decl.c (gfc_get_extern_function_decl): Add argument
    actual_args and pass it through to gfc_get_function_type.
    * trans-expr.c (conv_function_val): Add argument actual_args
    and pass it on to gfc_get_extern_function_decl.
    (conv_procedure_call): Pass actual arguments to conv_function_val.
    * trans-types.c (get_formal_from_actual_arglist): New function.
    (gfc_get_function_type): Add argument actual_args.  Generate
    formal args from actual args if necessary.
    * trans-types.h (gfc_get_function_type): Add optional argument.
    * trans.h (gfc_get_extern_function_decl): Add optional argument.

2019-02-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

    PR fortran/87689
    * gfortran.dg/lto/20091028-1_0.f90: Add -Wno-lto-type-mismatch to
    options.
    * gfortran.dg/lto/20091028-2_0.f90: Likewise.
    * gfortran.dg/lto/pr87689_0.f: New file.
    * gfortran.dg/lto/pr87689_1.f: New file.

From-SVN: r268992

5 years agoinvoke.texi (-Wreturn-type): Correct and expand.
Martin Sebor [Mon, 18 Feb 2019 17:44:11 +0000 (17:44 +0000)]
invoke.texi (-Wreturn-type): Correct and expand.

gcc/ChangeLog:

* doc/invoke.texi (-Wreturn-type): Correct and expand.

From-SVN: r268991

5 years agoPR middle-end/89294 - ICE in valid_constant_size_p
Martin Sebor [Mon, 18 Feb 2019 16:31:17 +0000 (16:31 +0000)]
PR middle-end/89294 - ICE in valid_constant_size_p

gcc/c-family/ChangeLog:

PR middle-end/89294
* c-common.c (invalid_array_size_error): Handle cst_size_not_constant.

gcc/ChangeLog:

PR middle-end/89294
* tree.c (valid_constant_size_p): Avoid assuming size is a constant
expression.
* tree.h (cst_size_error): Add the cst_size_not_constant enumerator.

From-SVN: r268990

5 years agoFix libstdc++ filesystem tests
Wilco Dijkstra [Mon, 18 Feb 2019 14:09:17 +0000 (14:09 +0000)]
Fix libstdc++ filesystem tests

Some recently added libstdc++ filesystem tests are missing a
dg-require-filesystem-ts.

Committed as obvious.

    libstdc++/testsuite/
* 27_io/filesystem/operations/all.cc: Add dg-require-filesystem-ts.
* 27_io/filesystem/operations/resize_file.cc: Likewise.
* 27_io/filesystem/path/generation/normal2.cc: Likewise.

From-SVN: r268989

5 years agoFix test pr88680.C
Wilco Dijkstra [Mon, 18 Feb 2019 14:06:49 +0000 (14:06 +0000)]
Fix test pr88680.C

Fix pr88680.C failures due to short enums on arm-none-eabi.

Committed as obvious.

    gcc/testsuite/
* g++.dg/wrappers/pr88680.C: Add -fno-short-enums.

From-SVN: r268988

5 years agoTabify all D *.exp files
Rainer Orth [Mon, 18 Feb 2019 13:53:51 +0000 (13:53 +0000)]
Tabify all D *.exp files

libphobos:
* testsuite/lib/libphobos-dg.exp: Tabify.
* testsuite/lib/libphobos.exp: Likewise.
* testsuite/libphobos.cycles/cycles.exp: Likewise.
* testsuite/libphobos.shared/shared.exp: Likewise.
* testsuite/libphobos.unittests/unittests.exp: Likewise.

gcc/testsuite:
* gdc.dg/dg.exp: Tabify.
* gdc.dg/lto/lto.exp: Likewise.
* gdc.test/gdc-test.exp: Likewise.
* lib/gdc-dg.exp: Likewise.
* lib/gdc.exp: Likewise.

From-SVN: r268987

5 years agore PR tree-optimization/89296 (tree copy-header masking uninitialized warning)
Richard Biener [Mon, 18 Feb 2019 12:56:15 +0000 (12:56 +0000)]
re PR tree-optimization/89296 (tree copy-header masking uninitialized warning)

2019-02-18  Richard Biener  <rguenther@suse.de>

PR tree-optimization/89296
* tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
of no-warning flag to cases that might emit the bogus warning.

* gcc.dg/uninit-pr89296.c: New testcase.

From-SVN: r268986

5 years agore PR bootstrap/88714 (bootstrap comparison failure on armv7l since r265398)
Jakub Jelinek [Mon, 18 Feb 2019 12:52:36 +0000 (13:52 +0100)]
re PR bootstrap/88714 (bootstrap comparison failure on armv7l since r265398)

PR bootstrap/88714
* config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
"q" constraint.
* config/arm/vfp.md (*movdi_vfp): Likewise.
* config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
"q" constraint for operands[0].

From-SVN: r268985

5 years agore PR target/89369 (pseudo-RNG miscompiled on s390x-linux with -O2 -march=zEC12 ...
Jakub Jelinek [Mon, 18 Feb 2019 11:20:43 +0000 (12:20 +0100)]
re PR target/89369 (pseudo-RNG miscompiled on s390x-linux with -O2 -march=zEC12 -mtune=z13 starting with r266203)

PR target/89369
* config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
*r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
pattern in a temporary buffer.
(*r<noxa>sbg_sidi_srl): Likewise.  Always use 32 as I3 rather
than 64-operands[2].

* gcc.c-torture/execute/pr89369.c: New test.
* gcc.target/s390/md/rXsbg_mode_sXl.c (rosbg_si_srl,
rxsbg_si_srl): Expect last 3 operands 32,63,62 rather than
34,63,62.

From-SVN: r268984

5 years agore PR target/89361 (s390 broken without S390_USE_TARGET_ATTRIBUTE, likely since r257489)
Jakub Jelinek [Mon, 18 Feb 2019 11:16:33 +0000 (12:16 +0100)]
re PR target/89361 (s390 broken without S390_USE_TARGET_ATTRIBUTE, likely since r257489)

PR target/89361
* config/s390/s390.c (s390_indirect_branch_attrvalue,
s390_indirect_branch_settings): Define unconditionally.
(s390_set_current_function): Likewise, but guard the whole body except
the s390_indirect_branch_settings call with
#if S390_USE_TARGET_ATTRIBUTE.
(TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.

From-SVN: r268983

5 years ago* config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
Jakub Jelinek [Mon, 18 Feb 2019 10:08:04 +0000 (11:08 +0100)]
* config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,

*<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
Use HOST_WIDE_INT_M1U instead of ~(0ULL).
(*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
HOST_WIDE_INT_1U instead of 1ULL.
(*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
(*insv<mode><clobbercc_or_nocc>_appendbitsleft,
z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
instead of 1UL.
(*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
instead of 1ul.

From-SVN: r268982

5 years agoUse 1UL constant in order to not overflow (PR c++/89383).
Martin Liska [Mon, 18 Feb 2019 09:46:19 +0000 (10:46 +0100)]
Use 1UL constant in order to not overflow (PR c++/89383).

2019-02-18  Martin Liska  <mliska@suse.cz>

PR c++/89383
* line-map.c (linemap_line_start): Use 1UL in order
to not overflow.

From-SVN: r268981

5 years ago[PR 89209] Avoid segfault in a peculiar corner case in SRA
Martin Jambor [Mon, 18 Feb 2019 08:59:04 +0000 (09:59 +0100)]
[PR 89209] Avoid segfault in a peculiar corner case in SRA

2019-02-18  Martin Jambor  <mjambor@suse.cz>

PR tree-optimization/89209
* tree-sra.c (create_access_replacement): New optional parameter
reg_tree.  Use it as a type if non-NULL and access type is not of
a register type.
(get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
to create_access_replacement.
(sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
Check lacc is non-NULL before attempting to re-create it on the RHS.

testsuite/
* gcc.dg/tree-ssa/pr89209.c: New test.

From-SVN: r268980

5 years agoCome up with fast {function,call}_summary classes (PR ipa/89306).
Martin Liska [Mon, 18 Feb 2019 08:21:23 +0000 (09:21 +0100)]
Come up with fast {function,call}_summary classes (PR ipa/89306).

2019-02-18  Martin Liska  <mliska@suse.cz>

PR ipa/89306
* cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
by default.
(symbol_table::free_edge): Recycle m_summary_id.
* cgraph.h (get_summary_id): New.
(symbol_table::release_symbol): Set m_summary_id to -1
by default.
(symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
* ipa-fnsummary.c (ipa_fn_summary_t): Switch from
function_summary to fast_function_summary.
* ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
* ipa-pure-const.c (class funct_state_summary_t):
Switch from function_summary to fast_function_summary.
* ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
(class ipa_ref_opt_summary_t): Switch from function_summary
to fast_function_summary.
* symbol-summary.h (class function_summary_base): New class
that is created from base of former function_summary.
(function_summary_base::unregister_hooks): New.
(class function_summary): Inherit from function_summary_base.
(class call_summary_base): New class
that is created from base of former call_summary.
(class call_summary): Inherit from call_summary_base.
(struct is_same): New.
(class fast_function_summary): New summary class.
(class fast_call_summary): New summary class.
* vec.h (vec_safe_grow_cleared): New function.

From-SVN: r268979

5 years agoSupport if statement in !GCC$ builtin directive.
Martin Liska [Mon, 18 Feb 2019 08:19:47 +0000 (09:19 +0100)]
Support if statement in !GCC$ builtin directive.

2019-02-18  Martin Liska  <mliska@suse.cz>

* config/i386/i386.c (ix86_get_multilib_abi_name): New function.
(TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
* doc/tm.texi: Document new target hook.
* doc/tm.texi.in: Likewise.
* target.def: Add new target macro.
* gcc.c (find_fortran_preinclude_file): Do not search multilib
suffixes.
2019-02-18  Martin Liska  <mliska@suse.cz>

* decl.c (gfc_match_gcc_builtin): Add support for filtering
of builtin directive based on multilib ABI name.
2019-02-18  Martin Liska  <mliska@suse.cz>

* gfortran.dg/simd-builtins-7.f90: New test.
* gfortran.dg/simd-builtins-7.h: New test.

From-SVN: r268978

5 years agoDaily bump.
GCC Administrator [Mon, 18 Feb 2019 00:17:08 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r268977

5 years agore PR fortran/88299 ([F18] COMMON in a legacy module produces bogus warnings in depen...
Harald Anlauf [Sun, 17 Feb 2019 21:19:20 +0000 (21:19 +0000)]
re PR fortran/88299 ([F18] COMMON in a legacy module produces bogus warnings in dependent code)

2019-02-17  Harald Anlauf  <anlauf@gmx.de>

PR fortran/88299
* resolve.c (resolve_common_blocks,resolve_common_vars): Move
check for obsolent COMMON feature in F2018 to better place.

PR fortran/88299
* gfortran.dg/pr88299.f90: New test.

From-SVN: r268974

5 years agore PR fortran/89077 (ICE using * as len specifier for character parameter)
Harald Anlauf [Sun, 17 Feb 2019 21:14:14 +0000 (21:14 +0000)]
re PR fortran/89077 (ICE using * as len specifier for character parameter)

2019-02-17  Harald Anlauf  <anlauf@gmx.de>

PR fortran/89077
* decl.c (gfc_set_constant_character_len): Clear original string
representation after padding has been performed to target length.

PR fortran/89077
* gfortran.dg/transfer_simplify_12.f90: New test.

From-SVN: r268973

5 years agore PR c++/89356 (sorry, unimplemented: mangling implicit_conv_expr in nodejs8 package...
Marek Polacek [Sun, 17 Feb 2019 17:53:54 +0000 (17:53 +0000)]
re PR c++/89356 (sorry, unimplemented: mangling implicit_conv_expr in nodejs8 package since r268321)

PR c++/89356
* g++.dg/abi/mangle68.C: New test.
* g++.dg/cpp0x/decltype69.C: New test.

From-SVN: r268972

5 years agore PR c++/89315 (Cannot convert to std::initializer_list - fails with gcc9 works...
Marek Polacek [Sun, 17 Feb 2019 17:25:27 +0000 (17:25 +0000)]
re PR c++/89315 (Cannot convert to std::initializer_list - fails with gcc9 works with gcc8)

PR c++/89315
* g++.dg/cpp0x/initlist114.C: New test.

From-SVN: r268971

5 years ago* g++.old-deja/g++.robertl/eb82.C: Tweak dg-error.
Marek Polacek [Sun, 17 Feb 2019 16:55:37 +0000 (16:55 +0000)]
* g++.old-deja/g++.robertl/eb82.C: Tweak dg-error.

From-SVN: r268970

5 years agoPR c++/89217 - ICE with list-initialization in range-based for loop.
Marek Polacek [Sun, 17 Feb 2019 16:52:40 +0000 (16:52 +0000)]
PR c++/89217 - ICE with list-initialization in range-based for loop.

* constexpr.c (unshare_constructor): No longer static.
* cp-tree.h (unshare_constructor): Declare.
* semantics.c (finish_compound_literal): When dealing with a
non-dependent expression in a template, return the original
expression.  Pass LOOKUP_NO_NARROWING to digest_init_flags.

* g++.dg/cpp0x/range-for37.C: New test.

From-SVN: r268969

5 years ago[RS6000] Fix <bd>_<mode> and <bd>tf_<mode> splitters
Alan Modra [Sun, 17 Feb 2019 03:01:41 +0000 (13:31 +1030)]
[RS6000] Fix <bd>_<mode> and <bd>tf_<mode> splitters

This patch fixes a bug that can result in "insn does not satisfy its
constraints" if these splitters fire due to not getting ctr for the
jump insn.  Since the jump insn can have any of r,m,d,wi,c,l as the
decremented count output, it's not sufficient to check for
gpc_reg_operand (which matches VSX regs for example).  Seen after
correcting register_move_cost when the cost of gpr <-> vsx is much
lower.  Since this is a prerequisite to fixing PR89271, I'm mentioning
that PR in the ChangeLog.

The <bd>tf_<mode> split had a further bug in that it wouldn't match
if the count output was m,d,wi, or l.

PR target/89271
* config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
output reg on add insn.
(<bd>tf_<mode> split): Likewise.  Match predicates with insn.

From-SVN: r268968

5 years agoDaily bump.
GCC Administrator [Sun, 17 Feb 2019 00:16:28 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r268967

5 years agoi386: Add ssse3_pmulhrswv4hi3 expander
H.J. Lu [Sat, 16 Feb 2019 22:16:04 +0000 (22:16 +0000)]
i386: Add ssse3_pmulhrswv4hi3 expander

There is no V4HI pmulhrsw in AVX512BW and V4HI/V8HI pmulhrsw don't require
AVX2.

PR target/89372
* config/i386/sse.md (ssedoublemode): Remove V4HI.
(PMULHRSW): Likewise.
(<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
TARGET_AVX2.
(ssse3_pmulhrswv4hi3): New expander.

From-SVN: r268964

5 years agoi386: Correct *vec_extractv2si_zext_mem
H.J. Lu [Sat, 16 Feb 2019 20:29:24 +0000 (20:29 +0000)]
i386: Correct *vec_extractv2si_zext_mem

The second and third alternatives in *vec_extractv2si_zext_mem don't
require MMX.  But the second one requires SSE2.

* config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
MMX.  Add isa attribute.

From-SVN: r268963

5 years agore PR tree-optimization/88074 (g++ hangs on math expression)
Jakub Jelinek [Sat, 16 Feb 2019 18:46:04 +0000 (19:46 +0100)]
re PR tree-optimization/88074 (g++ hangs on math expression)

PR middle-end/88074
* simplify.c (simplify_transformation_to_array): Run post_op
immediately after processing corresponding row, rather than at the
end.
(norm2_scale): New variable.
(add_squared): Rename to ...
(norm2_add_squared): ... this.  Scale down operand and/or result
if needed.
(do_sqrt): Rename to ...
(norm2_do_sqrt): ... this.  Handle the result == e case.  Scale up
result and clear norm2_scale.
(gfc_simplify_norm2): Clear norm2_scale.  Change add_squared to
norm2_add_squared and &do_sqrt to norm2_do_sqrt.  Scale up result
and clear norm2_scale again.

From-SVN: r268962

5 years agoFix excess warnings from -Wtype-limits with location wrappers (PR c++/88680)
David Malcolm [Sat, 16 Feb 2019 16:17:17 +0000 (16:17 +0000)]
Fix excess warnings from -Wtype-limits with location wrappers (PR c++/88680)

PR c++/88680 reports excess warnings from -Wtype-limits after the C++
FE's use of location wrappers was extended in r267272 for cases such as:

  const unsigned n = 8;
  static_assert (n >= 0 && n % 2 == 0, "");

t.C:3:18: warning: comparison of unsigned expression >= 0 is always true
  [-Wtype-limits]
    3 | static_assert (n >= 0 && n % 2 == 0, "");
      |                ~~^~~~

The root cause is that the location wrapper around "n" breaks the
suppression of the warning for the "if OP0 is a constant that is >= 0"
case.

This patch fixes it by calling fold_for_warn on OP0, extracting the
constant.

gcc/c-family/ChangeLog:
PR c++/88680
* c-common.c (shorten_compare): Call fold_for_warn on op0 when
implementing -Wtype-limits.

gcc/testsuite/ChangeLog:
PR c++/88680
* g++.dg/wrappers/pr88680.C: New test.

From-SVN: r268961

5 years agore PR fortran/71066 (ICE in set_loop_bounds, at fortran/trans-array.c:4680)
Thomas Koenig [Sat, 16 Feb 2019 16:12:51 +0000 (16:12 +0000)]
re PR fortran/71066 (ICE in set_loop_bounds, at fortran/trans-array.c:4680)

2019-02-17  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/71066
* trans-decl.c (generate_coarray_sym_init):  For an array
constructor in a DATA statement of a coarray variable, set the
rank to 1 to avoid confusion later on.  If the constructor
contains only one value, use that for initiailizig.

2019-02-17  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/71066
* gfortran.dg/coarray_data_1.f90: New test.

From-SVN: r268960

5 years agopatchable_function_entry-decl.c: Add -fno-pie on SPARC.
Eric Botcazou [Sat, 16 Feb 2019 14:40:53 +0000 (14:40 +0000)]
patchable_function_entry-decl.c: Add -fno-pie on SPARC.

* c-c++-common/patchable_function_entry-decl.c: Add -fno-pie on SPARC.
* c-c++-common/patchable_function_entry-default.c: Likewise.
* c-c++-common/patchable_function_entry-definition.c: Likewise.

From-SVN: r268958

5 years agore PR rtl-optimization/66152 (suboptimal load bytes to stack)
Jakub Jelinek [Sat, 16 Feb 2019 11:20:33 +0000 (12:20 +0100)]
re PR rtl-optimization/66152 (suboptimal load bytes to stack)

PR rtl-optimization/66152
* builtins.h (c_readstr): Declare.
* builtins.c (c_readstr): Remove forward declaration.  Add
null_terminated_p argument, if false, read all bytes from the
string instead of stopping after '\0'.
* expr.c (string_cst_read_str): New function.
(store_expr): Use string_cst_read_str instead of
builtin_strncpy_read_str.  Try to store by pieces the whole
exp_len first, and only if that fails, split it up into
store by pieces followed by clear_storage.  Formatting fix.

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

From-SVN: r268957

5 years agoi386.md (*movqi_internal): Remove static from buf variable.
Jakub Jelinek [Sat, 16 Feb 2019 10:05:16 +0000 (11:05 +0100)]
i386.md (*movqi_internal): Remove static from buf variable.

* config/i386/i386.md (*movqi_internal): Remove static from
buf variable.  Use output_asm_insn (buf, operands); return "";
instead of return buf;.
* config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
*<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
*<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.

From-SVN: r268956

5 years agoDaily bump.
GCC Administrator [Sat, 16 Feb 2019 00:16:34 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r268955

5 years agocompiler,runtime: use __builtin_dwarf_cfa for getcallersp
Cherry Zhang [Fri, 15 Feb 2019 23:22:29 +0000 (23:22 +0000)]
compiler,runtime: use __builtin_dwarf_cfa for getcallersp

    Currently, the compiler lowers runtime.getcallersp to
    __builtin_frame_address(1). In the C side of the runtime,
    getcallersp is defined as __builtin_frame_address(0). They don't
    match. Further, neither of them actually returns the caller's SP.
    On AMD64, __builtin_frame_address(0) just returns the frame
    pointer. __builtin_frame_address(1) returns the memory content
    where the frame pointer points to, which is typically the
    caller's frame pointer but can also be garbage if the frame
    pointer is not enabled.

    This CL changes it to use __builtin_dwarf_cfa(), which returns
    the caller's SP at the call site. This matches the SP we get
    from unwinding the stack.

    Currently getcallersp is not used for anything real. It will be
    used for precise stack scan (a new version of CL 159098).

    Reviewed-on: https://go-review.googlesource.com/c/162905

* go-gcc.cc (Gcc_backend::Gcc_backend): Define __builtin_dwarf_cfa
instead of __builtin_frame_address.

From-SVN: r268952

5 years agoasan_oob_test.cc: Skip OOB_int on SPARC.
Eric Botcazou [Fri, 15 Feb 2019 23:16:25 +0000 (23:16 +0000)]
asan_oob_test.cc: Skip OOB_int on SPARC.

* g++.dg/asan/asan_oob_test.cc: Skip OOB_int on SPARC.
* g++.dg/asan/function-argument-3.C: Tweak for 32-bit SPARC.

From-SVN: r268951

5 years agolinux.h (ASAN_CC1_SPEC): Define.
Eric Botcazou [Fri, 15 Feb 2019 23:08:49 +0000 (23:08 +0000)]
linux.h (ASAN_CC1_SPEC): Define.

* config/sparc/linux.h (ASAN_CC1_SPEC): Define.
(CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
* config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
(CC1_SPEC): Likewise.
* config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.

From-SVN: r268950

5 years agoasan.c (asan_emit_stack_protection): Use full-sized mask to align the base address...
Eric Botcazou [Fri, 15 Feb 2019 21:40:24 +0000 (21:40 +0000)]
asan.c (asan_emit_stack_protection): Use full-sized mask to align the base address on 64-bit strict-alignment platforms.

* asan.c (asan_emit_stack_protection): Use full-sized mask to align
the base address on 64-bit strict-alignment platforms.

From-SVN: r268949

5 years agore PR go/89368 (ICE in go/gofrontend/expressions.cc:4669 after r268923)
Ian Lance Taylor [Fri, 15 Feb 2019 21:04:58 +0000 (21:04 +0000)]
re PR go/89368 (ICE in go/gofrontend/expressions.cc:4669 after r268923)

PR go/89368
    compiler: write barrier check nil-check policy tweak

    Tweak the recipe for generating writeBarrier loads to insure that the
    dereference expr is marked as not requiring a nil check (not needed
    for gccgo, but needed for gollvm).

    Fixes https://gcc.gnu.org/PR89368

    Reviewed-on: https://go-review.googlesource.com/c/162904

From-SVN: r268948

5 years agoi386: Fix ')' in VALID_MMX_REG_MODE
H.J. Lu [Fri, 15 Feb 2019 20:47:31 +0000 (20:47 +0000)]
i386: Fix ')' in VALID_MMX_REG_MODE

Replace "(MODE == V1DImode)" with "(MODE) == V1DImode".

* config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced
')'.

From-SVN: r268947

5 years agodarwin.h (TARGET_FPMATH_DEFAULT_P): New define.
Uros Bizjak [Fri, 15 Feb 2019 18:02:50 +0000 (19:02 +0100)]
darwin.h (TARGET_FPMATH_DEFAULT_P): New define.

* config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.

From-SVN: r268944

5 years agoArm: Remove alternative from neon_softfp_fp16 directive.
Tamar Christina [Fri, 15 Feb 2019 17:17:17 +0000 (17:17 +0000)]
Arm: Remove alternative from neon_softfp_fp16 directive.

There's a bit of a disconnect between the feature flags that don't test the fpu
and ones that do when the test itself also forces an architecture.  The forcing
of the architecture would change the defaults and without explicitly giving the
correct fpu again the test would fail.

I don't see a good way to solve this problem, really the feature tests should
ideally contain the extra options the test adds too, but for this specific case
it can be solved by always testing the fpu explicitly.

Committed under the GCC obvious

gcc/testsuite/ChangeLog:

* lib/target-supports.exp
(check_effective_target_arm_neon_softfp_fp16_ok_nocache): Drop non-fpu
checking alternative.

From-SVN: r268943

5 years agore PR rtl-optimization/88308 (ICE in maybe_record_trace_start, at dwarf2cfi.c:2309)
Aaron Sawdey [Fri, 15 Feb 2019 15:41:25 +0000 (15:41 +0000)]
re PR rtl-optimization/88308 (ICE in maybe_record_trace_start, at dwarf2cfi.c:2309)

2019-02-15  Aaron Sawdey  <acsawdey@linux.ibm.com>

PR rtl-optimization/88308
* shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
on copied instruction.

From-SVN: r268942

5 years agore PR go/89123 (Too many go test failures on s390x-linux)
Ian Lance Taylor [Fri, 15 Feb 2019 14:51:10 +0000 (14:51 +0000)]
re PR go/89123 (Too many go test failures on s390x-linux)

PR go/89123
    internal/cpu, runtime: add S/390 CPU capability support

    Patch by Robin Dapp.

    Updates https://gcc.gnu.org/PR89123

    Reviewed-on: https://go-review.googlesource.com/c/162887

From-SVN: r268941

5 years agoruntime: include <syscall.h> and <sys/syscall.h> if available
Ian Lance Taylor [Fri, 15 Feb 2019 14:25:12 +0000 (14:25 +0000)]
runtime: include <syscall.h> and <sys/syscall.h> if available

    Fixes Solaris build.

    Reviewed-on: https://go-review.googlesource.com/c/162885

From-SVN: r268940

5 years agoruntime: add type cast for non-split-stack calls to scanstackblock
Ian Lance Taylor [Fri, 15 Feb 2019 13:54:45 +0000 (13:54 +0000)]
runtime: add type cast for non-split-stack calls to scanstackblock

    Reviewed-on: https://go-review.googlesource.com/c/162884

From-SVN: r268939

5 years ago* gcc.target/sparc/struct-ret-check-1.c: Add -fno-pie option.
Eric Botcazou [Fri, 15 Feb 2019 10:55:50 +0000 (10:55 +0000)]
* gcc.target/sparc/struct-ret-check-1.c: Add -fno-pie option.

From-SVN: r268934