- 28 Feb, 2018 2 commits
-
-
Reviewed-on: https://go-review.googlesource.com/97517 From-SVN: r258051Ian Lance Taylor committed -
From-SVN: r258050
GCC Administrator committed
-
- 27 Feb, 2018 18 commits
-
-
From-SVN: r258046
Martin Sebor committed -
PR c++/83871 - wrong code for attribute const and pure on distinct template specializations PR c++/83503 - [8 Regression] bogus -Wattributes for const and pure on function template specialization gcc/ChangeLog: PR c++/83871 * gcc/doc/invoke.texi (-Wmissing-attributes): New option. * gcc/print-tree.c (print_node): Handle DECL_UNINLINABLE. gcc/c-family/ChangeLog: PR c++/83871 * c.opt (-Wmissing-attributes): New option. gcc/cp/ChangeLog: PR c++/83871 PR c++/83503 * cp-tree.h (warn_spec_missing_attributes): New function. ((check_explicit_specialization): Add an argument. Call the above function. * decl.c (duplicate_decls): Avoid applying primary function template's attributes to its explicit specializations. cp/pt.c (warn_spec_missing_attributes): Define. gcc/testsuite/ChangeLog: PR c++/83871 PR c++/83503 * g++.dg/Wmissing-attributes.C: New test. * g++.dg/ext/attr-const-pure.C: New test. * g++.dg/ext/attr-const.C: New test. * g++.dg/ext/attr-deprecated-2.C: New test. * g++.dg/ext/attr-malloc-2.C: New test. * g++.dg/ext/attr-malloc.C: New test. * g++.dg/ext/attr-noinline-2.C: New test. * g++.dg/ext/attr-noinline.C: New test. * g++.dg/ext/attr-nonnull.C: New test. * g++.dg/ext/attr-noreturn-2.C: New test. * g++.dg/ext/attr-noreturn.C: New test. * g++.dg/ext/attr-nothrow-2.C: New test. * g++.dg/ext/attr-nothrow.C: New test. * g++.dg/ext/attr-optimize.C: New test. * g++.dg/ext/attr-pure.C: New test. * g++.dg/ext/attr-returns-nonnull.C: New test. * g++.dg/ext/attr-warning.C: New test. From-SVN: r258045
Martin Sebor committed -
gcc/ChangeLog: PR translation/84207 * diagnostic-core.h (warning_n, error_n, inform_n): Change n argument to unsigned HOST_WIDE_INT. * diagnostic.c (warning_n, error_n, inform_n): Ditto. (diagnostic_n_impl): Ditto. Handle arguments in excess of LONG_MAX. * gimple-ssa-sprintf.c (format_directive): Simplify inform_n call. * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Use warning_n. From-SVN: r258044
Martin Sebor committed -
* parser.c (cp_parser_lambda_introducer): Clear scope after each lambda capture. From-SVN: r258043
Håkon Sandsmark committed -
https://gcc.gnu.org/ml/gcc-patches/2018-02/msg01529.html PR c++/84426 * name-lookup.h (get_member_slot): Rename ... (find_member_slot): ... here. (add_member_slot): New. * name-lookup.c (member_vec_linear_search): No need to check for NULL slot. (get_member_slot): Rename ... (find_member_slot): ... here. Don't add slot for incomplete class. (add_member_slot): New. * class.c (add_method): Adjust get_member_slot rename. Bail out if push_class_level_binding fails. Create slot and grok properties once we're committed to insertion. PR c++/84426 * g++.dg/lookup/pr84426.C: New. From-SVN: r258042
Nathan Sidwell committed -
From-SVN: r258040
Jason Merrill committed -
* pt.c (type_unification_real): Handle early substitution failure. From-SVN: r258039
Jason Merrill committed -
2018-02-27 Richard Biener <rguenther@suse.de> PR tree-optimization/84512 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Do not use the estimate returned from record_stmt_cost for the scalar iteration cost but sum properly using add_stmt_cost. * gcc.dg/tree-ssa/pr84512.c: New testcase. From-SVN: r258036
Richard Biener committed -
2018-02-27 Richard Biener <rguenther@suse.de> PR tree-optimization/84466 * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p): Adjust last change to less strictly validate use operands. From-SVN: r258035
Richard Biener committed -
2018-02-27 Martin Liska <mliska@suse.cz> PR gcov-profile/84548 * gcov.c (process_file): Allow partial overlap and consider it also as group functions. (output_lines): Properly calculate range of lines for a group. 2018-02-27 Martin Liska <mliska@suse.cz> PR gcov-profile/84548 * g++.dg/gcov/pr84548.C: New test. From-SVN: r258033
Martin Liska committed -
* include/std/any (any_cast(const any&)): Add static_assert. (any_cast(any&)): Likewise. (any_cast(any&&)): Likewise, and remove the handling for copyable-but-not-movable type. * testsuite/20_util/any/misc/any_cast.cc: Adjust. * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and add new tests. From-SVN: r258031
Ville Voutilainen committed -
PR target/84575 * gcc.target/i386/pr84309.c: Add -mno-avx2 to dg-options. From-SVN: r258030
Jakub Jelinek committed -
2018-02-27 Martin Liska <mliska@suse.cz> * timevar.c (timer::print_row): Remove 'usr', 'sys', 'wall' and 'ggc' suffixes. Change first column width. (timer::print): Fix formatting of the column. From-SVN: r258029
Martin Liska committed -
This patch stops preserving scope blocks just because they are inlined function scopes, when cleaning up unused scope blocks. This change was introduced along with IEPM, but it preserved lots of blocks, and output debug information for them, although no code from the inlined function remained after optimization. The additional preserved blocks took up compile-time memory, and significant disk space and link time, in some cases more than 25%. This is deemed excessive, compared with the reasonably small benefit of allowing one to single-step into an inlined function using a view-capable debugger. There was another way of marking inlined function scopes as unused, based on the markers referencing them during stmt scanning, but that still preserved too much. So, this patch restores the pre-IEPM logic of preservation of scopes. Should a scope block referenced by an inline entry marker be found to be unused in remove_unused_scope_block_p, the marker will be cleaned up right after that, in clear_unused_block_pointer, so we won't keep a dangling reference to a dropped block. for gcc/ChangeLog * tree-ssa-live.c (remove_unused_scope_block_p): Do not preserve inline entry blocks for the sake of debug inline entry point markers alone. (remove_unused_locals): Suggest in comments a better place to force the preservation of inline entry blocks that are otherwise unused, but do not preserve them. From-SVN: r258026
Alexandre Oliva committed -
* tree.c (array_of_runtime_bound_p): False if the element is variably-modified. From-SVN: r258023
Jason Merrill committed -
* call.c (unsafe_copy_elision_p): Handle COND_EXPR. From-SVN: r258022
Jason Merrill committed -
* lambda.c (lambda_expr_this_capture): Don't look for fake NSDMI 'this' in a generic lambda instantiation. From-SVN: r258021
Jason Merrill committed -
From-SVN: r258020
GCC Administrator committed
-
- 26 Feb, 2018 20 commits
-
-
From-SVN: r258016
Joseph Myers committed -
* constexpr.c (ensure_literal_type_for_constexpr_object): Check for constexpr variable with VLA type. From-SVN: r258015
Jason Merrill committed -
PR c++/84558 * constexpr.c (cxx_eval_vec_init_1): For reuse, treat NULL eltinit like a valid constant initializer. Formatting fixes. * g++.dg/cpp1y/pr84558.C: New test. From-SVN: r258014
Jakub Jelinek committed -
/cp 2018-02-26 Paolo Carlini <paolo.carlini@oracle.com> PR c++/84540 * pt.c (tsubst_attributes): Handle correctly tsubst_attribute returning NULL_TREE. (apply_late_template_attributes): Likewise. /testsuite 2018-02-26 Paolo Carlini <paolo.carlini@oracle.com> PR c++/84540 * g++.dg/cpp0x/alignas14.C: New. * g++.dg/cpp0x/alignas15.C: Likewise. From-SVN: r258012
Paolo Carlini committed -
PR c++/84557 * parser.c (cp_parser_omp_var_list_no_open): Only call cp_parser_lookup_name_simple on names satisfying identifier_p. (cp_parser_oacc_routine): Likewise. * g++.dg/gomp/pr84557.C: New test. From-SVN: r258011
Jakub Jelinek committed -
re PR debug/83917 (with -mcall-ms2sysv-xlogues, stepping into x86 tail-call restore stub gives bad backtrace) PR debug/83917 * config/i386/i386-asm.h (PACKAGE_VERSION, PACKAGE_NAME, PACKAGE_STRING, PACKAGE_TARNAME, PACKAGE_URL): Undefine between inclusion of auto-target.h and auto-host.h. (USE_GAS_CFI_DIRECTIVES): Define if not defined already based on __GCC_HAVE_DWARF2_CFI_ASM. (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset, cfi_def_cfa_register, cfi_def_cfa, cfi_register, cfi_offset, cfi_push, cfi_pop): Define. * config/i386/cygwin.S: Don't include auto-host.h here, just define USE_GAS_CFI_DIRECTIVES to 1 or 0 and include i386-asm.h. (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset, cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): Remove. * config/i386/resms64fx.h: Add cfi_* directives. * config/i386/resms64x.h: Likewise. From-SVN: r258010
Jakub Jelinek committed -
* parser.c (add_debug_begin_stmt): Do nothing in a concept. From-SVN: r258009
Jason Merrill committed -
PR c++/84325 * tree.c (replace_placeholders_r): Only check TREE_CONSTANT on non-types. * g++.dg/cpp1z/pr84325.C: New test. From-SVN: r258008
Marek Polacek committed -
gcc/testsuite/ChangeLog: 2018-02-26 Carl Love <cel@us.ibm.com> * gcc.target/powerpc/builtins-3.c: Move vec_neg builtin tests to Power 8 test file. * gcc.target/powerpc/builtins-3-p8.c: Add vec_neg builtin tests. * gcc.target/powerpc/fold-vec-neg-char.c(dg-options): Add -mcpu=power8. * gcc.target/powerpc/fold-vec-neg-floatdouble.c(dg-options): Add -mcpu=power8. * gcc.target/powerpc/fold-vec-neg-int.c(dg-options): Remove file. * gcc.target/powerpc/fold-vec-neg-short.c(dg-options): Add -mcpu=power8. From-SVN: r258006
Carl Love committed -
Revision 257992 removed the bool argument from ix86_output_indirect_jmp. Update comments to reflect it. * config/i386/i386.c (ix86_output_indirect_jmp): Update comments. From-SVN: r258005
H.J. Lu committed -
* call.c (build_over_call): Handle deleted functions in one place. From-SVN: r258003
Jason Merrill committed -
* g++.dg/ext/is_trivially_constructible6.C: New. From-SVN: r258002
Jason Merrill committed -
For --- struct C { virtual ~C(); virtual void f(); }; void f (C *p) { p->f(); p->f(); } --- -mindirect-branch=thunk-extern -O2 on x86-64 GNU/Linux generates: _Z1fP1C: .LFB0: .cfi_startproc pushq %rbx .cfi_def_cfa_offset 16 .cfi_offset 3, -16 movq (%rdi), %rax movq %rdi, %rbx jmp .LIND1 .LIND0: pushq 16(%rax) jmp __x86_indirect_thunk .LIND1: call .LIND0 movq (%rbx), %rax movq %rbx, %rdi popq %rbx .cfi_def_cfa_offset 8 movq 16(%rax), %rax jmp __x86_indirect_thunk_rax .cfi_endproc x86-64 is supposed to have asynchronous unwind tables by default, but there is nothing that reflects the change in the (relative) frame address after .LIND0. That region really has to be moved outside of the .cfi_startproc/.cfi_endproc bracket. This patch adds TARGET_INDIRECT_BRANCH_REGISTER to force indirect branch via register whenever -mindirect-branch= is used. Now, -mindirect-branch=thunk-extern -O2 on x86-64 GNU/Linux generates: _Z1fP1C: .LFB0: .cfi_startproc pushq %rbx .cfi_def_cfa_offset 16 .cfi_offset 3, -16 movq (%rdi), %rax movq %rdi, %rbx movq 16(%rax), %rax call __x86_indirect_thunk_rax movq (%rbx), %rax movq %rbx, %rdi popq %rbx .cfi_def_cfa_offset 8 movq 16(%rax), %rax jmp __x86_indirect_thunk_rax .cfi_endproc so that "-mindirect-branch=thunk-extern" is equivalent to "-mindirect-branch=thunk-extern -mindirect-branch-register", which is used by Linux kernel. gcc/ PR target/84039 * config/i386/constraints.md (Bs): Replace ix86_indirect_branch_register with TARGET_INDIRECT_BRANCH_REGISTER. (Bw): Likewise. * config/i386/i386.md (indirect_jump): Likewise. (tablejump): Likewise. (*sibcall_memory): Likewise. (*sibcall_value_memory): Likewise. Peepholes of indirect call and jump via memory: Likewise. (*sibcall_GOT_32): Disallowed for TARGET_INDIRECT_BRANCH_REGISTER. (*sibcall_value_GOT_32): Likewise. * config/i386/i386.opt: Likewise. * config/i386/predicates.md (indirect_branch_operand): Likewise. (GOT_memory_operand): Likewise. (call_insn_operand): Likewise. (sibcall_insn_operand): Likewise. (GOT32_symbol_operand): Likewise. * config/i386/i386.h (TARGET_INDIRECT_BRANCH_REGISTER): New. gcc/testsuite/ PR target/84039 * gcc.target/i386/indirect-thunk-1.c: Updated. * gcc.target/i386/indirect-thunk-2.c: Likewise. * gcc.target/i386/indirect-thunk-3.c: Likewise. * gcc.target/i386/indirect-thunk-4.c: Likewise. * gcc.target/i386/indirect-thunk-5.c: Likewise. * gcc.target/i386/indirect-thunk-6.c: Likewise. * gcc.target/i386/indirect-thunk-7.c: Likewise. * gcc.target/i386/indirect-thunk-attr-1.c: Likewise. * gcc.target/i386/indirect-thunk-attr-2.c: Likewise. * gcc.target/i386/indirect-thunk-attr-3.c: Likewise. * gcc.target/i386/indirect-thunk-attr-4.c: Likewise. * gcc.target/i386/indirect-thunk-attr-5.c: Likewise. * gcc.target/i386/indirect-thunk-attr-6.c: Likewise. * gcc.target/i386/indirect-thunk-attr-7.c: Likewise. * gcc.target/i386/indirect-thunk-bnd-1.c: Likewise. * gcc.target/i386/indirect-thunk-bnd-2.c: Likewise. * gcc.target/i386/indirect-thunk-bnd-3.c: Likewise. * gcc.target/i386/indirect-thunk-bnd-4.c: Likewise. * gcc.target/i386/indirect-thunk-extern-1.c: Likewise. * gcc.target/i386/indirect-thunk-extern-2.c: Likewise. * gcc.target/i386/indirect-thunk-extern-3.c: Likewise. * gcc.target/i386/indirect-thunk-extern-4.c: Likewise. * gcc.target/i386/indirect-thunk-extern-5.c: Likewise. * gcc.target/i386/indirect-thunk-extern-6.c: Likewise. * gcc.target/i386/indirect-thunk-extern-7.c: Likewise. * gcc.target/i386/indirect-thunk-inline-1.c: Likewise. * gcc.target/i386/indirect-thunk-inline-2.c: Likewise. * gcc.target/i386/indirect-thunk-inline-3.c: Likewise. * gcc.target/i386/indirect-thunk-inline-4.c: Likewise. * gcc.target/i386/indirect-thunk-inline-5.c: Likewise. * gcc.target/i386/indirect-thunk-inline-6.c: Likewise. * gcc.target/i386/indirect-thunk-inline-7.c: Likewise. * gcc.target/i386/ret-thunk-9.c: Likewise. * gcc.target/i386/ret-thunk-10.c: Likewise. * gcc.target/i386/ret-thunk-11.c: Likewise. * gcc.target/i386/ret-thunk-12.c: Likewise. * gcc.target/i386/ret-thunk-13.c: Likewise. * gcc.target/i386/ret-thunk-14.c: Likewise. * gcc.target/i386/ret-thunk-15.c: Likewise. From-SVN: r258001H.J. Lu committed -
From-SVN: r257999
Eric Botcazou committed -
From-SVN: r257998
Eric Botcazou committed -
From-SVN: r257997
Eric Botcazou committed -
PR rtl-optimization/83496 * reorg.c (steal_delay_list_from_target): Change REDUNDANT array from booleans to RTXes. Call fix_reg_dead_note on every non-null element. (steal_delay_list_from_fallthrough): Call fix_reg_dead_note on a redundant insn, if any. (relax_delay_slots): Likewise. (update_reg_unused_notes): Rename REDUNDANT_INSN to OTHER_INSN. From-SVN: r257996
Eric Botcazou committed -
This patch prevents pattern-matching of fold-left SLP reduction chains, which the previous patch for 83965 didn't handle properly. It only stops the last statement in the group from being matched, but that's enough to cause the group to be dissolved later. A better fix would be to put all the information about the reduction on the the first statement in the reduction chain, so that every statement in the group can tell what the group is doing. That doesn't seem like stage 4 material though. 2018-02-26 Richard Sandiford <richard.sandiford@linaro.org> gcc/ PR tree-optimization/83965 * tree-vect-patterns.c (vect_reassociating_reduction_p): Assume that grouped statements are part of a reduction chain. Return true if the statement is not marked as a reduction itself but is part of a group. (vect_recog_dot_prod_pattern): Don't check whether the statement is part of a group here. (vect_recog_sad_pattern): Likewise. (vect_recog_widen_sum_pattern): Likewise. gcc/testsuite/ PR tree-optimization/83965 * gcc.dg/vect/pr83965-2.c: New test. From-SVN: r257995
Richard Sandiford committed -
2018-02-26 Tom de Vries <tom@codesourcery.com> * gcc.c-torture/compile/regs-arg-size.c (swprintf): Declare. From-SVN: r257994
Tom de Vries committed -
PR debug/84545 * final.c (rest_of_clean_state): Also look for calls inside sequences. From-SVN: r257993
Eric Botcazou committed
-