aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2007-03-11re PR c++/30274 (bool bit-field: wrong increment and decremenet)Mark Mitchell10-20/+125
PR c++/30274 * cp-tree.h (unlowered_expr_type): New function. * typeck.c (is_bitfield_expr_with_lowered_type): Handle COMPOUND_EXPR, MODIFY_EXPR, and SAVE_EXPR. (unlowered_expr_type): New function. (build_unary_op): Disallow predecrements of bool bitfields. * call.c (build_conditional_expr): Use unlowered_expr_type. * pt.c (type_unification_real): Likewise. PR c++/30274 * g++.dg/expr/bitfield3.C: New test. * g++.dg/expr/bitfield4.C: Likewise. * g++.dg/expr/bitfield5.C: Likewise. * g++.dg/expr/bitfield6.C: Likewise. From-SVN: r122813
2007-03-11Daily bump.GCC Administrator1-1/+1
From-SVN: r122810
2007-03-10lower-subreg.c: Include except.h.Steven Bosscher4-5/+91
* lower-subreg.c: Include except.h. (decompose_multiword_subregs): Verify that the only control flow insns we can split are loads to multi-words pseudos. Handle breaking such blocks after splitting, instead of calling find_many_sub_basic_blocks. * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK on the new basic block. Add a lengthy comment explaining why we thought this was necessary. * cfglayout.c (cfg_layout_finalize): Don't break superblocks. From-SVN: r122807
2007-03-10PR libstdc++/28080 (partial)Paolo Carlini9-334/+392
2007-03-10 Paolo Carlini <pcarlini@suse.de> PR libstdc++/28080 (partial) * include/std/memory: Move C++03 implementation... * include/bits/stl_memory.h: ... here, new. * include/Makefile.am: Add. * include/bits/stl_tempbuf.h: Include the latter instead. * include/tr1/hashtable: Include allocator.h instead of the whole <memory>. * include/tr1/hashtable_policy.h: Include stl_function.h instead of <functional>. * include/Makefile.in: Regenerate. * testsuite/20_util/auto_ptr/assign_neg.cc: Adjust dg-error line numbers. From-SVN: r122805
2007-03-10Fix PR number.Mark Mitchell3-3/+3
From-SVN: r122804
2007-03-10re PR target/20924 (inline float divide does not set correct fpu status flags)Mark Mitchell4-4/+30
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
2007-03-10c-common.c (warn_logical_operator): Fix condition.Dirk Mueller2-17/+19
2007-03-10 Dirk Mueller <dmueller@suse.de> * c-common.c (warn_logical_operator): Fix condition. From-SVN: r122800
2007-03-10Wlogical-op-1.c: Remove duplicated part.Dirk Mueller2-102/+10
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
2007-03-10re PR c/17946 (wanted: warning for "a && MASK" when "a & MASK" was probably ↵Dirk Mueller1-0/+6
intended) 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
2007-03-10Fix typo in ChangeLog entryTobias Schlüter1-3/+3
From-SVN: r122797
2007-03-10darwin.h (DARWIN_MINVERSION_SPEC): Add missing quotation mark.Tobias Schlüter3-3/+10
* 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
2007-03-10configure.ac (glibc_header_dir): Set using with_build_sysroot if defined.Joseph Myers3-0/+14
* configure.ac (glibc_header_dir): Set using with_build_sysroot if defined. * configure: Regenerate. From-SVN: r122795
2007-03-10i386.md (UNSPEC_C2_FLAG): New constant.Uros Bizjak4-14/+38
* 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
2007-03-10sh.c (sh_insn_length_adjustment): Adjust for the change of decode_asm_operands.Kaz Kojima2-1/+6
* config/sh/sh.c (sh_insn_length_adjustment): Adjust for the change of decode_asm_operands. From-SVN: r122792
2007-03-10mode-switching.c (create_pre_exit): Skip blockage insn.Kaz Kojima2-0/+10
* mode-switching.c (create_pre_exit): Skip blockage insn. From-SVN: r122791
2007-03-10Makefile.in: Regenerate.Douglas Gregor12-2221/+1521
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
2007-03-10re PR c++/20599 (variadic template support)Douglas Gregor94-0/+2473
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
2007-03-10re PR c++/20599 (variadic template support)Douglas Gregor16-287/+3226
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
2007-03-09tree-pass.h (TODO_update_smt_usage): Remove.Diego Novillo8-47/+25
* 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
2007-03-10pa.c (attr_length_call): Revise condition for long pc-relative branch.John David Anglin2-6/+16
* 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
2007-03-10gcc.c: Document %{, in big comment at top.Geoffrey Keating10-58/+93
* 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
2007-03-09re PR target/26090 (IA-64 creates DT_TEXTREL binaries)Richard Henderson16-175/+217
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
2007-03-10Daily bump.GCC Administrator1-1/+1
From-SVN: r122779
2007-03-10re PR libfortran/31099 (Runtime error on legal code using RECL)Jerry DeLisle2-0/+26
2007-03-09 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libgfortran/31099 * gfortran.dg/unformatted_recl.f90: New test. From-SVN: r122776
2007-03-09fold-const.c (fold_comparison): Remove compile-time evaluation of complex ↵Roger Sayle4-24/+115
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
2007-03-09sources.am, [...]: Rebuilt.Tom Tromey4-16/+21
* 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
2007-03-09re PR libfortran/31099 (Runtime error on legal code using RECL)Jerry DeLisle3-4/+16
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
2007-03-09Add line that went missing in the last ChangeLog entry.Alexandre Oliva1-0/+1
From-SVN: r122761
2007-03-09re PR rtl-optimization/30643 (CSE pessimization)Alexandre Oliva4-4/+71
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
2007-03-09* config/m32c/t-m32c (m32c-pragma.o): Add TM_H dependency to m32c-pragma.oDJ Delorie2-1/+5
From-SVN: r122759
2007-03-09re PR tree-optimization/30375 (tree-ssa-dse incorrectly removes struct ↵Aldy Hernandez3-0/+1556
initialization) 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
2007-03-09mips32-dspr2-type.c: New test.Chao-ying Fu7-99/+1705
* 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
2007-03-09extend.texi (MIPS DSP Built-in Functions): Document the DSP REV 2.Chao-ying Fu8-33/+953
* 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
2007-03-09altivec.md: Fix vcond patterns using if_then_else.Sa Liu2-56/+53
2007-03-09 Sa Liu <saliu@de.ibm.com> * config/rs6000/altivec.md: Fix vcond patterns using if_then_else. From-SVN: r122755
2007-03-09opts.c (common_handle_option): Treat -Wstrict-overflow (with no argument) ↵Ian Lance Taylor3-5/+16
like -Wstrict-overflow=2. * 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
2007-03-09cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling fold with the ↵Roger Sayle6-128/+153
result of buildN. * 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
2007-03-09re PR c/17946 (wanted: warning for "a && MASK" when "a & MASK" was probably ↵Dirk Mueller11-5/+281
intended) 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
2007-03-09rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name.Alexandre Oliva3-2/+7
* 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
2007-03-09loop.texi: Document the Omega linear constraints solver.Sebastian Pop15-93/+6773
* 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
2007-03-09re PR tree-optimization/30904 (VRP does not track values of shifts and/or ↵Richard Guenther4-2/+17
bitfields?) 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
2007-03-09* recog.c (decode_asm_operands): No mixed declarations and code.Alexandre Oliva2-4/+13
From-SVN: r122746
2007-03-09re PR xml/30831 (Writing (transforming) XML fails)Gary Benson3-24/+34
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
2007-03-09rtl.def (ASM_INPUT): Add location.Alexandre Oliva7-28/+92
* 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
2007-03-09tree-ssa-structalias.c (variable_info): Remove finished_solution.Daniel Berlin3-41/+137
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
2007-03-09i386.h (override_options): Conditionally disable x86_sahf for 64bit targets ↵Uros Bizjak2-1/+6
only. * config/i386/i386.h (override_options): Conditionally disable x86_sahf for 64bit targets only. From-SVN: r122740
2007-03-08re PR c/31072 ([4.2 Rgression] Wrong code for volatile var with ↵Andrew Pinski6-20/+23
initalization and optimization) 2007-03-08 Andrew Pinski <andrew_pinski@playstation.sony.com> PR C/31072 * c-decl.c (merge_decls): Don't call make_var_volatile. * varasm.c (make_var_volatile): Remove. * output.h (make_var_volatile): Remove. 2007-03-08 Andrew Pinski <andrew_pinski@playstation.sony.com> PR C/31072 * gcc.c-torture/execute/pr31072.c: New test. From-SVN: r122736
2007-03-09Daily bump.GCC Administrator1-1/+1
From-SVN: r122734
2007-03-08intrinsic.texi: (ICHAR) Improve internal I/O note.Brooks Moses2-8/+31
* intrinsic.texi: (ICHAR) Improve internal I/O note. (ACHAR): Reference it. (CHAR): Reference it. (IACHAR): Reference it. From-SVN: r122729
2007-03-08intrinsic.texi: (LINK) Document function form.Brooks Moses2-10/+48
* intrinsic.texi: (LINK) Document function form. (RENAME): Likewise. (SYMLNK): Likewise. (SYSTEM): Likewise. (UNLINK): Likewise. From-SVN: r122728
2007-03-08intrinsic.texi: minor typo fixes, removed prologue.Brooks Moses2-65/+61
* intrinsic.texi: minor typo fixes, removed prologue. (FSEEK): moved to correct place in alphabetical order. From-SVN: r122726