aboutsummaryrefslogtreecommitdiff
path: root/gcc
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-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-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-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-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-06mksysinfo: actually use modified Statfs_t valueIan Lance Taylor1-1/+1
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/165737 From-SVN: r269424
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-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
2019-03-06Daily bump.GCC Administrator1-1/+1
From-SVN: r269409
2019-03-05runtime: enable precise GC checks when using stack mapsIan Lance Taylor1-1/+1
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
2019-03-05cmd/go: pass -X64 to ar on aix/ppc64Ian Lance Taylor1-1/+1
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
2019-03-05PR c++/86485 - -Wmaybe-unused with empty class ?:Jason Merrill3-2/+19
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
2019-03-05re PR c++/86485 ("anonymous" maybe-uninitialized false positive with ternary ↵Jason Merrill7-18/+32
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
2019-03-05sysinfo: add Flags to Statfs_t if not already thereIan Lance Taylor1-1/+1
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
2019-03-05re PR go/89598 (go frontend fails to build against mpfr 2.4.2)Ian Lance Taylor2-3/+3
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
2019-03-05re PR target/89587 (gcc's rs6000 configuration unconditionally sets ↵Jakub Jelinek2-1/+5
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
2019-03-05re PR middle-end/89590 (ICE in maybe_emit_free_warning)Jakub Jelinek4-0/+25
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
2019-03-05re PR tree-optimization/89570 (ICE in prepare_cmp_insn, at optabs.c:4001)Jakub Jelinek2-19/+22
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
2019-03-05[ARM] Fix PR89222Wilco Dijkstra5-41/+67
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
2019-03-05re PR tree-optimization/89594 (ICE: Segmentation fault (in ↵Richard Biener4-0/+37
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
2019-03-05re PR tree-optimization/89487 (ICE in expand_expr_addr_expr_1, at expr.c:7993)Jakub Jelinek2-2/+13
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
2019-03-05re PR bootstrap/89560 (ICE In function 'rtx_def* ↵Jakub Jelinek4-11/+37
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
2019-03-05re PR tree-optimization/89570 (ICE in prepare_cmp_insn, at optabs.c:4001)Jakub Jelinek4-8/+46
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
2019-03-05re PR tree-optimization/89566 (ICE on compilable C++ code: in ↵Jakub Jelinek4-4/+38
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