aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-03-08re PR c++/89622 (G++ prints notes, but no warning or error)Jakub Jelinek4-6/+46
PR c++/89622 * call.c (joust): Call print_z_candidate only if pedwarn returned true. * g++.dg/warn/pr89622.C: New test. From-SVN: r269481
2019-03-08re PR target/80190 (darwin: untranslateable placeholder "non-ASCII character")Jakub Jelinek2-2/+11
PR target/80190 * config/darwin.c: Include intl.h. (darwin_build_constant_cfstring): Improve i18n of diagnostics by not composing the message out of two separate parts. From-SVN: r269480
2019-03-08re PR libstdc++/89477 (Incorrect CTAD deduction guides for set and multiset)François Dumont7-81/+125
2019-03-08 François Dumont <fdumont@gcc.gnu.org> PR libstdc++/89477 * include/debug/map.h (map): Use _RequireNotAllocator to constrain parameters in deduction guides. * include/debug/multimap.h (multimap): Likewise. * include/debug/set.h (multimap): Likewise. * include/debug/multiset.h (multimap): Likewise. * include/debug/unordered_map (unordered_map): Likewise. (unordered_multimap): Likewise. * include/debug/unordered_set (unordered_set): Likewise. (unordered_multiset): Likewise. From-SVN: r269479
2019-03-08re PR libstdc++/89608 (Undetected iterator invalidations on unordered ↵François Dumont4-4/+52
containers in debug mode) 2019-03-08 François Dumont <fdumont@gcc.gnu.org> PR libstdc++/89608 * include/debug/unordered_map (unordered_map<>::_M_check_rehashed): Invalidate all iterators in case of rehash. (unordered_multimap<>::_M_check_rehashed): Likewise. * include/debug/unordered_set (unordered_set<>::_M_check_rehashed): Likewise. (unordered_multiset<>::_M_check_rehashed): Likewise. * testsuite/23_containers/unordered_set/debug/89608_neg.cc: New. From-SVN: r269478
2019-03-07PR c++/88123 - lambda and using-directive.Jason Merrill7-2/+154
For named function calls in a template, the result of unqualified lookup is safed in CALL_EXPR_FN. But for operator expressions, no unqualified lookup is performed until we know whether the operands have class type. So when we see in a lambda a use of an operator that might be overloaded, we need to do that lookup then and save it away somewhere. One possibility would be in the expression, but we can't really add extra conditional operands to standard tree codes. I mostly implemented another approach using a new WITH_LOOKUP_EXPR code, but teaching everywhere how to handle a new tree code is always complicated. Then it occurred to me that we could associate the lookups with the function, which is both simpler and smaller. So this patch stores any operator bindings needed by a lambda function in an internal attribute on the lambda call operator. * name-lookup.c (op_unqualified_lookup) (maybe_save_operator_binding, discard_operator_bindings) (push_operator_bindings): New. * typeck.c (build_x_binary_op, build_x_unary_op): Call maybe_save_operator_binding. * decl.c (start_preparsed_function): Call push_operator_bindings. * tree.c (cp_free_lang_data): Call discard_operator_bindings. From-SVN: r269477
2019-03-08Daily bump.GCC Administrator1-1/+1
From-SVN: r269476
2019-03-08* sv.po: Update.Joseph Myers2-26/+13
From-SVN: r269473
2019-03-07RISC-V: Add libstdc++ check-abi support.Andreas Schwab2-0/+5823
Andreas Schwab <schwab@suse.de> * config/abi/post/riscv64-linux-gnu: New directory. * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: New file. From-SVN: r269472
2019-03-07re PR target/80003 (i386.c: %s placeholder is no semantic grammar unit)Jakub Jelinek6-19/+39
PR target/80003 * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics doesn't start with a capital letter and doesn't end with a dot. (ix86_function_arg_boundary): Make sure diagnostics doesn't start with a capital letter. (ix86_mangle_function_version_assembler_name): Likewise. (ix86_generate_version_dispatcher_body): Likewise. (fold_builtin_cpu): Likewise. (get_builtin_code_for_version): Likewise. Remove extraneous space. (ix86_handle_interrupt_attribute): Make the diagnostics easier for translators, wrap full type name in %qs. * gcc.target/i386/pr68657.c: Adjust expected diagnostics wording. * gcc.target/i386/interrupt-6.c: Likewise. * g++.target/i386/pr57362.C: Adjust capitalization in dg-prune-output. From-SVN: r269471
2019-03-07* fi.po: Update.Joseph Myers2-1291/+1403
From-SVN: r269470
2019-03-07re PR c++/84518 (ICE with lambda capturing broken variable)Paolo Carlini3-0/+27
2019-03-07 Paolo Carlini <paolo.carlini@oracle.com> PR c++/84518 * g++.dg/cpp0x/lambda/lambda-ice30.C: New. * g++.dg/cpp0x/lambda/lambda-ice31.C: Likewise. From-SVN: r269469
2019-03-07re PR translation/79999 (possible typo in gimplify.c: depend(sink:))Jakub Jelinek6-12/+77
PR translation/79999 * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about depend clause with source (or sink) modifier. * omp-expand.c (expand_omp_ordered_sink): Likewise. * c-c++-common/gomp/doacross-1.c: Adjust expected diagnostics. * c-c++-common/gomp/doacross-3.c: New test. From-SVN: r269468
2019-03-07re PR target/89602 (Missing AVX512 intrinsics)Jakub Jelinek11-0/+557
PR target/89602 * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask, *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns. (avx512f_load<mode>_mask): New define_expand. * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask, __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask, __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask, __builtin_ia32_movess_mask): New builtins. * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss, _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss, _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd, _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics. * gcc.target/i386/avx512f-vmovss-1.c: New test. * gcc.target/i386/avx512f-vmovss-2.c: New test. * gcc.target/i386/avx512f-vmovss-3.c: New test. * gcc.target/i386/avx512f-vmovsd-1.c: New test. * gcc.target/i386/avx512f-vmovsd-2.c: New test. * gcc.target/i386/avx512f-vmovsd-3.c: New test. From-SVN: r269467
2019-03-07d/dmd: Merge upstream dmd d517c0e6aIain Buclaw16-151/+151
Fixes https://gcc.gnu.org/PR89016 Reviewed-on: https://github.com/dlang/dmd/pull/9427 From-SVN: r269465
2019-03-07Zero local estimated benefit for cloning extern inline functionMartin Jambor4-5/+68
2019-03-07 Martin Jambor <mjambor@suse.cz> PR lto/87525 * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit for extern inline functions. testsuite/ * gcc.dg/ipa/ipcp-5.c: New test. From-SVN: r269464
2019-03-07PR c++/88820 - ICE with CTAD and member template used in DMI.Jason Merrill3-0/+17
Here the problem was that in order to form a FUNCTION_DECL for foo<int> in the uninstantiated template, we were trying to deduce template args for S from the template parm itself, and failing. * pt.c (do_class_deduction): Handle parm used as its own arg. From-SVN: r269463
2019-03-07Relax cgraph_node::clone_of_p to also look through former clonesMartin Jambor5-3/+95
2019-03-07 Martin Jambor <mjambor@suse.cz> PR ipa/88235 * cgraph.h (cgraph_node): New inline method former_thunk_p. * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk. (clone_of_p): Treat expanded thunks like thunks, be optimistic if they have multiple callees. At the end check if declarations match as opposed to cgraph_nodes. testsuite/ * g++.dg/ipa/pr88235.C: New test. From-SVN: r269462
2019-03-07Significantly speed up verifiers for a cgraph_node with many clones.Martin Liska3-23/+37
2019-03-07 Martin Liska <mliska@suse.cz> * cgraph.c (cgraph_node::verify_node): Verify with a neighbour which is equivalent to searching for this in clones chain. * symtab.c (symtab_node::verify_base): Similarly compare ASM names with a neighbour and special case first node in a chain. From-SVN: r269461
2019-03-07Fix commentJason Merrill1-1/+1
From-SVN: r269460
2019-03-07PR c++/80916 - spurious "static but not defined" warning.Jason Merrill3-2/+27
Nothing can refer to an internal decl with no definition, so we shouldn't treat such a decl as a possible devirtualization target. * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false for an internal symbol with DECL_EXTERNAL. From-SVN: r269459
2019-03-07re PR tree-optimization/89618 (Inner loop won't vectorize unless dummy ↵Richard Biener5-12/+41
statement is included) 2019-04-07 Richard Biener <rguenther@suse.de> PR middle-end/89618 * cfgloopmanip.c (copy_loop_info): Copy forgotten fields. * tree-inline.c (copy_loops): Simplify. * gcc.target/i386/pr89618.c: New testcase. From-SVN: r269458
2019-03-07Fix new test to run as well as compileJonathan Wakely2-2/+5
* testsuite/20_util/function_objects/bind_front/1.cc: Change from compile test to run. Fix typo. From-SVN: r269457
2019-03-07Update C++20 status table in libstdc++ manualJonathan Wakely3-29/+25
* doc/xml/manual/status_cxx2020.xml: Update C++20 status. * doc/html/*: Regenerate. From-SVN: r269456
2019-03-07P0356R5 Simplified partial function applicationJonathan Wakely3-0/+284
* include/std/functional [C++20] (_Bind_front, _Bind_front_t): Define helpers for bind_front. (bind_front, __cpp_lib_bind_front): Define. * testsuite/20_util/function_objects/bind_front/1.cc: New test. From-SVN: r269455
2019-03-07Revert function removal made in r264561.Martin Liska2-0/+22
2019-03-07 Martin Liska <mliska@suse.cz> * dwarf2out.c (add_AT_vms_delta): Revert function removal. From-SVN: r269454
2019-03-07re PR tree-optimization/89595 (DOM miscompiles code)Richard Biener4-11/+105
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
2019-03-07re PR c++/89585 (GCC 8.3: asm volatile no longer accepted at file scope)Jakub Jelinek6-5/+37
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
2019-03-07re PR go/89227 (gotools test cmd/go fails with link error "call lacks nop, ↵Ian Lance Taylor2-0/+7
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
2019-03-07Daily bump.GCC Administrator1-1/+1
From-SVN: r269448
2019-03-06re PR fortran/71203 (ICE in add_init_expr_to_sym, at fortran/decl.c:1512 and ↵Harald Anlauf4-2/+33
: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
2019-03-06compiler: emit underlying constant in array_type length exportIan Lance Taylor2-5/+12
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
2019-03-06PR c++/89381 - implicit copy and using-declaration.Jason Merrill3-1/+46
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
2019-03-06re PR c++/87148 (backward compatibility issue to take char [] as incomplete ↵Jakub Jelinek4-0/+29
type) PR c++/87148 * init.c (build_value_init_noctor): Ignore flexible array members. * g++.dg/ext/flexary34.C: New test. From-SVN: r269434
2019-03-06PR c++/89576 - if constexpr of lambda capture.Jason Merrill5-8/+26
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
2019-03-06encoding.c (DFmode): #undef before #define.Uros Bizjak2-95/+99
* encoding.c (DFmode): #undef before #define. From-SVN: r269429
2019-03-06re PR rtl-optimization/88845 (ICE in lra_set_insn_recog_data, at lra.c:1010)Peter Bergner5-29/+78
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
2019-03-06PR c++/87378 - bogus -Wredundant-move warning.Marek Polacek5-5/+91
* 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
2019-03-06Add feature test macro for bounded array traitsJonathan Wakely5-0/+22
* 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
2019-03-06mksysinfo: actually use modified Statfs_t valueIan Lance Taylor2-6/+5
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/165737 From-SVN: r269424
2019-03-06PR libstdc++/86655 - std::assoc_legendre should not constrainEdward Smith-Rowland6-19/+247
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
2019-03-06Rewrite variant, also PR libstdc++/85517Ville Voutilainen4-199/+374
* 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
2019-03-06Add L suffix to __cpp_lib_char8_t valueJonathan Wakely3-3/+7
* include/bits/c++config.h (_cpp_lib_char8_t): Add L suffix to constant. * testsuite/experimental/feat-char8_t.cc: Likewise. From-SVN: r269421
2019-03-06Add C++20 Traits for [Un]bounded Arrays (P1357R1)Jonathan Wakely8-0/+293
* 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
2019-03-06Charry pick libsanitizer r355488 (PR sanitizer/88684).Martin Liska3-3/+12
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
2019-03-06Constexpr in std::pointer_traits (P1006R1)Jonathan Wakely3-1/+34
* 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
2019-03-06[ARC] Fix logic set UNALIGNED_ACCESSClaudiu Zissulescu4-2/+14
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
2019-03-06re PR middle-end/89551 (Test case gcc.dg/uninit-pred-8_b.c fails after r269302)Richard Biener2-2/+9
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
2019-03-06Use --coverage instead of -fprofile-arcs -ftest-coverage in documentation ↵Martin Liska3-6/+12
(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
2019-03-06Ignore a param in check-params-in-docs.pyMartin Liska2-2/+7
2019-03-06 Martin Liska <mliska@suse.cz> * check-params-in-docs.py: Ignore a param. From-SVN: r269414
2019-03-06re PR go/89598 (go frontend fails to build against mpfr 2.4.2)Ian Lance Taylor2-2/+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