1. 16 Nov, 2018 2 commits
  2. 15 Nov, 2018 25 commits
    • PR c++/87541 - ICE using a constant decl as an attribute alloc_size argument · 1d249509
      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
    • PR c/83656 - missing -Wbuiltin-declaration-mismatch on declaration without prototype · cd5da983
      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
    • [PR c++/86246] ICE tsubst explicit operator call · 2a4030ef
      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
    • constexpr.c (ensure_literal_type_for_constexpr_object): Use DECL_SOURCE_LOCATION in error_at calls. · f2935576
      /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
    • Handle vectors that don't fit in an integer. · 1ec7f492
      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
    • [C++ DR 2336] virtual dtors, exception specs & abstract classes · 2bd652d2
      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
    • doc/ux.texi: auto_diagnostic_group now does something · 1a50c428
      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
    • Machine-readable diagnostic output (PR other/19165) · 478dd60d
      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
    • graphite: add missing dump_enabled_p checks (PR tree-optimization/88015) · ef190c93
      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
    • re PR tree-optimization/88029 (ICE in execute_todo, at passes.c:1974) · 0e02fb26
      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
    • re PR tree-optimization/88031 (ICE in vectorizable_reduction, at tree-vect-loop.c:6953) · 22692f3c
      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
    • [C++ DR 2336] Clean up synth walkers first · 3f5a0fde
      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 PR62178 test · e99d38d0
      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… · 5f3040ed
      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
    • re PR tree-optimization/88030 (ICE in calc_dfs_tree, at dominance.c:458) · bca7138a
      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
    • re PR rtl-optimization/88018 (ICE in insert_insn_on_edge at cfgrtl.c:1952 since r255066) · 3df45f17
      	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
    • re PR tree-optimization/87917 (ICE in initialize_matrix_A at gcc/tree-data-ref.c:3150) · ef0519fd
      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
    • csky-linux-elf.h (LINUX_DYNAMIC_LINKER): Remove. · 28209372
      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
    • re PR tree-optimization/84648 (Missed optimization : loop not removed.) · a81e2c62
      
      	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
    • re PR other/56334 (__attribute__((aligned)) documentation is misleading) · d8fdf280
      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. · 4822d9cb
              * gensupport.c (add_predicate_code): Properly handle ZERO_EXTRACT
              as an lvalue.
      
      From-SVN: r266169
      Joern Rennecke committed
    • re PR lto/55102 (The options -flto and -On do not behave as described in GCC docs) · ef0336dc
      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
    • Daily bump. · 97eb702c
      From-SVN: r266167
      GCC Administrator committed
    • Optimize pool resource allocation · a15032ee
      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
    • Fix test that does undefined shifts greater than width of size_t · aeb2b1f7
      	* testsuite/20_util/unsynchronized_pool_resource/allocate.cc: Fix
      	test for 32-bit targets. Test additional allocation sizes.
      
      From-SVN: r266163
      Jonathan Wakely committed
  3. 14 Nov, 2018 13 commits