diff options
author | Richard Earnshaw <rearnsha@arm.com> | 2009-08-10 12:28:53 +0000 |
---|---|---|
committer | Richard Earnshaw <rearnsha@arm.com> | 2009-08-10 12:28:53 +0000 |
commit | 515a2d9dddc5c9ec2e5fb352d28b2e8adb144346 (patch) | |
tree | aba3a1c247b899eead6f35d2a27fdf5983eec3b6 | |
parent | 94294700e714a81f4eb2de568f387c76daa9ed51 (diff) | |
parent | 3f5d156f28c24193e4046f35cc32d900fa6be9d6 (diff) |
Merge gcc-4.4-branch through r150619.ARM/hard_vfp_4_4_branch
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/ARM/hard_vfp_4_4_branch@150624 138bc75d-0d04-0410-961f-82ee72b054a4
47 files changed, 921 insertions, 274 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1fe71240bf1..25bb473205b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,47 @@ +2009-08-09 Richard Guenther <rguenther@suse.de> + + PR tree-optimization/41016 + * tree-ssa-ifcombine.c (get_name_for_bit_test): Fix tuplification + bug. + (operand_precision): Remove. + (integral_operand_p): Likewise. + (recognize_single_bit_test): Adjust. + +2009-08-05 Uros Bizjak <ubizjak@gmail.com> + Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz> + + PR target/40906 + * config/i386/i386.c (ix86_split_long_move): Fix push of multi-part + source operand. + +2009-08-05 Richard Earnshaw <rearnsha@arm.com> + + * arm.md (movdi2): Copy non-reg values to DImode registers. + +2009-08-05 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/40924 + * dse.c (canon_address): Before calling cselib_expand_value_rtx + make sure canon_rtx (mem_address) isn't simpler than + canon_rtx (expanded_mem_address). + +2009-08-03 Janis Johnson <janis187@us.ibm.com> + + PR c/39902 + * simplify-rtx.c (simplify_binary_operation_1): Disable + simplifications for decimal float operations. + +2009-08-03 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/40943 + * tree-ssa.c (warn_uninitialized_var): Even on LHS warn for + operand of INDIRECT_REF. + +2009-08-03 Uros Bizjak <ubizjak@gmail.com> + + * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject CONST + constants referencing TLS symbols. + 2009-07-30 Andreas Krebbel <krebbel1@de.ibm.com> * config/s390/s390.c (override_options): Default diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index f5d90992ac8..b1425753fd2 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20090801 +20090810 diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index 21b4342a556..c6182dc6181 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -2052,11 +2052,22 @@ alpha_legitimate_constant_p (rtx x) switch (GET_CODE (x)) { - case CONST: case LABEL_REF: case HIGH: return true; + case CONST: + if (GET_CODE (XEXP (x, 0)) == PLUS + && GET_CODE (XEXP (XEXP (x, 0), 1)) == CONST_INT) + x = XEXP (XEXP (x, 0), 0); + else + return true; + + if (GET_CODE (x) != SYMBOL_REF) + return true; + + /* FALLTHRU */ + case SYMBOL_REF: /* TLS symbols are never valid. */ return SYMBOL_REF_TLS_MODEL (x) == 0; diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index 5a27f676833..f2b7a7d1b82 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -472,9 +472,9 @@ if (TARGET_THUMB1) { if (GET_CODE (operands[1]) != REG) - operands[1] = force_reg (SImode, operands[1]); + operands[1] = force_reg (DImode, operands[1]); if (GET_CODE (operands[2]) != REG) - operands[2] = force_reg (SImode, operands[2]); + operands[2] = force_reg (DImode, operands[2]); } " ) diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index b8e40b7d320..6751ad002b5 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -16309,10 +16309,20 @@ ix86_split_long_move (rtx operands[]) /* When emitting push, take care for source operands on the stack. */ if (push && MEM_P (operands[1]) && reg_overlap_mentioned_p (stack_pointer_rtx, operands[1])) - for (i = 0; i < nparts - 1; i++) - part[1][i] = change_address (part[1][i], - GET_MODE (part[1][i]), - XEXP (part[1][i + 1], 0)); + { + rtx src_base = XEXP (part[1][nparts - 1], 0); + + /* Compensate for the stack decrement by 4. */ + if (!TARGET_64BIT && nparts == 3 + && mode == XFmode && TARGET_128BIT_LONG_DOUBLE) + src_base = plus_constant (src_base, 4); + + /* src_base refers to the stack pointer and is + automatically decreased by emitted push. */ + for (i = 0; i < nparts; i++) + part[1][i] = change_address (part[1][i], + GET_MODE (part[1][i]), src_base); + } /* We need to do copy in the right order in case an address register of the source overlaps the destination. */ @@ -16382,7 +16392,8 @@ ix86_split_long_move (rtx operands[]) if (nparts == 3) { if (TARGET_128BIT_LONG_DOUBLE && mode == XFmode) - emit_insn (gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx, GEN_INT (-4))); + emit_insn (gen_addsi3 (stack_pointer_rtx, + stack_pointer_rtx, GEN_INT (-4))); emit_move_insn (part[0][2], part[1][2]); } else if (nparts == 4) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index fbe0f2ba647..0eac68b6581 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,28 @@ +2009-08-05 Jason Merrill <jason@redhat.com> + + PR c++/40948 + * init.c (build_vec_init): Evaluate the initializer before + starting the initialization try block. + +2009-08-04 Dodji Seketeli <dodji@redhat.com> + + PR c++/39987 + * pt.c (tsubst_default_argument): Let access checks of the + default argument happen in the context of the current function. + +2009-08-04 Dodji Seketeli <dodji@redhat.com> + + PR debug/39706 + * error.c (lang_decl_name): Print qualified names for decls + in namespace scope. + +2009-08-03 Jason Merrill <jason@redhat.com> + Jakub Jelinek <jakub@redhat.com> + + PR c++/40948 + * init.c (build_vec_init): Look through a TARGET_EXPR around a + CONSTRUCTOR. + 2009-07-26 Simon Martin <simartin@users.sourceforge.net> PR c++/40749 diff --git a/gcc/cp/error.c b/gcc/cp/error.c index cc4b92992ca..aebd65f31d4 100644 --- a/gcc/cp/error.c +++ b/gcc/cp/error.c @@ -2181,7 +2181,10 @@ lang_decl_name (tree decl, int v) return decl_as_string (decl, TFF_DECL_SPECIFIERS); reinit_cxx_pp (); - if (v == 1 && DECL_CLASS_SCOPE_P (decl)) + if (v == 1 + && (DECL_CLASS_SCOPE_P (decl) + || (DECL_NAMESPACE_SCOPE_P (decl) + && CP_DECL_CONTEXT (decl) != global_namespace))) { dump_type (CP_DECL_CONTEXT (decl), TFF_PLAIN_IDENTIFIER); pp_cxx_colon_colon (cxx_pp); diff --git a/gcc/cp/init.c b/gcc/cp/init.c index 0632cb0c1a3..d31c10037a7 100644 --- a/gcc/cp/init.c +++ b/gcc/cp/init.c @@ -2695,6 +2695,13 @@ build_vec_init (tree base, tree maxindex, tree init, gcc_assert (!init); inner_elt_type = strip_array_types (type); + + /* Look through the TARGET_EXPR around a compound literal. */ + if (init && TREE_CODE (init) == TARGET_EXPR + && TREE_CODE (TARGET_EXPR_INITIAL (init)) == CONSTRUCTOR + && from_array != 2) + init = TARGET_EXPR_INITIAL (init); + if (init && TREE_CODE (atype) == ARRAY_TYPE && (from_array == 2 @@ -2763,6 +2770,17 @@ build_vec_init (tree base, tree maxindex, tree init, base = get_temp_regvar (ptype, rval); iterator = get_temp_regvar (ptrdiff_type_node, maxindex); + /* If initializing one array from another, initialize element by + element. We rely upon the below calls to do the argument + checking. Evaluate the initializer before entering the try block. */ + if (from_array && init && TREE_CODE (init) != CONSTRUCTOR) + { + base2 = decay_conversion (init); + itype = TREE_TYPE (base2); + base2 = get_temp_regvar (itype, base2); + itype = TREE_TYPE (itype); + } + /* Protect the entire array initialization so that we can destroy the partially constructed array if an exception is thrown. But don't do this if we're assigning. */ @@ -2805,16 +2823,8 @@ build_vec_init (tree base, tree maxindex, tree init, } else if (from_array) { - /* If initializing one array from another, initialize element by - element. We rely upon the below calls the do argument - checking. */ if (init) - { - base2 = decay_conversion (init); - itype = TREE_TYPE (base2); - base2 = get_temp_regvar (itype, base2); - itype = TREE_TYPE (itype); - } + /* OK, we set base2 above. */; else if (TYPE_LANG_SPECIFIC (type) && TYPE_NEEDS_CONSTRUCTING (type) && ! TYPE_HAS_DEFAULT_CONSTRUCTOR (type)) diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 3754e2bdb85..58d7016d882 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -8007,11 +8007,11 @@ tsubst_default_argument (tree fn, tree type, tree arg) cp_function_chain->x_current_class_ref = saved_class_ref; } - pop_access_scope (fn); - /* Make sure the default argument is reasonable. */ arg = check_default_argument (type, arg); + pop_access_scope (fn); + return arg; } diff --git a/gcc/dse.c b/gcc/dse.c index 3298b4f0754..f7a1cbb007a 100644 --- a/gcc/dse.c +++ b/gcc/dse.c @@ -1070,6 +1070,8 @@ canon_address (rtx mem, { rtx mem_address = XEXP (mem, 0); rtx expanded_address, address; + int expanded; + /* Make sure that cselib is has initialized all of the operands of the address before asking it to do the subst. */ @@ -1114,72 +1116,88 @@ canon_address (rtx mem, fprintf (dump_file, "\n"); } - /* Use cselib to replace all of the reg references with the full - expression. This will take care of the case where we have + /* First see if just canon_rtx (mem_address) is const or frame, + if not, try cselib_expand_value_rtx and call canon_rtx on that. */ + address = NULL_RTX; + for (expanded = 0; expanded < 2; expanded++) + { + if (expanded) + { + /* Use cselib to replace all of the reg references with the full + expression. This will take care of the case where we have - r_x = base + offset; - val = *r_x; + r_x = base + offset; + val = *r_x; - by making it into - - val = *(base + offset); - */ - - expanded_address = cselib_expand_value_rtx (mem_address, scratch, 5); + by making it into - /* If this fails, just go with the mem_address. */ - if (!expanded_address) - expanded_address = mem_address; + val = *(base + offset); */ - /* Split the address into canonical BASE + OFFSET terms. */ - address = canon_rtx (expanded_address); + expanded_address = cselib_expand_value_rtx (mem_address, + scratch, 5); - *offset = 0; + /* If this fails, just go with the address from first + iteration. */ + if (!expanded_address) + break; + } + else + expanded_address = mem_address; - if (dump_file) - { - fprintf (dump_file, "\n after cselib_expand address: "); - print_inline_rtx (dump_file, expanded_address, 0); - fprintf (dump_file, "\n"); + /* Split the address into canonical BASE + OFFSET terms. */ + address = canon_rtx (expanded_address); - fprintf (dump_file, "\n after canon_rtx address: "); - print_inline_rtx (dump_file, address, 0); - fprintf (dump_file, "\n"); - } + *offset = 0; - if (GET_CODE (address) == CONST) - address = XEXP (address, 0); + if (dump_file) + { + if (expanded) + { + fprintf (dump_file, "\n after cselib_expand address: "); + print_inline_rtx (dump_file, expanded_address, 0); + fprintf (dump_file, "\n"); + } - if (GET_CODE (address) == PLUS && GET_CODE (XEXP (address, 1)) == CONST_INT) - { - *offset = INTVAL (XEXP (address, 1)); - address = XEXP (address, 0); - } + fprintf (dump_file, "\n after canon_rtx address: "); + print_inline_rtx (dump_file, address, 0); + fprintf (dump_file, "\n"); + } - if (const_or_frame_p (address)) - { - group_info_t group = get_group_info (address); + if (GET_CODE (address) == CONST) + address = XEXP (address, 0); - if (dump_file) - fprintf (dump_file, " gid=%d offset=%d \n", group->id, (int)*offset); - *base = NULL; - *group_id = group->id; - } - else - { - *base = cselib_lookup (address, Pmode, true); - *group_id = -1; + if (GET_CODE (address) == PLUS + && GET_CODE (XEXP (address, 1)) == CONST_INT) + { + *offset = INTVAL (XEXP (address, 1)); + address = XEXP (address, 0); + } - if (*base == NULL) + if (const_or_frame_p (address)) { + group_info_t group = get_group_info (address); + if (dump_file) - fprintf (dump_file, " no cselib val - should be a wild read.\n"); - return false; + fprintf (dump_file, " gid=%d offset=%d \n", + group->id, (int)*offset); + *base = NULL; + *group_id = group->id; + return true; } + } + + *base = cselib_lookup (address, Pmode, true); + *group_id = -1; + + if (*base == NULL) + { if (dump_file) - fprintf (dump_file, " varying cselib base=%d offset = %d\n", - (*base)->value, (int)*offset); + fprintf (dump_file, " no cselib val - should be a wild read.\n"); + return false; } + if (dump_file) + fprintf (dump_file, " varying cselib base=%d offset = %d\n", + (*base)->value, (int)*offset); return true; } diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog index dab71de84f8..65189cfe728 100644 --- a/gcc/po/ChangeLog +++ b/gcc/po/ChangeLog @@ -1,3 +1,7 @@ +2009-08-06 Joseph Myers <joseph@codesourcery.com> + + * es.po: Update. + 2009-07-29 Joseph Myers <joseph@codesourcery.com> * sv.po: Update. diff --git a/gcc/po/es.po b/gcc/po/es.po index 24b2b3dc47f..8fec564ebca 100644 --- a/gcc/po/es.po +++ b/gcc/po/es.po @@ -1,4 +1,4 @@ -# Mensajes en espańol para gcc-4.4-b20081121 +# Mensajes en espańol para gcc-4.4.1 # Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is distributed under the same license as the gcc package. # Cristian Othón Martínez Vera <cfuga@itam.mx>, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 @@ -7,10 +7,10 @@ # msgid "" msgstr "" -"Project-Id-Version: gcc 4.4-b20081121\n" +"Project-Id-Version: gcc 4.4.1\n" "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" "POT-Creation-Date: 2009-07-15 13:37+0200\n" -"PO-Revision-Date: 2009-03-03 14:52-0600\n" +"PO-Revision-Date: 2009-08-02 22:42-0500\n" "Last-Translator: Cristian Othón Martínez Vera <cfuga@itam.mx>\n" "Language-Team: Spanish <es@li.org>\n" "MIME-Version: 1.0\n" @@ -873,9 +873,8 @@ msgid " --target-help Display target specific command line options\n msgstr " --target-help Muestra opciones de línea de comando específicas del objetivo\n" #: gcc.c:3231 -#, fuzzy msgid " --help={target|optimizers|warnings|params|[^]{joined|separate|undocumented}}[,...]\n" -msgstr " --help={target|optimizers|warnings|undocumented|params}[,{[^]joined|[^]separate}]\n" +msgstr " --help={target|optimizers|warnings|params|[^]{joined|separate|undocumented}}[,...]\n" #: gcc.c:3232 msgid " Display specific types of command line options\n" @@ -886,9 +885,8 @@ msgid " (Use '-v --help' to display command line options of sub-processes)\n" msgstr " (Use '-v --help' para mostrar las opciones de línea de comando de los subprocesos)\n" #: gcc.c:3235 -#, fuzzy msgid " --version Display compiler version information\n" -msgstr " --help Muestra esta información\n" +msgstr " --version Muestra la información de versión del compilador\n" #: gcc.c:3236 msgid " -dumpspecs Display all of the built in spec strings\n" @@ -1070,9 +1068,9 @@ msgid "couldn't run '%s': %s" msgstr "no se puede ejecutar '%s': %s" #: gcc.c:3439 -#, fuzzy, c-format +#, c-format msgid "couldn't run '%s': %s: %s" -msgstr "no se puede ejecutar '%s': %s" +msgstr "no se puede ejecutar '%s': %s: %s" #. translate_options () has turned --version into -fversion. #: gcc.c:3643 @@ -1890,14 +1888,12 @@ msgid "The following options are not documented" msgstr "Las siguientes opciones no están documentadas" #: opts.c:1385 -#, fuzzy msgid "The following options take separate arguments" -msgstr "Las siguientes opciones no están documentadas" +msgstr "Las siguientes opciones toman argumentos separados" #: opts.c:1387 -#, fuzzy msgid "The following options take joined arguments" -msgstr "Las siguientes opciones no están documentadas" +msgstr "Las siguientes opciones toman argumentos conjuntos" #: opts.c:1398 msgid "The following options are language-related" @@ -2853,7 +2849,7 @@ msgstr "número de ciclos máximo para el RA regional" #: params.def:755 msgid "max size of conflict table in MB" -msgstr "" +msgstr "tamańo máximo de la tabla de conflictos en MB" #: params.def:763 msgid "The maximum ratio between array size and switch branches for a switch conversion to take place" @@ -2861,7 +2857,7 @@ msgstr "La tasa máxima entre el tamańo de la matriz y las ramificaciones switch #: params.def:771 msgid "max basic blocks number in loop for loop invariant motion" -msgstr "" +msgstr "número máximo de bloques básicos en el ciclo para el movimiento invariante de ciclo" #: config/alpha/alpha.c:5039 #, c-format @@ -3309,19 +3305,19 @@ msgid "invalid UNSPEC as operand" msgstr "UNSPEC inválido como operando" #: config/i386/i386.c:11065 config/i386/i386.c:11104 config/i386/i386.c:11278 -#, fuzzy, c-format +#, c-format msgid "operand is not a condition code, invalid operand code 'D'" -msgstr "el operando no es una constante ni un código de condición, código de operando 'c' inválido" +msgstr "el operando no es un código de condición, código de operando 'D' inválido" #: config/i386/i386.c:11129 -#, fuzzy, c-format +#, c-format msgid "operand is neither a constant nor a condition code, invalid operand code 'C'" -msgstr "el operando no es una constante ni un código de condición, código de operando 'c' inválido" +msgstr "el operando no es una constante ni un código de condición, código de operando 'C' inválido" #: config/i386/i386.c:11139 -#, fuzzy, c-format +#, c-format msgid "operand is neither a constant nor a condition code, invalid operand code 'F'" -msgstr "el operando no es una constante ni un código de condición, código de operando 'c' inválido" +msgstr "el operando no es una constante ni un código de condición, código de operando 'F' inválido" #: config/i386/i386.c:11157 #, c-format @@ -3329,9 +3325,9 @@ msgid "operand is neither a constant nor a condition code, invalid operand code msgstr "el operando no es una constante ni un código de condición, código de operando 'c' inválido" #: config/i386/i386.c:11167 -#, fuzzy, c-format +#, c-format msgid "operand is neither a constant nor a condition code, invalid operand code 'f'" -msgstr "el operando no es una constante ni un código de condición, código de operando 'c' inválido" +msgstr "el operando no es una constante ni un código de condición, código de operando 'f' inválido" #: config/i386/i386.c:11292 #, c-format @@ -4091,9 +4087,9 @@ msgid "'dim' argument of '%s' intrinsic at %L is not a valid dimension index" msgstr "el argumento 'dim' del intrínseco '%s' en %L no es un índice de dimensión válido" #: fortran/check.c:431 -#, fuzzy, no-c-format +#, no-c-format msgid "Unequal character lengths (%ld/%ld) in %s at %L" -msgstr "Longitudes de caracteres desiguales (%ld y %ld) en el intrínseco %s en %L" +msgstr "Longitudes de caracteres desiguales (%ld/%ld) en %s en %L" #: fortran/check.c:537 fortran/check.c:2039 fortran/check.c:2054 #, no-c-format @@ -4219,9 +4215,9 @@ msgid "'a1' argument of '%s' intrinsic at %L must be INTEGER, REAL or CHARACTER" msgstr "El argumento 'a1' del intrínseco '%s' en %L debe ser INTEGER, REAL o CHARACTER" #: fortran/check.c:1821 -#, fuzzy, no-c-format +#, no-c-format msgid "Argument types of '%s' intrinsic at %L must match (%s/%s)" -msgstr "El argumento 'a%d' del intrínseco '%s' en %L debe ser %s(%d)" +msgstr "Los tipos de argumento del intrínseco '%s' en %L deben coincidir (%s/%s)" #: fortran/check.c:1835 #, no-c-format @@ -4314,9 +4310,9 @@ msgid "Different shape in dimension %d for MASK and FIELD arguments of UNPACK at msgstr "Formas diferentes en la dimensión %d para los argumentos MASK y FIELD de UNPACK en %L" #: fortran/check.c:3190 fortran/check.c:3222 -#, fuzzy, no-c-format +#, no-c-format msgid "Size of '%s' argument of '%s' intrinsic at %L too small (%i/%i)" -msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser %s" +msgstr "El tamańo del argumento '%s' del intrínseco '%s' en %L es demasiado pequeńo (%i/%i)" #: fortran/check.c:3230 #, no-c-format @@ -4649,9 +4645,9 @@ msgid "Kind %d not supported for type %s at %C" msgstr "No se admite el género %d para el tipo %s en %C" #: fortran/decl.c:1992 -#, fuzzy, no-c-format +#, no-c-format msgid "C kind type parameter is for type %s but type at %L is %s" -msgstr "El parámetro de género C es para el tipo %s, pero el símbolo '%s' en %L es de tipo %s" +msgstr "El parámetro de tipo de género C es para el tipo %s, pero el tipo en %L es %s" #: fortran/decl.c:2001 #, no-c-format @@ -5823,14 +5819,14 @@ msgid "Bad pointer object in PURE procedure at %L" msgstr "Objeto puntero erróneo en el procedimiento PURE en %L" #: fortran/expr.c:3134 -#, fuzzy, no-c-format +#, no-c-format msgid "Invalid procedure pointer assignment at %L" -msgstr "Rangos diferentes en la asignación de puntero en %L" +msgstr "Asignación de puntero de procedimiento inválida en %L" #: fortran/expr.c:3140 -#, fuzzy, no-c-format +#, no-c-format msgid "Abstract interface '%s' is invalid in procedure pointer assignment at %L" -msgstr "Parámetros de tipo de género diferentes en la asignación de puntero en %L" +msgstr "La interfaz abstracta '%s' es inválida en la asignación de puntero de procedimiento en %L" #: fortran/expr.c:3159 #, no-c-format @@ -6385,9 +6381,8 @@ msgid "Fortran 2008: 'G0' in format at %C" msgstr "Fortran 2008: 'G0' en un formato en %C" #: fortran/io.c:745 -#, fuzzy msgid "E specifier not allowed with g0 descriptor" -msgstr "Se esperaba un descriptor de edición P" +msgstr "No se permite el especificador E con el descriptor g0" #: fortran/io.c:759 fortran/io.c:761 fortran/io.c:822 fortran/io.c:824 #, no-c-format @@ -7317,19 +7312,19 @@ msgid "Error writing module file '%s' for writing: %s" msgstr "Error al escribir al fichero de módulo '%s' para escritura: %s" #: fortran/module.c:4876 -#, fuzzy, no-c-format +#, no-c-format msgid "Can't delete module file '%s': %s" -msgstr "%s: no se puede borrar el fichero '%s': %s\n" +msgstr "No se puede borrar el fichero de módulo '%s': %s" #: fortran/module.c:4879 -#, fuzzy, no-c-format +#, no-c-format msgid "Can't rename module file '%s' to '%s': %s" -msgstr "%s: aviso: no se puede renombrar el fichero '%s' a '%s': %s\n" +msgstr "No se puede renombrar el fichero de módulo '%s' a '%s': %s" #: fortran/module.c:4885 -#, fuzzy, no-c-format +#, no-c-format msgid "Can't delete temporary module file '%s': %s" -msgstr "%s: no se puede borrar el fichero de información auxiliar '%s': %s\n" +msgstr "No se puede borrar el fichero de módulo temporal '%s': %s" #: fortran/module.c:4905 fortran/module.c:4987 #, no-c-format @@ -7408,12 +7403,12 @@ msgstr "El fichero '%s' abierto en %C no es un fichero de módulo GFORTRAN" #: fortran/module.c:5252 #, no-c-format msgid "Parse error when checking module version for file '%s' opened at %C" -msgstr "" +msgstr "Error de decodificación al revisar la versión de módulo para el fichero '%s' abierto en %C" #: fortran/module.c:5257 #, no-c-format msgid "Wrong module version '%s' (expected '" -msgstr "" +msgstr "Versión de módulo '%s' errónea (se esperaba '" # No se puede hacer el mismo juego de palabras que en inglés. cfuga #: fortran/module.c:5270 @@ -8604,7 +8599,7 @@ msgstr "El procedimiento GENERIC '%s' no se permite como un argumento actual en #: fortran/resolve.c:1163 #, no-c-format msgid "Non-RECURSIVE procedure '%s' at %L is possibly calling itself recursively. Declare it RECURSIVE or use -frecursive" -msgstr "" +msgstr "El procedimiento que no es RECURSIVE '%s' en %L posiblemente se está llamando a sí mismo recursivamente. Declárelo RECURSIVE o utilice -frecursive" #: fortran/resolve.c:1196 fortran/resolve.c:6023 fortran/resolve.c:6778 #, no-c-format @@ -8791,14 +8786,14 @@ msgid "Function reference to '%s' at %L is to a non-PURE procedure within a PURE msgstr "La referencia de función a '%s' en %L apunta a un procedimiento que no es PURE dentro de un procedimiento PURE" #: fortran/resolve.c:2493 -#, fuzzy, no-c-format +#, no-c-format msgid "ENTRY '%s' at %L cannot be called recursively, as function '%s' is not RECURSIVE" -msgstr "La llamada a la ENTRY '%s' en %L es recursiva, pero la función '%s' no se declaró como RECURSIVE" +msgstr "ENTRY '%s' en %L no se puede llamar recursivamente, porque la función '%s' no es RECURSIVE" #: fortran/resolve.c:2497 -#, fuzzy, no-c-format +#, no-c-format msgid "Function '%s' at %L cannot be called recursively, as it is not RECURSIVE" -msgstr "La función '%s' en %L no se puede llamar a sí misma, porque no es RECURSIVE" +msgstr "La función '%s' en %L no se puede llamar recursivamente, porque no es RECURSIVE" #: fortran/resolve.c:2544 #, no-c-format @@ -8846,14 +8841,14 @@ msgid "'%s' at %L has a type, which is not consistent with the CALL at %L" msgstr "'%s' en %L tiene un tipo, el cual no es consistente con CALL en %L" #: fortran/resolve.c:2957 -#, fuzzy, no-c-format +#, no-c-format msgid "ENTRY '%s' at %L cannot be called recursively, as subroutine '%s' is not RECURSIVE" -msgstr "La llamada a ENTRY '%s' en %L es recursiva, pero la subrutina '%s' no se declaró como RECURSIVE" +msgstr "ENTRY '%s' en %L no se puede llamar recursivamente, porque la subrutina '%s' no es RECURSIVE" #: fortran/resolve.c:2961 -#, fuzzy, no-c-format +#, no-c-format msgid "SUBROUTINE '%s' at %L cannot be called recursively, as it is not RECURSIVE" -msgstr "La SUBROUTINE '%s' en %L no se puede llamar a sí misma, porque no es RECURSIVE" +msgstr "SUBROUTINE '%s' en %L no se puede llamar recursivamente, porque no es RECURSIVE" #: fortran/resolve.c:3035 #, no-c-format @@ -9784,9 +9779,9 @@ msgid "Character length of component '%s' needs to be a constant specification e msgstr "La longitud de carácter del componente '%s' necesita ser una expresión de especificación constante en %L" #: fortran/resolve.c:8735 -#, fuzzy, no-c-format +#, no-c-format msgid "Fortran 2003: the component '%s' is a PRIVATE type and cannot be a component of '%s', which is PUBLIC at %L" -msgstr "El componente '%s' es un tipo PRIVATE y no puede ser un componente de '%s' el cual es PUBLIC en %L" +msgstr "Fortran 2003: el componente '%s' es un tipo PRIVATE y no puede ser un componente de '%s' el cual es PUBLIC en %L" #: fortran/resolve.c:8746 #, no-c-format @@ -9944,9 +9939,9 @@ msgid "Threadprivate at %L isn't SAVEd" msgstr "No se guarda (SAVE) el threadprivate en %L" #: fortran/resolve.c:9448 -#, fuzzy, no-c-format +#, no-c-format msgid "non-constant DATA value at %L" -msgstr "matriz no constante en la declaración DATA %L" +msgstr "valor DATA que no es constante en %L" #: fortran/resolve.c:9488 #, no-c-format @@ -11613,7 +11608,7 @@ msgstr "Genera código little-endian" #: 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 "Asume que se provee el soporte para tiempo de ejecución, así que omite -lsim en la línea de órdenes del enlazador" #: config/mcore/mcore.opt:60 msgid "Use arbitrary sized immediates in bit operations" @@ -12177,9 +12172,8 @@ msgid "Allow branches to be packed with other instructions" msgstr "Permite que las ramificaciones se empaquen con otras instrucciones" #: config/picochip/picochip.opt:23 -#, fuzzy msgid "Specify which type of AE to target. This option sets the mul-type and byte-access." -msgstr "Especifica a qué tipo de AE se apunta. Esta opción establece el tipo mul" +msgstr "Especifica a qué tipo de AE se apunta. Esta opción establece el tipo muly el acceso a byte." #: config/picochip/picochip.opt:27 msgid "Specify which type of multiplication to use. Can be mem, mac or none." @@ -12194,9 +12188,8 @@ msgid "Enable debug output to be generated." msgstr "Activa que la salida de depuración se genere." #: config/picochip/picochip.opt:39 -#, fuzzy msgid "Allow a symbol value to be used as an immediate value in an instruction." -msgstr "Permite que un valor de símbolo se use como un valor inmediato en an" +msgstr "Permite que un valor de símbolo se use como un valor inmediato en una instrucción." #: config/picochip/picochip.opt:43 msgid "Generate warnings when inefficient code is known to be generated." @@ -12970,9 +12963,8 @@ msgid "Generate load/store with update instructions" msgstr "Genera load/store con instrucciones de actualización" #: config/rs6000/rs6000.opt:124 -#, fuzzy msgid "Avoid generation of indexed load/store instructions when possible" -msgstr "No genera múltiples instrucciones load/store" +msgstr "Evita la generación de instrucciones indizadas load/store cuando sea posible" #: config/rs6000/rs6000.opt:128 msgid "Do not generate fused multiply/add instructions" @@ -14631,7 +14623,7 @@ msgstr "Construye para SDRAM" #: config/bfin/bfin.opt:101 msgid "Assume ICPLBs are enabled at runtime." -msgstr "" +msgstr "Asume que los ICPLBs están activos en tiempo de ejecución." #: java/lang.opt:69 msgid "Warn if deprecated empty statements are found" @@ -15279,13 +15271,12 @@ msgid "Perform structure layout optimizations based" msgstr "Realiza la ubicación de estructuras basada en optimizaciones" #: common.opt:680 -#, fuzzy msgid "-fira-algorithm=[CB|priority] Set the used IRA algorithm" -msgstr "-fira-algorithm=[regional|CB|mixed] Establece el algoritmo IRA a usar" +msgstr "-fira-algorithm=[CB|priority] Establece el algoritmo IRA a usar" #: common.opt:684 msgid "-fira-region=[one|all|mixed] Set regions for IRA" -msgstr "" +msgstr "-fira-region=[one|all|mixed] Establece las regiones para IRA" #: common.opt:688 msgid "Do optimistic coalescing." @@ -16278,7 +16269,7 @@ msgstr "Avisa sobre sobreescritura de inicializadores sin efectos secundarios" #: c.opt:373 msgid "Warn about packed bit-fields whose offset changed in GCC 4.4" -msgstr "" +msgstr "Avisa sobre campos de bits packed cuyo desplazamiento cambió en GCC 4.4" #: c.opt:377 msgid "Warn about possibly missing parentheses" @@ -16545,9 +16536,8 @@ msgid "Enable Objective-C setjmp exception handling runtime" msgstr "Activa el manejo de excepciones setjmp en tiempo de ejecución de Objective-C" #: c.opt:694 -#, fuzzy msgid "Enable OpenMP (implies -frecursive in Fortran)" -msgstr "Activa OpenMP (también establece frecursive)" +msgstr "Activa OpenMP (implica -frecursive en Fortran)" #: c.opt:698 msgid "Recognize C++ keywords like \"compl\" and \"xor\"" @@ -18582,9 +18572,9 @@ msgstr "ISO C90 no admite miembros de matriz flexibles" #. C99 6.7.5.2p4 #: c-decl.c:4431 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%<[*]%> not in a declaration" -msgstr "no se permite %<[*]%> fuera de una declaración" +msgstr "%<[*]%> fuera de una declaración" #: c-decl.c:4444 #, gcc-internal-format @@ -22968,9 +22958,9 @@ msgid "-freorder-blocks-and-partition does not work on this architecture" msgstr "-freorder-blocks-and-partition no funciona en esta arquitectura" #: opts.c:1081 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "-fira-algorithm=CB does not work on this architecture" -msgstr "-fira no funciona en esta arquitectura" +msgstr "-fira-algorithm=CB no funciona en esta arquitectura" #: opts.c:1390 #, gcc-internal-format @@ -23008,9 +22998,9 @@ msgid "unknown ira algorithm \"%s\"" msgstr "algoritmo ira \"%s\" desconocido" #: opts.c:1980 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "unknown ira region \"%s\"" -msgstr "algoritmo ira \"%s\" desconocido" +msgstr "región ira \"%s\" desconocido" #: opts.c:2083 #, gcc-internal-format @@ -23430,7 +23420,7 @@ msgstr "estructura de relleno para alinear %q+D" #: stor-layout.c:969 #, gcc-internal-format msgid "Offset of packed bit-field %qD has changed in GCC 4.4" -msgstr "" +msgstr "El desplazamiento del campo de bits packed %qD cambió en GCC 4.4" #: stor-layout.c:1273 #, gcc-internal-format @@ -23663,9 +23653,9 @@ msgid "SSA name in freelist but still referenced" msgstr "hay un nombre SSA en la lista libre, pero aún está referenciado" #: tree-cfg.c:2829 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "Indirect reference's operand is not a register or a constant." -msgstr "%s: El tercer operando fuente no es una constante" +msgstr "La referencia indirecta del operando no es un registro o una constante." #: tree-cfg.c:2838 #, gcc-internal-format @@ -23675,7 +23665,7 @@ msgstr "ASSERT_EXPR con una condición que es siempre falsa" #: tree-cfg.c:2844 #, gcc-internal-format msgid "MODIFY_EXPR not expected while having tuples." -msgstr "" +msgstr "no se espera MODIFY_EXPR mientras se tienen tuplas." #: tree-cfg.c:2865 #, gcc-internal-format @@ -24275,21 +24265,19 @@ msgid "unimplemented functionality" msgstr "funcionalidad sin implementar" #: tree-ssa-structalias.c:4791 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "initialized from %qE" -msgstr "const %qD sin inicializar" +msgstr "inicializado desde %qE" #: tree-ssa-structalias.c:4795 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "initialized from here" -msgstr "llamado desde aquí" +msgstr "inicializado desde aquí" -# No existe una traducción para type-punning. Gracias a Jose María Pérez -# por el comentario. cfuga #: tree-ssa-structalias.c:4844 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "dereferencing pointer %qD does break strict-aliasing rules" -msgstr "la dereferencia del puntero %D \"type-punned\" romperá las reglas de alias estricto" +msgstr "la dereferencia del puntero %qD rompe las reglas de alias estricto" #: tree-ssa.c:252 #, gcc-internal-format @@ -25257,7 +25245,7 @@ msgstr "no se pueden codificar las Rutinas de Servicios de Interrupción en el mo #: config/arm/arm.c:19618 #, gcc-internal-format msgid "the mangling of %<va_list%> has changed in GCC 4.4" -msgstr "" +msgstr "la decodificación de %<va_list%> cambió en GCC 4.4" #: config/arm/pe.c:158 config/mcore/mcore.c:2900 #, gcc-internal-format @@ -25272,17 +25260,17 @@ msgstr "la variable estática %q+D se marcó como dllimport" #: config/avr/avr.c:399 #, gcc-internal-format msgid "the -mno-tablejump switch is deprecated" -msgstr "" +msgstr "la opción -mno-tablejump es obsoleta" #: config/avr/avr.c:400 #, gcc-internal-format msgid "GCC 4.4 is the last release with this switch" -msgstr "" +msgstr "GCC 4.4 es la última versión con esta opción" #: config/avr/avr.c:401 #, gcc-internal-format msgid "use the -fno-jump-tables switch instead" -msgstr "" +msgstr "use la opción -fno-jump-tables en su lugar" #: config/avr/avr.c:4626 #, gcc-internal-format @@ -25689,9 +25677,9 @@ msgid "%sregparm=%d%s is not between 0 and %d" msgstr "%sregparm=%d%s no está entre 0 y %d" #: config/i386/i386.c:2918 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%salign-loops%s is obsolete, use -falign-loops%s" -msgstr "%salign-loops%s es obsoleto, use %salign-loops%s" +msgstr "%salign-loops%s es obsoleto, use -falign-loops%s" #: config/i386/i386.c:2924 config/i386/i386.c:2939 config/i386/i386.c:2954 #, gcc-internal-format @@ -25699,14 +25687,14 @@ msgid "%salign-loops=%d%s is not between 0 and %d" msgstr "%salign-loops=%d%s no está entre 0 y %d" #: config/i386/i386.c:2933 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%salign-jumps%s is obsolete, use -falign-jumps%s" -msgstr "%salign-jumps%s es obsoleto, use %salign-jumps%s" +msgstr "%salign-jumps%s es obsoleto, use -falign-jumps%s" #: config/i386/i386.c:2948 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%salign-functions%s is obsolete, use -falign-functions%s" -msgstr "%salign-functions%s es obsoleto, use %salign-functions%s" +msgstr "%salign-functions%s es obsoleto, use -falign-functions%s" #: config/i386/i386.c:2983 #, gcc-internal-format @@ -25841,7 +25829,7 @@ msgstr "Se llama a %qT con el atributo sseregparm sin activar SSE/SSE2" #: config/i386/i386.c:4722 #, gcc-internal-format msgid "ms_abi attribute requires -maccumulate-outgoing-args or subtarget optimization implying it" -msgstr "" +msgstr "el atributo ms_abi requiere -maccumulate-outgoing-args o que la optimización de subobjetivo lo implique" #: config/i386/i386.c:4840 #, gcc-internal-format @@ -25851,17 +25839,17 @@ msgstr "el argumento de vector AVX sin AVX activado cambia la ABI" #: config/i386/i386.c:5020 #, gcc-internal-format msgid "The ABI of passing struct with a flexible array member has changed in GCC 4.4" -msgstr "" +msgstr "La ABI para pasar un struct con un miembro de matriz flexible cambió en GCC 4.4" #: config/i386/i386.c:5139 #, gcc-internal-format msgid "The ABI of passing union with long double has changed in GCC 4.4" -msgstr "" +msgstr "La ABI para pasar un union con long double cambió en GCC 4.4" #: config/i386/i386.c:5254 #, gcc-internal-format msgid "The ABI of passing structure with complex float member has changed in GCC 4.4" -msgstr "" +msgstr "La ABI para pasar una estructura con un miembro de coma flotante compleja cambió en GCC 4.4" #: config/i386/i386.c:5399 #, gcc-internal-format @@ -26071,14 +26059,14 @@ msgid "bad value %<%s%> for -mtls-size= switch" msgstr "valor erróneo %<%s%> para el interruptor -mtls-size=" #: config/ia64/ia64.c:5254 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "value %<%s%> for -mtune= switch is deprecated" -msgstr "valor erróneo %<%s%> para el interruptor -mtune=" +msgstr "el valor %<%s%> para el interruptor -mtune= es obsoleto" #: config/ia64/ia64.c:5256 #, gcc-internal-format msgid "GCC 4.4 is the last release with Itanium1 tuning support" -msgstr "" +msgstr "GCC 4.4 es la última versión que admite ajustes para Itanium1" #: config/ia64/ia64.c:5263 #, gcc-internal-format @@ -27611,9 +27599,9 @@ msgid "converting %<false%> to pointer type for argument %P of %qD" msgstr "se convierte %<false%> a tipo puntero para el argumento %P de %qD" #: cp/call.c:4573 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "too many braces around initializer for %qT" -msgstr "faltan llaves alrededor del inicializador para %qT" +msgstr "demasiadas llaves alrededor del inicializador para %qT" #: cp/call.c:4595 cp/cvt.c:217 #, gcc-internal-format @@ -27638,7 +27626,7 @@ msgstr "no se puede unir el campo de bits %qE a %qT" #: cp/call.c:4798 cp/call.c:4816 #, gcc-internal-format msgid "cannot bind packed field %qE to %qT" -msgstr "no se unir el campo empacado %qE a %qT" +msgstr "no se unir el campo packed %qE a %qT" #: cp/call.c:4801 #, gcc-internal-format @@ -27732,19 +27720,19 @@ msgid " because conversion sequence for the argument is better" msgstr " porque la secuencia de conversión para el argumento es mejor" #: cp/call.c:6899 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "default argument mismatch in overload resolution" -msgstr "se especificó un argumento por defecto en la especialización explícita" +msgstr "no coincide el argumento por defecto en la resolución de sobrecarga" #: cp/call.c:6902 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid " candidate 1: %q+#F" -msgstr "el candidato es: %+#D" +msgstr " candidato 1: %q+#F" #: cp/call.c:6904 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid " candidate 2: %q+#F" -msgstr "el candidato es: %+#D" +msgstr " candidato 2: %q+#F" #: cp/call.c:6942 #, gcc-internal-format @@ -28742,9 +28730,9 @@ msgid "cannot initialize %qT from %qT" msgstr "no se pueden inicializar %qT desde %qT" #: cp/decl.c:4437 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "name used in a GNU-style designated initializer for an array" -msgstr "el nombre %qD se utiliza en un inicializador designado en estilo GNU para una matriz" +msgstr "se usó un nombre en un inicializador designado de estilo GNU para una matriz" #: cp/decl.c:4442 #, gcc-internal-format @@ -29414,9 +29402,9 @@ msgid "cannot declare pointer to %q#T member" msgstr "no se puede declarar el puntero al miembro %q#T" #: cp/decl.c:8500 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "cannot declare %s to qualified function type %qT" -msgstr "no se puede declarar el campo de bits %qD con un tipo de función" +msgstr "no se puede declarar %s para el tipo de función calificado %qT" #: cp/decl.c:8537 #, gcc-internal-format @@ -29664,9 +29652,9 @@ msgid "%<inline%> specifier invalid for function %qs declared out of global scop msgstr "el especificador %<inline%> es inválido para la función %qs declarada fuera del ámbito global" #: cp/decl.c:9365 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%q#T is not a class or a namespace" -msgstr "%qT no es una clase o un espacio de nombres" +msgstr "%q#T no es una clase o un espacio de nombres" #: cp/decl.c:9373 #, gcc-internal-format @@ -29674,9 +29662,9 @@ msgid "virtual non-class function %qs" msgstr "función virtual %qs que no es clase" #: cp/decl.c:9380 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%qs defined in a non-class scope" -msgstr "No se definió la variable %qs en la clase %qs" +msgstr "se definió %qs en un ámbito que no es una clase" #: cp/decl.c:9413 #, gcc-internal-format @@ -30016,9 +30004,9 @@ msgid "%<operator=%> should return a reference to %<*this%>" msgstr "%<operator=%> debe devolver una referencia a %<*this%>" #: cp/decl.c:11874 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "invalid function declaration" -msgstr "declaración de la función miembro inválida" +msgstr "declaración de función inválida" #: cp/decl.c:11958 #, gcc-internal-format @@ -30091,9 +30079,9 @@ msgid "Java method %qD has non-Java parameter type %qT" msgstr "el método Java %qD tiene un tipo de parámetro %qT que no es de Java" #: cp/decl2.c:579 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "template parameter lists provided don't match the template parameters of %qD" -msgstr "los parámetros de la plantilla no coinciden con la plantilla" +msgstr "las listas de parámetro de plantilla proporcionados no coinciden con los parámetros de plantilla de %qD" #: cp/decl2.c:647 #, gcc-internal-format @@ -30409,9 +30397,9 @@ msgid "%J%qD should be initialized in the member initialization list" msgstr "%J%qD se debe inicializar en la lista de inicialización de miembros" #: cp/init.c:454 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%Jvalue-initialization of %q#D, which has reference type" -msgstr "%Jla inicialización por defecto de %q#D, el cual tiene el tipo de referencia" +msgstr "%Jvalor-inicialización de %q#D, el cual tiene el tipo de referencia" #. TYPE_NEEDS_CONSTRUCTING can be set just because we have a #. vtable; still give this diagnostic. @@ -30571,9 +30559,9 @@ msgid "request for member %qD is ambiguous" msgstr "la petición para el miembro %qD es ambigua" #: cp/init.c:2136 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "non-constant array size in new, unable to verify length of initializer-list" -msgstr "índice de matriz no constante en el inicializador" +msgstr "tamańo de matriz no constante en new, no se puede verificar la longitud de la lista del inicializador" #: cp/init.c:2145 #, gcc-internal-format @@ -30698,17 +30686,17 @@ msgstr "se decodifica typeof, utilice decltype en su lugar" #: cp/mangle.c:1903 #, gcc-internal-format msgid "mangling unknown fixed point type" -msgstr "" +msgstr "se decodifica el tipo de coma fija desconocido" #: cp/mangle.c:2332 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "mangling %C" -msgstr "aviso: " +msgstr "decodificando %C" #: cp/mangle.c:2387 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "mangling new-expression" -msgstr "falta la expresión de incremento" +msgstr "decodificando la expresión new" #: cp/mangle.c:2407 #, gcc-internal-format @@ -31145,9 +31133,9 @@ msgid "%Hunsupported non-standard concatenation of string literals" msgstr "%Hno se admite la concatenació no estándar de literales de cadena" #: cp/parser.c:3154 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%Hfixed-point types not supported in C++" -msgstr "no se admiten tipos de coma fija para este objetivo" +msgstr "%Hno se admiten tipos de coma fija en C++" #: cp/parser.c:3235 #, gcc-internal-format @@ -31395,9 +31383,9 @@ msgid "use %<%T::template %D%> to indicate that it is a template" msgstr "utilice %<%T::template %D%> para indicar que es una plantilla" #: cp/parser.c:10483 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%Hexpected parameter pack before %<...%>" -msgstr "se esperaban especificadores de declaración o %<...%>" +msgstr "%Hse esperaba el parámetro pack antes de %<...%>" #: cp/parser.c:10893 #, gcc-internal-format @@ -32168,9 +32156,9 @@ msgid "%qE is not a valid template argument for type %qT because object %qD has msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque el objeto %qD no tiene enlazado externo" #: cp/pt.c:4578 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%qE is not a valid template argument for type %qT" -msgstr "%qE no es un argumento de plantilla válido para el tipo %qT porque es un puntero" +msgstr "%qE no es un argumento de plantilla válido para el tipo %qT" #: cp/pt.c:4579 #, gcc-internal-format @@ -32240,9 +32228,9 @@ msgstr " se esperaba una plantilla de tipo %qD, se obtuvo %qD" #. Not sure if this is reachable, but it doesn't hurt #. to be robust. #: cp/pt.c:5091 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "type mismatch in nontype parameter pack" -msgstr "los tipos de datos no coinciden en la referencia a componente" +msgstr "los tipos no coinciden en el parámetro pack que no es de tipo" #: cp/pt.c:5113 #, gcc-internal-format @@ -33149,9 +33137,9 @@ msgid "invalid use of %qD" msgstr "uso inválido de %qD" #: cp/typeck.c:2150 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "object type %qT does not match destructor name ~%qT" -msgstr "el tipo calificado %qT no coincide con el nombre del destructor ~%qT" +msgstr "el tipo de objeto %qT no coincide con el nombre del destructor ~%qT" #: cp/typeck.c:2158 #, gcc-internal-format @@ -33837,9 +33825,9 @@ msgid "pointer to member type %qT incompatible with object type %qT" msgstr "el tipo de puntero a miembro %qT es incompatible con el tipo objeto %qT" #: cp/typeck2.c:1450 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "invalid value-initialization of reference types" -msgstr "inicialización por valor de la referencia" +msgstr "inicialización por valor inválida de los tipos de referencia" #: cp/typeck2.c:1637 #, gcc-internal-format diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index 6fe480f5dc7..0fd8cd6d298 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -2009,6 +2009,7 @@ simplify_binary_operation_1 (enum rtx_code code, enum machine_mode mode, /* x*2 is x+x and x*(-1) is -x */ if (GET_CODE (trueop1) == CONST_DOUBLE && SCALAR_FLOAT_MODE_P (GET_MODE (trueop1)) + && !DECIMAL_FLOAT_MODE_P (GET_MODE (trueop1)) && GET_MODE (op0) == mode) { REAL_VALUE_TYPE d; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b98709008e4..12c65f0e39e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,88 @@ +2009-08-09 Richard Guenther <rguenther@suse.de> + + PR tree-optimization/41016 + * gcc.c-torture/compile/pr41016.c: New testcase. + +2009-08-08 Laurent GUERBY <laurent@guerby.net> + + * ada/acats/support/impdef.a: Tweak timing constants. Add + Long_Minimum_Task_Switch and Long_Switch_To_New_Task. + * ada/acats/tests/c9/c940005.a: Use new timing constants. + * ada/acats/tests/c9/c940007.a: Likewise. + * ada/acats/tests/c9/c94001c.ada: Likewise. + * ada/acats/tests/c9/c94006a.ada: Likewise. + * ada/acats/tests/c9/c94008c.ada: Likewise. + * ada/acats/tests/c9/c951002.a: Likewise. + * ada/acats/tests/c9/c954a01.a: Likewise. + * ada/acats/tests/c9/c96001a.ada: Likewise. + * ada/acats/tests/c9/c97307a.ada: Likewise. + +2009-08-05 Jason Merrill <jason@redhat.com> + + PR c++/40948 + * g++.dg/ext/complit12.C: Expand. + +2009-08-05 Uros Bizjak <ubizjak@gmail.com> + Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz> + + PR target/40906 + * gcc.target/i386/pr40906-1.c: New test. + * gcc.target/i386/pr40906-2.c: Ditto. + * gcc.target/i386/pr40906-3.c: Ditto. + +2009-08-05 H.J. Lu <hongjiu.lu@intel.com> + + Backport from mainline: + 2009-07-30 Martin Jambor <mjambor@suse.cz> + + PR tree-optimization/40570 + * gcc.c-torture/compile/pr40570.c: New test. + + 2009-07-29 Richard Guenther <rguenther@suse.de> + + PR c++/40834 + * g++.dg/torture/pr40834.C: New testcase. + +2009-08-05 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/40924 + * g++.dg/torture/pr40924.C: New test. + +2009-08-04 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR libfortran/40853 + * gfortran.dg/namelist_40.f90: Update error output. + * gfortran.dg/namelist_47.f90: Update error output. + * gfortran.dg/namelist_58.f90: New test. + +2009-08-04 Dodji Seketeli <dodji@redhat.com> + + PR c++/39987 + * g++.dg/overload/defarg4.C: New test. + +2009-08-04 Dodji Seketeli <dodji@redhat.com> + + PR debug/39706 + * g++.dg/debug/dwarf2/pubnames-1.C: New test. + +2009-08-03 Jason Merrill <jason@redhat.com> + Jakub Jelinek <jakub@redhat.com> + + PR c++/40948 + * g++.dg/ext/complit12.C: New. + +2009-08-03 Janis Johnson <janis187@us.ibm.com> + + PR c/39902 + * gcc.target/powerpc/pr39902-2.c: New test. + +2009-08-03 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/40943 + * gcc.dg/uninit-6.c: Re-add XFAIL. + * gcc.dg/uninit-6-O0.c: Likewise. + * gcc.dg/uninit-pr40943.c: New test. + 2009-07-30 Janis Johnson <janis187@us.ibm.com> PR c/39902 diff --git a/gcc/testsuite/ada/acats/support/impdef.a b/gcc/testsuite/ada/acats/support/impdef.a index 815594b9f86..9c23d0b7f76 100644 --- a/gcc/testsuite/ada/acats/support/impdef.a +++ b/gcc/testsuite/ada/acats/support/impdef.a @@ -105,6 +105,8 @@ package ImpDef is Minimum_Task_Switch : constant Duration := 0.001; -- ^^^ --- MODIFY HERE AS NEEDED + Long_Minimum_Task_Switch : constant Duration := 0.1; + --=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-- -- This is the time required to activate another task and allow it @@ -117,13 +119,15 @@ package ImpDef is Switch_To_New_Task : constant Duration := 0.001; -- ^^^ -- MODIFY HERE AS NEEDED + Long_Switch_To_New_Task : constant Duration := 0.1; + --=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-- -- This is the time which will clear the queues of other tasks -- waiting to run. It is expected that this will be about five -- times greater than Switch_To_New_Task. - Clear_Ready_Queue : constant Duration := 1.1; + Clear_Ready_Queue : constant Duration := 0.1; -- ^^^ --- MODIFY HERE AS NEEDED --=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-- diff --git a/gcc/testsuite/ada/acats/tests/c9/c940005.a b/gcc/testsuite/ada/acats/tests/c9/c940005.a index adb58b18ca4..47a97bf2de6 100644 --- a/gcc/testsuite/ada/acats/tests/c9/c940005.a +++ b/gcc/testsuite/ada/acats/tests/c9/c940005.a @@ -85,7 +85,7 @@ begin -- In reality one would expect a time of 5 to 10 seconds. In -- the interests of speeding up the test suite a shorter time -- is used - Pulse_Time_Delta : constant duration := ImpDef.Switch_To_New_Task; + Pulse_Time_Delta : constant duration := ImpDef.Long_Switch_To_New_Task; -- control over stopping tasks protected Control is diff --git a/gcc/testsuite/ada/acats/tests/c9/c940007.a b/gcc/testsuite/ada/acats/tests/c9/c940007.a index c678463633a..41e80f4e25e 100644 --- a/gcc/testsuite/ada/acats/tests/c9/c940007.a +++ b/gcc/testsuite/ada/acats/tests/c9/c940007.a @@ -90,7 +90,7 @@ begin -- In reality one would expect a time of 5 to 10 seconds. In -- the interests of speeding up the test suite a shorter time -- is used - Pulse_Time_Delta : constant duration := ImpDef.Switch_To_New_Task; + Pulse_Time_Delta : constant duration := ImpDef.Long_Switch_To_New_Task; -- control over stopping tasks diff --git a/gcc/testsuite/ada/acats/tests/c9/c94001c.ada b/gcc/testsuite/ada/acats/tests/c9/c94001c.ada index e53789f8f42..1d0625559de 100644 --- a/gcc/testsuite/ada/acats/tests/c9/c94001c.ada +++ b/gcc/testsuite/ada/acats/tests/c9/c94001c.ada @@ -209,7 +209,7 @@ BEGIN BEGIN -- (E) WHILE NOT(OUT_TSK'TERMINATED) AND DELAY_COUNT < 60 LOOP - DELAY 1.0 * Impdef.One_Second; + DELAY 1.0 * Impdef.One_Long_Second; DELAY_COUNT := DELAY_COUNT + 1; END LOOP; IF DELAY_COUNT = 60 THEN @@ -252,7 +252,7 @@ BEGIN BEGIN WHILE NOT(OUT_TSK'TERMINATED) AND DELAY_COUNT < 60 LOOP - DELAY 1.0 * Impdef.One_Second; + DELAY 1.0 * Impdef.One_Long_Second; DELAY_COUNT := DELAY_COUNT + 1; END LOOP; IF DELAY_COUNT = 60 THEN diff --git a/gcc/testsuite/ada/acats/tests/c9/c94006a.ada b/gcc/testsuite/ada/acats/tests/c9/c94006a.ada index c088f8bb577..cac5fc6e09c 100644 --- a/gcc/testsuite/ada/acats/tests/c9/c94006a.ada +++ b/gcc/testsuite/ada/acats/tests/c9/c94006a.ada @@ -42,7 +42,7 @@ PROCEDURE C94006A IS SELECT ACCEPT E; OR - DELAY 30.0 * Impdef.One_Second; + DELAY 30.0 * Impdef.One_Long_Second; END SELECT; END TT; diff --git a/gcc/testsuite/ada/acats/tests/c9/c94008c.ada b/gcc/testsuite/ada/acats/tests/c9/c94008c.ada index 53ec450dec3..fb2eee97f69 100644 --- a/gcc/testsuite/ada/acats/tests/c9/c94008c.ada +++ b/gcc/testsuite/ada/acats/tests/c9/c94008c.ada @@ -202,7 +202,7 @@ BEGIN -- C94008C DELAY 10.0 * Impdef.One_Second; IF TERMINATE_COUNT.GET /= 1 THEN - DELAY 20.0 * Impdef.One_Second; + DELAY 20.0 * Impdef.One_Long_Second; END IF; IF TERMINATE_COUNT.GET /= 1 THEN @@ -243,7 +243,7 @@ BEGIN -- C94008C DELAY 10.0 * Impdef.One_Second; -- WAIT FOR T1, T2, AND T3 TO GET TO SELECT STMTS. IF TERMINATE_COUNT.GET /= 3 THEN - DELAY 20.0 * Impdef.One_Second; + DELAY 20.0 * Impdef.One_Long_Second; END IF; IF TERMINATE_COUNT.GET /= 3 THEN diff --git a/gcc/testsuite/ada/acats/tests/c9/c951002.a b/gcc/testsuite/ada/acats/tests/c9/c951002.a index 8ccb2d012fe..65b696c4af9 100644 --- a/gcc/testsuite/ada/acats/tests/c9/c951002.a +++ b/gcc/testsuite/ada/acats/tests/c9/c951002.a @@ -278,14 +278,14 @@ begin -- Wait until the message is queued on the entry before starting -- the Credit_Task while not Hold.TC_Message_is_Queued loop - delay ImpDef.Minimum_Task_Switch; + delay ImpDef.Long_Minimum_Task_Switch; end loop; -- Credit_Task.TC_Start; -- Ensure the first part of the test is complete before continuing while not (Credit_Message'terminated and Credit_Task'terminated) loop - delay ImpDef.Minimum_Task_Switch; + delay ImpDef.Long_Minimum_Task_Switch; end loop; --====================================================== @@ -298,12 +298,12 @@ begin -- for it to reach the accept statement and call Hold.Set_DB_Overload -- before starting Debit_Message -- - delay ImpDef.Switch_To_New_Task; + delay ImpDef.Long_Switch_To_New_Task; Debit_Message.TC_Start; while not Debit_Task'terminated loop - delay ImpDef.Minimum_Task_Switch; + delay ImpDef.Long_Minimum_Task_Switch; end loop; Hold.Clear_DB_Overload; -- Allow completion diff --git a/gcc/testsuite/ada/acats/tests/c9/c954a01.a b/gcc/testsuite/ada/acats/tests/c9/c954a01.a index 34f48b29171..3ea545a8f0e 100644 --- a/gcc/testsuite/ada/acats/tests/c9/c954a01.a +++ b/gcc/testsuite/ada/acats/tests/c9/c954a01.a @@ -148,7 +148,7 @@ package body C954A01_0 is -- Printer server abstraction. end select; -- Allow other tasks to get control - delay ImpDef.Minimum_Task_Switch; + delay ImpDef.Long_Minimum_Task_Switch; end loop; @@ -175,7 +175,7 @@ use F954A00; procedure C954A01 is - Long_Enough : constant Duration := ImpDef.Switch_To_New_Task; + Long_Enough : constant Duration := ImpDef.Long_Switch_To_New_Task; --==============================================-- diff --git a/gcc/testsuite/ada/acats/tests/c9/c96001a.ada b/gcc/testsuite/ada/acats/tests/c9/c96001a.ada index a4e1c4a9c4b..f958ea107fe 100644 --- a/gcc/testsuite/ada/acats/tests/c9/c96001a.ada +++ b/gcc/testsuite/ada/acats/tests/c9/c96001a.ada @@ -51,7 +51,7 @@ BEGIN --------------------------------------------- DECLARE -- (A) - X : DURATION := 5.0; + X : DURATION := 5.0 * Impdef.One_Second; OLD_TIME : TIME; LAPSE : DURATION; BEGIN -- (A) diff --git a/gcc/testsuite/ada/acats/tests/c9/c97307a.ada b/gcc/testsuite/ada/acats/tests/c9/c97307a.ada index 6d7be50562b..32d26e6b333 100644 --- a/gcc/testsuite/ada/acats/tests/c9/c97307a.ada +++ b/gcc/testsuite/ada/acats/tests/c9/c97307a.ada @@ -160,7 +160,7 @@ BEGIN EXPIRED.READ (EXPIRED_CALLS); EXIT WHEN E'COUNT >= DESIRED_QUEUE_LENGTH - EXPIRED_CALLS; - DELAY 2.0 * Impdef.One_Second; + DELAY 2.0 * Impdef.One_Long_Second; END LOOP; EXIT WHEN DESIRED_QUEUE_LENGTH = 5; DISPATCH.READY; @@ -171,7 +171,7 @@ BEGIN -- LET THE TIMED ENTRY CALLS ISSUED BY CALLER1, -- CALLER3, AND CALLER5 EXPIRE: - DELAY DELAY_TIME + 10.0 * Impdef.One_Second; + DELAY DELAY_TIME + 10.0 * Impdef.One_Long_Second; -- AT THIS POINT, ALL THE TIMED ENTRY CALLS MUST HAVE -- EXPIRED AND BEEN REMOVED FROM THE ENTRY QUEUE FOR E, diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/pubnames-1.C b/gcc/testsuite/g++.dg/debug/dwarf2/pubnames-1.C new file mode 100644 index 00000000000..f5089ca2da8 --- /dev/null +++ b/gcc/testsuite/g++.dg/debug/dwarf2/pubnames-1.C @@ -0,0 +1,14 @@ +// Contributed by Dodji Seketeli <dodji@redhat.com> +// Origin PR debug/39706 +// { dg-options "-g -dA" } +// { dg-do compile } +// { dg-final { scan-assembler-times ".debug_pubnames" 1 } } +// { dg-final { scan-assembler-times "\"main\".*external name" 1 } } +// { dg-final { scan-assembler-times "\"ns::ns_x.*external name" 1 } } +// { dg-final { scan-assembler-times "\"y::y_x.*external name" 1 } } + +namespace ns { int ns_x; } +class y { public: static int y_x; }; +int y::y_x; +int main() { return ns::ns_x; } + diff --git a/gcc/testsuite/g++.dg/ext/complit12.C b/gcc/testsuite/g++.dg/ext/complit12.C new file mode 100644 index 00000000000..29c9af1864f --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/complit12.C @@ -0,0 +1,65 @@ +// PR c++/40948 +// { dg-do run } +// { dg-options "" } + +int c; +struct M +{ + M () { ++c; } + M (const M&) { ++c; } + ~M () { --c; } +}; + +struct S +{ + S (); + M m[1]; +}; + +S::S () : m ((M[1]) { M () }) +{ +} + +struct T +{ + T (); + M m[4]; +}; + +T::T () : m ((M[4]) { M (), M (), M (), M () }) +{ +} + +typedef M MA[1]; +MA &bar (MA, MA& r) { return r; } + +M f(M m) { return m; } + +int main () +{ + { + M m[1] = (M[1]) { M () }; + if (c != 1) + return 1; + M n = (M) { M () }; + if (c != 2) + return 2; + M o[4] = (M[4]) { M (), M (), M (), M () }; + if (c != 6) + return 3; + S s; + if (c != 7) + return 4; + T t; + if (c != 11) + return 5; + MA ma = bar ((M[2]) { M(), M() }, m); + if (c != 12) + return 7; + M mm[2] = ((M[2]) { f(M()), f(M()) }); + if (c != 14) + return 8; + } + if (c != 0) + return 6; +} diff --git a/gcc/testsuite/g++.dg/overload/defarg4.C b/gcc/testsuite/g++.dg/overload/defarg4.C new file mode 100644 index 00000000000..198f9b28f32 --- /dev/null +++ b/gcc/testsuite/g++.dg/overload/defarg4.C @@ -0,0 +1,26 @@ +// Contributed by Dodji Seketeli <dodji@redhat.com> +// Origin PR c++/39987 +// { dg-do "compile" } + +class foo +{ + template<typename U> + static bool func(const U& x) + {} +public: + template<typename U> + unsigned int Find(const U& x, bool (*pFunc) (const U&) = func) const + {} +}; + +class bar { + bool Initialize(); +protected: + foo b; +}; + +bool bar::Initialize() +{ + b.Find(b); +} + diff --git a/gcc/testsuite/g++.dg/torture/pr40834.C b/gcc/testsuite/g++.dg/torture/pr40834.C new file mode 100644 index 00000000000..67d3028532a --- /dev/null +++ b/gcc/testsuite/g++.dg/torture/pr40834.C @@ -0,0 +1,52 @@ +/* { dg-do run } */ + +extern "C" void abort (void); +class XalanDOMString +{ +public: + int y; +}; + +class XObject +{ +public: + const XalanDOMString& str() const { return x; } + XalanDOMString x; +}; + +class XObjectPtr +{ +public: + XObjectPtr(const XObjectPtr& theSource) + { + m_xobjectPtr = theSource.m_xobjectPtr; + } + const XObject* operator->() const + { + return m_xobjectPtr; + }; + XObjectPtr(XObject *p) { m_xobjectPtr = p; } + XObject* m_xobjectPtr; +}; + +class FunctionSubstringBefore +{ +public: + int execute( const XObjectPtr arg1) const + { + const XalanDOMString& theFirstString = arg1->str(); + return theFirstString.y; + } +}; + +int +main () +{ + XObject x; + XObjectPtr y (&x); + x.x.y = -1; + FunctionSubstringBefore z; + if (z.execute (y) != -1) + abort (); + return 0; +} diff --git a/gcc/testsuite/g++.dg/torture/pr40924.C b/gcc/testsuite/g++.dg/torture/pr40924.C new file mode 100644 index 00000000000..9140da3ba3b --- /dev/null +++ b/gcc/testsuite/g++.dg/torture/pr40924.C @@ -0,0 +1,111 @@ +// PR rtl-optimization/40924 +// { dg-do run } + +extern "C" void abort (void); + +#define MAY_ALIAS __attribute__((__may_alias__)) + +typedef struct { float v[2]; } floata; +typedef struct { int v[2]; } inta; + +typedef unsigned int uint MAY_ALIAS; +typedef signed int sint MAY_ALIAS; +typedef float flt MAY_ALIAS; + +static inline unsigned short +less_than (inta a, inta b) +{ + unsigned short r = 0; + const uint *p1 = (const uint *) &a; + const uint *p2 = (const uint *) &b; + for (int i=0; i < 2; i++) + if (p1[i] < p2[i]) r |= (1 << i); + return r; +} + +static inline inta +multiply (inta b, inta c) +{ + inta r; + sint *p3 = (sint *) &c; + for (int i=0; i < 2; i++) + r.v[i] = (int) (b.v[i] * p3[i] & 0xFFFFFFFF); + return r; +} + +static inline floata +gather (inta indexes, const void *baseAddr) +{ + floata r; + + sint *idx = (sint *) &indexes; + flt *src = (flt *) baseAddr; + for (int i=0; i < 2; i++) + r.v[i] = *(src + idx[i]); + return r; +} + +static inline inta +add (const inta &b, const inta &c) +{ + inta result; + sint *r = (sint *) &result; + + for (int i=0; i < 2; i++) + r[i] = b.v[i] + c.v[i]; + return result; +} + +struct uintv +{ + inta data; + inline uintv () { data.v[0] = 0; data.v[1] = 1; } + inline uintv (unsigned int a) + { + for (int i=0; i < 2; i++) + *(uint *) &data.v[i] = a; + } + inline uintv (inta x) : data (x) {} + inline uintv operator* (const uintv &x) const + { return multiply (data, x.data); } + inline uintv operator+ (const uintv &x) const + { return uintv (add (data, x.data)); } + inline unsigned short operator< (const uintv &x) const + { return less_than (data, x.data); } +}; + +struct floatv +{ + floata data; + explicit inline floatv (const uintv &x) + { + uint *p2 = (uint *) &x.data; + for (int i=0; i < 2; i++) + data.v[i] = p2[i]; + } + inline floatv (const float *array, const uintv &indexes) + { + const uintv &offsets = indexes * uintv (1); + data = gather (offsets.data, array); + } + unsigned short operator== (const floatv &x) const + { + unsigned short r = 0; + for (int i=0; i < 2; i++) + if (data.v[i] == x.data.v[i]) r |= (1 << i); + return r; + } +}; + +int +main () +{ + const float array[2] = { 2, 3 }; + for (uintv i; (i < 2) == 3; i = i + 2) + { + const floatv ii (i + 2); + floatv a (array, i); + if ((a == ii) != 3) + abort (); + } +} diff --git a/gcc/testsuite/gcc.c-torture/compile/pr40570.c b/gcc/testsuite/gcc.c-torture/compile/pr40570.c new file mode 100644 index 00000000000..7c3f4d83b2e --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr40570.c @@ -0,0 +1,22 @@ +extern void anything(int); + +static int foo(int i); + +static int bar(int i) { foo(i); } + +extern int j; + +static int foo(int i) +{ + if (j) + anything(j); + return bar(i); +} + +int baz() +{ + foo(0); + if (baz()) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.c-torture/compile/pr41016.c b/gcc/testsuite/gcc.c-torture/compile/pr41016.c new file mode 100644 index 00000000000..57bddb49dea --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr41016.c @@ -0,0 +1,17 @@ +typedef struct _IO_FILE FILE; +void +CompareRNAStructures (FILE * ofp, int start, int L, char *ss_true, char *ss) +{ + int i; + float agree = 0.; + float pairs = 0.; + float pairs_true = 0.; + for (i = 0; i < L; i++) + { + pairs_true += 1.; + agree += 1.; + } + if (((int) pairs % 2 != 0) || ((int) pairs_true % 2 != 0) + || ((int) agree % 2 != 0)) + Die ("Error in CompareRNAStrutures(); odd number of paired nucleotides\n"); +} diff --git a/gcc/testsuite/gcc.dg/uninit-6-O0.c b/gcc/testsuite/gcc.dg/uninit-6-O0.c index f4588305ffa..e3fefe5e1c5 100644 --- a/gcc/testsuite/gcc.dg/uninit-6-O0.c +++ b/gcc/testsuite/gcc.dg/uninit-6-O0.c @@ -39,7 +39,7 @@ make_something(int a, int b, int c) rv = malloc (sizeof (struct tree)); rv->car = 0; - APPEND(rv, field, INTEGER_T, a); /* { dg-bogus "field" "uninitialized variable warning" } */ + APPEND(rv, field, INTEGER_T, a); /* { dg-bogus "field" "uninitialized variable warning" { xfail *-*-* } } */ APPEND(rv, field, PTR_T, b); APPEND(rv, field, INTEGER_T, c); diff --git a/gcc/testsuite/gcc.dg/uninit-6.c b/gcc/testsuite/gcc.dg/uninit-6.c index 009e124fccf..b0f2083ab4b 100644 --- a/gcc/testsuite/gcc.dg/uninit-6.c +++ b/gcc/testsuite/gcc.dg/uninit-6.c @@ -39,7 +39,7 @@ make_something(int a, int b, int c) rv = malloc (sizeof (struct tree)); rv->car = 0; - APPEND(rv, field, INTEGER_T, a); /* { dg-bogus "field" "uninitialized variable warning" } */ + APPEND(rv, field, INTEGER_T, a); /* { dg-bogus "field" "uninitialized variable warning" { xfail *-*-* } } */ APPEND(rv, field, PTR_T, b); APPEND(rv, field, INTEGER_T, c); diff --git a/gcc/testsuite/gcc.dg/uninit-pr40943.c b/gcc/testsuite/gcc.dg/uninit-pr40943.c new file mode 100644 index 00000000000..2b6e9131cb1 --- /dev/null +++ b/gcc/testsuite/gcc.dg/uninit-pr40943.c @@ -0,0 +1,10 @@ +/* PR middle-end/40943 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -Wuninitialized" } */ + +void +foo (void) +{ + int *p; + *p = 3; /* { dg-warning "is used uninitialized" } */ +} diff --git a/gcc/testsuite/gcc.target/i386/pr40906-1.c b/gcc/testsuite/gcc.target/i386/pr40906-1.c new file mode 100644 index 00000000000..c14bbfa3a4f --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr40906-1.c @@ -0,0 +1,26 @@ +/* { dg-do run } */ +/* { dg-require-effective-target ilp32 } */ +/* { dg-options "-O2 -fomit-frame-pointer -mpush-args -mno-accumulate-outgoing-args" } */ + +void abort (void); + +void __attribute__((noinline)) +f (long double a) +{ + if (a != 1.23L) + abort (); +} + +int __attribute__((noinline)) +g (long double b) +{ + f (b); + return 0; +} + +int +main (void) +{ + g (1.23L); + return 0; +} diff --git a/gcc/testsuite/gcc.target/i386/pr40906-2.c b/gcc/testsuite/gcc.target/i386/pr40906-2.c new file mode 100644 index 00000000000..66e146b0ca0 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr40906-2.c @@ -0,0 +1,26 @@ +/* { dg-do run } */ +/* { dg-require-effective-target ilp32 } */ +/* { dg-options "-O2 -fomit-frame-pointer -mpush-args -mno-accumulate-outgoing-args -m128bit-long-double" } */ + +void abort (void); + +void __attribute__((noinline)) +f (long double a) +{ + if (a != 1.23L) + abort (); +} + +int __attribute__((noinline)) +g (long double b) +{ + f (b); + return 0; +} + +int +main (void) +{ + g (1.23L); + return 0; +} diff --git a/gcc/testsuite/gcc.target/i386/pr40906-3.c b/gcc/testsuite/gcc.target/i386/pr40906-3.c new file mode 100644 index 00000000000..b639b62996c --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr40906-3.c @@ -0,0 +1,25 @@ +/* { dg-do run { target *-*-linux* } } */ +/* { dg-require-effective-target ilp32 } */ +/* { dg-options "-O2 -fomit-frame-pointer -msse2 -mpush-args -mno-accumulate-outgoing-args" } */ + +#include "sse2-check.h" + +void __attribute__((noinline)) +f (__float128 a) +{ + if (a != 1.23Q) + abort (); +} + +int __attribute__((noinline)) +g (__float128 b) +{ + f (b); + return 0; +} + +static void +sse2_test (void) +{ + g (1.23Q); +} diff --git a/gcc/testsuite/gcc.target/powerpc/pr39902-2.c b/gcc/testsuite/gcc.target/powerpc/pr39902-2.c new file mode 100644 index 00000000000..463a36c1bee --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/pr39902-2.c @@ -0,0 +1,28 @@ +/* Check that simplification "x*(-1)" -> "-x" is not performed for decimal + float types. */ + +/* { dg-do compile { target { powerpc*-*-linux* && powerpc_fprs } } } */ +/* { dg-options "-std=gnu99 -O -mcpu=power6" } */ +/* { dg-final { scan-assembler-not "fneg" } } */ + +extern _Decimal32 a32, b32; +extern _Decimal64 a64, b64; +extern _Decimal128 a128, b128; + +void +foo32 (void) +{ + b32 = a32 * -1.0DF; +} + +void +foo64 (void) +{ + b64 = a64 * -1.0DD; +} + +void +foo128 (void) +{ + b128 = a128 * -1.0DL; +} diff --git a/gcc/testsuite/gfortran.dg/namelist_40.f90 b/gcc/testsuite/gfortran.dg/namelist_40.f90 index 5e2c9d871a2..d6f896a3956 100644 --- a/gcc/testsuite/gfortran.dg/namelist_40.f90 +++ b/gcc/testsuite/gfortran.dg/namelist_40.f90 @@ -1,4 +1,4 @@ -! { dg-do run { target fd_truncate } } +! { dg-do run } ! PR33672 Additional runtime checks needed for namelist reads ! Submitted by Jerry DeLisle <jvdelisle@gcc.gnu.org> @@ -47,7 +47,7 @@ subroutine writenml (astring) end subroutine writenml end program namelist_40 -! { dg-output "Multiple sub-objects with non-zero rank in namelist object x(\n|\r\n|\r)" } +! { dg-output "Multiple sub-objects with non-zero rank in namelist object x%m%ch(\n|\r\n|\r)" } ! { dg-output "Missing colon in substring qualifier for namelist variable x%m%ch(\n|\r\n|\r)" } ! { dg-output "Substring out of range for namelist variable x%m%ch(\n|\r\n|\r)" } ! { dg-output "Bad character in substring qualifier for namelist variable x%m%ch(\n|\r\n|\r)" } diff --git a/gcc/testsuite/gfortran.dg/namelist_47.f90 b/gcc/testsuite/gfortran.dg/namelist_47.f90 index 8a8dd9d0997..581924720bd 100644 --- a/gcc/testsuite/gfortran.dg/namelist_47.f90 +++ b/gcc/testsuite/gfortran.dg/namelist_47.f90 @@ -1,4 +1,4 @@ -! { dg-do run { target fd_truncate } } +! { dg-do run } module nml_47 type :: mt @@ -45,7 +45,7 @@ subroutine writenml (astring) end subroutine writenml end program namelist_47 -! { dg-output "Multiple sub-objects with non-zero rank in namelist object x(\n|\r\n|\r)" } +! { dg-output "Multiple sub-objects with non-zero rank in namelist object x%m%c012345678901234567890123456789012345678901234567890123456789h(\n|\r\n|\r)" } ! { dg-output "Missing colon in substring qualifier for namelist variable x%m%c012345678901234567890123456789012345678901234567890123456789h(\n|\r\n|\r)" } ! { dg-output "Substring out of range for namelist variable x%m%c012345678901234567890123456789012345678901234567890123456789h(\n|\r\n|\r)" } ! { dg-output "Bad character in substring qualifier for namelist variable x%m%c012345678901234567890123456789012345678901234567890123456789h(\n|\r\n|\r)" } diff --git a/gcc/testsuite/gfortran.dg/namelist_58.f90 b/gcc/testsuite/gfortran.dg/namelist_58.f90 new file mode 100644 index 00000000000..fcce01653a4 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/namelist_58.f90 @@ -0,0 +1,25 @@ +! { dg-do run } +! PR40853 Error in namelist IO. +! Test case derived from example given in PR. < jvdelisle@gcc.gnu.org > +program test + implicit none + type tao_title_struct + character(2) justify + end type + type tao_plot_page_struct + real shape_height_max + type (tao_title_struct) title ! Comment this line out and the bug goes away. + real size(2) + end type + type (tao_plot_page_struct) plot_page + namelist / params / plot_page + open (10, status="scratch") + write(10,'(a)')" ¶ms" + write(10,'(a)')" plot_page%size=5 , 2," + write(10,'(a)')"/" + rewind(10) + read (10, nml = params) + if (any(plot_page%size .ne. (/ 5, 2 /))) call abort + close (10) +end program + diff --git a/gcc/tree-ssa-ifcombine.c b/gcc/tree-ssa-ifcombine.c index 335fd068540..55b042e5ccc 100644 --- a/gcc/tree-ssa-ifcombine.c +++ b/gcc/tree-ssa-ifcombine.c @@ -151,7 +151,7 @@ get_name_for_bit_test (tree candidate) { gimple def_stmt = SSA_NAME_DEF_STMT (candidate); if (is_gimple_assign (def_stmt) - && gimple_assign_cast_p (def_stmt)) + && CONVERT_EXPR_CODE_P (gimple_assign_rhs_code (def_stmt))) { if (TYPE_PRECISION (TREE_TYPE (candidate)) <= TYPE_PRECISION (TREE_TYPE (gimple_assign_rhs1 (def_stmt)))) @@ -162,21 +162,6 @@ get_name_for_bit_test (tree candidate) return candidate; } -/* Helpers for recognize_single_bit_test defined mainly for source code - formating. */ - -static int -operand_precision (tree t) -{ - return TYPE_PRECISION (TREE_TYPE (t)); -} - -static bool -integral_operand_p (tree t) -{ - return INTEGRAL_TYPE_P (TREE_TYPE (t)); -} - /* Recognize a single bit test pattern in GIMPLE_COND and its defining statements. Store the name being tested in *NAME and the bit in *BIT. The GIMPLE_COND computes *NAME & (1 << *BIT). @@ -212,15 +197,11 @@ recognize_single_bit_test (gimple cond, tree *name, tree *bit) stmt = SSA_NAME_DEF_STMT (orig_name); while (is_gimple_assign (stmt) - && (gimple_assign_ssa_name_copy_p (stmt) - || (gimple_assign_cast_p (stmt) - && integral_operand_p (gimple_assign_lhs (stmt)) - && integral_operand_p (gimple_assign_rhs1 (stmt)) - && (operand_precision (gimple_assign_lhs (stmt)) - <= operand_precision (gimple_assign_rhs1 (stmt)))))) - { - stmt = SSA_NAME_DEF_STMT (gimple_assign_rhs1 (stmt)); - } + && ((CONVERT_EXPR_CODE_P (gimple_assign_rhs_code (stmt)) + && (TYPE_PRECISION (TREE_TYPE (gimple_assign_lhs (stmt))) + <= TYPE_PRECISION (TREE_TYPE (gimple_assign_rhs1 (stmt))))) + || gimple_assign_ssa_name_copy_p (stmt))) + stmt = SSA_NAME_DEF_STMT (gimple_assign_rhs1 (stmt)); /* If we found such, decompose it. */ if (is_gimple_assign (stmt) diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c index 8be2961f895..9d8f99deb35 100644 --- a/gcc/tree-ssa.c +++ b/gcc/tree-ssa.c @@ -1472,7 +1472,12 @@ warn_uninitialized_var (tree *tp, int *walk_subtrees, void *data_) /* We do not care about LHS. */ if (wi->is_lhs) - return NULL_TREE; + { + /* Except for operands of INDIRECT_REF. */ + if (!INDIRECT_REF_P (t)) + return NULL_TREE; + t = TREE_OPERAND (t, 0); + } switch (TREE_CODE (t)) { diff --git a/libcpp/po/ChangeLog b/libcpp/po/ChangeLog index 949d1198006..280cea60e3f 100644 --- a/libcpp/po/ChangeLog +++ b/libcpp/po/ChangeLog @@ -1,3 +1,7 @@ +2009-08-04 Joseph Myers <joseph@codesourcery.com> + + * es.po: Update. + 2009-07-25 Joseph Myers <joseph@codesourcery.com> * nl.po: Update. diff --git a/libcpp/po/es.po b/libcpp/po/es.po index a43c1d3cc47..1ae12e2f7f3 100644 --- a/libcpp/po/es.po +++ b/libcpp/po/es.po @@ -1,14 +1,14 @@ -# Mensajes en espańol para cpplib-4.4-b20081121 +# Mensajes en espańol para cpplib-4.4.1 # Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is distributed under the same license as the gcc package. # Cristian Othón Martínez Vera <cfuga@itam.mx>, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009. # msgid "" msgstr "" -"Project-Id-Version: cpplib 4.4-b20081121\n" +"Project-Id-Version: cpplib 4.4.1\n" "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" "POT-Creation-Date: 2009-04-22 16:32+0000\n" -"PO-Revision-Date: 2009-03-03 23:45-0600\n" +"PO-Revision-Date: 2009-08-02 21:44-0500\n" "Last-Translator: Cristian Othón Martínez Vera <cfuga@itam.mx>\n" "Language-Team: Spanish <es@li.org>\n" "MIME-Version: 1.0\n" @@ -900,9 +900,9 @@ msgid "while writing precompiled header" msgstr "al escribir el encabezado precompilado" #: pch.c:484 -#, fuzzy, c-format +#, c-format msgid "%s: not used because `%.*s' is poisoned" -msgstr "%s: no se usa porque `%s' está definido" +msgstr "%s: no se usa porque `%.*s' está envenenado" #: pch.c:506 #, c-format diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 202a8f8f33a..dce83b4b19e 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,9 @@ +2009-08-04 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR libfortran/40853 + * io/list_read.c (nml_get_obj_data): Do not set nl + pointer to first_nl if nl->next is NULL. + 2009-07-22 Release Manager * GCC 4.4.1 released. diff --git a/libgfortran/io/list_read.c b/libgfortran/io/list_read.c index 3ca63de82e9..ba310e1676d 100644 --- a/libgfortran/io/list_read.c +++ b/libgfortran/io/list_read.c @@ -2772,7 +2772,7 @@ get_name: if (nl->type == GFC_DTYPE_DERIVED) nml_touch_nodes (nl); - if (component_flag && nl->var_rank > 0) + if (component_flag && nl->var_rank > 0 && nl->next) nl = first_nl; /* Make sure no extraneous qualifiers are there. */ |