1. 28 Feb, 2018 26 commits
    • re PR c++/83871 (wrong code for attribute const and pure on distinct template specializations) · f6eee6bf
      	PR c++/83871
      	PR c++/83503
      	* pt.c (INCLUDE_STRING): Remove define.
      	(warn_spec_missing_attributes): Use pretty_printer instead of
      	std::string.  Fix up inform call so that the list of attributes
      	is in %s argument.
      
      From-SVN: r258079
      Jakub Jelinek committed
    • gimple-ssa-warn-restrict.c (maybe_diag_overlap): Use warning_n instead of… · 15d3974b
      gimple-ssa-warn-restrict.c (maybe_diag_overlap): Use warning_n instead of warning_at with conditional singular and plural...
      
      	* gimple-ssa-warn-restrict.c (maybe_diag_overlap): Use warning_n
      	instead of warning_at with conditional singular and plural messages
      	where possible.
      
      From-SVN: r258078
      Jakub Jelinek committed
    • PR testsuite/84617 - new test cases g++.dg/ext/attr-const.C and g++.dg/ext/attr-pure.C fail · be583c04
      gcc/cp/ChangeLog:
      
      	* decl.c (duplicate_decls): Fully merge attributes const, pure,
      	and malloc.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/ext/attr-malloc-3.C: New test.
      	* g++.dg/ext/attr-const.C: Adjust.  Xfail assertions failing due
      	to pre-existing problems.
      	* g++.dg/ext/attr-pure.C: Same.
      
      From-SVN: r258077
      Martin Sebor committed
    • re PR fortran/83901 (ICE in fold_convert_loc, at fold-const.c:2402) · b14a13fa
      2018-02-28  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/83901
      	* trans-stmt.c (trans_associate_var): Make sure that the se
      	expression is a pointer type before converting it to the symbol
      	backend_decl type.
      
      2018-02-28  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/83901
      	* gfortran.dg/associate_37.f90: New test.
      
      	PR fortran/83344
      	* gfortran.dg/associate_36.f90: Add Steve Kargl as contributer.
      
      From-SVN: r258076
      Paul Thomas committed
    • re PR target/52991 (attribute packed broken on mingw32?) · ba64c7b8
      	PR target/52991
      	* stor-layout.c (update_alignment_for_field): For
      	targetm.ms_bitfield_layout_p (rli->t), if !is_bitfield
      	&& !DECL_PACKED (field), do the alignment update, just use
      	only desired_align instead of MAX (type_align, desired_align)
      	as the alignment.
      	(place_field): Don't do known_align < desired_align handling
      	early if targetm.ms_bitfield_layout_p (rli->t) and rli->prev_field
      	is non-NULL, instead do it after rli->prev_field handling and
      	only if not within a bitfield word.  For DECL_PACKED (field)
      	use type_align of BITS_PER_UNIT.
      
      	* gcc.dg/bf-ms-layout.c: Revert 2012-04-26 changes.
      	* gcc.dg/bf-ms-layout-2.c: Revert 2012-02-23 changes.
      	* gcc.dg/bf-ms-layout-4.c: New test.
      	* gcc.dg/bf-ms-layout-5.c: New test.
      
      From-SVN: r258075
      Jakub Jelinek committed
    • aarch64.c (aarch64_emit_probe_stack_range): Remove superfluous parentheses and trailing spaces. · 8dd64cdf
      	* config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Remove
      	superfluous parentheses and trailing spaces.
      
      From-SVN: r258074
      Eric Botcazou committed
    • Remove config/i386/i386.opt from revision 258001 ChangeLog · 6fd94ee2
      Revision 258001 doesn't change config/i386/i386.opt.
      
      From-SVN: r258073
      H.J. Lu committed
    • re PR target/83399 (Power8 ICE During LRA with 2-op rtl pattern for lvx instruction) · bf3c8adf
      	PR target/83399
      	* gcc.target/powerpc/pr83399.c: Only run on Linux.
      
      From-SVN: r258071
      Peter Bergner committed
    • re PR tree-optimization/84584 ([graphite] ICE: Segmentation fault (in dominated_by_p)) · 0e0e545f
      2018-02-28  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/84584
      	* graphite-scop-detection.c (scop_detection::add_scop): Discard
      	SCoPs with fake exit edge.
      
      	* gcc.dg/graphite/pr84584.c: New testcase.
      
      From-SVN: r258070
      Richard Biener committed
    • PR preprocessor/84517 allow double-underscore macros after string literals · b44f8ad8
      gcc/testsuite:
      
      	PR preprocessor/84517
      	* g++.dg/cpp0x/udlit-macros.C: Expect a warning for ""__FILE__.
      
      libcpp:
      
      	PR preprocessor/84517
      	* lex.c (is_macro_not_literal_suffix): New function.
      	(lex_raw_string, lex_string): Use is_macro_not_literal_suffix to
      	decide when to issue -Wliteral-suffix warnings.
      
      From-SVN: r258069
      Jonathan Wakely committed
    • i-cexten.ads (Float_128): New type. · c6db43fa
      ada/
      	* libgnat/i-cexten.ads (Float_128): New type.
      c-family/
      	* c-ada-spec.c (dump_ada_node) <NULLPTR_TYPE>: New case.
      	<REAL_TYPE>: Deal specifically with _Float128/__float128.
      
      From-SVN: r258068
      Eric Botcazou committed
    • c-ada-spec.c (dump_ada_double_name): New case. · 9e25c7ed
      	* c-ada-spec.c (dump_ada_double_name) <ENUMERAL_TYPE>: New case.
      	(is_char_array): Take a type instead of a declaration.
      	(dump_ada_array_type): Likewise.
      	(is_simple_enum): Minor tweak.
      	(dump_ada_enum_type): New function extracted from...
      	(dump_ada_node) <ENUMERAL_TYPE>: ...here.  Invoke it.
      	<INTEGER_TYPE>: Remove unreachable code.
      	<RECORD_TYPE>: Likewise.  Minor tweaks.
      	(dump_nested_type) <ARRAY_TYPE>: Adjust to above changes.
      	<ENUMERAL_TYPE>: New case.
      	<RECORD_TYPE>: Factor out common code.
      	(dump_ada_declaration) <ARRAY_TYPE>: Adjust to above changes.
      	Minor tweaks.  Deal with enumeral types.
      	(dump_ada_structure): Minor tweaks.
      
      From-SVN: r258067
      Eric Botcazou committed
    • c-ada-spec.c (dump_ada_node): Do not use generic address for incomplete structures. · 09de3550
      	* c-ada-spec.c (dump_ada_node) <POINTER_TYPE>: Do not use generic
      	address for incomplete structures.
      	(dump_forward_type): Do not bail out for incomplete structures.
      	(dump_ada_declaration): Do not special-case incomplete structures
      	for subtypes.  Dump them as null records for types.
      
      From-SVN: r258066
      Eric Botcazou committed
    • c-ada-spec.c (dump_ada_import): Use boolean and fix formatting. · e02f4b92
      	* c-ada-spec.c (dump_ada_import): Use boolean and fix formatting.
      	(is_char_array): Fix formatting.
      	(dump_template_types): Likewise.
      	(dump_generic_ada_node): Rename into...
      	(dump_ada_node): ...this.
      	<POINTER_TYPE>: Remove superfluous space.  Use generic address for
      	incomplete structures and not for empty structures.  Do not use it
      	when forward declarations are needed.
      	(dump_forward_type): New function.
      	(dump_nested_types): Remove FORWARD parameter.  Do not consider
      	TREE_VISITED and do not generate a forward declaration.  Only dump
      	original nested types for nested declaration.
      	(dump_nested_type) <POINTER_TYPE>: Call dump_forward_type.
      	<ARRAY_TYPE>: Likewise if the component type is an anonymous pointer.
      	<RECORD_TYPE>: Do not consider TREE_VISITED.
      	(dump_ada_declaration): Use booleans and fix formatting throughout.
      	<TYPE_DECL>: Skip incomplete structures and not empty structures.
      	Call dump_forward_type instead of dump_nested_types for a typedef.
      	Remove superfluous check and adjust call to dump_nested_types.
      	<POINTER_TYPE>: Call dump_forward_type and fall through.
      	(dump_ada_struct_decl): Rename into...
      	(dump_ada_structure): ...this.  Do not special-case empty structures.
      
      From-SVN: r258064
      Eric Botcazou committed
    • Fix timevar format and fix tests (PR testsuite/84597). · 4830cfc0
      2018-02-28  Martin Liska  <mliska@suse.cz>
      
      	PR testsuite/84597
      	* timevar.c (timer::print): Fix format to properly print 100%
      	values.
      2018-02-28  Martin Liska  <mliska@suse.cz>
      
      	PR testsuite/84597
      	* g++.dg/ext/timevar1.C: Fix pruned patterns.
      	* g++.dg/ext/timevar2.C: Likewise.
      
      From-SVN: r258063
      Martin Liska committed
    • c-ada-spec.c (dump_ada_import): Use boolean and fix formatting. · 095d8d4b
      	* c-ada-spec.c (dump_ada_import): Use boolean and fix formatting.
      	(is_char_array): Fix formatting.
      	(dump_template_types): Likewise.
      	(dump_generic_ada_node): Rename into...
      	(dump_ada_node): ...this.
      	<POINTER_TYPE>: Remove superfluous space.  Use generic address for
      	incomplete structures and not for empty structures.  Do not use it
      	when forward declarations are needed.
      	(dump_forward_type): New function.
      	(dump_nested_types): Remove FORWARD parameter.  Do not consider
      	TREE_VISITED and do not generate a forward declaration.  Only dump
      	original nested types for nested declaration.
      	(dump_nested_type) <POINTER_TYPE>: Call dump_forward_type.
      	<ARRAY_TYPE>: Likewise if the component type is an anonymous pointer.
      	<RECORD_TYPE>: Do not consider TREE_VISITED.
      	(dump_ada_declaration): Use booleans and fix formatting throughout.
      	<TYPE_DECL>: Skip incomplete structures and not empty structures.
      	Call dump_forward_type instead of dump_nested_types for a typedef.
      	Remove superfluous check and adjust call to dump_nested_types.
      	<POINTER_TYPE>: Call dump_forward_type and fall through.
      	(dump_ada_struct_decl): Rename into...
      	(dump_ada_structure): ...this.  Do not special-case empty structures.
      
      From-SVN: r258062
      Eric Botcazou committed
    • re PR c/84607 (Side effects discarded in address computation inside 'if') · 9348eb67
      2018-02-28  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/84607
      	* genmatch.c (capture_info::walk_match): Do not mark
      	captured expressions without operands as expr_p given
      	they act more like predicates and should be subject to
      	"lost tail" side-effect preserving.
      
      	* gcc.dg/pr84607.c: New testcase.
      
      From-SVN: r258061
      Richard Biener committed
    • [PR c++/84602] ICE with anon-struct · 35129fd3
      https://gcc.gnu.org/ml/gcc-patches/2018-02/msg01577.html
      	PR c++/84602
      	* name-lookup.h (search_anon_aggr): Add defaulted WANT_TYPE arg.
      	* name-lookup.c (fields_linear_search): Look in an anon-aggr
      	regardless of want_type.
      	(search_anon_aggr): Just use get_class_binding_direct.
      
      	PR c++/84602
      	* g++.dg/lookup/pr84602.C: New.
      
      From-SVN: r258060
      Nathan Sidwell committed
    • re PR c++/83871 (wrong code for attribute const and pure on distinct template specializations) · 6030f6fe
      	PR c++/83871
      	PR c++/83503
      	* g++.dg/ext/attr-warning.C: Remove -fdump-tree-optimized from
      	dg-options.
      	* g++.dg/ext/attr-nonnull.C: Likewise.
      	* g++.dg/ext/attr-noinline.C: Fix syntax in scan-tree-dump-not directives.
      	* g++.dg/ext/attr-noinline-2.C: Likewise.
      	* g++.dg/ext/attr-noreturn-2.C: Use -fdump-tree-optimized instead of
      	-fdump-tree-eh in dg-options.
      
      From-SVN: r258059
      Jakub Jelinek committed
    • decl.c (cp_finish_decomp): Don't adjust eltscnt when calling inform_n. · c1299a9e
      	* decl.c (cp_finish_decomp): Don't adjust eltscnt when calling
      	inform_n.
      
      From-SVN: r258058
      Jakub Jelinek committed
    • re PR debug/83917 (with -mcall-ms2sysv-xlogues, stepping into x86 tail-call… · ce579a4f
      re PR debug/83917 (with -mcall-ms2sysv-xlogues, stepping into x86 tail-call restore stub gives bad backtrace)
      
      	PR debug/83917
      	* configure.ac (AS_HIDDEN_DIRECTIVE): AC_DEFINE_UNQUOTED this to
      	$asm_hidden_op if visibility ("hidden") attribute works.
      	(HAVE_AS_CFI_SECTIONS): New AC_DEFINE.
      	* config/i386/i386-asm.h: Don't include auto-host.h.
      	(PACKAGE_VERSION, PACKAGE_NAME, PACKAGE_STRING, PACKAGE_TARNAME,
      	PACKAGE_URL): Don't undefine.
      	(USE_GAS_CFI_DIRECTIVES): Don't use nor define this macro, instead
      	guard cfi_startproc only on ifdef __GCC_HAVE_DWARF2_CFI_ASM.
      	(FN_HIDDEN): Change guard from #ifdef HAVE_GAS_HIDDEN to
      	#ifdef AS_HIDDEN_DIRECTIVE, use AS_HIDDEN_DIRECTIVE macro in the
      	definition instead of hardcoded .hidden.
      	* config/i386/cygwin.S: Include i386-asm.h first before .cfi_sections
      	directive.  Use #ifdef HAVE_AS_CFI_SECTIONS rather than
      	#ifdef HAVE_GAS_CFI_SECTIONS_DIRECTIVE to guard .cfi_sections.
      	(USE_GAS_CFI_DIRECTIVES): Don't define.
      	* configure: Regenerated.
      	* config.in: Likewise.
      
      From-SVN: r258057
      Jakub Jelinek committed
    • gcc testsuite changes for new linker messages · 678127a8
      GNU ld error messages have changed to comply with the GNU coding
      standards.
      
      	* lib/prune.exp (prune_gcc_output): Match lower case "in function"
      	GNU ld message.
      	* g++.dg/other/anon5.C: Match lower case "bad value" GNU ld message.
      
      From-SVN: r258054
      Alan Modra committed
    • [PR81611] turn inc-and-use-of-dead-orig into auto-inc · 408e8935
      When the addressing modes available on the machine don't allow offsets
      in addresses, odds are that post-increments will be represented in
      trees and RTL as:
      
        y <= x + 1
        ... *(x) ...
        x <= y
      
      so deal with it by turning such RTL as:
      
        (set y (plus x n))
        ... (mem x) ...
      
      without intervening uses of y into
      
        (set y x)
        ... (mem (post_add y n)) ...
      
      so as to create auto-inc addresses that we'd otherwise miss.
      
      
      for  gcc/ChangeLog
      
      	PR rtl-optimization/81611
      	* auto-inc-dec.c (attempt_change): Move dead note from
      	mem_insn if it's the next use of regno
      	(find_address): Take address use of reg holding
      	non-incremented value.  Add parm to limit search to the named
      	reg only.
      	(merge_in_block): Attempt to use a mem insn that is the next
      	use of the original regno.
      
      From-SVN: r258053
      Alexandre Oliva committed
    • libgo: update to final Go 1.10 release · 930540ca
          
          Reviewed-on: https://go-review.googlesource.com/97517
      
      From-SVN: r258051
      Ian Lance Taylor committed
    • Daily bump. · 5007cea3
      From-SVN: r258050
      GCC Administrator committed
  2. 27 Feb, 2018 14 commits
    • Avoid including <string> directly. · 2211eff6
      From-SVN: r258046
      Martin Sebor committed
    • PR c++/83871 - wrong code for attribute const and pure on distinct template specializations · d4cfd486
      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
    • PR translation/84207 - Hard coded plural in gimple-fold.c · 1c89478a
      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
    • PR c++/71546 - lambda init-capture with qualified-id. · 76bd270a
      	* parser.c (cp_parser_lambda_introducer): Clear scope after
      	each lambda capture.
      
      From-SVN: r258043
      Håkon Sandsmark committed
    • [PR c++/84426] ICE after conflicting member decl · 10b5c982
      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
    • * cp-tree.h: Adjust comment. · 7f7e718d
      From-SVN: r258040
      Jason Merrill committed
    • PR c++/84489 - dependent default template argument · e8ef9fdf
      	* pt.c (type_unification_real): Handle early substitution failure.
      
      From-SVN: r258039
      Jason Merrill committed
    • re PR tree-optimization/84512 (Missed optimization: should be precalculated in compile-time) · b1ddb654
      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
    • re PR libgomp/84466 (libgomp.graphite/force-parallel-8.c fails starting with r257723) · c16d3e3c
      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
    • Make groups more generic (PR gcov-profile/84548). · e59b5e24
      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
    • Implement the missing bits of LWG 2769 · 23c3a059
      * 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
    • re PR target/84575 (gcc.target/i386/pr84309.c fail) · 2be4b342
      	PR target/84575
      	* gcc.target/i386/pr84309.c: Add -mno-avx2 to dg-options.
      
      From-SVN: r258030
      Jakub Jelinek committed
    • Fix formatting of -ftime-report. · ea2cd1c2
      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
    • [IEPM] don't preserve lexical blocks just for debug inline markers · 9893273d
      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