Commit Graph

154228 Commits

Author SHA1 Message Date
Pedro Alves
b51483f48f Finish implementing P0426R1 "Constexpr for std::char_traits" for C++17
As discussed in PR c++/80265 ("__builtin_{memcmp,memchr,strlen} are
not usable in constexpr functions"), use __builtin_constant_p to tell
whether we can defer to a constexpr algorithm.

I used __always_inline__ just to be thorough.  It isn't really really
necessary as far as I could determine.

Changes like these:

	 if (__n == 0)
	   return 0;
 -	return wmemcmp(__s1, __s2, __n);
 +	else
 +	  return wmemcmp(__s1, __s2, __n);

are necessary otherwise G++ complains that we're calling a
non-constexpr function, which looks like a a manifestation of PR67026
to me.

libstdc++-v3:
2017-06-12  Pedro Alves  <palves@redhat.com>

	* doc/xml/manual/status_cxx2017.xml: Update C++17 constexpr
	char_traits status.
	* doc/html/*: Regenerate.

	* include/bits/char_traits.h (_GLIBCXX_ALWAYS_INLINE): Define if
	not already defined.
	(__cpp_lib_constexpr_char_traits): Uncomment.
	(__constant_string_p, __constant_char_array_p): New.
	(std::char_traits<char>, std::char_traits<wchar_t>): Add
	_GLIBCXX17_CONSTEXPR on compare, length and find and use
	__constant_string_p, __constant_char_array_p and
	__builtin_constant_p to defer to __gnu_cxx::char_traits at compile
	time.

	* testsuite/21_strings/char_traits/requirements/
	constexpr_functions_c++17.cc: Uncomment
	__cpp_lib_constexpr_char_traits tests.  Uncomment
	test_compare<char>, test_length<char>, test_find<char>,
	test_compare<wchar_t>, test_length<wchar_t> and test_find<wchar_t>
	static_assert tests.

From-SVN: r249137
2017-06-12 22:22:39 +00:00
François Dumont
07cfc2d75d stl_tree.h (_Rb_tree_impl()): Restore _Node_allocator default init.
2017-06-12  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/stl_tree.h (_Rb_tree_impl()): Restore _Node_allocator
	default init.
	* testsuite/util/testsuite_allocator.h
	(__gnu_test::default_init_allocator<>) New.
	* testsuite/23_containers/set/allocator/default_init.cc: New.
	* testsuite/23_containers/map/allocator/default_init.cc: New.

From-SVN: r249136
2017-06-12 20:38:16 +00:00
David S. Miller
6d1ea02a6c More refinements to fixing sparc's PR target/80968.
gcc/

	PR target/80968
	* config/sparc/sparc.md (return expander): Emit frame blockage if
	function uses alloca.

From-SVN: r249134
2017-06-12 12:30:45 -07:00
Ian Lance Taylor
20d5c8731f compiler: avoid orphaning Bexpressions when processing conversions
The method Type_conversion_expression::do_get_backend was (in some
    circumstances) creating a Bexpression for the source expression of the
    conversion and then throwing it away before using it. Fix up this
    method to insure that the call to get_backend() on the source
    expression is only made when the result will be used.
    
    Reviewed-on: https://go-review.googlesource.com/45350

From-SVN: r249131
2017-06-12 17:51:52 +00:00
Jonathan Wakely
754d67d5ba PR libstdc++/55917 do not handle exceptions in std::thread
PR libstdc++/55917
	* src/c++11/thread.cc (execute_native_thread_routine): Remove
	try-block so that exceptions propagate out of the thread and terminate
	is called by the exception-handling runtime.
	(execute_native_thread_routine_compat): Likewise.
	* testsuite/30_threads/thread/cons/terminate.cc: New.

From-SVN: r249130
2017-06-12 17:37:28 +01:00
Ian Lance Taylor
196ed8eae5 split-1.c: Require split_stack, don't require freorder.
* gcc.dg/tree-prof/split-1.c: Require split_stack, don't require
	freorder.  Update comment to explain test.

From-SVN: r249129
2017-06-12 16:15:53 +00:00
Richard Sandiford
e701e0b9e8 Fix pessimistic DImode handling in combine.c:make_field_assignment
The make_field_assignment code:

      src = force_to_mode (src, mode,
		       GET_MODE_PRECISION (mode) >= HOST_BITS_PER_WIDE_INT
		       ? HOST_WIDE_INT_M1U
		       : (HOST_WIDE_INT_1U << len) - 1,
		       0);

would ignore the field length len for DImode, even though DImode can be
handled using HWIs.  I think the code should be testing len instead.

2017-06-12  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	* combine.c (make_field_assignment): Check len rather than the mode
	precision when calling force_to_mode.

From-SVN: r249128
2017-06-12 16:06:38 +00:00
Tamar Christina
64ff4f60d0 inline-lrint_1.c: Broaden regexp.
2017-06-12  Tamar Christina  <tamar.christina@arm.com>

	* gcc.target/aarch64/inline-lrint_1.c: Broaden regexp.
	* gcc.target/aarch64/inline-lrint_2.c: Likewise.
	* gcc.target/aarch64/no-inline-lrint_1.c: Likewise.
	* gcc.target/aarch64/no-inline-lrint_2.c: Likewise.

From-SVN: r249127
2017-06-12 14:23:22 +00:00
Tamar Christina
5ed2fdfee4 sdiv_costs_1.c: Require arm_v8_vfp_ok.
2017-06-12  Tamar Christina  <tamar.christina@arm.com>

	* gcc.target/arm/sdiv_costs_1.c: Require arm_v8_vfp_ok.

From-SVN: r249125
2017-06-12 13:24:37 +00:00
Georg-Johann Lay
3266ddb36a Support multilibs and devices that see flash in RAM address range.
gcc/
	Support multilibs and devices that see flash in RAM address range.

	PR target/81072
	* config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
	(avr_mcu_t) <flash_pm_offset>: New field.
	(avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
	* config/avr/avr.h (AVR_SHORT_CALLS): New define.
	(AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
	(AVR_TINY_PM_OFFSET): Remove macro.
	* config/avr/avr.opt (-mshort-calls): New option.
	* config/avr/gen-avr-mmcu-specs.c (print_mcu)
	[*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
	* config/avr/avr-c.c (avr_cpu_cpp_builtins)
	<__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
	<__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
	instead of avr_arch->have_jmp_call.
	<__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
	[AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
	avr_arch->flash_pm_offset to define.
	* config/avr/avr-devices.c (avr_arch_types): Add initializers for
	new field flash_pm_offset.  Add entry for avrxmega3.
	(avr_texinfo): Add entry for avrxmega3.
	* config/avr/avr-mcus.def: Add entries for: avrxmega3,
	attiny212, attiny214,
	attiny412, attiny414, attiny416, attiny417,
	attiny814, attiny816, attiny817,
	attiny1614, attiny1616, attiny1617,
	attiny3214, attiny3216, attiny3217.
	* config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
	avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
	(avr_print_operand_address) [AVR_TINY]: Same.
	(avr_asm_init_sections) <readonly_data_section>: Only patch
	callback if avr_arch->flash_pm_offset = 0.
	(avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
	for rodata if avr_arch->flash_pm_offset != 0.
	(avr_encode_section_info) [AVR_TINY]: Adjust comment.
	* config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
	(opts) [AVR_ISA_RCALL]: Append opt_rcall.
	(m_options): Append opt_rcall.
	(m_dirnames): Append dir_rcall.
	* config/avr/t-multilib: Regenerate.
	* configure.ac [target=avr]: Check whether avrxmega3 default
	linker description file works as needed.
	* configure: Regenerate.
	* doc/avr-mmcu.texi: Regenerate.
	* doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
	<__AVR_ARCH__>: Document avrxmega3 and 103.
	<__AVR_HAVE_JMP_CALL__>: Adjust documentation.
	<__AVR_SHORT_CALLS__>: Document it.
	<__AVR_PM_BASE_ADDRESS__>: Document it.
	* doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
	(AVR Variable Attributes) <progmem>: Document this is
	not needed for avrxmega3.
	(AVR Named Address Spaces) <__flash>: Dito.

From-SVN: r249124
2017-06-12 12:52:30 +00:00
Jan Hubicka
7c41b76e9f * cgraph.c (cgraph_node::dump): Complain about profile insanities.
From-SVN: r249123
2017-06-12 12:36:47 +00:00
Tamar Christina
6cddb61ca1 sdiv_costs_1.c: Disable on softfloat.
2017-06-12  Tamar Christina  <tamar.christina@arm.com>

	* gcc.target/arm/sdiv_costs_1.c: Disable on softfloat.

From-SVN: r249122
2017-06-12 12:32:45 +00:00
Doug Rupp
a476498c30 config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
2017-06-12  Doug Rupp  <rupp@adacore.com>

	gcc/
	* config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
	Append vxworks-stdint.h to the tm_file list.
	* config/vxworks-stdint.h: New file.

	fixincludes/
	* inclhack.def (AAB_vxworks_stdint): Remove hack.
	* fixincl.x: Regenerate.

From-SVN: r249121
2017-06-12 12:10:12 +00:00
Martin Liska
c9c15e2749 Create an extra BB in profile-generate (PR tree-optimization/81041).
2017-06-12  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/81041
	* tree-profile.c (gimple_gen_ic_func_profiler):
	Create an extra BB in profile-generate
	(gimple_gen_time_profiler): Likewise.

From-SVN: r249120
2017-06-12 11:56:32 +00:00
Eric Botcazou
3b387bff56 re PR bootstrap/80897 (gnat bootstrap broken on SPARC64/Linux)
PR bootstrap/80897
	* exp_ch3.adb (Make_Predefined_Primitive_Specs): Use Positive index.

From-SVN: r249119
2017-06-12 11:28:33 +00:00
Segher Boessenkool
c725f69cdb rs6000: Remove e500.h from config.gcc some more
* config.gcc: Remove rs6000/e500.h from tm_file for all targets.

From-SVN: r249117
2017-06-12 13:16:11 +02:00
Eric Botcazou
cdf2dd41b5 re PR ada/81070 (build failure for s-intrr.adb)
PR ada/81070
	* s-interr-hwint.adb: Reinstate.
	* gcc-interface/Makefile.in (RTEMS): Use it again.

From-SVN: r249115
2017-06-12 10:47:36 +00:00
Jakub Jelinek
aebce39694 re PR tree-optimization/81003 (ICE: tree check: expected ssa_name, have integer_cst in optimize_range_tests_to_bit_test, at tree-ssa-reassoc.c:2782)
PR tree-optimization/81003
	* tree-ssa-reassoc.c (force_into_ssa_name): New function.
	(update_range_test): Use it instead of force_gimple_operand_gsi.

	* gcc.c-torture/compile/pr81003.c: New test.

From-SVN: r249114
2017-06-12 12:45:52 +02:00
Richard Biener
3fd7fe218b re PR tree-optimization/81053 (ICE on valid code at -O3 on x86_64-linux-gnu: in as_a, at is-a.h:192)
2017-06-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/81053
	* tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
	with backedge value not defined in loop.  Simplify def stmt
	compute.

	* gcc.dg/torture/pr81053.c: New testcase.

From-SVN: r249113
2017-06-12 10:42:57 +00:00
Ian Lance Taylor
d1609a2326 elf.c (backtrace_initialize): Always set *fileline_fn.
* elf.c (backtrace_initialize): Always set *fileline_fn.
	* ttest.c: New file.
	* btest.c: Move support functions into testlib.c.  Change calls to
	check to pass file name.
	* testlib.c: New file, copied from (part of) btest.c.
	* testlib.h: New file, declarations for testlib.c.
	* edtest.c: Use testlib.h and testlib.c.
	* configure.ac: Test for -pthread, set HAVE_PTHREAD conditional.
	* Makefile.am (btest_SOURCES): Add testlib.c.
	(edtest_SOURCES): Likewise.
	(CHECK_PROGRAMS): Add ttest if HAVE_PTHREAD.
	(ttest_SOURCES, ttest_CFLAGS, ttest_LDADD): Define.
	* configure, Makefile.in: Rebuild.

From-SVN: r249111
2017-06-12 03:25:04 +00:00
GCC Administrator
1e7a4be3a1 Daily bump.
From-SVN: r249110
2017-06-12 00:16:33 +00:00
Tom de Vries
e053f7109f Disable constant pool for nvptx
2017-06-11  Tom de Vries  <tom@codesourcery.com>

	PR target/79939
	* config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
	Return true.
	(TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
	nvptx_cannot_force_const_mem.

From-SVN: r249106
2017-06-11 21:54:00 +00:00
Jan Hubicka
227b76c3b4 opts.c (finish_options): Move test for flag_split_stack after it has been initialized.
* opts.c (finish_options): Move test for flag_split_stack after
	it has been initialized.

From-SVN: r249105
2017-06-11 09:33:22 +00:00
Jason Merrill
c3b0f4c600 * error.c (dump_expr): Use is_this_parameter.
From-SVN: r249104
2017-06-11 01:29:34 -04:00
Jason Merrill
a01f151f1e tree.h (id_equal): New.
* tree.h (id_equal): New.

	* dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
	omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
	instead of strcmp of IDENTIFIER_POINTER.
c-family/
	* c-ada-spec.c, c-pragma.c: Use it.
cp/
	* cp-tree.h, decl2.c, mangle.c, parser.c, pt.c, semantics.c: Use it.

From-SVN: r249103
2017-06-11 01:29:14 -04:00
GCC Administrator
dc77253832 Daily bump.
From-SVN: r249102
2017-06-11 00:16:34 +00:00
Jan Hubicka
09fcc0c01d ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
* ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
	(mark_all_inlined_calls_cdtor): Fix formating.
	(inline_transform): Rescale profile before inlining.

From-SVN: r249098
2017-06-10 23:18:44 +00:00
Jan Hubicka
1511c8c005 cgraph.h (cgraph_edge::clone): Update prototype.
* cgraph.h (cgraph_edge::clone): Update prototype.
	* cgraphclones.c (cgraph_edge::clone): Update profile scaling.
	(cgraph_node::create_clone): Update.
	(cgraph_node::create_version_clone): Update.
	* tree-inline.c (copy_bb): Update.
	(expand_call_inline): Update.

From-SVN: r249097
2017-06-10 23:07:11 +00:00
Segher Boessenkool
9a58d6cdbf rs6000: Factor out emit_vrsave_prologue
This is a second patch to make the prologue code more manageable.


	* config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
	factored out from ...
	(rs6000_emit_prologue): ... here.

From-SVN: r249096
2017-06-11 00:22:54 +02:00
Segher Boessenkool
85e71e3505 rs6000: Factor out emit_split_stack_prologue
This is a first patch to make the prologue code more manageable.


	* config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
	factored out from ...
	(rs6000_emit_prologue): ... here.

From-SVN: r249095
2017-06-11 00:21:34 +02:00
Jan Hubicka
e525ddf40f predict.c (drop_profile): Also drop individual bb/edge and cgraph edge counts.
* predict.c (drop_profile): Also drop individual bb/edge and cgraph
	edge counts.
	(handle_missing_profiles): Fix computation of tp_first_run.
	(counts_to_freqs): Do not touch freqs when count is 0.

From-SVN: r249094
2017-06-10 20:37:34 +00:00
Jan Hubicka
9a73a3c38e cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch profile.
* cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
	profile.

From-SVN: r249093
2017-06-10 16:33:07 +00:00
Thomas Koenig
ac39f0e831 re PR fortran/80988 (171_swim fails)
2017-06-10  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/80988
	* frontend-passes.c (traverse_io_block):  Also
	check for variables occurring as indices multiple
	time in a single implied DO loop.

2017-06-10  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/80988
	* gfortran.dg/implied_do_io_3.f90:  New test.

From-SVN: r249092
2017-06-10 10:07:13 +00:00
Tom de Vries
18787c384a Add effective target signal
2017-06-10  Tom de Vries  <tom@codesourcery.com>

	* lib/target-supports.exp (check_effective_target_signal): New proc.
	* lib/gcc.exp (gcc_target_compile): Remove appending of
	-DSIGNAL_SUPPRESS to additional_flags.
	* gcc.c-torture/execute/ieee/ieee.exp: Add -DSIGNAL_SUPPRESS to
	additional_flags if effective target signal is not supported by the
	target.
	* gcc.c-torture/execute/20101011-1.c: Same.
	* gcc.dg/c99-stdint-1.c: Same.
	* gcc.dg/c99-stdint-2.c: Same.
	* gcc.dg/c99-stdint-5.c: Same.
	* gcc.dg/c99-stdint-6.c: Same.
	* gcc.dg/stdint-width-1.c: Same.

	* doc/sourcebuild.texi (Effective-Target Keywords, Environment
	attributes): Document signal effective target.

From-SVN: r249091
2017-06-10 06:59:49 +00:00
Tom de Vries
0069a00991 Add effective target stack_size
2017-06-10  Tom de Vries  <tom@codesourcery.com>

	* lib/target-supports.exp (check_effective_target_stack_size)
	(dg-effective-target-value): New proc.
	* lib/gcc.exp (gcc_target_compile): Remove adding of DSTACK_SIZE to
	additional_flags.
	* lib/objc.exp (objc_target_compile): Same.
	* lib/profopt.exp (profopt-get-options): Allow dg-additional-options.
	* g++.old-deja/g++.eh/badalloc1.C: Add -DSTACK_SIZE=<value> using
	dg-additional-options.
	* gcc.c-torture/compile/20080806-1.c: Same.
	* gcc.c-torture/compile/920723-1.c: Same.
	* gcc.c-torture/compile/930621-1.c: Same.
	* gcc.c-torture/compile/991214-2.c: Same.
	* gcc.c-torture/compile/bcopy.c: Same.
	* gcc.c-torture/compile/memtst.c: Same.
	* gcc.c-torture/compile/msp.c: Same.
	* gcc.c-torture/compile/stuct.c: Same.
	* gcc.c-torture/execute/20011008-3.c: Same.
	* gcc.c-torture/execute/20030209-1.c: Same.
	* gcc.c-torture/execute/20031012-1.c: Same.
	* gcc.c-torture/execute/20040805-1.c: Same.
	* gcc.c-torture/execute/920410-1.c: Same.
	* gcc.c-torture/execute/920501-7.c: Same.
	* gcc.c-torture/execute/921113-1.c: Same.
	* gcc.c-torture/execute/921202-1.c: Same.
	* gcc.c-torture/execute/921208-2.c: Same.
	* gcc.c-torture/execute/930106-1.c: Same.
	* gcc.c-torture/execute/930406-1.c: Same.
	* gcc.c-torture/execute/950221-1.c: Same.
	* gcc.c-torture/execute/960521-1.c: Same.
	* gcc.c-torture/execute/980605-1.c: Same.
	* gcc.c-torture/execute/comp-goto-1.c: Same.
	* gcc.c-torture/execute/comp-goto-2.c: Same.
	* gcc.c-torture/execute/memcpy-1.c: Same.
	* gcc.c-torture/execute/multi-ix.c: Same.
	* gcc.c-torture/execute/nestfunc-4.c: Same.
	* gcc.c-torture/execute/pr20621-1.c: Same.
	* gcc.c-torture/execute/pr23135.c: Same.
	* gcc.c-torture/execute/pr28982b.c: Same.
	* gcc.dg/loop-3.c: Same.
	* gcc.dg/struct-ret-3.c: Same.
	* gcc.dg/torture/stackalign/comp-goto-1.c: Same.
	* gcc.dg/torture/stackalign/non-local-goto-4.c: Same.
	* gcc.dg/tree-prof/comp-goto-1.c: Same.
	* gcc.dg/tree-prof/pr44777.c: Same.

	* doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
	Document effective target stack_size.

From-SVN: r249090
2017-06-10 06:59:26 +00:00
Jason Merrill
e6d7d61861 Missing bits from N4268, constant evaluation for all non-type args.
* call.c (build_converted_constant_expr): Rename from
	build_integral_nontype_arg_conv, handle all types.
	* pt.c (convert_nontype_argument): In C++17 call it for all types.
	Move NOP stripping inside pointer case, don't strip ADDR_EXPR.
	* cvt.c (strip_fnptr_conv): Also strip conversions to the same type.

From-SVN: r249089
2017-06-09 20:40:50 -04:00
Jason Merrill
8b8b203a26 Overhaul pointer-to-member conversion and template argument handling.
* call.c (standard_conversion): Avoid creating ck_pmem when the
	class type is the same.
	* cvt.c (can_convert_qual): Split from
	perform_qualification_conversions.
	* constexpr.c (cxx_eval_constant_expression): Check it.
	* typeck.c (convert_ptrmem): Only cplus_expand_constant if
	adjustment is necessary.
	* pt.c (check_valid_ptrmem_cst_expr): Compare class types.
	(convert_nontype_argument): Avoid redundant error.

From-SVN: r249088
2017-06-09 20:40:44 -04:00
GCC Administrator
5248689192 Daily bump.
From-SVN: r249087
2017-06-10 00:16:18 +00:00
Jason Merrill
bf31620ceb Don't fold conversion from a constant variable.
* call.c (convert_like_real): Remove "inner" parameter.
	Don't replace a constant with its value.
	* cp-gimplify.c (cp_fully_fold): Use cp_fold_rvalue.

From-SVN: r249083
2017-06-09 18:46:51 -04:00
David Malcolm
b09649fdc6 Add support for mutually-incompatible fix-it hints
This patch adds a method:
  rich_location::fixits_cannot_be_auto_applied
for ensuring that mutually-incompatible fix-its hints don't
lead to insane output from -fdiagnostics-generate-patch.

Fix-it hints within such rich_location instances are printed
as normal by diagnostic_show_locus, but don't affect the output
of -fdiagnostics-generate-patch.

gcc/ChangeLog:
	* diagnostic.c (diagnostic_report_diagnostic): Only add fixits
	to the edit_context if they can be auto-applied.

gcc/testsuite/ChangeLog:
	* gcc.dg/plugin/diagnostic-test-show-locus-bw.c
	(test_mutually_exclusive_suggestions): New test function.
	* gcc.dg/plugin/diagnostic-test-show-locus-generate-patch.c
	(test_mutually_exclusive_suggestions): New test function.
	* gcc.dg/plugin/diagnostic-test-show-locus-parseable-fixits.c
	(test_mutually_exclusive_suggestions): New test function.
	* gcc.dg/plugin/diagnostic_plugin_test_show_locus.c
	(test_show_locus): Add special-case for
	"test_mutually_exclusive_suggestions".

libcpp/ChangeLog:
	* include/line-map.h
	(rich_location::fixits_cannot_be_auto_applied): New method.
	(rich_location::fixits_can_be_auto_applied_p): New accessor.
	(rich_location::m_fixits_cannot_be_auto_applied): New field.
	* line-map.c (rich_location::rich_location): Initialize new field.

From-SVN: r249081
2017-06-09 20:57:38 +00:00
Jason Merrill
c5d6c6d94e Fix template argument of nullptr_t type.
* pt.c (convert_nontype_argument): Check NULLPTR_TYPE_P rather than
	nullptr_node.

From-SVN: r249080
2017-06-09 16:18:06 -04:00
Jason Merrill
3d2e25a240 Fix array decay handling in constant expressions.
* parser.c (cp_parser_constant_expression): Check
	potential_rvalue_constant_expression after decay_conversion.
	* pt.c (convert_nontype_argument): Don't require linkage in C++17.

From-SVN: r249079
2017-06-09 16:13:44 -04:00
Jason Merrill
55c5c0ad3c PR c++/80384 - ICE with dependent noexcept-specifier
* pt.c (dependent_type_p_r) [FUNCTION_TYPE]: Check for dependent
	noexcept-specifier.

From-SVN: r249078
2017-06-09 16:13:38 -04:00
Jason Merrill
948d0d9137 * constexpr.c (potential_constant_expression_1): Allow 'this' capture.
From-SVN: r249077
2017-06-09 16:13:32 -04:00
Ian Lance Taylor
a1f427e9a5 opts.c (finish_options): If -fsplit-stack, disable implicit -forder-blocks-and-partition.
gcc/:
	* opts.c (finish_options): If -fsplit-stack, disable implicit
	-forder-blocks-and-partition.
	* doc/invoke.texi (Optimize Options): Document that when using
	-fsplit-stack -forder-blocks-and-partition is not implicitly
	enabled.
gcc/go/:
	* go-lang.c (go_langhook_post_options): If -fsplit-stack is turned
	on, disable implicit -forder-blocks-and-partition.
gcc/testsuite/:
	* gcc.dg/tree-prof/split-1.c: New test.

From-SVN: r249071
2017-06-09 18:44:28 +00:00
Jan Hubicka
cb59f689a3 builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST, [...]): New.
* builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
	ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
	ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
	* builtins.def (abort, trap, unreachable): Declare cold.
	* calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
	* tree-core.h (ECF_COLD): New.
	* tree.c (set_call_expr_flags): Handle ECF_COLD.
	(build_common_builtin_nodes): Mark unreachable and abort as cold.

	* class.c (build_vtbl_initializer): Mark dvirt_fn as cold.
	* decl.c (cxx_init_decl_processing, push_throw_library_fn): Likewise.
	(excpet.c): Mark terminate as cold.

	* gcc.dg/predict-14.c: Avoid cold function detection.
	* gcc.target/i386/umod-3.c: Likewise.

From-SVN: r249070
2017-06-09 18:36:50 +00:00
Jan Hubicka
d225aa745d * predict.c (unlikely_executed_stmt_p): Cleanup.
From-SVN: r249069
2017-06-09 18:34:29 +00:00
Jan Hubicka
e813ee3485 * predict.c (unlikely_executed_stmt_p): Cleanup.
From-SVN: r249068
2017-06-09 18:32:47 +00:00
Tamar Christina
f66e642373 aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
2017-06-09  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.

gcc/testsuite/
2017-06-09  Tamar Christina  <tamar.christina@arm.com>

	* gcc.target/aarch64/lrint-matherr.h: New.
	* gcc.target/aarch64/inline-lrint_1.c: New.
	* gcc.target/aarch64/inline-lrint_2.c: New.
	* gcc.target/aarch64/no-inline-lrint_1.c: New.
	* gcc.target/aarch64/no-inline-lrint_2.c: New.

From-SVN: r249064
2017-06-09 13:33:35 +00:00
Richard Biener
2866f21d19 tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded model if the ref is always written to.
2017-06-09  Richard Biener  <rguenther@suse.de>

	* tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
	model if the ref is always written to.

From-SVN: r249063
2017-06-09 13:31:27 +00:00