aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2019-03-09re PR go/89447 (libgo largefile support is incomplete and inconsistent)Ian Lance Taylor1-1/+1
PR go/89447 syscall, internal/syscall: adjust use of largefile functions Consistently call __go_openat for openat. Use fstatat64, creat64, sendfile64, and getdents64 where needed. Based on patch by Rainer Orth. Fixes https://gcc.gnu.org/PR89447 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/166420 From-SVN: r269521
2019-03-09Daily bump.GCC Administrator1-1/+1
From-SVN: r269520
2019-03-08re PR c/85870 ([LTO1] ICE in linemap_line_start, at libcpp/line-map.c:794)Jakub Jelinek2-0/+7
PR c/85870 * gcc.dg/lto/pr85870_0.c: Add dg-extra-ld-options with -r -nostdlib -flinker-output=nolto-rel. From-SVN: r269516
2019-03-08i386.c: make "sorry" message more amenable to translation (PR target/79926)David Malcolm7-11/+28
gcc/ChangeLog: PR target/79926 * config/i386/i386.c (ix86_set_current_function): Make "sorry" messages more amenable to translation, and improve wording. gcc/testsuite/ChangeLog: PR target/79926 * gcc.target/i386/interrupt-387-err-1.c: Update expected message. * gcc.target/i386/interrupt-387-err-2.c: Likewise. * gcc.target/i386/interrupt-mmx-err-1.c: Likewise. * gcc.target/i386/interrupt-mmx-err-2.c: Likewise. From-SVN: r269515
2019-03-08re PR c++/63540 (Erroneous "'Derived' declares a move constructor or move ↵Paolo Carlini2-0/+23
assignment operator" in error.) 2019-03-08 Paolo Carlini <paolo.carlini@oracle.com> PR c++/63540 * g++.dg/cpp0x/implicit17.C: New. From-SVN: r269508
2019-03-08re PR c++/22149 (func pointer non-type template parm invalid access control)Paolo Carlini2-0/+27
2019-03-08 Paolo Carlini <paolo.carlini@oracle.com> PR c++/22149 * g++.dg/template/access29.C: New. From-SVN: r269507
2019-03-08rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild ud- and du-chains between ↵Bill Schmidt2-0/+12
phases. 2019-03-08 Bill Schmidt <wschmidt@linux.ibm.com> * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild ud- and du-chains between phases. From-SVN: r269505
2019-03-08re PR c++/82075 (structured binding fails with empty base class)Jakub Jelinek2-0/+19
PR c++/82075 * g++.dg/cpp1z/decomp49.C: New test. From-SVN: r269504
2019-03-08Fix POLY_INT_CST/CONST_POLY_INT typo (PR 89631)Richard Sandiford2-1/+7
2019-03-08 Richard Sandiford <richard.sandiford@arm.com> gcc/ PR debug/89631 * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT instead of POLY_INT_CST. From-SVN: r269500
2019-03-08[GCC, Arm] Fix availability of FP16-FP64 conversion instructionsAndre Vieira4-1/+25
vcvtb.f16.f64 and vcvtb.f64.f16 were being made available even for FPUs that do not support double precision. This patch fixes that. gcc/ChangeLog: 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com> * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE requirement. gcc/testsuite/ChangeLog: 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com> * gcc.target/arm/f16_f64_conv_no_dp.c: New test. From-SVN: r269499
2019-03-08re PR target/68924 (No intrinsic for x86 `MOVQ m64, %xmm` in 32bit mode.)Uros Bizjak5-0/+46
PR target/68924 PR target/78782 PR target/87558 * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic. (_mm_storeu_si64): Ditto. testsuite/ChangeLog: PR target/68924 PR target/78782 PR target/87558 * gcc.target/i386/pr78782.c: New test. * gcc.target/i386/pr87558.c: Ditto. From-SVN: r269497
2019-03-08Add tests for resolved PR (PR c/85870).Jakub Jelinek3-0/+67
2019-03-08 Jakub Jelinek <jakub@redhat.com> PR c/85870 * gcc.dg/lto/pr85870_0.c: New test. * gcc.dg/lto/pr85870_1.c: New test. From-SVN: r269495
2019-03-08x86: Disable jump tables when retpolines are used (PR target/86952).Martin Liska6-2/+45
2019-03-08 Martin Liska <mliska@suse.cz> PR target/86952 * config/i386/i386.c (ix86_option_override_internal): Disable jump tables when retpolines are used. 2019-03-08 Martin Liska <mliska@suse.cz> PR target/86952 * gcc.target/i386/pr86952.c: New test. * gcc.target/i386/indirect-thunk-7.c: Use jump tables to match scanned pattern. * gcc.target/i386/indirect-thunk-inline-7.c: Likewise. From-SVN: r269492
2019-03-08Restrict IPA split (PR go/63560).Jan Hubicka2-0/+21
2019-03-08 Jan Hubicka <hubicka@ucw.cz> PR go/63560 * ipa-split.c (execute_split_functions): Do not split 'noinline' or 'section' function. From-SVN: r269491
2019-03-08re PR target/79846 (s390: untranslatable diagnostic in s390.c)Jakub Jelinek2-10/+12
PR target/79846 * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of HOST_WIDE_INT_PRINT_DEC. Formatting fixes. From-SVN: r269489
2019-03-08re PR ipa/80000 (diagnostics: trailing spaces in "one definition rule ")Jakub Jelinek2-9/+17
PR ipa/80000 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces from diagnostics. Formatting fixes. PR target/85665 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in warn_odr diagnostics. From-SVN: r269488
2019-03-08re PR other/80058 (fix double spaces in string literals everywhere)Jakub Jelinek9-6/+25
PR other/80058 * lra-constraints.c (process_alt_operands): Avoid one space before " at the end of line and another after " on another line in a string literal. * attribs.c (handle_dll_attribute): Likewise. * config/avr/avr-devices.c (avr_texinfo): Likewise. cp/ * parser.c (cp_parser_template_declaration_after_parameters): Avoid one space before " at the end of line and another after " on another line in a string literal. fortran/ * arith.c (gfc_complex2complex): Avoid two spaces in the middle of diagnostics. * resolve.c (resolve_allocate_expr): Likewise. From-SVN: r269487
2019-03-08gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap warning_at or ↵Jakub Jelinek2-5/+8
inform messages in G_() if there is no ?:. * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap warning_at or inform messages in G_() if there is no ?:. From-SVN: r269486
2019-03-08re PR tree-optimization/89550 (Spurious array-bounds warning when using ↵Jakub Jelinek14-70/+102
__PRETTY_FUNCTION__ as a string_view) PR tree-optimization/89550 * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at returned true. Formatting fixes. (expand_builtin_strnlen): Formatting fixes. * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING if warning_at returned true. * tree-cfg.c (pass_warn_function_return::execute): Likewise. c-family/ * c-common.c (c_common_truthvalue_conversion): Only set TREE_NO_WARNING if warning_at returned true. * c-warn.c (overflow_warning, warn_logical_operator): Likewise. c/ * c-decl.c (finish_function): Only set TREE_NO_WARNING if warning_at returned true. (c_write_global_declarations_1): Only set TREE_NO_WARNING if pedwarn or warning returned true. cp/ * semantics.c (maybe_convert_cond): Only set TREE_NO_WARNING if warning_at returned true. * decl2.c (c_parse_final_cleanups): Likewise. * typeck.c (convert_for_assignment): Likewise. * decl.c (finish_function): Likewise. From-SVN: r269485
2019-03-08re PR target/89578 (5% runtime regression for 481.wrf at -Ofast -flto)Richard Biener7-1/+25
2019-03-08 Richard Biener <rguenther@suse.de> PR middle-end/89578 * cfgloop.h (struct loop): Add owned_clique field. * cfgloopmanip.c (copy_loop_info): Copy it. * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique cliques. * tree-inline.c (copy_loops): Remap owned_clique. * lto-streamer-in.c (input_cfg): Stream owned_clique. * lto-streamer-out.c (output_cfg): Likewise. From-SVN: r269484
2019-03-08re PR c++/89585 (GCC 8.3: asm volatile no longer accepted at file scope)Jakub Jelinek4-6/+17
PR c++/89585 * parser.c (cp_parser_asm_definition): Just warn instead of error on volatile qualifier outside of function body. * g++.dg/asm-qual-3.C: Adjust expected diagnostics for toplevel asm volatile. From-SVN: r269483
2019-03-08re PR c++/89599 (C-style function-pointer-to-void* cast is handled ↵Jakub Jelinek6-6/+29
inconsistently) PR c++/89599 * constexpr.c (potential_constant_expression_1): Reject REINTERPRET_CAST_P NOP_EXPRs. * g++.dg/ubsan/vptr-4.C: Adjust expected diagnostics. * g++.dg/parse/array-size2.C: Likewise. * g++.dg/cpp0x/constexpr-89599.C: New test. From-SVN: r269482
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