- 09 Jun, 2017 29 commits
-
-
This patch adds a method: rich_location::fixits_cannot_be_auto_applied for ensuring that mutually-incompatible fix-its hints don't lead to insane output from -fdiagnostics-generate-patch. Fix-it hints within such rich_location instances are printed as normal by diagnostic_show_locus, but don't affect the output of -fdiagnostics-generate-patch. gcc/ChangeLog: * diagnostic.c (diagnostic_report_diagnostic): Only add fixits to the edit_context if they can be auto-applied. gcc/testsuite/ChangeLog: * gcc.dg/plugin/diagnostic-test-show-locus-bw.c (test_mutually_exclusive_suggestions): New test function. * gcc.dg/plugin/diagnostic-test-show-locus-generate-patch.c (test_mutually_exclusive_suggestions): New test function. * gcc.dg/plugin/diagnostic-test-show-locus-parseable-fixits.c (test_mutually_exclusive_suggestions): New test function. * gcc.dg/plugin/diagnostic_plugin_test_show_locus.c (test_show_locus): Add special-case for "test_mutually_exclusive_suggestions". libcpp/ChangeLog: * include/line-map.h (rich_location::fixits_cannot_be_auto_applied): New method. (rich_location::fixits_can_be_auto_applied_p): New accessor. (rich_location::m_fixits_cannot_be_auto_applied): New field. * line-map.c (rich_location::rich_location): Initialize new field. From-SVN: r249081
David Malcolm committed -
* pt.c (convert_nontype_argument): Check NULLPTR_TYPE_P rather than nullptr_node. From-SVN: r249080
Jason Merrill committed -
* parser.c (cp_parser_constant_expression): Check potential_rvalue_constant_expression after decay_conversion. * pt.c (convert_nontype_argument): Don't require linkage in C++17. From-SVN: r249079
Jason Merrill committed -
* pt.c (dependent_type_p_r) [FUNCTION_TYPE]: Check for dependent noexcept-specifier. From-SVN: r249078
Jason Merrill committed -
From-SVN: r249077
Jason Merrill committed -
gcc/: * opts.c (finish_options): If -fsplit-stack, disable implicit -forder-blocks-and-partition. * doc/invoke.texi (Optimize Options): Document that when using -fsplit-stack -forder-blocks-and-partition is not implicitly enabled. gcc/go/: * go-lang.c (go_langhook_post_options): If -fsplit-stack is turned on, disable implicit -forder-blocks-and-partition. gcc/testsuite/: * gcc.dg/tree-prof/split-1.c: New test. From-SVN: r249071
Ian Lance Taylor committed -
* builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST, ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST, ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New. * builtins.def (abort, trap, unreachable): Declare cold. * calls.c (flags_from_decl_or_type): Lookup ECF_COLD. * tree-core.h (ECF_COLD): New. * tree.c (set_call_expr_flags): Handle ECF_COLD. (build_common_builtin_nodes): Mark unreachable and abort as cold. * class.c (build_vtbl_initializer): Mark dvirt_fn as cold. * decl.c (cxx_init_decl_processing, push_throw_library_fn): Likewise. (excpet.c): Mark terminate as cold. * gcc.dg/predict-14.c: Avoid cold function detection. * gcc.target/i386/umod-3.c: Likewise. From-SVN: r249070
Jan Hubicka committed -
From-SVN: r249069
Jan Hubicka committed -
From-SVN: r249068
Jan Hubicka committed -
2017-06-09 Tamar Christina <tamar.christina@arm.com> * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New. gcc/testsuite/ 2017-06-09 Tamar Christina <tamar.christina@arm.com> * gcc.target/aarch64/lrint-matherr.h: New. * gcc.target/aarch64/inline-lrint_1.c: New. * gcc.target/aarch64/inline-lrint_2.c: New. * gcc.target/aarch64/no-inline-lrint_1.c: New. * gcc.target/aarch64/no-inline-lrint_2.c: New. From-SVN: r249064
Tamar Christina committed -
2017-06-09 Richard Biener <rguenther@suse.de> * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded model if the ref is always written to. From-SVN: r249063
Richard Biener committed -
2017-06-09 Tamar Christina <tamar.christina@arm.com> * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive than udiv. gcc/testsuite/ 2017-06-09 Tamar Christina <tamar.christina@arm.com> * gcc.target/arm/sdiv_costs_1.c: New. From-SVN: r249062
Tamar Christina committed -
* doc/xml/manual/intro.xml: Document LWG 2802, 2873 and 2942 changes. * include/bits/shared_ptr.h (shared_ptr): Use rvalues for deleters (LWG 2802). * include/bits/shared_ptr_base.h (_Sp_ebo_helper, _Sp_counted_deleter (_Sp_counted_deleter::_Impl, __shared_count, __shared_ptr): Likewise. * testsuite/20_util/shared_ptr/cons/lwg2802.cc: New. From-SVN: r249061
Jonathan Wakely committed -
2017-06-09 Tom de Vries <tom@codesourcery.com> PR target/80855 * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with "target cannot support label values" when encountering LABEL_REF. * gcc.target/nvptx/label-values.c: New test. From-SVN: r249060
Tom de Vries committed -
2017-06-09 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/testsuite/ * lib/target-supports.exp (check_effective_target_arm_arch_FUNC_ok): Test for null definitions instead of them being undefined. Add entry for ARMv7VE. Reindent entry for ARMv8-M Baseline. Add comment warning about using the effective target for architecture extension. (check_effective_target_arm_arch_v7ve_ok): Remove. (add_options_for_arm_arch_v7ve): Likewise. From-SVN: r249059
Thomas Preud'homme committed -
2017-06-09 Martin Liska <mliska@suse.cz> * tree-profile.c (gimple_gen_ic_profiler): Update comment. (gimple_gen_ic_func_profiler): Emit direct comparison of __gcov_indirect_call_callee with NULL. (gimple_gen_time_profiler): Change probability from PROB_VERY_UNLIKELY to PROB_UNLIKELY. 2017-06-09 Martin Liska <mliska@suse.cz> * libgcov-profiler.c (__gcov_indirect_call_profiler_v2): Reset __gcov_indirect_call_callee to NULL. From-SVN: r249058
Martin Liska committed -
* profile.c (edge_gcov_counts): Turn to pointer. (compute_branch_probabilities, compute_branch_probabilities): Update. (branch_prob): Do not clear edge_gcov_count. * profile.h (edge_gcov_counts): Turn to pointer. (edge_gcov_count): Update. From-SVN: r249057
Jan Hubicka committed -
* profile.c (edge_gcov_counts): Turn to pointer. (compute_branch_probabilities, compute_branch_probabilities): Update. * profile.h (edge_gcov_counts): Turn to pointer. (edge_gcov_count): Update. From-SVN: r249056
Jan Hubicka committed -
From-SVN: r249055
Jan Hubicka committed -
* include/bits/forward_list.h (forward_list): Add deduction guide. * include/bits/stl_deque.h (deque): Likewise. * include/bits/stl_list.h (list): Likewise. * include/bits/stl_vector.h (vector): Likewise. * testsuite/23_containers/deque/cons/deduction.cc: New. * testsuite/23_containers/forward_list/cons/deduction.cc: New. * testsuite/23_containers/list/cons/deduction.cc: New. * testsuite/23_containers/vector/cons/deduction.cc: New. From-SVN: r249054
Jonathan Wakely committed -
2017-06-09 Richard Biener <rguenther@suse.de> PR tree-optimization/66623 * tree-vect-loop.c (vect_is_simple_reduction): Cleanup, refactor check_reduction into two parts, properly computing whether we have to check reduction validity for outer loop vectorization. * gcc.dg/vect/pr66623.c: New testcase. From-SVN: r249053
Richard Biener committed -
re PR tree-optimization/79483 ([graphite] ICE: verify_ssa failed (error: definition in block 31 does not dominate use in block 28)) 2017-06-09 Richard Biener <rguenther@suse.de> PR tree-optimization/79483 * graphite-scop-detection.c (order): New global. (get_order): Compute bb to order mapping that satisfies code generation constraints. (cmp_pbbs): New helper. (build_scops): Start domwalk at entry block, sort generated pbbs. * gcc.dg/graphite/pr79483.c: New testcase. From-SVN: r249052
Richard Biener committed -
2017-06-09 Richard Biener <rguenther@suse.de> PR middle-end/81007 * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class): Skip FIELD_DECLs with error_mark_node type. * passes.def (all_lowering_passes): Run pass_build_cgraph_edges last again. * g++.dg/pr81007.C: New testcase. From-SVN: r249051
Richard Biener committed -
From-SVN: r249050
Tamar Christina committed -
* gcc.target/i386/mpx/hard-reg-1-nov.c (mpx_test): Use "esp" instead of "rsp" for -m32. * gcc.target/i386/mpx/hard-reg-2-lbv.c: Require sse2_runtime effective target, add -msse2 to dg-options. * gcc.target/i386/mpx/hard-reg-2-nov.c: Likewise. * gcc.target/i386/mpx/hard-reg-2-ubv.c: Likewise. From-SVN: r249049
Jakub Jelinek committed -
2017-06-09 Martin Liska <mliska@suse.cz> * predict.c (struct branch_predictor): New struct. (test_prediction_value_range): New test. (predict_c_tests): New function. * selftest-run-tests.c (selftest::run_tests): Run the function. * selftest.h: Declare new tests. From-SVN: r249048
Martin Liska committed -
Fix lvalue/rvalue context mixup Set_and_use_temporary_expression's do_get_backend() method. Enhance Mark_lvalue_varexprs to handle conversions and temporary reference expressions, since occasionally the front end emits code such as "deref(conv(tempref)) = ...". Reviewed-on: https://go-review.googlesource.com/45141 From-SVN: r249047
Ian Lance Taylor committed -
If there is a large stack frame the rs6000 -fstack-limit code would calculate the new stack pointer value using two insns (an addis and an addi), with r0 as temporary. Such instructions do not exist. This patch changes add<mode>3 to expand using a different strategy in such cases; to FAIL if there is no way to do it (namely, if the source is r0 and there is no way to get a temporary reg); and it changes rs6000_emit_allocate_stack to assert gen_add3_insn did in fact emit instructions. PR target/80966 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that gen_add3_insn did not fail. * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to r0, construct that number in a temporary reg and add that reg to r0. If asked to put the result in r0 as well, fail. gcc/testsuite/ * gcc.target/powerpc/stack-limit.c: New testcase. From-SVN: r249046
Segher Boessenkool committed -
From-SVN: r249045
GCC Administrator committed
-
- 08 Jun, 2017 11 commits
-
-
[gcc] 2017-06-08 Will Schmidt <will_schmidt@vnet.ibm.com> * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for early expansion of vec_eqv. [gcc/testsuite] 2017-06-08 Will Schmidt <will_schmidt@vnet.ibm.com> * testsuite/gcc.target/powerpc/fold-vec-logical-eqv-char.c: New. * testsuite/gcc.target/powerpc/fold-vec-logical-eqv-float.c: New. * testsuite/gcc.target/powerpc/fold-vec-logical-eqv-floatdouble.c: New. * testsuite/gcc.target/powerpc/fold-vec-logical-eqv-int.c: New. * testsuite/gcc.target/powerpc/fold-vec-logical-eqv-longlong.c: New. * testsuite/gcc.target/powerpc/fold-vec-logical-eqv-short.c: New. From-SVN: r249040
Will Schmidt committed -
PR c/81006 * c-typeck.c (handle_omp_array_sections_1): Convert TYPE_MAX_VALUE to sizetype before size_binop. * semantics.c (handle_omp_array_sections_1): Convert TYPE_MAX_VALUE to sizetype before size_binop. * c-c++-common/gomp/pr81006.c: New test. From-SVN: r249035
Jakub Jelinek committed -
Reviewed-on: https://go-review.googlesource.com/45150 From-SVN: r249033
Ian Lance Taylor committed -
PR c++/81011 * cp-gimplify.c (cxx_omp_finish_clause): When changing clause to OMP_CLAUSE_SHARED, also clear OMP_CLAUSE_SHARED_FIRSTPRIVATE and OMP_CLAUSE_SHARED_READONLY flags. * g++.dg/gomp/pr81011.C: New test. From-SVN: r249031
Jakub Jelinek committed -
re PR middle-end/81005 (-fsanitize=null and -fsanitize=alignment doesn't check aggregate arguments of calls) PR middle-end/81005 * ubsan.c (instrument_null): Avoid pointless code temporary. (pass_ubsan::execute): Instrument aggregate arguments of calls. * c-c++-common/ubsan/align-10.c: New test. * c-c++-common/ubsan/null-13.c: New test. From-SVN: r249030
Jakub Jelinek committed -
A couple of the Backend::var_expression invocations in Unary_expression::do_get_backend were selecting "lvalue" context incorrectly (these var exprs were not in an assignment or LHS position); fix is to change back to "rvalue" context. Reviewed-on: https://go-review.googlesource.com/45136 From-SVN: r249029
Ian Lance Taylor committed -
PR target/81015 Revert: 2016-12-14 Uros Bizjak <ubizjak@gmail.com> PR target/59874 * config/i386/i386.md (*ctzhi2): New insn_and_split pattern. (*clzhi2): Ditto. testsuite/ChangeLog: PR target/81015 * gcc.target/i386/pr59874-1.c (foo): Call __builtin_ctzs. * gcc.target/i386/pr59874-2.c (foo): Call __builtin_clzs. * gcc.target/i386/pr81015.c: New test. From-SVN: r249028
Uros Bizjak committed -
2017-06-08 Tom de Vries <tom@codesourcery.com> * gcc.c-torture/compile/930506-2.c: Use dg-require-effective-target trampolines instead of NO_TRAMPOLINES. * gcc.c-torture/execute/20000822-1.c: Same. * gcc.c-torture/execute/920428-2.c: Same. * gcc.c-torture/execute/920501-7.c: Same. * gcc.c-torture/execute/920612-2.c: Same. * gcc.c-torture/execute/921017-1.c: Same. * gcc.c-torture/execute/921215-1.c: Same. * gcc.c-torture/execute/931002-1.c: Same. * gcc.c-torture/execute/comp-goto-2.c: Same. * gcc.c-torture/execute/nestfunc-1.c: Same. * gcc.c-torture/execute/nestfunc-2.c: Same. * gcc.c-torture/execute/nestfunc-3.c: Same. * gcc.c-torture/execute/nestfunc-5.c: Same. * gcc.c-torture/execute/nestfunc-6.c: Same. * gcc.c-torture/execute/pr24135.c: Same. * gcc.dg/Wtrampolines.c: Same. * gcc.dg/torture/stackalign/comp-goto-1.c: Same. * gcc.dg/torture/stackalign/nested-5.c: Same. * gcc.dg/torture/stackalign/nested-6.c: Same. * gcc.dg/torture/stackalign/non-local-goto-3.c: Same. * gcc.dg/torture/stackalign/non-local-goto-4.c: Same. * gcc.dg/torture/stackalign/non-local-goto-5.c: Same. * gcc.dg/trampoline-1.c: Same. * gcc.dg/tree-prof/pr44777.c: Same. * gcc.target/i386/pr67770.c: Same. * lib/gcc.exp (gcc_target_compile): Remove appending of -DNO_TRAMPOLINES to additional_flags. * lib/objc.exp (objc_target_compile): Same. From-SVN: r249027
Tom de Vries committed -
2017-06-08 Tom de Vries <tom@codesourcery.com> * lib/target-supports.exp (check_effective_target_trampolines): Test for 'gcc,no_trampolines' instead of 'no_trampolines'. From-SVN: r249026
Tom de Vries committed -
* predict.c (unlikely_executed_edge_p): Move ahead. (probably_never_executed_edge_p): Use it. From-SVN: r249025
Jan Hubicka committed -
When an interface I1 in an imported package has an unexported method, and is then embedded into another interface I2, in a different package, that has other methods, and a type T2 is converted to I2, we failed to ever define the required interface method table. Naturally T2 must implement the unexported method, and must therefore either be defined in the same package as I1, or embed a type from that package. In this case the compiler was assuming that that package would define the interface method table, but of course, since I2 was not defined in that package, that did not happen. The fix is to only assume that the interface method table will be defined elsewhere in the case where T2 and I2 are defined in the same package. The compiler ensures that all such interface method tables are created, in Gogo::build_interface_method_tables. This requires knowing the package in which an interface type is defined, a simple tweak to the importer. Testing this revealed that the special case for stub methods created for the embedded unexported methods of T2 needs to be done for function declarations as it currently is for function definitions, so that the newly created interface method tables use the correct name. Testing that revealed that the code to determine the pkgpath symbol for such stub methods was wrong. It assumed that one could call pkgpath_for_symbol on the pkgpath to get the pkgpath symbol. Would that it twere so simple. Instead, add a function to look up the package, which must be known, and fetch the pkgpath symbol. The test for this is https://golang.org/cl/45085. Reviewed-on: https://go-review.googlesource.com/45086 From-SVN: r249024
Ian Lance Taylor committed
-