From: Arkadiusz Miśkiewicz Date: Fri, 11 Nov 2011 13:50:10 +0000 (+0000) Subject: - rel 2; drop R python-gdb (it's obsolete pkg); update branch diff X-Git-Tag: auto/th/gcc-4_6_2-2 X-Git-Url: http://git.pld-linux.org/?p=packages%2Fgcc.git;a=commitdiff_plain;h=6f35b5e4e76d89402149b5ddff9debea0e04945f - rel 2; drop R python-gdb (it's obsolete pkg); update branch diff Changed files: gcc-branch.diff -> 1.54 gcc.spec -> 1.673 --- diff --git a/gcc-branch.diff b/gcc-branch.diff index e9b647d..c755e6b 100644 --- a/gcc-branch.diff +++ b/gcc-branch.diff @@ -1,21 +1,256 @@ +Index: gcc/c-family/ChangeLog +=================================================================== +--- gcc/c-family/ChangeLog (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/c-family/ChangeLog (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -1,3 +1,15 @@ ++2011-11-04 Eric Botcazou ++ ++ PR c++/50608 ++ * c-common.c (c_fully_fold_internal) : Call fold_offsetof_1. ++ (fold_offsetof_1): Make global. Remove STOP_REF argument and adjust. ++ : Return the argument. ++ : Remove special code for negative offset. ++ Call fold_build_pointer_plus instead of size_binop. ++ (fold_offsetof): Remove STOP_REF argument and adjust. ++ * c-common.h (fold_offsetof_1): Declare. ++ (fold_offsetof): Remove STOP_REF argument. ++ + 2011-10-26 Release Manager + + * GCC 4.6.2 released. +Index: gcc/c-family/c-common.c +=================================================================== +--- gcc/c-family/c-common.c (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/c-family/c-common.c (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -1236,13 +1236,7 @@ + && (op1 = get_base_address (op0)) != NULL_TREE + && TREE_CODE (op1) == INDIRECT_REF + && TREE_CONSTANT (TREE_OPERAND (op1, 0))) +- { +- tree offset = fold_offsetof (op0, op1); +- op1 +- = fold_convert_loc (loc, TREE_TYPE (expr), TREE_OPERAND (op1, 0)); +- ret = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (expr), op1, +- offset); +- } ++ ret = fold_convert_loc (loc, TREE_TYPE (expr), fold_offsetof_1 (op0)); + else if (op0 != orig_op0 || in_init) + ret = in_init + ? fold_build1_initializer_loc (loc, code, TREE_TYPE (expr), op0) +@@ -8459,20 +8453,15 @@ + return uc; + } + +-/* Build the result of __builtin_offsetof. EXPR is a nested sequence of +- component references, with STOP_REF, or alternatively an INDIRECT_REF of +- NULL, at the bottom; much like the traditional rendering of offsetof as a +- macro. Returns the folded and properly cast result. */ ++/* Fold an offsetof-like expression. EXPR is a nested sequence of component ++ references with an INDIRECT_REF of a constant at the bottom; much like the ++ traditional rendering of offsetof as a macro. Return the folded result. */ + +-static tree +-fold_offsetof_1 (tree expr, tree stop_ref) ++tree ++fold_offsetof_1 (tree expr) + { +- enum tree_code code = PLUS_EXPR; + tree base, off, t; + +- if (expr == stop_ref && TREE_CODE (expr) != ERROR_MARK) +- return size_zero_node; +- + switch (TREE_CODE (expr)) + { + case ERROR_MARK: +@@ -8489,15 +8478,15 @@ + + case NOP_EXPR: + case INDIRECT_REF: +- if (!integer_zerop (TREE_OPERAND (expr, 0))) ++ if (!TREE_CONSTANT (TREE_OPERAND (expr, 0))) + { + error ("cannot apply % to a non constant address"); + return error_mark_node; + } +- return size_zero_node; ++ return TREE_OPERAND (expr, 0); + + case COMPONENT_REF: +- base = fold_offsetof_1 (TREE_OPERAND (expr, 0), stop_ref); ++ base = fold_offsetof_1 (TREE_OPERAND (expr, 0)); + if (base == error_mark_node) + return base; + +@@ -8515,21 +8504,14 @@ + break; + + case ARRAY_REF: +- base = fold_offsetof_1 (TREE_OPERAND (expr, 0), stop_ref); ++ base = fold_offsetof_1 (TREE_OPERAND (expr, 0)); + if (base == error_mark_node) + return base; + + t = TREE_OPERAND (expr, 1); +- if (TREE_CODE (t) == INTEGER_CST && tree_int_cst_sgn (t) < 0) +- { +- code = MINUS_EXPR; +- t = fold_build1_loc (input_location, NEGATE_EXPR, TREE_TYPE (t), t); +- } +- t = convert (sizetype, t); +- off = size_binop (MULT_EXPR, TYPE_SIZE_UNIT (TREE_TYPE (expr)), t); + + /* Check if the offset goes beyond the upper bound of the array. */ +- if (code == PLUS_EXPR && TREE_CODE (t) == INTEGER_CST) ++ if (TREE_CODE (t) == INTEGER_CST && tree_int_cst_sgn (t) >= 0) + { + tree upbound = array_ref_up_bound (expr); + if (upbound != NULL_TREE +@@ -8569,26 +8551,30 @@ + } + } + } ++ ++ t = convert (sizetype, t); ++ off = size_binop (MULT_EXPR, TYPE_SIZE_UNIT (TREE_TYPE (expr)), t); + break; + + case COMPOUND_EXPR: + /* Handle static members of volatile structs. */ + t = TREE_OPERAND (expr, 1); + gcc_assert (TREE_CODE (t) == VAR_DECL); +- return fold_offsetof_1 (t, stop_ref); ++ return fold_offsetof_1 (t); + + default: + gcc_unreachable (); + } + +- return size_binop (code, base, off); ++ return fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (base), base, off); + } + ++/* Likewise, but convert it to the return type of offsetof. */ ++ + tree +-fold_offsetof (tree expr, tree stop_ref) ++fold_offsetof (tree expr) + { +- /* Convert back from the internal sizetype to size_t. */ +- return convert (size_type_node, fold_offsetof_1 (expr, stop_ref)); ++ return convert (size_type_node, fold_offsetof_1 (expr)); + } + + /* Warn for A ?: C expressions (with B omitted) where A is a boolean +Index: gcc/c-family/c-common.h +=================================================================== +--- gcc/c-family/c-common.h (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/c-family/c-common.h (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -916,7 +916,8 @@ + + extern void verify_sequence_points (tree); + +-extern tree fold_offsetof (tree, tree); ++extern tree fold_offsetof_1 (tree); ++extern tree fold_offsetof (tree); + + /* Places where an lvalue, or modifiable lvalue, may be required. + Used to select diagnostic messages in lvalue_error and Index: gcc/DATESTAMP =================================================================== ---- gcc/DATESTAMP (.../tags/gcc_4_6_2_release) (wersja 180565) -+++ gcc/DATESTAMP (.../branches/gcc-4_6-branch) (wersja 180565) +--- gcc/DATESTAMP (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/DATESTAMP (.../branches/gcc-4_6-branch) (wersja 181284) @@ -1 +1 @@ -20111026 -+20111027 ++20111111 Index: gcc/DEV-PHASE =================================================================== ---- gcc/DEV-PHASE (.../tags/gcc_4_6_2_release) (wersja 180565) -+++ gcc/DEV-PHASE (.../branches/gcc-4_6-branch) (wersja 180565) +--- gcc/DEV-PHASE (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/DEV-PHASE (.../branches/gcc-4_6-branch) (wersja 181284) @@ -0,0 +1 @@ +prerelease Index: gcc/ChangeLog =================================================================== ---- gcc/ChangeLog (.../tags/gcc_4_6_2_release) (wersja 180565) -+++ gcc/ChangeLog (.../branches/gcc-4_6-branch) (wersja 180565) -@@ -1,3 +1,8 @@ +--- gcc/ChangeLog (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/ChangeLog (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -1,3 +1,85 @@ ++2011-11-10 Jakub Jelinek ++ ++ PR middle-end/51077 ++ * tree-object-size.c (addr_object_size): Check TREE_CODE of ++ MEM_REF's operand rather than code of the MEM_REF itself. ++ ++2011-11-07 Alan Modra ++ ++ PR target/30282 ++ * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Always emit ++ blockage for ABI_V4. ++ ++2011-11-04 Eric Botcazou ++ ++ PR c++/50608 ++ * c-parser.c (c_parser_postfix_expression) : Adjust call ++ to fold_offsetof. ++ * c-typeck.c (build_unary_op) : Call fold_offsetof_1. ++ ++2011-11-04 Eric Botcazou ++ ++ PR target/50979 ++ * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=v8. ++ ++2011-11-03 Uros Bizjak ++ ++ * config/i386/i386.md (lround2, ++ rint2, floor2, lfloor2, ++ btrunc2, lwp_lwpval3): Use operands[N] instead of operandN. ++ ++2011-11-02 Eric Botcazou ++ ++ PR target/50945 ++ * config/sparc/sparc.md (movsf_insn): Reindent constraints. ++ (movsf_insn_no_fpu): Likewise. ++ (movdf_insn_sp32): Likewise. ++ (movdf_insn_sp32_no_fpu): Likewise. ++ (movdf_insn_sp32_v9): Likewise. Remove redundant GY constraint. ++ (movdf_insn_sp32_v9_no_fpu): Likewise. ++ (movdf_insn_sp64): Likewise. ++ (movdf_insn_sp64_no_fpu): Likewise. ++ (movtf_insn_sp32): Likewise. ++ (movtf_insn_sp32_no_fpu): Likewise. ++ (movtf_insn_sp64): Likewise. ++ (movtf_insn_sp64_hq): Likewise. ++ (movtf_insn_sp64_no_fpu): Likewise. ++ ++2011-11-02 Bernd Schmidt ++ ++ * cfgcleanup.c (try_head_merge_bb): If get_condition returns ++ NULL for a jump that is a cc0 insn, pick the previous insn for ++ move_before. ++ ++2011-11-01 Uros Bizjak ++ ++ * config/i386/i386.md (splitters for int-float conversion): Use ++ SUBREG_REG on SUBREGs in splitter constraints. ++ ++2011-11-01 Julian Brown ++ ++ PR rtl-optimization/47918 ++ * reload1.c (set_initial_label_offsets): Use initial offsets ++ for labels on the nonlocal_goto_handler_labels chain. ++ ++2011-10-29 John David Anglin ++ ++ PR target/50691 ++ * config/pa/pa.c (emit_move_sequence): Legitimize TLS symbol references. ++ * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Return false for ++ TLS_MODEL_GLOBAL_DYNAMIC and TLS_MODEL_LOCAL_DYNAMIC symbol references. ++ ++2011-10-27 Uros Bizjak ++ ++ PR target/50875 ++ * config/i386/sse.md (*avx_unpcklpd256): Remove extra insn ++ constraints. Change alternative 1 to "x,m,1". ++ +2011-10-26 Jakub Jelinek + + * BASE-VER: Set to 4.6.3. @@ -24,10 +259,2591 @@ Index: gcc/ChangeLog 2011-10-26 Release Manager * GCC 4.6.2 released. +@@ -144,8 +226,8 @@ + + 2011-10-07 Bernd Schmidt + +- PR target/49049 +- * config/arm/arm.md (arm_subsi3_insn): Lose the last alternative. ++ PR target/49049 ++ * config/arm/arm.md (arm_subsi3_insn): Lose the last alternative. + + 2011-10-06 Jakub Jelinek + +Index: gcc/testsuite/gfortran.dg/pr50875.f90 +=================================================================== +--- gcc/testsuite/gfortran.dg/pr50875.f90 (.../tags/gcc_4_6_2_release) (wersja 0) ++++ gcc/testsuite/gfortran.dg/pr50875.f90 (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -0,0 +1,39 @@ ++! { dg-do compile { target { i?86-*-* x86_64-*-* } } } ++! { dg-options "-O3 -mavx" } ++! ++! PR fortran/50875.f90 ++ ++module test ++ ++ implicit none ++ ++ integer, parameter :: dp=kind(1.d0) ++ ++ integer :: P = 2 ++ ++ real(kind=dp), allocatable :: real_array_A(:),real_array_B(:,:) ++ complex(kind=dp), allocatable :: cmplx_array_A(:) ++ ++contains ++ ++ subroutine routine_A ++ ++ integer :: i ++ ++ allocate(cmplx_array_A(P),real_array_B(P,P),real_array_A(P)) ++ ++ real_array_A = 1 ++ real_array_B = 1 ++ ++ do i = 1, p ++ cmplx_array_A = cmplx(real_array_B(:,i),0.0_dp,dp) ++ cmplx_array_A = cmplx_array_A * exp(cmplx(0.0_dp,real_array_A+1)) ++ end do ++ ++ deallocate(cmplx_array_A,real_array_B,real_array_A) ++ ++ end subroutine routine_A ++ ++end module test ++ ++! { dg-final { cleanup-modules "test" } } +Index: gcc/testsuite/gcc.c-torture/compile/pr51077.c +=================================================================== +--- gcc/testsuite/gcc.c-torture/compile/pr51077.c (.../tags/gcc_4_6_2_release) (wersja 0) ++++ gcc/testsuite/gcc.c-torture/compile/pr51077.c (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -0,0 +1,15 @@ ++/* PR middle-end/51077 */ ++ ++struct S { unsigned char s, t[256]; }; ++ ++void ++foo (const struct S *x, struct S *y, int z) ++{ ++ int i; ++ for (i = 0; i < 8; i++) ++ { ++ const struct S *a = &x[i]; ++ __builtin___memcpy_chk (y->t, a->t, z, __builtin_object_size (y->t, 0)); ++ y = (struct S *) &y->t[z]; ++ } ++} +Index: gcc/testsuite/gcc.c-torture/compile/20110913-1.c +=================================================================== +--- gcc/testsuite/gcc.c-torture/compile/20110913-1.c (.../tags/gcc_4_6_2_release) (wersja 0) ++++ gcc/testsuite/gcc.c-torture/compile/20110913-1.c (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -0,0 +1,26 @@ ++struct ieee754_double { ++ double d; ++}; ++extern const float __exp_deltatable[178]; ++float __ieee754_expf (float x) ++{ ++ static const float himark = 88.72283935546875; ++ static const float lomark = -103.972084045410; ++ if (__builtin_isless(x, himark) && __builtin_isgreater(x, lomark)) ++ { ++ int tval; ++ double x22, t, result, dx; ++ float delta; ++ struct ieee754_double ex2_u; ++ dx -= t; ++ tval = (int) (t * 512.0); ++ if (t >= 0) ++ delta = - __exp_deltatable[tval]; ++ else ++ delta = __exp_deltatable[-tval]; ++ x22 = (0.5000000496709180453 * dx + 1.0000001192102037084) * dx + delta; ++ result = x22 * ex2_u.d + ex2_u.d; ++ return (float) result; ++ } ++ return x; ++} +Index: gcc/testsuite/ChangeLog +=================================================================== +--- gcc/testsuite/ChangeLog (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/testsuite/ChangeLog (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -1,3 +1,32 @@ ++2011-11-10 Jakub Jelinek ++ ++ PR middle-end/51077 ++ * gcc.c-torture/compile/pr51077.c: New test. ++ ++2011-11-07 Jason Merrill ++ ++ PR c++/50870 ++ * g++.dg/cpp0x/decltype35.C: New. ++ ++2011-11-04 Eric Botcazou ++ ++ * g++.dg/other/offsetof7.C: New test. ++ ++2011-11-02 Bernd Schmidt ++ ++ * gcc.c-torture/compile/20110907.c: New file. ++ ++2011-10-29 Paolo Carlini ++ ++ PR c++/50901 ++ * g++.dg/cpp0x/pr50901.C: New. ++ ++2011-10-27 Uros Bizjak ++ Steven G. Kargl ++ ++ PR target/50875 ++ * gfortran.dg/pr50875.f90: New test. ++ + 2011-10-26 Release Manager + + * GCC 4.6.2 released. +Index: gcc/testsuite/g++.dg/other/offsetof7.C +=================================================================== +--- gcc/testsuite/g++.dg/other/offsetof7.C (.../tags/gcc_4_6_2_release) (wersja 0) ++++ gcc/testsuite/g++.dg/other/offsetof7.C (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -0,0 +1,17 @@ ++// PR c++/50608 ++// Testcase by ++// { dg-do compile } ++ ++struct A { ++ int offset; ++}; ++ ++struct B: public A { ++}; ++ ++struct C { ++ A a; ++ B b; ++}; ++ ++int fails = __builtin_offsetof (C, b.offset); +Index: gcc/testsuite/g++.dg/cpp0x/pr50901.C +=================================================================== +--- gcc/testsuite/g++.dg/cpp0x/pr50901.C (.../tags/gcc_4_6_2_release) (wersja 0) ++++ gcc/testsuite/g++.dg/cpp0x/pr50901.C (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -0,0 +1,9 @@ ++// { dg-options "-std=c++0x" } ++ ++template int foo(int a) ++{ ++ const unsigned b = a < 0 ? -a : a; ++ return 0; ++} ++ ++int i = foo(1); +Index: gcc/testsuite/g++.dg/cpp0x/decltype35.C +=================================================================== +--- gcc/testsuite/g++.dg/cpp0x/decltype35.C (.../tags/gcc_4_6_2_release) (wersja 0) ++++ gcc/testsuite/g++.dg/cpp0x/decltype35.C (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -0,0 +1,15 @@ ++// PR c++/50870 ++// { dg-options -std=c++0x } ++ ++template ++ struct impl ++ { ++ template static T create(); ++ }; ++ ++template ::template create() ++ -> impl::template create())> ++struct tester { }; ++ ++tester*, int, float> ti; +Index: gcc/cp/typeck.c +=================================================================== +--- gcc/cp/typeck.c (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/cp/typeck.c (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -4835,9 +4835,7 @@ + && TREE_CONSTANT (TREE_OPERAND (val, 0))) + { + tree type = build_pointer_type (argtype); +- tree op0 = fold_convert (type, TREE_OPERAND (val, 0)); +- tree op1 = fold_convert (sizetype, fold_offsetof (arg, val)); +- return fold_build2 (POINTER_PLUS_EXPR, type, op0, op1); ++ return fold_convert (type, fold_offsetof_1 (arg)); + } + + /* Handle complex lvalues (when permitted) +Index: gcc/cp/ChangeLog +=================================================================== +--- gcc/cp/ChangeLog (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/cp/ChangeLog (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -1,3 +1,22 @@ ++2011-11-07 Jason Merrill ++ ++ PR c++/50870 ++ * pt.c (tsubst_copy): Handle NAMESPACE_DECL. ++ (tsubst_copy_and_build) [COMPONENT_REF]: Handle a still-dependent ++ object. ++ ++2011-11-04 Eric Botcazou ++ ++ PR c++/50608 ++ * semantics.c (finish_offsetof): Adjust call to fold_offsetof. ++ * typeck.c (cp_build_addr_expr_1): Call fold_offsetof_1. ++ ++2011-10-29 Paolo Carlini ++ ++ PR c++/50901 ++ * call.c (build_new_op_1): Handle ABS_EXPR together with the ++ other unary EXPR. ++ + 2011-10-26 Release Manager + + * GCC 4.6.2 released. +Index: gcc/cp/pt.c +=================================================================== +--- gcc/cp/pt.c (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/cp/pt.c (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -11439,6 +11439,9 @@ + mark_used (t); + return t; + ++ case NAMESPACE_DECL: ++ return t; ++ + case OVERLOAD: + /* An OVERLOAD will always be a non-dependent overload set; an + overload set from function scope will just be represented with an +@@ -13179,7 +13182,9 @@ + if (member == error_mark_node) + return error_mark_node; + +- if (object_type && !CLASS_TYPE_P (object_type)) ++ if (type_dependent_expression_p (object)) ++ /* We can't do much here. */; ++ else if (!CLASS_TYPE_P (object_type)) + { + if (SCALAR_TYPE_P (object_type)) + { +Index: gcc/cp/semantics.c +=================================================================== +--- gcc/cp/semantics.c (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/cp/semantics.c (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -3348,7 +3348,7 @@ + } + if (TREE_CODE (expr) == INDIRECT_REF && REFERENCE_REF_P (expr)) + expr = TREE_OPERAND (expr, 0); +- return fold_offsetof (expr, NULL_TREE); ++ return fold_offsetof (expr); + } + + /* Replace the AGGR_INIT_EXPR at *TP with an equivalent CALL_EXPR. This +Index: gcc/cp/call.c +=================================================================== +--- gcc/cp/call.c (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/cp/call.c (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -4996,6 +4996,7 @@ + case POSTDECREMENT_EXPR: + case REALPART_EXPR: + case IMAGPART_EXPR: ++ case ABS_EXPR: + return cp_build_unary_op (code, arg1, candidates != 0, complain); + + case ARRAY_REF: Index: gcc/BASE-VER =================================================================== ---- gcc/BASE-VER (.../tags/gcc_4_6_2_release) (wersja 180565) -+++ gcc/BASE-VER (.../branches/gcc-4_6-branch) (wersja 180565) +--- gcc/BASE-VER (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/BASE-VER (.../branches/gcc-4_6-branch) (wersja 181284) @@ -1 +1 @@ -4.6.2 +4.6.3 +Index: gcc/c-typeck.c +=================================================================== +--- gcc/c-typeck.c (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/c-typeck.c (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -3802,11 +3802,7 @@ + if (val && TREE_CODE (val) == INDIRECT_REF + && TREE_CONSTANT (TREE_OPERAND (val, 0))) + { +- tree op0 = fold_convert_loc (location, sizetype, +- fold_offsetof (arg, val)), op1; +- +- op1 = fold_convert_loc (location, argtype, TREE_OPERAND (val, 0)); +- ret = fold_build2_loc (location, POINTER_PLUS_EXPR, argtype, op1, op0); ++ ret = fold_convert_loc (location, argtype, fold_offsetof_1 (arg)); + goto return_build_unary_op; + } + +Index: gcc/cfgcleanup.c +=================================================================== +--- gcc/cfgcleanup.c (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/cfgcleanup.c (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -1969,7 +1969,14 @@ + + cond = get_condition (jump, &move_before, true, false); + if (cond == NULL_RTX) +- move_before = jump; ++ { ++#ifdef HAVE_cc0 ++ if (reg_mentioned_p (cc0_rtx, jump)) ++ move_before = prev_nonnote_nondebug_insn (jump); ++ else ++#endif ++ move_before = jump; ++ } + + for (ix = 0; ix < nedges; ix++) + if (EDGE_SUCC (bb, ix)->dest == EXIT_BLOCK_PTR) +@@ -2131,7 +2138,14 @@ + jump = BB_END (final_dest_bb); + cond = get_condition (jump, &move_before, true, false); + if (cond == NULL_RTX) +- move_before = jump; ++ { ++#ifdef HAVE_cc0 ++ if (reg_mentioned_p (cc0_rtx, jump)) ++ move_before = prev_nonnote_nondebug_insn (jump); ++ else ++#endif ++ move_before = jump; ++ } + } + + do +Index: gcc/po/ChangeLog +=================================================================== +--- gcc/po/ChangeLog (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/po/ChangeLog (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -1,3 +1,7 @@ ++2011-10-30 Joseph Myers ++ ++ * ja.po: Update. ++ + 2011-10-26 Release Manager + + * GCC 4.6.2 released. +Index: gcc/po/ja.po +=================================================================== +--- gcc/po/ja.po (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/po/ja.po (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -20,7 +20,7 @@ + "Project-Id-Version: gcc 4.6.1\n" + "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" + "POT-Creation-Date: 2011-06-21 10:27+0000\n" +-"PO-Revision-Date: 2011-10-25 22:36+0900\n" ++"PO-Revision-Date: 2011-10-30 18:48+0900\n" + "Last-Translator: Yasuaki Taniguchi \n" + "Language-Team: Japanese \n" + "Language: ja\n" +@@ -834,12 +834,12 @@ + #: gcov.c:420 + #, c-format + msgid " -a, --all-blocks Show information for every basic block\n" +-msgstr "" ++msgstr " -a, --all-blocks 各基本ブロックに関する情報を表示する\n" + + #: gcov.c:421 + #, c-format + msgid " -b, --branch-probabilities Include branch probabilities in output\n" +-msgstr "" ++msgstr " -b, --branch-probabilities 出力に分岐可能性情報を含める\n" + + #: gcov.c:422 + #, c-format +@@ -847,6 +847,8 @@ + " -c, --branch-counts Given counts of branches taken\n" + " rather than percentages\n" + msgstr "" ++" -c, --branch-counts 分岐に関する百分率では無く行われた\n" ++" 回数を取得する\n" + + #: gcov.c:424 + #, c-format +@@ -859,21 +861,23 @@ + " -l, --long-file-names Use long output file names for included\n" + " source files\n" + msgstr "" ++" -l, --long-file-names インクルードされたソースファイルに関する長い\n" ++" 出力ファイル名を使用する\n" + + #: gcov.c:427 + #, c-format + msgid " -f, --function-summaries Output summaries for each function\n" +-msgstr "" ++msgstr " -f, --function-summaries 各関数に関する要約を出力する\n" + + #: gcov.c:428 + #, c-format + msgid " -o, --object-directory DIR|FILE Search for object files in DIR or called FILE\n" +-msgstr "" ++msgstr " -o, --object-directory DIR|FILE オブジェクトファイルを DIR 内または呼び出し用 FILE 内で検索する\n" + + #: gcov.c:429 + #, c-format + msgid " -p, --preserve-paths Preserve all pathname components\n" +-msgstr "" ++msgstr " -p, --preserve-paths すべてのパス名要素を保護する\n" + + #: gcov.c:430 + #, c-format +@@ -977,7 +981,7 @@ + #: gcov.c:1045 + #, c-format + msgid "%s:cannot open data file, assuming not executed\n" +-msgstr "" ++msgstr "%s:データファイルを開けません。実行されていないと見なします\n" + + #: gcov.c:1052 + #, c-format +@@ -1027,7 +1031,7 @@ + #: gcov.c:1379 + #, c-format + msgid "%s:graph is unsolvable for '%s'\n" +-msgstr "" ++msgstr "%s: '%s' 用のグラフが解決できません\n" + + #: gcov.c:1459 + #, c-format +@@ -1037,7 +1041,7 @@ + #: gcov.c:1462 + #, c-format + msgid "Lines executed:%s of %d\n" +-msgstr "" ++msgstr "実行された行:%s of %d\n" + + #: gcov.c:1466 + #, c-format +@@ -1047,7 +1051,7 @@ + #: gcov.c:1472 + #, c-format + msgid "Branches executed:%s of %d\n" +-msgstr "" ++msgstr "実行された分岐:%s of %d\n" + + #: gcov.c:1476 + #, c-format +@@ -1057,12 +1061,12 @@ + #: gcov.c:1482 + #, c-format + msgid "No branches\n" +-msgstr "" ++msgstr "分岐がありません\n" + + #: gcov.c:1484 + #, c-format + msgid "Calls executed:%s of %d\n" +-msgstr "" ++msgstr "実行された呼び出し:%s of %d\n" + + #: gcov.c:1488 + #, c-format +@@ -1075,24 +1079,24 @@ + msgstr "%s: '%s' に対する行がありません\n" + + #: gcov.c:1843 +-#, fuzzy, c-format ++#, c-format + msgid "call %2d returned %s\n" +-msgstr "呼び出し %d の戻り = %d\n" ++msgstr "" + + #: gcov.c:1848 +-#, fuzzy, c-format ++#, c-format + msgid "call %2d never executed\n" +-msgstr "呼び出し %d は一度も実行せず\n" ++msgstr "" + + #: gcov.c:1853 +-#, fuzzy, c-format ++#, c-format + msgid "branch %2d taken %s%s\n" +-msgstr "ブランチ %d 受理 = %d%%\n" ++msgstr "" + + #: gcov.c:1857 +-#, fuzzy, c-format ++#, c-format + msgid "branch %2d never executed\n" +-msgstr "ブランチ %d は一度も実行されず\n" ++msgstr "" + + #: gcov.c:1862 + #, c-format +@@ -1100,9 +1104,9 @@ + msgstr "" + + #: gcov.c:1865 +-#, fuzzy, c-format ++#, c-format + msgid "unconditional %2d never executed\n" +-msgstr "呼び出し %d は一度も実行せず\n" ++msgstr "" + + #: gcov.c:1901 + #, c-format +@@ -1412,11 +1416,11 @@ + + #: opts.c:1183 + msgid "The following options take separate arguments" +-msgstr "" ++msgstr "次のオプションは分離した引数を取ります" + + #: opts.c:1185 + msgid "The following options take joined arguments" +-msgstr "" ++msgstr "次のオプションは結合した引数を取ります" + + #: opts.c:1196 + msgid "The following options are language-related" +@@ -1472,7 +1476,7 @@ + #: targhooks.c:1469 + #, c-format + msgid "created and used with differing settings of '%s'" +-msgstr "" ++msgstr "作成時と使用時で '%s' の設定が異なります" + + #: targhooks.c:1471 + msgid "out of memory" +@@ -1480,11 +1484,11 @@ + + #: targhooks.c:1486 + msgid "created and used with different settings of -fpic" +-msgstr "" ++msgstr "作成時と使用時で -fpic の設定が異なります" + + #: targhooks.c:1488 + msgid "created and used with different settings of -fpie" +-msgstr "" ++msgstr "作成時と使用時で -fpie の設定が異なります" + + #: tlink.c:386 + #, c-format +@@ -1717,11 +1721,11 @@ + + #: params.def:100 + msgid "The maximum depth of recursive inlining for inline functions" +-msgstr "" ++msgstr "インライン関数を再帰的にインライン化する時の最大深度" + + #: params.def:105 + msgid "The maximum depth of recursive inlining for non-inline functions" +-msgstr "" ++msgstr "非インライン関数を再帰的にインライン化する時の最大深度" + + #: params.def:110 + msgid "Inline recursively only when the probability of call being executed exceeds the parameter" +@@ -1761,16 +1765,15 @@ + + #: params.def:180 + msgid "The size of function body to be considered large" +-msgstr "" ++msgstr "大きいと見なされる関数本体のサイズ" + + #: params.def:184 + msgid "Maximal growth due to inlining of large function (in percent)" + msgstr "" + + #: params.def:188 +-#, fuzzy + msgid "The size of translation unit to be considered large" +-msgstr "翻訳単位全体をファイルにダンプする" ++msgstr "大きいと見なされる翻訳単位のサイズ" + + #: params.def:192 + msgid "How much can given compilation unit grow because of the inlining (in percent)" +@@ -1786,20 +1789,19 @@ + + #: params.def:204 + msgid "The size of stack frame to be considered large" +-msgstr "" ++msgstr "大きいと見なされるスタックフレームのサイズ" + + #: params.def:208 + msgid "Maximal stack frame growth due to inlining (in percent)" +-msgstr "" ++msgstr "インライン化によって増加するスタックフレームの最大量 (百分率)" + + #: params.def:215 + msgid "The maximum amount of memory to be allocated by GCSE" +-msgstr "" ++msgstr "GCSE によって配置されるメモリの最大量" + + #: params.def:222 +-#, fuzzy + msgid "The maximum ratio of insertions to deletions of expressions in GCSE" +-msgstr "RPTS 用の最大反復数を指定する" ++msgstr "" + + #: params.def:233 + msgid "The threshold ratio for performing partial redundancy elimination after reload" +@@ -1963,9 +1965,8 @@ + msgstr "" + + #: params.def:470 +-#, fuzzy + msgid "Bound on number of iv uses in loop optimized in iv optimizations" +-msgstr "目立たない、コストのかかる最適化を行なう" ++msgstr "" + + #: params.def:478 + msgid "If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization" +@@ -2044,9 +2045,8 @@ + msgstr "" + + #: params.def:594 +-#, fuzzy + msgid "The maximum number of iterations through CFG to extend regions" +-msgstr "RPTS 用の最大反復数を指定する" ++msgstr "" + + #: params.def:599 + msgid "The maximum conflict delay for an insn to be considered for speculative motion" +@@ -2077,9 +2077,8 @@ + msgstr "" + + #: params.def:637 +-#, fuzzy + msgid "The upper bound for sharing integer constants" +-msgstr "`%s' の列挙値が整数定数ではありません" ++msgstr "整数定数を共有するための上限値" + + #: params.def:656 + msgid "Minimum number of virtual mappings to consider switching to full virtual renames" +@@ -2111,11 +2110,11 @@ + + #: params.def:714 + msgid "The number of insns executed before prefetch is completed" +-msgstr "" ++msgstr "プリフェッチが完了する前に実行される命令数" + + #: params.def:721 + msgid "The number of prefetches that can run at the same time" +-msgstr "" ++msgstr "同時に実行可能なプリフェッチの数" + + #: params.def:728 + msgid "The size of L1 cache" +@@ -2162,9 +2161,8 @@ + msgstr "" + + #: params.def:806 +-#, fuzzy + msgid "maximum number of parameters in a SCoP" +-msgstr "RPTS 用の最大反復数を指定する" ++msgstr "SCoP 内のパラメータの最大数" + + #: params.def:813 + msgid "maximum number of basic blocks per function to be analyzed by Graphite" +@@ -2597,9 +2595,9 @@ + msgstr "無効な %%E 値" + + #: config/alpha/alpha.c:5431 config/alpha/alpha.c:5479 +-#, fuzzy, c-format ++#, c-format + msgid "unknown relocation unspec" +-msgstr "不明な設定済コンストラクタ型です" ++msgstr "" + + #: config/alpha/alpha.c:5440 config/crx/crx.c:1119 + #: config/rs6000/rs6000.c:16490 config/spu/spu.c:1726 +@@ -3000,32 +2998,32 @@ + #: config/i386/i386.c:14106 config/i386/i386.c:14146 + #, c-format + msgid "operand is not a condition code, invalid operand code 'D'" +-msgstr "" ++msgstr "被演算子は条件コードではありません。無効な被演算子コード 'D' です" + + #: config/i386/i386.c:14172 + #, c-format + msgid "operand is neither a constant nor a condition code, invalid operand code 'C'" +-msgstr "" ++msgstr "被演算子は定数でも条件コードでもありません。無効な被演算子コード 'C' です" + + #: config/i386/i386.c:14182 + #, c-format + msgid "operand is neither a constant nor a condition code, invalid operand code 'F'" +-msgstr "" ++msgstr "被演算子は定数でも条件コードでもありません。無効な被演算子コード 'F' です" + + #: config/i386/i386.c:14200 + #, c-format + msgid "operand is neither a constant nor a condition code, invalid operand code 'c'" +-msgstr "" ++msgstr "被演算子は定数でも条件コードでもありません。無効な被演算子コード 'c' です" + + #: config/i386/i386.c:14210 + #, c-format + msgid "operand is neither a constant nor a condition code, invalid operand code 'f'" +-msgstr "" ++msgstr "被演算子は定数でも条件コードでもありません。無効な被演算子コード 'f' です" + + #: config/i386/i386.c:14313 + #, c-format + msgid "operand is not a condition code, invalid operand code 'Y'" +-msgstr "" ++msgstr "被演算子は条件コードではありません。無効な被演算子コード 'Y' です" + + #: config/i386/i386.c:14339 + #, c-format +@@ -3098,7 +3096,7 @@ + #: config/lm32/lm32.c:529 + #, c-format + msgid "only 0.0 can be loaded as an immediate" +-msgstr "" ++msgstr "即値としてロードできるのは 0.0 のみです" + + #: config/lm32/lm32.c:599 + msgid "bad operand" +@@ -3138,15 +3136,15 @@ + + #: config/m32r/m32r.c:2290 + msgid "pre-increment address is not a register" +-msgstr "" ++msgstr "前置増分アドレスがレジスタではありません" + + #: config/m32r/m32r.c:2297 + msgid "pre-decrement address is not a register" +-msgstr "" ++msgstr "前置減分アドレスがレジスタではありません" + + #: config/m32r/m32r.c:2304 + msgid "post-increment address is not a register" +-msgstr "" ++msgstr "後置増分アドレスがレジスタではありません" + + #: config/m32r/m32r.c:2380 config/m32r/m32r.c:2394 + #: config/rs6000/rs6000.c:25500 +@@ -3252,7 +3250,7 @@ + + #: config/mmix/mmix.c:1589 config/mmix/mmix.c:1719 + msgid "MMIX Internal: Expected a CONST_INT, not this" +-msgstr "" ++msgstr "MMIX 内部: CONST_INT が予期されますが、異なっています" + + #: config/mmix/mmix.c:1668 + msgid "MMIX Internal: Bad value for 'm', not a CONST_INT" +@@ -3260,11 +3258,11 @@ + + #: config/mmix/mmix.c:1687 + msgid "MMIX Internal: Expected a register, not this" +-msgstr "" ++msgstr "MMIX 内部: レジスタが予期されますが、異なっています" + + #: config/mmix/mmix.c:1697 + msgid "MMIX Internal: Expected a constant, not this" +-msgstr "" ++msgstr "MMIX 内部: 定数が予期されますが、異なっています" + + #. We need the original here. + #: config/mmix/mmix.c:1781 +@@ -3301,7 +3299,7 @@ + + #: config/picochip/picochip.c:2983 config/picochip/picochip.c:3015 + msgid "Bad address, not (reg+disp):" +-msgstr "" ++msgstr "誤ったアドレスです。 (reg+disp) ではありません:" + + #: config/picochip/picochip.c:3029 + msgid "Bad address, not register:" +@@ -3526,15 +3524,15 @@ + + #: config/sh/sh.c:9271 + msgid "created and used with different architectures / ABIs" +-msgstr "" ++msgstr "作成時と使用時で アーキテクチャ/ABI が異なります" + + #: config/sh/sh.c:9273 + msgid "created and used with different ABIs" +-msgstr "" ++msgstr "作成時と使用時で ABI が異なります" + + #: config/sh/sh.c:9275 + msgid "created and used with different endianness" +-msgstr "" ++msgstr "作成時と使用時でエンディアンが異なります" + + #: config/sparc/sparc.c:7445 config/sparc/sparc.c:7451 + #, c-format +@@ -3617,7 +3615,7 @@ + #: config/vax/vax.c:427 + #, c-format + msgid "symbol with offset used in PIC mode" +-msgstr "" ++msgstr "PIC モードで使用されるオフセット付きのシンボルです" + + #: config/vax/vax.c:513 + #, c-format +@@ -3837,19 +3835,19 @@ + msgstr "%s:%d:%d: ここから再帰的に実体化されました" + + #: cp/error.c:2913 +-#, fuzzy, c-format ++#, c-format + msgid "%s:%d:%d: instantiated from here" + msgstr "%s:%d:%d: ここから実体化されました" + + #: cp/error.c:2918 + #, c-format + msgid "%s:%d: recursively instantiated from here" +-msgstr "" ++msgstr "%s:%d: ここから再帰的に実体化されました" + + #: cp/error.c:2919 +-#, fuzzy, c-format ++#, c-format + msgid "%s:%d: instantiated from here" +-msgstr "%s:%d: ここで実体化されました\n" ++msgstr "%s:%d: ここから実体化されました" + + #: cp/error.c:2962 + #, c-format +@@ -4029,22 +4027,21 @@ + #: fortran/expr.c:607 + #, c-format + msgid "Constant expression required at %C" +-msgstr "" ++msgstr "%C では定数式が要求されます" + + #: fortran/expr.c:610 + #, c-format + msgid "Integer expression required at %C" +-msgstr "" ++msgstr "%C では整数式が要求されます" + + #: fortran/expr.c:615 +-#, fuzzy, c-format ++#, c-format + msgid "Integer value too large in expression at %C" +-msgstr "式の整数がオーバーフローしました" ++msgstr "%C の式内で整数値が大きすぎます" + + #: fortran/expr.c:3147 +-#, fuzzy + msgid "array assignment" +-msgstr "代入" ++msgstr "配列代入" + + #: fortran/gfortranspec.c:303 + #, c-format +@@ -4080,7 +4077,7 @@ + + #: fortran/io.c:551 + msgid "Unexpected element '%c' in format string at %L" +-msgstr "" ++msgstr "予期しない要素 '%c' が書式文字列内 (位置 %L) にあります" + + #: fortran/io.c:553 + msgid "Unexpected end of format string" +@@ -4088,15 +4085,15 @@ + + #: fortran/io.c:554 + msgid "Zero width in format descriptor" +-msgstr "" ++msgstr "幅 0 の書式記述子です" + + #: fortran/io.c:574 + msgid "Missing leading left parenthesis" +-msgstr "" ++msgstr "前に左小括弧がありません" + + #: fortran/io.c:603 + msgid "Left parenthesis required after '*'" +-msgstr "" ++msgstr "'*' の後には左小括弧が必要です" + + #: fortran/io.c:634 + msgid "Expected P edit descriptor" +@@ -4116,9 +4113,8 @@ + msgstr "" + + #: fortran/io.c:844 +-#, fuzzy + msgid "E specifier not allowed with g0 descriptor" +-msgstr "型指定子 `%s' は struct や class の後には使えません" ++msgstr "" + + #: fortran/io.c:914 + msgid "Positive exponent width required" +@@ -4362,9 +4358,8 @@ + msgstr "" + + #: fortran/resolve.c:6233 +-#, fuzzy + msgid "End expression in DO loop" +-msgstr "オペランドとして無効な式" ++msgstr "" + + #: fortran/resolve.c:6237 + msgid "Step expression in DO loop" +@@ -4564,7 +4559,7 @@ + #: java/jcf-dump.c:1148 + #, c-format + msgid " --extdirs PATH Set extensions directory path\n" +-msgstr "" ++msgstr " --extdirs PATH 拡張のディレクトリパスを設定する\n" + + #: java/jcf-dump.c:1149 + #, c-format +@@ -4734,18 +4729,18 @@ + #: config/pa/pa-hpux11.h:111 config/pa/pa64-hpux.h:30 config/pa/pa64-hpux.h:33 + #: config/pa/pa64-hpux.h:42 config/pa/pa64-hpux.h:45 + msgid "warning: consider linking with '-static' as system libraries with" +-msgstr "" ++msgstr "警告: システムライブラリとリンクする時は '-static' を指定することを検討してください" + + #: config/pa/pa-hpux10.h:90 config/pa/pa-hpux10.h:93 config/pa/pa-hpux10.h:101 + #: config/pa/pa-hpux10.h:104 config/pa/pa-hpux11.h:109 + #: config/pa/pa-hpux11.h:112 config/pa/pa64-hpux.h:31 config/pa/pa64-hpux.h:34 + #: config/pa/pa64-hpux.h:43 config/pa/pa64-hpux.h:46 + msgid " profiling support are only provided in archive format" +-msgstr "" ++msgstr " プロファイリングサポートは書庫フォーマット内でのみ提供されます" + + #: config/rs6000/darwin.h:99 + msgid " conflicting code gen style switches are used" +-msgstr "" ++msgstr " 競合しているコード生成スタイルスイッチが使用されています" + + #: config/arm/arm.h:178 + msgid "-msoft-float and -mhard_float may not be used together" +@@ -4805,7 +4800,7 @@ + + #: config/i386/linux-unwind.h:186 + msgid "ax ; {int $0x80 | syscall" +-msgstr "" ++msgstr "ax ; {int $0x80 | syscall" + + #: config/s390/tpf.h:120 + msgid "static is not supported on TPF-OS" +@@ -4869,7 +4864,7 @@ + + #: java/lang.opt:206 + msgid "--extdirs=\tSet the extension directory path" +-msgstr "" ++msgstr "--extdirs=\t拡張のディレクトリパスを設定する" + + #: java/lang.opt:216 + msgid "Input file is a file with a list of filenames to compile" +@@ -5388,7 +5383,7 @@ + + #: config/frv/frv.opt:31 + msgid "Enable label alignment optimizations" +-msgstr "" ++msgstr "ラベル整列最適化を有効にする" + + #: config/frv/frv.opt:35 + msgid "Dynamically allocate cc registers" +@@ -5452,7 +5447,7 @@ + + #: config/frv/frv.opt:116 + msgid "Enable use of GPREL for read-only data in FDPIC" +-msgstr "" ++msgstr "FDPIC 内の読み取り専用データ用 GPREL の使用を有効にする" + + #: config/frv/frv.opt:120 config/rs6000/rs6000.opt:216 + #: config/pdp11/pdp11.opt:67 +@@ -5460,9 +5455,8 @@ + msgstr "ハードウェア浮動小数点を利用する" + + #: config/frv/frv.opt:124 config/bfin/bfin.opt:77 +-#, fuzzy + msgid "Enable inlining of PLT in function calls" +-msgstr "関数呼び出しの前後でレジスタの保存を有効にする" ++msgstr "関数呼び出し内で PLT のインライン化を有効にする" + + #: config/frv/frv.opt:128 + msgid "Enable PIC support for building libraries" +@@ -5478,7 +5472,7 @@ + + #: config/frv/frv.opt:140 + msgid "Use media instructions" +-msgstr "" ++msgstr "media 命令を使用する" + + #: config/frv/frv.opt:144 + msgid "Use multiply add/subtract instructions" +@@ -5494,7 +5488,7 @@ + + #: config/frv/frv.opt:157 + msgid "Do not mark ABI switches in e_flags" +-msgstr "" ++msgstr "e_flags 内の ABI スイッチをマークしない" + + #: config/frv/frv.opt:161 + msgid "Remove redundant membars" +@@ -5506,7 +5500,7 @@ + + #: config/frv/frv.opt:169 + msgid "Enable setting GPRs to the result of comparisons" +-msgstr "" ++msgstr "比較結果を汎用レジスタに設定することを有効にする" + + #: config/frv/frv.opt:173 + msgid "Change the amount of scheduler lookahead" +@@ -5565,9 +5559,8 @@ + msgstr "" + + #: config/mn10300/mn10300.opt:56 +-#, fuzzy + msgid "Allow gcc to generate LIW instructions" +-msgstr "gcc が repeat/erepeat 命令を使用することを許可する" ++msgstr "gcc が LIW 命令を生成することを許可する" + + #: config/s390/tpf.opt:23 + msgid "Enable TPF-OS tracing code" +@@ -5640,11 +5633,11 @@ + + #: config/s390/s390.opt:91 + msgid "Warn if a function uses alloca or creates an array with dynamic size" +-msgstr "" ++msgstr "関数で alloca を使用するか、または動的サイズの配列を作成した場合に、警告する" + + #: config/s390/s390.opt:95 + msgid "Warn if a single function's framesize exceeds the given framesize" +-msgstr "" ++msgstr "一つの関数のフレームサイズが与えられたフレームサイズを超過する場合に警告する" + + #: config/s390/s390.opt:99 + msgid "z/Architecture" +@@ -5692,7 +5685,7 @@ + + #: config/ia64/ia64.opt:56 + msgid "gp is constant (but save/restore gp on indirect calls)" +-msgstr "gp を定数とする(但、間接呼び出しでは gp を save/restore する)" ++msgstr "gp を定数とする(ただし、間接呼び出しでは gp を save/restore する)" + + #: config/ia64/ia64.opt:60 + msgid "Generate self-relocatable code" +@@ -5741,39 +5734,39 @@ + #: config/ia64/ia64.opt:107 config/spu/spu.opt:72 config/sh/sh.opt:258 + #: config/pa/pa.opt:51 + msgid "Specify range of registers to make fixed" +-msgstr "" ++msgstr "固定するレジスタの範囲を指定する" + + #: config/ia64/ia64.opt:119 + msgid "Use data speculation before reload" +-msgstr "" ++msgstr "reload 前にデータ投機を使用する" + + #: config/ia64/ia64.opt:123 + msgid "Use data speculation after reload" +-msgstr "" ++msgstr "reload 後にデータ投機を使用する" + + #: config/ia64/ia64.opt:127 + msgid "Use control speculation" +-msgstr "" ++msgstr "制御投機を使用する" + + #: config/ia64/ia64.opt:131 + msgid "Use in block data speculation before reload" +-msgstr "" ++msgstr "reload 前にブロック内データ投機を使用する" + + #: config/ia64/ia64.opt:135 + msgid "Use in block data speculation after reload" +-msgstr "" ++msgstr "reload 後にブロック内データ投機を使用する" + + #: config/ia64/ia64.opt:139 + msgid "Use in block control speculation" +-msgstr "" ++msgstr "ブロック内制御投機を使用する" + + #: config/ia64/ia64.opt:143 + msgid "Use simple data speculation check" +-msgstr "" ++msgstr "単純データ投機検査を使用する" + + #: config/ia64/ia64.opt:147 + msgid "Use simple data speculation check for control speculation" +-msgstr "" ++msgstr "制御投機用の単純データ投機検査を使用する" + + #: config/ia64/ia64.opt:151 + msgid "If set, data speculative instructions will be chosen for schedule only if there are no other choices at the moment " +@@ -5789,7 +5782,7 @@ + + #: config/ia64/ia64.opt:163 + msgid "Place a stop bit after every cycle when scheduling" +-msgstr "" ++msgstr "スケジューリング時の各サイクル後にストップビットを配置する" + + #: config/ia64/ia64.opt:167 + msgid "Assume that floating-point stores and loads are not likely to cause conflict when placed into one instruction group" +@@ -5805,7 +5798,7 @@ + + #: config/ia64/ia64.opt:179 + msgid "Don't generate checks for control speculation in selective scheduling" +-msgstr "" ++msgstr "選択的スケジューリング内では制御投機用の検査を生成しない" + + #: config/ia64/vms_symvec_libgcc_s.opt:3 + msgid "! It would be better to auto-generate this file." +@@ -6109,7 +6102,7 @@ + + #: config/m68k/m68k.opt:160 config/bfin/bfin.opt:61 + msgid "Enable separate data segment" +-msgstr "" ++msgstr "分離データセグメントを有効にする" + + #: config/m68k/m68k.opt:164 config/bfin/bfin.opt:57 + msgid "ID of shared library to build" +@@ -6149,7 +6142,7 @@ + + #: config/i386/mingw.opt:23 + msgid "Warn about none ISO msvcrt scanf/printf width extensions" +-msgstr "" ++msgstr "非 ISO の msvcrt scanf/printf の幅拡張に関して警告する" + + #: config/i386/mingw.opt:27 + msgid "For nested functions on stack executable permission is set." +@@ -6201,7 +6194,7 @@ + + #: config/i386/i386.opt:114 + msgid "Data greater than given threshold will go into .ldata section in x86-64 medium model" +-msgstr "" ++msgstr "x86-64 メディアモデルでは与えられた閾値より大きいデータを .ldata セクションに配置する" + + #: config/i386/i386.opt:118 + msgid "Use given x86-64 code model" +@@ -6217,16 +6210,15 @@ + + #: config/i386/i386.opt:129 + msgid "Always use Dynamic Realigned Argument Pointer (DRAP) to realign stack" +-msgstr "" ++msgstr "スタックを再整列するために動的再整列引数ポインタ (Dynamic Realigned Argument Pointer, DRAP) を常に使用する" + + #: config/i386/i386.opt:133 + msgid "Return values of functions in FPU registers" + msgstr "FPU レジスタ内の機能の値を返す" + + #: config/i386/i386.opt:137 +-#, fuzzy + msgid "Generate floating point mathematics using given instruction set" +-msgstr "ハードウェア浮動小数点命令を使用する" ++msgstr "与えられた命令集合を使用して浮動小数数値計算を生成する" + + #: config/i386/i386.opt:149 + msgid "Inline all known string operations" +@@ -6314,8 +6306,9 @@ + msgstr "8 バイトベクトルをメモリに返す" + + #: config/i386/i386.opt:253 ++#, fuzzy + msgid "Generate reciprocals instead of divss and sqrtss." +-msgstr "" ++msgstr "divss および sqrtss の代わりに逆数 (reciprocal) を生成する" + + #: config/i386/i386.opt:257 + msgid "Generate cld instruction in the function prologue." +@@ -6331,7 +6324,7 @@ + + #: config/i386/i386.opt:271 + msgid "Use 128-bit AVX instructions instead of 256-bit AVX instructions in the auto-vectorizer." +-msgstr "" ++msgstr "自動ベクトル化で 256 ビット AVX 命令の代わりに 128 ビット AVX 命令を使用する" + + #: config/i386/i386.opt:277 + msgid "Generate 32bit i386 code" +@@ -6382,9 +6375,8 @@ + msgstr "SSE4.1 と SSE4.2 の組み込み関数とコード生成をサポートしない" + + #: config/i386/i386.opt:328 +-#, fuzzy + msgid "%<-msse5%> was removed" +-msgstr "'-msse5' は削除されました" ++msgstr "%<-msse5%> は削除されました" + + #: config/i386/i386.opt:333 + msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX built-in functions and code generation" +@@ -6544,7 +6536,7 @@ + + #: config/rs6000/rs6000.opt:152 + msgid "Use PowerPC General Purpose group optional instructions" +-msgstr "PowerPC 一般用途グループオプション命令を使用する" ++msgstr "PowerPC 汎用グループオプション命令を使用する" + + #: config/rs6000/rs6000.opt:156 + msgid "Use PowerPC Graphics group optional instructions" +@@ -7002,7 +6994,7 @@ + + #: config/mcore/mcore.opt:56 config/fr30/fr30.opt:27 + msgid "Assume that run-time support has been provided, so omit -lsim from the linker command line" +-msgstr "" ++msgstr "実行時サポートが提供されると見なし、リンカコマンドラインに -lsim を含めない" + + #: config/mcore/mcore.opt:60 + msgid "Use arbitrary sized immediates in bit operations" +@@ -7014,7 +7006,7 @@ + + #: config/mcore/mcore.opt:71 + msgid "Set the maximum amount for a single stack increment operation" +-msgstr "単一のスタックインクリメント操作の最大値を設定する" ++msgstr "単一のスタック増分操作の最大値を設定する" + + #: config/mcore/mcore.opt:75 + msgid "Always treat bitfields as int-sized" +@@ -7234,7 +7226,7 @@ + + #: config/sh/sh.opt:246 + msgid "Division strategy, one of: call, call2, fp, inv, inv:minlat, inv20u, inv20l, inv:call, inv:call2, inv:fp, call-div1, call-fp, call-table" +-msgstr "" ++msgstr "除算戦略、次のいずれか: call, call2, fp, inv, inv:minlat, inv20u, inv20l, inv:call, inv:call2, inv:fp, call-div1, call-fp, call-table" + + #: config/sh/sh.opt:250 + msgid "Specify name for 32 bit signed division function" +@@ -7282,7 +7274,7 @@ + + #: config/sh/sh.opt:298 + msgid "Mark MAC register as call-clobbered" +-msgstr "" ++msgstr "MAC レジスタを呼び出しで破壊されるとマークする" + + #: config/sh/sh.opt:304 + msgid "Make structs a multiple of 4 bytes (warning: ABI altered)" +@@ -7960,7 +7952,7 @@ + + #: config/m68hc11/m68hc11.opt:49 + msgid "Auto pre/post decrement increment allowed" +-msgstr "自動 pre/post デクリメント インクリメントを許容する" ++msgstr "自動 前置/後置 減分/増分 を許容する" + + #: config/m68hc11/m68hc11.opt:53 + msgid "Min/max instructions allowed" +@@ -7972,7 +7964,7 @@ + + #: config/m68hc11/m68hc11.opt:61 + msgid "Auto pre/post decrement increment not allowed" +-msgstr "自動 pre/post デクリメント インクリメントを許容しない" ++msgstr "自動 前置/後置 減分/増分を許容しない" + + #: config/m68hc11/m68hc11.opt:65 + msgid "Use jsr and rts for function calls and returns" +@@ -8346,7 +8338,7 @@ + + #: config/bfin/bfin.opt:69 + msgid "Link with the fast floating-point library" +-msgstr "" ++msgstr "高速な浮動小数ライブラリとリンクする" + + #: config/bfin/bfin.opt:81 + msgid "Do stack checking using bounds in L1 scratch memory" +@@ -8382,7 +8374,7 @@ + + #: config/picochip/picochip.opt:31 + msgid "Specify whether the byte access instructions should be used. Enabled by default." +-msgstr "" ++msgstr "バイトアクセス命令を使用するかどうかを指定する。デフォルトでは有効となる" + + #: config/picochip/picochip.opt:35 + msgid "Enable debug output to be generated." +@@ -8390,11 +8382,11 @@ + + #: config/picochip/picochip.opt:39 + msgid "Allow a symbol value to be used as an immediate value in an instruction." +-msgstr "" ++msgstr "命令内でシンボル値が即値として使用されることを許可する" + + #: config/picochip/picochip.opt:43 + msgid "Generate warnings when inefficient code is known to be generated." +-msgstr "" ++msgstr "非効率なコードが生成された時に警告する" + + #: config/vxworks.opt:36 + msgid "Assume the VxWorks RTP environment" +@@ -8418,7 +8410,7 @@ + + #: config/darwin.opt:205 + msgid "Warn if constant CFString objects contain non-portable characters" +-msgstr "" ++msgstr "定数 CFString オブジェクトが移植性の無い文字を含む場合に警告する" + + #: config/darwin.opt:210 + msgid "Generate AT&T-style stubs for Mach-O" +@@ -8430,7 +8422,7 @@ + + #: config/darwin.opt:218 + msgid "Generate code suitable for fast turn around debugging" +-msgstr "" ++msgstr "デバッグを高速に行うために適したコードを生成する" + + #: config/darwin.opt:227 + msgid "The earliest MacOS X version on which this program will run" +@@ -8442,15 +8434,15 @@ + + #: config/darwin.opt:235 + msgid "Generate code for darwin loadable kernel extensions" +-msgstr "" ++msgstr "darwin ロード可能カーネル拡張用のコードを生成する" + + #: config/darwin.opt:239 + msgid "Generate code for the kernel or loadable kernel extensions" +-msgstr "" ++msgstr "カーネル用、またはロード可能カーネル拡張用のコードを生成する" + + #: config/darwin.opt:243 + msgid "-iframework \tAdd to the end of the system framework include path" +-msgstr "" ++msgstr "-iframework \t をシステムフレームワークインクルードパスの末尾に加える" + + #: config/lynx.opt:23 + msgid "Support legacy multi-threading" +@@ -8737,7 +8729,6 @@ + msgstr "" + + #: config/microblaze/microblaze.opt:92 +-#, fuzzy + msgid "Use hardware floating point conversion instructions" + msgstr "ハードウェア浮動小数点変換命令を使用する" + +@@ -8862,7 +8853,7 @@ + + #: c-family/c.opt:249 + msgid "-MT \tAdd an unquoted target" +-msgstr "" ++msgstr "-MT \tターゲット (引用符を付けない) を追加する" + + #: c-family/c.opt:253 + msgid "Do not generate #line directives" +@@ -8898,11 +8889,11 @@ + + #: c-family/c.opt:288 + msgid "Warn about C constructs that are not in the common subset of C and C++" +-msgstr "" ++msgstr "C と C++ の共通部分集合では無い C 構文に関して警告する" + + #: c-family/c.opt:292 + msgid "Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 200x" +-msgstr "" ++msgstr "ISO C++ 1998 と ISO C++ 200x で意味が異なる C++ 構文に関して警告する" + + #: c-family/c.opt:296 + msgid "Warn about casts which discard qualifiers" +@@ -8962,7 +8953,7 @@ + + #: c-family/c.opt:352 + msgid "Warn about stray tokens after #elif and #endif" +-msgstr "" ++msgstr "#elif および #endif の後にあるはぐれたトークンに関して警告する" + + #: c-family/c.opt:356 + msgid "Warn about comparison of different enum types" +@@ -8977,9 +8968,8 @@ + msgstr "浮動小数点数の等価比較に関して警告する" + + #: c-family/c.opt:372 +-#, fuzzy + msgid "Warn about printf/scanf/strftime/strfmon format string anomalies" +-msgstr "printf/scanf/strftime/strfmon 形式の変則的なものに関して警告する" ++msgstr "printf/scanf/strftime/strfmon 書式文字列異常に関して警告する" + + #: c-family/c.opt:376 + msgid "Warn if passing too many arguments to a function for its format string" +@@ -8998,9 +8988,8 @@ + msgstr "セキュリティ問題になる可能性がある書式関数に関して警告する" + + #: c-family/c.opt:392 +-#, fuzzy + msgid "Warn about strftime formats yielding 2-digit years" +-msgstr "strftime 形式が二桁で年を表している時の警告しない" ++msgstr "strftime 書式が 2 桁の年の場合に警告する" + + #: c-family/c.opt:396 + msgid "Warn about zero-length formats" +@@ -9409,7 +9398,7 @@ + + #: c-family/c.opt:823 + msgid "Don't emit dllexported inline functions unless needed" +-msgstr "" ++msgstr "必要が無い限り dllexported インライン関数を発行しない" + + #: c-family/c.opt:830 + msgid "Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types." +@@ -9501,7 +9490,7 @@ + + #: c-family/c.opt:942 + msgid "Generate run time type descriptor information" +-msgstr "" ++msgstr "実行時型記述子情報を生成する" + + #: c-family/c.opt:946 + msgid "Use the same size for double as for float" +@@ -9889,19 +9878,16 @@ + msgstr "関数が __attribute__((pure)) の候補となりそうな場合に警告する" + + #: common.opt:608 +-#, fuzzy + msgid "Warn about enumerated switches, with no default, missing a case" +-msgstr "列挙定数の switch で case 指定が欠けているものに関して警告する" ++msgstr "列挙定数を使用した switch 文で default 文が無いか特定の case が無い場合に警告する" + + #: common.opt:612 +-#, fuzzy + msgid "Warn about enumerated switches missing a \"default:\" statement" +-msgstr "列挙定数の switch で case 指定が欠けているものに関して警告する" ++msgstr "列挙定数を使用した switch 文で \"default:\" 文が無い場合に警告する" + + #: common.opt:616 +-#, fuzzy + msgid "Warn about all enumerated switches missing a specific case" +-msgstr "列挙定数の switch で case 指定が欠けているものに関して警告する" ++msgstr "列挙定数を使用した switch 文で特定の case が無い場合に警告する" + + #: common.opt:620 + msgid "Do not suppress warnings from system headers" +@@ -10000,9 +9986,8 @@ + msgstr "自動増加/減少命令を生成する" + + #: common.opt:821 +-#, fuzzy + msgid "Generate code to check bounds before indexing arrays" +-msgstr "配列の添字と添字境界を検査するコードを生成する" ++msgstr "配列の添え字を使用する前に境界検査を行うコードを生成する" + + #: common.opt:825 + #, fuzzy +@@ -10043,7 +10028,7 @@ + + #: common.opt:864 + msgid "Looks for opportunities to reduce stack adjustments and stack references." +-msgstr "" ++msgstr "スタック調整およびスタック参照を削減する機会を探す" + + #: common.opt:868 + msgid "Do not put uninitialized globals in the common section" +@@ -10058,18 +10043,16 @@ + msgstr "" + + #: common.opt:884 +-#, fuzzy + msgid "Perform comparison elimination after register allocation has finished" +-msgstr "グローバル共通部分式を除去する" ++msgstr "レジスタは位置が完了した後に比較の除去を行う" + + #: common.opt:888 + msgid "Do not perform optimizations increasing noticeably stack usage" +-msgstr "" ++msgstr "スタック使用量を著しく増加させる最適化を行わない" + + #: common.opt:892 +-#, fuzzy + msgid "Perform a register copy-propagation optimization pass" +-msgstr "最適化過程のレジスタつけ変えを行なう" ++msgstr "" + + #: common.opt:896 + msgid "Perform cross-jumping optimization" +@@ -10101,7 +10084,7 @@ + + #: common.opt:928 + msgid "Map one directory name to another in debug information" +-msgstr "" ++msgstr "デバッグ情報内のディレクトリー名を他のものにマップする" + + #: common.opt:934 + msgid "Defer popping functions args from stack until later" +@@ -10116,9 +10099,8 @@ + msgstr "無意味な null ポインタ検査を削除する" + + #: common.opt:946 +-#, fuzzy + msgid "Try to convert virtual calls to direct ones." +-msgstr "リンカが PIC 呼び出しを直接呼び出しに変更することを許可するように試みる" ++msgstr "仮想呼び出しを直接呼び出しに変換することを試みる" + + #: common.opt:950 + #, fuzzy +@@ -10137,7 +10119,7 @@ + + #: common.opt:978 + msgid "-fdump-final-insns=filename\tDump to filename the insns at the end of translation" +-msgstr "" ++msgstr "-fdump-final-insns=filename\t翻訳終了時に filename へ命令をダンプする" + + #: common.opt:982 + msgid "-fdump-go-spec=filename\tWrite all declarations to file as Go code" +@@ -10173,7 +10155,7 @@ + + #: common.opt:1014 common.opt:1018 + msgid "Perform unused type elimination in debug info" +-msgstr "" ++msgstr "デバッグ情報内で使用されていない型の除去を行う" + + #: common.opt:1022 + msgid "Do not suppress C++ class debug information." +@@ -10181,25 +10163,24 @@ + + #: common.opt:1026 + msgid "Generate debug information to support Identical Code Folding (ICF)" +-msgstr "" ++msgstr "Identical Code Folding (ICF) をサポートするためのデバッグ情報を生成する" + + #: common.opt:1030 + msgid "Enable exception handling" + msgstr "例外処理を有効にする" + + #: common.opt:1034 +-#, fuzzy + msgid "Perform a number of minor, expensive optimizations" +-msgstr "目立たない、コストのかかる最適化を行なう" ++msgstr "多くの、目立たないがコストが高い最適化を行う" + + #: common.opt:1038 + msgid "-fexcess-precision=[fast|standard]\tSpecify handling of excess floating-point precision" +-msgstr "" ++msgstr "-fexcess-precision=[fast|standard]\t余分な浮動小数点精度の取り扱いを指定する" + + #: common.opt:1041 + #, c-format + msgid "unknown excess precision style %qs" +-msgstr "" ++msgstr "不明な余分な精度スタイル %qs です" + + #: common.opt:1054 + msgid "Assume no NaNs or infinities are generated" +@@ -10222,52 +10203,45 @@ + msgstr "" + + #: common.opt:1077 +-#, fuzzy, c-format ++#, c-format + msgid "unknown floating point contraction style %qs" +-msgstr "浮動小数点定数を TOC 内に配置する" ++msgstr "不明な浮動小数短縮形 %qs です" + + #: common.opt:1094 + msgid "Allow function addresses to be held in registers" + msgstr "関数アドレスをレジスタに持たせる事を許可する" + + #: common.opt:1098 +-#, fuzzy + msgid "Place each function into its own section" +-msgstr "各々の関数をそれ自身のセクションに配置する" ++msgstr "それぞれの関数をそれ自身のセクションに配置する" + + #: common.opt:1102 +-#, fuzzy + msgid "Perform global common subexpression elimination" +-msgstr "グローバル共通部分式を除去する" ++msgstr "大域共通部分式の除去を行う" + + #: common.opt:1106 +-#, fuzzy + msgid "Perform enhanced load motion during global common subexpression elimination" +-msgstr "グローバル共通部分式を除去する" ++msgstr "" + + #: common.opt:1110 +-#, fuzzy + msgid "Perform store motion after global common subexpression elimination" +-msgstr "グローバル共通部分式を除去する" ++msgstr "" + + #: common.opt:1114 + msgid "Perform redundant load after store elimination in global common subexpression" + msgstr "" + + #: common.opt:1119 +-#, fuzzy + msgid "Perform global common subexpression elimination after register allocation" +-msgstr "グローバル共通部分式を除去する" ++msgstr "レジスタ配置後に大域共通部分式の除去を行う" + + #: common.opt:1125 +-#, fuzzy + msgid "Enable in and out of Graphite representation" +-msgstr "自動テンプレート実体化を有効にする" ++msgstr "" + + #: common.opt:1129 +-#, fuzzy + msgid "Enable Graphite Identity transformation" +-msgstr "呼び出しグラフ情報を送出する" ++msgstr "" + + #: common.opt:1133 + msgid "Mark all loops as parallel" +@@ -10306,9 +10280,8 @@ + msgstr "" + + #: common.opt:1173 +-#, fuzzy + msgid "Perform conversion of conditional jumps to conditional execution" +-msgstr "条件的な実行への変更のための閾値を変更する" ++msgstr "" + + #: common.opt:1177 + msgid "Convert conditional jumps in innermost loops to branchless equivalents" +@@ -10376,13 +10349,12 @@ + msgstr "" + + #: common.opt:1253 +-#, fuzzy + msgid "Discover pure and const functions" +-msgstr "使われない仮想関数を切り捨てる" ++msgstr "純粋および定数関数を見つける" + + #: common.opt:1257 + msgid "Discover readonly and non addressable static variables" +-msgstr "" ++msgstr "読み取り専用およびアドレス付けできない静的変数を見つける" + + #: common.opt:1261 + msgid "Perform matrix layout flattening and transposing based" +@@ -10415,9 +10387,8 @@ + msgstr "" + + #: common.opt:1305 +-#, fuzzy + msgid "Share slots for saving different hard registers." +-msgstr "引数レジスタにローカルのものを格納する" ++msgstr "" + + #: common.opt:1309 + msgid "Share stack slots for spilled pseudo-registers." +@@ -10621,19 +10592,19 @@ + + #: common.opt:1521 + msgid "Enable basic program profiling code" +-msgstr "" ++msgstr "基本プログラムプロファイリングコードを有効にする" + + #: common.opt:1525 + msgid "Insert arc-based program profiling code" +-msgstr "" ++msgstr "円弧ベースプログラムプロファイリングコードを挿入する" + + #: common.opt:1529 + msgid "Set the top-level directory for storing the profile data." +-msgstr "" ++msgstr "プロファイルデータ保存用の最上位ディレクリーを設定する" + + #: common.opt:1534 + msgid "Enable correction of flow inconsistent profile data input" +-msgstr "" ++msgstr "フロー一貫性が無いデータ入力の訂正を有効にする" + + #: common.opt:1538 + msgid "Enable common options for generating profile info for profile feedback directed optimizations" +@@ -10653,7 +10624,7 @@ + + #: common.opt:1554 + msgid "Insert code to profile values of expressions" +-msgstr "" ++msgstr "式の値をプロファイルするためのコードを挿入する" + + #: common.opt:1561 + msgid "-frandom-seed=\tMake compile reproducible using " +@@ -11836,7 +11807,7 @@ + #: c-decl.c:1150 + #, gcc-internal-format + msgid "nested function %q+D declared but never defined" +-msgstr "" ++msgstr "入れ子になった関数 %q+D が宣言されましたが定義されていません" + + #: c-decl.c:1162 + #, gcc-internal-format +@@ -11893,7 +11864,7 @@ + #: c-decl.c:1613 + #, gcc-internal-format + msgid "prototype for %q+D follows non-prototype definition" +-msgstr "" ++msgstr "非プロトタイプ定義に続いて %q+D 用のプロトタイプがあります" + + #: c-decl.c:1628 + #, gcc-internal-format +@@ -11969,9 +11940,9 @@ + msgstr "%q+D が異なる型で再定義されました" + + #: c-decl.c:1818 +-#, fuzzy, gcc-internal-format ++#, gcc-internal-format + msgid "redefinition of typedef %q+D with variably modified type" +-msgstr "%q+D が異なる型で再定義されました" ++msgstr "" + + #: c-decl.c:1825 + #, gcc-internal-format +@@ -12016,17 +11987,17 @@ + #: c-decl.c:2001 + #, gcc-internal-format + msgid "extern declaration of %q+D follows declaration with no linkage" +-msgstr "" ++msgstr "リンク無し宣言の後に %q+D の extern 宣言が続いています" + + #: c-decl.c:2037 + #, gcc-internal-format + msgid "declaration of %q+D with no linkage follows extern declaration" +-msgstr "" ++msgstr "extern 宣言の後にリンク無し %q+D の宣言が続いています" + + #: c-decl.c:2043 + #, gcc-internal-format + msgid "redeclaration of %q+D with no linkage" +-msgstr "" ++msgstr "リンク無し %q+D の再定義です" + + #: c-decl.c:2069 + #, gcc-internal-format +@@ -12354,7 +12325,7 @@ + #: c-decl.c:4614 + #, gcc-internal-format + msgid "defining a type in a compound literal is invalid in C++" +-msgstr "" ++msgstr "複合リテラル内での型定義は C++ では無効です" + + #: c-decl.c:4666 c-decl.c:4681 + #, gcc-internal-format +@@ -13393,23 +13364,23 @@ + #: c-parser.c:1829 + #, gcc-internal-format + msgid "expression in static assertion is not an integer" +-msgstr "" ++msgstr "静的アサーション内の式が整数ではありません" + + #: c-parser.c:1836 + #, gcc-internal-format + msgid "expression in static assertion is not an integer constant expression" +-msgstr "" ++msgstr "静的アサーション内の式が整数定数式ではありません" + + #: c-parser.c:1841 + #, gcc-internal-format + msgid "expression in static assertion is not constant" +-msgstr "" ++msgstr "静的アサーション内の式が定数ではありません" + + #. Report the error. + #: c-parser.c:1846 cp/semantics.c:4719 + #, gcc-internal-format + msgid "static assertion failed: %E" +-msgstr "" ++msgstr "静的アサーションに失敗しました: %E" + + #: c-parser.c:2207 c-parser.c:3063 c-parser.c:3709 c-parser.c:3983 + #: c-parser.c:5084 c-parser.c:5175 c-parser.c:5800 c-parser.c:6083 +@@ -14125,12 +14096,12 @@ + #: c-typeck.c:3578 + #, gcc-internal-format + msgid "increment of enumeration value is invalid in C++" +-msgstr "列挙値のインクリメントは C++ では無効です" ++msgstr "列挙値の増分は C++ では無効です" + + #: c-typeck.c:3581 + #, gcc-internal-format + msgid "decrement of enumeration value is invalid in C++" +-msgstr "列挙値のデクリメントは C++ では無効です" ++msgstr "列挙値の減分は C++ では無効です" + + #: c-typeck.c:3594 + #, gcc-internal-format +@@ -14140,22 +14111,22 @@ + #: c-typeck.c:3613 c-typeck.c:3645 + #, gcc-internal-format + msgid "wrong type argument to increment" +-msgstr "インクリメントする引数の型が間違っています" ++msgstr "増分する引数の型が間違っています" + + #: c-typeck.c:3615 c-typeck.c:3648 + #, gcc-internal-format + msgid "wrong type argument to decrement" +-msgstr "デクリメントする引数の型が間違っています" ++msgstr "減分する引数の型が間違っています" + + #: c-typeck.c:3635 + #, gcc-internal-format + msgid "increment of pointer to unknown structure" +-msgstr "不明な構造体へのポインタのインクリメントです" ++msgstr "不明な構造体へのポインタの増分です" + + #: c-typeck.c:3638 + #, gcc-internal-format + msgid "decrement of pointer to unknown structure" +-msgstr "不明な構造体へのポインタのデクリメントです" ++msgstr "不明な構造体へのポインタの減分です" + + #: c-typeck.c:3722 + #, gcc-internal-format +@@ -14170,12 +14141,12 @@ + #: c-typeck.c:3895 c-family/c-common.c:8658 + #, gcc-internal-format + msgid "increment of read-only location %qE" +-msgstr "読み取り専用位置 %qE のインクリメントです" ++msgstr "読み取り専用位置 %qE の増分です" + + #: c-typeck.c:3898 c-family/c-common.c:8659 + #, gcc-internal-format + msgid "decrement of read-only location %qE" +-msgstr "読み取り専用位置 %qE のデクリメントです" ++msgstr "読み取り専用位置 %qE の減分です" + + #: c-typeck.c:3939 + #, gcc-internal-format +@@ -19787,12 +19758,12 @@ + #: c-family/c-common.c:8611 + #, gcc-internal-format + msgid "increment of member %qD in read-only object" +-msgstr "読み取り専用オブジェクト内のメンバ %qD のインクリメントです" ++msgstr "読み取り専用オブジェクト内のメンバ %qD の増分です" + + #: c-family/c-common.c:8613 + #, gcc-internal-format + msgid "decrement of member %qD in read-only object" +-msgstr "読み取り専用オブジェクト内のメンバ %qD のデクリメントです" ++msgstr "読み取り専用オブジェクト内のメンバ %qD の減分です" + + #: c-family/c-common.c:8615 + #, gcc-internal-format +@@ -19807,12 +19778,12 @@ + #: c-family/c-common.c:8620 + #, gcc-internal-format + msgid "increment of read-only member %qD" +-msgstr "読み取り専用メンバ %qD のインクリメントです" ++msgstr "読み取り専用メンバ %qD の増分です" + + #: c-family/c-common.c:8621 + #, gcc-internal-format + msgid "decrement of read-only member %qD" +-msgstr "読み取り専用メンバ %qD のデクリメントです" ++msgstr "読み取り専用メンバ %qD の減分です" + + #: c-family/c-common.c:8622 + #, gcc-internal-format +@@ -19827,12 +19798,12 @@ + #: c-family/c-common.c:8627 + #, gcc-internal-format + msgid "increment of read-only variable %qD" +-msgstr "読み取り専用変数 %qD のインクリメントです" ++msgstr "読み取り専用変数 %qD の増分です" + + #: c-family/c-common.c:8628 + #, gcc-internal-format + msgid "decrement of read-only variable %qD" +-msgstr "読み取り専用変数 %qD のデクリメントです" ++msgstr "読み取り専用変数 %qD の減分です" + + #: c-family/c-common.c:8629 + #, gcc-internal-format +@@ -19847,12 +19818,12 @@ + #: c-family/c-common.c:8633 + #, gcc-internal-format + msgid "increment of read-only parameter %qD" +-msgstr "読み取り専用パラメータ %qD のインクリメントです" ++msgstr "読み取り専用パラメータ %qD の増分です" + + #: c-family/c-common.c:8634 + #, gcc-internal-format + msgid "decrement of read-only parameter %qD" +-msgstr "読み取り専用パラメータ %qD のデクリメントです" ++msgstr "読み取り専用パラメータ %qD の減分です" + + #: c-family/c-common.c:8635 + #, gcc-internal-format +@@ -19867,12 +19838,12 @@ + #: c-family/c-common.c:8642 + #, gcc-internal-format + msgid "increment of read-only named return value %qD" +-msgstr "読み取り専用名前付き戻り値 %qD のインクリメントです" ++msgstr "読み取り専用名前付き戻り値 %qD の増分です" + + #: c-family/c-common.c:8644 + #, gcc-internal-format + msgid "decrement of read-only named return value %qD" +-msgstr "読み取り専用名前付き戻り値 %qD のデクリメントです" ++msgstr "読み取り専用名前付き戻り値 %qD の減分です" + + #: c-family/c-common.c:8646 + #, gcc-internal-format +@@ -19887,12 +19858,12 @@ + #: c-family/c-common.c:8652 + #, gcc-internal-format + msgid "increment of function %qD" +-msgstr "関数 %qD のインクリメントです" ++msgstr "関数 %qD の増分です" + + #: c-family/c-common.c:8653 + #, gcc-internal-format + msgid "decrement of function %qD" +-msgstr "関数 %qD のデクリメントです" ++msgstr "関数 %qD の減分です" + + #: c-family/c-common.c:8654 + #, gcc-internal-format +@@ -19912,12 +19883,12 @@ + #: c-family/c-common.c:8677 + #, gcc-internal-format + msgid "lvalue required as increment operand" +-msgstr "インクリメントの被演算子として左辺値が必要です" ++msgstr "増分の被演算子として左辺値が必要です" + + #: c-family/c-common.c:8680 + #, gcc-internal-format + msgid "lvalue required as decrement operand" +-msgstr "デクリメントの被演算子として左辺値が必要です" ++msgstr "減分の被演算子として左辺値が必要です" + + #: c-family/c-common.c:8683 + #, gcc-internal-format +@@ -20556,12 +20527,12 @@ + #: c-family/c-omp.c:375 cp/semantics.c:4431 + #, gcc-internal-format + msgid "missing increment expression" +-msgstr "インクリメント式がありません" ++msgstr "増分式がありません" + + #: c-family/c-omp.c:444 cp/semantics.c:4287 + #, gcc-internal-format + msgid "invalid increment expression" +-msgstr "無効なインクリメント式です" ++msgstr "無効な増分式です" + + #: c-family/c-opts.c:303 + #, gcc-internal-format +@@ -20571,7 +20542,7 @@ + #: c-family/c-opts.c:306 + #, gcc-internal-format + msgid "obsolete option -I- used, please use -iquote instead" +-msgstr "廃止あれたオプション -I- が使用されています。代わりに -iquote を使用してください" ++msgstr "廃止されたオプション -I- が使用されています。代わりに -iquote を使用してください" + + #: c-family/c-opts.c:486 + #, gcc-internal-format +Index: gcc/tree-object-size.c +=================================================================== +--- gcc/tree-object-size.c (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/tree-object-size.c (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -175,7 +175,7 @@ + unsigned HOST_WIDE_INT sz; + + if (!osi || (object_size_type & 1) != 0 +- || TREE_CODE (pt_var) != SSA_NAME) ++ || TREE_CODE (TREE_OPERAND (pt_var, 0)) != SSA_NAME) + { + sz = compute_builtin_object_size (TREE_OPERAND (pt_var, 0), + object_size_type & ~1); +Index: gcc/c-parser.c +=================================================================== +--- gcc/c-parser.c (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/c-parser.c (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -6294,7 +6294,7 @@ + c_parser_error (parser, "expected identifier"); + c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, + "expected %<)%>"); +- expr.value = fold_offsetof (offsetof_ref, NULL_TREE); ++ expr.value = fold_offsetof (offsetof_ref); + } + break; + case RID_CHOOSE_EXPR: +Index: gcc/config/sparc/sparc.md +=================================================================== +--- gcc/config/sparc/sparc.md (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/config/sparc/sparc.md (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -1813,8 +1813,8 @@ + }) + + (define_insn "*movsf_insn" +- [(set (match_operand:V32 0 "nonimmediate_operand" "=d,f,*r,*r,*r,f,*r,m,m") +- (match_operand:V32 1 "input_operand" "GY,f,*rRY,Q,S,m,m,f,*rGY"))] ++ [(set (match_operand:V32 0 "nonimmediate_operand" "=d,f, *r,*r,*r,f,*r,m, m") ++ (match_operand:V32 1 "input_operand" "GY,f,*rRY, Q, S,m, m,f,*rGY"))] + "TARGET_FPU + && (register_operand (operands[0], mode) + || register_or_zero_operand (operands[1], mode))" +@@ -1861,8 +1861,8 @@ + ;; when -mno-fpu. + + (define_insn "*movsf_insn_no_fpu" +- [(set (match_operand:SF 0 "nonimmediate_operand" "=r,r,r,r,m") +- (match_operand:SF 1 "input_operand" "rR,Q,S,m,rG"))] ++ [(set (match_operand:SF 0 "nonimmediate_operand" "=r,r,r,r, m") ++ (match_operand:SF 1 "input_operand" "rR,Q,S,m,rG"))] + "! TARGET_FPU + && (register_operand (operands[0], SFmode) + || register_or_zero_operand (operands[1], SFmode))" +@@ -1948,8 +1948,8 @@ + + ;; Be careful, fmovd does not exist when !v9. + (define_insn "*movdf_insn_sp32" +- [(set (match_operand:DF 0 "nonimmediate_operand" "=e,W,U,T,o,e,*r,o,e,o") +- (match_operand:DF 1 "input_operand" "W#F,e,T,U,G,e,*rFo,*r,o#F,e"))] ++ [(set (match_operand:DF 0 "nonimmediate_operand" "= e,W,U,T,o,e, *r, o, e,o") ++ (match_operand:DF 1 "input_operand" "W#F,e,T,U,G,e,*rFo,*r,o#F,e"))] + "TARGET_FPU + && ! TARGET_V9 + && (register_operand (operands[0], DFmode) +@@ -1969,8 +1969,8 @@ + (set_attr "length" "*,*,*,*,2,2,2,2,2,2")]) + + (define_insn "*movdf_insn_sp32_no_fpu" +- [(set (match_operand:DF 0 "nonimmediate_operand" "=U,T,o,r,o") +- (match_operand:DF 1 "input_operand" "T,U,G,ro,r"))] ++ [(set (match_operand:DF 0 "nonimmediate_operand" "=U,T,o, r,o") ++ (match_operand:DF 1 "input_operand" " T,U,G,ro,r"))] + "! TARGET_FPU + && ! TARGET_V9 + && (register_operand (operands[0], DFmode) +@@ -1986,8 +1986,8 @@ + + ;; We have available v9 double floats but not 64-bit integer registers. + (define_insn "*movdf_insn_sp32_v9" +- [(set (match_operand:V64 0 "nonimmediate_operand" "=b,e,e,T,W,U,T,f,*r,o") +- (match_operand:V64 1 "input_operand" "GY,e,W#F,GY,e,T,U,o#F,*roGYDF,*rGYf"))] ++ [(set (match_operand:V64 0 "nonimmediate_operand" "=b,e, e, T,W,U,T, f, *r, o") ++ (match_operand:V64 1 "input_operand" "GY,e,W#F,GY,e,T,U,o#F,*roFD,*rGYf"))] + "TARGET_FPU + && TARGET_V9 + && ! TARGET_ARCH64 +@@ -2009,8 +2009,8 @@ + (set_attr "fptype" "double,double,*,*,*,*,*,*,*,*")]) + + (define_insn "*movdf_insn_sp32_v9_no_fpu" +- [(set (match_operand:DF 0 "nonimmediate_operand" "=U,T,T,r,o") +- (match_operand:DF 1 "input_operand" "T,U,G,ro,rG"))] ++ [(set (match_operand:DF 0 "nonimmediate_operand" "=U,T,T, r, o") ++ (match_operand:DF 1 "input_operand" " T,U,G,ro,rG"))] + "! TARGET_FPU + && TARGET_V9 + && ! TARGET_ARCH64 +@@ -2027,8 +2027,8 @@ + + ;; We have available both v9 double floats and 64-bit integer registers. + (define_insn "*movdf_insn_sp64" +- [(set (match_operand:V64 0 "nonimmediate_operand" "=b,e,e,W,*r,*r,m,*r") +- (match_operand:V64 1 "input_operand" "GY,e,W#F,e,*rGY,m,*rGY,DF"))] ++ [(set (match_operand:V64 0 "nonimmediate_operand" "=b,e, e,W, *r,*r, m,*r") ++ (match_operand:V64 1 "input_operand" "GY,e,W#F,e,*rGY, m,*rGY,FD"))] + "TARGET_FPU + && TARGET_ARCH64 + && (register_operand (operands[0], mode) +@@ -2047,8 +2047,8 @@ + (set_attr "fptype" "double,double,*,*,*,*,*,*")]) + + (define_insn "*movdf_insn_sp64_no_fpu" +- [(set (match_operand:DF 0 "nonimmediate_operand" "=r,r,m") +- (match_operand:DF 1 "input_operand" "r,m,rG"))] ++ [(set (match_operand:DF 0 "nonimmediate_operand" "=r,r, m") ++ (match_operand:DF 1 "input_operand" "r,m,rG"))] + "! TARGET_FPU + && TARGET_ARCH64 + && (register_operand (operands[0], DFmode) +@@ -2288,8 +2288,8 @@ + }) + + (define_insn "*movtf_insn_sp32" +- [(set (match_operand:TF 0 "nonimmediate_operand" "=b,e,o,U,r") +- (match_operand:TF 1 "input_operand" "G,oe,GeUr,o,roG"))] ++ [(set (match_operand:TF 0 "nonimmediate_operand" "=b, e, o,U, r") ++ (match_operand:TF 1 "input_operand" " G,oe,GeUr,o,roG"))] + "TARGET_FPU + && ! TARGET_ARCH64 + && (register_operand (operands[0], TFmode) +@@ -2302,8 +2302,8 @@ + ;; when -mno-fpu. + + (define_insn "*movtf_insn_sp32_no_fpu" +- [(set (match_operand:TF 0 "nonimmediate_operand" "=o,U,o,r,o") +- (match_operand:TF 1 "input_operand" "G,o,U,roG,r"))] ++ [(set (match_operand:TF 0 "nonimmediate_operand" "=o,U,o, r,o") ++ (match_operand:TF 1 "input_operand" " G,o,U,roG,r"))] + "! TARGET_FPU + && ! TARGET_ARCH64 + && (register_operand (operands[0], TFmode) +@@ -2312,8 +2312,8 @@ + [(set_attr "length" "4")]) + + (define_insn "*movtf_insn_sp64" +- [(set (match_operand:TF 0 "nonimmediate_operand" "=b,e,o,r") +- (match_operand:TF 1 "input_operand" "G,oe,Ger,roG"))] ++ [(set (match_operand:TF 0 "nonimmediate_operand" "=b, e, o, r") ++ (match_operand:TF 1 "input_operand" "G,oe,Ger,roG"))] + "TARGET_FPU + && TARGET_ARCH64 + && ! TARGET_HARD_QUAD +@@ -2323,8 +2323,8 @@ + [(set_attr "length" "2")]) + + (define_insn "*movtf_insn_sp64_hq" +- [(set (match_operand:TF 0 "nonimmediate_operand" "=b,e,e,m,o,r") +- (match_operand:TF 1 "input_operand" "G,e,m,e,rG,roG"))] ++ [(set (match_operand:TF 0 "nonimmediate_operand" "=b,e,e,m, o, r") ++ (match_operand:TF 1 "input_operand" "G,e,m,e,rG,roG"))] + "TARGET_FPU + && TARGET_ARCH64 + && TARGET_HARD_QUAD +@@ -2341,8 +2341,8 @@ + (set_attr "length" "2,*,*,*,2,2")]) + + (define_insn "*movtf_insn_sp64_no_fpu" +- [(set (match_operand:TF 0 "nonimmediate_operand" "=r,o") +- (match_operand:TF 1 "input_operand" "orG,rG"))] ++ [(set (match_operand:TF 0 "nonimmediate_operand" "= r, o") ++ (match_operand:TF 1 "input_operand" "orG,rG"))] + "! TARGET_FPU + && TARGET_ARCH64 + && (register_operand (operands[0], TFmode) +Index: gcc/config/sparc/sparc.h +=================================================================== +--- gcc/config/sparc/sparc.h (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/config/sparc/sparc.h (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -408,6 +408,7 @@ + %{mcpu=sparclite:-Asparclite} \ + %{mcpu=sparclite86x:-Asparclite} \ + %{mcpu=f930:-Asparclite} %{mcpu=f934:-Asparclite} \ ++%{mcpu=v8:-Av8} \ + %{mv8plus:-Av8plus} \ + %{mcpu=v9:-Av9} \ + %{mcpu=ultrasparc:%{!mv8plus:-Av9a}} \ +Index: gcc/config/i386/i386.md +=================================================================== +--- gcc/config/i386/i386.md (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/config/i386/i386.md (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -5103,7 +5103,7 @@ + && reload_completed + && (SSE_REG_P (operands[0]) + || (GET_CODE (operands[0]) == SUBREG +- && SSE_REG_P (operands[0])))" ++ && SSE_REG_P (SUBREG_REG (operands[0]))))" + [(set (match_dup 0) (float:MODEF (match_dup 1)))]) + + (define_split +@@ -5116,7 +5116,7 @@ + && reload_completed + && (SSE_REG_P (operands[0]) + || (GET_CODE (operands[0]) == SUBREG +- && SSE_REG_P (operands[0])))" ++ && SSE_REG_P (SUBREG_REG (operands[0]))))" + [(set (match_dup 2) (match_dup 1)) + (set (match_dup 0) (float:MODEF (match_dup 2)))]) + +@@ -5207,7 +5207,7 @@ + && reload_completed + && (SSE_REG_P (operands[0]) + || (GET_CODE (operands[0]) == SUBREG +- && SSE_REG_P (operands[0])))" ++ && SSE_REG_P (SUBREG_REG (operands[0]))))" + [(const_int 0)] + { + rtx op1 = operands[1]; +@@ -5248,7 +5248,7 @@ + && reload_completed + && (SSE_REG_P (operands[0]) + || (GET_CODE (operands[0]) == SUBREG +- && SSE_REG_P (operands[0])))" ++ && SSE_REG_P (SUBREG_REG (operands[0]))))" + [(const_int 0)] + { + operands[3] = simplify_gen_subreg (mode, operands[0], +@@ -5270,7 +5270,7 @@ + && reload_completed + && (SSE_REG_P (operands[0]) + || (GET_CODE (operands[0]) == SUBREG +- && SSE_REG_P (operands[0])))" ++ && SSE_REG_P (SUBREG_REG (operands[0]))))" + [(const_int 0)] + { + rtx op1 = operands[1]; +@@ -5314,7 +5314,7 @@ + && reload_completed + && (SSE_REG_P (operands[0]) + || (GET_CODE (operands[0]) == SUBREG +- && SSE_REG_P (operands[0])))" ++ && SSE_REG_P (SUBREG_REG (operands[0]))))" + [(const_int 0)] + { + operands[3] = simplify_gen_subreg (mode, operands[0], +@@ -5375,7 +5375,7 @@ + && reload_completed + && (SSE_REG_P (operands[0]) + || (GET_CODE (operands[0]) == SUBREG +- && SSE_REG_P (operands[0])))" ++ && SSE_REG_P (SUBREG_REG (operands[0]))))" + [(set (match_dup 0) (float:MODEF (match_dup 1)))]) + + (define_insn "*float2_sse_nointerunit" +@@ -5410,7 +5410,7 @@ + && reload_completed + && (SSE_REG_P (operands[0]) + || (GET_CODE (operands[0]) == SUBREG +- && SSE_REG_P (operands[0])))" ++ && SSE_REG_P (SUBREG_REG (operands[0]))))" + [(set (match_dup 2) (match_dup 1)) + (set (match_dup 0) (float:MODEF (match_dup 2)))]) + +@@ -5423,7 +5423,7 @@ + && reload_completed + && (SSE_REG_P (operands[0]) + || (GET_CODE (operands[0]) == SUBREG +- && SSE_REG_P (operands[0])))" ++ && SSE_REG_P (SUBREG_REG (operands[0]))))" + [(set (match_dup 0) (float:MODEF (match_dup 1)))]) + + (define_insn "*float2_i387_with_temp" +@@ -14625,7 +14625,7 @@ + emit_insn (gen_sse4_1_round2 + (operands[0], operands[1], GEN_INT (0x04))); + else +- ix86_expand_rint (operand0, operand1); ++ ix86_expand_rint (operands[0], operands[1]); + } + else + { +@@ -14649,9 +14649,9 @@ + if (optimize_insn_for_size_p ()) + FAIL; + if (TARGET_64BIT || (mode != DFmode)) +- ix86_expand_round (operand0, operand1); ++ ix86_expand_round (operands[0], operands[1]); + else +- ix86_expand_rounddf_32 (operand0, operand1); ++ ix86_expand_rounddf_32 (operands[0], operands[1]); + DONE; + }) + +@@ -14796,7 +14796,7 @@ + { + if (optimize_insn_for_size_p ()) + FAIL; +- ix86_expand_lround (operand0, operand1); ++ ix86_expand_lround (operands[0], operands[1]); + DONE; + }) + +@@ -14871,9 +14871,9 @@ + emit_insn (gen_sse4_1_round2 + (operands[0], operands[1], GEN_INT (0x01))); + else if (TARGET_64BIT || (mode != DFmode)) +- ix86_expand_floorceil (operand0, operand1, true); ++ ix86_expand_floorceil (operands[0], operands[1], true); + else +- ix86_expand_floorceildf_32 (operand0, operand1, true); ++ ix86_expand_floorceildf_32 (operands[0], operands[1], true); + } + else + { +@@ -15053,7 +15053,7 @@ + { + if (TARGET_64BIT && optimize_insn_for_size_p ()) + FAIL; +- ix86_expand_lfloorceil (operand0, operand1, true); ++ ix86_expand_lfloorceil (operands[0], operands[1], true); + DONE; + }) + +@@ -15128,9 +15128,9 @@ + else if (optimize_insn_for_size_p ()) + FAIL; + else if (TARGET_64BIT || (mode != DFmode)) +- ix86_expand_floorceil (operand0, operand1, false); ++ ix86_expand_floorceil (operands[0], operands[1], false); + else +- ix86_expand_floorceildf_32 (operand0, operand1, false); ++ ix86_expand_floorceildf_32 (operands[0], operands[1], false); + } + else + { +@@ -15308,7 +15308,7 @@ + "SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH + && !flag_trapping_math" + { +- ix86_expand_lfloorceil (operand0, operand1, false); ++ ix86_expand_lfloorceil (operands[0], operands[1], false); + DONE; + }) + +@@ -15383,9 +15383,9 @@ + else if (optimize_insn_for_size_p ()) + FAIL; + else if (TARGET_64BIT || (mode != DFmode)) +- ix86_expand_trunc (operand0, operand1); ++ ix86_expand_trunc (operands[0], operands[1]); + else +- ix86_expand_truncdf_32 (operand0, operand1); ++ ix86_expand_truncdf_32 (operands[0], operands[1]); + } + else + { +@@ -18285,8 +18285,8 @@ + (match_operand:SI 3 "const_int_operand" "i")] + UNSPECV_LWPVAL_INTRINSIC)] + "TARGET_LWP" +- "/* Avoid unused variable warning. */ +- (void) operand0;") ++ ;; Avoid unused variable warning. ++ "(void) operands[0];") + + (define_insn "*lwp_lwpval3_1" + [(unspec_volatile [(match_operand:SWI48 0 "register_operand" "r") +Index: gcc/config/i386/sse.md +=================================================================== +--- gcc/config/i386/sse.md (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/config/i386/sse.md (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -4521,15 +4521,14 @@ + [(set (match_operand:V4DF 0 "register_operand" "=x,x") + (vec_select:V4DF + (vec_concat:V8DF +- (match_operand:V4DF 1 "nonimmediate_operand" "xm,x") +- (match_operand:V4DF 2 "nonimmediate_operand" " 1,xm")) ++ (match_operand:V4DF 1 "nonimmediate_operand" " x,m") ++ (match_operand:V4DF 2 "nonimmediate_operand" "xm,1")) + (parallel [(const_int 0) (const_int 4) + (const_int 2) (const_int 6)])))] +- "TARGET_AVX +- && (!MEM_P (operands[1]) || rtx_equal_p (operands[1], operands[2]))" ++ "TARGET_AVX" + "@ +- vmovddup\t{%1, %0|%0, %1} +- vunpcklpd\t{%2, %1, %0|%0, %1, %2}" ++ vunpcklpd\t{%2, %1, %0|%0, %1, %2} ++ vmovddup\t{%1, %0|%0, %1}" + [(set_attr "type" "sselog") + (set_attr "prefix" "vex") + (set_attr "mode" "V4DF")]) +Index: gcc/config/rs6000/rs6000.c +=================================================================== +--- gcc/config/rs6000/rs6000.c (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/config/rs6000/rs6000.c (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -20227,7 +20227,7 @@ + { + /* This blockage is needed so that sched doesn't decide to move + the sp change before the register restores. */ +- if (frame_reg_rtx != sp_reg_rtx ++ if (DEFAULT_ABI == ABI_V4 + || (TARGET_SPE_ABI + && info->spe_64bit_regs_used != 0 + && info->first_gp_reg_save != 32)) +Index: gcc/config/pa/pa.c +=================================================================== +--- gcc/config/pa/pa.c (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/config/pa/pa.c (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -1863,6 +1863,11 @@ + /* Handle the most common case: storing into a register. */ + else if (register_operand (operand0, mode)) + { ++ /* Legitimize TLS symbol references. This happens for references ++ that aren't a legitimate constant. */ ++ if (PA_SYMBOL_REF_TLS_P (operand1)) ++ operand1 = legitimize_tls_address (operand1); ++ + if (register_operand (operand1, mode) + || (GET_CODE (operand1) == CONST_INT + && cint_ok_for_move (INTVAL (operand1))) +Index: gcc/config/pa/pa.h +=================================================================== +--- gcc/config/pa/pa.h (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/config/pa/pa.h (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -848,6 +848,9 @@ + && (NEW_HP_ASSEMBLER \ + || TARGET_GAS \ + || GET_CODE (X) != LABEL_REF) \ ++ && (!PA_SYMBOL_REF_TLS_P (X) \ ++ || (SYMBOL_REF_TLS_MODEL (X) != TLS_MODEL_GLOBAL_DYNAMIC \ ++ && SYMBOL_REF_TLS_MODEL (X) != TLS_MODEL_LOCAL_DYNAMIC)) \ + && (!TARGET_64BIT \ + || GET_CODE (X) != CONST_DOUBLE) \ + && (!TARGET_64BIT \ +Index: gcc/reload1.c +=================================================================== +--- gcc/reload1.c (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ gcc/reload1.c (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -3899,6 +3899,10 @@ + if (XEXP (x, 0)) + set_label_offsets (XEXP (x, 0), NULL_RTX, 1); + ++ for (x = nonlocal_goto_handler_labels; x; x = XEXP (x, 1)) ++ if (XEXP (x, 0)) ++ set_label_offsets (XEXP (x, 0), NULL_RTX, 1); ++ + for_each_eh_label (set_initial_eh_label_offset); + } + +Index: libstdc++-v3/include/std/complex +=================================================================== +--- libstdc++-v3/include/std/complex (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ libstdc++-v3/include/std/complex (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -1,7 +1,7 @@ + // The template and inlines for the -*- C++ -*- complex number classes. + + // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, +-// 2006, 2007, 2008, 2009, 2010 ++// 2006, 2007, 2008, 2009, 2010, 2011 + // Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free +@@ -1695,12 +1695,9 @@ + std::complex<_Tp> + __complex_acosh(const std::complex<_Tp>& __z) + { +- std::complex<_Tp> __t((__z.real() - __z.imag()) +- * (__z.real() + __z.imag()) - _Tp(1.0), +- _Tp(2.0) * __z.real() * __z.imag()); +- __t = std::sqrt(__t); +- +- return std::log(__t + __z); ++ // Kahan's formula. ++ return _Tp(2.0) * std::log(std::sqrt(_Tp(0.5) * (__z + _Tp(1.0))) ++ + std::sqrt(_Tp(0.5) * (__z - _Tp(1.0)))); + } + + #if _GLIBCXX_USE_C99_COMPLEX_TR1 +Index: libstdc++-v3/include/tr1/complex +=================================================================== +--- libstdc++-v3/include/tr1/complex (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ libstdc++-v3/include/tr1/complex (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -185,12 +185,9 @@ + std::complex<_Tp> + __complex_acosh(const std::complex<_Tp>& __z) + { +- std::complex<_Tp> __t((__z.real() - __z.imag()) +- * (__z.real() + __z.imag()) - _Tp(1.0), +- _Tp(2.0) * __z.real() * __z.imag()); +- __t = std::sqrt(__t); +- +- return std::log(__t + __z); ++ // Kahan's formula. ++ return _Tp(2.0) * std::log(std::sqrt(_Tp(0.5) * (__z + _Tp(1.0))) ++ + std::sqrt(_Tp(0.5) * (__z - _Tp(1.0)))); + } + + #if _GLIBCXX_USE_C99_COMPLEX_TR1 +Index: libstdc++-v3/ChangeLog +=================================================================== +--- libstdc++-v3/ChangeLog (.../tags/gcc_4_6_2_release) (wersja 181284) ++++ libstdc++-v3/ChangeLog (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -1,3 +1,20 @@ ++2011-11-02 Richard B. Kreckel ++ Paolo Carlini ++ ++ PR libstdc++/50880 ++ * include/std/complex (__complex_acosh): Fix in a better way, ++ use Kahan's formula. ++ * include/tr1/complex (__complex_acosh): Likewise. ++ ++2011-11-02 Richard B. Kreckel ++ Paolo Carlini ++ ++ PR libstdc++/50880 ++ * include/std/complex (__complex_acosh): Fix for __z.real() < 0. ++ * include/tr1/complex (__complex_acosh): Likewise. ++ * testsuite/26_numerics/complex/50880.cc: New. ++ * testsuite/tr1/8_c_compatibility/complex/50880.cc: Likewise. ++ + 2011-10-26 Release Manager + + * GCC 4.6.2 released. +Index: libstdc++-v3/testsuite/26_numerics/complex/50880.cc +=================================================================== +--- libstdc++-v3/testsuite/26_numerics/complex/50880.cc (.../tags/gcc_4_6_2_release) (wersja 0) ++++ libstdc++-v3/testsuite/26_numerics/complex/50880.cc (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -0,0 +1,53 @@ ++// { dg-options "-std=gnu++0x" } ++// ++// Copyright (C) 2011 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++// ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++// ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING3. If not see ++// . ++ ++#include ++#include ++ ++template ++ void test01_do() ++ { ++ bool test __attribute__((unused)) = true; ++ ++ const std::complex ca(T(-2), T(2)); ++ const std::complex cb(T(-2), T(0)); ++ const std::complex cc(T(-2), T(-2)); ++ ++ std::complex cra = std::acosh(ca); ++ std::complex crb = std::acosh(cb); ++ std::complex crc = std::acosh(cc); ++ ++ VERIFY( cra.real() > T(0) ); ++ VERIFY( crb.real() > T(0) ); ++ VERIFY( crc.real() > T(0) ); ++ } ++ ++// libstdc++/50880 ++void test01() ++{ ++ test01_do(); ++ test01_do(); ++ test01_do(); ++} ++ ++int main() ++{ ++ test01(); ++ return 0; ++} +Index: libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/50880.cc +=================================================================== +--- libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/50880.cc (.../tags/gcc_4_6_2_release) (wersja 0) ++++ libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/50880.cc (.../branches/gcc-4_6-branch) (wersja 181284) +@@ -0,0 +1,51 @@ ++// Copyright (C) 2011 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++// ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++// ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING3. If not see ++// . ++ ++#include ++#include ++ ++template ++ void test01_do() ++ { ++ bool test __attribute__((unused)) = true; ++ ++ const std::complex ca(T(-2), T(2)); ++ const std::complex cb(T(-2), T(0)); ++ const std::complex cc(T(-2), T(-2)); ++ ++ std::complex cra = std::tr1::acosh(ca); ++ std::complex crb = std::tr1::acosh(cb); ++ std::complex crc = std::tr1::acosh(cc); ++ ++ VERIFY( cra.real() > T(0) ); ++ VERIFY( crb.real() > T(0) ); ++ VERIFY( crc.real() > T(0) ); ++ } ++ ++// libstdc++/50880 ++void test01() ++{ ++ test01_do(); ++ test01_do(); ++ test01_do(); ++} ++ ++int main() ++{ ++ test01(); ++ return 0; ++} diff --git a/gcc.spec b/gcc.spec index 82430a5..3fec800 100644 --- a/gcc.spec +++ b/gcc.spec @@ -78,7 +78,7 @@ Summary(pl.UTF-8): Kolekcja kompilatorów GNU: kompilator C i pliki współdziel Summary(pt_BR.UTF-8): Coleção dos compiladores GNU: o compilador C e arquivos compartilhados Name: gcc Version: %{major_ver}.%{minor_ver} -Release: 1 +Release: 2 Epoch: 6 License: GPL v3+ Group: Development/Languages @@ -703,7 +703,6 @@ standardowej C++. Summary: libstdc++ pretty printers for GDB Summary(pl.UTF-8): Funkcje wypisujące dane libstdc++ dla GDB Group: Development/Debuggers -Requires: python-gdb %description -n libstdc++-gdb This package contains Python scripts for GDB pretty printing of the