Commit Graph

147855 Commits

Author SHA1 Message Date
Vladimir Makarov
b10d44efe5 re PR rtl-optimization/69847 (Spec 2006 403.gcc slows down with -mlra vs. reload on PowerPC)
2016-08-05  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/69847
	* lra-constraints.c (process_invariant_for_inheritance): Save
	pattern instead of src.
	(remove_inheritance_pseudos): Use the pattern.  Add assert.

From-SVN: r239180
2016-08-05 21:31:31 +00:00
Ian Lance Taylor
9dcd84ec7a re PR go/72812 (reflect FAILs with Solaris as)
PR go/72812
	* go-gcc.cc (char_needs_encoding): New static function.
	(needs_encoding, fetch_utf8_char): New static functions.
	(encode_id): New static function.
	(Gcc_backend::global_variable): Set asm name if the name is not
	simple ASCII.
	(Gcc_backend::implicit_variable): Likewise.
	(Gcc_backend::implicit_variable_reference): Likewise.
	(Gcc_backend::immutable_struct): Likewise.
	(Gcc_backend::immutable_struct_reference): Likewise.
	(Gcc_backend::function): Likewise.

From-SVN: r239179
2016-08-05 20:11:30 +00:00
Martin Sebor
64d6d39969 constexpr.c (cxx_eval_store_expression): Remove hyphen from the spelling of "constant-expression" in diagnostic messages...
gcc/cp/ChangeLog:

	* constexpr.c (cxx_eval_store_expression): Remove hyphen from
	the spelling of "constant-expression" in diagnostic messages
	for consistency.
	(cxx_eval_constant_expression): Same.
	(cxx_eval_outermost_constant_expr): Same.
	(potential_constant_expression_1): Same.

gcc/testsuite/ChangeLog:

	* g++.dg/cpp0x/constexpr-cast.C: Avoid assuming (void*)1 is spelled
	1ul in diagnostics.  Remove hyphen from "constant-expression."
	* g++.dg/cpp0x/constexpr-50060.C: Adjust.
	* g++.dg/cpp0x/static_assert3.C: Same.
	* g++.dg/cpp1y/constexpr-throw.C: Same.
	* g++.dg/template/nontype3.C: Same.
	* g++.dg/warn/overflow-warn-1.C: Same.
	* g++.dg/warn/overflow-warn-3.C: Same.
	* g++.dg/warn/overflow-warn-4.C: Same.

From-SVN: r239176
2016-08-05 12:27:46 -06:00
David Malcolm
88fa5555a3 On-demand locations within string-literals
gcc/c-family/ChangeLog:
	* c-common.c: Include "substring-locations.h".
	(get_cpp_ttype_from_string_type): New function.
	(g_string_concat_db): New global.
	(substring_loc::get_range): New method.
	* c-common.h (g_string_concat_db): New declaration.
	(class substring_loc): New class.
	* c-lex.c (lex_string): When concatenating strings, capture the
	locations of all tokens using a new obstack, and record the
	concatenation locations within g_string_concat_db.
	* c-opts.c (c_common_init_options): Construct g_string_concat_db
	on the ggc-heap.

gcc/ChangeLog:
	* input.c (string_concat::string_concat): New constructor.
	(string_concat_db::string_concat_db): New constructor.
	(string_concat_db::record_string_concatenation): New method.
	(string_concat_db::get_string_concatenation): New method.
	(string_concat_db::get_key_loc): New method.
	(class auto_cpp_string_vec): New class.
	(get_substring_ranges_for_loc): New function.
	(get_source_range_for_substring): New function.
	(get_num_source_ranges_for_substring): New function.
	(class selftest::lexer_test_options): New class.
	(struct selftest::lexer_test): New struct.
	(class selftest::ebcdic_execution_charset): New class.
	(selftest::ebcdic_execution_charset::s_singleton): New variable.
	(selftest::lexer_test::lexer_test): New constructor.
	(selftest::lexer_test::~lexer_test): New destructor.
	(selftest::lexer_test::get_token): New method.
	(selftest::assert_char_at_range): New function.
	(ASSERT_CHAR_AT_RANGE): New macro.
	(selftest::assert_num_substring_ranges): New function.
	(ASSERT_NUM_SUBSTRING_RANGES): New macro.
	(selftest::assert_has_no_substring_ranges): New function.
	(ASSERT_HAS_NO_SUBSTRING_RANGES): New macro.
	(selftest::test_lexer_string_locations_simple): New function.
	(selftest::test_lexer_string_locations_ebcdic): New function.
	(selftest::test_lexer_string_locations_hex): New function.
	(selftest::test_lexer_string_locations_oct): New function.
	(selftest::test_lexer_string_locations_letter_escape_1): New function.
	(selftest::test_lexer_string_locations_letter_escape_2): New function.
	(selftest::test_lexer_string_locations_ucn4): New function.
	(selftest::test_lexer_string_locations_ucn8): New function.
	(selftest::uint32_from_big_endian): New function.
	(selftest::test_lexer_string_locations_wide_string): New function.
	(selftest::uint16_from_big_endian): New function.
	(selftest::test_lexer_string_locations_string16): New function.
	(selftest::test_lexer_string_locations_string32): New function.
	(selftest::test_lexer_string_locations_u8): New function.
	(selftest::test_lexer_string_locations_utf8_source): New function.
	(selftest::test_lexer_string_locations_concatenation_1): New
	function.
	(selftest::test_lexer_string_locations_concatenation_2): New
	function.
	(selftest::test_lexer_string_locations_concatenation_3): New
	function.
	(selftest::test_lexer_string_locations_macro): New function.
	(selftest::test_lexer_string_locations_stringified_macro_argument):
	New function.
	(selftest::test_lexer_string_locations_non_string): New function.
	(selftest::test_lexer_string_locations_long_line): New function.
	(selftest::test_lexer_char_constants): New function.
	(selftest::input_c_tests): Call the new test functions once per
	case within the line_table test matrix.
	* input.h (struct string_concat): New struct.
	(struct location_hash): New struct.
	(class string_concat_db): New class.
	* substring-locations.h: New header.

gcc/testsuite/ChangeLog:
	* gcc.dg/plugin/diagnostic-test-string-literals-1.c: New file.
	* gcc.dg/plugin/diagnostic-test-string-literals-2.c: New file.
	* gcc.dg/plugin/diagnostic_plugin_test_string_literals.c: New file.
	* gcc.dg/plugin/plugin.exp (plugin_test_list): Add the above new files.

libcpp/ChangeLog:
	* charset.c (cpp_substring_ranges::cpp_substring_ranges): New
	constructor.
	(cpp_substring_ranges::~cpp_substring_ranges): New destructor.
	(cpp_substring_ranges::add_range): New method.
	(cpp_substring_ranges::add_n_ranges): New method.
	(_cpp_valid_ucn): Add "char_range" and "loc_reader" params; if
	they are non-NULL, read position information from *loc_reader
	and update char_range->m_finish accordingly.
	(convert_ucn): Add "char_range", "loc_reader", and "ranges"
	params.  If loc_reader is non-NULL, read location information from
	it, and update *ranges accordingly, using char_range.
	Conditionalize the conversion into tbuf on tbuf being non-NULL.
	(convert_hex): Likewise, conditionalizing the call to
	emit_numeric_escape on tbuf.
	(convert_oct): Likewise.
	(convert_escape): Add params "loc_reader" and "ranges".  If
	loc_reader is non-NULL, read location information from it, and
	update *ranges accordingly.  Conditionalize the conversion into
	tbuf on tbuf being non-NULL.
	(cpp_interpret_string): Rename to...
	(cpp_interpret_string_1): ...this, adding params "loc_readers" and
	"out".  Use "to" to conditionalize the initialization and usage of
	"tbuf", such as running the converter.  If "loc_readers" is
	non-NULL, use the instances within it, reading location
	information from them, and passing them to convert_escape; likewise
	write to "out" if loc_readers is non-NULL.  Check for leading
	quote and issue an error if it is not present.  Update boundary
	check from "== limit" to ">= limit" to protect against erroneous
	location values to calls that are not parsing string literals.
	(cpp_interpret_string): Reimplement in terms to
	cpp_interpret_string_1.
	(noop_error_cb): New function.
	(cpp_interpret_string_ranges): New function.
	(cpp_string_location_reader::cpp_string_location_reader): New
	constructor.
	(cpp_string_location_reader::get_next): New method.
	* include/cpplib.h (class cpp_string_location_reader): New class.
	(class cpp_substring_ranges): New class.
	(cpp_interpret_string_ranges): New prototype.
	* internal.h (_cpp_valid_ucn): Add params "char_range" and
	"loc_reader".
	* lex.c (forms_identifier_p): Pass NULL for new params to
	_cpp_valid_ucn.

From-SVN: r239175
2016-08-05 18:08:33 +00:00
Patrick Palka
1addb9e62b re PR tree-optimization/72810 (error: type mismatch for case label in switch statement)
Fix PR tree-optimization/72810

gcc/ChangeLog:

	PR tree-optimization/72810
	* tree-vrp.c (simplify_switch_using_ranges): Avoid changing
	the type of the case labels when truncating.

gcc/testsuite/ChangeLog:

	PR tree-optimization/72810
	* gcc.dg/tree-ssa/vrp110.c: New test.

From-SVN: r239174
2016-08-05 17:21:00 +00:00
James Greenhalgh
1b62ed4f26 [AArch64] Handle HFAs of float16 types properly
Fix PR Target/72819.

gcc/

	PR Target/72819
	* config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
	(aarch64_fp16_ptr_type_node): Likewise.
	* config/aarch64/aarch64-simd-builtins.c
	(aarch64_fp16_ptr_type_node): Define.
	(aarch64_init_fp16_types): New, refactored out of...
	(aarch64_init_builtins): ...here, update to call
	aarch64_init_fp16_types.
	* config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
	HFmode.
	(aapcs_vfp_sub_candidate): Likewise.

gcc/testsuite/

	PR Target/72819
	* gcc.target/aarch64/aapcs64/abitest-common.h: Define half-precision
	registers.
	* gcc.target/aarch64/aapcs64/abitest.S (dumpregs): Add assembly for
	saving the half-precision registers.
	* gcc.target/aarch64/aapcs64/func-ret-1.c: Test that an __fp16
	value is returned in h0.
	* gcc.target/aarch64/aapcs64/test_2.c: Check that __FP16 arguments
	are passed in FP/SIMD registers.
	* gcc.target/aarch64/aapcs64/test_27.c: New, test that __fp16 HFA
	passing works corrcetly.
	* gcc.target/aarch64/aapcs64/type-def.h (hfa_f16x1_t): New.
	(hfa_f16x2_t): Likewise.
	(hfa_f16x3_t): Likewise.
	* gcc.target/aarch64/aapcs64/va_arg-1.c: Check that __fp16 values
	are promoted to double and passed in a double register.
	* gcc.target/aarch64/aapcs64/va_arg-2.c: Check that __fp16 values
	are promoted to double and stacked.
	* gcc.target/aarch64/aapcs64/va_arg-4.c: Check stacking of HFA of
	__fp16 data types.
	* gcc.target/aarch64/aapcs64/va_arg-5.c: Likewise.
	* gcc.target/aarch64/aapcs64/va_arg-16.c: New, check HFAs of
	__fp16 first get passed in FP/SIMD registers, then stacked.

From-SVN: r239173
2016-08-05 16:08:24 +00:00
Jonathan Wakely
a0b1bf2181 Correct status of __cpp_lib_enable_shared_from_this
* doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
	* doc/html/manual/status.html: Regenerate.

From-SVN: r239171
2016-08-05 14:57:30 +01:00
Jonathan Wakely
5f6acdfb0b Implement C++17 rounding functions for std::chrono (P0092R1)
* include/std/chrono (floor, ceil, round, abs): New for C++17.
	* testsuite/20_util/duration_cast/rounding.cc: New test.
	* testsuite/20_util/time_point_cast/rounding.cc: New test.
	* doc/xml/manual/status_cxx2017.xml: Update status table.
	* doc/html/manual/status.html: Regenerate.
	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
	dg-error lineno.
	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
	* testsuite/20_util/duration/literals/range.cc: Likewise.

From-SVN: r239170
2016-08-05 14:52:59 +01:00
Martin Liska
24bc5921a8 gcov tool: Implement Hawick's algorithm for cycle detection,
Joshua Cranmer  <Pidgeot18@gmail.com>

	* gcov.c (line_t::has_block): New function.
	(enum loop_type): New enum.
	(handle_cycle): New function.
	(unblock): Likewise.
	(circuit): Likewise.
	(get_cycles_count): Likewise.
	(accumulate_line_counts): Use new loop detection algorithm.

From-SVN: r239169
2016-08-05 13:50:49 +00:00
Martin Liska
4457451f3d gcov: rename line_next to next_file_fn in function_info
* gcov.c (output_intermediate_file): Rename
	function_info::line_next to next_file_fn.
	(process_file): Likewise.
	(read_graph_file): Likewise.
	(accumulate_line_counts): Likewise.
	(output_lines): Likewise.

From-SVN: r239168
2016-08-05 13:50:02 +00:00
Nathan Sidwell
4228ca1962 re PR c++/68724 (ice in unify, at cp/pt.c:19902)
PR c++/68724
	* pt.c (unify): TRAIT_EXPR is an expr.

	PR c++/68724
	* g++.dg/cpp0x/pr68724.C: New.

From-SVN: r239167
2016-08-05 12:21:46 +00:00
Jonathan Wakely
98e6e66233 Use __invoke in std::function internals
* include/std/functional (__callable_functor): Remove.
	(_Function_handler::_M_invoke): Use __invoke instead of
	__callable_functor or mem_fn.
	(function::_Callable): Use lvalue in result_of expression.
	(function): Remove TODO comments about allocators.
	* testsuite/20_util/function/cons/refqual.cc: New test.

From-SVN: r239166
2016-08-05 10:00:34 +01:00
Richard Biener
db7c335e16 ivopt_5.c: Make robust against edge swapping.
2016-08-05  Richard Biener  <rguenther@suse.de>

	* gcc.dg/tree-ssa/ivopt_5.c: Make robust against edge swapping.

From-SVN: r239165
2016-08-05 08:52:22 +00:00
Richard Biener
6c1d60a219 tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary restriction on threading to a loop header.
2016-08-05  Richard Biener  <rguenther@suse.de>

	* tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
	restriction on threading to a loop header.

From-SVN: r239164
2016-08-05 08:00:00 +00:00
Richard Biener
ee2810081e tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
2016-08-05  Richard Biener  <rguenther@suse.de>

	* tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
	* cfghooks.c (force_nonfallthru): If we ended up splitting a latch
	adjust loop info accordingly.

From-SVN: r239163
2016-08-05 07:41:45 +00:00
Kugan Vivekanandarajah
343092cfa2 tree-vrp.c (extract_range_basic): Check cfun->after_inlining before folding call to __builtin_constant_p with...
gcc/ChangeLog:

2016-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* tree-vrp.c (extract_range_basic): Check cfun->after_inlining
	before folding call to __builtin_constant_p with parameters to false.

From-SVN: r239162
2016-08-05 02:47:27 +00:00
Alan Modra
7ffedfee02 [RS6000] rs6000_preferred_reload_class
* config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
	code accidentally committed 2016-05-02 providing class when given
	NO_REGS.

From-SVN: r239161
2016-08-05 10:59:05 +09:30
GCC Administrator
eedd464b2c Daily bump.
From-SVN: r239160
2016-08-05 00:16:15 +00:00
Patrick Palka
48abe92225 Teach VRP to truncate the case ranges of a switch
gcc/ChangeLog:

	* tree-vrp.c (simplify_switch_using_ranges): Try to truncate
	the case label ranges that partially overlap with OP's value
	range.

gcc/testsuite/ChangeLog:

	* gcc.dg/tree-ssa/vrp107.c: New test.
	* gcc.dg/tree-ssa/vrp108.c: New test.
	* gcc.dg/tree-ssa/vrp109.c: New test.

From-SVN: r239157
2016-08-05 00:07:16 +00:00
Uros Bizjak
383321ecc9 re PR target/72805 (AVX512: invalid code generation involving masks)
PR target/72805
	* config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
	Cast builtin function result to __mmask16 instead of __mmask8.
	(_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
	(_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
	(_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.

From-SVN: r239152
2016-08-04 23:14:39 +02:00
David Malcolm
d4f7837c5a selftest.h: Add ASSERT_TRUE_AT and ASSERT_FALSE_AT
gcc/ChangeLog:
	* selftest.h (ASSERT_TRUE): Reimplement in terms of...
	(ASSERT_TRUE_AT): New macro.
	(ASSERT_FALSE): Reimplement in terms of...
	(ASSERT_FALSE_AT): New macro.
	(ASSERT_STREQ_AT): Fix typo in comment.

From-SVN: r239151
2016-08-04 21:12:52 +00:00
Prathamesh Kulkarni
f6cdf42f64 pr70920-4.c: Move dg-require-effective-target before dg-options.
2016-08-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

testsuite/
	* gcc.dg/pr70920-4.c: Move dg-require-effective-target before
	dg-options.

From-SVN: r239150
2016-08-04 20:51:32 +00:00
Prathamesh Kulkarni
33a9c60943 pr71078-1.c: Remove double and long double test-cases.
2016-08-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

testsuite/
	* gcc.dg/tree-ssa/pr71078-1.c: Remove double and long double
	test-cases.
	* gcc.dg/tree-ssa/pr71078-1-double.c: New test-case.
	* gcc.dg/tree-ssa/pr71078-1-long-double.c: Likewise.
	* gcc.dg/tree-ssa/pr71078-2.c: Remove double and long double
	test-cases.
	* gcc.dg/tree-ssa/pr71078-2-double.c: New test-case.
	* gcc.dg/tree-ssa/pr71078-2-long-double.c: Likewise.
	* gcc.dg/tree-ssa/pr71078-3.c: Add require-effective-check for
	large_double.

From-SVN: r239149
2016-08-04 20:37:51 +00:00
Paolo Carlini
4473482d5b re PR c++/72800 (ICE on invalid C++14 code with initialized lambda capture: tree check: expected class ‘type’, have ‘exceptional’ (error_mark) in add_capture, at cp/lambda.c:505)
/cp
2016-08-04  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/72800
	* lambda.c (add_capture): Check lambda_capture_field_type return
	value for error_mark_node.

/testsuite
2016-08-04  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/72800
	* g++.dg/cpp1y/lambda-ice1.C: New.

From-SVN: r239148
2016-08-04 19:22:58 +00:00
Patrick Palka
08156df50a Fix ICE on invalid variable template instantiation (PR c++/72759)
gcc/cp/ChangeLog:

	PR c++/72759
	* pt.c (tsubst_qualified_id): Return error_mark_node if
	template_args is error_mark_node.

gcc/testsuite/ChangeLog:

	PR c++/72759
	* g++.dg/cpp1y/pr72759.C: New test.

From-SVN: r239147
2016-08-04 19:14:32 +00:00
Patrick Palka
938da3a58b Designate the widest case label to be the default label
gcc/ChangeLog:

	* gimple.c (preprocess_case_label_vec_for_gimple): When the case
	labels are exhaustive, designate the label with the widest
	range to be the default label.

gcc/testsuite/ChangeLog:

	* gcc.dg/switch-10.c: New test.

From-SVN: r239146
2016-08-04 18:11:08 +00:00
Jonathan Wakely
42183d034d Define std::is_callable and std::is_nothrow_callable
* doc/xml/manual/status_cxx2017.xml: Update status table.
	* include/std/functional (__inv_unwrap): Move to <type_traits>.
	(__invoke_impl): Remove exception specifications.
	(__invoke, invoke): Add exception specifications using
	__is_nothrow_callable.
	* include/std/type_traits (__inv_unwrap): Move from <functional>.
	(__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
	(__is_callable, __is_nothrow_callable): New traits.
	(is_callable, is_callable_v): New C++17 traits.
	(is_nothrow_callable, is_nothrow_callable_v): Likewise.
	* testsuite/20_util/is_callable/requirements/
	explicit_instantiation.cc: New test.
	* testsuite/20_util/is_callable/requirements/
	explicit_instantiation_ext.cc: New test.
	* testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
	* testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
	test.
	* testsuite/20_util/is_callable/value.cc: New test.
	* testsuite/20_util/is_callable/value_ext.cc: New test.
	* testsuite/20_util/is_nothrow_callable/requirements/
	explicit_instantiation.cc: New test.
	* testsuite/20_util/is_nothrow_callable/requirements/
	explicit_instantiation_ext.cc: New test.
	* testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
	New test.
	* testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
	New test.
	* testsuite/20_util/is_nothrow_callable/value.cc: New test.
	* testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.

From-SVN: r239145
2016-08-04 19:02:56 +01:00
Ian Lance Taylor
e91f59b919 runtime: fix incorrectly commented out code in heapdump.c
Reviewed-on: https://go-review.googlesource.com/25490

From-SVN: r239144
2016-08-04 17:21:23 +00:00
Marcel Böhme
1841e25ca5 re PR c++/71696 (Libiberty Demangler segfaults (6))
2016-08-04  Marcel Böhme  <boehme.marcel@gmail.com>

	PR c++/71696
	* cplus-dem.c: Prevent infinite recursion when there is a cycle
	in the referencing of remembered mangled types.
	(work_stuff): New stack to keep track of the remembered mangled
	types that are currently being processed.
	(push_processed_type): New method to push currently processed
	remembered type onto the stack.
	(pop_processed_type): New method to pop currently processed
	remembered type from the stack.
	(work_stuff_copy_to_from): Copy values of new variables.
	(delete_non_B_K_work_stuff): Free stack memory.
	(demangle_args): Push/Pop currently processed remembered type.
	(do_type): Do not demangle a cyclic reference and push/pop
	referenced remembered type.

From-SVN: r239143
2016-08-04 10:53:18 -06:00
James Greenhalgh
da84183c71 [Patch obvious testsuite] Remove duplicate body from pr70903.c
* gcc.c-torture/execute/pr70903.c: Remove duplicate body.

From-SVN: r239142
2016-08-04 16:48:34 +00:00
Ian Lance Taylor
aa8a418bbc text/template: reduce maxExecDepth for gccgo
When using gccgo on systems without full support for split stacks a
    recursive template can overrun the available stack space.  Reduce the
    limit from 100000 to 10000 to make this less likely.  It's still high
    enough that real uses will work.
    
    Reviewed-on: https://go-review.googlesource.com/25467

From-SVN: r239141
2016-08-04 16:48:28 +00:00
Ian Lance Taylor
7a62db9787 compiler: include "go-system.h" in escape.cc
Patch from Rainer Orth.
    
    Reviewed-on: https://go-review.googlesource.com/25466

From-SVN: r239140
2016-08-04 16:23:09 +00:00
Jason Merrill
b9dc9ef63f PR c++/72415 - member template with fold-expression constraint
* pt.c (tsubst_pack_expansion): Pull a single pack expansion out
	of the TREE_VEC.

From-SVN: r239138
2016-08-04 12:06:22 -04:00
Jason Merrill
6a7b92036b Rename TYPE_ANONYMOUS_P to TYPE_UNNAMED_P.
* cp-tree.h (TYPE_UNNAMED_P): Rename from TYPE_ANONYMOUS_P.
	(TYPE_WAS_UNNAMED): Rename from TYPE_WAS_ANONYMOUS.
	* class.c, decl.c, decl2.c, error.c, lambda.c, mangle.c,
	name-lookup.c, parser.c, pt.c, semantics.c, tree.c: Adjust.

From-SVN: r239137
2016-08-04 12:06:17 -04:00
Jason Merrill
99676625e6 PR c++/72796 - wrong resolution of scoped method call.
* typeck.c (finish_class_member_access_expr): Avoid stripping
	SCOPE_REF to dependent base.

From-SVN: r239136
2016-08-04 12:06:09 -04:00
Andrew Pinski
c3f2032729 aarch64.c (thunderx_vector_cost): New variable.
2016-08-04  Andrew Pinski  <apinski@cavium.com>

        * config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
        (thunderx_tunings): Use thunderx_vector_cost instead of
        generic_vector_cost.

From-SVN: r239135
2016-08-04 09:00:24 -07:00
Martin Liska
176bf572a8 Fix GNU coding style in gcov.c
* gcov.c (main): Fix GNU coding style.
	(output_intermediate_file): Likewise.
	(process_file): Likewise.
	(generate_results): Likewise.
	(release_structures): Likewise.
	(create_file_names): Likewise.
	(find_source): Likewise.
	(read_graph_file): Likewise.
	(find_exception_blocks): Likewise.
	(canonicalize_name): Likewise.
	(make_gcov_file_name): Likewise.
	(mangle_name): Likewise.
	(accumulate_line_counts): Likewise.
	(output_branch_count): Likewise.
	(read_line): Likewise.

From-SVN: r239134
2016-08-04 15:05:35 +00:00
Thomas Schwinge
ae9281fc64 Rework C/C++ OpenACC routine parsing
gcc/c/
	* c-parser.c (struct oacc_routine_data): Add error_seen and
	fndecl_seen members.
	(c_finish_oacc_routine): Use these.
	(c_parser_declaration_or_fndef): Adjust.
	(c_parser_oacc_routine): Likewise.  Support more C language
	constructs, and improve diagnostics.  Move pragma context
	checking...
	(c_parser_pragma): ... here.
	gcc/cp/
	* parser.c (cp_ensure_no_oacc_routine): Improve diagnostics.
	(cp_parser_late_parsing_cilk_simd_fn_info): Fix diagnostics.
	(cp_parser_late_parsing_oacc_routine, cp_finalize_oacc_routine):
	Simplify code, and improve diagnostics.
	(cp_parser_oacc_routine): Likewise.  Move pragma context
	checking...
	(cp_parser_pragma): ... here.
	gcc/testsuite/
	* c-c++-common/goacc/routine-5.c: Update.

From-SVN: r239128
2016-08-04 15:35:30 +02:00
Thomas Schwinge
0b212d8c86 C/C++: Simplify handling of location information for OpenACC routine directives
gcc/c/
	* c-parser.c (struct oacc_routine_data): New.
	(c_parser_declaration_or_fndef, c_parser_oacc_routine): Use it.
	Simplify code.
	(c_finish_oacc_routine): Likewise.  Don't attach clauses to "omp
	declare target" attribute.
	gcc/cp/
	* parser.h (struct cp_omp_declare_simd_data): New.
	(struct cp_parser): Use it for oacc_routine member.
	* parser.c (cp_ensure_no_oacc_routine, cp_parser_oacc_routine)
	(cp_parser_late_parsing_oacc_routine, cp_finalize_oacc_routine):
	Use it.  Simplify code.
	(cp_parser_new): Initialize all members pointing to special
	parsing data structures.
	(cp_parser_cilk_simd_fn_vector_attrs): Initialize
	parser->cilk_simd_fn_info->clauses.
	(cp_parser_omp_declare_simd): Initialize
	parser->omp_declare_simd->clauses.
	(cp_parser_late_parsing_omp_declare_simd): Simplify code.

From-SVN: r239127
2016-08-04 15:35:19 +02:00
Thomas Schwinge
bbc79c0e9e C++ OpenACC routine directive testing: templated, and "auto", trailing return type syntax
libgomp/
	* testsuite/libgomp.oacc-c++/routine-1-auto.C: New file.
	* testsuite/libgomp.oacc-c++/routine-1-template-auto.C: Likewise.
	* testsuite/libgomp.oacc-c++/routine-1-template-trailing-return-type.C:
	Likewise.
	* testsuite/libgomp.oacc-c++/routine-1-template.C: Likewise.
	* testsuite/libgomp.oacc-c++/routine-1-trailing-return-type.C:
	Likewise.
	* testsuite/libgomp.oacc-c-c++-common/routine-1.c: Adjust.

From-SVN: r239126
2016-08-04 15:35:10 +02:00
Thomas Schwinge
9ef64248fe Make libgomp.oacc-c-c++-common/crash-1.c a "link" test, and don't hardcode -O0
libgomp/
	* testsuite/libgomp.oacc-c-c++-common/crash-1.c: Make it a "link"
	test, and don't hardcode -O0.

From-SVN: r239125
2016-08-04 15:34:57 +02:00
Jonathan Wakely
246c618e71 Update C++17 library implementation status table
* doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
	* doc/html/manual/status.html: Regenerate.

From-SVN: r239124
2016-08-04 14:33:02 +01:00
Bernd Edlinger
8d8e740c1c 016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR rtl-optimization/71779
        * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
        if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
        or if it was truncated.

From-SVN: r239123
2016-08-04 13:23:36 +00:00
Bernd Edlinger
086ad22e0e re PR target/70903 (wrong code with bfi @ aarch64 with -Os)
2016-08-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR rtl-optimization/70903
        * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.

testsuite:
2016-08-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR rtl-optimization/70903
        * gcc.c-torture/execute/pr70903.c: New test.

From-SVN: r239122
2016-08-04 13:20:57 +00:00
Jonathan Wakely
9a8e528cf1 Define std::enable_shared_from_this::weak_from_this
* testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
	effective target not dg-options. Move check for feature-test macro to:
	* testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
	New test.

From-SVN: r239121
2016-08-04 13:33:10 +01:00
Jonathan Wakely
7d2035fafe Simplify std::__invoke_impl definitions
* include/std/functional (_Unwrap): Rename to __inv_unwrap.
	(__invfwd): Adjust.
	(__invoke_impl): Remove unused template parameters.
	* testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
	parameter.
	* testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
	and test __invoke extension for C++11.

From-SVN: r239120
2016-08-04 12:09:29 +01:00
Martin Liska
6805e400e9 Use TESTING_IN_BUILD_TREE in params.exp
* gcc.dg/params/params.exp: Replace file exists with
	TESTING_IN_BUILD_TREE.

From-SVN: r239119
2016-08-04 11:06:37 +00:00
Kugan Vivekanandarajah
231b116970 tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before accessing SSA_NAME_PTR_INFO.
gcc/ChangeLog:

2016-08-04  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
	accessing SSA_NAME_PTR_INFO.

From-SVN: r239118
2016-08-04 09:15:03 +00:00
Georg-Johann Lay
90b1c81d64 re PR target/70677 (Suboptimal cond on AVR: unneeded stack frame)
PR 70677
	* common/config/avr/avr-common.c (avr_option_optimization_table)
	[OPT_LEVELS_ALL]: Turn off -fcaller-saves.

From-SVN: r239117
2016-08-04 07:52:38 +00:00
Georg-Johann Lay
e7ff6a46c9 re PR target/55181 (Expensive shift loop where a bit-testing instruction could be used)
PR 55181
	* config/avr/avr.md: New pattern to work around do_store_flag
	generating shift instructions for bit extractions.

From-SVN: r239116
2016-08-04 07:50:53 +00:00