Commit Graph

160234 Commits

Author SHA1 Message Date
Jason Merrill
9ea97097e5 PR c++/71784 - ICE with ref-qualifier and explicit specialization.
* pt.c (determine_specialization): Check ref-qualifier.

From-SVN: r258085
2018-02-28 16:34:07 -05:00
David Edelsohn
74fc2a2bb3 config.gcc (powerpc-ibm-aix7.1.*): New stanza.
* config.gcc (powerpc-ibm-aix7.1.*): New stanza.
(powerpc-ibm-aix[789]*): Default to AIX 7.2.
* config/rs6000/aix71.h (TARGET_DEFAULT): Revert to Power4 ISA.
* config/rs6000/aix72.h: New file.

From-SVN: r258082
2018-02-28 15:00:03 -05:00
David Edelsohn
99f6220a0c re PR target/84014 (ICE in setup_min_max_allocno_live_range_point, at ira-build.c:2762)
PR target/84014
        * gcc.target/powerpc/pr84014.c: Use ilp32, not -m32 option.

From-SVN: r258081
2018-02-28 14:53:24 -05:00
Jakub Jelinek
60d2d641a3 re PR c++/84609 (internal compiler error: in cp_parser_abort_tentative_parse, at cp/parser.c:28960 (cp_parser_member_declaration()))
PR c++/84609
	* parser.c (cp_parser_attributes_opt): Formatting fix.
	(cp_parser_skip_balanced_tokens, cp_parser_skip_gnu_attributes_opt,
	cp_parser_skip_std_attribute_spec_seq, cp_parser_skip_attributes_opt):
	New functions.
	(cp_parser_member_declaration): Use cp_parser_skip_attributes_opt
	instead of tentative parse to peek over optional attribute tokens
	to check for CPP_COLON after them.

	* g++.dg/cpp0x/pr84609.C: New test.

From-SVN: r258080
2018-02-28 19:57:38 +01:00
Jakub Jelinek
f6eee6bf4c re PR c++/83871 (wrong code for attribute const and pure on distinct template specializations)
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
2018-02-28 19:56:36 +01:00
Jakub Jelinek
15d3974b69 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
2018-02-28 19:38:19 +01:00
Martin Sebor
be583c04a4 PR testsuite/84617 - new test cases g++.dg/ext/attr-const.C and g++.dg/ext/attr-pure.C fail
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
2018-02-28 11:28:53 -07:00
Paul Thomas
b14a13facf re PR fortran/83901 (ICE in fold_convert_loc, at fold-const.c:2402)
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
2018-02-28 17:36:20 +00:00
Jakub Jelinek
ba64c7b893 re PR target/52991 (attribute packed broken on mingw32?)
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
2018-02-28 18:17:29 +01:00
Eric Botcazou
8dd64cdfa7 aarch64.c (aarch64_emit_probe_stack_range): Remove superfluous parentheses and trailing spaces.
* config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Remove
	superfluous parentheses and trailing spaces.

From-SVN: r258074
2018-02-28 16:45:53 +00:00
H.J. Lu
6fd94ee257 Remove config/i386/i386.opt from revision 258001 ChangeLog
Revision 258001 doesn't change config/i386/i386.opt.

From-SVN: r258073
2018-02-28 08:19:51 -08:00
Peter Bergner
bf3c8adf37 re PR target/83399 (Power8 ICE During LRA with 2-op rtl pattern for lvx instruction)
PR target/83399
	* gcc.target/powerpc/pr83399.c: Only run on Linux.

From-SVN: r258071
2018-02-28 09:43:41 -06:00
Richard Biener
0e0e545fc6 re PR tree-optimization/84584 ([graphite] ICE: Segmentation fault (in dominated_by_p))
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
2018-02-28 15:33:33 +00:00
Jonathan Wakely
b44f8ad8b2 PR preprocessor/84517 allow double-underscore macros after string literals
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
2018-02-28 15:27:17 +00:00
Eric Botcazou
c6db43fa35 i-cexten.ads (Float_128): New type.
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
2018-02-28 14:31:02 +00:00
Eric Botcazou
9e25c7ed96 c-ada-spec.c (dump_ada_double_name): New case.
* 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
2018-02-28 14:14:12 +00:00
Eric Botcazou
09de35509f c-ada-spec.c (dump_ada_node): Do not use generic address for incomplete structures.
* 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
2018-02-28 13:59:44 +00:00
Eric Botcazou
e02f4b9298 c-ada-spec.c (dump_ada_import): Use boolean and fix formatting.
* 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
2018-02-28 13:53:54 +00:00
Martin Liska
4830cfc0a0 Fix timevar format and fix tests (PR testsuite/84597).
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
2018-02-28 13:45:59 +00:00
Eric Botcazou
095d8d4b23 c-ada-spec.c (dump_ada_import): Use boolean and fix formatting.
* 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
2018-02-28 13:43:38 +00:00
Richard Biener
9348eb677e re PR c/84607 (Side effects discarded in address computation inside 'if')
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
2018-02-28 13:40:41 +00:00
Nathan Sidwell
35129fd3a7 [PR c++/84602] ICE with anon-struct
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
2018-02-28 12:32:10 +00:00
Jakub Jelinek
6030f6fe25 re PR c++/83871 (wrong code for attribute const and pure on distinct template specializations)
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
2018-02-28 10:43:10 +01:00
Jakub Jelinek
c1299a9e28 decl.c (cp_finish_decomp): Don't adjust eltscnt when calling inform_n.
* decl.c (cp_finish_decomp): Don't adjust eltscnt when calling
	inform_n.

From-SVN: r258058
2018-02-28 10:01:13 +01:00
Jakub Jelinek
ce579a4fe0 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
2018-02-28 09:59:15 +01:00
Alan Modra
678127a85e gcc testsuite changes for new linker messages
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
2018-02-28 18:33:06 +10:30
Alexandre Oliva
408e89356c [PR81611] turn inc-and-use-of-dead-orig into auto-inc
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
2018-02-28 05:25:34 +00:00
Ian Lance Taylor
8cda97ab52 runtime: update AIX memory allocation for new versions
Reviewed-on: https://go-review.googlesource.com/97357

From-SVN: r258052
2018-02-28 01:39:03 +00:00
Ian Lance Taylor
930540ca89 libgo: update to final Go 1.10 release
Reviewed-on: https://go-review.googlesource.com/97517

From-SVN: r258051
2018-02-28 01:19:07 +00:00
GCC Administrator
5007cea32e Daily bump.
From-SVN: r258050
2018-02-28 00:16:22 +00:00
Martin Sebor
2211eff659 Avoid including <string> directly.
From-SVN: r258046
2018-02-27 16:29:51 -07:00
Martin Sebor
d4cfd486eb PR c++/83871 - wrong code for attribute const and pure on distinct template specializations
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
2018-02-27 15:28:21 -07:00
Martin Sebor
1c89478aef PR translation/84207 - Hard coded plural in gimple-fold.c
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
2018-02-27 15:06:03 -07:00
Håkon Sandsmark
76bd270a7d PR c++/71546 - lambda init-capture with qualified-id.
* parser.c (cp_parser_lambda_introducer): Clear scope after
	each lambda capture.

From-SVN: r258043
2018-02-27 15:57:35 -05:00
Nathan Sidwell
10b5c9829b [PR c++/84426] ICE after conflicting member decl
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
2018-02-27 20:52:15 +00:00
Jason Merrill
7f7e718d9c * cp-tree.h: Adjust comment.
From-SVN: r258040
2018-02-27 14:05:23 -05:00
Jason Merrill
e8ef9fdfb9 PR c++/84489 - dependent default template argument
* pt.c (type_unification_real): Handle early substitution failure.

From-SVN: r258039
2018-02-27 12:26:47 -05:00
Richard Biener
b1ddb654ab re PR tree-optimization/84512 (Missed optimization: should be precalculated in compile-time)
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
2018-02-27 15:25:33 +00:00
Richard Biener
c16d3e3c87 re PR libgomp/84466 (libgomp.graphite/force-parallel-8.c fails starting with r257723)
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
2018-02-27 14:45:46 +00:00
Martin Liska
e59b5e24ea Make groups more generic (PR gcov-profile/84548).
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
2018-02-27 14:11:08 +00:00
Ville Voutilainen
23c3a05908 Implement the missing bits of LWG 2769
* 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
2018-02-27 13:33:30 +02:00
Jakub Jelinek
2be4b342e0 re PR target/84575 (gcc.target/i386/pr84309.c fail)
PR target/84575
	* gcc.target/i386/pr84309.c: Add -mno-avx2 to dg-options.

From-SVN: r258030
2018-02-27 09:44:48 +01:00
Martin Liska
ea2cd1c276 Fix formatting of -ftime-report.
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
2018-02-27 08:27:12 +00:00
Alexandre Oliva
9893273d98 [IEPM] don't preserve lexical blocks just for debug inline markers
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
2018-02-27 03:37:10 +00:00
Jason Merrill
ed75f594a9 PR c++/84560 - ICE capturing multi-dimensional VLA.
* tree.c (array_of_runtime_bound_p): False if the element is
	variably-modified.

From-SVN: r258023
2018-02-26 21:45:56 -05:00
Jason Merrill
a2444ce970 PR c++/84441 - ICE with base initialized from ?:
* call.c (unsafe_copy_elision_p): Handle COND_EXPR.

From-SVN: r258022
2018-02-26 21:45:12 -05:00
Jason Merrill
ab5f26bba1 PR c++/84520 - ICE with generic lambda in NSDMI.
* lambda.c (lambda_expr_this_capture): Don't look for fake NSDMI
	'this' in a generic lambda instantiation.

From-SVN: r258021
2018-02-26 21:44:26 -05:00
GCC Administrator
d36a19c78a Daily bump.
From-SVN: r258020
2018-02-27 00:16:24 +00:00
Joseph Myers
e64e6793b1 * es.po, sv.po: Update.
From-SVN: r258016
2018-02-26 22:35:23 +00:00
Jason Merrill
8e9589bd6b PR c++/84559 - ICE with constexpr VLA.
* constexpr.c (ensure_literal_type_for_constexpr_object): Check
	for constexpr variable with VLA type.

From-SVN: r258015
2018-02-26 16:55:41 -05:00