aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2007-03-13configure.ac: Test for assembler tolerance to # 0 "".Alexandre Oliva5-1/+81
* configure.ac: Test for assembler tolerance to # 0 "". * configure, config.in: Rebuilt. * final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO. From-SVN: r122879
2007-03-13* doc/invoke.texi (Spec Files): Update for '%{,' spec.Geoffrey Keating2-7/+16
From-SVN: r122878
2007-03-13darwin-fallback.c: Compile file only on powerpc.Geoffrey Keating3-7/+23
* config/rs6000/darwin-fallback.c: Compile file only on powerpc. (handle_syscall): Handle direct system calls. * config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete. From-SVN: r122877
2007-03-13Daily bump.GCC Administrator1-1/+1
From-SVN: r122874
2007-03-12c90-vla-1.c: Reflect the change of the error message.Seongbae Park4-3/+9
2007-03-12 Seongbae Park <seongbae.park@gmail.com> * gcc.dg/c90-vla-1.c: Reflect the change of the error message. * gcc.dg/c99-vla-1.c: Likewise. * g++.dg/ext/vla1.C: Likewise From-SVN: r122871
2007-03-12invoke.texi: Fix cpp.info cross-reference.Brooks Moses3-2/+7
* doc/invoke.texi: Fix cpp.info cross-reference. * doc/passes.texi: Fix gcc.info cross-reference. From-SVN: r122869
2007-03-12re PR middle-end/30835 (ICE with -O2 -ftree-loop-linear)Zdenek Dvorak2-5/+12
PR tree-optimization/30835 * lambda-code.c (can_convert_to_perfect_nest): Check whether bb_for_stmt is not NULL before accessing it. From-SVN: r122866
2007-03-12gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for some multilibs.Joseph Myers2-1/+8
* gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for some multilibs. From-SVN: r122865
2007-03-12re PR bootstrap/30635 (--enable-stage1-langauges configure option is not ↵Brooks Moses2-0/+20
documented.) PR 30635 * doc/install.texi: Document --enable-stage1-languages From-SVN: r122861
2007-03-12tree-pass.h (pass_into_cfg_layout_mode, [...]): Declare.Steven Bosscher4-0/+68
* tree-pass.h (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): Declare. * cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode, pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New. * passes.c (pass_into_cfg_layout_mode): Schedule before jump2. (pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt. From-SVN: r122858
2007-03-12Fixed erroneous ChangeLog and gcc/ChangeLog entries.Brooks Moses1-0/+1
From-SVN: r122856
2007-03-12invoke.texi (Wvla): New warning.Seongbae Park17-15/+162
ChangeLog: 2007-03-12 Seongbae Park <seongbae.park@gmail.com> * gcc/doc/invoke.texi (Wvla): New warning. gcc/ChangeLog: 2007-03-12 Seongbae Park <seongbae.park@gmail.com> * c-decl.c (warn_variable_length_array): New function. Refactored from grokdeclarator to handle warn_vla and handle unnamed array case. (grokdeclarator): Refactored VLA warning case. * c.opt (Wvla): New flag. gcc/cp/ChangeLog: 2007-03-12 Seongbae Park <seongbae.park@gmail.com> * decl.c (compute_array_index_type): New warning flag warn_vla. gcc/testsuite/ChangeLog: 2007-03-12 Seongbae Park <seongbae.park@gmail.com> * gcc.dg/wvla-1.c: New test * gcc.dg/wvla-2.c: New test * gcc.dg/wvla-3.c: New test * gcc.dg/wvla-4.c: New test * gcc.dg/wvla-5.c: New test * gcc.dg/wvla-6.c: New test * gcc.dg/wvla-7.c: New test * g++.dg/warn/Wvla-1.C: New test * g++.dg/warn/Wvla-2.C: New test * g++.dg/warn/Wvla-3.C: New test From-SVN: r122851
2007-03-12alpha.c (alpha_elf_section_type_flags): New.Richard Henderson2-0/+23
* config/alpha/alpha.c (alpha_elf_section_type_flags): New. (TARGET_SECTION_TYPE_FLAGS): New. From-SVN: r122850
2007-03-12darwin.c (machopic_reloc_rw_mask): New.Richard Henderson4-0/+15
* config/darwin.c (machopic_reloc_rw_mask): New. * config/darwin-protos.h (machopic_reloc_rw_mask): Declare. * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New. From-SVN: r122846
2007-03-12re PR c++/30108 (internal compiler error: in make_decl_rtl, at varasm.c:890)Mark Mitchell4-3/+35
PR c++/30108 * call.c (convert_default_arg): Copy non-constant arguments. PR c++/30108 * g++.dg/other/default6.C: New test. From-SVN: r122844
2007-03-12cppdefault.c (cpp_EXEC_PREFIX): New variable.Mark Mitchell5-5/+40
* cppdefault.c (cpp_EXEC_PREFIX): New variable. * cppdefault.h (cpp_PREFIX): Document. (cpp_PREFIX_len): Likewise. (cpp_EXEC_PREFIX): New variable. * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX. * c-incpath.c (add_standard_paths): Correct logic for relocating paths within prefix. From-SVN: r122843
2007-03-12i386.md (fixuns_trunc<mode>hi2): Implement from fixuns_truncsfhi2 and ↵Uros Bizjak2-54/+30
fixuns_truncdfhi2 using SSEMODEF mode macro. * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF mode macro. (fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and fix_truncdfdi_sse using SSEMODEF mode macro. (fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and fix_truncdfsi_sse using SSEMODEF mode macro. (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro. (fix_trunc?f?i_sse K8 peephole2): Fix register constraint. From-SVN: r122839
2007-03-12target-supports.exp (check_profiling_available): Return false for VxWorks.Richard Sandiford6-3/+28
gcc/testsuite/ * lib/target-supports.exp (check_profiling_available): Return false for VxWorks. (check_effective_target_vxworks_kernel): New procedure. * gcc.dg/20040813-1.c: Extend list of stabless targets to include VxWorks. * gcc.dg/builtins-config.h: Do not define HAVE_C99_RUNTIME on VxWorks. * gcc.dg/intmax_t-1.c: Extend the list of targets without inttypes.h to include VxWorks. * gcc.dg/vxworks/initpri2.c: Require vxworks_kernel. From-SVN: r122838
2007-03-12config.gcc (i[4567]86-wrs-vxworks, [...]): Add elfos.h to tm_file.Richard Sandiford2-1/+6
gcc/ * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add elfos.h to tm_file. From-SVN: r122837
2007-03-12981006-1.c: Use the non-PIC options if PIC is not supported.Richard Sandiford21-1/+44
gcc/testsuite/ * gcc.c-torture/compile/981006-1.c: Use the non-PIC options if PIC is not supported. * gcc.dg/20020103-1.c: Add dg-require-effective-target fpic. * gcc.dg/20020426-2.c: Likewise. * gcc.dg/pr28243.c: Likewise. * gcc.dg/visibility-11.c: Likewise. * gcc.dg/tls/opt-9.c: Likewise. * gcc.dg/tls/opt-10.c: Likewise. * gcc.dg/tls/pic-1.c: Likewise. * gcc.dg/tls/struct-1.c: Likewise. * gcc.target/i386/20000807-1.c: Likewise. * gcc.target/i386/20000904-1.c: Likewise. * gcc.target/i386/20011119-1.c: Likewise. * gcc.target/i386/990213-2.c: Likewise. * gcc.target/i386/990214-1.c: Likewise. * gcc.target/i386/compress-float-387-pic.c: Likewise. * gcc.target/i386/compress-float-sse-pic.c: Likewise. * gcc.target/i386/pic-1.c: Likewise. * gcc.target/i386/pr21518.c: Likewise. * gcc.target/i386/pr23098.c: Likewise. * gcc.target/i386/pr23943.c: Likewise. From-SVN: r122836
2007-03-12ipa-type-escape improvementsOlga Golovanevsky4-63/+419
From-SVN: r122835
2007-03-12re PR c++/30328 (bit-field: unassemblable assembly code)Mark Mitchell6-1/+72
PR c++/30328 * semantics.c (finish_typeof): Use unlowered_expr_type. PR c++/30328 * g++.dg/ext/bitfield1.C: New test. PR c++/31038 * parser.c (cp_parser_postfix_expression): Disallow compound literals in constant expressions. PR c++/31038 * g++.dg/template/complit2.C: New test. From-SVN: r122829
2007-03-12Daily bump.GCC Administrator1-1/+1
From-SVN: r122827
2007-03-11re PR fortran/30883 ([4.1/4.2 only] procedure with dummy procedure f1 ↵Paul Thomas4-0/+55
rejected with implicit none) 2007-03-11 Paul Thomas <pault@gcc.gnu.org> PR fortran/30883 * parse.c (parse_interface): Use the default types from the formal namespace if a function or its result do not have a type after parsing the specification statements. 2007-03-11 Paul Thomas <pault@gcc.gnu.org> PR fortran/30883 * gfortran.dg/interface_11.f90: New test. From-SVN: r122822
2007-03-11re PR middle-end/31115 (libstdc++ 22_locale/num_get/get/char/2.cc ↵Richard Guenther4-1/+55
27_io/basic_ostream/inserters_arithmetic/char/6.cc) 2007-03-11 Richard Guenther <rguenther@suse.de> PR tree-optimization/31115 * tree-vrp.c (extract_range_from_binary_expr): Make sure the shift count is positive and non-anti-range for RSHIFT_EXPR. A shift count of zero is not special as with *_DIV_EXPR. (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow direction. * gcc.dg/torture/pr31115.c: New testcase. From-SVN: r122821
2007-03-11tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and the *_DIV_EXPR codes ↵Ian Lance Taylor2-7/+27
correctly with overflow infinities. * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and the *_DIV_EXPR codes correctly with overflow infinities. From-SVN: r122820
2007-03-11tree-data-ref.c (analyze_offset): Add a return value (bool) to indicate ↵Ira Rosen4-7/+81
success/failure of the analysis. * tree-data-ref.c (analyze_offset): Add a return value (bool) to indicate success/failure of the analysis. Add negation to subtrahend in case of subtraction. Fail if both operands contain constants. (create_data_ref): Fail if analyze_offset fails. From-SVN: r122817
2007-03-11* Fix a typo in my previous commit.Uros Bizjak1-1/+1
From-SVN: r122816
2007-03-11i386.md (frndintxf2): Rename to ...Uros Bizjak2-114/+59
* config/i386/i386.md (frndintxf2): Rename to ... (rintxf2): ... this. Remove expander having same name. (rintsf2, rintdf2): Implement using SSEMODEF macro. (roundsf2, rounddf2): Ditto. (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro. (lround<mode>di2, lround<mode>si2): Ditto. From-SVN: r122815
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-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-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