aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-08-07Add C++ Concepts TS support.Andrew Sutton158-243/+10006
gcc/c-family/ * c-common.c (c_common_reswords): Add __is_same_as, concept, requires. * c-common.h (enum rid): Add RID_IS_SAME_AS, RID_CONCEPT, RID_REQUIRES. (D_CXX_CONCEPTS, D_CXX_CONCEPTS_FLAGS): New. * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_concepts. * c-opts.c (set_std_cxx1z): Set flag_concepts. * c.opt (fconcepts): New. gcc/cp/ * constraint.cc, logic.cc: New files. * Make-lang.in (CXX_AND_OBJCXX_OBJS): Add constraint.o and logic.o. (c++.tags): Also process .cc files. * call.c (enum rejection_reason_code): Add rr_constraint_failure. (print_z_candidate): Handle it. (constraint_failure): New. (add_function_candidate): Check constraints. (build_new_function_call): Handle evaluating concepts. (joust): Check more_constrained. * class.c (add_method): Check equivalently_constrained. (build_clone): Copy constraints. (currently_open_class): Return tree. (resolve_address_of_overloaded_function): Check constraints. * constexpr.c (cxx_eval_constant_expression): Handle REQUIRES_EXPR. (potential_constant_expression_1): Likewise. * cp-objcp-common.c (cp_tree_size): Handle CONSTRAINT_INFO. (cp_common_init_ts): Handle WILDCARD_DECL and REQUIRES_EXPR. * cp-tree.def: Add CONSTRAINT_INFO, WILDCARD_DECL, REQUIRES_EXPR, SIMPLE_REQ, TYPE_REQ, COMPOUND_REQ, NESTED_REQ, PRED_CONSTR, EXPR_CONSTR, TYPE_CONSTR, ICONV_CONSTR, DEDUCT_CONSTR, EXCEPT_CONSTR, PARM_CONSTR, CONJ_CONSTR, DISJ_CONSTR. * cp-tree.h (struct tree_constraint_info, check_nonnull) (check_constraint_info, CI_TEMPLATE_REQS, CI_DECLARATOR_REQS) (CI_ASSOCIATED_CONSTRAINTS, CI_NORMALIZED_CONSTRAINTS) (CI_ASSUMPTIONS, TEMPLATE_PARMS_CONSTRAINTS) (TEMPLATE_PARM_CONSTRAINTS, COMPOUND_REQ_NOEXCEPT_P) (PLACEHOLDER_TYPE_CONSTRAINTS, PRED_CONSTR_EXPR, EXPR_CONSTR_EXPR) (TYPE_CONSTR_TYPE, ICONV_CONSTR_EXPR, ICONV_CONSTR_TYPE) (DEDUCT_CONSTR_EXPR, DEDUCT_CONSTR_PATTERN) (DEDUCT_CONSTR_PLACEHOLDER, EXCEPT_CONSTR_EXPR, PARM_CONSTR_PARMS) (PARM_CONSTR_OPERAND, CONSTRAINT_VAR_P, CONSTRAINED_PARM_CONCEPT) (CONSTRAINED_PARM_EXTRA_ARGS, CONSTRAINED_PARM_PROTOTYPE) (DECL_DECLARED_CONCEPT_P, WILDCARD_PACK_P, struct cp_unevaluated) (struct local_specialization_stack, enum auto_deduction_context) (variable_concept_p, concept_template_p) (struct deferring_access_check_sentinel): New. (enum cp_tree_node_structure_enum): Add TS_CP_CONSTRAINT_INFO. (union lang_tree_node): Add constraint_info field. (struct lang_decl_base): Add concept_p flag. (enum cp_decl_spec): Add ds_concept. (struct cp_declarator): Add requires_clause. * cxx-pretty-print.c (cxx_pretty_printer::primary_expression) (cxx_pretty_printer::expression): Handle REQUIRES_EXPR, TRAIT_EXPR, *_CONSTR. (pp_cxx_parameter_declaration_clause): Accept a chain of PARM_DECLs. (cxx_pretty_printer::declarator): Print requires-clause. (pp_cxx_template_declaration): Likewise. (pp_cxx_trait_expression): Handle CPTK_IS_SAME_AS. (pp_cxx_requires_clause, pp_cxx_requirement) (pp_cxx_requirement_list, pp_cxx_requirement_body) (pp_cxx_requires_expr, pp_cxx_simple_requirement) (pp_cxx_type_requirement, pp_cxx_compound_requirement) (pp_cxx_nested_requirement, pp_cxx_predicate_constraint) (pp_cxx_expression_constraint, pp_cxx_type_constraint) (pp_cxx_implicit_conversion_constraint) (pp_cxx_argument_deduction_constraint) (pp_cxx_exception_constraint, pp_cxx_parameterized_constraint) (pp_cxx_conjunction, pp_cxx_disjunction, pp_cxx_constraint): New. * cxx-pretty-print.h: Declare them. * decl.c (decls_match): Compare constraints. (duplicate_decls): Likewise. Remove constraints before freeing. (cxx_init_decl_processing): Call init_constraint_processing. (cp_finish_decl): Diagnose concept without initializer. (grokfndecl, grokvardecl): Handle concepts and constraints. (grokdeclarator): Handle concept, requires-clause. (grokparms): No longer static. (xref_tag_1): Check constraints. (finish_function): Call check_function_concept. (cp_tree_node_structure): Handle CONSTRAINT_INFO. (check_concept_refinement, is_concept_var, check_concept_fn): New. * decl2.c (check_classfn): Compare constraints. (mark_used): Don't instantiate concepts. * error.c (dump_template_decl): Print constraints. (dump_function_decl): Likewise. (dump_expr): Handle REQUIRES_EXPR, *_REQ, *_CONSTR. * lex.c (init_reswords): Set D_CXX_CONCEPTS. * method.c (implicitly_declare_fn): Copy constraints from inherited ctor. * parser.h (struct cp_parser): Add in_result_type_constraint_p and prevent_constrained_type_specifiers fields. * parser.c (make_call_declarator): Add requires_clause parm. (cp_parser_new): Clear prevent_constrained_type_specifiers. (cp_parser_primary_expression): Handle RID_IS_SAME_AS, RID_REQUIRES. (cp_parser_postfix_expression): Set prevent_constrained_type_specifiers. (cp_parser_trait_expr): Handle RID_IS_SAME_AS. (cp_parser_declaration): Handle concept introduction. (cp_parser_member_declaration): Likewise. (cp_parser_template_parameter): Handle constrained parameter. (cp_parser_type_parameter): Handle constraints. (cp_parser_decl_specifier_seq): Handle RID_CONCEPT. (cp_parser_template_id): Handle partial concept id. (cp_parser_type_name): Add overload that takes typename_keyword_p. Handle constrained parameter. (cp_parser_nonclass_name): Handle concept names. (cp_parser_alias_declaration): Handle constraints. (cp_parser_late_return_type_opt): Also handle requires-clause. (cp_parser_type_id_1): Handle deduction constraint. (cp_parser_parameter_declaration): Handle constrained parameters. (cp_parser_class_specifier_1): Handle constraints. (cp_parser_template_declaration_after_parameters): Split out from cp_parser_template_declaration_after_export. (cp_parser_single_declaration): Handle constraints. (synthesize_implicit_template_parm): Handle constraints. (cp_parser_maybe_concept_name, cp_parser_maybe_partial_concept_id) (cp_parser_introduction_list, get_id_declarator) (get_unqualified_id, is_constrained_parameter) (cp_parser_check_constrained_type_parm) (cp_parser_constrained_type_template_parm) (cp_parser_constrained_template_template_parm) (constrained_non_type_template_parm, finish_constrained_parameter) (declares_constrained_type_template_parameter) (declares_constrained_template_template_parameter) (check_type_concept, cp_parser_maybe_constrained_type_specifier) (cp_parser_maybe_concept_name, cp_parser_maybe_partial_concept_id) (cp_parser_requires_clause, cp_parser_requires_clause_opt) (cp_parser_requires_expression) (cp_parser_requirement_parameter_list, cp_parser_requirement_body) (cp_parser_requirement_list, cp_parser_requirement) (cp_parser_simple_requirement, cp_parser_type_requirement) (cp_parser_compound_requirement, cp_parser_nested_requirement) (cp_parser_template_introduction) (cp_parser_explicit_template_declaration) (get_concept_from_constraint): New. * pt.c (local_specialization_stack): Implement. (maybe_new_partial_specialization): New. (maybe_process_partial_specialization): Use it. (retrieve_local_specialization, register_local_specialization) (template_parm_to_arg, build_template_decl, extract_fnparm_pack) (tsubst_expr): No longer static. (spec_hasher::equal): Compare constraints. (determine_specialization): Handle constraints. (check_explicit_specialization): Handle concepts. (process_template_parm): Handle constraints. (end_template_parm_list): Add overload taking no arguments. (process_partial_specialization): Handle concepts and constraints. Register partial specializations of variable templates. (redeclare_class_template): Handle constraints. (convert_template_argument): Handle WILDCARD_DECL. Check is_compatible_template_arg. (coerce_template_parameter_pack): Handle wildcard packs. (coerce_template_parms): DR 1430 also applies to concepts. Add overloads taking fewer parameters. (lookup_template_class_1): Handle constraints. (lookup_template_variable): Concepts are always bool. (finish_template_variable): Handle concepts and constraints. (tsubst_friend_class): Handle constraints. (gen_elem_of_pack_expansion_instantiation): Handle constraints. (tsubst_pack_expansion): Handle local parameters. (tsubst_decl) [FUNCTION_DECL]: Handle constraints. (tsubst) [TEMPLATE_TYPE_PARM]: Handle deduction constraints. (tsubst_copy_and_build): Handle REQUIRES_EXPR. (more_specialized_fn, more_specialized_partial_spec): Check constraints. (more_specialized_inst): Split out from most_specialized_instantiation. (most_specialized_partial_spec): Check constraints. (instantiate_decl): Never instantiate a concept. (value_dependent_expression_p): Handle REQUIRES_EXPR, TYPE_REQ, variable concepts. (type_dependent_expression_p): Handle WILDCARD_DECL, REQUIRES_EXPR. (instantiation_dependent_r): Handle REQUIRES_EXPR and concepts. (do_auto_deduction): Add overload taking tsubst flags and context enum. Handle constraints. (get_template_for_ordering, most_constrained_function) (is_compatible_template_arg, convert_wildcard_argument) (struct constr_entry, struct constr_hasher, decl_constraints) (valid_constraints_p, get_constraints, set_constraints) (remove_constraints, init_constraint_processing): New. * ptree.c (cxx_print_xnode): Handle CONSTRAINT_INFO. * search.c (lookup_member): Do lookup in the open partial instantiation. * semantics.c (finish_template_template_parm): Handle constraints. (fixup_template_type): New. (finish_template_type): Call it. (trait_expr_value, finish_trait_expr): Handle CPTK_IS_SAME_AS. * tree.c (cp_tree_equal): Handle local parameters, CONSTRAINT_INFO. (cp_walk_subtrees): Handle REQUIRES_EXPR. * typeck.c (cp_build_function_call_vec): Check constraints. Co-Authored-By: Braden Obrzut <admin@maniacsvault.net> Co-Authored-By: Jason Merrill <jason@redhat.com> From-SVN: r226713
2015-08-07Makefile.def (libiconv): Define bootstrap=true.Yaakov Selkowitz10-678/+992
2015-08-06 Yaakov Selkowitz <yselkowi@redhat.com> * Makefile.def (libiconv): Define bootstrap=true. Mark pdf/html/info as missing. (configure-gcc): Depend on all-libiconv. (all-gcc): Ditto. (configure-libcpp): Ditto. (all-libcpp): Ditto. (configure-intl): Ditto. (all-intl): Ditto. * Makefile.in: Regenerate. intl/ * configure: Reflects renaming of configure.in to configure.ac libcpp/ * configure: Regenerate. gcc/ * configure.ac: Define LIBICONV_DEP with in-tree libiconv. * configure: Regenerate. From-SVN: r226712
2015-08-07Daily bump.GCC Administrator1-1/+1
From-SVN: r226705
2015-08-06Move one condition out of gfc_trans_scalar_assignMikael Morin5-23/+33
* trans.h (gfc_trans_scalar_assign): Remove fourth argument. * trans-expr.c (gfc_trans_scalar_assign): Merge fourth into sixth argument. (gfc_conv_subref_array_arg, gfc_trans_subarray_assign, gfc_trans_subcomponent_assign, gfc_trans_assignment_1): Update callers. * trans-array.c (gfc_conv_expr_descriptor): Ditto. * trans-stmt.c (forall_make_variable_temp, generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp, gfc_trans_where_assign, gfc_trans_where_3): Ditto. From-SVN: r226700
2015-08-06jit.dg/test-benchmark.c: add a summary of timingsDavid Malcolm2-3/+20
gcc/testsuite/ChangeLog: * jit.dg/test-benchmark.c (main): Record all elapsed times at each optimization level, and print a summary at the end. From-SVN: r226697
2015-08-06* runtime/compile_options.c (set_options): Fix typos.Francois-Xavier Coudert2-2/+6
From-SVN: r226686
2015-08-06re PR c++/66533 ([C++14] ICE: in dependent_type_p, at cp/pt.c:21073)Jason Merrill3-1/+9
PR c++/66533 * parser.c (cp_parser_primary_expression): Don't skip to the end of the statement if we're parsing tentatively. From-SVN: r226684
2015-08-06[AArch64] Improve TLS Descriptor pattern to release RTL loop IV optJiong Wang5-5/+75
The instruction sequences for preparing argument for TLS descriptor runtime resolver and the later function call to resolver can actually be hoisted out of the loop. Currently we can't because we have exposed the hard register X0 as destination of "set". While GCC's RTL data flow infrastructure will skip or do very conservative assumption when hard register involved in and thus some loop IV opportunities are missed. This patch add another "tlsdesc_small_pseudo_<mode>" pattern, and avoid expose x0 to gcc generic code. Generally, we define a new register class FIXED_R0 which only contains register 0, so the instruction sequences generated from the new add pattern is the same as tlsdesc_small_<mode>, while the operand 0 is wrapped as pseudo register that RTL IV opt can handle it. Ideally, we should allow operand 0 to be any pseudo register, but then we can't model the override of x0 caused by the function call which is hidded by the UNSPEC. So here, we restricting operand 0 to be x0, the override of x0 can be reflected to the gcc. 2015-08-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> Jiong Wang <jiong.wang@arm.com> gcc/ * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern. * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0. (REG_CLASS_NAMES): Likewise. (REG_CLASS_CONTENTS): Likewise. * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise. (aarch64_register_move_cost): Likewise. (aarch64_load_symref_appropriately): Invoke the new added pattern if possible. * config/aarch64/constraints.md (Uc0): New constraint. gcc/testsuite/ * gcc.target/aarch64/tlsdesc_hoist.c: New testcase. From-SVN: r226683
2015-08-06[AArch64] Tighten direct call pattern for sibcall to repair -fno-pltJiong Wang4-2/+32
2015-08-06 Jiong Wang <jiong.wang@arm.com> gcc/ * config/aarch64/constraints.md (Usf): Add the test of aarch64_is_noplt_call_p. gcc/testsuite/ * gcc.target/aarch64/noplt_3.c: New testcase. From-SVN: r226682
2015-08-06[AArch64] Tighten direct call pattern to repair -fno-pltJiong Wang7-2/+68
2015-08-06 Jiong Wang <jiong.wang@arm.com> gcc/ * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New declaration. * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function. * config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios. (call_symbol): Likewise. gcc/testsuite/ * gcc.target/aarch64/noplt_1.c: New testcase. * gcc.target/aarch64/noplt_2.c: Likewise. From-SVN: r226681
2015-08-06re PR c++/67130 (ICE: tree check: expected identifier_node, have ↵Jason Merrill5-1/+67
template_decl in write_unqualified_id, at cp/mangle.c:1218) PR c++/67130 PR c++/67131 PR c++/66260 * mangle.c (write_expression) [TEMPLATE_ID_EXPR]: Handle variable templates. * pt.c (tsubst_copy_and_build): Check for argument substitution failure. From-SVN: r226676
2015-08-06Vectorize mult expressions with power 2 constants via shift, for targets has ↵Venkataramanan Kumar6-1/+200
no vector multiplication support. 2015-08-06 Venkataramanan Kumar <Venkataramanan.kumar@amd.com> * tree-vect-patterns.c (vect_recog_mult_pattern): New function for vectorizing multiplication patterns. * tree-vectorizer.h: Adjust the number of patterns. 2015-08-06 Venkataramanan Kumar <Venkataramanan.kumar@amd.com> * gcc.dg/vect/vect-mult-pattern-1.c: New test. * gcc.dg/vect/vect-mult-pattern-2.c: New test. From-SVN: r226675
2015-08-06sse.md (*vec_concatv2df): Declare added alternatives as sselog type.Uros Bizjak2-1/+6
* config/i386/sse.md (*vec_concatv2df): Declare added alternatives as sselog type. From-SVN: r226674
2015-08-06S/390: Fix dwarf reg size table for -m31 -mzarch.Andreas Krebbel6-0/+77
gcc/ChangeLog: * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for all GPRs. gcc/testsuite/ChangeLog: * gcc.target/s390/dwarfregtable-1.c: New test. * gcc.target/s390/dwarfregtable-2.c: New test. * gcc.target/s390/dwarfregtable-3.c: New test. From-SVN: r226673
2015-08-06S/390: Clobber VRs in __builtin_tbegin.Andreas Krebbel5-1/+81
gcc/ChangeLog: * config/s390/s390.c (s390_expand_tbegin): Expand either tbegin_1_z13 or tbegin_1 depending on VX flag. * config/s390/s390.md ("tbegin_1_z13"): New expander. gcc/testsuite/ChangeLog: * gcc.target/s390/htm-builtins-z13-1.c: New test. From-SVN: r226672
2015-08-06S/390: Doc: Add documentation for -mhtm, -mvx, and -mzvector.Andreas Krebbel3-1/+49
gcc/ChangeLog: * config/s390/s390.opt: Clarify description for -mzvector * doc/invoke.texi: Add documentation for -mhtm, -mvx, and -mzvector. From-SVN: r226671
2015-08-06re PR fortran/64022 ([F2003][IEEE] ieee_support_flag does not handle kind=10 ↵Francois-Xavier Coudert3-0/+308
and kind=16 REAL variables) PR fortran/64022 * gfortran.dg/ieee/large_2.f90: New test. * gfortran.dg/ieee/large_3.F90: New test. From-SVN: r226670
2015-08-06gimple.h (gimple_call_set_fn): Access op member directly.Richard Biener2-36/+67
2015-08-06 Richard Biener <rguenther@suse.de> * gimple.h (gimple_call_set_fn): Access op member directly. (gimple_call_chain_ptr): Likewise. (gimple_call_set_chain): Likewise. (gimple_cond_lhs_ptr): Likewise. (gimple_cond_set_lhs): Likewise. (gimple_cond_rhs_ptr): Likewise. (gimple_cond_set_rhs): Likewise. (gimple_cond_true_label): Likewise. (gimple_cond_set_true_label): Likewise. (gimple_cond_set_false_label): Likewise. (gimple_cond_false_label): Likewise. (gimple_label_label): Likewise. (gimple_label_set_label): Likewise. (gimple_goto_set_dest): Likewise. (gimple_asm_input_op): Likewise. (gimple_asm_input_op_ptr): Likewise. (gimple_asm_set_input_op): Likewise. (gimple_asm_output_op): Likewise. (gimple_asm_output_op_ptr): Likewise. (gimple_asm_set_output_op): Likewise. (gimple_asm_clobber_op): Likewise. (gimple_asm_set_clobber_op): Likewise. (gimple_asm_label_op): Likewise. (gimple_asm_set_label_op): Likewise. (gimple_switch_index): Likewise. (gimple_switch_index_ptr): Likewise. (gimple_return_retval_ptr): Likewise. (gimple_return_retval): Likewise. (gimple_return_set_retval): Likewise. (gimple_switch_set_index): Likewise. Remove superfluous GIMPLE_CHECK. (gimple_switch_label): Likewise. (gimple_switch_set_label): Likewise. From-SVN: r226669
2015-08-06gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify bool comparison ↵Richard Biener2-14/+11
canonicalization and restrict to integers. 2015-08-06 Richard Biener <rguenther@suse.de> * gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify bool comparison canonicalization and restrict to integers. From-SVN: r226668
2015-08-06re PR fortran/64022 ([F2003][IEEE] ieee_support_flag does not handle kind=10 ↵Francois-Xavier Coudert2-2/+10
and kind=16 REAL variables) PR fortran/64022 * gfortran.dg/ieee/large_1.f90: Adjust test. From-SVN: r226665
2015-08-05pt.c (determine_specialization): Print candidates after 'no match' error.Jason Merrill3-0/+10
* pt.c (determine_specialization): Print candidates after 'no match' error. From-SVN: r226653
2015-08-05decl.c (cp_finish_decl): Tidy.Jason Merrill5-89/+29
* decl.c (cp_finish_decl): Tidy. * typeck.c (finish_class_member_access_expr): Use type_dependent_expression_p. * semantics.c (finish_id_expression): Use type_dependent_expression_p. Don't build_qualified_name for a decl in non-dependent scope. * pt.c (type_dependent_expression_p): A TEMPLATE_ID_EXPR of an identifier is dependent. Remove variable_template_p check. From-SVN: r226652
2015-08-06Daily bump.GCC Administrator1-1/+1
From-SVN: r226651
2015-08-05coretypes.h (enum symbol_visibility): Relocate here.Andrew MacLeod4-24/+16
2015-08-05 Andrew MacLeod <amacleod@redhat.com> * coretypes.h (enum symbol_visibility): Relocate here. * flag-types.h (enum symbol_visibility): Remove. * tree-core.h (enum symbol_visibility): Remove. From-SVN: r226648
2015-08-05constexpr.cc: Remove redundant -save-temps option.Nikolai Bozhenov7-6/+16
2015-08-05 Nikolai Bozhenov <n.bozhenov@samsung.com> * testsuite/20_util/enable_shared_from_this/cons/constexpr.cc: Remove redundant -save-temps option. * testsuite/20_util/shared_ptr/cons/constexpr.cc: Likewise. * testsuite/20_util/unique_ptr/cons/constexpr.cc: Likewise. * testsuite/20_util/weak_ptr/cons/constexpr.cc: Likewise. * testsuite/30_threads/future/cons/constexpr.cc: Likewise. * testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise. From-SVN: r226647
2015-08-05re PR go/66870 (split stack issues on ppc64le and ppc64)Lynn Boger2-4/+20
2015-08-15 Lynn Boger <laboger@linux.vnet.ibm.com> PR target/66870 * gcc/config/rs6000/rs6000.c (rs6000_emit_prologue): Check for no_split_stack function attribute along with flag_split_stack. (rs6000_expand_split_stack_prologue): Likewise. From-SVN: r226643
2015-08-05re PR c++/66260 ([C++14] Failure to compile variable template with ↵Jason Merrill8-6/+68
recursively defined partial specialization) PR c++/66260 PR c++/66596 PR c++/66649 PR c++/66923 * pt.c (lookup_template_variable): Use NULL_TREE for type. (instantiate_template_1): Also set DECL_TI_ARGS based on the immediate parent. (tsubst_copy_and_build) [TEMPLATE_ID_EXPR]: Handle variable templates. (finish_template_variable): Add complain parm. * cp-tree.h: Adjust. From-SVN: r226642
2015-08-05re PR c++/65195 (Variable template cannot be used as a function)Jason Merrill4-0/+40
PR c++/65195 PR c++/66619 * semantics.c (finish_id_expression): Call convert_from_reference for variable template. From-SVN: r226641
2015-08-05re PR c/16351 (NULL dereference warnings)Manuel López-Ibáñez15-49/+222
gcc/ChangeLog: 2015-08-05 Manuel López-Ibáñez <manu@gcc.gnu.org> Jeff Law <law@redhat.com> PR c/16351 * doc/invoke.texi (Wnull-dereference): New. * tree-vrp.c (infer_value_range): Update call to infer_nonnull_range. * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour): Warn for potential NULL dereferences. (find_explicit_erroneous_behaviour): Warn for NULL dereferences. * ubsan.c (instrument_nonnull_arg): Call infer_nonnull_range_by_attribute. (instrument_nonnull_return): Likewise. * common.opt (Wnull-dereference); New. * gimple.c (infer_nonnull_range): Remove bool arguments. (infer_nonnull_range_by_dereference): New. (infer_nonnull_range_by_attribute): New. * gimple.h: Update declarations. gcc/testsuite/ChangeLog: 2015-08-05 Manuel López-Ibáñez <manu@gcc.gnu.org> Jeff Law <law@redhat.com> PR c/16351 * gcc.dg/tree-ssa/isolate-2.c: Close comment. * gcc.dg/tree-ssa/isolate-4.c: Likewise. * gcc.dg/tree-ssa/wnull-dereference.c: New test. * gcc.dg/tree-ssa/isolate-1.c: Test warnings with -Wnull-dereference. * gcc.dg/tree-ssa/isolate-3.c: Likewise. * gcc.dg/tree-ssa/isolate-5.c: Likewise. Co-Authored-By: Jeff Law <law@redhat.com> From-SVN: r226640
2015-08-05gensupport.c (sequence_num): Replace with...Richard Sandiford3-91/+78
gcc/ * gensupport.c (sequence_num): Replace with... (insn_sequence_num, split_sequence_num, peephole2_sequence_num): ...these new variables. (init_rtx_reader_args_cb): Update accordingly. (get_num_code_insns): Likewise. (read_md_rtx): Rework to use a while loop and get_c_test. Use the new counters. Remove redundant DEFINE_SUBST case. * genoutput.c (gen_split): Delete. (main): Don't call it. From-SVN: r226635
2015-08-05gensupport.h (get_c_test): Declare.Richard Sandiford5-26/+49
gcc/ * gensupport.h (get_c_test): Declare. * gensupport.c (get_c_test): New function. * genconditions.c (main): Use it. * genrecog.c (validate_pattern): Likewise. (match_pattern_1): Likewise. Remove c_test argument. (match_pattern): Update accordingly and remove c_test argument. (main): Update accordingly. From-SVN: r226634
2015-08-05gensupport.h (get_num_insn_codes): Declare.Richard Sandiford5-15/+27
gcc/ * gensupport.h (get_num_insn_codes): Declare. * gensupport.c (get_num_insn_codes): New function. * genattrtab.c (optimize_attrs): Rename max_insn_code to num_insn_codes. (main): Likewise. Use get_num_insn_codes. * gencodes.c (main): Remove "last" and use get_num_insn_codes. From-SVN: r226633
2015-08-05re PR middle-end/66311 (Problems with some integer(16) values)Richard Sandiford4-3/+81
gcc/ PR middle-end/66311 * wide-int.cc (wi::from_mpz): Make sure that absolute mpz value is zero- rather than sign-extended. gcc/testsuite/ 2015-08-05 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> PR middle-end/66311 * gfortran.dg/pr66311.f90: New file. From-SVN: r226632
2015-08-05target-insns.def (can_extend): Delete.Richard Sandiford2-1/+4
gcc/ * target-insns.def (can_extend): Delete. From-SVN: r226631
2015-08-05re PR tree-optimization/67121 (wrong code at -O3 on x86_64-linux-gnu)Richard Biener4-2/+59
2015-08-05 Richard Biener <rguenther@suse.de> PR tree-optimization/67121 * tree-if-conv.c (combine_blocks): Clear range-info produced by stmts no longer executed conditionally. * gcc.dg/torture/pr67121.c: New testcase. From-SVN: r226630
2015-08-05gcc * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimizationNick Clifton6-7/+175
to allow identical far pointers to remain. tests * gcc.target/rl78: New directory. * gcc.target/rl78/rl78.exp: New file: Test driver. * gcc.target/rl78/test_addm3.c: New file: Test adds. From-SVN: r226624
2015-08-05re PR middle-end/67120 (wrong code for volatile pointers at -O1 and above on ↵Richard Biener4-3/+31
x86_64-linux-gnu) 2015-08-05 Richard Biener <rguenther@suse.de> PR middle-end/67120 * match.pd: Compare address bases with == if they are decls or SSA names, not operand_equal_p. Otherwise fail. * gcc.dg/torture/pr67120.c: New testcase. From-SVN: r226623
2015-08-05re PR fortran/52846 ([F2008] Support submodules)Paul Thomas11-54/+309
2015-08-05 Paul Thomas <pault@gcc.gnu.org> PR fortran/52846 * module.c (check_access): Return true if new static flag 'dump_smod' is true.. (gfc_dump_module): Rename original 'dump_module' and call from new version. Use 'dump_smod' rather than the stack state to determine if a submodule is being processed. The new version of this procedure sets 'dump_smod' depending on the stack state and then writes both the mod and smod files if a module is being processed or just the smod for a submodule. (gfc_use_module): Eliminate the check for module_name and submodule_name being the same. * trans-decl.c (gfc_finish_var_decl, gfc_build_qualified_array, get_proc_pointer_decl): Set TREE_PUBLIC unconditionally and use the conditions to set DECL_VISIBILITY as hidden and to set as true DECL_VISIBILITY_SPECIFIED. 2015-08-05 Paul Thomas <pault@gcc.gnu.org> PR fortran/52846 * lib/fortran-modules.exp: Call cleanup-submodules from cleanup-modules. * gfortran.dg/public_private_module_2.f90: Add two XFAILS to cover the cases where private entities are no longer optimized away. * gfortran.dg/public_private_module_6.f90: Add an XFAIL for the same reason. * gfortran.dg/submodule_1.f08: Change cleanup module names. * gfortran.dg/submodule_5.f08: The same. * gfortran.dg/submodule_9.f08: The same. * gfortran.dg/submodule_10.f08: New test From-SVN: r226622
2015-08-05re PR c++/66595 ([C++14] ICE in partial specialization template variables)Paolo Carlini2-0/+10
2015-08-05 Paolo Carlini <paolo.carlini@oracle.com> PR c++/66595 * g++.dg/cpp1y/var-templ35.C: New. From-SVN: r226617
2015-08-05re PR tree-optimization/67055 (Segmentation fault in ↵Richard Biener4-0/+58
fold_builtin_alloca_with_align in tree-ssa-ccp.c) 2015-08-05 Richard Biener <rguenther@suse.de> PR tree-optimization/67055 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle NULL gimple_block. * g++.dg/torture/pr67055.C: New testcase. From-SVN: r226616
2015-08-05Disable AVX-512VL insns for scalar mode operands on -march=knl.Kirill Yukhin3-14/+32
gcc/ * config/i386/i386.md (define_attr "isa"): Addd avx512vl and noavx512vl. (define_attr "enabled"): Handle avx521vl and noavx512vl. * config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split AVX-512 alternative out of SSE. (define_insn "*vec_concatv2df"): Ditto. From-SVN: r226612
2015-08-05Merge SSE and AVX ptest patterns.Kirill Yukhin3-25/+39
gcc/ * config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into CODE_FOR_avx_ptestv4di. * config/i386/sse.md (define_mode_iterator V_AVX): New. (define_mode_attr sse4_1): Extend to other 128/256-bit modes. (define_insn "avx_ptest256"): Merge this ... (define_insn "sse4_1_ptest"): And this ... (define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator. From-SVN: r226611
2015-08-05re PR tree-optimization/67109 (ICE at -O3 on x86_64-linux-gnu in ↵Richard Biener5-7/+85
vect_analyze_slp_instance, at tree-vect-slp.c:1793) 2015-08-05 Richard Biener <rguenther@suse.de> PR tree-optimization/67109 * tree-vect-data-refs.c (vect_analyze_group_access_1): Check against too big groups. Print whether this is a load or store group. Rename from ... (vect_analyze_group_access): ... this which is now a wrapper dissolving an invalid group. (vect_analyze_data_ref_accesses): Print whether this is a load or store group. * gcc.dg/torture/pr67109.c: New testcase. * gcc.dg/vect/vect-119.c: Adjust. From-SVN: r226610
2015-08-05re PR c/67107 (ICE: SIGSEGV in tree_class_check with -frounding-math ↵Richard Biener4-2/+20
-funsafe-math-optimizations) 2015-08-05 Richard Biener <rguenther@suse.de> PR middle-end/67107 * match.pd: Guard const_binop result checking against NULL_TREE result. * gcc.dg/pr67107.c: New testcase. From-SVN: r226609
2015-08-05cse.c (cse_insn): Restoring old behaviour for src_eqv when dest and value in ↵Kugan Vivekanandarajah2-4/+11
the REG_EQUAL are... gcc/ChangeLog: 2015-08-05 Kugan Vivekanandarajah <kuganv@linaro.org> * cse.c (cse_insn): Restoring old behaviour for src_eqv when dest and value in the REG_EQUAL are same and dest is STRICT_LOW_PART. From-SVN: r226606
2015-08-05Daily bump.GCC Administrator1-1/+1
From-SVN: r226601
2015-08-04compiler: Verify pointer type's underlying type.Ian Lance Taylor2-1/+5
Fixes golang/go#11547. Reviewed-on: https://go-review.googlesource.com/13031 From-SVN: r226598
2015-08-04compiler: Use context to determine types of complex expressions.Ian Lance Taylor2-4/+3
When determining the type of a complex expression, it is important to recognize cases where a complex value can be represented as a real number. Fixes golang/go#11572. Reviewed-on: https://go-review.googlesource.com/12541 From-SVN: r226596
2015-08-04[MOXIE] Hookize PRINT_OPERAND and PRINT_OPERAND_ADDRESSAnatoly Sokolov4-10/+17
From-SVN: r226594
2015-08-04re PR c++/66197 (c++1z generic function wrong type for auto)Paolo Carlini3-1/+27
2015-08-04 Paolo Carlini <paolo.carlini@oracle.com> PR c++/66197 * g++.dg/cpp1z/abbrev2.C: New. 2015-08-04 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/cpp1z/static_assert-nomsg.C: Fix DejaGnu directive. From-SVN: r226591