- 15 Nov, 2018 18 commits
-
-
This patch implements a -fdiagnostics-format=json option which converts the diagnostics to be output to stderr in a JSON format; see the documentation in invoke.texi. Logically-related diagnostics are nested at the JSON level, using the auto_diagnostic_group mechanism. gcc/ChangeLog: PR other/19165 * Makefile.in (OBJS): Move json.o to... (OBJS-libcommon): ...here and add diagnostic-format-json.o. * common.opt (fdiagnostics-format=): New option. (diagnostics_output_format): New enum. * diagnostic-format-json.cc: New file. * diagnostic.c (default_diagnostic_final_cb): New function, taken from start of diagnostic_finish. (diagnostic_initialize): Initialize final_cb to default_diagnostic_final_cb. (diagnostic_finish): Move "being treated as errors" messages to default_diagnostic_final_cb. Call any final_cb. (default_diagnostic_finalizer): Add diagnostic_t param. (diagnostic_report_diagnostic): Pass "orig_diag_kind" to diagnostic_finalizer callback. * diagnostic.h (enum diagnostics_output_format): New enum. (diagnostic_finalizer_fn): Reimplement, adding diagnostic_t param. (struct diagnostic_context): Add "final_cb". (default_diagnostic_finalizer): Add diagnostic_t param. (diagnostic_output_format_init): New decl. * doc/invoke.texi (-fdiagnostics-format): New option. * dwarf2out.c (gen_producer_string): Ignore OPT_fdiagnostics_format_. * gcc.c (driver_handle_option): Handle OPT_fdiagnostics_format_. * lto-wrapper.c (append_diag_options): Ignore it. * opts.c (common_handle_option): Handle it. gcc/c-family/ChangeLog: PR other/19165 * c-opts.c (c_diagnostic_finalizer): Add diagnostic_t param. gcc/fortran/ChangeLog: PR other/19165 * error.c (gfc_diagnostic_finalizer): Add diagnostic_t param. gcc/jit/ChangeLog: PR other/19165 * dummy-frontend.c (jit_begin_diagnostic): Add diagnostic_t param. gcc/testsuite/ChangeLog: PR other/19165 * c-c++-common/diagnostic-format-json-1.c: New test. * c-c++-common/diagnostic-format-json-2.c: New test. * c-c++-common/diagnostic-format-json-3.c: New test. * c-c++-common/diagnostic-format-json-4.c: New test. * c-c++-common/diagnostic-format-json-5.c: New test. * gcc.dg/plugin/diagnostic_plugin_test_show_locus.c (custom_diagnostic_finalizer): Add diagnostic_t param. * gcc.dg/plugin/location_overflow_plugin.c (verify_unpacked_ranges): Likewise. (verify_no_columns): Likewise. * gfortran.dg/diagnostic-format-json-1.F90: New test. * gfortran.dg/diagnostic-format-json-2.F90: New test. * gfortran.dg/diagnostic-format-json-3.F90: New test. From-SVN: r266186
David Malcolm committed -
gcc/ChangeLog: PR tree-optimization/88015 * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::scop_to_isl_ast): Add missing check for dump_enabled_p. * graphite-sese-to-poly.c (build_poly_scop): Likewise. From-SVN: r266184
David Malcolm committed -
2018-11-15 Richard Biener <rguenther@suse.de> PR middle-end/88029 * gimple.c (gimple_call_flags): Union flags from decl, type and call fntype. * trans-mem.c (is_tm_pure_call): Simplify. * gcc.dg/tree-ssa/pr88029.c: New testcase. From-SVN: r266183Richard Biener committed -
2018-11-15 Richard Biener <rguenther@suse.de> PR tree-optimization/88031 * tree-vect-loop.c (vectorizable_reduction): Move check for multiple types earlier so we get the expected dump. Simplify calls to vectorizable_condition. * tree-vect-stmts.h (vectorizable_condition): Update prototype. * tree-vect-stmts.c (vectorizable_condition): Instead of reduc_def and reduc_index take just a flag. Simplify code-generation now that we can rely on the defs being set up. (vectorizable_comparison): Remove unused argument. * gcc.dg/pr88031.c: New testcase. From-SVN: r266182
Richard Biener committed -
https://gcc.gnu.org/ml/gcc-patches/2018-11/msg01376.html * cp-tree.h (enum special_function_kind): Reorder and comment. * method.c (SFK_CTOR_P, SFK_DTOR_P, SFK_ASSIGN_P, SFK_COPY_P) (SFK_MOVE_P): New predicates. (walk_field_subobs, synthesized_method_base_walk): Drop copy_arg_p, move_p, assign_p args. Use new SFK predicates. Order parameters consistently. (synthesized_method_walk): Drop ctor_p, copy_arg_p, move_p, assign_p calculations. Use new SFK predicates. Adjust calls to worker functions. From-SVN: r266180
Nathan Sidwell committed -
Fix spaces in scan assembler tests. testsuite/ * gcc.target/aarch64/pr62178.c: Fix spaces. From-SVN: r266179Wilco Dijkstra committed -
misc.c (gnat_init_gcc_eh): Do not override the switch -fnon-call-exceptions passed on the command line in... * gcc-interface/misc.c (gnat_init_gcc_eh): Do not override the switch -fnon-call-exceptions passed on the command line in -gnatp mode. From-SVN: r266176
Eric Botcazou committed -
2018-11-15 Richard Biener <rguenther@suse.de> PR tree-optimization/88030 * tree-complex.c (need_eh_cleanup): New global. (update_complex_assignment): Mark blocks that need EH update. (expand_complex_comparison): Likewise. (tree_lower_complex): Allocate and deallocate need_eh_cleanup, perform EH cleanup and schedule CFG cleanup if that did anything. * gcc.dg/tsan/pr88030.c: New testcase. From-SVN: r266175
Richard Biener committed -
PR rtl-optimization/88018 * cfgrtl.c (fixup_abnormal_edges): Guard moving insns to fallthru edge on the presence of fallthru edge, rather than if it is a USE or not. * g++.dg/tsan/pr88018.C: New test. From-SVN: r266174
Jakub Jelinek committed -
2018-11-15 Richard Biener <rguenther@suse.de> PR middle-end/87917 * tree-data-ref.c (analyze_miv_subscript): Guard calls to analyze_subscript_affine_affine properly. * gcc.dg/tree-ssa/pr87917.c: New testcase. From-SVN: r266173
Richard Biener committed -
2018-11-15 Xianmiao Qu <xianmiao_qu@c-sky.com> gcc/ * config/csky/csky-linux-elf.h (LINUX_DYNAMIC_LINKER): Remove. (GLIBC_DYNAMIC_LINKER): Define. (LINUX_TARGET_LINK_SPEC): Update the dynamic linker's name. libgcc/ * config/csky/linux-unwind.h: Fix coding style. From-SVN: r266172
Xianmiao Qu committed -
PR tree-optimization/84648 * tree-ssa-loop-niter.c (adjust_cond_for_loop_until_wrap): New. (number_of_iterations_cond): Adjust exit cond for loop-until-wrap case by calling adjust_cond_for_loop_until_wrap. gcc/testsuite * gcc.dg/tree-ssa/pr84648.c: New test. * gcc.dg/pr68317.c: Add warning check on overflow. From-SVN: r266171
Bin Cheng committed -
2018-11-15 Sandra Loosemore <sandra@codesourcery.com> PR other/56334 gcc/ * doc/extend.texi (Common Function Attributes): Clarify linker restrictions on "aligned" attribute. (Common Variable Attributes): Likewise. Mention that linker restrictions don't apply to stack-allocated variables. From-SVN: r266170
Sandra Loosemore committed -
* gensupport.c (add_predicate_code): Properly handle ZERO_EXTRACT as an lvalue. From-SVN: r266169Joern Rennecke committed -
2018-11-14 Sandra Loosemore <sandra@codesourcery.com> PR lto/55102 PR lto/56700 gcc/ * doc/invoke.texi (Optimize Options): Remove bad example about interaction between -flto and -O. Replace it with a note that you need to compile with -O and not just link. Copy-edit -flto discussion to reduce verbiage and improve flow. From-SVN: r266168
Sandra Loosemore committed -
From-SVN: r266167
GCC Administrator committed -
A recent change caused a performance regression. This restores the previous performance and adds a performance test. * scripts/check_performance: Allow tests to choose a -std flag. * src/c++17/memory_resource.cc (bitset::get_first_unset()): Use local variables of the right types. Call update_next_word() unconditionally. * testsuite/20_util/unsynchronized_pool_resource/cons.cc: New test. * testsuite/performance/20_util/memory_resource/pools.cc: New test. * testsuite/util/testsuite_performance.h (time_counter): Allow timer to be restarted. From-SVN: r266164
Jonathan Wakely committed -
* testsuite/20_util/unsynchronized_pool_resource/allocate.cc: Fix test for 32-bit targets. Test additional allocation sizes. From-SVN: r266163
Jonathan Wakely committed
-
- 14 Nov, 2018 22 commits
-
-
2018-11-14 Sandra Loosemore <sandra@codesourcery.com> PR middle-end/59658 gcc/ * doc/invoke.texi (Optimize Options): Clarify that -O0 and -Og also suppress many optimizations. Alphabetize option lists for -O1, -O2, and -Os. Add list of options disabled with -Og, and correct documentation for those options to say that. * opts.c (default_options_table): Sort table by level and option name, to make it easier to correlate to the manual. From-SVN: r266162
Sandra Loosemore committed -
* config/i386/i386.c (ix86_print_operand_address_as): Simplify printing of the names of segment registers. From-SVN: r266161
Uros Bizjak committed -
https://gcc.gnu.org/ml/gcc-patches/2018-11/msg01280.html PR debug/88006 PR debug/87462 * dwarf2out.c (dwarf2out_finish): Apply resolve_addr to comdat type list. * g++.dg/debug/dwarf2/pr87462.C: New. * g++.dg/debug/dwarf2/pr88006.C: New. From-SVN: r266158
Nathan Sidwell committed -
gcc/ChangeLog: * Makefile.in (CFLAGS-optinfo-emit-json.o): Add $(ZLIBINC). From-SVN: r266156
David Malcolm committed -
/cp 2018-11-14 Paolo Carlini <paolo.carlini@oracle.com> * parser.c (make_id_declarator): Add location_t parameter. (cp_parser_lambda_declarator_opt): Adjust call. (cp_parser_decomposition_declaration): Likewise. (cp_parser_alias_declaration): Likewise. (cp_parser_direct_declarator): Likewise. (cp_parser_member_declaration): Likewise. (cp_parser_objc_class_ivars): Likewise. * decl.c (grokdeclarator): Use declarator->id_loc in two error messages. /testsuite 2018-11-14 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/cpp0x/nsdmi-union6.C: Test locations too. * g++.dg/cpp0x/nsdmi6.C: Likewise. * g++.dg/ext/flexary4.C: Likewise. * g++.dg/ext/flexary9.C: Likewise. * g++.dg/other/incomplete2.C: Likewise. * g++.dg/parse/friend12.C: Likewise. From-SVN: r266155
Paolo Carlini committed -
* gcc_update (files_and_dependencies): Handle libphobos. From-SVN: r266154
Rainer Orth committed -
P1236R1 - Signed integers are two's complement gcc/cp/ * constexpr.c (cxx_eval_check_shift_p): Disable the signed LSHIFT_EXPR checks for c++2a. gcc/c-family/ * c-warn.c (maybe_warn_shift_overflow): Don't warn for c++2a. * c-ubsan.c (ubsan_instrument_shift): Make signed shifts with in-range second operand well defined for -std=c++2a. gcc/ * doc/invoke.texi (Wshift-overflow): Adjust documentation for c++2a. gcc/testsuite/ * g++.dg/cpp2a/constexpr-shift1.C: New test. * g++.dg/warn/permissive-1.C (enum A, enum D): Don't expect diagnostics here for c++2a. * g++.dg/cpp0x/constexpr-shift1.C (fn3, i3, fn4, i4): Don't expect diagnostics here for c++2a. * g++.dg/cpp0x/constexpr-60049.C (f3, x3, y3): Likewise. * g++.dg/ubsan/cxx11-shift-1.C (main): Add some further tests. * g++.dg/ubsan/cxx11-shift-2.C (main): Likewise. * g++.dg/ubsan/cxx2a-shift-1.C: New test. * g++.dg/ubsan/cxx2a-shift-2.C: New test. From-SVN: r266153
Jakub Jelinek committed -
PR bootstrap/86739 * hash-map.h (hash_map::iterator::reference_pair): New class. (hash_map::iterator::operator*): Return it rather than std::pair. From-SVN: r266152
Jakub Jelinek committed -
* optabs.c (expand_binop): Pass INT_MODE to operand_subword_force iff the operand is a constant. * gcc.c-torture/compile/20181114.c: New test. 2018-11-14 Ilya Leoshkevich <iii@linux.ibm.com> From-SVN: r266151
Jeff Law committed -
(evrp_range_analyzer::record_ranges_from_incoming_edge): Rename ignore_equivs_equal_p to equal_p. * ipa-cp.c (meet_with_1): Use equal_p instead of ignore_equivs_equal_p. * ipa-prop.c (ipa_vr_ggc_hash_traits::equal): Same. * tree-vrp.c (value_range::ignore_equivs_equal_p): Remove. (value_range::operator==): Remove. (value_range::operator!=): Remove. (vrp_prop::visit_stmt): Use equal_p. * tree-vrp.h (value_range): Remove operator==, operator!=, ignore_equivs_equal_p. * vr-values.c (update_value_range): Use equal_p. From-SVN: r266150
Aldy Hernandez committed -
From-SVN: r266149
Michael Matz committed -
Fix PR middle-end/86575 PR middle-end/86575 * gimplify.c (collect_fallthrough_labels): Add new argument, return location via that, don't modify statements. (warn_implicit_fallthrough_r): Adjust call, don't use statement location directly. From-SVN: r266148
Michael Matz committed -
2018-11-14 Richard Biener <rguenther@suse.de> PR middle-end/87985 * tree-data-ref.c (split_constant_offset): Add wrapper allocating a cache hash-map. (split_constant_offset_1): Cache results of expanding expressions from SSA def stmts. * gcc.dg/pr87985.c: New testcase. From-SVN: r266147
Richard Biener committed -
* scripts/create_testsuite_files: Add special_functions to the list of directories to search. Add comment referring to conformance.exp. * testsuite/libstdc++-dg/conformance.exp: Add comment referring to create_testsuite_files. From-SVN: r266146
Jonathan Wakely committed -
mode The emitted address is .long, not .quad, in that case. gcc/testsuite/ChangeLog: 2018-11-14 Ilya Leoshkevich <iii@linux.ibm.com> * gcc.target/s390/mrecord-mcount.c (profileme): Expect .long in 31-bit mode. From-SVN: r266145
Ilya Leoshkevich committed -
These tests rely on larl->movdi merge, which is not implemented for 31-bit mode. gcc/testsuite/ChangeLog: 2018-11-14 Ilya Leoshkevich <iii@linux.ibm.com> * gcc.target/s390/global-array-almost-huge-element.c: Run only in 64-bit mode. * gcc.target/s390/global-array-almost-negative-huge-element.c: Likewise. * gcc.target/s390/global-array-even-element.c: Likewise. From-SVN: r266144
Ilya Leoshkevich committed -
2018-11-14 Richard Biener <rguenther@suse.de> PR middle-end/88021 * tree-data-ref.c (lambda_matrix_row_add): Change const1 argument to lambda_int. (lambda_vector_mult_const): Likewise. (lambda_matrix_right_hermite): Use lambda_int temporaries. From-SVN: r266143
Richard Biener committed -
This patch implements some of the optimizations discussed in PR71026. Simplify (C / x >= 0.0) into x >= 0.0 with -funsafe-math-optimizations (since C / x can underflow to zero if x is huge, it's not safe otherwise). If C is negative the comparison is reversed. Simplify (x * C1) > C2 into x > (C2 / C1) with -funsafe-math-optimizations. If C1 is negative the comparison is reversed. gcc/ PR 71026/tree-optimization * match.pd: Simplify floating point comparisons. gcc/testsuite/ PR 71026/tree-optimization * gcc.dg/div-cmp-1.c: New test. * gcc.dg/div-cmp-2.c: New test. Co-Authored-By: Jackson Woodruff <jackson.woodruff@arm.com> From-SVN: r266142Wilco Dijkstra committed -
PR other/88007 * c-common.c (parse_optimize_options): Allocate option string from opts_obstack rather than as GC memory. Move the allocation after warning for invalid option. * gcc.dg/pr88007.c: New test. From-SVN: r266141
Jakub Jelinek committed -
PR rtl-optimization/87817 * config/i386/i386.c (ix86_fold_builtin): For _bzhi_u{32,64} if last argument has low 8 bits clear, fold to 0. * gcc.target/i386/bmi2-bzhi-3.c (main): Add a couple of new tests. From-SVN: r266140Jakub Jelinek committed -
The testcase for PR62178 has been failing for a while due to the pass conditions being too tight, resulting in failures with -mcmodel=tiny: ldr q2, [x0], 124 ld1r {v1.4s}, [x1], 4 cmp x0, x2 mla v0.4s, v2.4s, v1.4s bne .L7 -mcmodel=small generates the slightly different: ldr q1, [x0], 124 ldr s2, [x1, 4]! cmp x0, x2 mla v0.4s, v1.4s, v2.s[0] bne .L7 This is due to Combine merging a DUP instruction with either a load or MLA - we can't force it to prefer one over the other. However the generated vector loop is fast either way since it generates MLA and merges the DUP either with a load or MLA. So relax the conditions slightly and check we still generate MLA and there is no DUP or FMOV. The testcase now passes - committed as obvious. testsuite/ * gcc.target/aarch64/pr62178.c: Relax scan-assembler checks. From-SVN: r266139Wilco Dijkstra committed -
gcc/ * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Cast MAX_OFILE_ALIGNMENT as needed. From-SVN: r266138
Iain Sandoe committed
-