Commit graph

147399 commits

Author SHA1 Message Date
Jason Merrill
172f0e1311 PR c++/70781 - ICE on ill-formed lambda.
* parser.c (cp_parser_lambda_expression): Unset OK if there was an
	error parsing the lambda-declarator.

From-SVN: r238563
2016-07-21 02:05:58 -04:00
Jason Merrill
dd5dda561e PR c++/71896 - constexpr pointer-to-member comparison.
* constexpr.c (cxx_eval_binary_expression): Handle comparison
	between lowered and unlowered PTRMEM_CST.

From-SVN: r238562
2016-07-21 02:05:51 -04:00
Jason Merrill
4683f47cff PR c++/70942 - generic lambda with auto&& parameter.
* g++.dg/cpp1y/lambda-generic-conv3.C: New.

From-SVN: r238561
2016-07-21 02:05:44 -04:00
Jason Merrill
451dcc6693 PR c++/65168 - -Waddress in unevaluated context.
gcc/c-family/
	* c-common.c (c_common_truthvalue_conversion): Check
	c_inhibit_evaluation_warnings for warning about address of
	reference.
gcc/cp/
	* typeck.c (cp_truthvalue_conversion): Compare pointers to nullptr.
	Don't set c_inhibit_evaluation_warnings.

From-SVN: r238560
2016-07-21 02:05:39 -04:00
Jason Merrill
e96fe88c51 PR c++/71121 - -Waddress, constexpr, and PMFs.
* cp-gimplify.c (cp_fully_fold): First call maybe_constant_value.

From-SVN: r238559
2016-07-21 02:05:33 -04:00
Andrew Sutton
f078dc7d26 Improving concepts performance and diagnostics.
PR c++/67565
	PR c++/67579
	PR c++/71843
gcc/
	* timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
	for constraint satisfaction and subsumption.
	* timevar.h (auto_timevar): New constructor that matches the push/pop
	pattern of usage in pt.c.
gcc/cp/
	* cp-tree.def (CHECK_CONSTR): New.
	* cp-tree.h (CHECK_CONSTR_CONCEPT): New.
	(CHECK_CONSTR_ARGS): New.
	* constraint.cc (make_predicate_constraint): Remove in favor of
	normalize_expression.
	(resolve_constraint_check): Actually return error_mark_node when
	resolution fails.
	(resolve_variable_concept_check): Perform coercion as if processing
	a template. Also return errors on resolution failure.
	(lift_*): Remove all of these functions. Don't unnecessarily inline
	concepts.
	(learn_*): Add facilities to memoize implications for subsumption
	during normalization.
	(expanding_concept): New.
	(expand_concept): New. Return the inlined and normalized definition
	of a concept when needed.
	(transform_*, xform_*): Rename to normalize_* to better reflect the
	responsibility of those functions.
	(normalize_template_id_expression): Check for non-boolean operands
	when possible. Generate check constraints instead of normal variable
	references.
	(normalize_call_expression): Report errors when resolution fails.
	(check_for_logical_overloads): Rewrite this check to more accurately
	report the error.
	(normalize_atom): Check for overloaded calls and invalid types before
	determining if the expression refers to a concept.
	(build_constraints): Don't cache normalized constraints or decmposed
	assumptions.
	(finish_shorthand_constraint): Return a normalized expression instead
	of a predicate constraint.
	(finish_template_introduction): Same.
	(placeholder_extract_concept_and_args): Rewrite this since we only
	ever get check constraints here.
	(equivalent_placeholder_constraints): Rewrite in terms of check
	constraints, and handle error_mark_nodes correctly.
	(tsubst_check_constraint, tsubst_expr_constr, tsubst_type_constr)
	(tsubst_implicit_conversion_constr)
	(tsubst_argument_deduction_constr, tsubst_exception_constr)
	(tsubst_parameterized_constraint, tsubst_constraint): New.
	(tsbust_conjunection): Replace with tsubst_logical_operator and
	actually generate the right kind of constraint.
	(tsubst_requirement_body): Reverse the order of substituted arguments
	so that they appear in the order written (helps diagnostics).
	(satisfy_check_constraint): New.
	(satisfy_conjunction): Simplify.
	(satisfy_disjunction): Same.
	(satisfy_constraint_1): Handle check constraints.
	(eval_constr): New (private) global state.
	(evaluating_constraints_sentinel): New. Manages eval_constr.
	(satisfy_constraint): Add timing variables.
	(satisfy_associated_constraints): Add hooks for memoization.
	(evaluate_function_concept): Build a check constraint instead of
	normalizing its definition.
	(evaluate_variable_concept): Same.
	(evaluate_constraint_expression): Normalize, but in the current
	declaration processing context.
	(evaluating_constraints_p): New.
	(elide_constraint_failure_p): Actually emit constraint_thresh errors.
	(diagnose_*): Remove artificial indentation. Add a new parameter to
	each that tracks the current (complete) constraint prior to any
	substitutions.
	(diagnose_expression): Removed.
	(diagnose_call_expression): Same.
	(diagnose_template_id): Same.
	(diagnose_template_id): New.
	(diagnose_logical_constraint): New.
	(diagnose_expression_constraint): Show the original expression.
	(diagnose_type_constraint): Show the original type.
	(diagnose_implicit_conversion_constraint): Be specific about
	failures, don't re-diagnose a known-to-be-failed substitutions,
	and manage elisions properly.
	(diagnose_argument_deduction_constraint): Same.
	(diagnose_exception_constraint): Same.
	(diagnose_parameterized_constraint): Same.
	(constraint_p): Allow EXPR_PACK_EXPANSION.
	* logic.cc (next_by_distance): Removed. No longer used.
	(any_p): Renamed from any_of.
	(term_entry, term_hasher): New.
	(term_list): Rewrite to include a hash table for quick lookup.
	Also, make less stateful.
	(proof_state): Extend to allow goals to be discharged once
	satisfied.
	(non_atomic_constraint_p): New.
	(any_non_atomic_constraints_p): New.
	(...rest...): Previous implementation completely replaced with an
	iterative algorithm that opportunistically prunes the search space
	before committing to using more memory.
	* parser.c: (cp_parser_type_parameter): Normalize constraints.
	(cp_parser_explicit_template_declaration): Same.
	* pt.c: (finish_template_variable): Be less redundant with this error
	message.
	(template_args_equal): No longer static.
	(tsubst_decl): Don't try to find specializations of variables that
	have already been instantiated.
	(build_non_dependent_expr): Avoid infinite recursion during concept
	expansion.
	(make_constrained_auto): Normalize constraints.
	(do_auto_deduction): When doing auto deduction from a
	partial-concept-id, be sure to include the explicit args checking
	the constraints.
	(constraint_sat_*): New. Memoize satisfied constraints.
	(concept_spec_*): New. Memoize expressions associated with a concept
	specialization.
	(constraint_memos, concept_memos): New.
	(lookup_constraint_satisfaction, memoize_constraint_satisfaction): New.
	(lookup_concept_satisfaction, memoize_concept_satisfaction): New.
	(get_concept_expansion, save_concept_expansion): New.
	(hash_subsumption_args): New.
	(comp_subsumption_args): New.
	(subsumption_*): New. Memoize parts of the subsumption relation.
	(lookup_subsumption_result, save_subsumption_result): New.
	(init_constraint_processing): Initialize memo tables.
	(get_constraints): Shortcut if !flag_concepts.
	* decl.c (grokfndecl): Normalize constraints.
	* error.c (dump_simple_decl): Print "concept" when appropriate.
	(dump_function_decl): Same.
	(dump_template_decl): Don't write requirements when we're not
	printing the header.
	(dump_expr): Handle fold expressions.
	* cxx-pretty-print.c (cxx_pretty_printer::expression): Handle
	fold expressions.
	(get_fold_operator): New.
	(pp_cxx_unary_left_fold_expression): New.
	(pp_cxx_unary_right_fold_expression): New.
	(pp_cxx_binary_fold_expression): New.
	(pp_cxx_check_constraint): New.
	(pp_cxx_*_constraint): Rewrite the grammar of internal constraints
	to make them easier to read when debugging.
	* search.c (accessible_p): Don't shortcut when evaluating constraints.
	* tree.c (cp_tree_equal): Handle CHECK_CONSTR.

Co-Authored-By: Jason Merrill <jason@redhat.com>

From-SVN: r238558
2016-07-21 02:05:24 -04:00
GCC Administrator
e17def9a70 Daily bump.
From-SVN: r238557
2016-07-21 00:16:19 +00:00
Uros Bizjak
07e96250ae hwint.h (HOST_WIDE_INT_0): New define.
* hwint.h (HOST_WIDE_INT_0): New define.
	(HOST_WIDE_INT_0U): Ditto.
	* double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
	* dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
	* simplify-rtx.c: Ditto.
	* tree-object-size.c: Ditto.

From-SVN: r238545
2016-07-20 23:59:44 +02:00
David Malcolm
52ed68f71a C++ FE: handle misspelled identifiers and typenames
gcc/cp/ChangeLog:
	PR c/70339
	PR c/71858
	* name-lookup.c: Include gcc-rich-location.h, spellcheck-tree.h,
	and parser.h.
	(suggest_alternatives_for): If no candidates are found, try
	lookup_name_fuzzy and report if if finds a suggestion.
	(consider_binding_level): New function.
	(lookup_name_fuzzy) New function.
	* parser.c: Include gcc-rich-location.h.
	(cp_lexer_next_token_is_decl_specifier_keyword): Move most of
	logic into...
	(cp_keyword_starts_decl_specifier_p): ...this new function.
	(cp_parser_diagnose_invalid_type_name): When issuing
	"does not name a type" errors, attempt to make a suggestion using
	lookup_name_fuzzy.
	* parser.h (cp_keyword_starts_decl_specifier_p): New prototype.
	* search.c (lookup_field_fuzzy_info::fuzzy_lookup_field): Reject
	types that are not CLASS_TYPE_P, rather than rejecting individual
	tree codes.

gcc/testsuite/ChangeLog:
	PR c/70339
	PR c/71858
	* g++.dg/spellcheck-identifiers.C: New test case, based on
	gcc.dg/spellcheck-identifiers.c.
	* g++.dg/spellcheck-identifiers-2.C: New test case, based on
	gcc.dg/spellcheck-identifiers-2.c.
	* g++.dg/spellcheck-typenames.C: New test case, based on
	gcc.dg/spellcheck-typenames.c

From-SVN: r238538
2016-07-20 18:42:11 +00:00
Andreas Krebbel
1397e16301 S/390: Remove mode size check in encode_section_info.
With the last change the not-aligned symbol ref markers are always set
for modes with size zero.  This is wrong since for larl the size of
the access does not matter.  This patch removes that check entirely
from s390_encode_section_info.  Modes with a size of 0 get rejected in
s390_check_symref_alignment which is used for the load/store relative
instructions to check for natural alignment.

Bootstrapped and regression tested on s390 and s390x with
--with-arch=z900 and --with-arch=z13.

gcc/ChangeLog:

2016-07-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_encode_section_info): Remove mode size
	check.

From-SVN: r238536
2016-07-20 18:33:30 +00:00
Jonathan Wakely
09a855ae3c Document LWG DR 2684 status and regenerate libstdc++ manual
* doc/xml/manual/intro.xml: Document DR 2684 status.
	* doc/html/*: Regenerate.

From-SVN: r238535
2016-07-20 19:22:05 +01:00
Jonathan Wakely
e87b7d52c3 LWG 2441 Provide exact-width atomic typedefs
* include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
	(atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
	(atomic_uint64_t): Define (LWG 2441).
	* testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
	lines.
	* testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
	the new types.
	* doc/xml/manual/intro.xml: Document DR 2441 status.

From-SVN: r238534
2016-07-20 19:21:59 +01:00
Jonathan Wakely
07c772ed4e LWG 2328 Rvalue stream extraction should use perfect forwarding
* include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
	to use perfect forwarding (LWG 2328).
	* testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
	* doc/xml/manual/intro.xml: Document DR 2328 status.

From-SVN: r238533
2016-07-20 19:21:53 +01:00
Jonathan Wakely
18407bfb2c Use static pointer to member when catching nullptr
libstdc++-v3:

	* libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
	static objects for catching nullptr as pointer to member types.

gcc/testsuite:

	* g++.dg/cpp0x/nullptr35.C: Change expected result for catching as
	pointer to member function and also test catching by reference.

From-SVN: r238532
2016-07-20 19:21:48 +01:00
Dominik Vogt
4c07fd98b8 S/390: Fix pr67443.c.
The attached patch rewrites the pr67443.c testcase in a different way
so that the test still works with the changed allocation of globals
pinned to registers.  The test ist hopefully more robust now.

gcc/testsuite/ChangeLog:

2016-07-20  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* gcc.target/s390/pr67443.c: Fix test case.

From-SVN: r238531
2016-07-20 17:11:37 +00:00
Dominik Vogt
fee21d65c0 S/390: Xfail some tests in insv-[12].c.
The attached patch XFAILs some of the "insv" testcases as
discussed internally.  Tested on s390x biarch and s390.

gcc/testsuite/ChangeLog:

2016-07-20  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* gcc.target/s390/insv-1.c: Xfail some tests.
	* gcc.target/s390/insv-2.c: Likewise.

From-SVN: r238530
2016-07-20 17:09:03 +00:00
Uros Bizjak
dd4786fe81 cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
* cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
	* combine.c: Use HOST_WIDE_INT_M1U instead of
	~(unsigned HOST_WIDE_INT) 0.
	* double-int.h: Ditto.
	* dse.c: Ditto.
	* dwarf2asm.c:Ditto.
	* expmed.c: Ditto.
	* genmodes.c: Ditto.
	* match.pd: Ditto.
	* read-rtl.c: Ditto.
	* tree-ssa-loop-ivopts.c: Ditto.
	* tree-ssa-loop-prefetch.c: Ditto.
	* tree-vect-generic.c: Ditto.
	* tree-vect-patterns.c: Ditto.
	* tree.c: Ditto.

From-SVN: r238529
2016-07-20 17:47:33 +02:00
Georg-Johann Lay
dbe9dfdd50 avr.c (avr_legitimize_address): Force constant addresses outside [0,0xc0] into a register.
gcc/
	* gcc/config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
	constant addresses outside [0,0xc0] into a register.
	(avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn.  And handle
	cases where the base address register is unused after.
	(avr_out_movhi_r_mr_reg_disp_tiny): Same.
	(avr_out_movhi_mr_r_reg_disp_tiny): Same.
	(avr_out_store_psi_reg_disp_tiny): Same.

gcc/testsuite/
	* gcc.target/avr/torture/get-mem.c: New test.
	* gcc.target/avr/torture/set-mem.c: New test.

From-SVN: r238528
2016-07-20 14:46:57 +00:00
Georg-Johann Lay
c25e1d82bf Implement attribute progmem on reduced Tiny cores by adding flash offset 0x4000 to respective symbols.
gcc/
	Implement attribute progmem on reduced Tiny cores by adding
	flash offset 0x4000 to respective symbols.

	PR target/71948
	* doc/extend.texi (AVR Variable Attributes) [progmem]: Add
	documentation how it works on reduced Tiny cores.
	(AVR Named Address Spaces): No support for reduced Tiny.
	* config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
	(avr_address_tiny_pm_p): New static function.
	(avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
	if the address is in progmem.
	(avr_assemble_integer): Same.
	(avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
	for symbol_ref in progmem.
	* config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
	magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
gcc/testsuite/
	PR target/71948
	* gcc.target/avr/torture/tiny-progmem.c: New test.

From-SVN: r238525
2016-07-20 14:12:16 +00:00
Patrick Palka
25e08379b8 Build libbackend.a as a thin archive if possible
gcc/ChangeLog:

	* configure.ac (thin_archive_support): New variable.  AC_SUBST it.
	* configure: Regenerate.
	* Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
	(USE_THIN_ARCHIVES): New variable.
	(libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
	this archive as a thin archive.

From-SVN: r238524
2016-07-20 14:09:20 +00:00
David Malcolm
7c8f7eaa75 Enabling work for C++ handling of misspelled identifiers and typenames
gcc/c/ChangeLog:
	* c-decl.c (struct edit_distance_traits<cpp_hashnode *>): Move to
	spellcheck-tree.h
	(best_macro_match): Likewise, converting from a typedef to a
	subclass.
	(find_closest_macro_cpp_cb): Move to spellcheck-tree.c.
	(lookup_name_fuzzy): Update for change of best_macro_match to a
	subclass with a ctor that calls cpp_forall_identifiers.

gcc/ChangeLog:
	* diagnostic-show-locus.c (diagnostic_show_locus): If this is the
	same location as last time, don't skip if we have fix-it hints.
	Clarify the skipping logic by converting it from one "if" clause
	to repeated "if" clauses.
	* spellcheck-tree.c: Include "cpplib.h".
	(find_closest_macro_cpp_cb): Move here from c/c-decl.c.
	(best_macro_match::best_macro_match): New constructor.
	* spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
	Move here from c/c-decl.c.
	(class best_macro_match): Move here from c/c-decl.c, converting
	from a typedef to a subclass, gaining a ctor.

From-SVN: r238522
2016-07-20 14:03:03 +00:00
Jakub Jelinek
7419f4417a re PR c++/71909 (g++ accepts an unreachable function catch block that lacks a corresponding try)
PR c++/71909
	* parser.c (cp_parser_save_member_function_body): Consume
	__transaction_relaxed or __transaction_atomic with optional
	attribute.  Only skip catch with block if try keyword is seen.

	* g++.dg/parse/pr71909.C: New test.
	* g++.dg/tm/pr71909.C: New test.

From-SVN: r238521
2016-07-20 16:01:30 +02:00
Jakub Jelinek
109d2197c3 re PR middle-end/50060 (intrinsics not folded by the middle-end)
PR c++/50060
	* constexpr.c (cxx_eval_builtin_function_call): Pass false as lval
	when evaluating call arguments.  Use fold_builtin_call_array instead
	of fold_build_call_array_loc, return t if it returns NULL.  Otherwise
	check the result with potential_constant_expression and call
	cxx_eval_constant_expression on it.

	* g++.dg/cpp0x/constexpr-50060.C: New test.
	* g++.dg/cpp1y/constexpr-50060.C: New test.

From-SVN: r238520
2016-07-20 16:00:02 +02:00
Georg-Johann Lay
2d06ca74a2 avr-protos.h (avr_addr_space_supported_p): New prototype.
gcc/
	* config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
	* config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
	define...
	(avr_addr_space_diagnose_usage): ...and implementation.
	(avr_addr_space_supported_p): New function.
	(avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
	report bad address space usage if that space is supported.
	(avr_insert_attributes): Same.  No more complain about unsupported
	address spaces.
	* config/avr/avr-c.c (tm_p.h): Include it.
	(avr_cpu_cpp_builtins):	Only define addr-space related built-in
	macro if avr_addr_space_supported_p.

From-SVN: r238519
2016-07-20 13:50:31 +00:00
Alexander Monakov
b25ea150b6 nvptx: do not implicitly enable -ftoplevel-reorder
* config/nvptx/nvptx.c (nvptx_option_override): Do not set
flag_toplevel_reorder.

From-SVN: r238518
2016-07-20 16:47:12 +03:00
David Malcolm
de6a69eea8 C: convert return type of lookup_name_fuzzy from tree to const char *
gcc/c-family/ChangeLog:
	* c-common.h (lookup_name_fuzzy): Convert return type from tree to
	const char *.

gcc/c/ChangeLog:
	* c-decl.c (implicit_decl_warning): Update for conversion of
	return type of lookup_name_fuzzy to const char *.
	(undeclared_variable): Likewise.
	(lookup_name_fuzzy): Convert return type from tree to
	const char *.
	* c-parser.c (c_parser_declaration_or_fndef): Update for
	conversion of return type of lookup_name_fuzzy to const char *.
	(c_parser_parameter_declaration): Likewise.

gcc/ChangeLog:
	* gcc-rich-location.c
	(gcc_rich_location::add_fixit_misspelled_id): New overload, taking
	a const char *.
	* gcc-rich-location.h
	(gcc_rich_location::add_fixit_misspelled_id): Likewise.

From-SVN: r238517
2016-07-20 13:42:51 +00:00
Georg-Johann Lay
ffc2284012 target.def (addr_space): Add new diagnose_usage to hook vector.
gcc/
	* target.def (addr_space): Add new diagnose_usage to hook vector.
	* targhooks.c (default_addr_space_diagnose_usage): Add default
	implementation and...
	* targhooks.h (default_addr_space_diagnose_usage): ... its prototype.
	* c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token
	is some address space, call targetm.addr_space.diagnose_usage.
	* doc/tm.texi.in (Named Address Spaces): Add anchor for
	TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation.
	* doc/tm.texi: Regenerate.

From-SVN: r238514
2016-07-20 13:07:43 +00:00
Martin Liska
144530cf63 Properly handly PHI stmts in later_of_the_two (PR
PR middle-end/71898
	* graphite-isl-ast-to-gimple.c (later_of_the_two):
	Properly handly PHI stmts.
	* gfortran.dg/graphite/pr71898.f90: New test.

From-SVN: r238513
2016-07-20 11:16:47 +00:00
Bin Cheng
04ac4afa84 re PR tree-optimization/71503 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in "gen_phi_arg_condition")
PR tree-optimization/71503
	PR tree-optimization/71683
	* tree-if-conv.c (gen_phi_arg_condition): Record true predicate
	and break.

	gcc/testsuite
	PR tree-optimization/71503
	PR tree-optimization/71683
	* gcc.dg/tree-ssa/ifc-pr71503.c: New test.
	* gcc.dg/tree-ssa/ifc-pr71683.c: New test.

From-SVN: r238512
2016-07-20 08:31:35 +00:00
Yan-Ting Lin
21f8810377 configure.ac (nds32*-*-*): Remove entry to enable gdb.
* configure.ac (nds32*-*-*): Remove entry to enable gdb.
    * configure: Regenerated.

From-SVN: r238511
2016-07-20 08:09:25 +00:00
Martin Liska
6e6fa605f8 Enhance documentation of -fipa-ra option.
* doc/invoke.texi (-fipa-ra): Document when the option is
	disabled. Fix a typo.

From-SVN: r238510
2016-07-20 07:02:09 +00:00
Martin Liska
ba1a7a0f85 Add selftests for fibonacci_heap
* Makefile.in: Include fibonacci_heap.c
	* fibonacci_heap.c: New file.
	* fibonacci_heap.h (fibonacci_heap::insert): Use insert_node.
	(fibonacci_heap::union_with): Fix deletion of the second heap.
	* selftest-run-tests.c (selftest::run_tests): Incorporate
	fibonacci heap tests.
	* selftest.h: Declare fibonacci_heap_c_tests.

From-SVN: r238509
2016-07-20 07:01:48 +00:00
Martin Liska
dcbdb17aeb Add sreal to selftests
* selftest-run-tests.c (selftest::run_tests): New function.
	* selftest.h (sreal_c_tests): Declare.
	* sreal.c (sreal_verify_basics): New function.
	(verify_aritmetics): Likewise.
	(sreal_verify_arithmetics): Likewise.
	(verify_shifting): Likewise.
	(sreal_verify_shifting): Likewise.
	(void sreal_c_tests): Likewise.
	* gcc.dg/plugin/plugin.exp: Remove sreal test.
	* gcc.dg/plugin/sreal-test-1.c: Remove.
	* gcc.dg/plugin/sreal_plugin.c: Remove.

From-SVN: r238508
2016-07-20 07:00:50 +00:00
Jason Merrill
43694e8bbb PR c++/67164 - clean up dead code
* pt.c (iterative_hash_template_arg, template_args_equal): Don't
	handle ARGUMENT_PACK_SELECT.

From-SVN: r238507
2016-07-20 01:06:52 -04:00
GCC Administrator
30bfa23492 Daily bump.
From-SVN: r238506
2016-07-20 00:16:18 +00:00
Thomas Koenig
6ed825558e re PR fortran/71902 (Unneeded temporary on reallocatable character assignment)
2016-07-19  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/71902
	* dependency.c (gfc_check_dependency): Use dep_ref.  Handle case
	if identical is true and two array element references differ.
	(gfc_dep_resovler):  Move most of the code to dep_ref.
	(dep_ref):  New function.
	* frontend-passes.c (realloc_string_callback):  Name temporary
	variable "realloc_string".

2016-07-19  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/71902
	* gfortran.dg/dependency_47.f90:  New test.

From-SVN: r238497
2016-07-19 21:25:33 +00:00
Jakub Jelinek
4833f5615e re PR rtl-optimization/71916 (ICE at -O3 on valid code on x86_64-linux-gnu in "maybe_record_trace_start")
PR rtl-optimization/71916
	* cfgrtl.c (contains_no_active_insn_p): Return false also for
	bb which have a single succ fake edge.

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

From-SVN: r238490
2016-07-19 21:54:49 +02:00
Aldy Hernandez
f36a3ff7f7 re PR debug/71855 (duplicate unspecified_parameters DIE in DWARF for functions with variable arguments)
PR debug/71855
	* dwarf2out.c (gen_subprogram_die): Only call
	gen_unspecified_parameters_die while dumping early dwarf.

From-SVN: r238488
2016-07-19 19:29:42 +00:00
Jakub Jelinek
4fda19ef2b re PR middle-end/71874 (memmove works wrong)
PR middle-end/71874
	* gimple-fold.c (fold_builtin_memory_op): Use
	get_addr_base_and_unit_offset instead of get_ref_base_and_extent.

	* g++.dg/torture/pr71874.C: New test.

From-SVN: r238484
2016-07-19 19:30:05 +02:00
Jakub Jelinek
13da0507f3 re PR middle-end/71734 (FAIL: libgomp.fortran/simd4.f90 -O3 -g execution test)
PR middle-end/71734
	* g++.dg/vect/pr70729.cc: Don't include string.h or xmmintrin.h.
	(my_alloc): Rewritten to use __builtin_posix_memalign and
	__SIZE_TYPE__.
	(my_free): Use __builtin_free instead of _mm_free.
	(Vec::operator=): Use __builtin_memcpy.

From-SVN: r238482
2016-07-19 18:47:30 +02:00
Uros Bizjak
fecfbfa4a2 builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1...
* builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
	HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
	HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
	HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
	* combine.c: Ditto.
	* cse.c: Ditto.
	* dojump.c: Ditto.
	* double-int.c: Ditto.
	* dse.c: Ditto.
	* dwarf2out.c: Ditto.
	* expmed.c: Ditto.
	* expr.c: Ditto.
	* fold-const.c: Ditto.
	* function.c: Ditto.
	* fwprop.c: Ditto.
	* genmodes.c: Ditto.
	* hwint.c: Ditto.
	* hwint.h: Ditto.
	* ifcvt.c: Ditto.
	* loop-doloop.c: Ditto.
	* loop-invariant.c: Ditto.
	* loop-iv.c: Ditto.
	* match.pd: Ditto.
	* optabs.c: Ditto.
	* real.c: Ditto.
	* reload.c: Ditto.
	* rtlanal.c: Ditto.
	* simplify-rtx.c: Ditto.
	* stor-layout.c: Ditto.
	* toplev.c: Ditto.
	* tree-ssa-loop-ivopts.c: Ditto.
	* tree-vect-generic.c: Ditto.
	* tree-vect-patterns.c: Ditto.
	* tree.c: Ditto.
	* tree.h: Ditto.
	* ubsan.c: Ditto.
	* varasm.c: Ditto.
	* wide-int-print.cc: Ditto.
	* wide-int.cc: Ditto.
	* wide-int.h: Ditto.

From-SVN: r238481
2016-07-19 18:40:55 +02:00
David Malcolm
5989388cdf selftest.c: gracefully handle NULL in assert_streq
gcc/ChangeLog:
	* selftest.c (selftest::assert_streq): Handle NULL values of
	val_actual and val_expected.

From-SVN: r238479
2016-07-19 16:16:18 +00:00
Nick Clifton
985a47b297 config.host (m32r): Add m32r/t-m32r to tmake_file.
* config.host (m32r): Add m32r/t-m32r to tmake_file.
	Add crtinit.o and crtfini.o to extra_parts.

From-SVN: r238478
2016-07-19 16:07:40 +00:00
Martin Jambor
e7980addd0 re PR fortran/71688 (ICE in analyze, at cgraphunit.c:632 with -fcoarray=lib)
Fix PR fortran/71688

2016-07-19  Martin Jambor  <mjambor@suse.cz>

        PR fortran/71688
        * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
        rather than cgraph_create_node to get a call graph node.

testsuite/
        gfortran.dg/pr71688.f90: New test.

From-SVN: r238476
2016-07-19 17:40:43 +02:00
Richard Biener
13e889530d gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case, handle all tcc_constant bases and valueize SSA names.
2016-07-19  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
	handle all tcc_constant bases and valueize SSA names.
	* tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle
	tcc_constant bases.

	* c-c++-common/vector-subscript-6.c: New testcase.
	* c-c++-common/vector-subscript-7.c: Likewise.

From-SVN: r238475
2016-07-19 14:16:54 +00:00
Senthil Kumar Selvaraj
1caf048210 Fix failing test for targets with sizeof(int) != 4.
gcc/testsuite/

2016-07-19  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	* gcc.dg/params/blocksort-part.c: Conditionally define Int32 
	and UInt32 based on __SIZEOF_INT__.

From-SVN: r238471
2016-07-19 13:16:32 +00:00
David Malcolm
00f06cd733 Fix copy&paste bug in function-tests.c
gcc/ChangeLog:
	* function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
	the flags of the exit block and bb2, not just the entry block.

From-SVN: r238470
2016-07-19 13:04:32 +00:00
Fritz Reese
60d518829c MAINTAINERS (Write After Approval): Add myself.
2016-07-19  Fritz Reese  <fritzoreese@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r238469
2016-07-19 10:39:19 +00:00
Richard Biener
cef5388d95 re PR tree-optimization/71901 (ice in find_or_generate_expression)
2016-07-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71901
	* tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
	align member, group stuff with the bitfield.
	(vn_ref_op_align_unit): New inline.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
	record element alignment and operand 3 unchanged.
	(ao_ref_init_from_vn_reference): Adjust.
	(valueize_refs_1): Likewise.
	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.

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

From-SVN: r238468
2016-07-19 10:19:46 +00:00
Richard Biener
9a4cb9733d re PR tree-optimization/71908 (ICE at -Os and above in both 32-bit and 64-bit modes on x86_64-linux-gnu (get_constraint_for_component_ref))
2016-07-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71908
	* tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
	symbolic constants in a more reliable way.

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

From-SVN: r238467
2016-07-19 10:18:25 +00:00