- 16 Nov, 2018 20 commits
-
-
PR rtl-optimization/87475 * cfgrtl.c (patch_jump_insn): Allow redirection failure for CROSSING_JUMP_P insns. (cfg_layout_redirect_edge_and_branch): Don't ICE if ret is NULL. * g++.dg/opt/pr87475.C: New test. From-SVN: r266219
Jakub Jelinek committed -
PR target/88051 * config/i386/i386.md (floatunsdidf2): Allow only 64bit AVX512F targets. * config/i386/sse.md (UNSPEC_MOVDI_TO_SSE): New UNSPEC. (movdi_to_sse): Rewrite using UNSPEC_MOVDI_TO_SSE unspec. From-SVN: r266218
Uros Bizjak committed -
PR middle-end/87854 * c-common.c (fix_string_type): Reject string literals larger than TYPE_MAX_VALUE (ssizetype) bytes. From-SVN: r266217
Jakub Jelinek committed -
PR middle-end/88032 * optabs.c (expand_binop): For op0_mode use GET_MODE (op0), unless it is VOIDmode, in which case use int_mode. Similarly for op1_mode. From-SVN: r266216
Jakub Jelinek committed -
When running the testsuite on boards that can't report an error status DejaGNU uses a special wrapper to print the exit code on stdout and parses stdout to find whether an execution failed or passed. In testcases that use "freopen (..., ..., stdout)" this special line is printed to the alternate location described in the freopen call and DejaGNU can't find the error code. This results in DejaGNU using a default return status of 2 and the test failing. This patch skips the two testcases that use freopen on stdout when testing a board that requires this wrapper. Testing done by running these two tests on arm-none-eabi cross build and observing that they are unsupported. gcc/testsuite/ChangeLog: 2018-11-16 Matthew Malcomson <matthew.malcomson@arm.com> * gcc.c-torture/execute/printf-2.c: Skip on wrapped boards. * gcc.c-torture/execute/user-printf.c: Likewise. From-SVN: r266214
Matthew Malcomson committed -
* tree-switch-conversion.h (switch_decision_tree::emit_case_nodes): Add location_t parameter. (switch_decision_tree::emit_cmp_and_jump_insns): Likewise. (switch_decision_tree::do_jump_if_equal): Likewise. * tree-switch-conversion.c (switch_decision_tree::emit): Pass location of switch statement to emit_case_nodes. (switch_decision_tree::emit_cmp_and_jump_insns): Add LOC parameter and set it on the newly built GIMPLE comparison statement. (switch_decision_tree::do_jump_if_equal): Likewise. (switch_decision_tree::emit_case_nodes): Add LOC parameter and pass it in calls to do_jump_if_equal as well as recursive calls. From-SVN: r266213
Eric Botcazou committed -
Remove ovl_used, it is no longer needed * cp-tree.h (OVL_USED_P): Delete. (lookup_keep): Delete. * friend.c (add_friend): Don't call it. * parser.c (lookup_literal_operator): Likewise. (cp_parser_primary_expression): Likewise. * semantics.c (perform_koenig_lookup): Likewise. * pt.c (tsubst_copy <OVERLOAD>): Don't assert OVL_USED_P. * tree.c (ovl_copy): Delete. (ovl_insert): Remove OVL_USED_P checks. (ovl_iterator::reveal_node): Likewise. (ovl_iterator::remove__node): Likewise. (ovl_used, lookup_keep): Delete. From-SVN: r266212
Nathan Sidwell committed -
The earlier PTWRITE builtin definition was unnecessarily restrictive, only allowing register input to PTWRITE. The instruction actually supports memory operands too, so allow that too. gcc/: 2018-11-16 Andi Kleen <ak@linux.intel.com> * config/i386/i386.md: Allow memory operands to ptwrite. From-SVN: r266211
Andi Kleen committed -
https://gcc.gnu.org/ml/gcc-patches/2018-11/msg01458.html PR c++/87269 * parser.c (lookup_literal_operator): Mark overload for keeping when inside template. Refactor. * g++.dg/lookup/pr87269.C: New. From-SVN: r266210
Nathan Sidwell committed -
This patch replaces the usage of cached results with a global dictionary. Additionally, check_v3_target_namedlocale is updated to check on every variant. Originally, it is only checked once. gcc/libstdc++-v3/: 2018-11-16 Renlin Li <renlin.li@arm.com> Tejas Belagod <tejas.belagod@arm.com> testsuite/lib/libstdc++.exp (check_v3_target_prop_cached): New proc. (check_v3_target): Use check_v3_target_prop_cached. Co-Authored-By: Tejas Belagod <tejas.belagod@arm.com> From-SVN: r266209
Renlin Li committed -
* system.h (PRsa): New macro. (SIZE_AMOUNT): Cast number to uint64_t. * alloc-pool.h (pool_usage::dump): Don't use %zu but PRsa. (pool_usage::dump_footer): Likewise and also use PRIu64. * bitmap.h (bitmap_usage::dump): Likewise. * ggc-common.c (ggc_usage::dump): Likewise. * ggc-page.c (ggc_print_statistics): Likewise. * input.c (dump_line_table_statistics): Likewise. * mem-stats.h (mem_usage::dump): Likewise. (mem_usage::dump_footer): Likewise. * rtl.c (dump_rtx_statistics): Likewise. * tree-cfg.c (dump_cfg_stats): Likewise. * tree-dfa.c (dump_dfa_stats): Likewise. * tree-phinodes.c (phinodes_print_statistics): Likewise. * tree-ssanames (ssanames_print_statistics): Likewise. * vec.c (vec_usage::dump): Likewise. (vec_usage::dump_footer): Likewise. From-SVN: r266208
Michael Matz committed -
2018-11-16 Martin Liska <mliska@suse.cz> PR lto/88004 * lto-symtab.c (lto_symtab_merge_symbols_1): Do not call lto_symtab_symbol_p as it does checking of transparent alias. These needs to be also merged in the function. From-SVN: r266207
Martin Liska committed -
2018-11-16 Richard Biener <rguenther@suse.de> PR testsuite/88053 * g++.dg/lto/pr54625-2_0.c: Add -w. From-SVN: r266206
Richard Biener committed -
2018-11-16 Richard Biener <rguenther@suse.de> PR tree-optimization/88011 * tree-vrp.c (extract_range_from_binary_expr): Fix error in replacing set_value_range_to_undefined and set_value_range_to_varying with method calls. From-SVN: r266205
Richard Biener committed -
Fixes rXsbg_mode_sXl test failures. Combine used to give us (set (reg:SI 65) (ior:SI (lshiftrt:SI (reg:SI 3 %r3 [ bD.2238 ]) (const_int 2 [0x2])) (reg:SI 2 %r2 [ aD.2237 ]))) but now we get (set (reg:SI 65) (ior:SI (subreg:SI (zero_extract:DI (reg:DI 69) (const_int 32 [0x20]) (const_int 30 [0x1e])) 4) (subreg:SI (reg:DI 68) 4))) or (set (reg:SI 65) (ior:SI (subreg:SI (and:DI (lshiftrt:DI (reg:DI 69) (const_int 2 [0x2])) (const_int 4294967295 [0xffffffff])) 4) (subreg:SI (reg:DI 68) 4))) with an extra subreg, which appears because pseudos, unlike hard registers, can be accessed only using their natural mode. This patch adds a special case for that. Also, it performs r*sbg bit index computations during gcc run, so that expectations do not depend on which concrete pattern was matched. gcc/ChangeLog: 2018-11-16 Ilya Leoshkevich <iii@linux.ibm.com> * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask): Do not delegate arithmetic to assembler. (*r<noxa>sbg_<mode>_sll): Likewise. (*r<noxa>sbg_<mode>_srl): Likewise. (*r<noxa>sbg_sidi_srl): New pattern. gcc/testsuite/ChangeLog: 2018-11-16 Ilya Leoshkevich <iii@linux.ibm.com> * gcc.target/s390/md/rXsbg_mode_sXl.c: Do not use arithmetic in r{o,x}sbg expectations. * gcc.target/s390/risbg-ll-2.c: Likewise. From-SVN: r266203
Ilya Leoshkevich committed -
2018-11-16 Richard Biener <rguenther@suse.de> PR testsuite/88053 * g++.dg/lto/pr54625-1_0.c: Add -w. From-SVN: r266202
Richard Biener committed -
2018-11-16 Jerome Lambourg <lambourg@adacore.com> * config/vxworks.h (TARGET_VXWORKS_HAVE_CTORS_DTORS): New macro. Default to TARGET_VXWORKS_RTP. (SUPPORTS_INIT_PRIORITY): Use TARGET_VXWORKS_HAVE_CTORS_DTORS instead of TARGET_VXWORKS_RTP. * config/vxworksae.h: Also define TARGET_VXWORKS_HAVE_CTORS_DTORS. * config/vxworks.c: Use TARGET_VXWORKS_HAVE_CTORS_DTORS instead of TARGET_VXWORKS_RTP to set targetm.have_ctors_dtors. From-SVN: r266201
Jerome Lambourg committed -
2018-11-15 Xianmiao Qu <xianmiao_qu@c-sky.com> libgcc/ * config/csky/linux-unwind.h (sc_pt_regs): Update for kernel. (sc_pt_regs_lr): Update for kernel. (sc_pt_regs_tls): Update for kernel. From-SVN: r266200
Xianmiao Qu committed -
2018-11-15 Sandra Loosemore <sandra@codesourcery.com> PR c++/25759 gcc/ * doc/extend.texi (Common Type Attributes): Make it explicit that attribute "packed" can apply to C++ classes. From-SVN: r266199
Sandra Loosemore committed -
From-SVN: r266198
GCC Administrator committed
-
- 15 Nov, 2018 20 commits
-
-
PR c++/87541 - ICE using a constant decl as an attribute alloc_size argument PR c++/87542 - bogus error on attribute format with a named constant argument gcc/ChangeLog: PR c++/87541 PR c++/87542 * tree.c (type_argument_type): New function. * tree.h (type_argument_type): Declare it. * gcc/doc/extend.texi (alloc_align): Update and clarify. (alloc_size, nonnull, sentinel): Same. gcc/c-family/ChangeLog: PR c++/87541 PR c++/87542 * c-attribs.c (positional_argument): New function. (handle_alloc_size_attribute): Use it and simplify. (handle_alloc_align_attribute): Same. (handle_assume_aligned_attribute): Same. (handle_nonnull_attribute): Same. * c-common.c (check_function_arguments): Pass fntype to check_function_format. * c-common.h (check_function_format): Add an argument. (PosArgFlags, positional_argument): Declare new type and function. * c-format.c (decode_format_attr): Add arguments. (check_format_string, get_constant): Same. (convert_format_name_to_system_name): Adjust. gcc/testsuite/ChangeLog: PR c++/87541 PR c++/87542 * g++.dg/ext/attr-alloc_size.C: New test. * c-c++-common/pr71574.c: Adjust diagnostics. * c-c++-common/attributes-1.c: Same. * gcc.dg/attr-alloc_align-2.c: Same. * gcc.dg/attr-alloc_align-4.c: New test. * gcc.dg/attr-alloc_size-2.c: Adjust diagnostics. * gcc.dg/attr-alloc_size.c: Same. * gcc.dg/attr-assume_aligned-4.c: New test. * gcc.dg/format/attr-3.c: Adjust diagnostics. * gcc.dg/nonnull-2.c: Same. * gcc.dg/torture/pr80612.c: Same. * obj-c++.dg/attributes/method-format-1.mm: Same. * obj-c++.dg/attributes/method-nonnull-1.mm: Same. * objc.dg/attributes/method-format-1.m: same. * objc.dg/attributes/method-nonnull-1.m: Same. From-SVN: r266195
Martin Sebor committed -
gcc/c/ChangeLog: PR c/83656 * c-decl.c (header_for_builtin_fn): Declare. (diagnose_mismatched_decls): Diagnose declarations of built-in functions without a prototype. * c-typeck.c (maybe_warn_builtin_no_proto_arg): New function. (convert_argument): Same. (convert_arguments): Factor code out into convert_argument. Detect mismatches between built-in formal arguments in calls to built-in without prototype. (build_conditional_expr): Same. (type_or_builtin_type): New function. (convert_for_assignment): Add argument. Conditionally issue warnings instead of errors for mismatches. gcc/testsuite/ChangeLog: PR c/83656 * gcc.dg/20021006-1.c * gcc.dg/Wbuiltin-declaration-mismatch.c: New test. * gcc.dg/Wbuiltin-declaration-mismatch-2.c: New test. * gcc.dg/Wbuiltin-declaration-mismatch-3.c: New test. * gcc.dg/Wbuiltin-declaration-mismatch-4.c: New test. * gcc.dg/Walloca-16.c: Adjust. * gcc.dg/Wrestrict-4.c: Adjust. * gcc.dg/Wrestrict-5.c: Adjust. * gcc.dg/atomic/stdatomic-generic.c: Adjust. * gcc.dg/atomic/stdatomic-lockfree.c: Adjust. * gcc.dg/initpri1.c: Adjust. * gcc.dg/pr15698-1.c: Adjust. * gcc.dg/pr69156.c: Adjust. * gcc.dg/pr83463.c: Adjust. * gcc.dg/redecl-4.c: Adjust. * gcc.dg/tls/thr-init-2.c: Adjust. * gcc.dg/torture/pr55890-2.c: Adjust. * gcc.dg/torture/pr55890-3.c: Adjust. * gcc.dg/torture/pr67741.c: Adjust. * gcc.dg/torture/stackalign/sibcall-1.c: Adjust. * gcc.dg/torture/tls/thr-init-1.c: Adjust. * gcc.dg/tree-ssa/builtins-folding-gimple-ub.c: Adjust. From-SVN: r266194
Martin Sebor committed -
https://gcc.gnu.org/ml/gcc-patches/2018-11/msg01405.html PR c++/86246 PR c++/87989 * typeck.c (finish_class_member_access_expr): Conversion operator to dependent type is dependent. * g++.dg/template/pr86246.C: New. * g++.dg/template/pr87989.C: New. From-SVN: r266193
Nathan Sidwell committed -
/cp 2018-11-15 Paolo Carlini <paolo.carlini@oracle.com> * constexpr.c (ensure_literal_type_for_constexpr_object): Use DECL_SOURCE_LOCATION in error_at calls. /testsuite 2018-11-15 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/cpp0x/constexpr-diag3.C: Check locations too. * g++.dg/cpp0x/constexpr-ice19.C: Likewise. * g++.dg/cpp0x/constexpr-nonlit2.C: Likewise. * g++.dg/cpp1z/constexpr-lambda15.C: Likewise. * g++.dg/ext/constexpr-vla5.C: Likewise. * g++.dg/gomp/pr85134.C: Likewise. From-SVN: r266192
Paolo Carlini committed -
GCN vector sizes range between 64 and 512 bytes, none of which have correspondingly sized integer modes. This breaks a number of assumptions throughout the compiler, but I don't really want to create modes just for this purpose. Instead, this patch fixes up the cases that I've found, so far, such that the compiler tries something else, or fails to optimize, rather than just ICE. 2018-11-15 Andrew Stubbs <ams@codesourcery.com> Kwok Cheung Yeung <kcy@codesourcery.com> gcc/ * tree-vect-stmts.c (vectorizable_store): Don't ICE when int_mode_for_size fails. (vectorizable_load): Likewise. Co-Authored-By: Kwok Cheung Yeung <kcy@codesourcery.com> From-SVN: r266190
Andrew Stubbs committed -
https://gcc.gnu.org/ml/gcc-patches/2018-11/msg01389.html DR 2336 * cp-tree.h (enum special_function_kind): Add sfk_virtual_destructor. * method.c (type_has_trivial_fn): Add it. (SFK_DTOR_P): Likewise. (synthesized_method_base_walk): Don't check access of vbases of abstract classes when sfk_virtual_destructor. (synthesized_method_walk): Skip vbases of abstract classes except when sfk_virtual_destructor. (get_defaulted_eh_spec): Set sfk_virtual_destructor as needed. * g++.dg/cpp1y/pr79393-3.C: New. From-SVN: r266188
Nathan Sidwell committed -
As of r266186, auto_diagnostic_group is now user-visible (via -fdiagnostics-format=json), so update the diagnostic guidelines accordingly. gcc/ChangeLog: * doc/ux.texi (Group logically-related diagnostics): Move discussion of auto_diagnostic_group into this new subsection. Give an example of where this grouping is used. From-SVN: r266187
David Malcolm committed -
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: r266183
Richard 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: r266179
Wilco 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
-