summaryrefslogtreecommitdiff
path: root/gcc
Commit message (Collapse)AuthorAgeFilesLines
* PR tree-optimization/30835rakdver2007-03-122-5/+12
| | | | | | | | | * lambda-code.c (can_convert_to_perfect_nest): Check whether bb_for_stmt is not NULL before accessing it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122866 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL forjsm282007-03-122-1/+8
| | | | | | | some multilibs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122865 138bc75d-0d04-0410-961f-82ee72b054a4
* PR 30635brooks2007-03-122-0/+20
| | | | | | | * doc/install.texi: Document --enable-stage1-languages git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122861 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-pass.h (pass_into_cfg_layout_mode,steven2007-03-124-0/+68
| | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122858 138bc75d-0d04-0410-961f-82ee72b054a4
* Fixed erroneous ChangeLog and gcc/ChangeLog entries.brooks2007-03-121-0/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122856 138bc75d-0d04-0410-961f-82ee72b054a4
* ChangeLog:spark2007-03-1217-15/+162
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122851 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/alpha/alpha.c (alpha_elf_section_type_flags): New.rth2007-03-122-0/+23
| | | | | | (TARGET_SECTION_TYPE_FLAGS): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122850 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/darwin.c (machopic_reloc_rw_mask): New.rth2007-03-124-0/+15
| | | | | | | * config/darwin-protos.h (machopic_reloc_rw_mask): Declare. * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122846 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/30108mmitchel2007-03-124-3/+35
| | | | | | | | | | * call.c (convert_default_arg): Copy non-constant arguments. PR c++/30108 * g++.dg/other/default6.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122844 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppdefault.c (cpp_EXEC_PREFIX): New variable.mmitchel2007-03-125-5/+40
| | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122843 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement fromuros2007-03-122-54/+30
| | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122839 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/testsuite/rsandifo2007-03-126-3/+28
| | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122838 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2007-03-122-1/+6
| | | | | | | | * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add elfos.h to tm_file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122837 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/testsuite/rsandifo2007-03-1221-1/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122836 138bc75d-0d04-0410-961f-82ee72b054a4
* ipa-type-escape improvementsolga2007-03-124-63/+419
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122835 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/30328mmitchel2007-03-126-1/+72
| | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122829 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2007-03-121-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122827 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-03-11 Paul Thomas <pault@gcc.gnu.org>pault2007-03-114-0/+55
| | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122822 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-03-11 Richard Guenther <rguenther@suse.de>rguenth2007-03-114-1/+55
| | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122821 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR andian2007-03-112-7/+27
| | | | | | | the *_DIV_EXPR codes correctly with overflow infinities. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122820 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-data-ref.c (analyze_offset): Add a return value (bool) toirar2007-03-114-7/+81
| | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122817 138bc75d-0d04-0410-961f-82ee72b054a4
* * Fix a typo in my previous commit.uros2007-03-111-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122816 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/i386.md (frndintxf2): Rename to ...uros2007-03-112-114/+59
| | | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122815 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/30274mmitchel2007-03-1110-20/+125
| | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122813 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2007-03-111-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122810 138bc75d-0d04-0410-961f-82ee72b054a4
* * lower-subreg.c: Include except.h.steven2007-03-104-5/+91
| | | | | | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122807 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix PR number.mmitchel2007-03-103-3/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122804 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/20924mmitchel2007-03-104-4/+30
| | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122801 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-03-10 Dirk Mueller <dmueller@suse.de>mueller2007-03-102-17/+19
| | | | | | | | * c-common.c (warn_logical_operator): Fix condition. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122800 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-03-10 Dirk Mueller <dmueller@suse.de>mueller2007-03-102-102/+10
| | | | | | | | | * gcc.dg/Wlogical-op-1.c: Remove duplicated part. * g++.dg/warn/Wlogical-op-1.C: Remove duplicated part. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122799 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-03-10 Dirk Mueller <dmueller@suse.de>mueller2007-03-101-0/+6
| | | | | | | | | PR c++/17946 * gcc.dg/Wlogical-op-1.c: Remove duplicated part. * g++.dg/warn/Wlogical-op-1.C: Remove duplicated part. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122798 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix typo in ChangeLog entrytobi2007-03-101-3/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122797 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missingtobi2007-03-103-3/+10
| | | | | | | | | | quotation mark. * config/i386/darwin.c (machopic_select_section): Remove superfluous argument in call to categorize_decl_for_section. Remove unused variable shlib. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122796 138bc75d-0d04-0410-961f-82ee72b054a4
* * configure.ac (glibc_header_dir): Set using with_build_sysroot ifjsm282007-03-103-0/+14
| | | | | | | | defined. * configure: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122795 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/i386.md (UNSPEC_C2_FLAG): New constant.uros2007-03-104-14/+38
| | | | | | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122793 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sh/sh.c (sh_insn_length_adjustment): Adjust forkkojima2007-03-102-1/+6
| | | | | | | | the change of decode_asm_operands. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122792 138bc75d-0d04-0410-961f-82ee72b054a4
* * mode-switching.c (create_pre_exit): Skip blockage insn.kkojima2007-03-102-0/+10
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122791 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-03-09 Douglas Gregor <doug.gregor@gmail.com>dgregor2007-03-1094-0/+2473
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122789 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-03-09 Douglas Gregor <doug.gregor@gmail.com>dgregor2007-03-1016-287/+3226
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122788 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-pass.h (TODO_update_smt_usage): Remove.dnovillo2007-03-108-47/+25
| | | | | | | | | | | Update all users. * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove argument SOME. Update all users. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122787 138bc75d-0d04-0410-961f-82ee72b054a4
* * pa.c (attr_length_call): Revise condition for long pc-relative branch.danglin2007-03-102-6/+16
| | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122784 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.c: Document %{, in big comment at top.geoffk2007-03-1010-58/+93
| | | | | | | | | | | | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122783 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/26090rth2007-03-1016-175/+217
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122781 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2007-03-101-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122779 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-03-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>jvdelisle2007-03-102-0/+26
| | | | | | | | PR libgfortran/31099 * gfortran.dg/unformatted_recl.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122776 138bc75d-0d04-0410-961f-82ee72b054a4
* * fold-const.c (fold_comparison): Remove compile-time evaluation ofsayle2007-03-094-24/+115
| | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122767 138bc75d-0d04-0410-961f-82ee72b054a4
* Add line that went missing in the last ChangeLog entry.aoliva2007-03-091-0/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122761 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/ChangeLog:aoliva2007-03-094-4/+71
| | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122760 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/m32c/t-m32c (m32c-pragma.o): Add TM_H dependency to m32c-pragma.odj2007-03-092-1/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122759 138bc75d-0d04-0410-961f-82ee72b054a4
* PR tree-optimization/30375aldyh2007-03-093-0/+1556
| | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122758 138bc75d-0d04-0410-961f-82ee72b054a4