Richard Biener [Thu, 7 Mar 2019 12:46:44 +0000 (12:46 +0000)]
re PR tree-optimization/89595 (DOM miscompiles code)
2019-03-07 Richard Biener <rguenther@suse.de>
PR tree-optimization/89595
* tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
stmt iterator as reference, take boolean output parameter to
indicate whether the stmt was removed and thus the iterator
already advanced.
(dom_opt_dom_walker::before_dom_children): Re-iterate over
stmts created by folding.
* gcc.dg/torture/pr89595.c: New testcase.
From-SVN: r269453
Jakub Jelinek [Thu, 7 Mar 2019 08:18:36 +0000 (09:18 +0100)]
re PR c++/89585 (GCC 8.3: asm volatile no longer accepted at file scope)
PR c++/89585
* doc/extend.texi (Basic Asm): Document qualifiers are not allowed
at toplevel.
* parser.c (cp_parser_asm_definition): Parse asm qualifiers even
at toplevel, but diagnose them.
* g++.dg/asm-qual-3.C: Adjust expected diagnostics.
From-SVN: r269451
Ian Lance Taylor [Thu, 7 Mar 2019 00:53:41 +0000 (00:53 +0000)]
re PR go/89227 (gotools test cmd/go fails with link error "call lacks nop, can't restore toc; recompile with -fPIC")
PR go/89227
* go-gcc.cc (Gcc_backend::function): Set TREE_PUBLIC for an
only-inline function.
From-SVN: r269449
GCC Administrator [Thu, 7 Mar 2019 00:16:32 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r269448
Harald Anlauf [Wed, 6 Mar 2019 21:06:35 +0000 (21:06 +0000)]
re PR fortran/71203 (ICE in add_init_expr_to_sym, at fortran/decl.c:1512 and :1564)
2019-03-06 Harald Anlauf <anlauf@gmx.de>
PR fortran/71203
* expr.c (simplify_const_ref): Avoid null pointer dereference.
PR fortran/71203
* gfortran.dg/substr_8.f90: New test.
From-SVN: r269444
Ian Lance Taylor [Wed, 6 Mar 2019 20:40:32 +0000 (20:40 +0000)]
compiler: emit underlying constant in array_type length export
In Array_type::do_export, when emitting a concrete array length,
evaluate the length expression to an integer constant and emit that
constant, instead of calling the more general method for emitting
expressions. This is to avoid the possibility that we will need
to emit a conversion, which could confuse the gccgoimporter.
Fixes golang/go#30628.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/165741
From-SVN: r269443
Jason Merrill [Wed, 6 Mar 2019 20:28:47 +0000 (15:28 -0500)]
PR c++/89381 - implicit copy and using-declaration.
Here the used base<int>::operator= gets into the list of foo's bindings for
operator=, but it shouldn't make the copy ctor deleted.
* class.c (classtype_has_move_assign_or_move_ctor_p): Don't consider
op= brought in by a using-declaration.
From-SVN: r269442
Jakub Jelinek [Wed, 6 Mar 2019 18:46:32 +0000 (19:46 +0100)]
re PR c++/87148 (backward compatibility issue to take char [] as incomplete type)
PR c++/87148
* init.c (build_value_init_noctor): Ignore flexible array members.
* g++.dg/ext/flexary34.C: New test.
From-SVN: r269434
Jason Merrill [Wed, 6 Mar 2019 18:39:24 +0000 (13:39 -0500)]
PR c++/89576 - if constexpr of lambda capture.
Now that we're doing implicit lambda capture in templates, we see x here as
the lambda capture. maybe_convert_cond was doing nothing in a template, so
we never called mark_rvalue_use on x. As part of the broad move toward
doing more processing of non-dependent expressions, let's do this
conversion.
* semantics.c (maybe_convert_cond): Do convert a non-dependent
condition in a template.
* typeck.c (condition_conversion): Handle being called in a
template.
From-SVN: r269433
Uros Bizjak [Wed, 6 Mar 2019 15:49:13 +0000 (16:49 +0100)]
encoding.c (DFmode): #undef before #define.
* encoding.c (DFmode): #undef before #define.
From-SVN: r269429
Peter Bergner [Wed, 6 Mar 2019 15:36:43 +0000 (15:36 +0000)]
re PR rtl-optimization/88845 (ICE in lra_set_insn_recog_data, at lra.c:1010)
gcc/
PR rtl-optimization/88845
* config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
LRA.
* lra.c (remove_scratches_1): New function.
(remove_scratches): Use it.
(lra_emit_move): Likewise.
gcc/testsuite/
PR rtl-optimization/88845
* gcc.target/powerpc/pr88845.c: New test.
From-SVN: r269428
Marek Polacek [Wed, 6 Mar 2019 15:34:50 +0000 (15:34 +0000)]
PR c++/87378 - bogus -Wredundant-move warning.
* typeck.c (maybe_warn_pessimizing_move): See if the maybe-rvalue
overload resolution would actually succeed.
* g++.dg/cpp0x/Wredundant-move1.C (fn4): Drop dg-warning.
* g++.dg/cpp0x/Wredundant-move7.C: New test.
From-SVN: r269427
Jonathan Wakely [Wed, 6 Mar 2019 15:31:06 +0000 (15:31 +0000)]
Add feature test macro for bounded array traits
* include/std/type_traits (__cpp_lib_bounded_array_traits): Define.
* include/std/version (__cpp_lib_bounded_array_traits): Likewise.
* testsuite/20_util/is_bounded_array/value.cc: Check for macro.
* testsuite/20_util/is_unbounded_array/value.cc: Likewise.
From-SVN: r269426
Ian Lance Taylor [Wed, 6 Mar 2019 14:19:56 +0000 (14:19 +0000)]
mksysinfo: actually use modified Statfs_t value
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/165737
From-SVN: r269424
Edward Smith-Rowland [Wed, 6 Mar 2019 13:38:32 +0000 (13:38 +0000)]
PR libstdc++/86655 - std::assoc_legendre should not constrain
2019-03-06 Edward Smith-Rowland <3dw4rd@verizon.net>
PR libstdc++/86655 - std::assoc_legendre should not constrain
the value of m (or x).
* include/tr1/legendre_function.tcc (__assoc_legendre_p,
__sph_legendre): If degree > order Don't throw, return 0.
(__legendre_p, __assoc_legendre_p): Don't constrain x either.
* testsuite/special_functions/02_assoc_legendre/pr86655.cc: New test.
* testsuite/special_functions/20_sph_legendre/pr86655.cc: New test.
* testsuite/tr1/5_numerical_facilities/special_functions/
02_assoc_legendre/pr86655.cc: New test.
* testsuite/tr1/5_numerical_facilities/special_functions/
22_sph_legendre/pr86655.cc: New test.
From-SVN: r269423
Ville Voutilainen [Wed, 6 Mar 2019 12:56:05 +0000 (14:56 +0200)]
Rewrite variant, also PR libstdc++/85517
* include/std/variant (__do_visit): New.
(__variant_cast): Likewise.
(__variant_cookie): Likewise.
(__erased_*): Remove.
(_Variant_storage::_S_vtable): Likewise.
(_Variant_storage::__M_reset_impl): Adjust to use __do_visit.
(_Variant_storage::__M_reset): Adjust.
(__variant_construct): New.
(_Copy_ctor_base(const _Copy_ctor_base&)): Adjust to use
__variant_construct.
(_Move_ctor_base(_Move_ctor_base&&)): Likewise.
(_Move_ctor_base::__M_destructive_copy): New.
(_Move_ctor_base::__M_destructive_move): Adjust to use
__variant_construct.
(_Copy_assign_base::operator=): Adjust to use __do_visit.
(_Copy_assign_alias): Adjust to check both copy assignment
and copy construction for triviality.
(_Move_assign_base::operator=): Adjust to use __do_visit.
(_Multi_array): Add support for visitors that accept and return
a __variant_cookie.
(__gen_vtable_impl::_S_apply_all_alts): Likewise.
(__gen_vtable_impl::_S_apply_single_alt): Likewise.
(__gen_vtable_impl::__element_by_index_or_cookie): New. Generate
a __variant_cookie temporary for a variant that is valueless and..
(__gen_vtable_impl::__visit_invoke): ..adjust here.
(__gen_vtable::_Array_type): Conditionally make space for
the __variant_cookie visitor case.
(__variant_construct_by_index): New.
(get_if): Adjust to use std::addressof.
(relops): Adjust to use __do_visit.
(variant): Add __variant_cast and __variant_construct_by_index
as friends.
(variant::emplace): Use _M_reset() and __variant_construct_by_index
instead of self-destruction.
(variant::swap): Adjust to use __do_visit.
(visit): Reimplement in terms of __do_visit.
(__variant_hash_call_base_impl::operator()): Adjust to use __do_visit.
* testsuite/20_util/variant/compile.cc: Adjust.
* testsuite/20_util/variant/run.cc: Likewise.
From-SVN: r269422
Jonathan Wakely [Wed, 6 Mar 2019 12:13:19 +0000 (12:13 +0000)]
Add L suffix to __cpp_lib_char8_t value
* include/bits/c++config.h (_cpp_lib_char8_t): Add L suffix to
constant.
* testsuite/experimental/feat-char8_t.cc: Likewise.
From-SVN: r269421
Jonathan Wakely [Wed, 6 Mar 2019 12:13:14 +0000 (12:13 +0000)]
Add C++20 Traits for [Un]bounded Arrays (P1357R1)
* include/std/type_traits [C++20] (is_bounded_array)
(is_unbounded_array, is_bounded_array_v, is_unbounded_array_v):
Define.
* testsuite/20_util/is_bounded_array/requirements/
explicit_instantiation.cc: New test.
* testsuite/20_util/is_bounded_array/requirements/typedefs.cc: New
test.
* testsuite/20_util/is_bounded_array/value.cc: New test.
* testsuite/20_util/is_unbounded_array/requirements/
explicit_instantiation.cc: New test.
* testsuite/20_util/is_unbounded_array/requirements/typedefs.cc: New
* test.
* testsuite/20_util/is_unbounded_array/value.cc: New test.
From-SVN: r269420
Martin Liska [Wed, 6 Mar 2019 11:46:15 +0000 (12:46 +0100)]
Charry pick libsanitizer r355488 (PR sanitizer/88684).
2019-03-06 Martin Liska <mliska@suse.cz>
PR sanitizer/88684
* sanitizer_common/sanitizer_platform.h (defined): Cherry pick.
(SANITIZER_NON_UNIQUE_TYPEINFO): Likewise.
* ubsan/ubsan_type_hash_itanium.cc (isDerivedFromAtOffset):
Likewise.
From-SVN: r269419
Jonathan Wakely [Wed, 6 Mar 2019 11:32:42 +0000 (11:32 +0000)]
Constexpr in std::pointer_traits (P1006R1)
* include/bits/ptr_traits.h [C++20] (pointer_traits<T*>::pointer_to):
Add constexpr.
* testsuite/20_util/pointer_traits/pointer_to_constexpr.cc: New test.
From-SVN: r269418
Claudiu Zissulescu [Wed, 6 Mar 2019 10:45:51 +0000 (11:45 +0100)]
[ARC] Fix logic set UNALIGNED_ACCESS
gcc/
xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
unaligned_access variable.
* config/arc/arc.c (arc_override_options): Set unaligned access
default on for HS CPUs.
* config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.
From-SVN: r269417
Richard Biener [Wed, 6 Mar 2019 10:13:08 +0000 (10:13 +0000)]
re PR middle-end/89551 (Test case gcc.dg/uninit-pred-8_b.c fails after r269302)
2019-03-06 Richard Biener <rguenther@suse.de>
PR testsuite/89551
* gcc.dg/uninit-pred-8_b.c: Force logical-op-non-short-circuit
the way that makes the testcase PASS.
From-SVN: r269416
Martin Liska [Wed, 6 Mar 2019 10:01:16 +0000 (11:01 +0100)]
Use --coverage instead of -fprofile-arcs -ftest-coverage in documentation (PR gcov-profile/89577).
2019-03-06 Martin Liska <mliska@suse.cz>
PR gcov-profile/89577
* doc/gcov.texi: Prefer to use --coverage.
* doc/sourcebuild.texi: Likewise.
From-SVN: r269415
Martin Liska [Wed, 6 Mar 2019 10:00:37 +0000 (11:00 +0100)]
Ignore a param in check-params-in-docs.py
2019-03-06 Martin Liska <mliska@suse.cz>
* check-params-in-docs.py: Ignore a param.
From-SVN: r269414
Ian Lance Taylor [Wed, 6 Mar 2019 05:02:16 +0000 (05:02 +0000)]
re PR go/89598 (go frontend fails to build against mpfr 2.4.2)
PR go/89598
compiler: use GMP_RNDN rather than MPFR_RNDN
Missed one last time around. This fixes the build with mpfr 2.4.2.
Fixes https://gcc.gnu.org/PR89598
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/165420
From-SVN: r269411
GCC Administrator [Wed, 6 Mar 2019 00:16:13 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r269409
Ian Lance Taylor [Tue, 5 Mar 2019 23:05:38 +0000 (23:05 +0000)]
runtime: enable precise GC checks when using stack maps
In the runtime there are bad pointer checks that currently don't
work with the concervative collector. With stack maps, the GC is
precise and the checks should work. Enable them.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/153871
From-SVN: r269406
Jakub Jelinek [Tue, 5 Mar 2019 22:41:39 +0000 (23:41 +0100)]
re PR libfortran/89593 (warning "passing argument 3 of ‘_gfortran_caf_{get,send}_by_ref’ from incompatible pointer type" when building libgfortran)
PR libgfortran/89593
* caf/single.c (_gfortran_caf_sendget_by_ref): Cast &temp to
gfc_descriptor_t * to avoid warning.
From-SVN: r269405
Ian Lance Taylor [Tue, 5 Mar 2019 22:40:21 +0000 (22:40 +0000)]
cmd/go: pass -X64 to ar on aix/ppc64
On aix/ppc64, ar tool must always have -X64 argument if it aims to
create 64 bits archives.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/165317
From-SVN: r269404
Jason Merrill [Tue, 5 Mar 2019 22:20:41 +0000 (17:20 -0500)]
PR c++/86485 - -Wmaybe-unused with empty class ?:
The problem in this testcase is that the front end expects an rvalue
COND_EXPR to initialize a single temporary from one of the arms. But
because gimplify_cond_expr used MODIFY_EXPR, instead the arms would each
create their own temporary and then copy that into the common temporary.
So, let's use INIT_EXPR instead.
* gimplify.c (gimplify_cond_expr): Use INIT_EXPR.
From-SVN: r269403
Jason Merrill [Tue, 5 Mar 2019 22:17:13 +0000 (17:17 -0500)]
re PR c++/86485 ("anonymous" maybe-uninitialized false positive with ternary operator)
* class.c (is_really_empty_class): Add ignore_vptr parm.
While looking at PR86485, I noticed that many uses of is_really_empty_class
were overlooking that it returned true for a class with only a vptr;
initialization of such a class is not trivial. Marek's P1064 patch fixed
one place in constexpr.c to also check for a vtable, but there are several
others that still don't.
This patch requires callers to explicitly choose which behavior they want.
Currently the uses in constexpr.c want to consider the vptr, and other uses
don't.
* class.c (is_really_empty_class): Add ignore_vptr parm.
(trivial_default_constructor_is_constexpr): Pass it.
* call.c (build_over_call): Pass it.
* constexpr.c (cxx_eval_constant_expression): Pass it instead of
checking TYPE_POLYMORPHIC_P.
(cxx_eval_component_reference, potential_constant_expression_1):
Pass it.
* cp-gimplify.c (simple_empty_class_p): Pass it.
* init.c (expand_aggr_init_1): Pass it.
From-SVN: r269402
Ian Lance Taylor [Tue, 5 Mar 2019 20:49:21 +0000 (20:49 +0000)]
sysinfo: add Flags to Statfs_t if not already there
If there is no f_flags field in statfs_t then rename one of the
f_spare fields, as happened in Linux kernel version 2.6.36. This
fixes the build on CentOS 5.11. The CentOS kernel will hopefully not
fill in the f_spare field, so the resulting flags will be zero.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/165417
From-SVN: r269401
Ian Lance Taylor [Tue, 5 Mar 2019 19:41:42 +0000 (19:41 +0000)]
re PR go/89598 (go frontend fails to build against mpfr 2.4.2)
PR go/89598
compiler: use GMP_RNDN rather than MPFR_RNDN
This fixes the build with mpfr 2.4.2.
Fixes https://gcc.gnu.org/PR89598
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/165418
From-SVN: r269399
Jonathan Wakely [Tue, 5 Mar 2019 18:37:24 +0000 (18:37 +0000)]
Define midpoint and lerp functions for C++20 (P0811R3)
The implementation of midpoint used for integral types is due to Howard
Hinnant and avoids a branch for int and larger types (but not for chars
and shorts).
The midpoint and lerp functions for floating point types come straight
from the P0811R3 proposal, with no attempt at optimization.
* include/c_compatibility/math.h [C++20] (lerp): Add using
declaration.
* include/c_global/cmath [C++20] (__cpp_lib_interpolate): Define.
(__lerp): Define function template to implement lerp.
(lerp(float, float, float), lerp(double, double, double))
(lerp(long double, long double, long double)): Define for C++20.
* include/std/numeric [C++20] (__cpp_lib_interpolate): Define.
(midpoint(T, T), midpoint(T*, T*)): Define.
* include/std::version [C++20] (__cpp_lib_interpolate): Define.
* testsuite/26_numerics/lerp.cc: New test.
* testsuite/26_numerics/midpoint/floating.cc: New test.
* testsuite/26_numerics/midpoint/integral.cc: New test.
* testsuite/26_numerics/midpoint/pointer.cc: New test.
From-SVN: r269398
Jakub Jelinek [Tue, 5 Mar 2019 17:25:01 +0000 (18:25 +0100)]
re PR target/89587 (gcc's rs6000 configuration unconditionally sets MULTIARCH_DIRNAME, even when multiarch is disabled)
PR target/89587
* config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
if_multiarch.
From-SVN: r269396
Christophe Lyon [Tue, 5 Mar 2019 16:29:19 +0000 (16:29 +0000)]
dg-extract-results.py: Handle case where a WARNING happens with the first test of a harness.
2019-03-05 Christophe Lyon <christophe.lyon@linaro.org>
contrib/
* dg-extract-results.py: Handle case where a WARNING happens with
the first test of a harness.
From-SVN: r269394
Christophe Lyon [Tue, 5 Mar 2019 16:28:11 +0000 (16:28 +0000)]
dg-extract-results.sh: Fix order of WARNING and following test result.
2019-03-05 Christophe Lyon <christophe.lyon@linaro.org>
contrib/
* dg-extract-results.sh: Fix order of WARNING and following test
result.
From-SVN: r269393
Jakub Jelinek [Tue, 5 Mar 2019 16:22:16 +0000 (17:22 +0100)]
re PR middle-end/89590 (ICE in maybe_emit_free_warning)
PR middle-end/89590
* builtins.c (maybe_emit_free_warning): Punt if free doesn't have
exactly one argument.
* gcc.dg/pr89590.c: New test.
From-SVN: r269392
Jakub Jelinek [Tue, 5 Mar 2019 15:05:07 +0000 (16:05 +0100)]
re PR tree-optimization/89570 (ICE in prepare_cmp_insn, at optabs.c:4001)
PR tree-optimization/89570
* match.pd (vec_cond into cond_op simplification): Don't use
get_conditional_internal_fn, use as_internal_fn (cond_op).
Co-Authored-By: Richard Sandiford <richard.sandiford@arm.com>
From-SVN: r269391
Wilco Dijkstra [Tue, 5 Mar 2019 15:04:01 +0000 (15:04 +0000)]
[ARM] Fix PR89222
The GCC optimizer can generate symbols with non-zero offset from simple
if-statements. Bit zero is used for the Arm/Thumb state bit, so relocations
with offsets fail if it changes bit zero and the relocation forces bit zero
to true. The fix is to disable offsets on function pointer symbols.
gcc/
PR target/89222
* config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
to decide when to split off a non-zero offset from a symbol.
* config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
in function symbols.
testsuite/
PR target/89222
* gcc.target/arm/pr89222.c: Add new test.
From-SVN: r269390
Richard Biener [Tue, 5 Mar 2019 14:57:12 +0000 (14:57 +0000)]
re PR tree-optimization/89594 (ICE: Segmentation fault (in gsi_for_stmt(gimple*)))
2019-03-05 Richard Biener <rguenther@suse.de>
PR tree-optimization/89594
* tree-if-conv.c (pass_if_conversion::execute): Handle
case where .LOOP_VECTORIZED_FUNCTION was removed.
* gcc.dg/pr89594.c: New testcase.
From-SVN: r269389
Jakub Jelinek [Tue, 5 Mar 2019 13:38:59 +0000 (14:38 +0100)]
re PR tree-optimization/89487 (ICE in expand_expr_addr_expr_1, at expr.c:7993)
PR tree-optimization/89487
* gcc.dg/tree-ssa/pr89487.c: Include ../pr87600.h.
(caml_interprete): Ifdef the whole body out if REG1 or REG2 macros
aren't defined. Use REG1 instead of "%r15" and REG2 instead of
"%r14".
From-SVN: r269388
Jakub Jelinek [Tue, 5 Mar 2019 09:03:50 +0000 (10:03 +0100)]
re PR bootstrap/89560 (ICE In function 'rtx_def* gen_vec_extract_lo_v64qi(rtx, rtx)')
PR bootstrap/89560
* fold-const.c (fold_checksum_tree): Don't use fixed size buffer,
instead alloca it only when needed with the needed size.
* g++.dg/other/pr89560.C: New test.
From-SVN: r269386
Jakub Jelinek [Tue, 5 Mar 2019 08:44:21 +0000 (09:44 +0100)]
re PR tree-optimization/89570 (ICE in prepare_cmp_insn, at optabs.c:4001)
PR tree-optimization/89570
* match.pd (vec_cond into cond_op simplification): Guard with
vectorized_internal_fn_supported_p test and #if GIMPLE.
* gcc.dg/pr89570.c: New test.
From-SVN: r269385
Jakub Jelinek [Tue, 5 Mar 2019 08:43:16 +0000 (09:43 +0100)]
re PR tree-optimization/89566 (ICE on compilable C++ code: in gimple_call_arg, at gimple.h:3166)
PR tree-optimization/89566
* gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call):
Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed.
Punt if get_user_idx_format succeeds, but idx_format argument is
not provided or doesn't have pointer type, or if idx_args is above
number of provided arguments.
* c-c++-common/pr89566.c: New test.
From-SVN: r269384
GCC Administrator [Tue, 5 Mar 2019 00:16:26 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r269381
Paolo Carlini [Mon, 4 Mar 2019 23:49:23 +0000 (23:49 +0000)]
re PR c++/84605 (internal compiler error: in xref_basetypes, at cp/decl.c:13818)
/cp
2019-03-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/84605
* parser.c (cp_parser_class_head): Reject TYPE_BEING_DEFINED too.
/testsuite
2019-03-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/84605
* g++.dg/parse/crash69.C: New.
From-SVN: r269378
Edward Smith-Rowland [Mon, 4 Mar 2019 20:11:14 +0000 (20:11 +0000)]
PR libstdc++/88996 Implement P0439R0
2019-03-04 Edward Smith-Rowland <3dw4rd@verizon.net>
PR libstdc++/88996 Implement P0439R0
Make std::memory_order a scoped enumeration.
* include/bits/atomic_base.h: For C++20 make memory_order a scoped enum,
add variables for the old enumerators. Adjust calls.
* testsuite/29_atomics/headers/atomic/types_std_c++2a.cc: New test.
* testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc: New test.
From-SVN: r269372
Jakub Jelinek [Mon, 4 Mar 2019 18:57:13 +0000 (19:57 +0100)]
re PR c++/71446 (Incorrect overload resolution when using designated initializers)
PR c++/71446
* call.c (field_in_pset): New function.
(build_aggr_conv): Handle CONSTRUCTOR_IS_DESIGNATED_INIT correctly.
* g++.dg/cpp2a/desig12.C: New test.
* g++.dg/cpp2a/desig13.C: New test.
From-SVN: r269371
Jason Merrill [Mon, 4 Mar 2019 17:35:13 +0000 (12:35 -0500)]
* g++.dg/lto/pr88049_0.C: Require lto_incremental.
From-SVN: r269368
Tamar Christina [Mon, 4 Mar 2019 16:31:00 +0000 (16:31 +0000)]
Add missing gcc/testsuite/ChangeLog changelog entry.
From-SVN: r269367
Tamar Christina [Mon, 4 Mar 2019 15:48:49 +0000 (15:48 +0000)]
AArch64: Make test options_set_10.c not run on native.
The test options_set_10.c shouldn't run when cross compiled.
In addition to gating it on linux I'm also gating it on native now.
gcc/testsuite/ChangeLog:
PR target/88530
* gcc.target/aarch64/options_set_10.c:
From-SVN: r269366
Jonathan Wakely [Mon, 4 Mar 2019 13:18:47 +0000 (13:18 +0000)]
Remove redundant dg-do directive from test
* testsuite/26_numerics/bit/bitops.rot/rotl.cc: Remove bogus dg-do
directive.
From-SVN: r269365
Wilco Dijkstra [Mon, 4 Mar 2019 12:36:04 +0000 (12:36 +0000)]
re PR tree-optimization/89437 (incorrect result for sinl (atanl (x)))
Fix PR89437
Fix PR89437. Fix the sinatan-1.c testcase to not run without
a C99 target system. Use nextafterl for long double initialization.
Fix an issue with sinl (atanl (sqrtl (LDBL_MAX)) returning 0.0
instead of 1.0 by using x < sqrtl (LDBL_MAX) in match.pd.
gcc/
PR tree-optimization/89437
* match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications.
testsuite/
PR tree-optimization/89437
* gcc.dg/sinatan-1.c: Fix testcase.
From-SVN: r269364
Richard Biener [Mon, 4 Mar 2019 12:23:17 +0000 (12:23 +0000)]
re PR tree-optimization/89572 (ICE in dyn_cast<gcond*, gimple>(gimple*) / get_loop_exit_condition(loop const*))
2019-03-04 Richard Biener <rguenther@suse.de>
PR middle-end/89572
* tree-scalar-evolution.c: (get_loop_exit_condition): Use
safe_dyn_cast.
* gcc.dg/torture/pr89572.c: New testcase.
From-SVN: r269363
Jonathan Wakely [Mon, 4 Mar 2019 12:21:06 +0000 (12:21 +0000)]
Implement polymorphic_allocator<byte> for C++20 (P0339R6)
* include/std/memory_resource (polymorphic_allocator): Add default
template argument for C++20.
(polymorphic_allocator::allocate_bytes)
(polymorphic_allocator::deallocate_bytes)
(polymorphic_allocator::allocate_object)
(polymorphic_allocator::deallocate_object)
(polymorphic_allocator::new_object)
(polymorphic_allocator::delete_object): New member functions for
C++20.
* testsuite/20_util/polymorphic_allocator/allocate_object.cc: New
test.
From-SVN: r269362
Bin Cheng [Mon, 4 Mar 2019 01:38:25 +0000 (01:38 +0000)]
re PR tree-optimization/89487 (ICE in expand_expr_addr_expr_1, at expr.c:7993)
PR tree-optimization/89487
* tree-loop-distribution.c (has_nonaddressable_dataref_p): New.
(create_rdg_vertices): Compute has_nonaddressable_dataref_p.
(distribute_loop): Don't do runtime alias check if there is non-
addressable data reference.
* tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL
is a register variable.
* gcc/testsuite/gcc.dg/tree-ssa/pr89487.c: New test.
From-SVN: r269361
GCC Administrator [Mon, 4 Mar 2019 00:16:29 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r269360
Jonathan Wakely [Sun, 3 Mar 2019 22:23:33 +0000 (22:23 +0000)]
PR libstdc++/89562 use binary mode for file I/O
PR libstdc++/89562
* src/filesystem/ops-common.h (do_copy_file): Open files in binary
mode for mingw.
From-SVN: r269356
Harald Anlauf [Sun, 3 Mar 2019 20:24:53 +0000 (20:24 +0000)]
re PR fortran/77583 (ICE in pp_quoted_string, at pretty-print.c:966)
2019-03-03 Harald Anlauf <anlauf@gmx.de>
Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/77583
* symbol.c (check_conflict): Check for valid procedure name
passed to error reporting routine.
PR fortran/77583
* gfortran.dg/pr77583.f90: New test.
Co-Authored-By: Steven G. Kargl <kargl@gcc.gnu.org>
From-SVN: r269353
Thomas Koenig [Sun, 3 Mar 2019 13:16:40 +0000 (13:16 +0000)]
re PR fortran/72714 ([Coarray] ICE in gfc_array_init_size, at fortran/trans-array.c:5235)
2019-03-03 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/72714
* resolve.c (resolve_allocate_expr): Add some tests for coarrays.
2019-03-03 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/72714
* gfortran.dg/coarray_allocate_11.f90: New test.
From-SVN: r269352
GCC Administrator [Sun, 3 Mar 2019 00:16:22 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r269347
Johannes Pfau [Sat, 2 Mar 2019 19:14:54 +0000 (19:14 +0000)]
PR d/89177 - Fix unaligned access in std.digest.murmurhash
libphobos/ChangeLog:
2019-02-24 Johannes Pfau <johannespfau@gmail.com>
* src/std/digest/murmurhash.d: PR d/89177: Backport from upstream.
Fixes unaligned data access (PR d/89177).
From-SVN: r269343
Harald Anlauf [Sat, 2 Mar 2019 15:29:27 +0000 (15:29 +0000)]
re PR fortran/89516 (ICE in gfc_calculate_transfer_sizes at gcc/fortran/check.c:5506)
2019-03-02 Harald Anlauf <anlauf@gmx.de>
PR fortran/89516
* check.c (gfc_calculate_transfer_sizes): Correct checks for cases
where storage size of elements of MOLD is 0.
PR fortran/89516
* gfortran.dg/pr89492.f90: Adjust testcase.
* gfortran.dg/transfer_check_5.f90: New test.
From-SVN: r269341
Jakub Jelinek [Sat, 2 Mar 2019 08:06:57 +0000 (09:06 +0100)]
re PR c++/71446 (Incorrect overload resolution when using designated initializers)
PR c++/71446
* cp-tree.h (CONSTRUCTOR_IS_DESIGNATED_INIT): Define.
* parser.c (cp_parser_braced_list): Adjust cp_parser_initializer_list
caller, set CONSTRUCTOR_IS_DESIGNATED_INIT.
(cp_parser_initializer_list): Add designated parameter, set *designated
to a bool whether any designators were parsed.
* decl.c (reshape_init): Copy over CONSTRUCTOR_IS_DESIGNATED_INIT if
needed.
* pt.c (tsubst_copy_and_build): Likewise.
* call.c (implicit_conversion): If CONSTRUCTOR_IS_DESIGNATED_INIT,
don't call build_list_conv, nor build_complex_conv, nor attempt to
convert a single element initializer to scalar.
* g++.dg/cpp2a/desig10.C: New test.
* g++.dg/cpp2a/desig11.C: New test.
* g++.dg/ext/desig4.C: Expect 4 new errors.
From-SVN: r269340
Jakub Jelinek [Sat, 2 Mar 2019 08:05:10 +0000 (09:05 +0100)]
re PR target/89506 (ICE: in decompose, at rtl.h:2266 with -Og -g)
PR target/89506
* config/arm/arm.md (cmpsi2_addneg): Use
trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...).
If operands[2] is 0 or INT_MIN, force use of subs.
(*compare_scc splitter): Use gen_int_mode.
(*negscc): Likewise.
* config/arm/thumb2.md (*thumb2_negscc): Likewise.
* gcc.dg/pr89506.c: New test.
From-SVN: r269339
Ian Lance Taylor [Sat, 2 Mar 2019 00:50:30 +0000 (00:50 +0000)]
re PR go/89406 (Go testing leaves many temporary directories in /tmp around)
PR go/89406
go/internal/gccgoimporter: remove temporary directories in test
Backport of https://golang.org/cl/164862.
Updates https://gcc.gnu.org/PR89406
Reviewed-on: https://go-review.googlesource.com/c/164863
From-SVN: r269338
Kito Cheng [Sat, 2 Mar 2019 00:36:22 +0000 (00:36 +0000)]
RISC-V: Generalize -march support, add ELF attribute support.
Kito Cheng <kito.cheng@gmail.com>
Monk Chiang <sh.chiang04@gmail.com>
gcc/
* common/config/riscv/riscv-common.c: Include sstream.
(riscv_subset_list::to_string): New.
(riscv_arch_str): Likewise.
* config.gcc (riscv*-*-*): Handle --with-riscv-attribute=
* config.in: Regen.
* config/riscv/riscv-protos.h (riscv_arch_str): New.
* config/riscv/riscv.c (INCLUDE_STRING): Defined.
(riscv_emit_attribute): New.
(riscv_file_start): Emit attribute if needed.
(riscv_option_override): Init riscv_emit_attribute_p.
* config/riscv/riscv.opt (mriscv-attribute): New option.
* configure.ac (riscv*-*-*): Check binutils is supporting ELF
* configure: Regen.
* doc/install.texi: Document --with-riscv-attribute.
* doc/invoke.texi: Document -mriscv-attribute.
* common/config/riscv/riscv-common.c:
Include config/riscv/riscv-protos.h.
(INCLUDE_STRING): Defined.
(RISCV_DONT_CARE_VERSION): Defined.
(riscv_subset_t): Declare.
(riscv_subset_t::riscv_subset_t): New.
(riscv_subset_list): Declare.
(riscv_subset_list::riscv_subset_list): New.
(riscv_subset_list::~riscv_subset_list): Likewise.
(riscv_subset_list::parsing_subset_version): Likewise.
(riscv_subset_list::parse_std_ext): Likewise.
(riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
(riscv_subset_list::add): Likewise.
(riscv_subset_list::lookup): Likewise.
(riscv_subset_list::xlen): Likewise.
(riscv_subset_list::parse): Likewise.
(riscv_supported_std_ext): Likewise.
(current_subset_list): Likewise.
(riscv_parse_arch_string): Using riscv_subset_list::parse to
parse.
gcc/testsuite/
* gcc.target/riscv/attribute-1.c: New.
* gcc.target/riscv/attribute-2.c: Likewise.
* gcc.target/riscv/attribute-3.c: Likewise.
* gcc.target/riscv/attribute-4.c: Likewise.
* gcc.target/riscv/attribute-5.c: Likewise.
* gcc.target/riscv/attribute-6.c: Likewise.
* gcc.target/riscv/attribute-7.c: Likewise.
* gcc.target/riscv/attribute-8.c: Likewise.
* gcc.target/riscv/attribute-9.c: Likewise.
* gcc.target/riscv/arch-1.c: New.
* gcc.target/riscv/arch-2.c: Likewise.
* gcc.target/riscv/arch-3.c: Likewise.
* gcc.target/riscv/arch-4.c: Likewise.
Co-Authored-By: Monk Chiang <sh.chiang04@gmail.com>
From-SVN: r269337
GCC Administrator [Sat, 2 Mar 2019 00:16:20 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r269336
Ian Lance Taylor [Fri, 1 Mar 2019 22:22:18 +0000 (22:22 +0000)]
cmd/go: restore passing D to ar
This restores part of https://golang.org/cl/45695 that was
accidentally lost in https://golang.org/cl/158019 (the update to
Go1.12beta2).
Reviewed-on: https://go-review.googlesource.com/c/164737
From-SVN: r269333
Jakub Jelinek [Fri, 1 Mar 2019 19:06:36 +0000 (20:06 +0100)]
re PR middle-end/89497 (ICE caused by Segmentation Fault when compiling cups 2.2.10 with LTO flags enabled)
PR middle-end/89497
* g++.dg/tree-prof/devirt.C: Adjust also the ilp32
scan-tree-dump-times from dom3 to tracer pass.
From-SVN: r269332
Segher Boessenkool [Fri, 1 Mar 2019 18:04:31 +0000 (19:04 +0100)]
rs6000: Adapt testcases for -mdejagnu-cpu=
This is the result of these two oneliners:
perl -ni -e 'print unless /dg-skip-if "do not override -mcpu"/' \
$(find gcc/testsuite/gcc.target/powerpc/ -type f)
perl -pi -e 's/(dg-options.*)-mcpu=/\1-mdejagnu-cpu=/' \
$(find gcc/testsuite/gcc.target/powerpc/ -type f)
gcc/testsuite/
* gcc.target/powerpc/ throughout: Delete dg-skip-if "do not override
-mcpu". Use -mdejagnu-cpu= in dg-options instead of -mcpu=.
From-SVN: r269324
Segher Boessenkool [Fri, 1 Mar 2019 17:44:15 +0000 (18:44 +0100)]
rs6000: Add -mdejagnu-cpu=
This adds an option -mdejagnu-cpu=. This option simply overrides what
is given in -mcpu=. The reason for this is that with older versions
of DejaGnu the value given in the RUNTESTFLAGS will override the value
a testcase wants to have.
* config/rs6000/rs6000.c (rs6000_option_override_internal): If
rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index.
* config/rs6000/rs6000.opt (mdejagnu-cpu=): New option.
From-SVN: r269322
Alexander Monakov [Fri, 1 Mar 2019 16:18:04 +0000 (19:18 +0300)]
haifa-sched: handle fallthru edge to EXIT block (PR 85899)
PR rtl-optimization/85899
* haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
fallthru edges leading to the exit block.
* gcc.dg/pr85899.c: New test.
From-SVN: r269319
Marek Polacek [Fri, 1 Mar 2019 15:57:46 +0000 (15:57 +0000)]
PR c++/89537 - missing location for error with non-static member fn.
* call.c (resolve_args): Use EXPR_LOCATION.
* typeck.c (build_class_member_access_expr): Use input_location.
* g++.dg/diagnostic/member-fn-1.C: New test.
From-SVN: r269318
Marek Polacek [Fri, 1 Mar 2019 15:55:56 +0000 (15:55 +0000)]
PR c++/89532 - ICE with incomplete type in decltype.
* semantics.c (finish_compound_literal): Return error_mark_node
if digest_init_flags returns error_mark_node.
* g++.dg/cpp2a/nontype-class14.C: New test.
From-SVN: r269317
Ian Lance Taylor [Fri, 1 Mar 2019 14:21:24 +0000 (14:21 +0000)]
runtime: call execname and getpagesize on Solaris
Interpreting auxv as []uintptr is incorrect on 64-bit big-endian,
as auxv alternates a 32-bit int with a 64-bit pointer.
Patch from Rainer Orth.
Reviewed-on: https://go-review.googlesource.com/c/164739
From-SVN: r269315
Jakub Jelinek [Fri, 1 Mar 2019 14:20:03 +0000 (15:20 +0100)]
Implement P1002R1, Try-catch blocks in constexpr functions PR c++/89513
Implement P1002R1, Try-catch blocks in constexpr functions
PR c++/89513
* parser.c (cp_parser_ctor_initializer_opt_and_function_body):
Diagnose constexpr ctor or function with function-try-block with
pedwarn for c++17 and earlier. Formatting fix.
(cp_parser_try_block): Use pedwarn instead of error and only for
c++17 and earlier when try block appears in constexpr function.
* constexpr.c (build_constexpr_constructor_member_initializers):
Handle TRY_BLOCK here instead of erroring on it.
* g++.dg/cpp2a/constexpr-try1.C: New test.
* g++.dg/cpp2a/constexpr-try2.C: New test.
* g++.dg/cpp2a/constexpr-try3.C: New test.
* g++.dg/cpp2a/constexpr-try4.C: New test.
* g++.dg/cpp2a/constexpr-try5.C: New test.
* g++.dg/cpp0x/constexpr-ctor10.C: Don't expect error for C++2a.
From-SVN: r269314
Jonathan Wakely [Fri, 1 Mar 2019 13:50:41 +0000 (13:50 +0000)]
Fix test memory_resource to work without sized deallocation
The checking memory_resource in the testsuite assumes sized deallocation
is supported, which might not be true for other compilers.
* testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource)
[!__cpp_sized_deallocation]: Do not pass size to operator delete.
From-SVN: r269312
Jonathan Wakely [Fri, 1 Mar 2019 13:50:36 +0000 (13:50 +0000)]
C++2a Utility functions to implement uses-allocator construction (P0591R4)
* include/std/memory (uses_allocator_construction_args): New set of
overloaded functions.
(make_obj_using_allocator, uninitialized_construct_using_allocator):
New functions.
* include/std/memory_resource (polymorphic_allocator::construct)
[__cplusplus > 201703l]: Replace all overloads with a single function
using uses_allocator_construction_args.
* testsuite/20_util/polymorphic_allocator/construct_c++2a.cc: New
test.
* testsuite/20_util/uses_allocator/make_obj.cc: New test.
From-SVN: r269311
Tamar Christina [Fri, 1 Mar 2019 13:34:14 +0000 (13:34 +0000)]
AArch64: Make every option in options.def one line
Due to config.gcc all the options need to be on one line because of the grep
lines which would select only the first line of the option.
This causes it not to select the right bits on options that are spread over
multiple lines when the --with-arch configure option is used. The issue happens
silently and you just get a compiler with an incorrect set of default flags.
This solution just collapses everything back to one line as they were in GCC7.
Unfortunately this does make some lines quite long.
I do have an alternate patch which used the pre-processors to first flatten the
file in config.gcc. I will send that one out for GCC 10.
gcc/ChangeLog:
PR target/89517
* config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.
From-SVN: r269309
Richard Sandiford [Fri, 1 Mar 2019 13:05:40 +0000 (13:05 +0000)]
Fix mask type choice in vectorizable_call (PR 89535)
This is another case in which we were failing to pass the expected
mask vector type to vect_get_vec_def_for_operand.
2019-02-28 Richard Sandiford <richard.sandiford@arm.com>
gcc/
PR tree-optimization/89535
* tree-vect-stmts.c (vectorizable_call): Record the vector types
for each operand. Calculate the fallback choice for mask operands
and pass it to vect_get_vec_def_for_operand.
gcc/testsuite/
PR tree-optimization/89535
* gfortran.dg/vect/pr89535.f90: New test.
From-SVN: r269308
Richard Biener [Fri, 1 Mar 2019 12:52:19 +0000 (12:52 +0000)]
re PR tree-optimization/89541 (ICE in VN_INFO(tree_node*))
2019-03-01 Richard Biener <rguenther@suse.de>
PR middle-end/89541
* tree-ssa-operands.c (add_stmt_operand): CONST_DECL may
get virtual operands.
(get_expr_operands): Handle CONST_DECL like other decls.
* gfortran.dg/pr89451.f90: New testcase.
From-SVN: r269307
Iain Buclaw [Fri, 1 Mar 2019 10:21:54 +0000 (10:21 +0000)]
d/dmd: Merge dmd upstream
ed71446aa
Backports support for extern(C++, "namespace"), which makes the
core.stdcpp package compilable.
Added predefined condition for CppRuntime_Gcc unconditionally, as it is
unlikely that D code will be linking to anything other than libstdc++
when extern(C++) is used.
Reviewed-on: https://github.com/dlang/dmd/pull/9371
gcc/d/ChangeLog:
2019-03-01 Iain Buclaw <ibuclaw@gdcproject.org>
* d-builtins.cc (d_init_versions): Add CppRuntime_Gcc as predefined
version condition.
From-SVN: r269304
Jakub Jelinek [Fri, 1 Mar 2019 09:26:40 +0000 (10:26 +0100)]
re PR middle-end/89503 (Checking ICE in 'gcc.dg/warn-strlen-no-nul.c')
PR middle-end/89503
* fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
on DECL_P and EXPR_P.
From-SVN: r269303
Richard Biener [Fri, 1 Mar 2019 09:21:30 +0000 (09:21 +0000)]
re PR middle-end/89497 (ICE caused by Segmentation Fault when compiling cups 2.2.10 with LTO flags enabled)
2019-03-01 Richard Biener <rguenther@suse.de>
PR middle-end/89497
* tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
argument, defaulted to zero.
* passes.c (execute_function_todo): Pass down SSA update flags
to cleanup_tree_cfg.
* tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
(cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
form if requested.
(cleanup_tree_cfg): Get and pass down SSA update flags.
* gcc.dg/tree-ssa/reassoc-43.c: Avoid false match in regex.
* g++.dg/tree-prof/devirt.C: Scan tracer dump for foldings
that happen now earlier.
From-SVN: r269302
Jakub Jelinek [Fri, 1 Mar 2019 08:10:19 +0000 (09:10 +0100)]
re PR bootstrap/89539 (gcc fails to build/bootstrap on MACOSX)
PR bootstrap/89539
* dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
early_lto_debug argument.
From-SVN: r269301
Ian Lance Taylor [Fri, 1 Mar 2019 05:25:36 +0000 (05:25 +0000)]
re PR go/89406 (Go testing leaves many temporary directories in /tmp around)
PR go/89406
* Makefile.am (GOTOOLS_TEST_TIMEOUT): Double.
* Makefile.in: Regenerate.
From-SVN: r269300
Ian Lance Taylor [Fri, 1 Mar 2019 01:23:09 +0000 (01:23 +0000)]
cmd/go: add -O2 to invocation of gccgo
When using the go tool with gccgo, this changes the default
compilation to use -O2. The -gccgoflags option can be used to
override this default. I think this change better corresponds to what
people expect when using the go tool.
Reviewed-on: https://go-review.googlesource.com/c/164378
From-SVN: r269299
Ian Lance Taylor [Fri, 1 Mar 2019 01:03:54 +0000 (01:03 +0000)]
commit
66ac9466852d11e968f8fd2ad6ffc7386cee49e1
gotest: avoid using echo inside $()
The handling of newlines is not portable between bash and ksh.
Reviewed-on: https://go-review.googlesource.com/c/164597
From-SVN: r269298
GCC Administrator [Fri, 1 Mar 2019 00:16:34 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r269297
Jason Merrill [Fri, 1 Mar 2019 00:10:28 +0000 (19:10 -0500)]
* g++.dg/cpp1z/fold-lambda3.C: Add test for 88183.
From-SVN: r269294
Jason Merrill [Fri, 1 Mar 2019 00:08:58 +0000 (19:08 -0500)]
PR c++/88183 - ICE with .* fold-expression.
build_m_component_ref can't handle type-dependent operands, so let's use the
default case; tsubst_copy_and_build also uses build_x_binary_op for
substituting a DOTSTAR_EXPR.
* pt.c (fold_expression) [DOTSTAR_EXPR]: Remove special handling.
From-SVN: r269293
Jason Merrill [Fri, 1 Mar 2019 00:08:21 +0000 (19:08 -0500)]
PR c++/86969 - ICE with constexpr if and recursive generic lambdas.
* class.c, lambda.c, pt.c: Revert earlier change.
* lambda.c (add_capture): Don't special-case capture of dependent
VLA.
From-SVN: r269292
Jason Merrill [Fri, 1 Mar 2019 00:07:29 +0000 (19:07 -0500)]
* name-lookup.c (print_binding_level): Print this_entity.
From-SVN: r269291
Eric Botcazou [Thu, 28 Feb 2019 23:03:01 +0000 (23:03 +0000)]
re PR tree-optimization/89536 (wrong code at -Os and above on x86_64-linux-gnu)
PR tree-optimization/89536
* tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
only whether bit #0 of the value is 0 instead of the entire value.
From-SVN: r269289
Marek Polacek [Thu, 28 Feb 2019 22:29:42 +0000 (22:29 +0000)]
PR c++/87068 - missing diagnostic with fallthrough statement.
* gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
at the end of a seq, save its location to walk_stmt_info.
(expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
a switch.
* c-c++-common/Wimplicit-fallthrough-37.c: New test.
From-SVN: r269288
Thomas Schwinge [Thu, 28 Feb 2019 20:31:36 +0000 (21:31 +0100)]
[PR72741, PR89433] Repeated use of the Fortran OpenACC 'routine' directive
gcc/fortran/
PR fortran/72741
PR fortran/89433
* openmp.c (gfc_match_oacc_routine): Handle repeated use of the
Fortran OpenACC 'routine' directive.
gcc/testsuite/
PR fortran/72741
PR fortran/89433
* gfortran.dg/goacc/routine-multiple-directives-1.f90: New file.
* gfortran.dg/goacc/routine-multiple-directives-2.f90: Likewise.
Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
From-SVN: r269287
Thomas Schwinge [Thu, 28 Feb 2019 20:31:23 +0000 (21:31 +0100)]
[PR72741] For all Fortran OpenACC 'routine' directive variants check for multiple clauses specifying the level of parallelism
gcc/fortran/
PR fortran/72741
* gfortran.h (enum oacc_routine_lop): Add OACC_ROUTINE_LOP_ERROR.
* openmp.c (gfc_oacc_routine_lop, gfc_match_oacc_routine): Use it.
* trans-decl.c (add_attributes_to_decl): Likewise.
gcc/testsuite/
PR fortran/72741
* gfortran.dg/goacc/routine-multiple-lop-clauses-1.f90: New file.
Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
From-SVN: r269286
Thomas Schwinge [Thu, 28 Feb 2019 20:31:01 +0000 (21:31 +0100)]
[PR72741, PR89433] Accept intrinsic symbols in Fortran OpenACC 'routine' directives
gcc/fortran/
PR fortran/72741
PR fortran/89433
* openmp.c (gfc_match_oacc_routine): Accept intrinsic symbols.
gcc/testsuite/
PR fortran/72741
PR fortran/89433
* gfortran.dg/goacc/routine-6.f90: Update
* gfortran.dg/goacc/routine-intrinsic-1.f: New file.
* gfortran.dg/goacc/routine-intrinsic-2.f: Likewise.
Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
From-SVN: r269285