aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2016-07-21re PR sanitizer/71953 (ICE using address sanitizers with PCH)Jakub Jelinek2-2/+9
PR sanitizer/71953 * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types before builtin_decl_implicit. From-SVN: r238596
2016-07-21[Patch 3/2 ifcvt costs] Don't expand a conditional move between identical ↵James Greenhalgh2-0/+16
sources gcc/ * optabs.c (emit_condiitonal_move): Short circuit for identical sources. From-SVN: r238595
2016-07-21[Patch 2/2 ifcvt costs] Introduce a new cost model for ifcvt.James Greenhalgh8-99/+127
gcc/ * ifcvt.c (noce_if_info): New fields: speed_p, original_cost, max_seq_cost. Removed fields: then_cost, else_cost, branch_cost. (noce_conversion_profitable_p): New. (noce_try_store_flag_constants): Use it. (noce_try_addcc): Likewise. (noce_try_store_flag_mask): Likewise. (noce_try_cmove): Likewise. (noce_try_cmove_arith): Likewise. (bb_valid_for_noce_process_p): Add to the cost parameter rather than overwriting it. (noce_convert_multiple_sets): Move cost model to here, from... (bb_ok_for_noce_convert_multiple_sets) ...here. (noce_process_if_block): Update calls for above changes. (noce_find_if_block): Record new noce_if_info parameters. gcc/testsuite/ * gcc.dg/ifcvt-2.c: Use parameter to guide if-conversion heuristics. * gcc.dg/ifcvt-3.c: Use parameter to guide if-conversion heuristics. * gcc.dg/pr68435.c: Use parameter to guide if-conversion heuristics. * gcc.dg/ifcvt-4.c: Use parameter to guide if-conversion heuristics. * gcc.dg/ifcvt-5.c: Use parameter to guide if-conversion heuristics. From-SVN: r238594
2016-07-21[Patch 1/2 ifcvt costs] New target hook: max_noce_ifcvt_seq_costJames Greenhalgh8-0/+106
gcc/ * target.def (max_noce_ifcvt_seq_cost): New. * doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it. * doc/tm.texi: Regenerate. * targhooks.h (default_max_noce_ifcvt_seq_cost): New. * targhooks.c (default_max_noce_ifcvt_seq_cost): New. * params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New. (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise. * doc/invoke.texi: Document new params. From-SVN: r238593
2016-07-21re PR tree-optimization/71947 (x ^ y not folded to 0 if x == y by DOM)Richard Biener4-4/+36
2016-07-21 Richard Biener <rguenther@suse.de> PR tree-optimization/71947 * tree-vrp.c (extract_range_from_assert): Singleton symbolic ranges have useful limit_vr information. * gcc.dg/tree-ssa/vrp102.c: New testcase. From-SVN: r238591
2016-07-21function-tests.c (build_trivial_generic_function): Set BLOCK_SUPERCONTEXT of ↵Richard Biener10-0/+32
DECL_INITIAL. 2016-07-21 Richard Biener <rguenther@suse.de> * function-tests.c (build_trivial_generic_function): Set BLOCK_SUPERCONTEXT of DECL_INITIAL. * omp-low.c (create_omp_child_function): Likewise. (grid_expand_target_grid_body): Likewise. * cgraphunit.c (init_lowered_empty_function): Likewise. (cgraph_node::expand_thunk): Likewise. * tree-parloops.c (create_loop_fn): Likewise. * ipa.c (cgraph_build_static_cdtor_1): Likewise. cp/ * vtable-class-hierarchy.c (vtv_generate_init_routine): Set DECL_IGNORED_P. java/ * jcf-parse.c (java_emit_static_constructor): Set BLOCK_SUPERCONTEXT of DECL_INITIAL. From-SVN: r238589
2016-07-21tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo in comment.Prathamesh Kulkarni2-1/+6
2016-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo in comment. From-SVN: r238588
2016-07-21Some patterns for moving one bit around by BST + BLD.Georg-Johann Lay4-1/+198
* config/avr/avr.md (any_extract, any_shiftrt): New code iterators. (*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7) (*insv.xor-extract, *insv.xor1-bit.0): New insns. (adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New values for insn attribute. * config/avr/avr.c (avr_out_insert_notbit): New function. (avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT, ADJUST_LEN_INSV_NOTBIT_0/_7. * config/avr/avr-protos.h (avr_out_insert_notbit): New proto. From-SVN: r238587
2016-07-21tree-chrec.c (convert_affine_scev): New parameter.Bin Cheng9-26/+174
* tree-chrec.c (convert_affine_scev): New parameter. Pass new arg. (chrec_convert_1, chrec_convert): Ditto. * tree-chrec.h (chrec_convert, convert_affine_scev): New parameter. * tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg. * tree-vrp.c (adjust_range_with_scev): Ditto. * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto. (scev_var_range_cant_overflow): New function. (scev_probably_wraps_p): New parameter. Call above function. * tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter. gcc/testsuite * gcc.dg/tree-ssa/scev-15.c: New. From-SVN: r238586
2016-07-21tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up by removing ↵Bin Cheng2-77/+33
computation of may_be_zero. * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up by removing computation of may_be_zero. From-SVN: r238585
2016-07-21[ARM] Fix PR target/59833Aurelien Jarno1-0/+18
For Aurelien Jarno <aurelien@aurel32.net> On ARM soft-float, the float to double conversion doesn't convert a sNaN to qNaN as the IEEE Std 754 standard mandates: "Under default exception handling, any operation signaling an invalid operation exception and for which a floating-point result is to be delivered shall deliver a quiet NaN." Given the soft float ARM code ignores exceptions and always provides a result, a float to double conversion of a signaling NaN should return a quiet NaN. Fix this in extendsfdf2. gcc/ChangeLog: PR target/59833 * config/arm/ieee754-df.S (extendsfdf2): Convert sNaN to qNaN. gcc/testsuite/ChangeLog: * gcc.dg/pr59833.c: New testcase. From-SVN: r238584
2016-07-21vect-mask-store-move-1.c: XFAIL.Bin Cheng2-1/+5
gcc/testsuite * gcc.dg/vect/vect-mask-store-move-1.c: XFAIL. From-SVN: r238583
2016-07-21* tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.Jakub Jelinek2-1/+10
From-SVN: r238581
2016-07-21re PR libgomp/71941 (ICE with OpenMP tasks and queue)Jakub Jelinek4-0/+42
PR c++/71941 * cp-gimplify.c (cp_genericize): For nested cp_genericize calls save/restore bc_label array. * g++.dg/gomp/pr71941.C: New test. From-SVN: r238579
2016-07-21PR c++/70781 - ICE on ill-formed lambda.Jason Merrill3-2/+16
* parser.c (cp_parser_lambda_expression): Unset OK if there was an error parsing the lambda-declarator. From-SVN: r238563
2016-07-21PR c++/71896 - constexpr pointer-to-member comparison.Jason Merrill3-0/+21
* constexpr.c (cxx_eval_binary_expression): Handle comparison between lowered and unlowered PTRMEM_CST. From-SVN: r238562
2016-07-21PR c++/70942 - generic lambda with auto&& parameter.Jason Merrill1-0/+10
* g++.dg/cpp1y/lambda-generic-conv3.C: New. From-SVN: r238561
2016-07-21PR c++/65168 - -Waddress in unevaluated context.Jason Merrill7-19/+34
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-21PR c++/71121 - -Waddress, constexpr, and PMFs.Jason Merrill4-17/+25
* cp-gimplify.c (cp_fully_fold): First call maybe_constant_value. From-SVN: r238559
2016-07-21Improving concepts performance and diagnostics.Andrew Sutton26-913/+2315
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-21Daily bump.GCC Administrator1-1/+1
From-SVN: r238557
2016-07-20hwint.h (HOST_WIDE_INT_0): New define.Uros Bizjak6-7/+17
* 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-20C++ FE: handle misspelled identifiers and typenamesDavid Malcolm9-20/+563
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-20S/390: Remove mode size check in encode_section_info.Andreas Krebbel2-5/+7
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-20Use static pointer to member when catching nullptrJonathan Wakely2-2/+36
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-20S/390: Fix pr67443.c.Dominik Vogt2-19/+27
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-20S/390: Xfail some tests in insv-[12].c.Dominik Vogt3-2/+27
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-20cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.Uros Bizjak15-25/+43
* 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-20avr.c (avr_legitimize_address): Force constant addresses outside [0,0xc0] ↵Georg-Johann Lay5-59/+199
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-20Implement attribute progmem on reduced Tiny cores by adding flash offset ↵Georg-Johann Lay7-7/+220
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-20Build libbackend.a as a thin archive if possiblePatrick Palka4-2/+57
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-20Enabling work for C++ handling of misspelled identifiers and typenamesDavid Malcolm6-44/+94
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-20re PR c++/71909 (g++ accepts an unreachable function catch block that lacks ↵Jakub Jelinek5-3/+88
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-20re PR middle-end/50060 (intrinsics not folded by the middle-end)Jakub Jelinek5-7/+161
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-20avr-protos.h (avr_addr_space_supported_p): New prototype.Georg-Johann Lay4-42/+70
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-20nvptx: do not implicitly enable -ftoplevel-reorderAlexander Monakov2-6/+5
* config/nvptx/nvptx.c (nvptx_option_override): Do not set flag_toplevel_reorder. From-SVN: r238518
2016-07-20C: convert return type of lookup_name_fuzzy from tree to const char *David Malcolm8-15/+58
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-20target.def (addr_space): Add new diagnose_usage to hook vector.Georg-Johann Lay7-0/+52
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-20Properly handly PHI stmts in later_of_the_two (PRMartin Liska4-0/+67
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-20re PR tree-optimization/71503 (gcc ICE at -O3 on valid code on ↵Bin Cheng5-1/+61
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-20Enhance documentation of -fipa-ra option.Martin Liska2-2/+11
* doc/invoke.texi (-fipa-ra): Document when the option is disabled. Fix a typo. From-SVN: r238510
2016-07-20Add selftests for fibonacci_heapMartin Liska6-9/+331
* 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-20Add sreal to selftestsMartin Liska8-179/+131
* 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-20PR c++/67164 - clean up dead codeJason Merrill2-14/+8
* pt.c (iterative_hash_template_arg, template_args_equal): Don't handle ARGUMENT_PACK_SELECT. From-SVN: r238507
2016-07-20Daily bump.GCC Administrator1-1/+1
From-SVN: r238506
2016-07-19re PR fortran/71902 (Unneeded temporary on reallocatable character assignment)Thomas Koenig5-15/+96
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-19re PR rtl-optimization/71916 (ICE at -O3 on valid code on x86_64-linux-gnu ↵Jakub Jelinek4-2/+49
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-19re PR debug/71855 (duplicate unspecified_parameters DIE in DWARF for ↵Aldy Hernandez3-5/+25
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-19re PR middle-end/71874 (memmove works wrong)Jakub Jelinek4-9/+29
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-19re PR middle-end/71734 (FAIL: libgomp.fortran/simd4.f90 -O3 -g execution ↵Jakub Jelinek2-7/+12
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