1. 10 Mar, 2007 20 commits
    • Fix PR number. · ed574fe9
      From-SVN: r122804
      Mark Mitchell committed
    • re PR target/20924 (inline float divide does not set correct fpu status flags) · 222725d0
      	PR c++/20924
      	* tree.c (walk_type_fields): Recurse into the element type of
      	ARRAY_TYPEs if there is a pointer set.
      
      	PR c++/20924
      	* g++.dg/template/array18.C: New test.
      
      From-SVN: r122801
      Mark Mitchell committed
    • c-common.c (warn_logical_operator): Fix condition. · 89132ebc
      2007-03-10  Dirk Mueller  <dmueller@suse.de>
      
             * c-common.c (warn_logical_operator): Fix condition.
      
      From-SVN: r122800
      Dirk Mueller committed
    • Wlogical-op-1.c: Remove duplicated part. · 4cdffe3d
      2007-03-10  Dirk Mueller  <dmueller@suse.de>
      
             * gcc.dg/Wlogical-op-1.c: Remove duplicated part.
             * g++.dg/warn/Wlogical-op-1.C: Remove duplicated part.
      
      From-SVN: r122799
      Dirk Mueller committed
    • re PR c/17946 (wanted: warning for "a && MASK" when "a & MASK" was probably intended) · 36be7cc9
      2007-03-10  Dirk Mueller  <dmueller@suse.de>
      
             PR c++/17946
             * gcc.dg/Wlogical-op-1.c: Remove duplicated part.
             * g++.dg/warn/Wlogical-op-1.C: Remove duplicated part.
      
      From-SVN: r122798
      Dirk Mueller committed
    • Fix typo in ChangeLog entry · df990293
      From-SVN: r122797
      Tobias Schlüter committed
    • darwin.h (DARWIN_MINVERSION_SPEC): Add missing quotation mark. · 4f648002
      * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missing
      quotation mark.
      * config/i386/darwin.c (machopic_select_section): Remove
      superfluous argument in call to categorize_decl_for_section.
      Remove unused variable shlib.
      
      From-SVN: r122796
      Tobias Schlüter committed
    • configure.ac (glibc_header_dir): Set using with_build_sysroot if defined. · c9ecbf86
      	* configure.ac (glibc_header_dir): Set using with_build_sysroot if
      	defined.
      	* configure: Regenerate.
      
      From-SVN: r122795
      Joseph Myers committed
    • i386.md (UNSPEC_C2_FLAG): New constant. · 79cd820a
              * config/i386/i386.md (UNSPEC_C2_FLAG): New constant.
              (fpremxf4_i387, fprem1xf4_i387): Use UNSPEC_C2_FLAG.
              (fmodxf3, fmod<mode>3, remainderxf3, remainder<mode>3):
              Add LABEL_NUSES to emmitted label.
              * config/i386/i386.c (ix86_emit_fp_unordered_jump): Add
              branch probability value to emmitted jump insn.
              * reg-stack.c (subst_stack_regs_pat)[UNSPEC]: Handle UNSPEC_C2_FLAG.
              Do not check life information and do not re-arrange input operands
              for UNSPEC_FSCALE_EXP, UNSPEC_FPREM_U and UNSPEC_FPREM1_U.
      
      From-SVN: r122793
      Uros Bizjak committed
    • sh.c (sh_insn_length_adjustment): Adjust for the change of decode_asm_operands. · 343d66ad
      	* config/sh/sh.c (sh_insn_length_adjustment): Adjust for
      	the change of decode_asm_operands.
      
      From-SVN: r122792
      Kaz Kojima committed
    • mode-switching.c (create_pre_exit): Skip blockage insn. · 07288ab0
      	* mode-switching.c (create_pre_exit): Skip blockage insn.
      
      From-SVN: r122791
      Kaz Kojima committed
    • Makefile.in: Regenerate. · 9eeea761
      2007-03-09  Douglas Gregor  <doug.gregor@gmail.com>
      
      	* include/Makefile.in: Regenerate.
      	* include/tr1/mu_iterate.h: Remove.
      	* include/tr1/tuple (_Tuple_impl): New.
      	(tuple): Make variadic, re-implement as shell over _Tuple_impl.
      	(0-element tuple): Basis case.
      	(2-element tuple): Handle pair methods.
      	(__get_helper): Remove.
      	(tuple_element): Reimplement with variadic templates.
      	(tuple_size): Ditto.
      	(get): Ditto.
      	(operator==): Use variadic templates in the signature.
      	(operator<): Ditto.
      	(operator!=): Ditto.
      	(operator>): Ditto.
      	(operator<=): Ditto.
      	(operator>=): Ditto.
      	(__stripped_tuple_type): Remove; we've inlined its behavior.
      	(make_tuple): Reimplement with variadic templates.
      	(tie): Ditto.
      	* include/tr1/tuple_iterate.h: Remove.
      	* include/tr1/bind_repeat.h: Remove.
      	* include/tr1/ref_wrap_iterate.h: Remove.
      	* include/tr1/bind_iterate.h: Remove.
      	* include/tr1/functional (_Weak_result_type): Add variadic
      	partial specializations.
      	(result_of): Ditto.
      	(__invoke): Reimplement using variadic templates.
      	(reference_wrapper): Reimplement operator() with variadic
      	templates.
      	(_Maybe_unary_or_binary_function): New.
      	(_Mem_fn): Implement for member function pointers using variadic
      	templates.
      	(placeholders): Define 30 placeholders.
      	(_Index_tuple): New.
      	(_Build_index_tuple): New.
      	(_No_tuple_element): New.
      	(_Safe_tuple_element_impl): New.
      	(_Safe_tuple_element): New.
      	(_Mu): Reimplement with variadic templates, use
      	_Safe_tuple_element instead of tuple_element.
      	(_Bind): Reimplement with variadic templates and tuples.
      	(_Bind_result): Ditto.
      	(bind): Reimplement with variadic templates.
      	(_Function_handler): Ditto.
      	(function): Ditto.
      	* include/tr1/functional_iterate.h: Remove.
      	* include/tr1/repeat.h: Remove.
      	* include/Makefile.am: Don't install removed headers.
      
      From-SVN: r122790
      Douglas Gregor committed
    • re PR c++/20599 (variadic template support) · d6a85c8d
      2007-03-09  Douglas Gregor  <doug.gregor@gmail.com>
      
      	PR c++/20599
      	* g++.dg/cpp0x/variadic-bind.C: New.
      	* g++.dg/cpp0x/variadic-function.C: New.
      	* g++.dg/cpp0x/variadic-mem_fn.C: New.
      	* g++.dg/cpp0x/variadic-tuple.C: New.
      	* g++.dg/cpp0x/variadic1.C: New.
      	* g++.dg/cpp0x/variadic2.C: New.
      	* g++.dg/cpp0x/variadic3.C: New.
      	* g++.dg/cpp0x/variadic4.C: New.
      	* g++.dg/cpp0x/variadic5.C: New.
      	* g++.dg/cpp0x/variadic6.C: New.
      	* g++.dg/cpp0x/variadic7.C: New.
      	* g++.dg/cpp0x/variadic8.C: New.
      	* g++.dg/cpp0x/variadic9.C: New.
      	* g++.dg/cpp0x/variadic10.C: New.
      	* g++.dg/cpp0x/variadic11.C: New.
      	* g++.dg/cpp0x/variadic12.C: New.
      	* g++.dg/cpp0x/variadic13.C: New.
      	* g++.dg/cpp0x/variadic14.C: New.
      	* g++.dg/cpp0x/variadic15.C: New.
      	* g++.dg/cpp0x/variadic16.C: New.
      	* g++.dg/cpp0x/variadic17.C: New.
      	* g++.dg/cpp0x/variadic18.C: New.
      	* g++.dg/cpp0x/variadic19.C: New.
      	* g++.dg/cpp0x/variadic20.C: New.
      	* g++.dg/cpp0x/variadic21.C: New.
      	* g++.dg/cpp0x/variadic22.C: New.
      	* g++.dg/cpp0x/variadic23.C: New.
      	* g++.dg/cpp0x/variadic24.C: New.
      	* g++.dg/cpp0x/variadic25.C: New.
      	* g++.dg/cpp0x/variadic26.C: New.
      	* g++.dg/cpp0x/variadic27.C: New.
      	* g++.dg/cpp0x/variadic28.C: New.
      	* g++.dg/cpp0x/variadic29.C: New.
      	* g++.dg/cpp0x/variadic30.C: New.
      	* g++.dg/cpp0x/variadic31.C: New.
      	* g++.dg/cpp0x/variadic32.C: New.
      	* g++.dg/cpp0x/variadic33.C: New.
      	* g++.dg/cpp0x/variadic34.C: New.
      	* g++.dg/cpp0x/variadic35.C: New.
      	* g++.dg/cpp0x/variadic36.C: New.
      	* g++.dg/cpp0x/variadic37.C: New.
      	* g++.dg/cpp0x/variadic38.C: New.
      	* g++.dg/cpp0x/variadic39.C: New.
      	* g++.dg/cpp0x/variadic40.C: New.
      	* g++.dg/cpp0x/variadic41.C: New.
      	* g++.dg/cpp0x/variadic42.C: New.
      	* g++.dg/cpp0x/variadic43.C: New.
      	* g++.dg/cpp0x/variadic44.C: New.
      	* g++.dg/cpp0x/variadic45.C: New.
      	* g++.dg/cpp0x/variadic46.C: New.
      	* g++.dg/cpp0x/variadic47.C: New.
      	* g++.dg/cpp0x/variadic48.C: New.
      	* g++.dg/cpp0x/variadic49.C: New.
      	* g++.dg/cpp0x/variadic50.C: New.
      	* g++.dg/cpp0x/variadic51.C: New.
      	* g++.dg/cpp0x/variadic52.C: New.
      	* g++.dg/cpp0x/variadic53.C: New.
      	* g++.dg/cpp0x/variadic54.C: New.
      	* g++.dg/cpp0x/variadic55.C: New.
      	* g++.dg/cpp0x/variadic56.C: New.
      	* g++.dg/cpp0x/variadic57.C: New.
      	* g++.dg/cpp0x/variadic58.C: New.
      	* g++.dg/cpp0x/variadic59.C: New.
              * g++.dg/cpp0x/variadic60.C : New.
              * g++.dg/cpp0x/variadic61.C : New.
              * g++.dg/cpp0x/variadic62.C : New.
              * g++.dg/cpp0x/variadic63.C : New.
              * g++.dg/cpp0x/variadic64.C : New.
              * g++.dg/cpp0x/variadic65.C : New.
              * g++.dg/cpp0x/variadic66.C : New.
              * g++.dg/cpp0x/variadic67.C : New.
              * g++.dg/cpp0x/variadic68.C : New.	
              * g++.dg/cpp0x/variadic69.C : New.
      	* g++.dg/cpp0x/variadic70.C : New.
      	* g++.dg/cpp0x/variadic71.C : New.
      	* g++.dg/cpp0x/variadic72.C : New.
      	* g++.dg/cpp0x/variadic73.C : New.
      	* g++.dg/cpp0x/variadic74.C : New.
      	* g++.dg/cpp0x/variadic75.C : New.
      	* g++.dg/cpp0x/variadic-ex1.C : New.
      	* g++.dg/cpp0x/variadic-ex2.C : New.
      	* g++.dg/cpp0x/variadic-ex3.C : New.
      	* g++.dg/cpp0x/variadic-ex4.C : New.
      	* g++.dg/cpp0x/variadic-ex5.C : New.
      	* g++.dg/cpp0x/variadic-ex6.C : New.
      	* g++.dg/cpp0x/variadic-ex7.C : New.
      	* g++.dg/cpp0x/variadic-ex8.C : New.
      	* g++.dg/cpp0x/variadic-ex9.C : New.
      	* g++.dg/cpp0x/variadic-ex10.C : New.
      	* g++.dg/cpp0x/variadic-ex11.C : New.
      	* g++.dg/cpp0x/variadic-ex12.C : New.
      	* g++.dg/cpp0x/variadic-ex13.C : New.
      	* g++.dg/cpp0x/variadic-ex14.C : New.
      
      From-SVN: r122789
      Douglas Gregor committed
    • re PR c++/20599 (variadic template support) · 5d80a306
      2007-03-09  Douglas Gregor  <doug.gregor@gmail.com>
      
      	PR c++/20599
      	* typeck.c (check_return_expr): Check for bare parameter packs.
      	(comptypes): Compare template parameter packs and
      	type pack expansions.
      	* decl.c (grokdeclarator): Deal with the declaration of function
      	parameter packs.
      	(grokparms): Verify that the (optional) function parameter pack is
      	at the end of the parameter list.
      	(xref_basetypes): Handle pack expansions in the base class.
      	(cp_tree_node_structure): Handle ARGUMENT_PACK_SELECT.
      	* cp-tree.def (TYPE_ARGUMENT_PACK): New.
      	(NONTYPE_ARGUMENT_PACK): New.
      	(TYPE_PACK_EXPANSION): New.
      	(EXPR_PACK_EXPANSION): New.
      	(ARGUMENT_PACK_SELECT): New.
      	* cp-objcp-common.c (cp_tree_size): Compute size of
      	(NON)TYPE_ARGUMENT_PACK, (TYPE|EXPR)_PACK_EXPANSION, and
      	ARGUMENT_PACK_SELECT.
      	* error.c (dump_template_argument): Print template argument packs.
      	(dump_template_argument_list): Ditto.
      	(dump_template_parameter): Dump `...' for template type parameter
      	packs.
      	(dump_type): Dump TYPE_PACK_EXPANSION nodes.
      	(dump_parameters): Print function parameter packs.
      	(dump_template_parms): Print template argument packs.
      	(dump_expr): Dump EXPR_PACK_EXPANSION nodes.
      	(maybe_warn_variadic_templates): New.
      	* operators.def: Add ellipsis operator for EXPR_PACK_EXPANSION.
      	* tree.c (cp_walk_subtrees): Walk BASELINK, TYPE_ARGUMENT_PACK,
      	NONTYPE_ARGUMENT_PACK, TYPE_PACK_EXPANSION, EXPR_PACK_EXPANSION,
      	CAST_EXPR. 
      	* mangle.c (write_type): Mangle TYPE_PACK_EXPANSION.
      	(write_template_arg): Write argument packs as separate arguments.
      	* cp-tree.h (struct template_parm_index_s): Add flag that
      	indicates that the template parameter is actually a parameter
      	pack.
      	(struct tree_argument_pack_select): New.
      	(enum cp_tree_node_structure_enum): Add TS_CP_ARGUMENT_PACK_SELECT.
      	(union lang_tree_node): Add argument_pack_select.
      	(FUNCTION_PARAMETER_PACK_P): New.
      	(PACK_EXPANSION_P): New.
      	(PACK_EXPANSION_PATTERN): New.
      	(SET_PACK_EXPANSION_PATTERN): New.
      	(PACK_EXPANSION_PARAMETER_PACKS): New.
      	(ARGUMENT_PACK_P): New.
      	(ARGUMENT_PACK_ARGS): New.
      	(SET_ARGUMENT_PACK_ARGS): New.
      	(ARGUMENT_PACK_INCOMPLETE_P): New.
      	(ARGUMENT_PACK_EXPLICIT_ARGS): New.
      	(TEMPLATE_PARM_PARAMETER_PACK): New.
      	(TEMPLATE_TYPE_PARAMETER_PACK): New.
      	(ARGUMENT_PACK_SELECT_FROM_PACK): New.
      	(ARGUMENT_PACK_SELECT_INDEX): New.
      	(ARGUMENT_PACK_SELECT_ARG): New.
      	(struct cp_declarator): Add parameter_pack_p flag.
      	(maybe_warn_variadic_templates): Declare.
      	(process_template_parm): Add bool parameter IS_PARAMETER_PACK, to
      	indicate a template parameter pack. 
      	(uses_parameter_packs): Declare.
      	(template_parameter_pack_p): Declare.
      	(template_parms_variadic_p): Declare.
      	(make_pack_expansion): Declare.
      	(check_for_bare_parameter_packs): Declare.
      	* cxx-pretty-print.c (pp_cxx_unary_expression): Print
      	sizeof... expressions. 
      	(pp_cxx_expression): Print pack expansions and non-type argument
      	packs.
      	(pp_cxx_exception_specification): Print pack expansions. 
      	(pp_cxx_direct_declarator): Print ellipsis for parameter packs.
      	(pp_cxx_ctor_initializer): Print pack expansions.
      	(pp_cxx_type_id): Print pack expansions.
      	(pp_cxx_template_argument_list): Print argument packs.
      	(pp_cxx_template_parameter): Print ellipsis for template parameter
      	packs.
      	* pt.c (comp_template_parms): Compare template parameter packs.
      	(template_parameter_pack_p): New.
      	(template_parms_variadic_p): New.
      	(template_args_variadic_p): New.
      	(make_ith_pack_parameter_name): New.
      	(struct find_parameter_pack_data): New.
      	(find_parameter_packs_r): New.
      	(uses_parameter_packs): New.
      	(make_pack_expansion): New.
      	(check_for_bare_parameter_packs): New.
      	(expand_template_argument_pack): New.
      	(reduce_template_parm_level): Propagate parameter pack flag.
      	(process_template_parm): Add is_parameter_pack parameter to state
      	when the parameter is actually a parameter pack. Create template
      	parameter packs when is_parameter_pack is true.
      	(current_template_args): The argument for a template parameter
      	pack is an argument pack containing a single pack expansion.
      	(process_partial_specialization): When checking that non-type
      	argument expressions do not involve template parameters, loop over
      	the arguments in argument packs separately.
      	(push_template_decl_real): Check that the type of the declaration
      	does not have any bare parameter packs. Check that primary
      	templates have no more than one parameter pack, and that it comes
      	at the end of the template parameter list.
      	(convert_template_argument): Handle coercions for pack expansion
      	expressions by coercing the pattern then rebuilding the expansion.
      	(coerce_template_parms): When coercing the arguments for a
      	variadic template, pack "extra" arguments into an argument pack.
      	(coerce_template_template_parms): Cannot coerce between parameter
      	packs and non-pack parameters.
      	(template_args_equal): Compare PACK_EXPANSION_P expressions.
      	(comp_template_args): Expand all template arguments packs before
      	comparing template argument lists.
      	(mangle_class_name_for_template): Make argument packs as separate
      	template arguments.
      	(for_each_template_parm_r): No need to handle BASELINK. 
      	(instantiate_class_template): Handle pack expansions in the base
      	class list.
      	(tsubst_pack_expansion): New.
      	(tsubst_template_args): Handle substitutions of argument packs and
      	pack expansion into template argument lists.
      	(tsubst_decl): Expand function parameter packs into separate
      	function parameters.
      	(tsubst_arg_types): Expand a type pack expansion into separate
      	argument types.
      	(tsubst_exception_specification): Handle pack expansions in
      	exception specifiers.
      	(tsubst): See through ARGUMENT_PACK_SELECT arguments when 
      	replacing a template parameter with its argument. If we encounter
      	a substitution for an argument pack, just return the parameter
      	itself. 
      	(tsubst_copy): sizeof(X...) returns the number of elements in
      	parameter pack X.  See through ARGUMENT_PACK_SELECT when the
      	PARM_DECL is a parameter pack.
      	(tsubst_expr): Expression pack expansions and argument packs
      	cannot show up here; they will all be handled through function
      	calls, sizeof, and template argument lists.
      	(tsubst_copy_and_build): sizeof(X...) returns the number of
      	elements in parameter pack X.  Handle pack expansions in TREE_LIST
      	and CONSTRUCTOR nodes.
      	(fn_type_unification): Handle "incomplete" explicit template
      	argument lists that specify some of the arguments for a template
      	parameter pack.
      	(type_unification_real): Unify arguments against pack expansions.
      	(template_parm_level_and_index): New, helper function.
      	(unify_pack_expansion): New.
      	(unify): Unify argument packs on an argument-by-argument basis,
      	handling variadic argument packs as well.
      	(more_specialized_fn): Handle unification of function parameter
      	packs. All things being equal, prefer non-variadic function
      	templates to variadic function templates.
      	(more_specialized_class): Prefer the variadic class template
      	partial specialization that binds fewer arguments to a parameter
      	pack.
      	(regenerate_decl_from_template): Expand function parameter packs
      	into separate parameters.
      	(instantiate_decl): Ditto.
      	(tsubst_initializer_list): Handle pack expansions for base-class
      	initializers.
      	(dependent_type_p_r): Determine dependent types in argument packs
      	and pack expansions.
      	(value_dependent_expression_p): Determine value-dependence of
      	non-type argument packs.
      	(dependent_template_arg_p): Handle argument packs.
      	* semantics.c (finish_cond): Check for bare parameter packs.
      	(finish_expr_stmt): Ditto.
      	(finish_for_expr): Ditto.
      	(finish_switch_cond): Ditto.
      	(finish_mem_initializers): Ditto.
      	* name-lookup.c (arg_assoc_type): Handle pack expansions and
      	argument packs.
      	* decl2.c (cp_build_parm_decl): Mark function parameter packs.
      	* parser.c (make_declarator): Declarator is not an expansion.
      	(make_pointer_declarator): Transfer parameter pack flag to outer
      	declarator.
      	(make_reference_declarator): Ditto.
      	(make_ptrmem_declarator): Ditto.
      	(make_call_declarator): Ditto.
      	(make_array_declarator): Ditto.
      	(cp_parser_postfix_expression): Allow pack expansion expressions
      	in the argument list for a call expression.
      	(cp_parser_parenthesized_expression_list): Add new parameter
      	ALLOW_EXPANSION_P. When true, parse the ellipsis to mean "expand
      	into separate arguments."
      	(cp_parser_new_placement): Allow pack expansion expressions.
      	(cp_parser_new_initializer): Ditto.
      	(cp_parser_mem_initializer_list): Allow ellipsis to create a
      	base-class initializer expansion.
      	(cp_parser_mem_initializer): Ditto.
      	(cp_parser_template_parameter_list): Keep track of whether the
      	template parameter is a template parameter pack.
      	(cp_parser_template_parameter): Parse the ellipsis to indicate a
      	template parameter pack.
      	(cp_parser_type_parameter): Ditto.
      	(cp_parser_template_argument_list): Parse the ellipsis to indicate
      	a pack expansion.
      	(cp_parser_direct_declarator): Parse the ellipsis to indicate that
      	this declarator is a parameter pack.
      	(cp_parser_parameter_declaration): The ellipsis does not end the
      	parameter declaration, because it might be a parameter pack. Parse
      	the ellipsis to indicate a parameter pack.
      	(cp_parser_initializer): Allow pack expansions.
      	(cp_parser_initializer_list): Allow ellipsis to create an
      	initializer expansion.
      	(cp_parser_base_clause): Allow ellipsis to create a base specifier
      	expansion.
      	(cp_parser_type_id_list): Allow ellipsis to create an exception
      	specifier expansion.
      	(cp_parser_attribute_list): Don't allow pack expansions.
      	(cp_parser_functional_cast): Allow pack expansions.
      	(cp_parser_sizeof_operand): Allow ellipsis following "sizeof" to
      	compute the length of a parameter pack.
      	(cp_parser_next_token_ends_template_argument_p): An ellipsis can
      	end a template argument.
      	* tree.c (cp_walk_subtrees): Walk BASELINK, TYPE_ARGUMENT_PACK,
      	NONTYPE_ARGUMENT_PACK, TYPE_PACK_EXPANSION, EXPR_PACK_EXPANSION,
      	CAST_EXPR.
      
      From-SVN: r122788
      Douglas Gregor committed
    • tree-pass.h (TODO_update_smt_usage): Remove. · 706ca88e
      
      	* tree-pass.h (TODO_update_smt_usage): Remove.
      	Update all users.
      	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
      	argument SOME.
      	Update all users.
      
      From-SVN: r122787
      Diego Novillo committed
    • pa.c (attr_length_call): Revise condition for long pc-relative branch. · 751d9855
      	* pa.c (attr_length_call): Revise condition for long pc-relative branch.
      	(output_call): Use "LONG_PIC_SDIFF" instruction sequence for long local
      	calls on the SOM target.  Don't use "LONG_PIC_PCREL" call sequence on
      	SOM target.
      
      From-SVN: r122784
      John David Anglin committed
    • gcc.c: Document %{, in big comment at top. · 48137d59
      	* gcc.c: Document %{, in big comment at top.
      	(input_suffix_matches): Remove special handling for .s and
      	.S.
      	(input_spec_matches): New.
      	(handle_braces): Handle %{,.
      	(validate_switches): ',' indicates a value which is not a switch.
      	* config/alpha/osf.h (ASM_FINAL_SPEC): Use %{, rather than %{.
      	to detect assembler input.
      	* config/i386/sol2.h (CPP_SPEC): Likewise.
      	* config/rs6000/sysv4.h (ASM_SPEC): Likewise.
      	* config/rs6000/vxworks.h (ASM_SPEC): Likewise.
      	* config/rs6000/lynx.h (ASM_SPEC): Likewise.
      	* config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
      	* config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Objective-C plus
      	-m64 causes deployment target to default to 10.5.
      	* config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
      
      From-SVN: r122783
      Geoffrey Keating committed
    • re PR target/26090 (IA-64 creates DT_TEXTREL binaries) · 9b580a0b
              PR target/26090
      	* target.h (targetm.asm.out.reloc_rw_mask): New.
      	* target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
      	(TARGET_ASM_OUT): Use it.
      	* targhooks.c, targhooks.h (default_reloc_rw_mask): New.
      	* varasm.c (categorize_decl_for_section): Remove shlib argument;
      	use the new reloc_rw_mask target hook instead.
      	(default_section_type_flags_1): Merge into...
      	(default_section_type_flags): ... here.
      	(decl_readonly_section_1): Merge into...
      	(decl_readonly_section): ... here.
      	(default_elf_select_section_1): Merge into...
      	(default_elf_select_section): ... here.
      	(default_unique_section_1): Merge into...
      	(default_unique_section): ... here.
      	(compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
      	(default_select_rtx_section): Use it.
      	(default_elf_select_rtx_section): Likewise.
      	* output.h: Update to match.
      	* doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
      	* config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
      	(TARGET_ASM_RELOC_RW_MASK): New.
      	* config/i386/i386.c (x86_64_elf_select_section): Adjust call
      	to categorize_decl_for_section.
      	(x86_64_elf_unique_section): Likewise.
      	* config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
      	TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
      	(TARGET_ASM_RELOC_RW_MASK): New.
      	* config/ia64/ia64.c (ia64_rwreloc_select_section,
      	ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
      	(ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
      	(TARGET_RWRELOC): Remove.
      	(ia64_section_type_flags): Adjust call to default_section_type_flags.
      	* config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
      	* config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
      	(rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
      	(rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
      	(rs6000_xcoff_select_section): Use decl_readonly_section.
      	(rs6000_xcoff_section_type_flags): Use default_section_type_flags.
      	* config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
      	(TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
      	(TARGET_SECTION_TYPE_FLAGS): Remove.
      	* config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.
      
      From-SVN: r122781
      Richard Henderson committed
    • Daily bump. · b22eec88
      From-SVN: r122779
      GCC Administrator committed
    • re PR libfortran/31099 (Runtime error on legal code using RECL) · d66a9778
      2007-03-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR libgfortran/31099
      	* gfortran.dg/unformatted_recl.f90: New test.
      
      From-SVN: r122776
      Jerry DeLisle committed
  2. 09 Mar, 2007 20 commits
    • fold-const.c (fold_comparison): Remove compile-time evaluation of complex… · 23b9463b
      fold-const.c (fold_comparison): Remove compile-time evaluation of complex constant equality/inequality...
      
      
      	* fold-const.c (fold_comparison): Remove compile-time evaluation of
      	complex constant equality/inequality comparisons for here.
      	(fold_binary) <EQ_EXPR>: Simplify complex comparisons that are
      	known at compile-time or can be simplified to a scalar comparison.
      	(fold_relational_const): Move compile-time evaluation of complex
      	constant equality/inequality comparisons to here.
      
      	* gcc.dg/fold-eqcmplx-1.c: New test case.
      
      From-SVN: r122767
      Roger Sayle committed
    • sources.am, [...]: Rebuilt. · 99b12b20
      	* sources.am, Makefile.in: Rebuilt.
      	* scripts/makemake.tcl (scan_directory): Allow service files to be
      	omitted.
      	Omit all XML-related service files.
      
      From-SVN: r122764
      Tom Tromey committed
    • re PR libfortran/31099 (Runtime error on legal code using RECL) · f4072316
      2007-03-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR libgfortran/31099
      	* io/open.c (new_unit): Initialize bytes_left and recl_subrecord.
      	* io/transfer.c (next_record_w): Set bytes left to record length for
      	sequential unformatted I/O.
      	(next_record_r): Ditto.
      	(read_block_direct): Fix test for exceeding bytes_left.
      
      From-SVN: r122763
      Jerry DeLisle committed
    • Add line that went missing in the last ChangeLog entry. · 7cd4f641
      From-SVN: r122761
      Alexandre Oliva committed
    • re PR rtl-optimization/30643 (CSE pessimization) · 7e7e28c7
      gcc/ChangeLog:
      PR rtl-optimization/30643
      * cse.c (cse_insn): Recompute dest_hash after insert_regs for
      (fold_rtx): Recurse, like before 2006-11-03.
      gcc/testsuite/ChangeLog:
      PR rtl-optimization/30643
      * gcc.dg/pr30643.c: New.
      
      From-SVN: r122760
      Alexandre Oliva committed
    • re PR tree-optimization/30375 (tree-ssa-dse incorrectly removes struct initialization) · 0f84b066
              PR tree-optimization/30375
              * tree-ssa-dse.c (dse_possible_dead_store_p): Do not eliminate if
              LHS of statements is not the same.
              * testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: New.
      
      From-SVN: r122758
      Aldy Hernandez committed
    • mips32-dspr2-type.c: New test. · 3f868e1c
      * gcc.target/mips/mips32-dspr2-type.c: New test.
      * gcc.target/mips/mips32-dspr2.c: New test.
      * gcc.target/mips/dspr2-MULT.c: New test.
      * gcc.target/mips/dspr2-MULTU.c: New test.
      * gcc.target/mips/mips32-dsp-run.c: New test to check execution.
      * gcc.target/mips/mips32-dsp.c: Change v4i8 typedef to use signed char.
      Adjust some formats.
      
      From-SVN: r122757
      Chao-ying Fu committed
    • extend.texi (MIPS DSP Built-in Functions): Document the DSP REV 2. · 32041385
      * doc/extend.texi (MIPS DSP Built-in Functions): Document the DSP
      REV 2.
      * doc/invoke.texi (-mdspr2): Document new option.
      * config/mips/mips.md (UNSPEC_ABSQ_S_QB .. UNSPEC_DPSQX_SA_W_PH):
      New unspec for DSP REV 2.
      (<u>mulsidi3_32bit_internal): Check if !TARGET_DSPR2, because
      these instructions are extended in DSP REV 2.
      (mips-dspr2.md): Include.
      * config/mips/mips.opt (mdspr2): New option.
      * config/mips/mips.c (mips_function_type): Add MIPS_V4QI_FTYPE_V4QI,
      MIPS_SI_FTYPE_SI_SI_SI, MIPS_DI_FTYPE_DI_USI_USI, MIPS_DI_FTYPE_SI_SI,
      MIPS_DI_FTYPE_USI_USI, MIPS_V2HI_FTYPE_SI_SI_SI.
      (override_options): Check TARGET_DSPR2 to enable MASK_DSP.
      (CODE_FOR_mips_mul_ph): Define it to CODE_FOR_mulv2hi3.
      (dsp_bdesc): Add DSP REV 2 builtins.  Remove 32-bit only DSP builtins.
      (dsp_32only_bdesc): New description table for 32-bit only DSP REV 1
      and 2 builtins.
      (bdesc_map): Add one field of unsupported_target_flags.
      (bdesc_arrays):  Update entries to have extra fields.  Add
      dsp_32only_bdesc.
      (mips_init_builtins): Initialize new function types.
      Check unsupported_target_fileds to filter out builtins.
      * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dspr2 if
      TARGET_DSPR2.
      (ASM_SPEC): Pass mdspr2 to the assembler.
      * config/mips/mips-dspr2.md: New file.
      
      From-SVN: r122756
      Chao-ying Fu committed
    • altivec.md: Fix vcond patterns using if_then_else. · 4a71edd9
      2007-03-09  Sa Liu  <saliu@de.ibm.com>
      
      	* config/rs6000/altivec.md: Fix vcond patterns using if_then_else.
      
      From-SVN: r122755
      Sa Liu committed
    • opts.c (common_handle_option): Treat -Wstrict-overflow (with no argument) like -Wstrict-overflow=2. · 4d4362c8
      	* opts.c (common_handle_option): Treat -Wstrict-overflow (with no
      	argument) like -Wstrict-overflow=2.
      	* doc/invoke.texi (Warning Options): Update documentation.
      
      From-SVN: r122753
      Ian Lance Taylor committed
    • cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling fold with the result of buildN. · 9645c3c5
      
      	* cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
      	fold with the result of buildN.
      	* decl.c (gnat_to_gnu_entity): Likewise.
      	* trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
      	* utils.c (finish_record_type, merge_sizes, max_size, convert):
      	Likewise.
      	* utils2.c (gnat_truthvalue_conversion, compare_arrays,
      	nonbinary_modular_operation, build_binary_op, build_unary_op,
      	build_cond_expr): Likewise.
      
      	* utils.c (convert): Use fold_build1 when casting values to void.
      	* utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
      	fold_convert instead of convert when appropriate.
      
      From-SVN: r122752
      Roger Sayle committed
    • re PR c/17946 (wanted: warning for "a && MASK" when "a & MASK" was probably intended) · 63a08740
      2007-03-09  Dirk Mueller  <dmueller@suse.de>
      
             PR c++/17946
             * doc/invoke.texi (-Wlogical-op): Document.
             * common.opt (-Wlogical-op): New.
             * c-common.h (warn_logical_operator): Declare.
             * c-common.c (warn_logical_operator): Define.
             * c-typeck.c (parser_build_binary_op): Call
             warn_logical_operator.
      
             * cp/call.c (build_new_op): Call warn_logical_operator.
      
             * testsuite/gcc.dg/Wlogical-op-1.c: New.
             * testsuite/g++.dg/warn/Wlogical-op-1.C: New.
      
      From-SVN: r122751
      Dirk Mueller committed
    • rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name. · 0de2ae02
      * rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name.
      * final.c (final_scan_insn): Test for non-"" file name.
      
      From-SVN: r122750
      Alexandre Oliva committed
    • loop.texi: Document the Omega linear constraints solver. · 3d8864c0
      	* doc/loop.texi: Document the Omega linear constraints solver.
      	* doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars,
      	omega-max-geqs, omega-max-eqs, omega-max-wild-cards, 
      	omega-hash-table-size, omega-max-keys, and 
      	omega-eliminate-redundant-constraints.
      	* tree-pass.h (pass_check_data_deps): Declared.
      	* omega.c: New.
      	* omega.h: New.
      	* timevar.def (TV_CHECK_DATA_DEPS): Declared.
      	* tree-ssa-loop.c (check_data_deps, gate_check_data_deps, 
      	pass_check_data_deps): New.
      	* tree-data-ref.c (init_data_ref): Remove declaration.
      	(dump_data_dependence_relation): Dump DDR_INNER_LOOP.
      	(analyze_array): Renamed init_array_ref, move up initializations.
      	(init_data_ref): Renamed init_pointer_ref.  Moved before its call.
      	Removed arguments that are set to NULL.
      	(analyze_indirect_ref): Correct indentation, correct call to 
      	init_pointer_ref.
      	(object_analysis): Call init_array_ref instead of analyze_array.
      	(initialize_data_dependence_relation): Initialize DDR_INNER_LOOP.
      	(access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead
      	of DR_ACCESS_FNS_ADDR.
      	(init_omega_eq_with_af, omega_extract_distance_vectors, 
      	omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr,
      	ddr_consistent_p): New.
      	(compute_affine_dependence): Check consistency of ddrs when 
      	flag_check_data_deps is passed.
      	(analyze_all_data_dependences): Uncomment.
      	(tree_check_data_deps): New.
      	* tree-data-ref.h: Include omega.h.
      	(DR_ACCESS_FNS_ADDR): Removed.
      	(data_dependence_relation): Add inner_loop.
      	(DDR_INNER_LOOP): New.
      	* common.opt (fcheck-data-deps): New.
      	* tree-flow.h (tree_check_data_deps): Declare.
      	* Makefile.in (TREE_DATA_REF_H): Depend on omega.h.
      	(OBJS-common): Depend on omega.o.
      	(omega.o): Define.
      	* passes.c (pass_check_data_deps): Scheduled.
      	* params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS, 
      	PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
      	PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS,
      	PARAM_VECT_MAX_VERSION_CHECKS,
      	PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New.
      
      From-SVN: r122749
      Sebastian Pop committed
    • re PR tree-optimization/30904 (VRP does not track values of shifts and/or bitfields?) · 6569e716
      2007-03-09  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/30904
      	PR middle-end/31058
      	* tree-vrp.c (extract_range_from_binary_expr): Handle RSHIFT_EXPR
      	the same way as *_DIV_EXPR.
      
      	* gcc.dg/pr30904.c: Remove xfail.
      
      From-SVN: r122748
      Richard Guenther committed
    • re PR xml/30831 (Writing (transforming) XML fails) · 8e4425d7
      2007-03-09  Gary Benson  <gbenson@redhat.com>
      	    Chris Burdess  <dog@gnu.org>
      
      	PR classpath/30831
      	* gnu/xml/dom/ls/SAXEventSink.java: Only set extended document
      	properties when reader is available.
      
      
      Co-Authored-By: Chris Burdess <dog@gnu.org>
      
      From-SVN: r122743
      Gary Benson committed
    • rtl.def (ASM_INPUT): Add location. · bff4b63d
      * rtl.def (ASM_INPUT): Add location.
      * rtl.h (ASM_INPUT_SOURCE_LOCATION): New.
      (ASM_INPUT_SOURCE_FILE, ASM_INPUT_SOURCE_LINE): New.
      (decode_asm_operands): Add loc operand.
      (gen_rtx_ASM_INPUT, gen_rtx_ASM_INPUT_loc): Define.
      * stmt.c (expand_asm): Rename to...
      (expand_asm_loc): ... this.  Add locus argument.  Pass it on to
      gen_rtx_ASM_INPUT_loc.
      (expand_asm_expr): Adjust.
      * recog.c (decode_asm_operands): Add loc operand.
      (check_asm_operands, extract_insn): Adjust.
      * reload1.c (maybe_fix_stack_asms): Likewise.
      * final.c (asm_insn_count): Likewise.
      (final_scan_insn): Output # line before and after asm.
      
      From-SVN: r122742
      Alexandre Oliva committed
    • tree-ssa-structalias.c (variable_info): Remove finished_solution. · 1296c31f
      2007-03-09  Daniel Berlin  <dberlin@dberlin.org>
      
      	* tree-ssa-structalias.c (variable_info): Remove
      	finished_solution.
      	(new_var_info): Ditto.
      	(shared_bitmap_info_t): New structure.
      	(shared_bitmap_table): New variable.
      	(shared_bitmap_hash): New function.
      	(shared_bitmap_eq): Ditto
      	(shared_bitmap_lookup): Ditto.
      	(shared_bitmap_add): Ditto.
      	(merge_smts_into): Change to take bitmap directly.
      	(find_what_p_points_to): Rewrite to use shared bitmap hashtable.
      	(init_alias_vars): Init shared bitmap hashtable.
      	(delete_points_to_sets): Delete shared bitmap hashtable.
      	* tree-ssa-operands.c (add_virtual_operand): Partially revert the
      	is_aliased removal as a change that was still necessary was
      	deleted.
      
      From-SVN: r122741
      Daniel Berlin committed