You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

52236 lines
1.8 MiB

# --- SDE-COPYRIGHT-NOTE-BEGIN ---
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
#
# Filename: package/.../gcc/gcc-4.1-branch-update-1.patch
# Copyright (C) 2008 The OpenSDE Project
#
# More information can be found in the files COPYING and README.
#
# This patch file is dual-licensed. It is available under the license the
# patched project is licensed under, as long as it is an OpenSource license
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
# of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
# --- SDE-COPYRIGHT-NOTE-END ---
From 530371b6af734ab68ea71db0bde74519182bca0a Mon Sep 17 00:00:00 2001
From: rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 14 Feb 2007 13:56:07 +0000
Subject: 2007-02-14 Richard Guenther <rguenther@suse.de>
Backport from mainline:
2007-01-30 Richard Guenther <rguenther@suse.de>
PR middle-end/30313
* passes.c (execute_one_pass): Reset in_gimple_form to not
confuse non-unit-at-a-time mode.
* gcc.dg/torture/pr30313.c: New testcase.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@121949 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 97ec80c..8895696 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2007-02-14 Richard Guenther <rguenther@suse.de>
+
+ Backport from mainline:
+ 2007-01-30 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/30313
+ * passes.c (execute_one_pass): Reset in_gimple_form to not
+ confuse non-unit-at-a-time mode.
+
2007-02-13 Release Manager
* GCC 4.1.2 released.
diff --git a/gcc/passes.c b/gcc/passes.c
index e3a8213..8a844a8 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -848,6 +848,9 @@ execute_one_pass (struct tree_opt_pass *pass)
dump_file = NULL;
}
+ /* Reset in_gimple_form to not break non-unit-at-a-time mode. */
+ in_gimple_form = false;
+
return true;
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 98bd406..bbfd791 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2007-02-14 Richard Guenther <rguenther@suse.de>
+
+ Backport from mainline:
+ 2007-01-30 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/30313
+ * gcc.dg/torture/pr30313.c: New testcase.
+
2007-02-13 Release Manager
* GCC 4.1.2 released.
diff --git a/gcc/testsuite/gcc.dg/torture/pr30313.c b/gcc/testsuite/gcc.dg/torture/pr30313.c
new file mode 100644
index 0000000..1df85f7
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr30313.c
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+
+static inline void bar(){}
+
+struct S
+{
+ signed int i: 32;
+};
+
+int main()
+{
+ struct S x = {32};
+ sizeof(x.i+0);
+ return 0;
+}
--
1.5.4
From 1e365f4469fa7c644874c33791ca1c62a6e96cbe Mon Sep 17 00:00:00 2001
From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 14 Feb 2007 20:33:56 +0000
Subject: PR middle-end/30473
* builtins.c (fold_builtin_sprintf): Do not attempt to optimize
sprintf (str, "%s"). Do not optimize sprintf (str, "nopercent", p++).
* gcc.dg/pr30473.c: New test.
* gcc.c-torture/execute/20070201-1.c: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@121961 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8895696..fb5c885 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-02-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/30473
+ * builtins.c (fold_builtin_sprintf): Do not attempt to optimize
+ sprintf (str, "%s"). Do not optimize sprintf (str, "nopercent", p++).
+
2007-02-14 Richard Guenther <rguenther@suse.de>
Backport from mainline:
diff --git a/gcc/builtins.c b/gcc/builtins.c
index c51291b..6fdbc03 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -9935,6 +9935,7 @@ fold_builtin_sprintf (tree arglist, int ignored)
/* Get the destination string and the format specifier. */
dest = TREE_VALUE (arglist);
fmt = TREE_VALUE (TREE_CHAIN (arglist));
+ arglist = TREE_CHAIN (TREE_CHAIN (arglist));
/* Check whether the format is a literal string constant. */
fmt_str = c_getstr (fmt);
@@ -9955,6 +9956,10 @@ fold_builtin_sprintf (tree arglist, int ignored)
if (!fn)
return NULL_TREE;
+ /* Don't optimize sprintf (buf, "abc", ptr++). */
+ if (arglist)
+ return NULL_TREE;
+
/* Convert sprintf (str, fmt) into strcpy (str, fmt) when
'format' is known to contain no % formats. */
arglist = build_tree_list (NULL_TREE, fmt);
@@ -9973,8 +9978,12 @@ fold_builtin_sprintf (tree arglist, int ignored)
if (!fn)
return NULL_TREE;
+ /* Don't crash on sprintf (str1, "%s"). */
+ if (!arglist)
+ return NULL_TREE;
+
/* Convert sprintf (str1, "%s", str2) into strcpy (str1, str2). */
- orig = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
+ orig = TREE_VALUE (arglist);
arglist = build_tree_list (NULL_TREE, orig);
arglist = tree_cons (NULL_TREE, dest, arglist);
if (!ignored)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index bbfd791..eb55de9 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2007-02-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/30473
+ * gcc.dg/pr30473.c: New test.
+ * gcc.c-torture/execute/20070201-1.c: New test.
+
2007-02-14 Richard Guenther <rguenther@suse.de>
Backport from mainline:
diff --git a/gcc/testsuite/gcc.c-torture/execute/20070201-1.c b/gcc/testsuite/gcc.c-torture/execute/20070201-1.c
new file mode 100644
index 0000000..c676c34
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20070201-1.c
@@ -0,0 +1,20 @@
+/* PR middle-end/30473 */
+
+extern int sprintf (char *, const char *, ...);
+extern void abort (void);
+
+char *
+foo (char *buf, char *p)
+{
+ sprintf (buf, "abcde", p++);
+ return p;
+}
+
+int
+main (void)
+{
+ char buf[6];
+ if (foo (buf, &buf[2]) != &buf[3])
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/pr30473.c b/gcc/testsuite/gcc.dg/pr30473.c
new file mode 100644
index 0000000..f01c1cc
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr30473.c
@@ -0,0 +1,13 @@
+/* PR middle-end/30473 */
+/* Make sure this doesn't ICE. */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+extern int sprintf (char *, const char *, ...);
+
+void
+foo (char *buf1, char *buf2)
+{
+ sprintf (buf1, "%s", "abcde");
+ sprintf (buf2, "%s");
+}
--
1.5.4
From 2dd99a4d1ea345878ea6c7e3843c0da70052b146 Mon Sep 17 00:00:00 2001
From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 14 Feb 2007 20:35:19 +0000
Subject: PR c++/30536
* decl.c (grokdeclarator): If __thread is used together with
a storage class other than extern and static, clear thread_p
after issuing diagnostics and fall through to checking the
storage class.
* g++.dg/tls/diag-5.C: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@121962 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 161dfd2..f936c3d 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,11 @@
+2007-02-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/30536
+ * decl.c (grokdeclarator): If __thread is used together with
+ a storage class other than extern and static, clear thread_p
+ after issuing diagnostics and fall through to checking the
+ storage class.
+
2007-02-13 Release Manager
* GCC 4.1.2 released.
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index f29c689..857baba 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -7288,19 +7288,20 @@ grokdeclarator (const cp_declarator *declarator,
/* Warn about storage classes that are invalid for certain
kinds of declarations (parameters, typenames, etc.). */
- if (declspecs->multiple_storage_classes_p)
+ if (thread_p
+ && ((storage_class
+ && storage_class != sc_extern
+ && storage_class != sc_static)
+ || declspecs->specs[(int)ds_typedef]))
{
- error ("multiple storage classes in declaration of %qs", name);
- storage_class = sc_none;
+ if (!declspecs->multiple_storage_classes_p)
+ error ("multiple storage classes in declaration of %qs", name);
+ thread_p = false;
}
- else if (thread_p
- && ((storage_class
- && storage_class != sc_extern
- && storage_class != sc_static)
- || declspecs->specs[(int)ds_typedef]))
+ if (declspecs->multiple_storage_classes_p)
{
error ("multiple storage classes in declaration of %qs", name);
- thread_p = false;
+ storage_class = sc_none;
}
else if (decl_context != NORMAL
&& ((storage_class != sc_none
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index eb55de9..f49902f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,8 @@
2007-02-14 Jakub Jelinek <jakub@redhat.com>
+ PR c++/30536
+ * g++.dg/tls/diag-5.C: New test.
+
PR middle-end/30473
* gcc.dg/pr30473.c: New test.
* gcc.c-torture/execute/20070201-1.c: New test.
diff --git a/gcc/testsuite/g++.dg/tls/diag-5.C b/gcc/testsuite/g++.dg/tls/diag-5.C
new file mode 100644
index 0000000..ca92b30
--- /dev/null
+++ b/gcc/testsuite/g++.dg/tls/diag-5.C
@@ -0,0 +1,5 @@
+// PR c++/30536
+// Invalid __thread specifiers.
+// { dg-require-effective-target tls }
+
+struct A { __thread register int i; }; // { dg-error "multiple storage classes|storage class specified" }
--
1.5.4
From 1a0e4ceec493f99e9e1778bc5bc6ead7d239c1a9 Mon Sep 17 00:00:00 2001
From: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 14 Feb 2007 20:51:12 +0000
Subject: PR rtl-optimization/28772
* Makefile.in (haifa-sched.o): Add dependency on $(PARAMS_H).
Backport from mainline:
2006-04-13 Eric Botcazou <ebotcazou@adacore.com>
* params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
defaulting to 100.
* params.h (MAX_SCHED_READY_INSNS): New macro.
* haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
past MAX_SCHED_READY_INSNS during the first scheduling pass.
(schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
the ready list for 1 cycle during the first scheduling pass.
* doc/invoke.texi (--param): New parameter max-sched-ready-insns.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@121964 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fb5c885..0c7f1f8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,21 @@
+2007-02-14 Eric Botcazou <ebotcazou@adacore.com>
+ Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
+
+ PR rtl-optimization/28772
+ * Makefile.in (haifa-sched.o): Add dependency on $(PARAMS_H).
+
+ Backport from mainline:
+ 2006-04-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
+ defaulting to 100.
+ * params.h (MAX_SCHED_READY_INSNS): New macro.
+ * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
+ past MAX_SCHED_READY_INSNS during the first scheduling pass.
+ (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
+ the ready list for 1 cycle during the first scheduling pass.
+ * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
+
2007-02-14 Jakub Jelinek <jakub@redhat.com>
PR middle-end/30473
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 96a55ad..aa532fb 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -2420,7 +2420,7 @@ modulo-sched.o : modulo-sched.c $(DDG_H) $(CONFIG_H) $(CONFIG_H) $(SYSTEM_H) \
cfghooks.h $(DF_H) $(GCOV_IO_H) hard-reg-set.h $(TM_H) timevar.h tree-pass.h
haifa-sched.o : haifa-sched.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
$(SCHED_INT_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h function.h \
- $(INSN_ATTR_H) toplev.h $(RECOG_H) except.h $(TM_P_H) $(TARGET_H)
+ $(INSN_ATTR_H) toplev.h $(RECOG_H) except.h $(TM_P_H) $(TARGET_H) $(PARAMS_H)
sched-deps.o : sched-deps.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(RTL_H) $(SCHED_INT_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
function.h $(INSN_ATTR_H) toplev.h $(RECOG_H) except.h cselib.h \
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 910f438..3f95a3e 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -6082,6 +6082,12 @@ feedback is available and may be set to higher values than
@option{reorder-block-duplicate} since information about the hot spots is more
accurate.
+@item max-sched-ready-insns
+The maximum number of instructions ready to be issued the scheduler should
+consider at any given time during the first scheduling pass. Increasing
+values mean more thorough searches, making the compilation time increase
+with probably little benefit. The default value is 100.
+
@item max-sched-region-blocks
The maximum number of blocks in a region to be considered for
interblock scheduling. The default value is 10.
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c
index 5713e9a..6a94f77 100644
--- a/gcc/haifa-sched.c
+++ b/gcc/haifa-sched.c
@@ -142,6 +142,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#include "recog.h"
#include "sched-int.h"
#include "target.h"
+#include "params.h"
#ifdef INSN_SCHEDULING
@@ -1379,9 +1380,22 @@ queue_to_ready (struct ready_list *ready)
fprintf (sched_dump, ";;\t\tQ-->Ready: insn %s: ",
(*current_sched_info->print_insn) (insn, 0));
- ready_add (ready, insn);
- if (sched_verbose >= 2)
- fprintf (sched_dump, "moving to ready without stalls\n");
+ /* If the ready list is full, delay the insn for 1 cycle.
+ See the comment in schedule_block for the rationale. */
+ if (!reload_completed
+ && ready->n_ready > MAX_SCHED_READY_INSNS
+ && !SCHED_GROUP_P (insn))
+ {
+ if (sched_verbose >= 2)
+ fprintf (sched_dump, "requeued because ready full\n");
+ queue_insn (insn, 1);
+ }
+ else
+ {
+ ready_add (ready, insn);
+ if (sched_verbose >= 2)
+ fprintf (sched_dump, "moving to ready without stalls\n");
+ }
}
insn_queue[q_ptr] = 0;
@@ -1903,6 +1917,31 @@ schedule_block (int b, int rgn_n_insns)
memset (insn_queue, 0, (max_insn_queue_index + 1) * sizeof (rtx));
last_clock_var = -1;
+ /* The algorithm is O(n^2) in the number of ready insns at any given
+ time in the worst case. Before reload we are more likely to have
+ big lists so truncate them to a reasonable size. */
+ if (!reload_completed && ready.n_ready > MAX_SCHED_READY_INSNS)
+ {
+ ready_sort (&ready);
+
+ /* Find first free-standing insn past MAX_SCHED_READY_INSNS. */
+ for (i = MAX_SCHED_READY_INSNS; i < ready.n_ready; i++)
+ if (!SCHED_GROUP_P (ready_element (&ready, i)))
+ break;
+
+ if (sched_verbose >= 2)
+ {
+ fprintf (sched_dump,
+ ";;\t\tReady list on entry: %d insns\n", ready.n_ready);
+ fprintf (sched_dump,
+ ";;\t\t before reload => truncated to %d insns\n", i);
+ }
+
+ /* Delay all insns past it for 1 cycle. */
+ while (i < ready.n_ready)
+ queue_insn (ready_remove (&ready, i), 1);
+ }
+
/* Start just before the beginning of time. */
clock_var = -1;
advance = 0;
diff --git a/gcc/params.def b/gcc/params.def
index a9f5c8b..23b3113 100644
--- a/gcc/params.def
+++ b/gcc/params.def
@@ -560,6 +560,12 @@ DEFPARAM (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE,
"max-fields-for-field-sensitive",
"Maximum number of fields in a structure before pointer analysis treats the structure as a single variable",
100, 0, 0)
+
+DEFPARAM(PARAM_MAX_SCHED_READY_INSNS,
+ "max-sched-ready-insns",
+ "The maximum number of instructions ready to be issued to be considered by the scheduler during the first scheduling pass",
+ 100, 0, 0)
+
/*
Local variables:
mode:c
diff --git a/gcc/params.h b/gcc/params.h
index 90ccabb..bb5f097 100644
--- a/gcc/params.h
+++ b/gcc/params.h
@@ -147,4 +147,6 @@ typedef enum compiler_param
PARAM_VALUE (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO)
#define MAX_FIELDS_FOR_FIELD_SENSITIVE \
((size_t) PARAM_VALUE (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE))
+#define MAX_SCHED_READY_INSNS \
+ PARAM_VALUE (PARAM_MAX_SCHED_READY_INSNS)
#endif /* ! GCC_PARAMS_H */
--
1.5.4
From 8e72afab20c684d480475f31ff2964b5ae36d63e Mon Sep 17 00:00:00 2001
From: ghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 15 Feb 2007 03:32:28 +0000
Subject: * g++.dg/tree-ssa/nothrow-1.C: Skip test if -fpic/-fPIC is used.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@121978 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f49902f..d8143ad 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2007-02-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * g++.dg/tree-ssa/nothrow-1.C: Skip test if -fpic/-fPIC is used.
+
2007-02-14 Jakub Jelinek <jakub@redhat.com>
PR c++/30536
diff --git a/gcc/testsuite/g++.dg/tree-ssa/nothrow-1.C b/gcc/testsuite/g++.dg/tree-ssa/nothrow-1.C
index 6dbf139..4bb7158 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/nothrow-1.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/nothrow-1.C
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-cfg" } */
+/* { dg-skip-if "" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */
double a;
void t()
{
--
1.5.4
From 28f98eb25e24afd2bf29ca1be5fd8a046947cfa9 Mon Sep 17 00:00:00 2001
From: aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 15 Feb 2007 07:27:00 +0000
Subject: gcc/ChangeLog:
PR debug/30189
* dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
even if cv-qualification is the same.
gcc/testsuite/ChangeLog:
PR debug/30189
* gcc.dg/pr30189.c: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@121986 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0c7f1f8..e94a37b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-02-15 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/30189
+ * dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
+ even if cv-qualification is the same.
+
2007-02-14 Eric Botcazou <ebotcazou@adacore.com>
Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index c57eff9..78d80d4 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -8407,7 +8407,10 @@ modified_type_die (tree type, int is_const_type, int is_volatile_type,
mod_type_die = lookup_type_die (qualified_type);
}
else if (is_const_type < TYPE_READONLY (dtype)
- || is_volatile_type < TYPE_VOLATILE (dtype))
+ || is_volatile_type < TYPE_VOLATILE (dtype)
+ || (is_const_type <= TYPE_READONLY (dtype)
+ && is_volatile_type <= TYPE_VOLATILE (dtype)
+ && DECL_ORIGINAL_TYPE (type_name) != type))
/* cv-unqualified version of named type. Just use the unnamed
type to which it refers. */
mod_type_die
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d8143ad..d78ef49 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-02-15 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/30189
+ * gcc.dg/pr30189.c: New test.
+
2007-02-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* g++.dg/tree-ssa/nothrow-1.C: Skip test if -fpic/-fPIC is used.
diff --git a/gcc/testsuite/gcc.dg/pr30189.c b/gcc/testsuite/gcc.dg/pr30189.c
new file mode 100644
index 0000000..6aa963e
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr30189.c
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-options "-g -O" } */
+
+extern void foo (void);
+
+static
+void baz (int i)
+{
+ foo ();
+ typedef char A[i];
+ struct { A b; } *x = 0;
+}
+
+void
+bar (i)
+{
+ baz (i);
+}
--
1.5.4
From 09a98f48789754d550e66e1dac20cd31e4237f40 Mon Sep 17 00:00:00 2001
From: tobi <tobi@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 15 Feb 2007 16:20:46 +0000
Subject: PR fortran/30478
fortran/
* decl.c (create_enum_history, gfc_free_enum_history): Formatting
fixes.
(add_init_expr_to_sym): Remove ENUM-specific code-path.
(variable_decl): Likewise. Formatting fix.
(match_attr_spec): Remove ENUM-specific codepath.
(gfc_match_enum): Fix typo in error message.
(enumerator_decl): New.
(gfc_match_enumerator_def): Strip down to code necessary for
ENUMs, use enumerator_decl.
testsuite/
* gfortran.dg/enum_4.f90: Update expected error message.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122002 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 45b11a8..25b108f 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,16 @@
+2007-02-15 Tobias Schlueter <tobi@gcc.gnu.org>
+
+ PR fortran/30478
+ * decl.c (create_enum_history, gfc_free_enum_history): Formatting
+ fixes.
+ (add_init_expr_to_sym): Remove ENUM-specific code-path.
+ (variable_decl): Likewise. Formatting fix.
+ (match_attr_spec): Remove ENUM-specific codepath.
+ (gfc_match_enum): Fix typo in error message.
+ (enumerator_decl): New.
+ (gfc_match_enumerator_def): Strip down to code necessary for
+ ENUMs, use enumerator_decl.
+
2007-02-13 Release Manager
* GCC 4.1.2 released.
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c
index e69ae3c..df36201 100644
--- a/gcc/fortran/decl.c
+++ b/gcc/fortran/decl.c
@@ -758,7 +758,7 @@ gfc_set_constant_character_len (int len, gfc_expr * expr)
INIT points to its enumerator value. */
static void
-create_enum_history(gfc_symbol *sym, gfc_expr *init)
+create_enum_history (gfc_symbol *sym, gfc_expr *init)
{
enumerator_history *new_enum_history;
gcc_assert (sym != NULL && init != NULL);
@@ -789,7 +789,7 @@ create_enum_history(gfc_symbol *sym, gfc_expr *init)
/* Function to free enum kind history. */
void
-gfc_free_enum_history(void)
+gfc_free_enum_history (void)
{
enumerator_history *current = enum_history;
enumerator_history *next;
@@ -805,7 +805,7 @@ gfc_free_enum_history(void)
}
-/* Function called by variable_decl() that adds an initialization
+/* Function called by variabl_decl() that adds an initialization
expression to a symbol. */
static try
@@ -911,10 +911,6 @@ add_init_expr_to_sym (const char *name, gfc_expr ** initp,
*initp = NULL;
}
- /* Maintain enumerator history. */
- if (gfc_current_state () == COMP_ENUM)
- create_enum_history (sym, init);
-
return SUCCESS;
}
@@ -1073,14 +1069,6 @@ variable_decl (int elem)
if (m == MATCH_NO)
as = gfc_copy_array_spec (current_as);
- else if (gfc_current_state () == COMP_ENUM)
- {
- gfc_error ("Enumerator cannot be array at %C");
- gfc_free_enum_history ();
- m = MATCH_ERROR;
- goto cleanup;
- }
-
char_len = NULL;
cl = NULL;
@@ -1179,10 +1167,11 @@ variable_decl (int elem)
goto cleanup;
}
- /* An interface body specifies all of the procedure's characteristics and these
- shall be consistent with those specified in the procedure definition, except
- that the interface may specify a procedure that is not pure if the procedure
- is defined to be pure(12.3.2). */
+ /* An interface body specifies all of the procedure's
+ characteristics and these shall be consistent with those
+ specified in the procedure definition, except that the interface
+ may specify a procedure that is not pure if the procedure is
+ defined to be pure(12.3.2). */
if (current_ts.type == BT_DERIVED
&& gfc_current_ns->proc_name->attr.if_source == IFSRC_IFBODY
&& current_ts.derived->ns != gfc_current_ns)
@@ -1288,30 +1277,6 @@ variable_decl (int elem)
}
}
- /* Check if we are parsing an enumeration and if the current enumerator
- variable has an initializer or not. If it does not have an
- initializer, the initialization value of the previous enumerator
- (stored in last_initializer) is incremented by 1 and is used to
- initialize the current enumerator. */
- if (gfc_current_state () == COMP_ENUM)
- {
- if (initializer == NULL)
- initializer = gfc_enum_initializer (last_initializer, old_locus);
-
- if (initializer == NULL || initializer->ts.type != BT_INTEGER)
- {
- gfc_error("ENUMERATOR %L not initialized with integer expression",
- &var_locus);
- m = MATCH_ERROR;
- gfc_free_enum_history ();
- goto cleanup;
- }
-
- /* Store this current initializer, for the next enumerator
- variable to be parsed. */
- last_initializer = initializer;
- }
-
/* Add the initializer. Note that it is fine if initializer is
NULL here, because we sometimes also need to check if a
declaration *must* have an initialization expression. */
@@ -2033,12 +1998,6 @@ match_attr_spec (void)
if (d == DECL_NONE || d == DECL_COLON)
break;
- if (gfc_current_state () == COMP_ENUM)
- {
- gfc_error ("Enumerator cannot have attributes %C");
- return MATCH_ERROR;
- }
-
seen[d]++;
seen_at[d] = gfc_current_locus;
@@ -2057,18 +2016,6 @@ match_attr_spec (void)
}
}
- /* If we are parsing an enumeration and have ensured that no other
- attributes are present we can now set the parameter attribute. */
- if (gfc_current_state () == COMP_ENUM)
- {
- t = gfc_add_flavor (&current_attr, FL_PARAMETER, NULL, NULL);
- if (t == FAILURE)
- {
- m = MATCH_ERROR;
- goto cleanup;
- }
- }
-
/* No double colon, so assume that we've been looking at something
else the whole time. */
if (d == DECL_NONE)
@@ -4081,7 +4028,7 @@ gfc_match_enum (void)
return m;
if (gfc_notify_std (GFC_STD_F2003,
- "New in Fortran 2003: ENUM AND ENUMERATOR at %C")
+ "New in Fortran 2003: ENUM and ENUMERATOR at %C")
== FAILURE)
return MATCH_ERROR;
@@ -4089,19 +4036,116 @@ gfc_match_enum (void)
}
+/* Match a variable name with an optional initializer. When this
+ subroutine is called, a variable is expected to be parsed next.
+ Depending on what is happening at the moment, updates either the
+ symbol table or the current interface. */
+
+static match
+enumerator_decl (void)
+{
+ char name[GFC_MAX_SYMBOL_LEN + 1];
+ gfc_expr *initializer;
+ gfc_array_spec *as = NULL;
+ gfc_symbol *sym;
+ locus var_locus;
+ match m;
+ try t;
+ locus old_locus;
+
+ initializer = NULL;
+ old_locus = gfc_current_locus;
+
+ /* When we get here, we've just matched a list of attributes and
+ maybe a type and a double colon. The next thing we expect to see
+ is the name of the symbol. */
+ m = gfc_match_name (name);
+ if (m != MATCH_YES)
+ goto cleanup;
+
+ var_locus = gfc_current_locus;
+
+ /* OK, we've successfully matched the declaration. Now put the
+ symbol in the current namespace. If we fail to create the symbol,
+ bail out. */
+ if (build_sym (name, NULL, &as, &var_locus) == FAILURE)
+ {
+ m = MATCH_ERROR;
+ goto cleanup;
+ }
+
+ /* The double colon must be present in order to have initializers.
+ Otherwise the statement is ambiguous with an assignment statement. */
+ if (colon_seen)
+ {
+ if (gfc_match_char ('=') == MATCH_YES)
+ {
+ m = gfc_match_init_expr (&initializer);
+ if (m == MATCH_NO)
+ {
+ gfc_error ("Expected an initialization expression at %C");
+ m = MATCH_ERROR;
+ }
+
+ if (m != MATCH_YES)
+ goto cleanup;
+ }
+ }
+
+ /* If we do not have an initializer, the initialization value of the
+ previous enumerator (stored in last_initializer) is incremented
+ by 1 and is used to initialize the current enumerator. */
+ if (initializer == NULL)
+ initializer = gfc_enum_initializer (last_initializer, old_locus);
+
+ if (initializer == NULL || initializer->ts.type != BT_INTEGER)
+ {
+ gfc_error("ENUMERATOR %L not initialized with integer expression",
+ &var_locus);
+ m = MATCH_ERROR;
+ gfc_free_enum_history ();
+ goto cleanup;
+ }
+
+ /* Store this current initializer, for the next enumerator variable
+ to be parsed. add_init_expr_to_sym() zeros initializer, so we
+ use last_initializer below. */
+ last_initializer = initializer;
+ t = add_init_expr_to_sym (name, &initializer, &var_locus);
+
+ /* Maintain enumerator history. */
+ gfc_find_symbol (name, NULL, 0, &sym);
+ create_enum_history (sym, last_initializer);
+
+ return (t == SUCCESS) ? MATCH_YES : MATCH_ERROR;
+
+cleanup:
+ /* Free stuff up and return. */
+ gfc_free_expr (initializer);
+
+ return m;
+}
+
+
/* Match the enumerator definition statement. */
match
gfc_match_enumerator_def (void)
{
match m;
- int elem;
+ try t;
gfc_clear_ts (&current_ts);
m = gfc_match (" enumerator");
if (m != MATCH_YES)
return m;
+
+ m = gfc_match (" :: ");
+ if (m == MATCH_ERROR)
+ return m;
+
+ colon_seen = (m == MATCH_YES);
if (gfc_current_state () != COMP_ENUM)
{
@@ -4113,17 +4157,17 @@ gfc_match_enumerator_def (void)
(&current_ts)->type = BT_INTEGER;
(&current_ts)->kind = gfc_c_int_kind;
- m = match_attr_spec ();
- if (m == MATCH_ERROR)
+ gfc_clear_attr (&current_attr);
+ t = gfc_add_flavor (&current_attr, FL_PARAMETER, NULL, NULL);
+ if (t == FAILURE)
{
- m = MATCH_NO;
+ m = MATCH_ERROR;
goto cleanup;
}
- elem = 1;
for (;;)
{
- m = variable_decl (elem++);
+ m = enumerator_decl ();
if (m == MATCH_ERROR)
goto cleanup;
if (m == MATCH_NO)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d78ef49..1ba6280 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-02-10 Tobias Schlueter <tobi@gcc.gnu.org>
+
+ PR fortran/30478
+ * gfortran.dg/enum_4.f90: Update expected error message.
+
2007-02-15 Alexandre Oliva <aoliva@redhat.com>
PR debug/30189
diff --git a/gcc/testsuite/gfortran.dg/enum_4.f90 b/gcc/testsuite/gfortran.dg/enum_4.f90
index 99acda0..be506b4 100644
--- a/gcc/testsuite/gfortran.dg/enum_4.f90
+++ b/gcc/testsuite/gfortran.dg/enum_4.f90
@@ -5,12 +5,12 @@ program main
implicit none
enum, bind (c)
enumerator :: red, black = 2
- enumerator :: blue = 1, red ! { dg-error "already" }
+ enumerator :: blue = 1, red ! { dg-error "already has basic type" }
end enum
enum, bind (c)
- enumerator :: r, b(10) = 2 ! { dg-error "cannot be array" }
- enumerator , save :: g = 1 ! { dg-error "cannot have attributes" }
+ enumerator :: r, b(10) = 2 ! { dg-error "Syntax error" }
+ enumerator , save :: g = 1 ! { dg-error "Syntax error" }
end ! { dg-error " END ENUM" }
end program main ! { dg-excess-errors "" }
--
1.5.4
From 63fd71126023734147e9125fc0aee1b95b5d22e2 Mon Sep 17 00:00:00 2001
From: aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 15 Feb 2007 17:33:24 +0000
Subject: gcc/ChangeLog:
* tree-sra.c (instantiate_missing_elements): Canonicalize
bit-field types.
(sra_build_assignment): New.
(generate_copy_inout, generate_element_copy,
generate_element_zero, generate_one_element_init): Use it.
gcc/testsuite/ChangeLog:
* g++.dg/tree-ssa/sra-1.C: New.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122008 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e94a37b..25550be 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,13 @@
2007-02-15 Alexandre Oliva <aoliva@redhat.com>
+ * tree-sra.c (instantiate_missing_elements): Canonicalize
+ bit-field types.
+ (sra_build_assignment): New.
+ (generate_copy_inout, generate_element_copy,
+ generate_element_zero, generate_one_element_init): Use it.
+
+2007-02-15 Alexandre Oliva <aoliva@redhat.com>
+
PR debug/30189
* dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
even if cv-qualification is the same.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 1ba6280..a173783 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2007-02-15 Alexandre Oliva <aoliva@redhat.com>
+
+ * g++.dg/tree-ssa/sra-1.C: New.
+
2007-02-10 Tobias Schlueter <tobi@gcc.gnu.org>
PR fortran/30478
diff --git a/gcc/testsuite/g++.dg/tree-ssa/sra-1.C b/gcc/testsuite/g++.dg/tree-ssa/sra-1.C
new file mode 100644
index 0000000..e3e3918
--- /dev/null
+++ b/gcc/testsuite/g++.dg/tree-ssa/sra-1.C
@@ -0,0 +1,29 @@
+/* https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=223576 */
+
+/* SRA failed to canonicalize bit-field types, introducing type
+ mismatches. */
+
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+struct A
+{
+ int a:16;
+ /* These dummy bit-fields are here to prevent GCC 4.2+ from merging
+ the bit-field compares into a single word compare, which disables
+ SRA. */
+ int a2:16;
+ int a3:16;
+ int a4:16;
+ int b:8;
+ bool operator==(A const x) const
+ {
+ return (this->a == x.a && this->b == x.b);
+ }
+};
+
+bool
+foo (A const x, A const y)
+{
+ return x == y;
+}
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index c256320..a1fecb8 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -1,7 +1,7 @@
/* Scalar Replacement of Aggregates (SRA) converts some structure
references into scalar references, exposing them to the scalar
optimizers.
- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
Contributed by Diego Novillo <dnovillo@redhat.com>
This file is part of GCC.
@@ -1246,7 +1246,23 @@ instantiate_missing_elements (struct sra_elt *elt)
tree f;
for (f = TYPE_FIELDS (type); f ; f = TREE_CHAIN (f))
if (TREE_CODE (f) == FIELD_DECL)
- instantiate_missing_elements_1 (elt, f, TREE_TYPE (f));
+ {
+ tree field_type = TREE_TYPE (f);
+
+ /* canonicalize_component_ref() unwidens some bit-field
+ types (not marked as DECL_BIT_FIELD in C++), so we
+ must do the same, lest we may introduce type
+ mismatches. */
+ if (INTEGRAL_TYPE_P (field_type)
+ && DECL_MODE (f) != TYPE_MODE (field_type))
+ field_type = TREE_TYPE (get_unwidened (build3 (COMPONENT_REF,
+ field_type,
+ elt->element,
+ f, NULL_TREE),
+ NULL_TREE));
+
+ instantiate_missing_elements_1 (elt, f, field_type);
+ }
break;
}
@@ -1539,6 +1555,16 @@ generate_element_ref (struct sra_elt *elt)
return elt->element;
}
+static tree
+sra_build_assignment (tree dst, tree src)
+{
+#ifdef ENABLE_CHECKING
+ gcc_assert (TYPE_MAIN_VARIANT (TREE_TYPE (dst))
+ == TYPE_MAIN_VARIANT (TREE_TYPE (src)));
+#endif
+ return build (MODIFY_EXPR, void_type_node, dst, src);
+}
+
/* Generate a set of assignment statements in *LIST_P to copy all
instantiated elements under ELT to or from the equivalent structure
rooted at EXPR. COPY_OUT controls the direction of the copy, with
@@ -1562,16 +1588,16 @@ generate_copy_inout (struct sra_elt *elt, bool copy_out, tree expr,
i = c->replacement;
t = build (COMPLEX_EXPR, elt->type, r, i);
- t = build (MODIFY_EXPR, void_type_node, expr, t);
+ t = sra_build_assignment (expr, t);
SSA_NAME_DEF_STMT (expr) = t;
append_to_statement_list (t, list_p);
}
else if (elt->replacement)
{
if (copy_out)
- t = build (MODIFY_EXPR, void_type_node, elt->replacement, expr);
+ t = sra_build_assignment (elt->replacement, expr);
else
- t = build (MODIFY_EXPR, void_type_node, expr, elt->replacement);
+ t = sra_build_assignment (expr, elt->replacement);
append_to_statement_list (t, list_p);
}
else
@@ -1606,8 +1632,7 @@ generate_element_copy (struct sra_elt *dst, struct sra_elt *src, tree *list_p)
gcc_assert (src->replacement);
- t = build (MODIFY_EXPR, void_type_node, dst->replacement,
- src->replacement);
+ t = sra_build_assignment (dst->replacement, src->replacement);
append_to_statement_list (t, list_p);
}
}
@@ -1638,7 +1663,7 @@ generate_element_zero (struct sra_elt *elt, tree *list_p)
gcc_assert (elt->is_scalar);
t = fold_convert (elt->type, integer_zero_node);
- t = build (MODIFY_EXPR, void_type_node, elt->replacement, t);
+ t = sra_build_assignment (elt->replacement, t);
append_to_statement_list (t, list_p);
}
}
@@ -1650,7 +1675,9 @@ static void
generate_one_element_init (tree var, tree init, tree *list_p)
{
/* The replacement can be almost arbitrarily complex. Gimplify. */
- tree stmt = build (MODIFY_EXPR, void_type_node, var, init);
+ tree stmt;
+
+ stmt = sra_build_assignment (var, init);
gimplify_and_add (stmt, list_p);
}
--
1.5.4
From 08a97a4239bb1d5183a8e5d1bd8506b438d202fb Mon Sep 17 00:00:00 2001
From: bwilson <bwilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 15 Feb 2007 18:14:44 +0000
Subject: * config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122010 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 25550be..48e4a7c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2007-02-15 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs.
+
2007-02-15 Alexandre Oliva <aoliva@redhat.com>
* tree-sra.c (instantiate_missing_elements): Canonicalize
diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c
index 32cb94d..177970b 100644
--- a/gcc/config/xtensa/xtensa.c
+++ b/gcc/config/xtensa/xtensa.c
@@ -528,6 +528,8 @@ constantpool_address_p (rtx addr)
int
constantpool_mem_p (rtx op)
{
+ if (GET_CODE (op) == SUBREG)
+ op = SUBREG_REG (op);
if (GET_CODE (op) == MEM)
return constantpool_address_p (XEXP (op, 0));
return FALSE;
--
1.5.4
From 5840d32dfd13cd1429fdc535979167478eecb3d1 Mon Sep 17 00:00:00 2001
From: kargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 15 Feb 2007 19:33:13 +0000
Subject: 2007-02-15 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/30799
* primary.c (match_logical_constant): Return MATCH_ERROR on invalid
kind.
* gfortran.dg/logical_2.f90: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122012 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 25b108f..439d002 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2007-02-15 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/30799
+ * primary.c (match_logical_constant): Return MATCH_ERROR on invalid
+ kind.
+
2007-02-15 Tobias Schlueter <tobi@gcc.gnu.org>
PR fortran/30478
diff --git a/gcc/fortran/primary.c b/gcc/fortran/primary.c
index 182cb4c..e5bdd79 100644
--- a/gcc/fortran/primary.c
+++ b/gcc/fortran/primary.c
@@ -1039,7 +1039,10 @@ match_logical_constant (gfc_expr ** result)
kind = gfc_default_logical_kind;
if (gfc_validate_kind (BT_LOGICAL, kind, true) < 0)
- gfc_error ("Bad kind for logical constant at %C");
+ {
+ gfc_error ("Bad kind for logical constant at %C");
+ return MATCH_ERROR;
+ }
e = gfc_get_expr ();
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a173783..220ac98 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-02-15 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/30799
+ * gfortran.dg/logical_2.f90: New test.
+
2007-02-15 Alexandre Oliva <aoliva@redhat.com>
* g++.dg/tree-ssa/sra-1.C: New.
diff --git a/gcc/testsuite/gfortran.dg/logical_2.f90 b/gcc/testsuite/gfortran.dg/logical_2.f90
new file mode 100644
index 0000000..1a28fef
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/logical_2.f90
@@ -0,0 +1,26 @@
+! { dg-do compile }
+! PR fortran/30799
+! Inconsistent handling of bad (invalid) LOGICAL kinds
+! Reporter: Harald Anlauf <anlauf@gmx.de>
+! Testcase altered by Steven G. Kargl
+program gfcbug57
+ implicit none
+ !
+ ! These are logical kinds known by gfortran and many other compilers:
+ !
+ print *, kind (.true._1) ! This prints "1"
+ print *, kind (.true._2) ! This prints "2"
+ print *, kind (.true._4) ! This prints "4"
+ print *, kind (.true._8) ! This prints "8"
+ !
+ ! These are very strange (read: bad (invalid?)) logical kinds,
+ ! handled inconsistently by gfortran (there's no logical(kind=0) etc.)
+ !
+ print *, kind (.true._0) ! { dg-error "kind for logical constant" }
+ print *, kind (.true._3) ! { dg-error "kind for logical constant" }
+ print *, kind (.true._123) ! { dg-error "kind for logical constant" }
+ !
+ ! Here gfortran bails out with a runtime error:
+ !
+ print *, .true._3 ! { dg-error "kind for logical constant" }
+end program gfcbug57
--
1.5.4
From 3cbffb519db68f797430b068c348c716f7c0c992 Mon Sep 17 00:00:00 2001
From: aesok <aesok@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 15 Feb 2007 20:01:59 +0000
Subject: PR target/19087
* config/avr/avr.c (DWARF2_ADDR_SIZE): Define.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122013 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 48e4a7c..2e813ce 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-02-15 Anatoly Sokolov <aesok@post.ru>
+
+ PR target/19087
+ * config/avr/avr.c (DWARF2_ADDR_SIZE): Define.
+
2007-02-15 Bob Wilson <bob.wilson@acm.org>
* config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs.
diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h
index bcd651b..0c2852d 100644
--- a/gcc/config/avr/avr.h
+++ b/gcc/config/avr/avr.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler,
for ATMEL AVR at90s8515, ATmega103/103L, ATmega603/603L microcontrollers.
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
Free Software Foundation, Inc.
Contributed by Denis Chertykov (denisc@overta.ru)
@@ -869,4 +869,6 @@ extern int avr_case_values_threshold;
#define DWARF2_DEBUGGING_INFO 1
+#define DWARF2_ADDR_SIZE 4
+
#define OBJECT_FORMAT_ELF
--
1.5.4
From 9ea0fc2172d2ed7722e734fc551f0f97b36c6daf Mon Sep 17 00:00:00 2001
From: bonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 16 Feb 2007 09:13:47 +0000
Subject: 2007-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
PR other/27843
* Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
nested double- and backquotes.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122035 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2e813ce..69ea972 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR other/27843
+ * Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
+ nested double- and backquotes.
+
2007-02-15 Anatoly Sokolov <aesok@post.ru>
PR target/19087
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index aa532fb..75a8a9d 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -391,7 +391,9 @@ CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
# Purge it of unneccessary internal relative paths
# to directories that might not exist yet.
# The sed idiom for this is to repeat the search-and-replace until it doesn't match, using :a ... ta.
-SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`
+# Use single quotes here to avoid nested double- and backquotes, this
+# macro is also used in a double-quoted context.
+SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e 's,[^/]*/\.\.\/,,' -e ta`
# Control whether to run fixproto and fixincludes.
STMP_FIXPROTO = @STMP_FIXPROTO@
--
1.5.4
From b8366d8081a1977120f98bc9aff3cf567302ff07 Mon Sep 17 00:00:00 2001
From: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 16 Feb 2007 20:51:36 +0000
Subject: PR rtl-optimization/30787
* loop.c (strength_reduce): Don't reduce giv that is not always
executed and where add_val or mult_val can trap.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122052 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 69ea972..8c6f7b2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR rtl-optimization/30787
+ * loop.c (strength_reduce): Don't reduce giv that is not always
+ executed and where add_val or mult_val can trap.
+
2007-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
PR other/27843
@@ -560,7 +566,7 @@
2006-11-02 Eric Botcazou <ebotcazou@libertysurf.fr>
* doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build
- instructions.
+
(sparc64-sun-solaris2*): Likewise.
2006-11-02 Zdenek Dvorak <dvorakz@suse.cz>
diff --git a/gcc/loop.c b/gcc/loop.c
index f9d7493..e37a806 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -6493,13 +6493,13 @@ strength_reduce (struct loop *loop, int flags)
v->ignore = 1;
bl->all_reduced = 0;
}
- else if (!v->always_computable
+ else if (! v->always_executed
&& (may_trap_or_fault_p (v->add_val)
|| may_trap_or_fault_p (v->mult_val)))
{
if (loop_dump_stream)
fprintf (loop_dump_stream,
- "giv of insn %d: not always computable.\n",
+ "giv of insn %d: not always executed.\n",
INSN_UID (v->insn));
v->ignore = 1;
bl->all_reduced = 0;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 220ac98..20499ae 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2007-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.c-torture/compile/20070216-1.c: New test.
+
2007-02-15 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/30799
diff --git a/gcc/testsuite/gcc.c-torture/compile/20070216-1.c b/gcc/testsuite/gcc.c-torture/compile/20070216-1.c
new file mode 100644
index 0000000..fc23560
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20070216-1.c
@@ -0,0 +1,23 @@
+/* PR rtl-optimization/30787 */
+/* Testcase by Jakub Jelinek <jakub@gcc.gnu.org> */
+
+struct S
+{
+ int *s;
+};
+
+void test (int x, struct S *y)
+{
+ int i;
+ for (i = 0; i < x; i++)
+ {
+ if (y)
+ y->s[i] += 1;
+ }
+}
+
+int main (void)
+{
+ test (1, (void *) 0);
+ return 0;
+}
--
1.5.4
From b52d68c63a43f017a6f0b364097380e9f551709b Mon Sep 17 00:00:00 2001
From: gerald <gerald@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 16 Feb 2007 21:31:54 +0000
Subject: * ltconfig (freebsd*): Default to elf.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122056 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/ChangeLog b/ChangeLog
index 71d931e..5eaa4ed 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2007-02-16 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * ltconfig (freebsd*): Default to elf.
+
2007-02-13 Release Manager
* GCC 4.1.2 released.
diff --git a/ltconfig b/ltconfig
index 839b980..cfbfda8 100755
--- a/ltconfig
+++ b/ltconfig
@@ -1133,7 +1133,7 @@ freebsd1*)
;;
freebsd*)
- objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
version_type=freebsd-$objformat
case $version_type in
freebsd-elf*)
--
1.5.4
From 997749b10573f22de52b910045bce8038f457492 Mon Sep 17 00:00:00 2001
From: danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 17 Feb 2007 03:47:50 +0000
Subject: * pa.md (tp_load): Correct mfctl instruction syntax.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122068 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8c6f7b2..31bd04d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2007-02-16 Guy Martin <gmsoft@gentoo.org>
+
+ * pa.md (tp_load): Correct mfctl instruction syntax.
+
2007-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
PR rtl-optimization/30787
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index 95893eb..8f3e05e 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -9573,7 +9573,7 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
[(set (match_operand:SI 0 "register_operand" "=r")
(unspec:SI [(const_int 0)] UNSPEC_TP))]
""
- "{mfctl|mfctl,w} %%cr27,%0"
+ "mfctl %%cr27,%0"
[(set_attr "type" "multi")
(set_attr "length" "4")])
--
1.5.4
From 562888be6a452879a3d4e60761c6b3d32cfd1437 Mon Sep 17 00:00:00 2001
From: aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 17 Feb 2007 07:07:28 +0000
Subject: PR tree-optimization/30823
* tree-sra.c (sra_build_assignment): Drop type-checking assert.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122071 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 31bd04d..e97d71c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-02-17 Alexandre Oliva <aoliva@redhat.com>
+
+ PR tree-optimization/30823
+ * tree-sra.c (sra_build_assignment): Drop type-checking assert.
+
2007-02-16 Guy Martin <gmsoft@gentoo.org>
* pa.md (tp_load): Correct mfctl instruction syntax.
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index a1fecb8..5537ba0 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -1558,10 +1558,8 @@ generate_element_ref (struct sra_elt *elt)
static tree
sra_build_assignment (tree dst, tree src)
{
-#ifdef ENABLE_CHECKING
- gcc_assert (TYPE_MAIN_VARIANT (TREE_TYPE (dst))
- == TYPE_MAIN_VARIANT (TREE_TYPE (src)));
-#endif
+ /* We need TYPE_CANONICAL to compare the types of dst and src
+ efficiently, but that's only introduced in GCC 4.3. */
return build (MODIFY_EXPR, void_type_node, dst, src);
}
--
1.5.4
From 4e24b2f8ccbcfae18dc6b15e721906c0111e3eda Mon Sep 17 00:00:00 2001
From: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 17 Feb 2007 08:23:40 +0000
Subject: Fix oversight.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122072 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 20499ae..a071029 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,6 +1,6 @@
2007-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
- * gcc.c-torture/compile/20070216-1.c: New test.
+ * gcc.c-torture/execute/20070216-1.c: New test.
2007-02-15 Steven G. Kargl <kargl@gcc.gnu.org>
diff --git a/gcc/testsuite/gcc.c-torture/compile/20070216-1.c b/gcc/testsuite/gcc.c-torture/compile/20070216-1.c
deleted file mode 100644
index fc23560..0000000
--- a/gcc/testsuite/gcc.c-torture/compile/20070216-1.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* PR rtl-optimization/30787 */
-/* Testcase by Jakub Jelinek <jakub@gcc.gnu.org> */
-
-struct S
-{
- int *s;
-};
-
-void test (int x, struct S *y)
-{
- int i;
- for (i = 0; i < x; i++)
- {
- if (y)
- y->s[i] += 1;
- }
-}
-
-int main (void)
-{
- test (1, (void *) 0);
- return 0;
-}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20070216-1.c b/gcc/testsuite/gcc.c-torture/execute/20070216-1.c
new file mode 100644
index 0000000..fc23560
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20070216-1.c
@@ -0,0 +1,23 @@
+/* PR rtl-optimization/30787 */
+/* Testcase by Jakub Jelinek <jakub@gcc.gnu.org> */
+
+struct S
+{
+ int *s;
+};
+
+void test (int x, struct S *y)
+{
+ int i;
+ for (i = 0; i < x; i++)
+ {
+ if (y)
+ y->s[i] += 1;
+ }
+}
+
+int main (void)
+{
+ test (1, (void *) 0);
+ return 0;
+}
--
1.5.4
From d98636c07a3348838481261c309160dee2f38867 Mon Sep 17 00:00:00 2001
From: irar <irar@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun, 18 Feb 2007 12:08:59 +0000
Subject: * tree-ssa-alias.c (may_aliases_intersect): New function.
* tree-data-ref.c (ptr_ptr_may_alias_p): Call may_aliases_intersect
for different tags.
* tree-flow.h (may_aliases_intersect): Add function declaration.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122091 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e97d71c..36f84c8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2007-02-18 Ira Rosen <irar@il.ibm.com>
+
+ * tree-ssa-alias.c (may_aliases_intersect): New function.
+ * tree-data-ref.c (ptr_ptr_may_alias_p): Call may_aliases_intersect
+ for different tags.
+ * tree-flow.h (may_aliases_intersect): Add function declaration.
+
2007-02-17 Alexandre Oliva <aoliva@redhat.com>
PR tree-optimization/30823
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a071029..aa121b6 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2007-02-18 Ira Rosen <irar@il.ibm.com>
+
+ * gcc.dg/vect/vect-106-alias.c: New test.
+
2007-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
* gcc.c-torture/execute/20070216-1.c: New test.
diff --git a/gcc/testsuite/gcc.dg/vect/vect-106-alias.c b/gcc/testsuite/gcc.dg/vect/vect-106-alias.c
new file mode 100755
index 0000000..011e7e4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/vect-106-alias.c
@@ -0,0 +1,51 @@
+/* { dg-require-effective-target vect_int } */
+
+#include <stdlib.h>
+#include <stdarg.h>
+#include "tree-vect.h"
+
+#define N 9
+
+static int a[N] = {1,2,3,4,5,6,7,8,9};
+static int b[N] = {2,3,4,5,6,7,8,9,0};
+
+int main1 () {
+ int i;
+ int *p, *q, *p1, *q1;
+ p = (unsigned int *) malloc (sizeof (unsigned int) * N);
+ q = (unsigned int *) malloc (sizeof (unsigned int) * N);
+
+ p1 = p; q1 = q;
+
+ /* Not vectorizable: because of the redundant cast (caused by ponter
+ arithmetics), alias analysis fails to distinguish between
+ the pointers. */
+ for (i = 0; i < N; i++)
+ {
+ *(q + i) = a[i];
+ *(p + i) = b[i];
+ }
+
+ /* check results: */
+ for (i = 0; i < N; i++)
+ {
+ if (*q != a[i] || *p != b[i])
+ abort();
+ q++;
+ p++;
+ }
+
+ return 0;
+}
+
+int main (void)
+{
+ check_vect ();
+
+ return main1 ();
+}
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */
+/* { dg-final { scan-tree-dump-times "can't determine dependence" 1 "vect" } } */
+/* { dg-final { cleanup-tree-dump "vect" } } */
+
diff --git a/gcc/tree-data-ref.c b/gcc/tree-data-ref.c
index 10a223e..2128fb9 100644
--- a/gcc/tree-data-ref.c
+++ b/gcc/tree-data-ref.c
@@ -146,7 +146,12 @@ ptr_ptr_may_alias_p (tree ptr_a, tree ptr_b,
tag_b = DR_MEMTAG (drb);
if (!tag_b)
return false;
- *aliased = (tag_a == tag_b);
+
+ if (tag_a == tag_b)
+ *aliased = true;
+ else
+ *aliased = may_aliases_intersect (tag_a, tag_b);
+
return true;
}
diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h
index b415073..0facf69 100644
--- a/gcc/tree-flow.h
+++ b/gcc/tree-flow.h
@@ -610,6 +610,7 @@ extern void dump_points_to_info_for (FILE *, tree);
extern void debug_points_to_info_for (tree);
extern bool may_be_aliased (tree);
extern bool is_aliased_with (tree, tree);
+extern bool may_aliases_intersect (tree, tree);
extern struct ptr_info_def *get_ptr_info (tree);
extern void add_type_alias (tree, tree);
extern void new_type_alias (tree, tree);
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c
index e880372..e96c55f 100644
--- a/gcc/tree-ssa-alias.c
+++ b/gcc/tree-ssa-alias.c
@@ -2231,6 +2231,36 @@ is_aliased_with (tree tag, tree sym)
}
+/* Given two tags return TRUE if their may-alias sets intersect. */
+
+bool
+may_aliases_intersect (tree tag1, tree tag2)
+{
+ struct pointer_set_t *set1 = pointer_set_create ();
+ unsigned i;
+ VEC(tree,gc) *may_aliases1 = may_aliases (tag1);
+ VEC(tree,gc) *may_aliases2 = may_aliases (tag2);
+ tree sym;
+
+ /* Insert all the symbols from the first may-alias set into the
+ pointer-set. */
+ for (i = 0; VEC_iterate (tree, may_aliases1, i, sym); i++)
+ pointer_set_insert (set1, sym);
+
+ /* Go through the second may-alias set and check if it contains symbols that
+ are common with the first set. */
+ for (i = 0; VEC_iterate (tree, may_aliases2, i, sym); i++)
+ if (pointer_set_contains (set1, sym))
+ {
+ pointer_set_destroy (set1);
+ return true;
+ }
+
+ pointer_set_destroy (set1);
+ return false;
+}
+
+
/* Add VAR to the list of may-aliases of PTR's type tag. If PTR
doesn't already have a type tag, create one. */
--
1.5.4
From 15944e9ce0d0ae70d0e8ea3b8c5122497eeb5449 Mon Sep 17 00:00:00 2001
From: sayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun, 18 Feb 2007 17:10:19 +0000
Subject: Backport from mainline.
PR middle-end/24427
PR rtl-optimization/28173
* fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
into (X,C2) if C1 is a subset of the bits of C2. Transform
(X&C1)|C2 into X|C2 if C1|C2 == ~0. Canonicalize (X&C1)|C2 as
(X&(C1&~C2))|C2.
<BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
* gcc.dg/tree-ssa/andor-1.c: New test case.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122100 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 36f84c8..114622a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2007-02-18 Roger Sayle <roger@eyesopen.com>
+
+ Backport from mainline.
+ PR middle-end/24427
+ PR rtl-optimization/28173
+ * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
+ into (X,C2) if C1 is a subset of the bits of C2. Transform
+ (X&C1)|C2 into X|C2 if C1|C2 == ~0. Canonicalize (X&C1)|C2 as
+ (X&(C1&~C2))|C2.
+ <BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
+
2007-02-18 Ira Rosen <irar@il.ibm.com>
* tree-ssa-alias.c (may_aliases_intersect): New function.
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index f87cc87..284c429 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -1,6 +1,7 @@
/* Fold a constant sub-tree into a single node for C-compiler
Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+ Free Software Foundation, Inc.
This file is part of GCC.
@@ -8068,6 +8069,53 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1)
return omit_one_operand (type, t1, arg0);
}
+ /* Canonicalize (X & C1) | C2. */
+ if (TREE_CODE (arg0) == BIT_AND_EXPR
+ && TREE_CODE (arg1) == INTEGER_CST
+ && TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST)
+ {
+ unsigned HOST_WIDE_INT hi1, lo1, hi2, lo2, mlo, mhi;
+ int width = TYPE_PRECISION (type);
+ hi1 = TREE_INT_CST_HIGH (TREE_OPERAND (arg0, 1));
+ lo1 = TREE_INT_CST_LOW (TREE_OPERAND (arg0, 1));
+ hi2 = TREE_INT_CST_HIGH (arg1);
+ lo2 = TREE_INT_CST_LOW (arg1);
+
+ /* If (C1&C2) == C1, then (X&C1)|C2 becomes (X,C2). */
+ if ((hi1 & hi2) == hi1 && (lo1 & lo2) == lo1)
+ return omit_one_operand (type, arg1, TREE_OPERAND (arg0, 0));
+
+ if (width > HOST_BITS_PER_WIDE_INT)
+ {
+ mhi = (unsigned HOST_WIDE_INT) -1
+ >> (2 * HOST_BITS_PER_WIDE_INT - width);
+ mlo = -1;
+ }
+ else
+ {
+ mhi = 0;
+ mlo = (unsigned HOST_WIDE_INT) -1
+ >> (HOST_BITS_PER_WIDE_INT - width);
+ }
+
+ /* If (C1|C2) == ~0 then (X&C1)|C2 becomes X|C2. */
+ if ((~(hi1 | hi2) & mhi) == 0 && (~(lo1 | lo2) & mlo) == 0)
+ return fold_build2 (BIT_IOR_EXPR, type,
+ TREE_OPERAND (arg0, 0), arg1);
+
+ /* Minimize the number of bits set in C1, i.e. C1 := C1 & ~C2. */
+ hi1 &= mhi;
+ lo1 &= mlo;
+ if ((hi1 & ~hi2) != hi1 || (lo1 & ~lo2) != lo1)
+ return fold_build2 (BIT_IOR_EXPR, type,
+ fold_build2 (BIT_AND_EXPR, type,
+ TREE_OPERAND (arg0, 0),
+ build_int_cst_wide (type,
+ lo1 & ~lo2,
+ hi1 & ~hi2)),
+ arg1);
+ }
+
t1 = distribute_bit_expr (code, type, arg0, arg1);
if (t1 != NULL_TREE)
return t1;
@@ -8210,6 +8258,16 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1)
&& operand_equal_p (arg0, TREE_OPERAND (arg1, 0), 0))
return omit_one_operand (type, integer_zero_node, arg0);
+ /* Canonicalize (X | C1) & C2 as (X & C2) | (C1 & C2). */
+ if (TREE_CODE (arg0) == BIT_IOR_EXPR
+ && TREE_CODE (arg1) == INTEGER_CST
+ && TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST)
+ return fold_build2 (BIT_IOR_EXPR, type,
+ fold_build2 (BIT_AND_EXPR, type,
+ TREE_OPERAND (arg0, 0), arg1),
+ fold_build2 (BIT_AND_EXPR, type,
+ TREE_OPERAND (arg0, 1), arg1));
+
t1 = distribute_bit_expr (code, type, arg0, arg1);
if (t1 != NULL_TREE)
return t1;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index aa121b6..0765888 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2007-02-18 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/24427
+ PR rtl-optimization/28173
+ * gcc.dg/tree-ssa/andor-1.c: New test case.
+
2007-02-18 Ira Rosen <irar@il.ibm.com>
* gcc.dg/vect/vect-106-alias.c: New test.
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/andor-1.c b/gcc/testsuite/gcc.dg/tree-ssa/andor-1.c
new file mode 100644
index 0000000..1a53857
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/andor-1.c
@@ -0,0 +1,65 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-original" } */
+
+unsigned int test1(unsigned int a)
+{
+ return (a & 1) | 1;
+}
+
+int test2(int b)
+{
+ return (b & 1) | 1;
+}
+
+unsigned int test3(unsigned int c)
+{
+ return (c | 1) & 1;
+}
+
+int test4(int d)
+{
+ return (d | 1) & 1;
+}
+
+unsigned int test5(unsigned int e)
+{
+ return (e | 4) & 6;
+}
+
+int test6(int f)
+{
+ return (f | 4) & 6;
+}
+
+unsigned int test7(unsigned int g)
+{
+ return (g & -2) | 1;
+}
+
+int test8(int h)
+{
+ return (h & -2) | 1;
+}
+
+unsigned int test9(unsigned int i)
+{
+ return (i & 3) | 1;
+}
+
+int test10(int j)
+{
+ return (j & 3) | 1;
+}
+
+/* { dg-final { scan-tree-dump-times "a \& 1 \\| 1" 0 "original" } } */
+/* { dg-final { scan-tree-dump-times "b \& 1 \\| 1" 0 "original" } } */
+/* { dg-final { scan-tree-dump-times "\\(c \\| 1\\) \& 1" 0 "original" } } */
+/* { dg-final { scan-tree-dump-times "\\(d \\| 1\\) \& 1" 0 "original" } } */
+/* { dg-final { scan-tree-dump-times "e \& 2 \\| 4" 1 "original" } } */
+/* { dg-final { scan-tree-dump-times "f \& 2 \\| 4" 1 "original" } } */
+/* { dg-final { scan-tree-dump-times "g \\| 1" 1 "original" } } */
+/* { dg-final { scan-tree-dump-times "h \\| 1" 1 "original" } } */
+/* { dg-final { scan-tree-dump-times "i \& 2 \\| 1" 1 "original" } } */
+/* { dg-final { scan-tree-dump-times "j \& 2 \\| 1" 1 "original" } } */
+/* { dg-final { cleanup-tree-dump "original" } } */
+
--
1.5.4
From 4883179d53419d6788f7524c6d5d2e04064742f3 Mon Sep 17 00:00:00 2001
From: kkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun, 18 Feb 2007 23:08:15 +0000
Subject: Backport from mainline.
PR rtl-optimization/29599
* reload1.c (eliminate_regs_in_insn): Take the destination
mode into account when computing the offset.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122109 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 114622a..faf2f8f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2007-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ Backport from mainline.
+ PR rtl-optimization/29599
+ * reload1.c (eliminate_regs_in_insn): Take the destination
+ mode into account when computing the offset.
+
2007-02-18 Roger Sayle <roger@eyesopen.com>
Backport from mainline.
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 42f186f..9ef2f6f 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -1,6 +1,7 @@
/* Reload pseudo regs into hard regs for insns that require hard regs.
Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007
+ Free Software Foundation, Inc.
This file is part of GCC.
@@ -3054,6 +3055,7 @@ eliminate_regs_in_insn (rtx insn, int replace)
{
rtx to_rtx = ep->to_rtx;
offset += ep->offset;
+ offset = trunc_int_for_mode (offset, GET_MODE (reg));
if (GET_CODE (XEXP (plus_cst_src, 0)) == SUBREG)
to_rtx = gen_lowpart (GET_MODE (XEXP (plus_cst_src, 0)),
--
1.5.4
From 0c130d9d27fce97e49242e36e7780132a71bbc68 Mon Sep 17 00:00:00 2001
From: mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 19 Feb 2007 22:34:55 +0000
Subject: * decl2.c (import_export_decl): Reverse sense of
DECL_VISIBILITY_SPECIFIED test for target-specific visibility
rules.
Backport of:
2006-07-20 Jason Merrill <jason@redhat.com>
* decl2.c (determine_visibility_from_class): Reverse sense of
DECL_VISIBILITY_SPECIFIED test for target-specific visibility
rules.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122138 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index f936c3d..8cf76ee 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,15 @@
+2007-02-19 Mark Mitchell <mark@codesourcery.com>
+
+ * decl2.c (import_export_decl): Reverse sense of
+ DECL_VISIBILITY_SPECIFIED test for target-specific visibility
+ rules.
+
+ Backport of:
+ 2006-07-20 Jason Merrill <jason@redhat.com>
+ * decl2.c (determine_visibility_from_class): Reverse sense of
+ DECL_VISIBILITY_SPECIFIED test for target-specific visibility
+ rules.
+
2007-02-14 Jakub Jelinek <jakub@redhat.com>
PR c++/30536
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 7afaa02..88c920a 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -1905,8 +1905,8 @@ import_export_decl (tree decl)
comdat_linkage (decl);
}
- /* Give the target a chance to override the visibility associated
- with DECL. */
+ /* Give the target a chance to override the visibility of class
+ data, like virtual tables. */
if (TREE_CODE (decl) == VAR_DECL
&& (DECL_TINFO_P (decl)
|| (DECL_VTABLE_OR_VTT_P (decl)
@@ -1914,9 +1914,16 @@ import_export_decl (tree decl)
they cannot be referred to from other object files;
their name is not standardized by the ABI. */
&& !DECL_CONSTRUCTION_VTABLE_P (decl)))
- && TREE_PUBLIC (decl)
+ /* Visibility only applies to objects with external linkage. */
+ && TREE_PUBLIC (decl)
+ /* Visibility is specified by the definition of the object, not
+ its declaration. */
&& !DECL_REALLY_EXTERN (decl)
- && DECL_VISIBILITY_SPECIFIED (decl)
+ /* Respect any explicit specification of visibility for the
+ class data itself. */
+ && !DECL_VISIBILITY_SPECIFIED (decl)
+ /* If the visibility of the class has been explicitly specified,
+ that visibility applies to class data as well. */
&& (!class_type || !CLASSTYPE_VISIBILITY_SPECIFIED (class_type)))
targetm.cxx.determine_class_data_visibility (decl);
--
1.5.4
From 6feac8ba065392c9c73fe278432e0ff0485f87a0 Mon Sep 17 00:00:00 2001
From: mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 20 Feb 2007 07:33:37 +0000
Subject: * call.c (build_new_method_call): Ensure that explicit calls of
destructors have type "void".
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122154 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 8cf76ee..a56f925 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,10 @@
2007-02-19 Mark Mitchell <mark@codesourcery.com>
+ * call.c (build_new_method_call): Ensure that explicit calls of
+ destructors have type "void".
+
+2007-02-19 Mark Mitchell <mark@codesourcery.com>
+
* decl2.c (import_export_decl): Reverse sense of
DECL_VISIBILITY_SPECIFIED test for target-specific visibility
rules.
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index 1231590..c28ddc3 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -5481,6 +5481,20 @@ build_new_method_call (tree instance, tree fns, tree args,
&& TREE_SIDE_EFFECTS (instance_ptr))
call = build2 (COMPOUND_EXPR, TREE_TYPE (call),
instance_ptr, call);
+ else if (call != error_mark_node
+ && DECL_DESTRUCTOR_P (cand->fn)
+ && !VOID_TYPE_P (TREE_TYPE (call)))
+ /* An explicit call of the form "x->~X()" has type
+ "void". However, on platforms where destructors
+ return "this" (i.e., those where
+ targetm.cxx.cdtor_returns_this is true), such calls
+ will appear to have a return value of pointer type
+ to the low-level call machinery. We do not want to
+ change the low-level machinery, since we want to be
+ able to optimize "delete f()" on such platforms as
+ "operator delete(~X(f()))" (rather than generating
+ "t = f(), ~X(t), operator delete (t)"). */
+ call = build_nop (void_type_node, call);
}
}
}
--
1.5.4
From 97520bfb1238ef4f052c70f7a74829a2117700f8 Mon Sep 17 00:00:00 2001
From: irar <irar@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 20 Feb 2007 13:49:20 +0000
Subject: * tree-ssa-alias.c: Include pointer-set.h.
(may_aliases_intersect): Use the correct type (varray) for
may_aliases sets.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122163 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index faf2f8f..98f6065 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-02-20 Ira Rosen <irar@il.ibm.com>
+
+ * tree-ssa-alias.c: Include pointer-set.h.
+ (may_aliases_intersect): Use the correct type (varray) for
+ may_aliases sets.
+
2007-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
Backport from mainline.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 0765888..50403ff 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-02-20 Ira Rosen <irar@il.ibm.com>
+
+ * gfortran.dg/vect/vect-2.f90: Xfail to vectorize one of the loops
+ because of aliasing.
+
2007-02-18 Roger Sayle <roger@eyesopen.com>
PR middle-end/24427
diff --git a/gcc/testsuite/gfortran.dg/vect/vect-2.f90 b/gcc/testsuite/gfortran.dg/vect/vect-2.f90
index a881d97..c7f0ad0 100644
--- a/gcc/testsuite/gfortran.dg/vect/vect-2.f90
+++ b/gcc/testsuite/gfortran.dg/vect/vect-2.f90
@@ -14,9 +14,7 @@ END
! support unaligned loads) or using peeling to align the store (on targets that
! support unaligned loads).
-! { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } }
-! { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 3 "vect" { xfail vect_no_align } } }
-! { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { target vect_no_align } } }
-! { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } }
-! { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 3 "vect" {target vect_no_align } } }
+! { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail *-*-* } } }
+! { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } }
+! { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" } }
! { dg-final { cleanup-tree-dump "vect" } }
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c
index e96c55f..2dac169 100644
--- a/gcc/tree-ssa-alias.c
+++ b/gcc/tree-ssa-alias.c
@@ -46,6 +46,7 @@ Boston, MA 02110-1301, USA. */
#include "ipa-type-escape.h"
#include "vec.h"
#include "bitmap.h"
+#include "pointer-set.h"
/* Obstack used to hold grouping bitmaps and other temporary bitmaps used by
aliasing */
@@ -2238,19 +2239,21 @@ may_aliases_intersect (tree tag1, tree tag2)
{
struct pointer_set_t *set1 = pointer_set_create ();
unsigned i;
- VEC(tree,gc) *may_aliases1 = may_aliases (tag1);
- VEC(tree,gc) *may_aliases2 = may_aliases (tag2);
- tree sym;
-
+ varray_type may_aliases1 = var_ann (tag1)->may_aliases;
+ varray_type may_aliases2 = var_ann (tag2)->may_aliases;
+
+ if (may_aliases1 == NULL || may_aliases2 == NULL)
+ return false;
+
/* Insert all the symbols from the first may-alias set into the
pointer-set. */
- for (i = 0; VEC_iterate (tree, may_aliases1, i, sym); i++)
- pointer_set_insert (set1, sym);
+ for (i = 0; i < VARRAY_ACTIVE_SIZE (may_aliases1); i++)
+ pointer_set_insert (set1, VARRAY_TREE (may_aliases1, i));
/* Go through the second may-alias set and check if it contains symbols that
are common with the first set. */
- for (i = 0; VEC_iterate (tree, may_aliases2, i, sym); i++)
- if (pointer_set_contains (set1, sym))
+ for (i = 0; i < VARRAY_ACTIVE_SIZE (may_aliases2); i++)
+ if (pointer_set_contains (set1, VARRAY_TREE (may_aliases2, i)))
{
pointer_set_destroy (set1);
return true;
--
1.5.4
From fa1c3eeeca010ee06b6086dd5d5a193effb5cf25 Mon Sep 17 00:00:00 2001
From: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 20 Feb 2007 23:54:16 +0000
Subject: PR ada/30684
Backport from 4.2 branch:
2006-11-17 Eric Botcazou <ebotcazou@adacore.com>
* ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
* decl.c (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB
flag in addition to TREE_READONLY to assert the constantness of
variables for elaboration purposes.
* trans.c (add_decl_expr): Do not dynamically elaborate padded objects
if the initializer takes into account the padding.
Set DECL_READONLY_ONCE_ELAB flag on variables originally TREE_READONLY
but whose elaboration cannot be performed statically.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122181 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 1904e67..1adc0b8 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,18 @@
+2007-02-20 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/30684
+ Backport from 4.2 branch:
+ 2006-11-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
+ * decl.c (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB
+ flag in addition to TREE_READONLY to assert the constantness of
+ variables for elaboration purposes.
+ * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
+ if the initializer takes into account the padding.
+ Set DECL_READONLY_ONCE_ELAB flag on variables originally TREE_READONLY
+ but whose elaboration cannot be performed statically.
+
2007-02-13 Release Manager
* GCC 4.1.2 released.
diff --git a/gcc/ada/ada-tree.h b/gcc/ada/ada-tree.h
index befe25a..e1db14d 100644
--- a/gcc/ada/ada-tree.h
+++ b/gcc/ada/ada-tree.h
@@ -235,6 +235,10 @@ struct lang_type GTY(()) {tree t; };
discriminant. */
#define DECL_STUBBED_P(NODE) DECL_LANG_FLAG_0 (FUNCTION_DECL_CHECK (NODE))
+/* Nonzero in a VAR_DECL if it is guaranteed to be constant after having
+ been elaborated and TREE_READONLY is not set on it. */
+#define DECL_READONLY_ONCE_ELAB(NODE) DECL_LANG_FLAG_0 (VAR_DECL_CHECK (NODE))
+
/* Nonzero if this decl is always used by reference; i.e., an INDIRECT_REF
is needed to access the object. */
#define DECL_BY_REF_P(NODE) DECL_LANG_FLAG_1 (NODE)
diff --git a/gcc/ada/decl.c b/gcc/ada/decl.c
index bbbb471..cb0df9c 100644
--- a/gcc/ada/decl.c
+++ b/gcc/ada/decl.c
@@ -4732,7 +4732,8 @@ elaborate_expression_1 (Node_Id gnat_expr, Entity_Id gnat_entity,
expr_variable = (!CONSTANT_CLASS_P (gnu_expr)
&& !(TREE_CODE (gnu_inner_expr) == VAR_DECL
- && TREE_READONLY (gnu_inner_expr))
+ && (TREE_READONLY (gnu_inner_expr)
+ || DECL_READONLY_ONCE_ELAB (gnu_inner_expr)))
&& !CONTAINS_PLACEHOLDER_P (gnu_expr));
/* If this is a static expression or contains a discriminant, we don't
diff --git a/gcc/ada/trans.c b/gcc/ada/trans.c
index aadfd65..b90031e 100644
--- a/gcc/ada/trans.c
+++ b/gcc/ada/trans.c
@@ -4315,7 +4315,8 @@ add_stmt_with_node (tree gnu_stmt, Node_Id gnat_node)
void
add_decl_expr (tree gnu_decl, Entity_Id gnat_entity)
{
- tree gnu_stmt;
+ tree type = TREE_TYPE (gnu_decl);
+ tree gnu_stmt, gnu_init, gnu_lhs;
/* If this is a variable that Gigi is to ignore, we may have been given
an ERROR_MARK. So test for it. We also might have been given a
@@ -4323,7 +4324,7 @@ add_decl_expr (tree gnu_decl, Entity_Id gnat_entity)
ignore a TYPE_DECL for an UNCONSTRAINED_ARRAY_TYPE. */
if (!DECL_P (gnu_decl)
|| (TREE_CODE (gnu_decl) == TYPE_DECL
- && TREE_CODE (TREE_TYPE (gnu_decl)) == UNCONSTRAINED_ARRAY_TYPE))
+ && TREE_CODE (type) == UNCONSTRAINED_ARRAY_TYPE))
return;
/* If we are global, we don't want to actually output the DECL_EXPR for
@@ -4345,41 +4346,32 @@ add_decl_expr (tree gnu_decl, Entity_Id gnat_entity)
}
}
- /* If this is a DECL_EXPR for a variable with DECL_INITIAL set,
- there are two cases we need to handle here. */
- if (TREE_CODE (gnu_decl) == VAR_DECL && DECL_INITIAL (gnu_decl))
+ /* If this is a variable and an initializer is attached to it, it must be
+ valid for the context. Similar to init_const in create_var_decl_1. */
+ if (TREE_CODE (gnu_decl) == VAR_DECL
+ && (gnu_init = DECL_INITIAL (gnu_decl)) != NULL_TREE
+ && (TYPE_MAIN_VARIANT (type) != TYPE_MAIN_VARIANT (TREE_TYPE (gnu_init))
+ || (TREE_STATIC (gnu_decl)
+ && !initializer_constant_valid_p (gnu_init,
+ TREE_TYPE (gnu_init)))))
{
- tree gnu_init = DECL_INITIAL (gnu_decl);
- tree gnu_lhs = NULL_TREE;
-
- /* If this is a DECL_EXPR for a variable with DECL_INITIAL set
- and decl has a padded type, convert it to the unpadded type so the
- assignment is done properly. */
- if (TREE_CODE (TREE_TYPE (gnu_decl)) == RECORD_TYPE
- && TYPE_IS_PADDING_P (TREE_TYPE (gnu_decl)))
- gnu_lhs
- = convert (TREE_TYPE (TYPE_FIELDS (TREE_TYPE (gnu_decl))), gnu_decl);
-
- /* Otherwise, if this is going into memory and the initializer isn't
- valid for the assembler and loader. Gimplification could do this,
- but would be run too late if -fno-unit-at-a-time. */
- else if (TREE_STATIC (gnu_decl)
- && !initializer_constant_valid_p (gnu_init,
- TREE_TYPE (gnu_decl)))
+ /* If GNU_DECL has a padded type, convert it to the unpadded
+ type so the assignment is done properly. */
+ if (TREE_CODE (type) == RECORD_TYPE && TYPE_IS_PADDING_P (type))
+ gnu_lhs = convert (TREE_TYPE (TYPE_FIELDS (type)), gnu_decl);
+ else
gnu_lhs = gnu_decl;
- if (gnu_lhs)
- {
- tree gnu_assign_stmt
- = build_binary_op (MODIFY_EXPR, NULL_TREE,
- gnu_lhs, DECL_INITIAL (gnu_decl));
+ gnu_stmt = build_binary_op (MODIFY_EXPR, NULL_TREE, gnu_lhs, gnu_init);
- DECL_INITIAL (gnu_decl) = 0;
+ DECL_INITIAL (gnu_decl) = NULL_TREE;
+ if (TREE_READONLY (gnu_decl))
+ {
TREE_READONLY (gnu_decl) = 0;
- annotate_with_locus (gnu_assign_stmt,
- DECL_SOURCE_LOCATION (gnu_decl));
- add_stmt (gnu_assign_stmt);
+ DECL_READONLY_ONCE_ELAB (gnu_decl) = 1;
}
+
+ add_stmt_with_node (gnu_stmt, gnat_entity);
}
}
--
1.5.4
From d3967985069694b42c2aab1d50214b8bbf4770a4 Mon Sep 17 00:00:00 2001
From: irar <irar@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 21 Feb 2007 09:35:44 +0000
Subject: * Makefile.in (tree-ssa-alias.o): Depend on pointer-set.h.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122194 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 98f6065..e757e8e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2007-02-21 Ira Rosen <irar@il.ibm.com>
+
+ * Makefile.in (tree-ssa-alias.o): Depend on pointer-set.h.
+
2007-02-20 Ira Rosen <irar@il.ibm.com>
* tree-ssa-alias.c: Include pointer-set.h.
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 75a8a9d..5cadef2 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -1935,7 +1935,7 @@ tree-ssa-alias.o : tree-ssa-alias.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
function.h $(TIMEVAR_H) convert.h $(TM_H) coretypes.h langhooks.h \
$(TREE_DUMP_H) tree-pass.h $(PARAMS_H) $(BASIC_BLOCK_H) $(DIAGNOSTIC_H) \
hard-reg-set.h $(TREE_GIMPLE_H) vec.h tree-ssa-structalias.h \
- $(IPA_TYPE_ESCAPE_H)
+ $(IPA_TYPE_ESCAPE_H) pointer-set.h
tree-ssa-reassoc.o : tree-ssa-reassoc.c $(TREE_FLOW_H) $(CONFIG_H) \
$(SYSTEM_H) $(TREE_H) $(GGC_H) $(DIAGNOSTIC_H) errors.h $(TIMEVAR_H) \
$(TM_H) coretypes.h $(TREE_DUMP_H) tree-pass.h $(FLAGS_H) tree-iterator.h\
--
1.5.4
From a68dad92bf2894e3deac2dae0980c80e0cf050e8 Mon Sep 17 00:00:00 2001
From: mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 22 Feb 2007 04:43:45 +0000
Subject: * lib/wrapper.exp (${tool}_maybe_build_wrapper): Allow the caller
to set options for compiling testglue.
* lib/g++.exp (g++_init): Compile testglue with -fexceptions.
* lib/obj-c++.exp (obj-c++_init): Likewise.
* testsuite/lib/libstdc++.exp (libstdc++_init): Compile testglue
with -fexceptions.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122219 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 50403ff..304a9ae 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2007-02-21 Mark Mitchell <mark@codesourcery.com>
+
+ * lib/wrapper.exp (${tool}_maybe_build_wrapper): Allow the caller
+ to set options for compiling testglue.
+ * lib/g++.exp (g++_init): Compile testglue with -fexceptions.
+ * lib/obj-c++.exp (obj-c++_init): Likewise.
+
2007-02-20 Ira Rosen <irar@il.ibm.com>
* gfortran.dg/vect/vect-2.f90: Xfail to vectorize one of the loops
diff --git a/gcc/testsuite/lib/g++.exp b/gcc/testsuite/lib/g++.exp
index 69635fb..6d60878 100644
--- a/gcc/testsuite/lib/g++.exp
+++ b/gcc/testsuite/lib/g++.exp
@@ -221,7 +221,7 @@ proc g++_init { args } {
unset gluefile
}
- g++_maybe_build_wrapper "${tmpdir}/g++-testglue.o"
+ g++_maybe_build_wrapper "${tmpdir}/g++-testglue.o" "-fexceptions"
if {![info exists CXXFLAGS]} {
set CXXFLAGS ""
diff --git a/gcc/testsuite/lib/obj-c++.exp b/gcc/testsuite/lib/obj-c++.exp
index d5ddda7..96bd60a 100644
--- a/gcc/testsuite/lib/obj-c++.exp
+++ b/gcc/testsuite/lib/obj-c++.exp
@@ -239,7 +239,7 @@ proc obj-c++_init { args } {
unset gluefile
}
- obj-c++_maybe_build_wrapper "${tmpdir}/obj-c++-testglue.o"
+ obj-c++_maybe_build_wrapper "${tmpdir}/obj-c++-testglue.o" "-fexceptions"
set ALWAYS_OBJCXXFLAGS ""
diff --git a/gcc/testsuite/lib/wrapper.exp b/gcc/testsuite/lib/wrapper.exp
index 48c31e6..b50c447 100644
--- a/gcc/testsuite/lib/wrapper.exp
+++ b/gcc/testsuite/lib/wrapper.exp
@@ -18,18 +18,20 @@
# ${tool}_maybe_build_wrapper -- Build wrapper object if the target needs it.
-proc ${tool}_maybe_build_wrapper { filename } {
+proc ${tool}_maybe_build_wrapper { filename args } {
global gluefile wrap_flags
if { [target_info needs_status_wrapper] != "" \
&& [target_info needs_status_wrapper] != "0" \
&& ![info exists gluefile] } {
set saved_wrap_compile_flags [target_info wrap_compile_flags]
+ set flags [join $args " "]
# The wrapper code may contain code that gcc objects on. This
# became true for dejagnu-1.4.4. The set of warnings and code
# that gcc objects on may change, so just make sure -w is always
# passed to turn off all warnings.
- set_currtarget_info wrap_compile_flags "$saved_wrap_compile_flags -w"
+ set_currtarget_info wrap_compile_flags \
+ "$saved_wrap_compile_flags -w $flags"
set result [build_wrapper $filename]
set_currtarget_info wrap_compile_flags "$saved_wrap_compile_flags"
if { $result != "" } {
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index fcaeadc..26b10d4 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,8 @@
+2007-02-21 Mark Mitchell <mark@codesourcery.com>
+
+ * testsuite/lib/libstdc++.exp (libstdc++_init): Compile testglue
+ with -fexceptions.
+
2007-02-13 Release Manager
* GCC 4.1.2 released.
diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp
index 3368c24..bba33de 100644
--- a/libstdc++-v3/testsuite/lib/libstdc++.exp
+++ b/libstdc++-v3/testsuite/lib/libstdc++.exp
@@ -223,7 +223,7 @@ proc libstdc++_init { testfile } {
v3track PCH_CXXFLAGS 2
}
- libstdc++_maybe_build_wrapper "${objdir}/testglue.o"
+ libstdc++_maybe_build_wrapper "${objdir}/testglue.o" "-fexceptions"
}
# Callback for cleanup routines.
--
1.5.4
From f7d4c7f4fdce5919e122a7d7799fc3b9dcd376cf Mon Sep 17 00:00:00 2001
From: jvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 23 Feb 2007 18:26:23 +0000
Subject: 2007-02-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/30910
* io/write.c (output_float): Add condition of format F only for
special case rounding with zero precision.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122270 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index a8fe3fc..dd4d7ca 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,9 @@
+2007-02-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libgfortran/30910
+ * io/write.c (output_float): Add condition of format F only for
+ special case rounding with zero precision.
+
2007-02-13 Release Manager
* GCC 4.1.2 released.
diff --git a/libgfortran/io/write.c b/libgfortran/io/write.c
index bee367c..b207021 100644
--- a/libgfortran/io/write.c
+++ b/libgfortran/io/write.c
@@ -426,6 +426,15 @@ output_float (st_parameter_dt *dtp, const fnode *f, GFC_REAL_LARGEST value)
if (value < 0)
value = -value;
+ /* Special case when format specifies no digits after the decimal point. */
+ if (d == 0 && ft == FMT_F)
+ {
+ if (value < 0.5)
+ value = 0.0;
+ else if (value < 1.0)
+ value = value + 0.5;
+ }
+
/* Printf always prints at least two exponent digits. */
if (value == 0)
edigits = 2;
--
1.5.4
From fd1ac3d41a0c840d7a301c558a21e298edc76682 Mon Sep 17 00:00:00 2001
From: jvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 23 Feb 2007 18:30:57 +0000
Subject: 2007-02-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/30910
* gfortran.dg/fmt_zero_precision.f90: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122271 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 304a9ae..d196875 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-02-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libgfortran/30910
+ * gfortran.dg/fmt_zero_precision.f90: New test.
+
2007-02-21 Mark Mitchell <mark@codesourcery.com>
* lib/wrapper.exp (${tool}_maybe_build_wrapper): Allow the caller
diff --git a/gcc/testsuite/gfortran.dg/fmt_zero_precision.f90 b/gcc/testsuite/gfortran.dg/fmt_zero_precision.f90
new file mode 100644
index 0000000..6ecd499
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/fmt_zero_precision.f90
@@ -0,0 +1,85 @@
+! { dg-do run }
+! PR28354 Incorrect rounding of .99999 with f3.0 format specifier
+! PR30910 ES format not quite right...
+! Test case derived from PR. Submitted by Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ write(*,50) -0.99999
+ write(*,50) 0.99999
+ write(*,50) -9.0
+ write(*,50) -0.99
+ write(*,50) -0.999
+ write(*,50) -0.999
+ write(*,50) -0.59
+ write(*,50) -0.49
+ write(*,100) 37.99999
+ write(*,100) 10345.0
+ write(*,100) 333.678
+ write(*,100) 333.499
+ 50 format(f3.0,"<")
+ 100 format(f8.0,"<")
+ write(6,'(es6.0)') 1.0e-1
+ write(*,150) -0.99999
+ write(*,150) 0.99999
+ write(*,150) -9.0
+ write(*,150) -0.99
+ write(*,150) -0.999
+ write(*,150) -0.999
+ write(*,150) -0.59
+ write(*,150) -0.49
+ write(*,200) 37.99999
+ write(*,200) 10345.0
+ write(*,200) 333.678
+ write(*,200) 333.499
+ 150 format(es7.0,"<")
+ 200 format(es8.0,"<")
+ write(*,250) -0.99999
+ write(*,250) 0.99999
+ write(*,250) -9.0
+ write(*,250) -0.99
+ write(*,250) -0.999
+ write(*,250) -0.999
+ write(*,250) -0.59
+ write(*,250) -0.49
+ write(*,300) 37.99999
+ write(*,300) 10345.0
+ write(*,300) 333.678
+ write(*,300) 333.499
+ 250 format(1pe7.0,"<")
+ 300 format(1pe6.0,"<")
+ end
+! {dg-output "-1.<"
+! {dg-output " 1.<"
+! {dg-output "-9.<"
+! {dg-output "-1.<"
+! {dg-output "-1.<"
+! {dg-output "-1.<"
+! {dg-output "-1.<"
+! {dg-output " 0.<"
+! {dg-output " 38.<"
+! {dg-output " 10345.<"
+! {dg-output " 334.<"
+! {dg-output " 333.<"
+! {dg-output "1.E-01"
+! {dg-output "-1.E+00<"
+! {dg-output " 1.E+00<"
+! {dg-output "-9.E+00<"
+! {dg-output "-1.E+00<"
+! {dg-output "-1.E+00<"
+! {dg-output "-1.E+00<"
+! {dg-output "-6.E-01<"
+! {dg-output "-5.E-01<"
+! {dg-output " 4.E+01<"
+! {dg-output " 1.E+04<"
+! {dg-output " 3.E+02<"
+! {dg-output " 3.E+02<"
+! {dg-output "-1.E+00<"
+! {dg-output " 1.E+00<"
+! {dg-output "-9.E+00<"
+! {dg-output "-1.E+00<"
+! {dg-output "-1.E+00<"
+! {dg-output "-1.E+00<"
+! {dg-output "-6.E-01<"
+! {dg-output "-5.E-01<"
+! {dg-output "4.E+01<"
+! {dg-output "1.E+04<"
+! {dg-output "3.E+02<"
+! {dg-output "3.E+02<"
--
1.5.4
From b008fee9ce84c12ba1fd7f516d132b40d0a7726b Mon Sep 17 00:00:00 2001
From: jvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun, 25 Feb 2007 03:52:11 +0000
Subject: 2007-02-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/30918
* io/listread.c (namelist_read): Eat comment line.
2007-02-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/30918
* gfortran.dg/namelist_26.f90: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122310 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d196875..6063e9e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-02-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libgfortran/30918
+ * gfortran.dg/namelist_26.f90: New test.
+
2007-02-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/30910
diff --git a/gcc/testsuite/gfortran.dg/namelist_26.f90 b/gcc/testsuite/gfortran.dg/namelist_26.f90
new file mode 100644
index 0000000..2c1b260
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/namelist_26.f90
@@ -0,0 +1,48 @@
+! { dg-do run }
+! PR30918 Failure to skip commented out NAMELIST
+! Before the patch, this read the commented out namelist and iuse would
+! equal 2 when done. Test case from PR.
+program gfcbug58
+ implicit none
+ integer :: iuse = 0, ios
+ integer, parameter :: nmlunit = 10 ! Namelist unit
+ !------------------
+ ! Namelist 'REPORT'
+ !------------------
+ character(len=12) :: type, use
+ integer :: max_proc
+ namelist /REPORT/ type, use, max_proc
+ !------------------
+ ! Set up the test file
+ !------------------
+ open(unit=nmlunit, status="scratch")
+ write(nmlunit, '(a)') "!================"
+ write(nmlunit, '(a)') "! Namelist REPORT"
+ write(nmlunit, '(a)') "!================"
+ write(nmlunit, '(a)') "! &REPORT use = 'ignore' / ! Comment"
+ write(nmlunit, '(a)') "!"
+ write(nmlunit, '(a)') " &REPORT type = 'SYNOP'"
+ write(nmlunit, '(a)') " use = 'active'"
+ write(nmlunit, '(a)') " max_proc = 20"
+ write(nmlunit, '(a)') " /"
+ rewind(nmlunit)
+ !-------------------------------------
+ ! Loop to read namelist multiple times
+ !-------------------------------------
+ do
+ !----------------------------------------
+ ! Preset namelist variables with defaults
+ !----------------------------------------
+ type = ''
+ use = ''
+ max_proc = -1
+ !--------------
+ ! Read namelist
+ !--------------
+ read (nmlunit, nml=REPORT, iostat=ios)
+ if (ios /= 0) exit
+ iuse = iuse + 1
+ end do
+ if (iuse /= 1) call abort()
+
+end program gfcbug58
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index dd4d7ca..4dfe430 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,8 @@
+2007-02-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libgfortran/30918
+ * io/listread.c (namelist_read): Eat comment line.
+
2007-02-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/30910
diff --git a/libgfortran/io/list_read.c b/libgfortran/io/list_read.c
index 4552d2f..729e565 100644
--- a/libgfortran/io/list_read.c
+++ b/libgfortran/io/list_read.c
@@ -2567,6 +2567,10 @@ find_nml_name:
case '&':
break;
+ case '!':
+ eat_line (dtp);
+ goto find_nml_name;
+
case '=':
c = next_char (dtp);
if (c == '?')
--
1.5.4
From 241f96b880266e42adaabe44a0f4684299af50b1 Mon Sep 17 00:00:00 2001
From: sayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun, 25 Feb 2007 21:14:49 +0000
Subject: 2007-02-25 Roger Sayle <roger@eyesopen.com>
Paul Thomas <pault@gcc.gnu.org>
PR fortran/30400
* match.c (match_forall_iterator): Use gfc_match_expr instead
of gfc_match_variable to match the iterator variable. Return
MATCH_NO if not a variable. Remove the reset of the symbol's
flavor in cleanup.
* gfortran.dg/forall_10.f90: New test case.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122322 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 439d002..cefc944 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,12 @@
+2007-02-25 Roger Sayle <roger@eyesopen.com>
+ Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/30400
+ * match.c (match_forall_iterator): Use gfc_match_expr instead
+ of gfc_match_variable to match the iterator variable. Return
+ MATCH_NO if not a variable. Remove the reset of the symbol's
+ flavor in cleanup.
+
2007-02-15 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/30799
diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c
index 53a71ee..06265e4 100644
--- a/gcc/fortran/match.c
+++ b/gcc/fortran/match.c
@@ -1,5 +1,5 @@
/* Matching subroutines in all sizes, shapes and colors.
- Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006
+ Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
Free Software Foundation, Inc.
Contributed by Andy Vaught
@@ -3328,7 +3328,10 @@ gfc_free_forall_iterator (gfc_forall_iterator * iter)
/* Match an iterator as part of a FORALL statement. The format is:
- <var> = <start>:<end>[:<stride>][, <scalar mask>] */
+ <var> = <start>:<end>[:<stride>]
+
+ On MATCH_NO, the caller tests for the possibility that there is a
+ scalar mask expression. */
static match
match_forall_iterator (gfc_forall_iterator ** result)
@@ -3340,11 +3343,12 @@ match_forall_iterator (gfc_forall_iterator ** result)
where = gfc_current_locus;
iter = gfc_getmem (sizeof (gfc_forall_iterator));
- m = gfc_match_variable (&iter->var, 0);
+ m = gfc_match_expr (&iter->var);
if (m != MATCH_YES)
goto cleanup;
- if (gfc_match_char ('=') != MATCH_YES)
+ if (gfc_match_char ('=') != MATCH_YES
+ || iter->var->expr_type != EXPR_VARIABLE)
{
m = MATCH_NO;
goto cleanup;
@@ -3382,13 +3386,6 @@ syntax:
m = MATCH_ERROR;
cleanup:
- /* Make sure that potential internal function references in the
- mask do not get messed up. */
- if (iter->var
- && iter->var->expr_type == EXPR_VARIABLE
- && iter->var->symtree->n.sym->refs == 1)
- iter->var->symtree->n.sym->attr.flavor = FL_UNKNOWN;
-
gfc_current_locus = where;
gfc_free_forall_iterator (iter);
return m;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 6063e9e..8c45bbc 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-02-25 Roger Sayle <roger@eyesopen.com>
+
+ PR fortran/30400
+ * gfortran.dg/forall_10.f90: New test case.
+
2007-02-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/30918
diff --git a/gcc/testsuite/gfortran.dg/forall_10.f90 b/gcc/testsuite/gfortran.dg/forall_10.f90
new file mode 100644
index 0000000..1b16840
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/forall_10.f90
@@ -0,0 +1,25 @@
+! { dg-do run }
+! { dg-options "-O" }
+! Tests the fix for PR30400, in which the use of ANY in the
+! FORALL mask was rejected.
+!
+! Contributed by Dominique d'Humieres <dominiq@lps.ens.fr>
+!
+program pr30400_1
+ real, dimension (5, 5, 5, 5) :: a
+
+ a (:, :, :, :) = 4
+ a (:, 2, :, 4) = 10
+ a (:, 2, :, 1) = 0
+
+ forall (i = 1:5, j = 1:5, k = 1:5, any (a (i, j, k, :) .gt. 6))
+ forall (l = 1:5, any (a (:, :, :, l) .lt. 2))
+ a (i, j, k, l) = i - j + k - l
+ end forall
+ end forall
+ if (sum (a) .ne. 2625.0) call abort ()
+
+ ! Check that the fix has not broken the treatment of the '=='
+ forall (i = 1:5, i == 3) a(i, i, i, i) = -5
+ if (sum (a) .ne. 2616.0) call abort ()
+end
--
1.5.4
From 226199896599ace5d56105f745dbaca10d430c2e Mon Sep 17 00:00:00 2001
From: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 26 Feb 2007 14:14:44 +0000
Subject: Fix formatting nits.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122334 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 1adc0b8..dad57a4 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -39,8 +39,8 @@
2006-06-06 Laurent GUERBY <laurent@guerby.net>
- PR ada/27769
- mlib-utl.adb: Use Program_Name.
+ PR ada/27769
+ * mlib-utl.adb: Use Program_Name.
2006-05-24 Release Manager
@@ -63,20 +63,19 @@
Backport:
2005-12-05 Paolo Bonzini <bonzini@gnu.org>
- * Makefile.in (gnatlib): Fix regex, using \. instead of . when a
+ * Makefile.in (gnatlib): Fix regex, using \. instead of . when a
period is meant.
-
+
2006-02-17 Eric Botcazou <ebotcazou@adacore.com>
Backport from mainline:
2006-02-13 Geert Bosch <bosch@adacore.com>
- Gary Dismukes <dismukes@adacore.com>
+ Gary Dismukes <dismukes@adacore.com>
* a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
0, since the lower bound of the actual string may be greater than one.
PR ada/20753
-
(Put): Fix condition to raise Layout_Error when invalid
layout is requested.
@@ -138,8 +137,8 @@
2005-11-18 Laurent GUERBY <laurent@guerby.net>
- PR ada/24857
- * Makefile.in: Use s-auxdec-empty for RTEMS.
+ PR ada/24857
+ * Makefile.in: Use s-auxdec-empty for RTEMS.
2005-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
@@ -153,15 +152,15 @@
PR ada/24857
* s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
-
+
2005-11-16 Richard Guenther <rguenther@suse.de>
* Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
2005-11-16 Joel Sherrill <joel.sherrill@oarcorp.com>
- PR ada/24855
- * raise-gcc.c: Add missing stdarg.h include.
+ PR ada/24855
+ * raise-gcc.c: Add missing stdarg.h include.
2005-11-16 Richard Guenther <rguenther@suse.de>
@@ -229,7 +228,6 @@
Ed Schonberg <schonberg@adacore.com>
PR ada/18434
-
* types.ads: Include All_Checks in Suppress_Array
* checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
@@ -352,7 +350,7 @@
(Save_Occurrence_And_Private): Move GCC EH related code to
a-exexpr-gcc.adb
(Raise_Current_Excep): Add new variable Id with pragma
- volatile, to ensure that the variable lives on stack.
+ volatile, to ensure that the variable lives on stack.
* a-exexpr-gcc.adb, raise-gcc.c: New file.
@@ -1157,7 +1155,6 @@
Javier Miranda <miranda@adacore.com>
PR ada/15604
-
* sem_type.adb (Covers): In an inlined body, a composite type matches
a private type whose full view is a composite type.
(Interface_Present_In_Ancestor): Protect the frontend against
@@ -2464,9 +2461,9 @@
subprogram Complete_Subprograms_Derivation already does the
job associated with the second call.
- * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
- conversion to the full view when generating an operation for a
- discriminant whose type may currently be private.
+ * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
+ conversion to the full view when generating an operation for a
+ discriminant whose type may currently be private.
2005-09-01 Ed Schonberg <schonberg@adacore.com>
Javier Miranda <miranda@adacore.com>
@@ -2851,7 +2848,6 @@
2005-07-07 Olivier Hainque <hainque@adacore.com>
PR ada/22301
-
* raise.c: Only include unwind.h if IN_RTS, and provide dummy type
definitions for the Unwind wrappers in the compiler case.
@@ -2963,10 +2959,10 @@
N_Object_Declaration, only perform the checks if the Object_Definition
is not an Access_Definition.
- * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
- where the parent of an the access definition is an N_Object_Declaration
- when determining the Associated_Node_For_Itype and scope of an
- anonymous access-to-subprogram type.
+ * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
+ where the parent of an the access definition is an N_Object_Declaration
+ when determining the Associated_Node_For_Itype and scope of an
+ anonymous access-to-subprogram type.
* exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
Corresponding_Spec on the body created for a null procedure. Add ???
@@ -3149,7 +3145,6 @@
2005-07-04 Robert Dewar <dewar@adacore.com>
PR ada/22039
-
* s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
2005-07-04 Matthew Gingell <gingell@adacore.com>
@@ -3201,19 +3196,19 @@
2005-07-04 Sergey Rybin <rybin@adacore.com>
- * gnat_ugn.texi: Add description of --eol gnatpp option
+ * gnat_ugn.texi: Add description of --eol gnatpp option
2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
Thomas Quinot <quinot@adacore.com>
- * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
+ * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
if the user wants all calls of a subprogram to be flagged,
independently of whether they are made from within the same unit or
another unit.
- Mention restriction for pragma Linker_Alias on some platforms.
- Document pragma Linker_Constructor and Linker_Destructor.
- Rewrite documentation of Weak_External, Linker_Section and
- Linker_Alias pragmas.
+ Mention restriction for pragma Linker_Alias on some platforms.
+ Document pragma Linker_Constructor and Linker_Destructor.
+ Rewrite documentation of Weak_External, Linker_Section and
+ Linker_Alias pragmas.
2005-07-04 Arnaud Charlet <charlet@adacore.com>
@@ -4180,8 +4175,8 @@
s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
Rewrite to correspond to new wide character names in AI-395
- * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
- default procedures.
+ * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
+ default procedures.
2005-06-14 Ed Schonberg <schonberg@adacore.com>
Robert Dewar <dewar@adacore.com>
@@ -4270,7 +4265,6 @@
2005-06-14 Thomas Quinot <quinot@adacore.com>
PR ada/6717
-
* g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
broadcast address.
(Create_Selector): Bind listening socket used to create the signalling
@@ -4342,15 +4336,15 @@
For objects and parameters of a generic private type, retain the '*'
indicator to distinguish such an entity from its type.
- * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
- to store information about instantiated entities.
+ * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
+ to store information about instantiated entities.
- * ali.adb (Scan_ALI): Add support for parsing the reference to the
- generic parent
+ * ali.adb (Scan_ALI): Add support for parsing the reference to the
+ generic parent
- * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
- (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
- information.
+ * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
+ (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
+ information.
2005-06-10 Doug Rupp <rupp@adacore.com>
Arnaud Charlet <charlet@adacore.com>
@@ -4413,7 +4407,6 @@
2005-06-14 Robert Dewar <dewar@adacore.com>
PR ada/15613
-
* par-ch2.adb (Scan_Pragma_Argument): New procedure
(P_Pragma): Implement RM 2.8(4) check for no pos args after named args
@@ -4459,11 +4452,11 @@
characters are now considered graphic characters and hence yield false
in this call.
- * nmake.adt: Modify header so that xnmake does not generate output
- files with multiple blank lines.
+ * nmake.adt: Modify header so that xnmake does not generate output
+ files with multiple blank lines.
- * treeprs.adt: Remove a blank line so that output from xtreeprs does
- not have an extra blank line
+ * treeprs.adt: Remove a blank line so that output from xtreeprs does
+ not have an extra blank line
2005-06-14 Gary Dismukes <dismukes@adacore.com>
@@ -4495,7 +4488,6 @@
Ed Schonberg <schonberg@adacore.com>
PR ada/10671
-
* sem_prag.adb: Implement pragma Persistent_BSS
Remove obsolete pragma Persistent_Data, Persistent_Object
Set Ada_Version_Explicit, for implementation of AI-362
@@ -4560,8 +4552,8 @@
* nmake.adt: Modify header so that xnmake does not generate output
files with multiple blank lines.
- * treeprs.adt: Remove a blank line so that output from xtreeprs does
- not have an extra blank line
+ * treeprs.adt: Remove a blank line so that output from xtreeprs does
+ not have an extra blank line
2005-06-14 Sergey Rybin <rybin@adacore.com>
@@ -4585,7 +4577,7 @@
Add UNNECESSARY_BLANK_LINES for -gnatyu
Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
- * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
+ * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
2005-06-14 Vincent Celier <celier@adacore.com>
@@ -4686,7 +4678,7 @@
object directories of project files before directories in ADA_*_PATH
environment variables.
- * g-trasym.ads: Document that IRIX is supported
+ * g-trasym.ads: Document that IRIX is supported
2005-06-10 Arnaud Charlet <charlet@adacore.com>
@@ -4781,9 +4773,9 @@
2005-04-16 Laurent GUERBY <laurent@guerby.net>
- PR ada/18847
- * a-nudira.adb (Value): Check for valid string.
- * a-nuflra.adb (Value): Likewise.
+ PR ada/18847
+ * a-nudira.adb (Value): Check for valid string.
+ * a-nuflra.adb (Value): Likewise.
2005-04-11 Richard Sandiford <rsandifo@redhat.com>
@@ -4956,7 +4948,6 @@
Generic_Dispatching_Constructor.
PR ada/20300
-
* sem_ch8.adb (Find_Direct_Name): Go to root type for check of
character type cases.
(Analyze_Subprogram_Renaming): Add special handling for
@@ -5256,13 +5247,12 @@
* Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
- * 5xcrtl.ads: Renamed to...
- * s-crtl-vms64.ads: ...this new file
+ * 5xcrtl.ads: Renamed to...
+ * s-crtl-vms64.ads: ...this new file
2005-03-17 Robert Dewar <dewar@adacore.com>
PR ada/19519
-
* namet.adb (Copy_One_Character): Set proper wide character encoding
for upper half character if we have upper half encoding.
@@ -5638,7 +5628,6 @@
2005-03-15 Robert Dewar <dewar@adacore.com>
PR ada/13470
-
* a-stunau.ads, a-stunau.adb:
Change interface to allow efficient (and correct) implementation
The previous changes to allow extra space in unbounded strings had
@@ -5801,7 +5790,6 @@
PR ada/19408
PR ada/19140
PR ada/20255
-
* decl.c (gnat_to_gnu_field): Reject aliased components with a
representation clause that prescribes a size not equal to the rounded
size of their types.
@@ -5960,7 +5948,6 @@
PR ada/20226
PR ada/20344
-
* init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
when IN_RTS. This is to work around a bootstrap path problem.
@@ -6671,8 +6658,7 @@
2005-02-09 Eric Botcazou <ebotcazou@adacore.com>
Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
- Fix for c330001 - PR ada/19386
-
+ PR ada/19386
* decl.c:
(gnat_to_gnu_field): Do not necessarily invoke make_packable_type
on the field if Pragma Component_Alignment (Storage_Unit).
@@ -6772,7 +6758,6 @@
2005-02-09 Arnaud Charlet <charlet@adacore.com>
PR ada/16592
-
* Makefile.in: Link all gnat tools with -static-libgcc, since
-shared-libgcc is now used by default on some systems (e.g. linux with
recent binutils).
@@ -8562,7 +8547,6 @@
2004-10-04 Bernard Banner <banner@gnat.com>
PR ada/13897
-
* Makefile.in: Add section for powerpc linux
Add variant i-vxwork-x86.ads
@@ -8838,7 +8822,6 @@
2004-09-23 Robert Dewar <dewar@gnat.com>
PR ada/17540
-
* sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
instead do this at freeze time (we won't do it if there is an address
clause).
@@ -8883,7 +8866,6 @@
2004-09-20 Robert Dewar <dewar@gnat.com>
PR ada/17540
-
* freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
if an address clause is present, since that means that the Import
should be ignored.
@@ -9562,7 +9544,6 @@
2004-08-09 Ed Schonberg <schonberg@gnat.com>
PR ada/15408
-
* sem_ch7.adb (Install_Private_Declarations): In the body of the
package or of a child, private entities are both immediately_visible
and not hidden.
@@ -11100,7 +11081,6 @@
2004-06-11 Hristian Kirtchev <kirtchev@gnat.com>
PR ada/15587
-
* einfo.ads: Minor comment updates for Has_Completion and
E_Constant list of flags.
@@ -11183,7 +11163,6 @@
2004-06-11 Ed Schonberg <schonberg@gnat.com>
PR ada/15403
-
* sem_ch12.adb (Save_References): If operator node has been folded to
enumeration literal, associated_node must be discarded.
@@ -11195,7 +11174,6 @@
2004-06-08 Arnaud Charlet <charlet@act-europe.fr>
PR ada/15568
-
* Makefile.in: Remove target specific SO_OPT on IRIX
2004-06-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
@@ -12410,7 +12388,6 @@
2004-05-03 Olivier Hainque <hainque@act-europe.fr>
PR ada/15152
-
* exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
alone. Replacing object references by literals is inappropriate in a
so low level context.
@@ -14741,7 +14718,8 @@
2004-02-10 Arnaud Charlet <charlet@act-europe.fr>,
Nathanael Nerode <neroden@gcc.gnu.org>
- PR ada/6637, PR ada/5911
+ PR ada/6637
+ PR ada/5911
Merge with libada-branch:
* config-lang.in: Build libada only when ada is built.
@@ -15873,7 +15851,6 @@
Fixes ACATS regressions.
PR ada/13353
-
* sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
be inlined.
@@ -16110,7 +16087,6 @@
2003-12-03 Thomas Quinot <quinot@act-europe.fr>
PR ada/11724
-
* adaint.h, adaint.c, g-os_lib.ads:
Do not assume that the offset argument to lseek(2) is a 32 bit integer,
on some platforms (including FreeBSD), it is a 64 bit value.
@@ -17134,7 +17110,6 @@
2003-11-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
Part of PR ada/12806
-
* ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
tree, not integer.
@@ -17448,7 +17423,7 @@
* Makefile.generic: Add missing substitution on object_deps handling.
- PR ada/5909:
+ PR ada/5909
* Make-lang.in (check-ada): Enable ACATS test suite.
2003-10-27 Robert Dewar <dewar@gnat.com>
@@ -17517,13 +17492,13 @@
2003-10-24 Pascal Obry <obry@gnat.com>
+ PR ada/12014
* adadecode.c (ostrcpy): New function.
(__gnat_decode): Use ostrcpy of strcpy.
(has_prefix): Set first parameter a const.
(has_suffix): Set first parameter a const.
Update copyright notice. Fix source name in header.
Removes a trailing space.
- PR ada/12014.
2003-10-24 Jose Ruiz <ruiz@act-europe.fr>
@@ -17598,13 +17573,13 @@
2003-10-23 Thomas Quinot <quinot@act-europe.fr>
- PR ada/11978:
+ PR ada/11978
* exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
External_Tag attribute definition clauses.
2003-10-23 Ed Schonberg <schonberg@gnat.com>
- PR ada/7613:
+ PR ada/7613
* exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
child unit, generate a fully qualified name to avoid spurious errors
when the context contains renamings of different child units with
@@ -17667,7 +17642,8 @@
2003-10-22 Arnaud Charlet <charlet@act-europe.fr>
- * Makefile.in: Disable build of gnatpsta. PR ada/10110.
+ PR ada/10110
+ * Makefile.in: Disable build of gnatpsta.
* cstreams.c (__gnat_full_name): Minor improvements and clean up
of previous change.
@@ -18202,7 +18178,7 @@
2003-06-04 Olivier Hainque <hainque@act-europe.fr>
- PR ada/9953:
+ PR ada/9953
* 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
and turn ZCX_By_Default back to False since the underlying support
is not quite there yet.
@@ -18655,7 +18631,7 @@
2003-02-18 Ben Elliston <bje@redhat.com>
- Part of fix for PR ada/9406
+ Part of PR ada/9406
* gnat_ug.texi (Binder output file): Grammar fix.
2003-02-18 Ben Elliston <bje@redhat.com>
@@ -18764,9 +18740,10 @@
2002-12-14 Geert Bosch <bosch@gnat.com>
+ PR ada/5690
* sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
case of a body created for a Renaming_As_Body, on which
- conformance checks are not performed. Fixes PR ada/5690.
+ conformance checks are not performed.
2002-11-30 Zack Weinberg <zack@codesourcery.com>
@@ -18780,7 +18757,9 @@
solution to buffer overflow bug on GNU/Linux.
2002-11-14 Nathanael Nerode <neroden@gcc.gnu.org>
- Closes PR ada/5856 and PR ada/6919 !
+
+ PR ada/5856
+ PR ada/6919
* bindgen.adb: Remove all references to Public_Version.
* comperr.adb: Remove all references to Public_Version and
GNATPRO_Version; correct bug reporting instructions.
@@ -18789,6 +18768,7 @@
GNATPRO version.
2002-11-13 Nathanael Nerode <neroden@gcc.gnu.org>
+
PR ada/6919
* adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
GNU/Linux.
@@ -18797,21 +18777,25 @@
* config-lang.in: Remove diff_excludes.
2002-11-05 Graham Stott <graham.stott@btinternet.com>
+
PR ada/8358
* trans.c (gnu_pending_elaboration_lists): New GC root.
(build_unit_elab): Use..
2002-10-30 Geert Bosch <bosch@gnat.com>
+
PR ada/6558
* misc.c : Include optabs.h
* Make-lang.in (misc.o): Add dependency on optabs.h
2002-10-29 Geert Bosch <bosch@gnat.com>
+
PR ada/6558
* Make-lang.in (gnatbind): Depend on CONFIG_H
2002-10-29 Geert bosch <bosch@gnat.com>
+
PR ada/6558
* misc.c: Unrevert misc.c (1.13)
@@ -18821,6 +18805,7 @@
maintainership comments.
2002-09-25 Nathanael Nerode <neroden@gcc.gnu.org>
+
PR ada/5904
* 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
--
1.5.4
From b70352b88a605fabdeef7c9f6aa60aba6b93f07f Mon Sep 17 00:00:00 2001
From: tobi <tobi@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 27 Feb 2007 19:20:21 +0000
Subject: 2006-12-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
PR fortran/25392
* trans-types.c (gfc_sym_type): Don't return early for functions.
Remove special handling for -ff2c.
(gfc_get_function_type): Add special handling for -ff2c.
* trans-decl.c (gfc_create_function_decl): Fix comment formatting.
(gfc_get_fake_result_decl): Make sure we get the right type for
functions.
(gfc_generate_function_code): Convert type of result variable to
type of function.
* gfortran.dg/f2c_8.f90: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122382 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index cefc944..f330809 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,16 @@
+2006-02-27 Tobias Schl<81><FC>ter <tobias.schlueter@physik.uni-muenchen.de>
+
+ PR fortran/25392
+ * trans-stmt.c (gfc_trans_return): Fix comment formatting.
+ * trans-types.c (gfc_sym_type): Don't return early for functions.
+ Remove special handling for -ff2c.
+ (gfc_get_function_type): Add special handling for -ff2c.
+ * trans-decl.c (gfc_create_function_decl): Fix comment formatting.
+ (gfc_get_fake_result_decl): Make sure we get the right type for
+ functions.
+ (gfc_generate_function_code): Convert type of result variable to
+ type of function.
+
2007-02-25 Roger Sayle <roger@eyesopen.com>
Paul Thomas <pault@gcc.gnu.org>
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 78dc24f..32a9b42 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -1670,7 +1670,8 @@ gfc_create_function_decl (gfc_namespace * ns)
create_function_arglist (ns->proc_name);
}
-/* Return the decl used to hold the function return value. */
+/* Return the decl used to hold the function return value. If
+ parent_flag is set, the context is the parent_scope. */
tree
gfc_get_fake_result_decl (gfc_symbol * sym)
@@ -1735,9 +1736,12 @@ gfc_get_fake_result_decl (gfc_symbol * sym)
sprintf (name, "__result_%.20s",
IDENTIFIER_POINTER (DECL_NAME (current_function_decl)));
- decl = build_decl (VAR_DECL, get_identifier (name),
- TREE_TYPE (TREE_TYPE (current_function_decl)));
-
+ if (!sym->attr.mixed_entry_master && sym->attr.function)
+ decl = build_decl (VAR_DECL, get_identifier (name),
+ gfc_sym_type (sym));
+ else
+ decl = build_decl (VAR_DECL, get_identifier (name),
+ TREE_TYPE (TREE_TYPE (current_function_decl)));
DECL_ARTIFICIAL (decl) = 1;
DECL_EXTERNAL (decl) = 0;
TREE_PUBLIC (decl) = 0;
@@ -2858,9 +2862,12 @@ gfc_generate_function_code (gfc_namespace * ns)
warning (0, "Function return value not set");
else
{
- /* Set the return value to the dummy result variable. */
- tmp = build2 (MODIFY_EXPR, TREE_TYPE (result),
- DECL_RESULT (fndecl), result);
+ /* Set the return value to the dummy result variable. The
+ types may be different for scalar default REAL functions
+ with -ff2c, therefore we have to convert. */
+ tmp = convert (TREE_TYPE (DECL_RESULT (fndecl)), result);
+ tmp = build2 (MODIFY_EXPR, TREE_TYPE (tmp),
+ DECL_RESULT (fndecl), tmp);
tmp = build1_v (RETURN_EXPR, tmp);
gfc_add_expr_to_block (&block, tmp);
}
diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c
index 7141ec5..d633ef8 100644
--- a/gcc/fortran/trans-stmt.c
+++ b/gcc/fortran/trans-stmt.c
@@ -437,7 +437,7 @@ gfc_trans_return (gfc_code * code ATTRIBUTE_UNUSED)
tree tmp;
tree result;
- /* if code->expr is not NULL, this return statement must appear
+ /* If code->expr is not NULL, this return statement must appear
in a subroutine and current_fake_result_decl has already
been generated. */
diff --git a/gcc/fortran/trans-types.c b/gcc/fortran/trans-types.c
index 1ef981b..cfff7e0 100644
--- a/gcc/fortran/trans-types.c
+++ b/gcc/fortran/trans-types.c
@@ -1289,27 +1289,13 @@ gfc_sym_type (gfc_symbol * sym)
if (sym->attr.flavor == FL_PROCEDURE && !sym->attr.function)
return void_type_node;
- if (sym->backend_decl)
- {
- if (sym->attr.function)
- return TREE_TYPE (TREE_TYPE (sym->backend_decl));
- else
- return TREE_TYPE (sym->backend_decl);
- }
+ /* In the case of a function the fake result variable may have a
+ type different from the function type, so don't return early in
+ that case. */
+ if (sym->backend_decl && !sym->attr.function)
+ return TREE_TYPE (sym->backend_decl);
type = gfc_typenode_for_spec (&sym->ts);
- if (gfc_option.flag_f2c
- && sym->attr.function
- && sym->ts.type == BT_REAL
- && sym->ts.kind == gfc_default_real_kind
- && !sym->attr.always_explicit)
- {
- /* Special case: f2c calling conventions require that (scalar)
- default REAL functions return the C type double instead. */
- sym->ts.kind = gfc_default_double_kind;
- type = gfc_typenode_for_spec (&sym->ts);
- sym->ts.kind = gfc_default_real_kind;
- }
if (sym->attr.dummy && !sym->attr.function)
byref = 1;
@@ -1758,6 +1744,20 @@ gfc_get_function_type (gfc_symbol * sym)
type = void_type_node;
else if (sym->attr.mixed_entry_master)
type = gfc_get_mixed_entry_union (sym->ns);
+ else if (gfc_option.flag_f2c
+ && sym->ts.type == BT_REAL
+ && sym->ts.kind == gfc_default_real_kind
+ && !sym->attr.always_explicit)
+ {
+ /* Special case: f2c calling conventions require that (scalar)
+ default REAL functions return the C type double instead. f2c
+ compatibility is only an issue with functions that don't
+ require an explicit interface, as only these could be
+ implemented in Fortran 77. */
+ sym->ts.kind = gfc_default_double_kind;
+ type = gfc_typenode_for_spec (&sym->ts);
+ sym->ts.kind = gfc_default_real_kind;
+ }
else
type = gfc_sym_type (sym);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 8c45bbc..5102e49 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2006-02-27 Tobias Schl<FC>ter <tobias.schlueter@physik.uni-muenchen.de>
+
+ PR fortran/25392
+ * gfortran.dg/f2c_8.f90: New test.
+
2007-02-25 Roger Sayle <roger@eyesopen.com>
PR fortran/30400
diff --git a/gcc/testsuite/gfortran.dg/f2c_8.f90 b/gcc/testsuite/gfortran.dg/f2c_8.f90
new file mode 100644
index 0000000..03baa36
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/f2c_8.f90
@@ -0,0 +1,16 @@
+! { dg-do compile }
+! { dg-options "-ff2c" }
+! PR 25392
+! Verify that the type of the result variable matches the declared
+! type of the function. The actual type of the function may be
+! different for f2c calling conventions.
+real function goo () result (foo)
+ real x
+ foo = sign(foo, x)
+end
+
+real function foo ()
+ real x
+ foo = sign(foo, x)
+end
+
--
1.5.4
From c7ee7fa69c61d324157ea7c68c20cc8c68001746 Mon Sep 17 00:00:00 2001
From: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 27 Feb 2007 20:21:17 +0000
Subject: PR rtl-optimization/30931
* loop.c (combine_givs_p): Return false if either GIV is not
always executed.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122383 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e757e8e..2c2cf9f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-02-27 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR rtl-optimization/30931
+ * loop.c (combine_givs_p): Return false if either GIV is not
+ always executed.
+
2007-02-21 Ira Rosen <irar@il.ibm.com>
* Makefile.in (tree-ssa-alias.o): Depend on pointer-set.h.
diff --git a/gcc/loop.c b/gcc/loop.c
index e37a806..8974972 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -8700,6 +8700,10 @@ combine_givs_p (struct induction *g1, struct induction *g2)
{
rtx comb, ret;
+ /* We cannot combine givs that are not always in sync. */
+ if (!g1->always_executed || !g2->always_executed)
+ return NULL_RTX;
+
/* With the introduction of ext dependent givs, we must care for modes.
G2 must not use a wider mode than G1. */
if (GET_MODE_SIZE (g1->mode) < GET_MODE_SIZE (g2->mode))
@@ -8708,6 +8712,7 @@ combine_givs_p (struct induction *g1, struct induction *g2)
ret = comb = express_from (g1, g2);
if (comb == NULL_RTX)
return NULL_RTX;
+
if (g1->mode != g2->mode)
ret = gen_lowpart (g2->mode, comb);
@@ -8718,9 +8723,7 @@ combine_givs_p (struct induction *g1, struct induction *g2)
combination to be the other way round. */
if (comb == g1->dest_reg
&& (g1->giv_type == DEST_REG || g2->giv_type == DEST_ADDR))
- {
- return ret;
- }
+ return ret;
/* If G2 can be expressed as a function of G1 and that function is valid
as an address and no more expensive than using a register for G2,
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5102e49..c7b69e6 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,4 +1,8 @@
-2006-02-27 Tobias Schl<FC>ter <tobias.schlueter@physik.uni-muenchen.de>
+2007-02-27 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.c-torture/execute/20070227-1.c: New test.
+
+2007-02-27 Tobias Schl<FC>ter <tobias.schlueter@physik.uni-muenchen.de>
PR fortran/25392
* gfortran.dg/f2c_8.f90: New test.
diff --git a/gcc/testsuite/gcc.c-torture/execute/20070227-1.c b/gcc/testsuite/gcc.c-torture/execute/20070227-1.c
new file mode 100644
index 0000000..1432b87
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20070227-1.c
@@ -0,0 +1,31 @@
+/* PR rtl-optimization/30931 */
+/* Testcase by Peter Bergner <bergner@gcc.gnu.org> */
+
+struct s
+{
+ int first;
+ int done;
+};
+
+void bug (struct s *p)
+{
+ int i;
+ for (i=0; i < 2; i++)
+ {
+ while (p[i].first && p[i].done)
+ p[i].first = 0;
+ }
+}
+
+int main (void)
+{
+ struct s array[2];
+ array[0].first = 1;
+ array[0].done = 1;
+ array[1].first = 0;
+ array[1].done = 0;
+
+ bug (array);
+
+ return 0;
+}
--
1.5.4
From 94b551806430622da9ad328e283762bb2c72428e Mon Sep 17 00:00:00 2001
From: danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 28 Feb 2007 00:24:53 +0000
Subject: * pa/predicates.md (move_src_operand): Allow zero for mode.
* pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
move pattern.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122395 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2c2cf9f..225b593 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa/predicates.md (move_src_operand): Allow zero for mode.
+ * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
+ move pattern.
+
2007-02-27 Eric Botcazou <ebotcazou@libertysurf.fr>
PR rtl-optimization/30931
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index 8f3e05e..fbe82d6 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -4141,7 +4141,7 @@
[(set (match_operand:DF 0 "move_dest_operand"
"=!*r,*r,*r,*r,*r,Q,f,f,T")
(match_operand:DF 1 "move_src_operand"
- "!*r,J,N,K,RQ,*rM,fM,RT,f"))]
+ "!*r,J,N,K,RQ,*rG,fG,RT,f"))]
"(register_operand (operands[0], DFmode)
|| reg_or_0_operand (operands[1], DFmode))
&& !TARGET_SOFT_FLOAT && TARGET_64BIT"
diff --git a/gcc/config/pa/predicates.md b/gcc/config/pa/predicates.md
index b383569..219c16c 100644
--- a/gcc/config/pa/predicates.md
+++ b/gcc/config/pa/predicates.md
@@ -206,11 +206,14 @@
;; instruction.
(define_predicate "move_src_operand"
- (match_code "subreg,reg,const_int,mem")
+ (match_code "subreg,reg,const_int,const_double,mem")
{
if (register_operand (op, mode))
return 1;
+ if (op == CONST0_RTX (mode))
+ return 1;
+
if (GET_CODE (op) == CONST_INT)
return cint_ok_for_move (INTVAL (op));
--
1.5.4
From ef85c764d20791f313d64fa715c3be9239992363 Mon Sep 17 00:00:00 2001
From: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 1 Mar 2007 09:08:03 +0000
Subject: Backport comment.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122426 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ada/misc.c b/gcc/ada/misc.c
index 802c739..de99222 100644
--- a/gcc/ada/misc.c
+++ b/gcc/ada/misc.c
@@ -370,6 +370,9 @@ gnat_post_options (const char **pfilename ATTRIBUTE_UNUSED)
if (flag_inline_functions)
flag_inline_trees = 2;
+ /* The structural alias analysis machinery essentially assumes that
+ everything is addressable (modulo bit-fields) by disregarding
+ the TYPE_NONALIASED_COMPONENT and DECL_NONADDRESSABLE_P macros. */
flag_tree_salias = 0;
/* Do not enable Tree-SRA unless specifically requested as it
--
1.5.4
From e865f8c74858a9701ebc5a8c0e7c59144bb6c88b Mon Sep 17 00:00:00 2001
From: tobi <tobi@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 1 Mar 2007 16:40:34 +0000
Subject: fortran/
Backport from trunk
PR fortran/29441
* intrinsic.c (gfc_intrinsic_func_interface): Always check if
intrinsic is allowed in initialization expression.
testsuite/
Backport from trunk
PR fortran/29441
* gfortran.dg/initialization_4.f90: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122433 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index f330809..6fd3b45 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,10 @@
+2007-03-01 Tobias Schlueter <tobi@gcc.gnu.org>
+
+ Backport from trunk
+ PR fortran/29441
+ * intrinsic.c (gfc_intrinsic_func_interface): Always check if
+ intrinsic is allowed in initialization expression.
+
2006-02-27 Tobias Schl<81><FC>ter <tobias.schlueter@physik.uni-muenchen.de>
PR fortran/25392
diff --git a/gcc/fortran/intrinsic.c b/gcc/fortran/intrinsic.c
index 63ee49c..92e245b 100644
--- a/gcc/fortran/intrinsic.c
+++ b/gcc/fortran/intrinsic.c
@@ -3269,8 +3269,7 @@ got_specific:
/* TODO: We should probably only allow elemental functions here. */
flag |= (expr->ts.type != BT_INTEGER && expr->ts.type != BT_CHARACTER);
- if (pedantic && gfc_init_expr
- && flag && gfc_init_expr_extensions (specific))
+ if (gfc_init_expr && flag && gfc_init_expr_extensions (specific))
{
if (gfc_notify_std (GFC_STD_GNU, "Extension: Evaluation of "
"nonstandard initialization expression at %L", &expr->where)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c7b69e6..efae847 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2007-03-01 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
+
+ Backport from trunk
+ PR fortran/29441
+ * gfortran.dg/initialization_4.f90: New test.
+
2007-02-27 Eric Botcazou <ebotcazou@libertysurf.fr>
* gcc.c-torture/execute/20070227-1.c: New test.
diff --git a/gcc/testsuite/gfortran.dg/initialization_4.f90 b/gcc/testsuite/gfortran.dg/initialization_4.f90
new file mode 100644
index 0000000..b0f2431
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/initialization_4.f90
@@ -0,0 +1,6 @@
+! PR 29441 : No error was given for disallowed function in
+! initialization expression, even if -std=f95 was used
+! { dg-do compile }
+! { dg-options "-std=f95" }
+real, parameter :: pi = 4.0*Atan(1.0) ! { dg-error "Evaluation of nonstandard initialization expression" }
+end
--
1.5.4
From c81141a65e8387c12fa55be4e995ea05ae2ec0fb Mon Sep 17 00:00:00 2001
From: simartin <simartin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 5 Mar 2007 22:55:58 +0000
Subject: 2007-03-05 Simon Martin <simartin@users.sourceforge.net>
PR c++/30895
* tree.c (cp_tree_equal): Properly handle COMPLEX_CST trees.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122578 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index a56f925..77b534f 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-05 Simon Martin <simartin@users.sourceforge.net>
+
+ PR c++/30895
+ * tree.c (cp_tree_equal): Properly handle COMPLEX_CST trees.
+
2007-02-19 Mark Mitchell <mark@codesourcery.com>
* call.c (build_new_method_call): Ensure that explicit calls of
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index 76315a7..312d534 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -1442,6 +1442,10 @@ cp_tree_equal (tree t1, tree t2)
&& !memcmp (TREE_STRING_POINTER (t1), TREE_STRING_POINTER (t2),
TREE_STRING_LENGTH (t1));
+ case COMPLEX_CST:
+ return cp_tree_equal (TREE_REALPART (t1), TREE_REALPART (t2))
+ && cp_tree_equal (TREE_IMAGPART (t1), TREE_IMAGPART (t2));
+
case CONSTRUCTOR:
/* We need to do this when determining whether or not two
non-type pointer to member function template arguments
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index efae847..f4359d6 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-05 Simon Martin <simartin@users.sourceforge.net>
+
+ PR c++/30895
+ * g++.dg/parse/template23.C: New test.
+
2007-03-01 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
Backport from trunk
diff --git a/gcc/testsuite/g++.dg/parse/template23.C b/gcc/testsuite/g++.dg/parse/template23.C
new file mode 100644
index 0000000..795457b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/template23.C
@@ -0,0 +1,10 @@
+/* PR c++/30895 This used to ICE. */
+/* { dg-do "compile" } */
+
+template<int> struct A {};
+
+template<typename T> struct B
+{
+ A<T(0i)> a1; /* { dg-error "imaginary constants are a GCC extension" } */
+ A<T(0i)> a2; /* { dg-error "imaginary constants are a GCC extension" } */
+};
--
1.5.4
From 077305a52b770cf3388a6984d8724c02ae617a91 Mon Sep 17 00:00:00 2001
From: kargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 5 Mar 2007 23:54:46 +0000
Subject: 2007-03-05 Brooks Moses <brooks.moses@codesourcery.com>
PR 31050
* gfortranspec.c (lang_specific_driver): Update program
name and copyright date.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122584 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 6fd3b45..1c36f16 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2007-03-05 Brooks Moses <brooks.moses@codesourcery.com>
+
+ PR 31050
+ * gfortranspec.c (lang_specific_driver): Update program
+ name and copyright date.
+
2007-03-01 Tobias Schlueter <tobi@gcc.gnu.org>
Backport from trunk
diff --git a/gcc/fortran/gfortranspec.c b/gcc/fortran/gfortranspec.c
index 0037f2a..a3d1142 100644
--- a/gcc/fortran/gfortranspec.c
+++ b/gcc/fortran/gfortranspec.c
@@ -346,8 +346,8 @@ lang_specific_driver (int *in_argc, const char *const **in_argv,
break;
case OPTION_version:
- printf ("GNU Fortran 95 (GCC) %s\n", version_string);
- printf ("Copyright %s 2006 Free Software Foundation, Inc.\n\n",
+ printf ("GNU Fortran (GCC) %s\n", version_string);
+ printf ("Copyright %s 2007 Free Software Foundation, Inc.\n\n",
_("(C)"));
printf (_("GNU Fortran comes with NO WARRANTY, to the extent permitted by law.\n\
You may redistribute copies of GNU Fortran\n\
--
1.5.4
From 3ba50889bd14f2616ea0871312adbc4b8d365def Mon Sep 17 00:00:00 2001
From: danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 6 Mar 2007 03:02:48 +0000
Subject: * pa.md: In unamed move patterns, disparge copies between general
and floating point registers using '?' modifier. Don't include 'f'
constraint for register preferences in DImode, SImode, HImode and
QImode patterns. Likewise for 'r' in DFmode and SFmode patterns.
Remove constraints for copies between general and floating registers
in soft-float DFmode pattern.
(movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
floating register.
(movsf): Likewise.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122595 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 225b593..0746319 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,15 @@
+2007-03-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.md: In unamed move patterns, disparge copies between general
+ and floating point registers using '?' modifier. Don't include 'f'
+ constraint for register preferences in DImode, SImode, HImode and
+ QImode patterns. Likewise for 'r' in DFmode and SFmode patterns.
+ Remove constraints for copies between general and floating registers
+ in soft-float DFmode pattern.
+ (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
+ floating register.
+ (movsf): Likewise.
+
2007-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa/predicates.md (move_src_operand): Allow zero for mode.
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index fbe82d6..1f82823 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -2290,9 +2290,9 @@
(define_insn ""
[(set (match_operand:SI 0 "move_dest_operand"
- "=r,r,r,r,r,r,Q,!*q,!r,!*f,*f,T,!r,!f")
+ "=r,r,r,r,r,r,Q,!*q,!r,!*f,*f,T,?r,?*f")
(match_operand:SI 1 "move_src_operand"
- "A,r,J,N,K,RQ,rM,!rM,!*q,!*fM,RT,*f,!f,!r"))]
+ "A,r,J,N,K,RQ,rM,!rM,!*q,!*fM,RT,*f,*f,r"))]
"(register_operand (operands[0], SImode)
|| reg_or_0_operand (operands[1], SImode))
&& !TARGET_SOFT_FLOAT
@@ -2932,9 +2932,9 @@
(define_insn ""
[(set (match_operand:HI 0 "move_dest_operand"
- "=r,r,r,r,r,Q,!*q,!r,!*f,!r,!f")
+ "=r,r,r,r,r,Q,!*q,!r,!*f,?r,?*f")
(match_operand:HI 1 "move_src_operand"
- "r,J,N,K,RQ,rM,!rM,!*q,!*fM,!f,!r"))]
+ "r,J,N,K,RQ,rM,!rM,!*q,!*fM,*f,r"))]
"(register_operand (operands[0], HImode)
|| reg_or_0_operand (operands[1], HImode))
&& !TARGET_SOFT_FLOAT
@@ -3105,9 +3105,9 @@
(define_insn ""
[(set (match_operand:QI 0 "move_dest_operand"
- "=r,r,r,r,r,Q,!*q,!r,!*f,!r,!f")
+ "=r,r,r,r,r,Q,!*q,!r,!*f,?r,?*f")
(match_operand:QI 1 "move_src_operand"
- "r,J,N,K,RQ,rM,!rM,!*q,!*fM,!f,!r"))]
+ "r,J,N,K,RQ,rM,!rM,!*q,!*fM,*f,r"))]
"(register_operand (operands[0], QImode)
|| reg_or_0_operand (operands[1], QImode))
&& !TARGET_SOFT_FLOAT
@@ -3907,8 +3907,20 @@
""
"
{
- if (GET_CODE (operands[1]) == CONST_DOUBLE && TARGET_64BIT)
- operands[1] = force_const_mem (DFmode, operands[1]);
+ if (GET_CODE (operands[1]) == CONST_DOUBLE
+ && operands[1] != CONST0_RTX (DFmode))
+ {
+ /* Reject CONST_DOUBLE loads to all hard registers when
+ generating 64-bit code and to floating point registers
+ when generating 32-bit code. */
+ if (REG_P (operands[0])
+ && HARD_REGISTER_P (operands[0])
+ && (TARGET_64BIT || REGNO (operands[0]) >= 32))
+ FAIL;
+
+ if (TARGET_64BIT)
+ operands[1] = force_const_mem (DFmode, operands[1]);
+ }
if (emit_move_sequence (operands, DFmode, 0))
DONE;
@@ -3949,9 +3961,9 @@
(define_insn ""
[(set (match_operand:DF 0 "move_dest_operand"
- "=f,*r,Q,?o,?Q,f,*r,*r,!r,!f")
+ "=f,*r,Q,?o,?Q,f,*r,*r,?*r,?f")
(match_operand:DF 1 "reg_or_0_or_nonsymb_mem_operand"
- "fG,*rG,f,*r,*r,RQ,o,RQ,!f,!r"))]
+ "fG,*rG,f,*r,*r,RQ,o,RQ,f,*r"))]
"(register_operand (operands[0], DFmode)
|| reg_or_0_operand (operands[1], DFmode))
&& !(GET_CODE (operands[1]) == CONST_DOUBLE
@@ -4123,9 +4135,9 @@
(define_insn ""
[(set (match_operand:DF 0 "move_dest_operand"
- "=r,?o,?Q,r,r,!r,!f")
+ "=r,?o,?Q,r,r")
(match_operand:DF 1 "reg_or_0_or_nonsymb_mem_operand"
- "rG,r,r,o,RQ,!f,!r"))]
+ "rG,r,r,o,RQ"))]
"(register_operand (operands[0], DFmode)
|| reg_or_0_operand (operands[1], DFmode))
&& !TARGET_64BIT
@@ -4134,8 +4146,8 @@
{
return output_move_double (operands);
}"
- [(set_attr "type" "move,store,store,load,load,move,move")
- (set_attr "length" "8,8,16,8,16,12,12")])
+ [(set_attr "type" "move,store,store,load,load")
+ (set_attr "length" "8,8,16,8,16")])
(define_insn ""
[(set (match_operand:DF 0 "move_dest_operand"
@@ -4255,9 +4267,9 @@
(define_insn ""
[(set (match_operand:DI 0 "move_dest_operand"
- "=r,o,Q,r,r,r,*f,*f,T,!r,!f")
+ "=r,o,Q,r,r,r,*f,*f,T,?r,?*f")
(match_operand:DI 1 "general_operand"
- "rM,r,r,o*R,Q,i,*fM,RT,*f,!f,!r"))]
+ "rM,r,r,o*R,Q,i,*fM,RT,*f,*f,r"))]
"(register_operand (operands[0], DImode)
|| reg_or_0_operand (operands[1], DImode))
&& !TARGET_64BIT
@@ -4447,6 +4459,14 @@
""
"
{
+ /* Reject CONST_DOUBLE loads to floating point registers. */
+ if (GET_CODE (operands[1]) == CONST_DOUBLE
+ && operands[1] != CONST0_RTX (SFmode)
+ && REG_P (operands[0])
+ && HARD_REGISTER_P (operands[0])
+ && REGNO (operands[0]) >= 32)
+ FAIL;
+
if (emit_move_sequence (operands, SFmode, 0))
DONE;
}")
@@ -4486,9 +4506,9 @@
(define_insn ""
[(set (match_operand:SF 0 "move_dest_operand"
- "=f,!*r,f,*r,Q,Q,!r,!f")
+ "=f,!*r,f,*r,Q,Q,?*r,?f")
(match_operand:SF 1 "reg_or_0_or_nonsymb_mem_operand"
- "fG,!*rG,RQ,RQ,f,*rG,!f,!r"))]
+ "fG,!*rG,RQ,RQ,f,*rG,f,*r"))]
"(register_operand (operands[0], SFmode)
|| reg_or_0_operand (operands[1], SFmode))
&& !TARGET_SOFT_FLOAT
--
1.5.4
From d71191a3a1578d3ffab587ed862853592bcc7c9a Mon Sep 17 00:00:00 2001
From: ghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 7 Mar 2007 03:08:34 +0000
Subject: * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
conversion.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122646 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0746319..051dc78 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
+ conversion.
+
2007-03-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa.md: In unamed move patterns, disparge copies between general
diff --git a/gcc/convert.c b/gcc/convert.c
index a04d19b..e0c24a6 100644
--- a/gcc/convert.c
+++ b/gcc/convert.c
@@ -389,14 +389,14 @@ convert_to_integer (tree type, tree expr)
fn = mathfn_built_in (s_intype, BUILT_IN_LLROUND);
break;
- case BUILT_IN_RINT: case BUILT_IN_RINTF: case BUILT_IN_RINTL:
- /* Only convert rint* if we can ignore math exceptions. */
- if (flag_trapping_math)
- break;
- /* ... Fall through ... */
case BUILT_IN_NEARBYINT:
case BUILT_IN_NEARBYINTF:
case BUILT_IN_NEARBYINTL:
+ /* Only convert nearbyint* if we can ignore math exceptions. */
+ if (flag_trapping_math)
+ break;
+ /* ... Fall through ... */
+ case BUILT_IN_RINT: case BUILT_IN_RINTF: case BUILT_IN_RINTL:
if (outprec < TYPE_PRECISION (long_integer_type_node)
|| (outprec == TYPE_PRECISION (long_integer_type_node)
&& !TYPE_UNSIGNED (type)))
--
1.5.4
From 6be29ec26e2921fa1e39448bd7244d9af51d0bf9 Mon Sep 17 00:00:00 2001
From: rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 7 Mar 2007 19:15:46 +0000
Subject: PR target/30848
* reg-stack.c (emit_swap_insn): If a malformed asm was seen,
silently fix up the stack in the case of a missing register.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122671 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 051dc78..85f1171 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-03-07 Richard Henderson <rth@redhat.com>
+
+ PR target/30848
+ * reg-stack.c (emit_swap_insn): If a malformed asm was seen,
+ silently fix up the stack in the case of a missing register.
+
2007-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
@@ -107,7 +113,7 @@
even if cv-qualification is the same.
2007-02-14 Eric Botcazou <ebotcazou@adacore.com>
- Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
+ Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
PR rtl-optimization/28772
* Makefile.in (haifa-sched.o): Add dependency on $(PARAMS_H).
@@ -156,11 +162,11 @@
2007-01-29 Josh Conner <jconner@apple.com>
- PR middle-end/29683
- * calls.c (compute_argument_addresses): Set stack and stack_slot
- for partial args, too.
- (store_one_arg): Use locate.size.constant for the size when
- generating a save_area.
+ PR middle-end/29683
+ * calls.c (compute_argument_addresses): Set stack and stack_slot
+ for partial args, too.
+ (store_one_arg): Use locate.size.constant for the size when
+ generating a save_area.
2007-01-28 Ralf Wildenhalf Wildenhues <Ralf.Wildenhues@gmx.de>
@@ -241,7 +247,7 @@
2007-01-05 Richard Guenther <rguenther@suse.de>
- PR tree-optimization/30212
+ PR tree-optimization/30212
* tree-vrp.c (adjust_range_with_scev): Do not adjust invalid
ranges by using TYPE_MIN_VALUE or TYPE_MAX_VALUE.
@@ -339,7 +345,7 @@
* gcc/config/mips/linux.h (SUBTARGET_CPP_SPEC): Extend.
2006-12-16 Joseph Myers <joseph@codesourcery.com>
- David Edelsohn <edelsohn@gnu.org>
+ David Edelsohn <edelsohn@gnu.org>
PR target/24036
* doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING,
@@ -417,7 +423,7 @@
inside start_sequence / end_sequence pair.
2006-11-27 Michael Matz <matz@suse.de>
- Andreas Krebbel <krebbel1@de.ibm.com>
+ Andreas Krebbel <krebbel1@de.ibm.com>
PR target/29319
* config/s390/predicates.md (larl_operand): Check addend of larl
@@ -2232,16 +2238,16 @@
2006-04-19 Jeff Law <law@redhat.com>
- PR tree-optimization/26854
+ PR tree-optimization/26854
* tree-ssa-dse.c (dse_optimize_stmt): Use has_single_use rather
than num_imm_uses.
* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Similarly.
2006-04-18 Jeff Law <law@redhat.com>
- PR tree-optimization/27087
- * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
- alias information too.
+ PR tree-optimization/27087
+ * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
+ alias information too.
2006-04-18 Andreas Krebbel <krebbel1@de.ibm.com>
@@ -2250,14 +2256,14 @@
2006-04-18 Paolo Bonzini <bonzini@gnu.org>
- PR tree-optimization/26643
+ PR tree-optimization/26643
Backport from mainline:
2006-03-29 Zdenek Dvorak <dvorakz@suse.cz>
- PR tree-optimization/26643
- * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
- bit_field_refs.
+ PR tree-optimization/26643
+ * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
+ bit_field_refs.
2006-04-18 Paolo Bonzini <bonzini@gnu.org>
@@ -2272,7 +2278,7 @@
(insert_reciprocals): Use it.
2006-02-02 Paolo Bonzini <bonzini@gnu.org>
-
+
* tree-flow-inline.h (bsi_after_labels): Rewrite, return
what its name says.
* lambda-code.c (perfect_nestify): Use bsi_insert_before on
@@ -2296,7 +2302,7 @@
to expand fallback builtin function call.
2006-04-14 Alexey Starovoytov <alexey.starovoytov@sun.com>
- Eric Botcazou <ebotcazou@libertysurf.fr>
+ Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sparc.c (emit_and_preserve): Allocate space for the
register save area.
@@ -2370,7 +2376,7 @@
2006-04-08 Matthias Klose <doko@debian.org>
- * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
+ * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
2006-04-07 Richard Guenther <rguenther@suse.de>
@@ -2428,7 +2434,7 @@
* tree-cfg.c (tree_duplicate_sese_region): Do not update SSA.
* tree-ssa-loop-ch.c (copy_loop_headers): Count successfully duplicated
headers and, if there was any, update SSA at the end.
-
+
Backport from mainline:
2006-03-30 Paolo Bonzini <bonzini@gnu.org>
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c
index 131f7b0..1002d69 100644
--- a/gcc/reg-stack.c
+++ b/gcc/reg-stack.c
@@ -807,9 +807,19 @@ emit_swap_insn (rtx insn, stack regstack, rtx reg)
hard_regno = get_hard_regnum (regstack, reg);
- gcc_assert (hard_regno >= FIRST_STACK_REG);
if (hard_regno == FIRST_STACK_REG)
return;
+ if (hard_regno == -1)
+ {
+ /* Something failed if the register wasn't on the stack. If we had
+ malformed asms, we zapped the instruction itself, but that didn't
+ produce the same pattern of register sets as before. To prevent
+ further failure, adjust REGSTACK to include REG at TOP. */
+ gcc_assert (any_malformed_asm);
+ regstack->reg[++regstack->top] = REGNO (reg);
+ return;
+ }
+ gcc_assert (hard_regno >= FIRST_STACK_REG);
other_reg = regstack->top - (hard_regno - FIRST_STACK_REG);
diff --git a/gcc/testsuite/gcc.target/i386/pr30848.c b/gcc/testsuite/gcc.target/i386/pr30848.c
new file mode 100644
index 0000000..2a92851
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr30848.c
@@ -0,0 +1,6 @@
+/* { dg-do compile } */
+
+void foo(double d)
+{
+ __asm__ ("" : "=u" (d)); /* { dg-error "output regs" } */
+}
--
1.5.4
From 3d131c4cd5164673eec8800ed325e76a98d061f1 Mon Sep 17 00:00:00 2001
From: reichelt <reichelt@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 8 Mar 2007 07:39:04 +0000
Subject: PR c++/30852
* c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.
* semantics.c (finish_offsetof): Handle COMPOUND_EXPR.
* g++.dg/ext/offsetof1.C: Add cases with volatile.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122688 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 85f1171..f1ff86d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-08 Volker Reichelt <reichelt@netcologne.de>
+
+ PR c++/30852
+ * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.
+
2007-03-07 Richard Henderson <rth@redhat.com>
PR target/30848
diff --git a/gcc/c-common.c b/gcc/c-common.c
index 9b935f9..0b9cf09 100644
--- a/gcc/c-common.c
+++ b/gcc/c-common.c
@@ -5999,6 +5999,12 @@ fold_offsetof_1 (tree expr)
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);
+
default:
gcc_unreachable ();
}
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 77b534f..35e4be2 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-08 Volker Reichelt <reichelt@netcologne.de>
+
+ PR c++/30852
+ * semantics.c (finish_offsetof): Handle COMPOUND_EXPR.
+
2007-03-05 Simon Martin <simartin@users.sourceforge.net>
PR c++/30895
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index eaebdd8..11f7ab9 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -2892,7 +2892,8 @@ finish_offsetof (tree expr)
|| TREE_CODE (TREE_TYPE (expr)) == METHOD_TYPE
|| TREE_CODE (TREE_TYPE (expr)) == UNKNOWN_TYPE)
{
- if (TREE_CODE (expr) == COMPONENT_REF)
+ if (TREE_CODE (expr) == COMPONENT_REF
+ || TREE_CODE (expr) == COMPOUND_EXPR)
expr = TREE_OPERAND (expr, 1);
error ("cannot apply %<offsetof%> to member function %qD", expr);
return error_mark_node;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f4359d6..f128682 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-08 Volker Reichelt <reichelt@netcologne.de>
+
+ PR c++/30852
+ * g++.dg/ext/offsetof1.C: Add cases with volatile.
+
2007-03-05 Simon Martin <simartin@users.sourceforge.net>
PR c++/30895
diff --git a/gcc/testsuite/g++.dg/ext/offsetof1.C b/gcc/testsuite/g++.dg/ext/offsetof1.C
index 123a9e3..1468c0a 100644
--- a/gcc/testsuite/g++.dg/ext/offsetof1.C
+++ b/gcc/testsuite/g++.dg/ext/offsetof1.C
@@ -8,8 +8,10 @@ struct bar {
};
int a = __builtin_offsetof(bar, foo); // { dg-error "static data member" }
+int av = __builtin_offsetof(volatile bar, foo); // { dg-error "static data member" }
int b = __builtin_offsetof(bar, baz); // { dg-error "member function" }
int b0 = __builtin_offsetof(bar, baz[0]); // { dg-error "function" }
+int bv0 = __builtin_offsetof(volatile bar, baz[0]); // { dg-error "function" }
int c = __builtin_offsetof(bar, ~bar); // { dg-error "member function" }
typedef int I;
--
1.5.4
From 708a1676c4c67388317c6a53925b680d90ad82bb Mon Sep 17 00:00:00 2001
From: schwab <schwab@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 8 Mar 2007 10:08:36 +0000
Subject: * c-common.c (fold_offsetof_1): Remove extra argument in recursive call.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122691 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f1ff86d..36685a9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-08 Andreas Schwab <schwab@suse.de>
+
+ * c-common.c (fold_offsetof_1): Remove extra argument in recursive
+ call.
+
2007-03-08 Volker Reichelt <reichelt@netcologne.de>
PR c++/30852
diff --git a/gcc/c-common.c b/gcc/c-common.c
index 0b9cf09..5a2c4fb 100644
--- a/gcc/c-common.c
+++ b/gcc/c-common.c
@@ -1,6 +1,6 @@
/* Subroutines shared by all languages that are variants of C.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ 2001, 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
This file is part of GCC.
@@ -6003,7 +6003,7 @@ fold_offsetof_1 (tree 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 ();
--
1.5.4
From 9253d97e98d22d8f08dcf2879e29a536094e5c7f Mon Sep 17 00:00:00 2001
From: jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 8 Mar 2007 11:49:26 +0000
Subject: * sr.po: New.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122695 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog
index b15e96f..98a90f8 100644
--- a/gcc/po/ChangeLog
+++ b/gcc/po/ChangeLog
@@ -1,3 +1,7 @@
+2007-03-08 Joseph S. Myers <joseph@codesourcery.com>
+
+ * sr.po: New.
+
2007-02-13 Release Manager
* GCC 4.1.2 released.
diff --git a/gcc/po/sr.po b/gcc/po/sr.po
new file mode 100644
index 0000000..f2f5e43
--- /dev/null
+++ b/gcc/po/sr.po
@@ -0,0 +1,28674 @@
+# Serbian translation of `gcc'.
+# Copyright (C) 2006 Free Software Foundation, Inc.
+# Caslav Ilic <caslav.ilic@gmx.net>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gcc 4.1.1\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2006-05-24 16:19-0700\n"
+"PO-Revision-Date: 2007-02-15 12:00+0100\n"
+"Last-Translator: Caslav Ilic <caslav.ilic@gmx.net>\n"
+"Language-Team: Serbian <gnu@prevod.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: c-decl.c:3739
+msgid "<anonymous>"
+msgstr "<анонимно>"
+
+#: c-format.c:343 c-format.c:367
+msgid "' ' flag"
+msgstr "заставица ‘ ’"
+
+#: c-format.c:343 c-format.c:367
+msgid "the ' ' printf flag"
+msgstr "заставица ‘ ’ у printf"
+
+#: c-format.c:344 c-format.c:368 c-format.c:402 c-format.c:414 c-format.c:471
+msgid "'+' flag"
+msgstr "заставица ‘+’"
+
+#: c-format.c:344 c-format.c:368 c-format.c:402 c-format.c:414
+msgid "the '+' printf flag"
+msgstr "заставица ‘+’ у printf"
+
+#: c-format.c:345 c-format.c:369 c-format.c:415 c-format.c:447
+msgid "'#' flag"
+msgstr "заставица ‘#’"
+
+#: c-format.c:345 c-format.c:369 c-format.c:415
+msgid "the '#' printf flag"
+msgstr "заставица ‘#’ у printf"
+
+#: c-format.c:346 c-format.c:370 c-format.c:445
+msgid "'0' flag"
+msgstr "заставица ‘0’"
+
+#: c-format.c:346 c-format.c:370
+msgid "the '0' printf flag"
+msgstr "заставица ‘0’ у printf"
+
+#: c-format.c:347 c-format.c:371 c-format.c:444 c-format.c:474
+msgid "'-' flag"
+msgstr "заставица ‘-’"
+
+#: c-format.c:347 c-format.c:371
+msgid "the '-' printf flag"
+msgstr "заставица ‘-’ у printf"
+
+#: c-format.c:348 c-format.c:428
+msgid "''' flag"
+msgstr "заставица ‘'’"
+
+#: c-format.c:348
+msgid "the ''' printf flag"
+msgstr "заставица ‘'’ у printf"
+
+#: c-format.c:349 c-format.c:429
+msgid "'I' flag"
+msgstr "заставица ‘I’"
+
+#: c-format.c:349
+msgid "the 'I' printf flag"
+msgstr "заставица ‘I’ у printf"
+
+#: c-format.c:350 c-format.c:372 c-format.c:426 c-format.c:448 c-format.c:475
+#: c-format.c:1601 config/sol2-c.c:46
+msgid "field width"
+msgstr "ширина поља"
+
+#: c-format.c:350 c-format.c:372 config/sol2-c.c:46
+msgid "field width in printf format"
+msgstr "ширина поља у формату printf"
+
+#: c-format.c:351 c-format.c:373 c-format.c:404 c-format.c:417
+msgid "precision"
+msgstr "тачност"
+
+#: c-format.c:351 c-format.c:373 c-format.c:404 c-format.c:417
+msgid "precision in printf format"
+msgstr "тачност у формату printf"
+
+#: c-format.c:352 c-format.c:374 c-format.c:405 c-format.c:418 c-format.c:427
+#: c-format.c:478 config/sol2-c.c:47
+msgid "length modifier"
+msgstr "модификатор дужине"
+
+#: c-format.c:352 c-format.c:374 c-format.c:405 c-format.c:418
+#: config/sol2-c.c:47
+msgid "length modifier in printf format"
+msgstr "модификатор дужине у формату printf"
+
+#: c-format.c:403 c-format.c:416
+msgid "'q' flag"
+msgstr "заставица ‘q’"
+
+#: c-format.c:403 c-format.c:416
+msgid "the 'q' diagnostic flag"
+msgstr "дијагностичка заставица ‘q’"
+
+#: c-format.c:424
+msgid "assignment suppression"
+msgstr "потискивање доделе"
+
+#: c-format.c:424
+msgid "the assignment suppression scanf feature"
+msgstr "могућност scanf за потискивање доделе"
+
+#: c-format.c:425
+msgid "'a' flag"
+msgstr "заставица ‘a’"
+
+#: c-format.c:425
+msgid "the 'a' scanf flag"
+msgstr "заставица ‘a’ у scanf"
+
+#: c-format.c:426
+msgid "field width in scanf format"
+msgstr "ширина поља у формату scanf"
+
+#: c-format.c:427
+msgid "length modifier in scanf format"
+msgstr "модификатор дужине у формату scanf"
+
+#: c-format.c:428
+msgid "the ''' scanf flag"
+msgstr "заставица ‘'’ у scanf"
+
+#: c-format.c:429
+msgid "the 'I' scanf flag"
+msgstr "заставица ‘I’ у scanf"
+
+#: c-format.c:443
+msgid "'_' flag"
+msgstr "заставица ‘_’"
+
+#: c-format.c:443
+msgid "the '_' strftime flag"
+msgstr "заставица ‘_’ у strftime"
+
+#: c-format.c:444
+msgid "the '-' strftime flag"
+msgstr "заставица ‘-’ у strftime"
+
+#: c-format.c:445
+msgid "the '0' strftime flag"
+msgstr "заставица ‘0’ у strftime"
+
+#: c-format.c:446 c-format.c:470
+msgid "'^' flag"
+msgstr "заставица ‘^’"
+
+#: c-format.c:446
+msgid "the '^' strftime flag"
+msgstr "заставица ‘^’ у strftime"
+
+#: c-format.c:447
+msgid "the '#' strftime flag"
+msgstr "заставица ‘#’ у strftime"
+
+#: c-format.c:448
+msgid "field width in strftime format"
+msgstr "ширина поља у формату strftime"
+
+#: c-format.c:449
+msgid "'E' modifier"
+msgstr "модификатор ‘E’"
+
+#: c-format.c:449
+msgid "the 'E' strftime modifier"
+msgstr "модификатор ‘E’ у strftime"
+
+#: c-format.c:450
+msgid "'O' modifier"
+msgstr "модификатор ‘O’ у strftime"
+
+#: c-format.c:450
+msgid "the 'O' strftime modifier"
+msgstr "модификатор ‘O’ у strftime"
+
+#: c-format.c:451
+msgid "the 'O' modifier"
+msgstr "модификатор ‘O’"
+
+#: c-format.c:469
+msgid "fill character"
+msgstr "знак за попуну"
+
+#: c-format.c:469
+msgid "fill character in strfmon format"
+msgstr "знак за попуну у формату strfmon"
+
+#: c-format.c:470
+msgid "the '^' strfmon flag"
+msgstr "заставица ‘^’ у strfmon"
+
+#: c-format.c:471
+msgid "the '+' strfmon flag"
+msgstr "заставица ‘+’ у strfmon"
+
+#: c-format.c:472
+msgid "'(' flag"
+msgstr "заставица ‘(’"
+
+#: c-format.c:472
+msgid "the '(' strfmon flag"
+msgstr "заставица ‘(’ у strfmon"
+
+#: c-format.c:473
+msgid "'!' flag"
+msgstr "заставица ‘!’"
+
+#: c-format.c:473
+msgid "the '!' strfmon flag"
+msgstr "заставица ‘!’ у strfmon"
+
+#: c-format.c:474
+msgid "the '-' strfmon flag"
+msgstr "заставица ‘-’ у strfmon"
+
+#: c-format.c:475
+msgid "field width in strfmon format"
+msgstr "ширина поља у формату strfmon"
+
+#: c-format.c:476
+msgid "left precision"
+msgstr "лева тачност"
+
+#: c-format.c:476
+msgid "left precision in strfmon format"
+msgstr "лева тачност у формату strfmon"
+
+#: c-format.c:477
+msgid "right precision"
+msgstr "десна тачност"
+
+#: c-format.c:477
+msgid "right precision in strfmon format"
+msgstr "десна тачност у формату strfmon"
+
+#: c-format.c:478
+msgid "length modifier in strfmon format"
+msgstr "модификатор дужине у формату strfmon"
+
+#: c-format.c:1703
+msgid "field precision"
+msgstr "тачност поља"
+
+#: c-incpath.c:70
+#, c-format
+msgid "ignoring duplicate directory \"%s\"\n"
+msgstr "игноришем директоријум дупликат „%s“\n"
+
+#: c-incpath.c:73
+#, c-format
+msgid " as it is a non-system directory that duplicates a system directory\n"
+msgstr " пошто је несистемски директоријум који је дупликат системског директоријума\n"
+
+#: c-incpath.c:77
+#, c-format
+msgid "ignoring nonexistent directory \"%s\"\n"
+msgstr "игноришем непостојећи директоријум „%s“\n"
+
+#: c-incpath.c:286
+#, c-format
+msgid "#include \"...\" search starts here:\n"
+msgstr "Тражење за #include \"...\" почиње овде:\n"
+
+#: c-incpath.c:290
+#, c-format
+msgid "#include <...> search starts here:\n"
+msgstr "Тражење за #include <...> почиње овде:\n"
+
+#: c-incpath.c:295
+#, c-format
+msgid "End of search list.\n"
+msgstr "Крај листе тражења.\n"
+
+#: c-opts.c:1339
+msgid "<built-in>"
+msgstr "<уграђено>"
+
+#: c-opts.c:1355
+msgid "<command line>"
+msgstr "<командна линија>"
+
+#: c-typeck.c:2225 c-typeck.c:4592 c-typeck.c:4594 c-typeck.c:4602
+#: c-typeck.c:4632 c-typeck.c:6011
+msgid "initializer element is not constant"
+msgstr "елемент успостављача није константан"
+
+#: c-typeck.c:4397
+msgid "array initialized from parenthesized string constant"
+msgstr "низ успостављен константном ниском у заградама"
+
+#: c-typeck.c:4458 cp/typeck2.c:672
+#, gcc-internal-format
+msgid "char-array initialized from wide string"
+msgstr "char-низ успостављен широком ниском"
+
+#: c-typeck.c:4463
+msgid "wchar_t-array initialized from non-wide string"
+msgstr "wchar_t-низ успостављен не-широком ниском"
+
+#: c-typeck.c:4481 cp/typeck2.c:692
+#, gcc-internal-format
+msgid "initializer-string for array of chars is too long"
+msgstr "предугачка ниска успостављача за низ знакова"
+
+#: c-typeck.c:4487
+msgid "array of inappropriate type initialized from string constant"
+msgstr "низ неподесног типа успостављен константном ниском"
+
+#. ??? This should not be an error when inlining calls to
+#. unprototyped functions.
+#: c-typeck.c:4551 c-typeck.c:4049 cp/typeck.c:1398
+#, gcc-internal-format
+msgid "invalid use of non-lvalue array"
+msgstr "неисправна употреба не-л-вредносног низа"
+
+#: c-typeck.c:4575
+msgid "array initialized from non-constant array expression"
+msgstr "низ успостављен не-константним низовним изразом"
+
+#: c-typeck.c:4639 c-typeck.c:6015
+#, gcc-internal-format
+msgid "initializer element is not computable at load time"
+msgstr "елемент успостављача се не може израчунати при учитавању"
+
+#. Although C99 is unclear about whether incomplete arrays
+#. of VLAs themselves count as VLAs, it does not make
+#. sense to permit them to be initialized given that
+#. ordinary VLAs may not be initialized.
+#: c-typeck.c:4650 c-decl.c:3181 c-decl.c:3196
+#, gcc-internal-format
+msgid "variable-sized object may not be initialized"
+msgstr "објекат променљиве величине не може се успостављати"
+
+#: c-typeck.c:4654
+msgid "invalid initializer"
+msgstr "неисправан успостављач"
+
+#: c-typeck.c:5128
+msgid "extra brace group at end of initializer"
+msgstr "сувишна група витичастих заграда на крају успостављача"
+
+#: c-typeck.c:5148
+msgid "missing braces around initializer"
+msgstr "недостају витичасте заграде око успостављача"
+
+#: c-typeck.c:5209
+msgid "braces around scalar initializer"
+msgstr "витичасте заграде око скаларног успостављача"
+
+#: c-typeck.c:5266
+msgid "initialization of flexible array member in a nested context"
+msgstr "успостављање флексибилног чланског низа у угњежденом контексту"
+
+#: c-typeck.c:5268
+msgid "initialization of a flexible array member"
+msgstr "успостављање флексибилног чланског низа"
+
+#: c-typeck.c:5295
+msgid "missing initializer"
+msgstr "недостаје успостављач"
+
+#: c-typeck.c:5317
+msgid "empty scalar initializer"
+msgstr "празан скаларни успостављач"
+
+#: c-typeck.c:5322
+msgid "extra elements in scalar initializer"
+msgstr "сувишни елементи у скаларном инцијализатору"
+
+#: c-typeck.c:5426 c-typeck.c:5486
+msgid "array index in non-array initializer"
+msgstr "индекс низа у не-низовном успостављачу"
+
+#: c-typeck.c:5431 c-typeck.c:5539
+msgid "field name not in record or union initializer"
+msgstr "име поља није у успостављачу слога или уније"
+
+#: c-typeck.c:5477
+msgid "array index in initializer not of integer type"
+msgstr "индекс низа у успостављачу није целобројан"
+
+#: c-typeck.c:5482 c-typeck.c:5484
+msgid "nonconstant array index in initializer"
+msgstr "неконстантан индекс низа у успостављачу"
+
+#: c-typeck.c:5488 c-typeck.c:5491
+msgid "array index in initializer exceeds array bounds"
+msgstr "индекс у успостављачу премашује границе низа"
+
+#: c-typeck.c:5502
+msgid "empty index range in initializer"
+msgstr "празан индексни опсег у успостављачу"
+
+#: c-typeck.c:5511
+msgid "array index range in initializer exceeds array bounds"
+msgstr "индексни опсег у успостављачу премашује границе низа"
+
+#: c-typeck.c:5586 c-typeck.c:5607 c-typeck.c:6079
+msgid "initialized field with side-effects overwritten"
+msgstr "успостављено поље са споредним ефектима пребрисано"
+
+#: c-typeck.c:6287
+msgid "excess elements in char array initializer"
+msgstr "сувишни елементи у успостављачу знаковног низа"
+
+#: c-typeck.c:6294 c-typeck.c:6340
+msgid "excess elements in struct initializer"
+msgstr "сувишни елементи у успостављачу структуре"
+
+#: c-typeck.c:6355
+msgid "non-static initialization of a flexible array member"
+msgstr "нестатичко успостављање флексибилног чланског низа"
+
+#: c-typeck.c:6423
+msgid "excess elements in union initializer"
+msgstr "сувишни елементи у успостављачу уније"
+
+#: c-typeck.c:6510
+msgid "excess elements in array initializer"
+msgstr "сувишни елементи у успостављачу низа"
+
+#: c-typeck.c:6540
+msgid "excess elements in vector initializer"
+msgstr "сувишни елементи у успостављачу вектора"
+
+#: c-typeck.c:6564
+msgid "excess elements in scalar initializer"
+msgstr "сувишни елементи у успостављачу скалара"
+
+#: cfgrtl.c:2130
+msgid "flow control insn inside a basic block"
+msgstr "ија контроле тока унутар основног блока"
+
+#: cfgrtl.c:2208
+msgid "wrong insn in the fallthru edge"
+msgstr "погрешна ија у пропадном потегу"
+
+#: cfgrtl.c:2250
+msgid "insn outside basic block"
+msgstr "ија изван основног блока"
+
+#: cfgrtl.c:2257
+msgid "return not followed by barrier"
+msgstr "повратак није праћен баријером"
+
+#: cgraph.c:300 ipa-inline.c:296
+msgid "function body not available"
+msgstr "тело функције није доступно"
+
+#: cgraph.c:302 cgraphunit.c:594
+msgid "redefined extern inline functions are not considered for inlining"
+msgstr "редефинисане спољашње уткане функције не разматрају се за уткивање"
+
+#: cgraph.c:305 cgraphunit.c:599
+msgid "function not considered for inlining"
+msgstr "функција се не разматра за уткивање"
+
+#: cgraph.c:307 cgraphunit.c:597 ipa-inline.c:289
+msgid "function not inlinable"
+msgstr "функција се не може уткати"
+
+#: collect2.c:373 gcc.c:6765
+#, c-format
+msgid "internal gcc abort in %s, at %s:%d"
+msgstr "инутрашњи прекид у %s, код %s:%d"
+
+#: collect2.c:872
+#, c-format
+msgid "no arguments"
+msgstr "без аргумената"
+
+#: collect2.c:1246 collect2.c:1394 collect2.c:1429
+#, c-format
+msgid "fopen %s"
+msgstr "fopen %s"
+
+#: collect2.c:1249 collect2.c:1399 collect2.c:1432
+#, c-format
+msgid "fclose %s"
+msgstr "fclose %s"
+
+#: collect2.c:1258
+#, c-format
+msgid "collect2 version %s"
+msgstr "collect2 верзија %s"
+
+#: collect2.c:1348
+#, c-format
+msgid "%d constructor(s) found\n"
+msgstr "нађених конструктора: %d\n"
+
+#: collect2.c:1349
+#, c-format
+msgid "%d destructor(s) found\n"
+msgstr "нађених деструктора: %d\n"
+
+#: collect2.c:1350
+#, c-format
+msgid "%d frame table(s) found\n"
+msgstr "нађених табела оквира: %d\n"
+
+#: collect2.c:1487
+#, c-format
+msgid "can't get program status"
+msgstr "не могу да добавим стање програма"
+
+#: collect2.c:1537
+#, c-format
+msgid "[cannot find %s]"
+msgstr "[не могу да нађем %s]"
+
+#: collect2.c:1552
+#, c-format
+msgid "cannot find '%s'"
+msgstr "не могу да нађем ‘%s’"
+
+#: collect2.c:1556 collect2.c:2045 collect2.c:2200 gcc.c:2809
+#, c-format
+msgid "pex_init failed"
+msgstr "pex_init није прошло"
+
+#: collect2.c:1591
+#, c-format
+msgid "[Leaving %s]\n"
+msgstr "[Напуштам %s]\n"
+
+#: collect2.c:1811
+#, c-format
+msgid ""
+"\n"
+"write_c_file - output name is %s, prefix is %s\n"
+msgstr ""
+"\n"
+"write_c_file - излазно име је %s, префикс је %s\n"
+
+#: collect2.c:2019
+#, c-format
+msgid "cannot find 'nm'"
+msgstr "не могу да нађем ‘nm’"
+
+#: collect2.c:2066
+#, c-format
+msgid "can't open nm output"
+msgstr "не могу да отворим излаз из nm"
+
+#: collect2.c:2110
+#, c-format
+msgid "init function found in object %s"
+msgstr "функција init нађена у објекту %s"
+
+#: collect2.c:2118
+#, c-format
+msgid "fini function found in object %s"
+msgstr "функција fini нађена у објекту %s"
+
+#: collect2.c:2221
+#, c-format
+msgid "can't open ldd output"
+msgstr "не могу да отворим излаз из ldd"
+
+#: collect2.c:2224
+#, c-format
+msgid ""
+"\n"
+"ldd output with constructors/destructors.\n"
+msgstr ""
+"\n"
+"излаз из ldd са конструкторима/деструкторима.\n"
+
+#: collect2.c:2239
+#, c-format
+msgid "dynamic dependency %s not found"
+msgstr "динамичка зависност %s није нађена"
+
+#: collect2.c:2251
+#, c-format
+msgid "unable to open dynamic dependency '%s'"
+msgstr "не могу да отворим динамичку зависност ‘%s’"
+
+#: collect2.c:2407
+#, c-format
+msgid "%s: not a COFF file"
+msgstr "%s: није КОФФ датотека"
+
+#: collect2.c:2527
+#, c-format
+msgid "%s: cannot open as COFF file"
+msgstr "%s: не могу да отворим као КОФФ датотеку"
+
+#: collect2.c:2585
+#, c-format
+msgid "library lib%s not found"
+msgstr "библиотека lib%s није нађена"
+
+#: cppspec.c:106
+#, c-format
+msgid "\"%s\" is not a valid option to the preprocessor"
+msgstr "„%s“ није исправна опција предобрађивача"
+
+#: cppspec.c:128
+#, c-format
+msgid "too many input files"
+msgstr "превише улазних датотека"
+
+#: diagnostic.c:186
+#, c-format
+msgid "%s:%d: confused by earlier errors, bailing out\n"
+msgstr "%s:%d: збуњен претходним грешкама, одустајем\n"
+
+#: diagnostic.c:246
+#, c-format
+msgid "compilation terminated due to -Wfatal-errors.\n"
+msgstr "компиловање је прекинуто услед -Wfatal-errors.\n"
+
+#: diagnostic.c:255
+#, c-format
+msgid ""
+"Please submit a full bug report,\n"
+"with preprocessed source if appropriate.\n"
+"See %s for instructions.\n"
+msgstr ""
+"Молимо поднесите пун извештај о грешци,\n"
+"са предобрађеним извором ако је подесно.\n"
+"Погледајте %s за упутства.\n"
+
+#: diagnostic.c:264
+#, c-format
+msgid "compilation terminated.\n"
+msgstr "компиловање прекинуто.\n"
+
+#: diagnostic.c:583
+#, c-format
+msgid "Internal compiler error: Error reporting routines re-entered.\n"
+msgstr "Унутрашња грешка компилатора: Грешка извештавања о рутинама у које је поново уђено.\n"
+
+#: final.c:1110
+msgid "negative insn length"
+msgstr "негативна дужина ије"
+
+#: final.c:2479
+msgid "could not split insn"
+msgstr "нисам могао да поделим ију"
+
+#: final.c:2828
+msgid "invalid 'asm': "
+msgstr "неисправна ‘asm’: "
+
+#: final.c:3011
+#, c-format
+msgid "nested assembly dialect alternatives"
+msgstr "алтернативе дијалекта угњежденог асемблера"
+
+#: final.c:3028 final.c:3040
+#, c-format
+msgid "unterminated assembly dialect alternative"
+msgstr "неодређена алтернатива дијалекта асемблера"
+
+#: final.c:3087
+#, c-format
+msgid "operand number missing after %%-letter"
+msgstr "број операнда недостаје после %%-слова"
+
+#: final.c:3090 final.c:3131
+#, c-format
+msgid "operand number out of range"
+msgstr "број операнда изван опсега"
+
+#: final.c:3150
+#, c-format
+msgid "invalid %%-code"
+msgstr "неисправан %%-код"
+
+#: final.c:3180
+#, c-format
+msgid "'%%l' operand isn't a label"
+msgstr "операнд уз ‘%%l’ није етикета"
+
+#. We can't handle floating point constants;
+#. PRINT_OPERAND must handle them.
+#. We can't handle floating point constants; PRINT_OPERAND must
+#. handle them.
+#. We can't handle floating point constants;
+#. PRINT_OPERAND must handle them.
+#: final.c:3281 vmsdbgout.c:487 config/i386/i386.c:6642
+#: config/pdp11/pdp11.c:1700
+#, c-format
+msgid "floating constant misused"
+msgstr "лоша употреба реалне константе"
+
+#: final.c:3337 vmsdbgout.c:544 config/i386/i386.c:6718
+#: config/pdp11/pdp11.c:1747
+#, c-format
+msgid "invalid expression as operand"
+msgstr "неисправан израз као операнд"
+
+#: flow.c:1699
+msgid "Attempt to delete prologue/epilogue insn:"
+msgstr "Покушај брисања ије пролога/епилога:"
+
+#: gcc.c:1641
+#, c-format
+msgid "Using built-in specs.\n"
+msgstr "Користим уграђене наводе.\n"
+
+#: gcc.c:1824
+#, c-format
+msgid ""
+"Setting spec %s to '%s'\n"
+"\n"
+msgstr ""
+"Постављам навод %s на '%s'\n"
+"\n"
+
+#: gcc.c:1939
+#, c-format
+msgid "Reading specs from %s\n"
+msgstr "Читам наводе из %s\n"
+
+#: gcc.c:2035 gcc.c:2054
+#, c-format
+msgid "specs %%include syntax malformed after %ld characters"
+msgstr "наводи: %%include синтакса лоше формирана после %ld знакова"
+
+#: gcc.c:2062
+#, c-format
+msgid "could not find specs file %s\n"
+msgstr "нисам могао да нађем датотеку навода %s\n"
+
+#: gcc.c:2079 gcc.c:2087 gcc.c:2096 gcc.c:2105
+#, c-format
+msgid "specs %%rename syntax malformed after %ld characters"
+msgstr "наводи: %%rename синтакса лоше формирана после %ld знакова"
+
+#: gcc.c:2114
+#, c-format
+msgid "specs %s spec was not found to be renamed"
+msgstr "наводи: није утврђено да је навод %s преименован"
+
+#: gcc.c:2121
+#, c-format
+msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
+msgstr "%s: покушај преименовања навода ‘%s’ у већ дефинисан навод ‘%s’"
+
+#: gcc.c:2126
+#, c-format
+msgid "rename spec %s to %s\n"
+msgstr "преименуј навод %s у %s\n"
+
+#: gcc.c:2128
+#, c-format
+msgid ""
+"spec is '%s'\n"
+"\n"
+msgstr ""
+"навод је ‘%s’\n"
+"\n"
+
+#: gcc.c:2141
+#, c-format
+msgid "specs unknown %% command after %ld characters"
+msgstr "наводи: непозната %% наредба после %ld знакова"
+
+#: gcc.c:2152 gcc.c:2165
+#, c-format
+msgid "specs file malformed after %ld characters"
+msgstr "датотека навода лоше формирана после %ld знакова"
+
+#: gcc.c:2218
+#, c-format
+msgid "spec file has no spec for linking"
+msgstr "датотека навода нема навод за повезивање"
+
+#: gcc.c:2640
+#, c-format
+msgid "system path '%s' is not absolute"
+msgstr "системска путања ‘%s’ није апсолутна"
+
+#: gcc.c:2703
+#, c-format
+msgid "-pipe not supported"
+msgstr "-pipe није подржано"
+
+#: gcc.c:2765
+#, c-format
+msgid ""
+"\n"
+"Go ahead? (y or n) "
+msgstr ""
+"\n"
+"Наставити? (y или n) "
+
+#: gcc.c:2848
+msgid "failed to get exit status"
+msgstr "нисам успео да добавим излазни статус"
+
+#: gcc.c:2854
+msgid "failed to get process times"
+msgstr "нисам успео да добавим времена процеса"
+
+#: gcc.c:2877
+#, c-format
+msgid ""
+"Internal error: %s (program %s)\n"
+"Please submit a full bug report.\n"
+"See %s for instructions."
+msgstr ""
+"Унутрашња грешка: %s (програм %s)\n"
+"Молимо поднесите пун извештај о грешци.\n"
+"Погледајте %s за упутства."
+
+#: gcc.c:2905
+#, c-format
+msgid "# %s %.2f %.2f\n"
+msgstr "# %s %.2f %.2f\n"
+
+#: gcc.c:3041
+#, c-format
+msgid "Usage: %s [options] file...\n"
+msgstr "Употреба: %s [опције] датотека...\n"
+
+#: gcc.c:3042
+msgid "Options:\n"
+msgstr "Опције:\n"
+
+#: gcc.c:3044
+msgid " -pass-exit-codes Exit with highest error code from a phase\n"
+msgstr " -pass-exit-codes Изађи са највишим кодом грешке из фазе\n"
+
+#: gcc.c:3045
+msgid " --help Display this information\n"
+msgstr " --help Прикажи ове информације\n"
+
+#: gcc.c:3046
+msgid " --target-help Display target specific command line options\n"
+msgstr " --target-help Прикажи опције командне линије посебне за циљ\n"
+
+#: gcc.c:3048
+msgid " (Use '-v --help' to display command line options of sub-processes)\n"
+msgstr " (Употребите „-v --help“ за приказ опција командне линије потпроцесâ)\n"
+
+#: gcc.c:3049
+msgid " -dumpspecs Display all of the built in spec strings\n"
+msgstr " -dumpspecs Прикажи све уграђене ниске навода\n"
+
+#: gcc.c:3050
+msgid " -dumpversion Display the version of the compiler\n"
+msgstr " -dumpversion Прикажи верзију компилатора\n"
+
+#: gcc.c:3051
+msgid " -dumpmachine Display the compiler's target processor\n"
+msgstr " -dumpmachine Прикажи компилаторов циљни процесор\n"
+
+#: gcc.c:3052
+msgid " -print-search-dirs Display the directories in the compiler's search path\n"
+msgstr ""
+" -print-search-dirs Прикажи директоријуме у компилаторовој путањи\n"
+" тражења\n"
+
+#: gcc.c:3053
+msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
+msgstr " -print-libgcc-file-name Прикажи име придружене библиотеке компилатора\n"
+
+#: gcc.c:3054
+msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
+msgstr " -print-file-name=<биб> Прикажу пуну путању до библиотеке <биб>\n"
+
+#: gcc.c:3055
+msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
+msgstr " -print-prog-name=<прог> Прикажи пуну путању до компоненте компилатора <прог>\n"
+
+#: gcc.c:3056
+msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
+msgstr " -print-multi-directory Прикажи корени директоријум за верзије libgcc\n"
+
+#: gcc.c:3057
+msgid ""
+" -print-multi-lib Display the mapping between command line options and\n"
+" multiple library search directories\n"
+msgstr ""
+" -print-multi-lib Прикажи мапирање између опција командне линије и\n"
+" вишеструких директоријума за тражење библиотека\n"
+
+#: gcc.c:3060
+msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
+msgstr " -print-multi-os-directory Прикажи релативну путању до библиотека ОСа\n"
+
+#: gcc.c:3061
+msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
+msgstr " -Wa,<опције> Проследи зарезима раздвојене <опције> асемблеру\n"
+
+#: gcc.c:3062
+msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
+msgstr " -Wp,<опције> Проследи зарезима раздвојене <опције> предобрађивачу\n"
+
+#: gcc.c:3063
+msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
+msgstr " -Wl,<опције> Проследи зарезима раздвојене <опције> повезивачу\n"
+
+#: gcc.c:3064
+msgid " -Xassembler <arg> Pass <arg> on to the assembler\n"
+msgstr " -Xassembler <арг> Проследи <арг> асемблеру\n"
+
+#: gcc.c:3065
+msgid " -Xpreprocessor <arg> Pass <arg> on to the preprocessor\n"
+msgstr " -Xpreprocessor <арг> Проследи <арг> предобрађивачу\n"
+
+#: gcc.c:3066
+msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
+msgstr " -Xlinker <арг> Проследи <арг> повезивачу\n"
+
+#: gcc.c:3067
+msgid " -combine Pass multiple source files to compiler at once\n"
+msgstr " -combine Проследи одједном више изворних датотека компилатору\n"
+
+#: gcc.c:3068
+msgid " -save-temps Do not delete intermediate files\n"
+msgstr " -save-temps Не бриши међудатотеке\n"
+
+#: gcc.c:3069
+msgid " -pipe Use pipes rather than intermediate files\n"
+msgstr " -pipe Користи цеви пре него међудатотеке\n"
+
+#: gcc.c:3070
+msgid " -time Time the execution of each subprocess\n"
+msgstr " -time Мери време извршавања сваког потпроцеса\n"
+
+#: gcc.c:3071
+msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
+msgstr " -specs=<датотека> Потисни уграђене наводе садржајем <датотеке>\n"
+
+#: gcc.c:3072
+msgid " -std=<standard> Assume that the input sources are for <standard>\n"
+msgstr " -std=<стандард> Претпостави да су улазни извори по датом <стандарду>\n"
+
+#: gcc.c:3073
+msgid ""
+" --sysroot=<directory> Use <directory> as the root directory for headers\n"
+" for headers and libraries\n"
+msgstr ""
+" --sysroot=<директоријум> Користи <директоријум> као корени директоријум за\n"
+" заглавља и библиотеке\n"
+
+#: gcc.c:3076
+msgid " -B <directory> Add <directory> to the compiler's search paths\n"
+msgstr " -B <директоријум> Додај <директоријум> у компилаторове путање тражења\n"
+
+#: gcc.c:3077
+msgid " -b <machine> Run gcc for target <machine>, if installed\n"
+msgstr " -b <машина> Изврши gcc за циљну <машину>, ако је инсталиран\n"
+
+#: gcc.c:3078
+msgid " -V <version> Run gcc version number <version>, if installed\n"
+msgstr " -V <верзија> Изврши gcc дате <верзије>, ако је инсталирана\n"
+
+#: gcc.c:3079
+msgid " -v Display the programs invoked by the compiler\n"
+msgstr " -v Прикажи програме које компилатор позива\n"
+
+#: gcc.c:3080
+msgid " -### Like -v but options quoted and commands not executed\n"
+msgstr ""
+" -### Као -v али су опције цитиране и наредбе се не\n"
+" извршавају\n"
+
+#: gcc.c:3081
+msgid " -E Preprocess only; do not compile, assemble or link\n"
+msgstr ""
+" -E Само предобрада; без компиловања, састављања и\n"
+" повезивања\n"
+
+#: gcc.c:3082
+msgid " -S Compile only; do not assemble or link\n"
+msgstr " -S Само компиловање; без састављања или повезивања\n"
+
+#: gcc.c:3083
+msgid " -c Compile and assemble, but do not link\n"
+msgstr " -c Компиловање и састављање, али без повезивања\n"
+
+#: gcc.c:3084
+msgid " -o <file> Place the output into <file>\n"
+msgstr " -o <датотека> Смести излаз у <датотеку>\n"
+
+#: gcc.c:3085
+msgid ""
+" -x <language> Specify the language of the following input files\n"
+" Permissible languages include: c c++ assembler none\n"
+" 'none' means revert to the default behavior of\n"
+" guessing the language based on the file's extension\n"
+msgstr ""
+" -x <језик> Навођење језика улазних датотека које следе.\n"
+" Прихватљиви језици су: c c++ assembler none\n"
+" ‘none’ значи враћање на подразумевано понашање,\n"
+" погађање језика на основу наставка датотеке\n"
+
+#: gcc.c:3092
+#, c-format
+msgid ""
+"\n"
+"Options starting with -g, -f, -m, -O, -W, or --param are automatically\n"
+" passed on to the various sub-processes invoked by %s. In order to pass\n"
+" other options on to these processes the -W<letter> options must be used.\n"
+msgstr ""
+"\n"
+"Опције које почињу са -g, -f, -m, -O, -W, или --param аутоматски се\n"
+"прослеђују разним потпроцесима које сазива %s. Да би се тим процесима\n"
+"проследиле друге опције, мора се употребити -W<слово>.\n"
+
+#: gcc.c:3215
+#, c-format
+msgid "'-%c' option must have argument"
+msgstr "Опција ‘-%c’ мора имати аргумент"
+
+#: gcc.c:3237
+#, c-format
+msgid "couldn't run '%s': %s"
+msgstr "не могу да извршим ‘%s’: %s"
+
+#. translate_options () has turned --version into -fversion.
+#: gcc.c:3422
+#, c-format
+msgid "%s (GCC) %s\n"
+msgstr "%s (ГЦЦ) %s\n"
+
+#: gcc.c:3424 gcov.c:415 fortran/gfortranspec.c:351 java/gjavah.c:2406
+#: java/jcf-dump.c:931 java/jv-scan.c:129
+msgid "(C)"
+msgstr "©"
+
+#: gcc.c:3425 java/gjavah.c:2407 java/jcf-dump.c:932 java/jv-scan.c:130
+#, c-format
+msgid ""
+"This is free software; see the source for copying conditions. There is NO\n"
+"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+"\n"
+msgstr ""
+"Ово је слободан софтвер; погледајте изворе за услове копирања. Нема БИЛО КАКВЕ\n"
+"ГАРАНЦИЈЕ; чак ни за КОМЕРЦИЈАЛНУ ВРЕДНОСТ или ИСПУЊАВАЊЕ ОДРЕЂЕНЕ ПОТРЕБЕ.\n"
+"\n"
+
+#: gcc.c:3526
+#, c-format
+msgid "argument to '-Xlinker' is missing"
+msgstr "недостаје аргумент за ‘-Xlinker’"
+
+#: gcc.c:3534
+#, c-format
+msgid "argument to '-Xpreprocessor' is missing"
+msgstr "недостаје аргумент за ‘-Xpreprocessor’"
+
+#: gcc.c:3541
+#, c-format
+msgid "argument to '-Xassembler' is missing"
+msgstr "недостаје аргумент за ‘-Xassembler’"
+
+#: gcc.c:3548
+#, c-format
+msgid "argument to '-l' is missing"
+msgstr "недостаје аргумент за ‘-l’"
+
+#: gcc.c:3569
+#, c-format
+msgid "argument to '-specs' is missing"
+msgstr "недостаје аргумент за ‘-specs’"
+
+#: gcc.c:3583
+#, c-format
+msgid "argument to '-specs=' is missing"
+msgstr "недостаје аргумент за ‘-specs=’"
+
+#: gcc.c:3621
+#, c-format
+msgid "'-%c' must come at the start of the command line"
+msgstr "‘-%c’ се мора наћи на почетку командне линије"
+
+#: gcc.c:3630
+#, c-format
+msgid "argument to '-B' is missing"
+msgstr "недостаје аргумент за ‘-B’"
+
+#: gcc.c:4016
+#, c-format
+msgid "argument to '-x' is missing"
+msgstr "недостаје аргумент за ‘-x’"
+
+#: gcc.c:4044
+#, c-format
+msgid "argument to '-%s' is missing"
+msgstr "недостаје аргумент за ‘-%s’"
+
+#: gcc.c:4382
+#, c-format
+msgid "switch '%s' does not start with '-'"
+msgstr "прекидач ‘%s’ не почиње са ‘-’"
+
+#: gcc.c:4612
+#, c-format
+msgid "spec '%s' invalid"
+msgstr "неисправан навод ‘%s’"
+
+#: gcc.c:4678
+#, c-format
+msgid "%s\n"
+msgstr "%s\n"
+
+#: gcc.c:4751
+#, c-format
+msgid "spec '%s' has invalid '%%0%c'"
+msgstr "навод ‘%s’ има неисправно ‘%%0%c’"
+
+#: gcc.c:4948
+#, c-format
+msgid "spec '%s' has invalid '%%W%c"
+msgstr "навод ‘%s’ има неисправно ‘%%W%c’"
+
+#: gcc.c:4979
+#, c-format
+msgid "spec '%s' has invalid '%%x%c'"
+msgstr "навод ‘%s’ има неисправно ‘%%x%c’"
+
+#: gcc.c:5201
+#, c-format
+msgid "Processing spec %c%s%c, which is '%s'\n"
+msgstr "Обрађујем навод %c%s%c, који је ‘%s’\n"
+
+#: gcc.c:5343
+#, c-format
+msgid "unknown spec function '%s'"
+msgstr "непозната функција навода ‘%s’"
+
+#: gcc.c:5362
+#, c-format
+msgid "error in args to spec function '%s'"
+msgstr "грешка у аргументима за функцију навода ‘%s’"
+
+#: gcc.c:5410
+#, c-format
+msgid "malformed spec function name"
+msgstr "лоше формирано име функције навода"
+
+#. )
+#: gcc.c:5413
+#, c-format
+msgid "no arguments for spec function"
+msgstr "нема аргумената за функцију навода"
+
+#: gcc.c:5432
+#, c-format
+msgid "malformed spec function arguments"
+msgstr "лоше формирани аргументи функције навода"
+
+#: gcc.c:5671
+#, c-format
+msgid "braced spec '%s' is invalid at '%c'"
+msgstr "навод ‘%s’ у витичастим заградама није исправан код ‘%c’"
+
+#: gcc.c:5759
+#, c-format
+msgid "braced spec body '%s' is invalid"
+msgstr "тело навода ‘%s’ у витичастим заградама није исправно"
+
+#: gcc.c:6306
+#, c-format
+msgid "install: %s%s\n"
+msgstr "инсталирање: %s%s\n"
+
+#: gcc.c:6307
+#, c-format
+msgid "programs: %s\n"
+msgstr "програми: %s\n"
+
+#: gcc.c:6308
+#, c-format
+msgid "libraries: %s\n"
+msgstr "библиотеке: %s\n"
+
+#: gcc.c:6365
+#, c-format
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
+msgstr ""
+"\n"
+"За упутства за пријављивање грешака, погледајте:\n"
+
+#: gcc.c:6381
+#, c-format
+msgid "Target: %s\n"
+msgstr "Циљ: %s\n"
+
+#: gcc.c:6382
+#, c-format
+msgid "Configured with: %s\n"
+msgstr "Конфигурисано помоћу: %s\n"
+
+#: gcc.c:6396
+#, c-format
+msgid "Thread model: %s\n"
+msgstr "Нитни модел: %s\n"
+
+#: gcc.c:6407
+#, c-format
+msgid "gcc version %s\n"
+msgstr "gcc верзија %s\n"
+
+#: gcc.c:6409
+#, c-format
+msgid "gcc driver version %s executing gcc version %s\n"
+msgstr "gcc драјвер верзије %s извршава gcc верзију %s\n"
+
+#: gcc.c:6417
+#, c-format
+msgid "no input files"
+msgstr "нема улазних датотека"
+
+#: gcc.c:6466
+#, c-format
+msgid "cannot specify -o with -c or -S with multiple files"
+msgstr "не може се задати -o са -c или -S кад има више датотека"
+
+#: gcc.c:6500
+#, c-format
+msgid "spec '%s' is invalid"
+msgstr "навод ‘%s’ није исправан"
+
+#: gcc.c:6965
+#, c-format
+msgid "multilib spec '%s' is invalid"
+msgstr "вишебиб. навод ‘%s’ није исправан"
+
+#: gcc.c:7157
+#, c-format
+msgid "multilib exclusions '%s' is invalid"
+msgstr "вишебиб. искључење ‘%s’ није исправно"
+
+#: gcc.c:7215 gcc.c:7356
+#, c-format
+msgid "multilib select '%s' is invalid"
+msgstr "вишебиб. избор ‘%s’ није исправан"
+
+#: gcc.c:7394
+#, c-format
+msgid "multilib exclusion '%s' is invalid"
+msgstr "вишебиб. искључење ‘%s’ није исправно"
+
+#: gcc.c:7653 gcc.c:7658
+#, c-format
+msgid "invalid version number `%s'"
+msgstr "неисправан број верзије ‘%s’"
+
+#: gcc.c:7701
+#, c-format
+msgid "too few arguments to %%:version-compare"
+msgstr "премало аргумената за %%:version-compare"
+
+#: gcc.c:7707
+#, c-format
+msgid "too many arguments to %%:version-compare"
+msgstr "премало аргумената за %%:version-compare"
+
+#: gcc.c:7748
+#, c-format
+msgid "unknown operator '%s' in %%:version-compare"
+msgstr "непознате оператор ‘%s’ у %%:version-compare"
+
+#: gcov.c:388
+#, c-format
+msgid ""
+"Usage: gcov [OPTION]... SOURCEFILE\n"
+"\n"
+msgstr ""
+"Употреба: gcov [ОПЦИЈА]... ИЗВОРНА_ДАТОТЕКА\n"
+"\n"
+
+#: gcov.c:389
+#, c-format
+msgid ""
+"Print code coverage information.\n"
+"\n"
+msgstr ""
+"Испиши податке о покривености кôда.\n"
+"\n"
+
+#: gcov.c:390
+#, c-format
+msgid " -h, --help Print this help, then exit\n"
+msgstr " -h, --help Испиши ову помоћ, затим изађи\n"
+
+#: gcov.c:391
+#, c-format
+msgid " -v, --version Print version number, then exit\n"
+msgstr " -v, --version Испиши број верзије, затим изађи\n"
+
+#: gcov.c:392
+#, c-format
+msgid " -a, --all-blocks Show information for every basic block\n"
+msgstr " -a, --all-blocks Прикажи податке за сваки основни блок\n"
+
+#: gcov.c:393
+#, c-format
+msgid " -b, --branch-probabilities Include branch probabilities in output\n"
+msgstr " -b, --branch-probabilities Укључи вероватноће гранања у излаз\n"
+
+#: gcov.c:394
+#, c-format
+msgid ""
+" -c, --branch-counts Given counts of branches taken\n"
+" rather than percentages\n"
+msgstr ""
+" -c, --branch-counts Дати збирови извршених гранања\n"
+" пре него проценти\n"
+
+#: gcov.c:396
+#, c-format
+msgid " -n, --no-output Do not create an output file\n"
+msgstr " -n, --no-output Не прави излазну датотеку\n"
+
+#: gcov.c:397
+#, c-format
+msgid ""
+" -l, --long-file-names Use long output file names for included\n"
+" source files\n"
+msgstr ""
+" -l, --long-file-names Користи дуга излазна имена датотека за\n"
+" изворне датотеке\n"
+
+#: gcov.c:399
+#, c-format
+msgid " -f, --function-summaries Output summaries for each function\n"
+msgstr " -f, --function-summaries Испиши сажетке за сваку функцију\n"
+
+#: gcov.c:400
+#, c-format
+msgid " -o, --object-directory DIR|FILE Search for object files in DIR or called FILE\n"
+msgstr ""
+" -o, --object-directory ДИР|ТЕКА Тражи објектне датотеке у ДИРу или по\n"
+" имену ТЕКА\n"
+
+#: gcov.c:401
+#, c-format
+msgid " -p, --preserve-paths Preserve all pathname components\n"
+msgstr " -p, --preserve-paths Чувај све делове путање\n"
+
+#: gcov.c:402
+#, c-format
+msgid " -u, --unconditional-branches Show unconditional branch counts too\n"
+msgstr " -u, --unconditional-branches Прикажи и збирове безусловних гранања\n"
+
+#: gcov.c:403
+#, c-format
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
+"%s.\n"
+msgstr ""
+"\n"
+"За упутства за пријаву грешака, погледајте:\n"
+"%s.\n"
+
+#: gcov.c:413
+#, c-format
+msgid "gcov (GCC) %s\n"
+msgstr "gcov (ГЦЦ) %s\n"
+
+#: gcov.c:417
+#, c-format
+msgid ""
+"This is free software; see the source for copying conditions.\n"
+"There is NO warranty; not even for MERCHANTABILITY or \n"
+"FITNESS FOR A PARTICULAR PURPOSE.\n"
+"\n"
+msgstr ""
+"Ово је слободан софтвер; погледајте изворе за услове копирања. Нема БИЛО КАКВЕ\n"
+"ГАРАНЦИЈЕ; чак ни за КОМЕРЦИЈАЛНУ ВРЕДНОСТ или ИСПУЊАВАЊЕ ОДРЕЂЕНЕ ПОТРЕБЕ.\n"
+"\n"
+
+#: gcov.c:507
+#, c-format
+msgid "%s:no functions found\n"
+msgstr "%s: ниједна функција није нађена\n"
+
+#: gcov.c:528 gcov.c:556 fortran/dump-parse-tree.c:68
+#, c-format
+msgid "\n"
+msgstr "\n"
+
+#: gcov.c:543
+#, c-format
+msgid "%s:creating '%s'\n"
+msgstr "%s:правим ‘%s’\n"
+
+#: gcov.c:547
+#, c-format
+msgid "%s:error writing output file '%s'\n"
+msgstr "%s:грешка при писању у излазну датотеку ‘%s’\n"
+
+#: gcov.c:552
+#, c-format
+msgid "%s:could not open output file '%s'\n"
+msgstr "%s:нисам могао да отворим излазну датотеку ‘%s’\n"
+
+#: gcov.c:703
+#, c-format
+msgid "%s:cannot open graph file\n"
+msgstr "%s:не могу да отворим датотеку графа\n"
+
+#: gcov.c:709
+#, c-format
+msgid "%s:not a gcov graph file\n"
+msgstr "%s:није датотека графа гкова\n"
+
+#: gcov.c:722
+#, c-format
+msgid "%s:version '%.4s', prefer '%.4s'\n"
+msgstr "%s:верзија ‘%.4s’, боље је ‘%.4s’\n"
+
+#: gcov.c:774
+#, c-format
+msgid "%s:already seen blocks for '%s'\n"
+msgstr "%s:већ виђени блокови за ‘%s’\n"
+
+#: gcov.c:892 gcov.c:1048
+#, c-format
+msgid "%s:corrupted\n"
+msgstr "%s:искварено\n"
+
+#: gcov.c:966
+#, c-format
+msgid "%s:cannot open data file\n"
+msgstr "%s:не могу да отворим датотеку података\n"
+
+#: gcov.c:971
+#, c-format
+msgid "%s:not a gcov data file\n"
+msgstr "%s: није датотека података гкова\n"
+
+#: gcov.c:984
+#, c-format
+msgid "%s:version '%.4s', prefer version '%.4s'\n"
+msgstr "%s:верзија ‘%.4s’, боља је ‘%.4s’\n"
+
+#: gcov.c:990
+#, c-format
+msgid "%s:stamp mismatch with graph file\n"
+msgstr "%s:неслагање печата са датотеком графа\n"
+
+#: gcov.c:1016
+#, c-format
+msgid "%s:unknown function '%u'\n"
+msgstr "%s:непозната функција ‘%u’\n"
+
+#: gcov.c:1029
+#, c-format
+msgid "%s:profile mismatch for '%s'\n"
+msgstr "%s:неслагање профила за ‘%s’\n"
+
+#: gcov.c:1048
+#, c-format
+msgid "%s:overflowed\n"
+msgstr "%s:преливено\n"
+
+#: gcov.c:1072
+#, c-format
+msgid "%s:'%s' lacks entry and/or exit blocks\n"
+msgstr "%s:‘%s’ нема улазине и/или излазне блокове\n"
+
+#: gcov.c:1077
+#, c-format
+msgid "%s:'%s' has arcs to entry block\n"
+msgstr "%s:‘%s’ има лукове до улазног блока\n"
+
+#: gcov.c:1085
+#, c-format
+msgid "%s:'%s' has arcs from exit block\n"
+msgstr "%s:‘%s’ има лукове из излазног блока\n"
+
+#: gcov.c:1293
+#, c-format
+msgid "%s:graph is unsolvable for '%s'\n"
+msgstr "%s:граф је нерешив за ‘%s’\n"
+
+#: gcov.c:1373
+#, c-format
+msgid "%s '%s'\n"
+msgstr "%s ‘%s’\n"
+
+#: gcov.c:1376
+#, c-format
+msgid "Lines executed:%s of %d\n"
+msgstr "Извршено линија:%s од %d\n"
+
+#: gcov.c:1380
+#, c-format
+msgid "No executable lines\n"
+msgstr "Нема извршивих линија\n"
+
+#: gcov.c:1386
+#, c-format
+msgid "Branches executed:%s of %d\n"
+msgstr "Извршених гранања:%s од %d\n"
+
+#: gcov.c:1390
+#, c-format
+msgid "Taken at least once:%s of %d\n"
+msgstr "Извршених бар једном:%s од %d\n"
+
+#: gcov.c:1396
+#, c-format
+msgid "No branches\n"
+msgstr "Нема гранања\n"
+
+#: gcov.c:1398
+#, c-format
+msgid "Calls executed:%s of %d\n"
+msgstr "Извршених позива:%s од %d\n"
+
+#: gcov.c:1402
+#, c-format
+msgid "No calls\n"
+msgstr "Нема позива\n"
+
+#: gcov.c:1543
+#, c-format
+msgid "%s:no lines for '%s'\n"
+msgstr "%s:нема линија за ‘%s’\n"
+
+#: gcov.c:1738
+#, c-format
+msgid "call %2d returned %s\n"
+msgstr "позив %2d се вратио %s\n"
+
+#: gcov.c:1743
+#, c-format
+msgid "call %2d never executed\n"
+msgstr "позив %2d никада није извршен\n"
+
+#: gcov.c:1748
+#, c-format
+msgid "branch %2d taken %s%s\n"
+msgstr "грана %2d извршена %s%s\n"
+
+#: gcov.c:1752
+#, c-format
+msgid "branch %2d never executed\n"
+msgstr "грана %2d никада није извршена\n"
+
+#: gcov.c:1757
+#, c-format
+msgid "unconditional %2d taken %s\n"
+msgstr "безусловни %2d извршен %s\n"
+
+#: gcov.c:1760
+#, c-format
+msgid "unconditional %2d never executed\n"
+msgstr "безусловни %2d никад није извршен\n"
+
+#: gcov.c:1792
+#, c-format
+msgid "%s:cannot open source file\n"
+msgstr "%s:не могу да отворим изворну датотеку\n"
+
+#: gcov.c:1802
+#, c-format
+msgid "%s:source file is newer than graph file '%s'\n"
+msgstr "%s:изворна датотека је новија од датотеке графа ‘%s’\n"
+
+#. Return if there's nothing to do, or it is too expensive.
+#: gcse.c:694
+msgid "GCSE disabled"
+msgstr "ГЦСЕ искључен"
+
+#. Return if there's nothing to do, or it is too expensive.
+#: gcse.c:6526
+msgid "jump bypassing disabled"
+msgstr "заобилажење скокова искључено"
+
+#. Opening quotation mark.
+#: intl.c:58
+msgid "`"
+msgstr "‘"
+
+#. Closing quotation mark.
+#: intl.c:61
+msgid "'"
+msgstr "’"
+
+#: ipa-inline.c:275
+msgid "--param large-function-growth limit reached"
+msgstr "--param large-function-growth ограничење достигнуто"
+
+#: ipa-inline.c:305
+msgid "--param max-inline-insns-single limit reached"
+msgstr "--param max-inline-insns-single ограничење достигнуто"
+
+#: ipa-inline.c:314
+msgid "--param max-inline-insns-auto limit reached"
+msgstr "--param max-inline-insns-auto ограничење достигнуто"
+
+#: ipa-inline.c:340 ipa-inline.c:766
+msgid "recursive inlining"
+msgstr "рекурзивно уткивање"
+
+#: ipa-inline.c:779
+msgid "call is unlikely"
+msgstr "позив није вероватан"
+
+#: ipa-inline.c:850
+msgid "--param inline-unit-growth limit reached"
+msgstr "--param inline-unit-growth ограничење достигнуто"
+
+#: langhooks.c:507
+msgid "At top level:"
+msgstr "На највишем нивоу:"
+
+#: langhooks.c:512
+#, c-format
+msgid "In member function %qs:"
+msgstr "У чланској функцији %qs:"
+
+#: langhooks.c:516
+#, c-format
+msgid "In function %qs:"
+msgstr "У функцији %qs:"
+
+#: loop-iv.c:2709 tree-ssa-loop-niter.c:1109
+msgid "assuming that the loop is not infinite"
+msgstr "под претпоставком да петља није бесконачна"
+
+#: loop-iv.c:2710 tree-ssa-loop-niter.c:1110
+msgid "cannot optimize possibly infinite loops"
+msgstr "не могу да оптимизујем могуће бесконачне петље"
+
+#: loop-iv.c:2718 tree-ssa-loop-niter.c:1114
+msgid "assuming that the loop counter does not overflow"
+msgstr "под претпоставком да се бројач петље не прелива"
+
+#: loop-iv.c:2719 tree-ssa-loop-niter.c:1115
+msgid "cannot optimize loop, the loop counter may overflow"
+msgstr "не могу да оптимизујем петљу, бројач петље се може прелити"
+
+#. What to print when a switch has no documentation.
+#: opts.c:90
+msgid "This switch lacks documentation"
+msgstr "Овом прекидачу недостаје документација"
+
+#: opts.c:1227
+#, c-format
+msgid ""
+"\n"
+"Target specific options:\n"
+msgstr ""
+"\n"
+"Опције посебне за циљ:\n"
+
+#: opts.c:1248
+msgid "The following options are language-independent:\n"
+msgstr "Следеће опције не зависе од језика:\n"
+
+#: opts.c:1255
+#, c-format
+msgid ""
+"The %s front end recognizes the following options:\n"
+"\n"
+msgstr ""
+"Прочеље %s разликује следеће опције:\n"
+"\n"
+
+#: opts.c:1268
+msgid "The --param option recognizes the following as parameters:\n"
+msgstr "Опција --param препознаје следеће параметре:\n"
+
+#: protoize.c:583
+#, c-format
+msgid "%s: error writing file '%s': %s\n"
+msgstr "%s: грешка при писању у датотеку ‘%s’: %s\n"
+
+#: protoize.c:627
+#, c-format
+msgid "%s: usage '%s [ -VqfnkN ] [ -i <istring> ] [ filename ... ]'\n"
+msgstr "%s: употреба ‘%s [ -VqfnkN ] [ -i <и-ниска> ] [ датотека ... ]’\n"
+
+#: protoize.c:630
+#, c-format
+msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
+msgstr "%s: употреба ‘%s [ -VqfnkNlgC ] [ -B <имедира> ] [ датотека ... ]’\n"
+
+#: protoize.c:731
+#, c-format
+msgid "%s: warning: no read access for file '%s'\n"
+msgstr "%s: упозорење: нема дозволе за читање датотеке ‘%s’\n"
+
+#: protoize.c:739
+#, c-format
+msgid "%s: warning: no write access for file '%s'\n"
+msgstr "%s: упозорење: нема дозволе за писање датотеке ‘%s’\n"
+
+#: protoize.c:747
+#, c-format
+msgid "%s: warning: no write access for dir containing '%s'\n"
+msgstr "%s: упозорење: нема дозволе за писање у директоријум који садржи ‘%s’\n"
+
+#. Catch cases like /.. where we try to backup to a
+#. point above the absolute root of the logical file
+#. system.
+#: protoize.c:1134
+#, c-format
+msgid "%s: invalid file name: %s\n"
+msgstr "%s: неисправно име датотеке: %s\n"
+
+#: protoize.c:1282
+#, c-format
+msgid "%s: %s: can't get status: %s\n"
+msgstr "%s: %s: не могу да добавим стање: %s\n"
+
+#: protoize.c:1303
+#, c-format
+msgid ""
+"\n"
+"%s: fatal error: aux info file corrupted at line %d\n"
+msgstr ""
+"\n"
+"%s: кобна грешка: помоћна инфотека искварена у линији %d\n"
+
+#: protoize.c:1632
+#, c-format
+msgid "%s:%d: declaration of function '%s' takes different forms\n"
+msgstr "%s:%d: декларација функције ‘%s’ има различите облике\n"
+
+#: protoize.c:1887
+#, c-format
+msgid "%s: compiling '%s'\n"
+msgstr "%s: компилујем ‘%s’\n"
+
+#: protoize.c:1910
+#, c-format
+msgid "%s: wait: %s\n"
+msgstr "%s: чекање: %s\n"
+
+#: protoize.c:1915
+#, c-format
+msgid "%s: subprocess got fatal signal %d\n"
+msgstr "%s: потпроцес је добио кобни сигнал %d\n"
+
+#: protoize.c:1923
+#, c-format
+msgid "%s: %s exited with status %d\n"
+msgstr "%s: %s изађе са статусом %d\n"
+
+#: protoize.c:1972
+#, c-format
+msgid "%s: warning: missing SYSCALLS file '%s'\n"
+msgstr "%s: упозорење: недостаје СИСКОЛС датотека ‘%s’\n"
+
+#: protoize.c:1981 protoize.c:2010
+#, c-format
+msgid "%s: can't read aux info file '%s': %s\n"
+msgstr "%s: не могу да прочитам помоћну инфотеку ‘%s’: %s\n"
+
+#: protoize.c:2026 protoize.c:2054
+#, c-format
+msgid "%s: can't get status of aux info file '%s': %s\n"
+msgstr "%s: не могу да добавим стање помоћне инфотеке ‘%s’: %s\n"
+
+#: protoize.c:2082
+#, c-format
+msgid "%s: can't open aux info file '%s' for reading: %s\n"
+msgstr "%s: не могу да отворим помоћну инфотеку ‘%s’ за читање: %s\n"
+
+#: protoize.c:2100
+#, c-format
+msgid "%s: error reading aux info file '%s': %s\n"
+msgstr "%s: грешка при читању помоћне инфотеке ‘%s’: %s\n"
+
+#: protoize.c:2113
+#, c-format
+msgid "%s: error closing aux info file '%s': %s\n"
+msgstr "%s: грешка при затварању помоћне инфотеке ‘%s’: %s\n"
+
+#: protoize.c:2129
+#, c-format
+msgid "%s: can't delete aux info file '%s': %s\n"
+msgstr "%s: не могу да обришем помоћну инфотеку ‘%s’: %s\n"
+
+#: protoize.c:2211 protoize.c:4180
+#, c-format
+msgid "%s: can't delete file '%s': %s\n"
+msgstr "%s: не могу да обришем датотеку ‘%s’: %s\n"
+
+#: protoize.c:2289
+#, c-format
+msgid "%s: warning: can't rename file '%s' to '%s': %s\n"
+msgstr "%s: упозорење: не могу да преименујем датотеку ‘%s’ у ‘%s’: %s\n"
+
+#: protoize.c:2411
+#, c-format
+msgid "%s: conflicting extern definitions of '%s'\n"
+msgstr "%s: сукобљене спољашње дефиниције за ‘%s’\n"
+
+#: protoize.c:2415
+#, c-format
+msgid "%s: declarations of '%s' will not be converted\n"
+msgstr "%s: декларације од ‘%s’ неће бити претворене\n"
+
+#: protoize.c:2417
+#, c-format
+msgid "%s: conflict list for '%s' follows:\n"
+msgstr "%s: листа сукоба за ‘%s’ следи:\n"
+
+#: protoize.c:2450
+#, c-format
+msgid "%s: warning: using formals list from %s(%d) for function '%s'\n"
+msgstr "%s: упозорење: користим формалну листу из %s(%d) за функцију ‘%s’\n"
+
+#: protoize.c:2490
+#, c-format
+msgid "%s: %d: '%s' used but missing from SYSCALLS\n"
+msgstr "%s: %d: ‘%s’ се користи али недостаје у СИСКОЛСу\n"
+
+#: protoize.c:2496
+#, c-format
+msgid "%s: %d: warning: no extern definition for '%s'\n"
+msgstr "%s: %d: упозорење: нема спољашње дефиниције за ‘%s’\n"
+
+#: protoize.c:2526
+#, c-format
+msgid "%s: warning: no static definition for '%s' in file '%s'\n"
+msgstr "%s: упозорење: нема статичке дефиниције за ‘%s’ у датотеци ‘%s’\n"
+
+#: protoize.c:2532
+#, c-format
+msgid "%s: multiple static defs of '%s' in file '%s'\n"
+msgstr "%s: више статичких дефиниција за ‘%s’ у датотеци ‘%s’\n"
+
+#: protoize.c:2702 protoize.c:2705
+#, c-format
+msgid "%s: %d: warning: source too confusing\n"
+msgstr "%s: %d: упозорење: извор је превише збуњујући\n"
+
+#: protoize.c:2900
+#, c-format
+msgid "%s: %d: warning: varargs function declaration not converted\n"
+msgstr "%s: %d: упозорење: декларација варарг функције није претворена\n"
+
+#: protoize.c:2915
+#, c-format
+msgid "%s: declaration of function '%s' not converted\n"
+msgstr "%s: декларација функције ‘%s’ није претворена\n"
+
+#: protoize.c:3038
+#, c-format
+msgid "%s: warning: too many parameter lists in declaration of '%s'\n"
+msgstr "%s: упозорење: превише параметарских листа у декларацији ‘%s’\n"
+
+#: protoize.c:3059
+#, c-format
+msgid ""
+"\n"
+"%s: warning: too few parameter lists in declaration of '%s'\n"
+msgstr ""
+"\n"
+"%s: упозорење: премало параметарских листа у декларацији ‘%s’\n"
+
+#: protoize.c:3155
+#, c-format
+msgid "%s: %d: warning: found '%s' but expected '%s'\n"
+msgstr "%s: %d: упозорење: нађох ‘%s’ а очекивах ‘%s’\n"
+
+#: protoize.c:3330
+#, c-format
+msgid "%s: local declaration for function '%s' not inserted\n"
+msgstr "%s: локална декларација за функцију ‘%s’ није уметнута\n"
+
+#: protoize.c:3357
+#, c-format
+msgid ""
+"\n"
+"%s: %d: warning: can't add declaration of '%s' into macro call\n"
+msgstr ""
+"\n"
+"%s: %d: упозорење: не могу да додам декларацију ‘%s’ у позив макроа\n"
+
+#: protoize.c:3429
+#, c-format
+msgid "%s: global declarations for file '%s' not inserted\n"
+msgstr "%s: глобалне декларације за датотеку ‘%s’ нису уметнуте\n"
+
+#: protoize.c:3518 protoize.c:3548
+#, c-format
+msgid "%s: definition of function '%s' not converted\n"
+msgstr "%s: дефиниција функције ‘%s’ није претворена\n"
+
+#: protoize.c:3537
+#, c-format
+msgid "%s: %d: warning: definition of %s not converted\n"
+msgstr "%s: %d: упозорење: дефиниција за %s није претворена\n"
+
+#: protoize.c:3863
+#, c-format
+msgid "%s: found definition of '%s' at %s(%d)\n"
+msgstr "%s: нађох дефиницију за ‘%s’ код %s(%d)\n"
+
+#. If we make it here, then we did not know about this
+#. function definition.
+#: protoize.c:3879
+#, c-format
+msgid "%s: %d: warning: '%s' excluded by preprocessing\n"
+msgstr "%s: %d: упозорење: ‘%s’ искључено предобрадом\n"
+
+#: protoize.c:3882
+#, c-format
+msgid "%s: function definition not converted\n"
+msgstr "%s: дефиниција функције није претворена\n"
+
+#: protoize.c:3940
+#, c-format
+msgid "%s: '%s' not converted\n"
+msgstr "%s: ‘%s’ није претворено\n"
+
+#: protoize.c:3948
+#, c-format
+msgid "%s: would convert file '%s'\n"
+msgstr "%s: претворио би датотеку ‘%s’\n"
+
+#: protoize.c:3951
+#, c-format
+msgid "%s: converting file '%s'\n"
+msgstr "%s: претварам датотеку ‘%s’\n"
+
+#: protoize.c:3961
+#, c-format
+msgid "%s: can't get status for file '%s': %s\n"
+msgstr "%s: не могу да добавим стање датотеке ‘%s’: %s\n"
+
+#: protoize.c:4003
+#, c-format
+msgid "%s: can't open file '%s' for reading: %s\n"
+msgstr "%s: не могу да отворим датотеку ‘%s’ за читање: %s\n"
+
+#: protoize.c:4018
+#, c-format
+msgid ""
+"\n"
+"%s: error reading input file '%s': %s\n"
+msgstr ""
+"\n"
+"%s: грешка при читању улазне датотеке ‘%s’: %s\n"
+
+#: protoize.c:4052
+#, c-format
+msgid "%s: can't create/open clean file '%s': %s\n"
+msgstr "%s: не могу да направим/отворим чисту датотеку ‘%s’: %s\n"
+
+#: protoize.c:4157
+#, c-format
+msgid "%s: warning: file '%s' already saved in '%s'\n"
+msgstr "%s: упозорење: датотека ‘%s’ је већ сачувана у ‘%s’\n"
+
+#: protoize.c:4165
+#, c-format
+msgid "%s: can't link file '%s' to '%s': %s\n"
+msgstr "%s: не могу да повежем датотеку ‘%s’ са ‘%s’: %s\n"
+
+#: protoize.c:4195
+#, c-format
+msgid "%s: can't create/open output file '%s': %s\n"
+msgstr "%s: не могу да направим/отворим улазну датотеку ‘%s’: %s\n"
+
+#: protoize.c:4228
+#, c-format
+msgid "%s: can't change mode of file '%s': %s\n"
+msgstr "%s: не могу да променим режим датотеке ‘%s’: %s\n"
+
+#: protoize.c:4404
+#, c-format
+msgid "%s: cannot get working directory: %s\n"
+msgstr "%s: не могу да добавим радни директоријум: %s\n"
+
+#: protoize.c:4502
+#, c-format
+msgid "%s: input file names must have .c suffixes: %s\n"
+msgstr "%s: улазне датотеке морају имати наставке .c: %s\n"
+
+#: reload.c:3738
+msgid "unable to generate reloads for:"
+msgstr "не могу да створим поновљена учитавања за:"
+
+#: reload1.c:1901
+msgid "this is the insn:"
+msgstr "ово је ија:"
+
+#. It's the compiler's fault.
+#: reload1.c:5103
+msgid "could not find a spill register"
+msgstr "нисам могао да нађем регистар просипања"
+
+#. It's the compiler's fault.
+#: reload1.c:6737
+msgid "VOIDmode on an output"
+msgstr "VOIDmode на излазу"
+
+#: reload1.c:7710
+msgid "Failure trying to reload:"
+msgstr "Неуспех при покушају поновљеног учитавања:"
+
+#: rtl-error.c:128
+msgid "unrecognizable insn:"
+msgstr "непрепознатљива ија:"
+
+#: rtl-error.c:130
+msgid "insn does not satisfy its constraints:"
+msgstr "ија не задовољава своја ограничења:"
+
+#: timevar.c:412
+msgid ""
+"\n"
+"Execution times (seconds)\n"
+msgstr ""
+"\n"
+"Времена извршавања (секунде)\n"
+
+#. Print total time.
+#: timevar.c:470
+msgid " TOTAL :"
+msgstr " УКУПНО :"
+
+#: timevar.c:499
+#, c-format
+msgid "time in %s: %ld.%06ld (%ld%%)\n"
+msgstr "време у %s: %ld.%06ld (%ld%%)\n"
+
+#: tlink.c:384
+#, c-format
+msgid "collect: reading %s\n"
+msgstr "collect: читам %s\n"
+
+#: tlink.c:478
+#, c-format
+msgid "removing .rpo file"
+msgstr "уклањам .rpo датотеку"
+
+#: tlink.c:480
+#, c-format
+msgid "renaming .rpo file"
+msgstr "преименујем .rpo датотеку"
+
+#: tlink.c:534
+#, c-format
+msgid "collect: recompiling %s\n"
+msgstr "collect: поново компилујем %s\n"
+
+#: tlink.c:714
+#, c-format
+msgid "collect: tweaking %s in %s\n"
+msgstr "collect: штелујем %s у %s\n"
+
+#: tlink.c:764
+#, c-format
+msgid "collect: relinking\n"
+msgstr "collect: поново повезујем\n"
+
+#: toplev.c:583
+#, c-format
+msgid "unrecoverable error"
+msgstr "неповратна грешка"
+
+#: toplev.c:1115
+#, c-format
+msgid ""
+"%s%s%s version %s (%s)\n"
+"%s\tcompiled by GNU C version %s.\n"
+msgstr ""
+"%s%s%s верзија %s (%s)\n"
+"%s\tкомпиловано Гнуовим Ц-ом верзија %s.\n"
+
+#: toplev.c:1117
+#, c-format
+msgid "%s%s%s version %s (%s) compiled by CC.\n"
+msgstr "%s%s%s верзија %s (%s) компиловано ЦЦом.\n"
+
+#: toplev.c:1121
+#, c-format
+msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+msgstr "%s%sГГЦова хеуристика: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+
+#: toplev.c:1183
+msgid "options passed: "
+msgstr "прослеђене опције: "
+
+#: toplev.c:1212
+msgid "options enabled: "
+msgstr "укључене опције: "
+
+#: toplev.c:1331
+#, c-format
+msgid "created and used with differing settings of '%s'"
+msgstr "направљено и употребљено са различитим поставкама за ‘%s’"
+
+#: toplev.c:1333
+msgid "out of memory"
+msgstr "нема меморије"
+
+#: toplev.c:1348
+msgid "created and used with different settings of -fpic"
+msgstr "направљено и употребљено са различитим поставкама за -fpic"
+
+#: toplev.c:1350
+msgid "created and used with different settings of -fpie"
+msgstr "направљено и употребљено са различитим поставкама за -fpie"
+
+#: tree-inline.c:2026
+msgid "originally indirect function call not considered for inlining"
+msgstr "изворно посредан позив функције се не разматра за уткивање"
+
+#.
+#. Local variables:
+#. mode:c
+#. End:
+#.
+#: diagnostic.def:1
+msgid "fatal error: "
+msgstr "кобна грешка: "
+
+#: diagnostic.def:2
+msgid "internal compiler error: "
+msgstr "унутрашња грешка компилатора: "
+
+#: diagnostic.def:3
+msgid "error: "
+msgstr "грешка: "
+
+#: diagnostic.def:4
+msgid "sorry, unimplemented: "
+msgstr "извините, није имплементирано: "
+
+#: diagnostic.def:5
+msgid "warning: "
+msgstr "упозорење: "
+
+#: diagnostic.def:6
+msgid "anachronism: "
+msgstr "анахронизам: "
+
+#: diagnostic.def:7
+msgid "note: "
+msgstr "напомена: "
+
+#: diagnostic.def:8
+msgid "debug: "
+msgstr "исправљање: "
+
+#: params.def:48
+msgid "The maximum number of fields in a structure variable without direct structure accesses that GCC will attempt to track separately"
+msgstr "Највећи број поља у структурној променљивој без непосредног приступа структури које ће ГЦЦ покушати да прати одвојено"
+
+#: params.def:57
+msgid "The maximum structure size (in bytes) for which GCC will use by-element copies"
+msgstr "Највећа величина струкутре (у бајтовима) за које ће ГЦЦ користити копије по елементу"
+
+#: params.def:66
+msgid "The maximum number of structure fields for which GCC will use by-element copies"
+msgstr "Највећи број поља структуре за које ће ГЦЦ користити копије по елементу"
+
+#: params.def:78
+msgid "The threshold ratio between instantiated fields and the total structure size"
+msgstr "Праг односа између изведених поља и укупне величине структуре"
+
+#: params.def:95
+msgid "The maximum number of instructions in a single function eligible for inlining"
+msgstr "Највећи број инструкција у једној функцији подесној за уткивање"
+
+#: params.def:107
+msgid "The maximum number of instructions when automatically inlining"
+msgstr "Највећи број инструкција при аутоматском уткивању"
+
+#: params.def:112
+msgid "The maximum number of instructions inline function can grow to via recursive inlining"
+msgstr "Највећи број инструкција до којег уткана функција може нарасти путем рекурзивног уткивања"
+
+#: params.def:117
+msgid "The maximum number of instructions non-inline function can grow to via recursive inlining"
+msgstr "Највећи број инструкција до којег неуткана функција може нарасти путем рекурзивног уткивања"
+
+#: params.def:122
+msgid "The maximum depth of recursive inlining for inline functions"
+msgstr "Највећа дубина рекурзивног уткивања за уткане функције"
+
+#: params.def:127
+msgid "The maximum depth of recursive inlining for non-inline functions"
+msgstr "Највећа дубина рекурзивног уткивања за неуткане функције"
+
+#: params.def:132
+msgid "Inline recursively only when the probability of call being executed exceeds the parameter"
+msgstr "Уткивај рекурзивно само када вероватноћа извршавања позива премашује параметар"
+
+#: params.def:139
+msgid "If -fvariable-expansion-in-unroller is used, the maximum number of times that an individual variable will be expanded during loop unrolling"
+msgstr "Ако се користи -fvariable-expansion-in-unroller, највећи број пута који ће поједина променљива бити раширена током одмотавања петље"
+
+#: params.def:150
+msgid "The maximum number of instructions to consider to fill a delay slot"
+msgstr "Највећи број инструкција за разматрање при попуњавању жлеба застоја"
+
+#: params.def:161
+msgid "The maximum number of instructions to consider to find accurate live register information"
+msgstr "Највећи број инструкција за разматрање при тражењу прецизних података о живим регистрима"
+
+#: params.def:171
+msgid "The maximum length of scheduling's pending operations list"
+msgstr "Највећа дужина листе наступајућих операција у распоређивању"
+
+#: params.def:176
+msgid "The size of function body to be considered large"
+msgstr "Величина тела функције која се сматра великом"
+
+#: params.def:180
+msgid "Maximal growth due to inlining of large function (in percent)"
+msgstr "Највећи раст услед уткивања велике функције (у процентима)"
+
+#: params.def:184
+msgid "The size of translation unit to be considered large"
+msgstr "Величина преводилачке јединице која се сматра великом"
+
+#: params.def:188
+msgid "how much can given compilation unit grow because of the inlining (in percent)"
+msgstr "колико дата јединица компиловања може расти услед уткивања (у процентима)"
+
+#: params.def:192
+msgid "expense of call operation relative to ordinary arithmetic operations"
+msgstr "трошак операције позива у односу на обичне аритметичке операције"
+
+#: params.def:199
+msgid "The maximum amount of memory to be allocated by GCSE"
+msgstr "Највећа количина меморије коју ГЦСЕ може да резервише"
+
+#: params.def:204
+msgid "The maximum number of passes to make when doing GCSE"
+msgstr "Највећи број пролаза при извршавању ГЦСЕа"
+
+#: params.def:214
+msgid "The threshold ratio for performing partial redundancy elimination after reload"
+msgstr "Праг односа за делимичну елиминацију редунданси после поновљеног учитавања"
+
+#: params.def:221
+msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload"
+msgstr "Праг односа броја извршавања критичних потега који дозвољава делимичну елиминацију редунданси после поновљеног учитавања"
+
+#: params.def:232
+msgid "The maximum number of instructions to consider to unroll in a loop"
+msgstr "Највећи број инструкција за разматрање при одмотавању петље"
+
+#: params.def:238
+msgid "The maximum number of instructions to consider to unroll in a loop on average"
+msgstr "Највећи број инструкција за разматрање при одмотавању петље, у просеку"
+
+#: params.def:243
+msgid "The maximum number of unrollings of a single loop"
+msgstr "Највећи број одмотавања једне петље"
+
+#: params.def:248
+msgid "The maximum number of insns of a peeled loop"
+msgstr "Највећи број ија сљушћене петље"
+
+#: params.def:253
+msgid "The maximum number of peelings of a single loop"
+msgstr "Највећи број љушћења једне петље"
+
+#: params.def:258
+msgid "The maximum number of insns of a completely peeled loop"
+msgstr "Највећи број ија потпуно сљушћене петље"
+
+#: params.def:263
+msgid "The maximum number of peelings of a single loop that is peeled completely"
+msgstr "Највећи број љушћења једне петље која се потпуно љушти"
+
+#: params.def:268
+msgid "The maximum number of insns of a peeled loop that rolls only once"
+msgstr "Највећи број ија сљушћене петље која се замотава само једном"
+
+#: params.def:274
+msgid "The maximum number of insns of an unswitched loop"
+msgstr "Највећи број ија непребачене петље"
+
+#: params.def:279
+msgid "The maximum number of unswitchings in a single loop"
+msgstr "Највећи број непребацивања у једној петљи"
+
+#: params.def:286
+msgid "Bound on the number of iterations the brute force # of iterations analysis algorithm evaluates"
+msgstr "Граница броја итерација које срачунава алгоритам за анализу броја итерација сировом силом"
+
+#: params.def:291
+msgid "Maximum number of loops to perform swing modulo scheduling on (mainly for debugging)"
+msgstr "Највећи број петљи над којима треба извршити окретно модуло-распоређивање (углавном за исправљање)"
+
+#: params.def:297
+msgid "A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop"
+msgstr "Фактор за штеловање горње границе коју окретни модуло-распоређивач користи за распоређивање петље"
+
+#: params.def:301
+msgid "The number of cycles the swing modulo scheduler considers when checking conflicts using DFA"
+msgstr "Број циклуса које окретни модуло-распоређивач разматра при провери сукоба ДФАом"
+
+#: params.def:305
+msgid "A threshold on the average loop count considered by the swing modulo scheduler"
+msgstr "Праг за просечан број петљи који окретни модуло-распоређивач разматра"
+
+#: params.def:310
+msgid "Select fraction of the maximal count of repetitions of basic block in program given basic block needs to have to be considered hot"
+msgstr "Део највећег броја понављања основног блока у програму које дати основни блок мора да има да би био сматран врућим"
+
+#: params.def:314
+msgid "Select fraction of the maximal frequency of executions of basic block in function given basic block needs to have to be considered hot"
+msgstr "Део највеће учестаности извршавања основног блока у функцији које дати основни блок мора да има да би био сматран врућим"
+
+#: params.def:330
+msgid "The maximum number of loop iterations we predict statically"
+msgstr "Највећи број итерација петље које предвиђамо статички"
+
+#: params.def:334
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available"
+msgstr "Проценат функције, одмерен учестаношћу извршавања, који мора бити покривен формирањем трага. Користи се кад је доступан одзивни профил"
+
+#: params.def:338
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available"
+msgstr "Проценат функције, одмерен учестаношћу извршавања, који мора бити покривен формирањем трага. Користи се кад није доступан одзивни профил"
+
+#: params.def:342
+msgid "Maximal code growth caused by tail duplication (in percent)"
+msgstr "Највећи раст кôда услед умножавања репа (у процентима)"
+
+#: params.def:346
+msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percent)"
+msgstr "Заустави повратни раст ако је повратна вероватноћа најбољег потега мања од овог прага (у процентима)"
+
+#: params.def:350
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is available"
+msgstr "Заустави чеони раст ако је вероватноћа најбољег потега мања од овог прага (у процентима). Користи се када је доступан одзивни профил"
+
+#: params.def:354
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is not available"
+msgstr "Заустави чеони раст ако је вероватноћа најбољег потега мања од овог прага (у процентима). Користи се када није доступан одзивни профил"
+
+#: params.def:360
+msgid "The maximum number of incoming edges to consider for crossjumping"
+msgstr "Највећи број долазећих потега за разматрање унакрсног скакања"
+
+#: params.def:366
+msgid "The minimum number of matching instructions to consider for crossjumping"
+msgstr "Најмањи број поклапајућих инструкција за разматрање унакрсног скакања"
+
+#: params.def:372
+msgid "The maximum expansion factor when copying basic blocks"
+msgstr "Највећи фактор ширења при копирању основних блокова"
+
+#: params.def:378
+msgid "The maximum number of insns to duplicate when unfactoring computed gotos"
+msgstr "Највећи број ија за умножавање при дефакторисању рачунске goto"
+
+#: params.def:384
+msgid "The maximum length of path considered in cse"
+msgstr "Највећа дужина путање које се разматра у ЦСЕу"
+
+#: params.def:388
+msgid "The maximum instructions CSE process before flushing"
+msgstr "Највише инструкција у процесу ЦСЕа пре испирања"
+
+#: params.def:395
+msgid "The minimum cost of an expensive expression in the loop invariant motion"
+msgstr "Најмања цена скупог израза у кретању инваријанте петље"
+
+#: params.def:404
+msgid "Bound on number of candidates below that all candidates are considered in iv optimizations"
+msgstr "Граница броја кандидата испод које се сви кандидати разматрају у нп. оптимизацијама"
+
+#: params.def:412
+msgid "Bound on number of iv uses in loop optimized in iv optimizations"
+msgstr "Граница броја употреба нп. у нп. оптимизацији петљи"
+
+#: params.def:420
+msgid "If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization"
+msgstr "Ако је број кандидата у скупу мањи, увек покушавамо да уклонимо неискоришћене нп. током оптимизације"
+
+#: params.def:425
+msgid "Bound on size of expressions used in the scalar evolutions analyzer"
+msgstr "Граница величине израза који се користе у анализатору скаларних еволуција"
+
+#: params.def:430
+msgid "Bound on number of runtime checks inserted by the vectorizer's loop versioning"
+msgstr "Граница броја провера током извршавања које умеће векторизаторово верзионисање петљи"
+
+#: params.def:437
+msgid "Given N calls and V call-clobbered vars in a function. Use .GLOBAL_VAR if NxV is larger than this limit"
+msgstr "За датих N позива и V позивом продрманих променљивих у функцији, користи .GLOBAL_VAR ако је NxV веће од овог ограничења"
+
+#: params.def:442
+msgid "The maximum memory locations recorded by cselib"
+msgstr "Највећи број меморијских локација које снима cselib"
+
+#: params.def:446
+msgid "The maximum memory locations recorded by flow"
+msgstr "Највећи број меморијских локација које снима flow"
+
+#: params.def:459
+msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap"
+msgstr "Најмање ширење хрпе које окида сакупљање смећа, као проценат укупне величине хрпе"
+
+#: params.def:464
+msgid "Minimum heap size before we start collecting garbage, in kilobytes"
+msgstr "Најмања величина хрпе пре покретања сакупљања смећа, у килобајтима"
+
+#: params.def:472
+msgid "The maximum number of instructions to search backward when looking for equivalent reload"
+msgstr "Највећи број инструкција које треба претражити уназад када се тражи еквивалентно поновљено учитавање"
+
+#: params.def:477
+msgid "The maximum number of virtual operands allowed to represent aliases before triggering alias grouping"
+msgstr "Највећи број виртуелних операнада дозвољен за представљање алијаса пре окидања груписања алијаса"
+
+#: params.def:482
+msgid "The maximum number of blocks in a region to be considered for interblock scheduling"
+msgstr "Највећи број блокова у области која се разматра за мећублоковско распоређивање"
+
+#: params.def:487
+msgid "The maximum number of insns in a region to be considered for interblock scheduling"
+msgstr "Највећи број ија у области која се разматра за мећублоковско распоређивање"
+
+#: params.def:492
+msgid "The minimum probability of reaching a source block for interblock speculative scheduling"
+msgstr "Најмања вероватноћа достизања изворног блока за међублоковско спекулативно распоређивање"
+
+#: params.def:497
+msgid "The maximum number of RTL nodes that can be recorded as combiner's last value"
+msgstr "Највећи број РТЛ чворова који се може снимити као последња вредност комбинатора"
+
+#: params.def:505
+msgid "The upper bound for sharing integer constants"
+msgstr "Горња граница за дељење целобројних константи"
+
+#: params.def:524
+msgid "Minimum number of virtual mappings to consider switching to full virtual renames"
+msgstr "Најмањи број виртуелних мапирања за разматрање пребацивања на пуна виртуална преименовања"
+
+#: params.def:529
+msgid "Ratio between virtual mappings and virtual symbols to do full virtual renames"
+msgstr "Однос између виртуелних мапирања и виртуелних симбола да би се радила пуна виртуелна преименовања"
+
+#: params.def:534
+msgid "The lower bound for a buffer to be considered for stack smashing protection"
+msgstr "Доња граница за бафер да би се размотрила заштита разбијања стека"
+
+#: params.def:552
+msgid "Maximum number of statements allowed in a block that needs to be duplicated when threading jumps"
+msgstr "Највећи број наредби дозвољен у блоку којем је потребно умножавање при уплитању скокова"
+
+#: params.def:561
+msgid "Maximum number of fields in a structure before pointer analysis treats the structure as a single variable"
+msgstr "Највећи број поља у структури пре него што анализа показивача сматра структуру као једну променљиву"
+
+#: config/alpha/alpha.c:5087
+#, c-format
+msgid "invalid %%H value"
+msgstr "неисправна %%H вредност"
+
+#: config/alpha/alpha.c:5108 config/bfin/bfin.c:1191
+#, c-format
+msgid "invalid %%J value"
+msgstr "неисправна %%J вредност"
+
+#: config/alpha/alpha.c:5138 config/ia64/ia64.c:4603
+#, c-format
+msgid "invalid %%r value"
+msgstr "неисправна %%r вредност"
+
+#: config/alpha/alpha.c:5148 config/rs6000/rs6000.c:10433
+#: config/xtensa/xtensa.c:1691
+#, c-format
+msgid "invalid %%R value"
+msgstr "неисправна %%R вредност"
+
+#: config/alpha/alpha.c:5154 config/rs6000/rs6000.c:10352
+#: config/xtensa/xtensa.c:1658
+#, c-format
+msgid "invalid %%N value"
+msgstr "неисправна %%N вредност"
+
+#: config/alpha/alpha.c:5162 config/rs6000/rs6000.c:10380
+#, c-format
+msgid "invalid %%P value"
+msgstr "неисправна %%P вредност"
+
+#: config/alpha/alpha.c:5170
+#, c-format
+msgid "invalid %%h value"
+msgstr "неисправна %%h вредност"
+
+#: config/alpha/alpha.c:5178 config/xtensa/xtensa.c:1684
+#, c-format
+msgid "invalid %%L value"
+msgstr "неисправна %%L вредност"
+
+#: config/alpha/alpha.c:5217 config/rs6000/rs6000.c:10334
+#, c-format
+msgid "invalid %%m value"
+msgstr "неисправна %%m вредност"
+
+#: config/alpha/alpha.c:5225 config/rs6000/rs6000.c:10342
+#, c-format
+msgid "invalid %%M value"
+msgstr "неисправна %%M вредност"
+
+#: config/alpha/alpha.c:5269
+#, c-format
+msgid "invalid %%U value"
+msgstr "неисправна %%U вредност"
+
+#: config/alpha/alpha.c:5281 config/alpha/alpha.c:5295
+#: config/rs6000/rs6000.c:10441
+#, c-format
+msgid "invalid %%s value"
+msgstr "неисправна %%s вредност"
+
+#: config/alpha/alpha.c:5318
+#, c-format
+msgid "invalid %%C value"
+msgstr "неисправна %%C вредност"
+
+#: config/alpha/alpha.c:5355 config/rs6000/rs6000.c:10173
+#: config/rs6000/rs6000.c:10191
+#, c-format
+msgid "invalid %%E value"
+msgstr "неисправна %%E вредност"
+
+#: config/alpha/alpha.c:5380 config/alpha/alpha.c:5428
+#, c-format
+msgid "unknown relocation unspec"
+msgstr "непознато unspec релокације"
+
+#: config/alpha/alpha.c:5389 config/crx/crx.c:1082
+#: config/rs6000/rs6000.c:10755
+#, c-format
+msgid "invalid %%xn code"
+msgstr "неисправан %%xn кôд"
+
+#: config/arc/arc.c:1726 config/m32r/m32r.c:1805
+#, c-format
+msgid "invalid operand to %%R code"
+msgstr "неисправан операнд за %%R кôд"
+
+#: config/arc/arc.c:1758 config/m32r/m32r.c:1828
+#, c-format
+msgid "invalid operand to %%H/%%L code"
+msgstr "неисправан операнд за %%H/%%L кôд"
+
+#: config/arc/arc.c:1780 config/m32r/m32r.c:1899
+#, c-format
+msgid "invalid operand to %%U code"
+msgstr "неисправан операнд за %%U кôд"
+
+#: config/arc/arc.c:1791
+#, c-format
+msgid "invalid operand to %%V code"
+msgstr "неисправан операнд за %%V кôд"
+
+#. Unknown flag.
+#. Undocumented flag.
+#: config/arc/arc.c:1798 config/m32r/m32r.c:1926 config/sparc/sparc.c:6818
+#, c-format
+msgid "invalid operand output code"
+msgstr "неисправан кôд излаза операнада"
+
+#: config/arm/arm.c:10913 config/arm/arm.c:10931
+#, c-format
+msgid "predicated Thumb instruction"
+msgstr "предикатна инструкција Тамба"
+
+#: config/arm/arm.c:10919
+#, c-format
+msgid "predicated instruction in conditional sequence"
+msgstr "предикатна инструкција у условном низу"
+
+#: config/arm/arm.c:11027 config/arm/arm.c:11037 config/arm/arm.c:11047
+#: config/arm/arm.c:11073 config/arm/arm.c:11091 config/arm/arm.c:11126
+#: config/arm/arm.c:11145 config/arm/arm.c:11160 config/arm/arm.c:11186
+#: config/arm/arm.c:11193 config/arm/arm.c:11200
+#, c-format
+msgid "invalid operand for code '%c'"
+msgstr "неисправан операнд за кôд ‘%c’"
+
+#: config/arm/arm.c:11086
+#, c-format
+msgid "instruction never exectued"
+msgstr "инструкција се никад не извршава"
+
+#: config/arm/arm.c:11211
+#, c-format
+msgid "missing operand"
+msgstr "недостаје операнд"
+
+#: config/avr/avr.c:1116
+msgid "bad address, not (reg+disp):"
+msgstr "лоша адреса, није (reg+disp):"
+
+#: config/avr/avr.c:1123
+msgid "bad address, not post_inc or pre_dec:"
+msgstr "лоша адреса, није post_inc или pre_dec:"
+
+#: config/avr/avr.c:1134
+msgid "internal compiler error. Bad address:"
+msgstr "унутрашња грешка компилатора. Лоша адреса:"
+
+#: config/avr/avr.c:1147
+msgid "internal compiler error. Unknown mode:"
+msgstr "унутрашња грешка компилатора. Непознат режим:"
+
+#: config/avr/avr.c:1770 config/avr/avr.c:2453
+msgid "invalid insn:"
+msgstr "неисправна ија:"
+
+#: config/avr/avr.c:1804 config/avr/avr.c:1890 config/avr/avr.c:1939
+#: config/avr/avr.c:1967 config/avr/avr.c:2062 config/avr/avr.c:2231
+#: config/avr/avr.c:2487 config/avr/avr.c:2599
+msgid "incorrect insn:"
+msgstr "нетачна ија:"
+
+#: config/avr/avr.c:1986 config/avr/avr.c:2147 config/avr/avr.c:2302
+#: config/avr/avr.c:2665
+msgid "unknown move insn:"
+msgstr "непозната ија премештања:"
+
+#: config/avr/avr.c:2895
+msgid "bad shift insn:"
+msgstr "лоша ија помака:"
+
+#: config/avr/avr.c:3011 config/avr/avr.c:3459 config/avr/avr.c:3845
+msgid "internal compiler error. Incorrect shift:"
+msgstr "унутрашња грешка компилатора. Нетачан помак:"
+
+#: config/bfin/bfin.c:1153
+#, c-format
+msgid "invalid %%j value"
+msgstr "неисправна %%j вредност"
+
+#: config/bfin/bfin.c:1270
+#, c-format
+msgid "invalid const_double operand"
+msgstr "неисправан const_double операнд"
+
+#: config/c4x/c4x.c:1584
+msgid "using CONST_DOUBLE for address"
+msgstr "користи се CONST_DOUBLE за адресу"
+
+#: config/c4x/c4x.c:1722
+msgid "c4x_address_cost: Invalid addressing mode"
+msgstr "c4x_address_cost: Неисправан адресни режим"
+
+#: config/c4x/c4x.c:1857
+#, c-format
+msgid "c4x_print_operand: %%L inconsistency"
+msgstr "c4x_print_operand: %%L несагласност"
+
+#: config/c4x/c4x.c:1863
+#, c-format
+msgid "c4x_print_operand: %%N inconsistency"
+msgstr "c4x_print_operand: %%N несагласност"
+
+#: config/c4x/c4x.c:1904
+#, c-format
+msgid "c4x_print_operand: %%O inconsistency"
+msgstr "c4x_print_operand: %%O несагласност"
+
+#: config/c4x/c4x.c:1999
+msgid "c4x_print_operand: Bad operand case"
+msgstr "c4x_print_operand: Лош облик операнда"
+
+#: config/c4x/c4x.c:2040
+msgid "c4x_print_operand_address: Bad post_modify"
+msgstr "c4x_print_operand_address: Лош post_modify"
+
+#: config/c4x/c4x.c:2062
+msgid "c4x_print_operand_address: Bad pre_modify"
+msgstr "c4x_print_operand_address: Лош pre_modify"
+
+#: config/c4x/c4x.c:2110 config/c4x/c4x.c:2122 config/c4x/c4x.c:2137
+msgid "c4x_print_operand_address: Bad operand case"
+msgstr "c4x_print_operand_address: Лош облик операнда"
+
+#: config/c4x/c4x.c:2388
+msgid "c4x_rptb_insert: Cannot find start label"
+msgstr "c4x_rptb_insert: Не могу да нађем почетну етикету"
+
+#: config/c4x/c4x.c:2990
+msgid "invalid indirect memory address"
+msgstr "неисправна посредна меморијска адреса"
+
+#: config/c4x/c4x.c:3079
+msgid "invalid indirect (S) memory address"
+msgstr "неисправна посредна (S) меморијска адреса"
+
+#: config/c4x/c4x.c:3414
+msgid "c4x_valid_operands: Internal error"
+msgstr "c4x_valid_operands: Унутрашња грешка"
+
+#: config/c4x/c4x.c:3853
+msgid "c4x_operand_subword: invalid mode"
+msgstr "c4x_operand_subword: неисправан режим"
+
+#: config/c4x/c4x.c:3856
+msgid "c4x_operand_subword: invalid operand"
+msgstr "c4x_operand_subword: неисправан операнд"
+
+#. We could handle these with some difficulty.
+#. e.g., *p-- => *(p-=2); *(p+1).
+#: config/c4x/c4x.c:3882
+msgid "c4x_operand_subword: invalid autoincrement"
+msgstr "c4x_operand_subword: неисправно самоувећање"
+
+#: config/c4x/c4x.c:3888
+msgid "c4x_operand_subword: invalid address"
+msgstr "c4x_operand_subword: неисправна адреса"
+
+#: config/c4x/c4x.c:3899
+msgid "c4x_operand_subword: address not offsettable"
+msgstr "c4x_operand_subword: адреси се не може дати помак"
+
+#: config/c4x/c4x.c:4101
+msgid "c4x_rptb_rpts_p: Repeat block top label moved"
+msgstr "c4x_rptb_rpts_p: Померена горња етикета блока понављања"
+
+#. Use `%s' to print the string in case there are any escape
+#. characters in the message.
+#: config/cris/cris.c:492 fortran/dump-parse-tree.c:84
+#: fortran/dump-parse-tree.c:416 fortran/dump-parse-tree.c:747 c-typeck.c:4350
+#: c-typeck.c:4365 c-typeck.c:4380 final.c:2833 final.c:2835 gcc.c:4664
+#: loop-iv.c:2711 loop-iv.c:2720 rtl-error.c:113 toplev.c:587
+#: tree-ssa-loop-niter.c:1120 cp/parser.c:1972 cp/typeck.c:4291
+#: java/expr.c:406
+#, gcc-internal-format
+msgid "%s"
+msgstr "%s"
+
+#: config/cris/cris.c:544
+msgid "unexpected index-type in cris_print_index"
+msgstr "неочекиван тип индекса у cris_print_index"
+
+#: config/cris/cris.c:558
+msgid "unexpected base-type in cris_print_base"
+msgstr "неочекиван основни тип у cris_print_base"
+
+#: config/cris/cris.c:674
+msgid "invalid operand for 'b' modifier"
+msgstr "неисправан операнд за модификатор ‘b’"
+
+#: config/cris/cris.c:691
+msgid "invalid operand for 'o' modifier"
+msgstr "неисправан операнд за модификатор ‘o’"
+
+#: config/cris/cris.c:710
+msgid "invalid operand for 'O' modifier"
+msgstr "неисправан операнд за модификатор ‘O’"
+
+#: config/cris/cris.c:743
+msgid "invalid operand for 'p' modifier"
+msgstr "неисправан операнд за модификатор ‘p’"
+
+#: config/cris/cris.c:782
+msgid "invalid operand for 'z' modifier"
+msgstr "неисправан операнд за модификатор ‘z’"
+
+#: config/cris/cris.c:836 config/cris/cris.c:866
+msgid "invalid operand for 'H' modifier"
+msgstr "неисправан операнд за модификатор ‘H;’"
+
+#: config/cris/cris.c:842
+msgid "bad register"
+msgstr "лош регистар"
+
+#: config/cris/cris.c:887
+msgid "invalid operand for 'e' modifier"
+msgstr "неисправан операнд за модификатор ‘e’"
+
+#: config/cris/cris.c:904
+msgid "invalid operand for 'm' modifier"
+msgstr "неисправан операнд за модификатор ‘m’"
+
+#: config/cris/cris.c:929
+msgid "invalid operand for 'A' modifier"
+msgstr "неисправан операнд за модификатор ‘A’"
+
+#: config/cris/cris.c:952
+msgid "invalid operand for 'D' modifier"
+msgstr "неисправан операнд за модификатор ‘D’"
+
+#: config/cris/cris.c:966
+msgid "invalid operand for 'T' modifier"
+msgstr "неисправан операнд за модификатор ‘T’"
+
+#: config/cris/cris.c:975
+msgid "invalid operand modifier letter"
+msgstr "неисправно слово модификатора операнда"
+
+#: config/cris/cris.c:1032
+msgid "unexpected multiplicative operand"
+msgstr "неочекиван множећи операнд"
+
+#: config/cris/cris.c:1052
+msgid "unexpected operand"
+msgstr "неочекиван операнд"
+
+#: config/cris/cris.c:1085 config/cris/cris.c:1095
+msgid "unrecognized address"
+msgstr "непрепозната адреса"
+
+#: config/cris/cris.c:2021
+msgid "unrecognized supposed constant"
+msgstr "непрепозната претпостављена константа"
+
+#: config/cris/cris.c:2396 config/cris/cris.c:2460
+msgid "unexpected side-effects in address"
+msgstr "неочекивани споредни ефекти у адреси"
+
+#. Can't possibly get a GOT-needing-fixup for a function-call,
+#. right?
+#: config/cris/cris.c:3254
+msgid "Unidentifiable call op"
+msgstr "Неидентификован оп. позива"
+
+#: config/cris/cris.c:3305
+#, c-format
+msgid "PIC register isn't set up"
+msgstr "ПИЦ регистар није постављен"
+
+#: config/fr30/fr30.c:464
+#, c-format
+msgid "fr30_print_operand_address: unhandled address"
+msgstr "fr30_print_operand_address: необрађена адреса"
+
+#: config/fr30/fr30.c:488
+#, c-format
+msgid "fr30_print_operand: unrecognized %%p code"
+msgstr "fr30_print_operand: непрепознат %%p кôд"
+
+#: config/fr30/fr30.c:508
+#, c-format
+msgid "fr30_print_operand: unrecognized %%b code"
+msgstr "fr30_print_operand: непрепознат %%b кôд"
+
+#: config/fr30/fr30.c:529
+#, c-format
+msgid "fr30_print_operand: unrecognized %%B code"
+msgstr "fr30_print_operand: непрепознат %%B кôд"
+
+#: config/fr30/fr30.c:537
+#, c-format
+msgid "fr30_print_operand: invalid operand to %%A code"
+msgstr "fr30_print_operand: неисправан операнд за %%A кôд"
+
+#: config/fr30/fr30.c:554
+#, c-format
+msgid "fr30_print_operand: invalid %%x code"
+msgstr "fr30_print_operand: неисправан %%x кôд"
+
+#: config/fr30/fr30.c:561
+#, c-format
+msgid "fr30_print_operand: invalid %%F code"
+msgstr "fr30_print_operand: неисправан %%F кôд"
+
+#: config/fr30/fr30.c:578
+#, c-format
+msgid "fr30_print_operand: unknown code"
+msgstr "fr30_print_operand: непознат кôд"
+
+#: config/fr30/fr30.c:606 config/fr30/fr30.c:615 config/fr30/fr30.c:626
+#: config/fr30/fr30.c:639
+#, c-format
+msgid "fr30_print_operand: unhandled MEM"
+msgstr "fr30_print_operand: необрађен MEM"
+
+#: config/frv/frv.c:2541
+msgid "bad insn to frv_print_operand_address:"
+msgstr "лоша ија за frv_print_operand_address:"
+
+#: config/frv/frv.c:2552
+msgid "bad register to frv_print_operand_memory_reference_reg:"
+msgstr "лош регистар за frv_print_operand_memory_reference_reg:"
+
+#: config/frv/frv.c:2591 config/frv/frv.c:2601 config/frv/frv.c:2610
+#: config/frv/frv.c:2631 config/frv/frv.c:2636
+msgid "bad insn to frv_print_operand_memory_reference:"
+msgstr "лоша ија за frv_print_operand_memory_reference:"
+
+#: config/frv/frv.c:2722
+#, c-format
+msgid "bad condition code"
+msgstr "лош условни кôд"
+
+#: config/frv/frv.c:2797
+msgid "bad insn in frv_print_operand, bad const_double"
+msgstr "лоша ија у frv_print_operand, лош const_double"
+
+#: config/frv/frv.c:2858
+msgid "bad insn to frv_print_operand, 'e' modifier:"
+msgstr "лоша ија за frv_print_operand, модификатор ‘e’:"
+
+#: config/frv/frv.c:2866
+msgid "bad insn to frv_print_operand, 'F' modifier:"
+msgstr "лоша ија за frv_print_operand, модификатор ‘F’:"
+
+#: config/frv/frv.c:2882
+msgid "bad insn to frv_print_operand, 'f' modifier:"
+msgstr "лоша ија за frv_print_operand, модификатор ‘f’:"
+
+#: config/frv/frv.c:2896
+msgid "bad insn to frv_print_operand, 'g' modifier:"
+msgstr "лоша ија за frv_print_operand, модификатор ‘g’:"
+
+#: config/frv/frv.c:2944
+msgid "bad insn to frv_print_operand, 'L' modifier:"
+msgstr "лоша ија за frv_print_operand, модификатор ‘L’:"
+
+#: config/frv/frv.c:2957
+msgid "bad insn to frv_print_operand, 'M/N' modifier:"
+msgstr "лоша ија за frv_print_operand, модификатор ‘M/N’:"
+
+#: config/frv/frv.c:2978
+msgid "bad insn to frv_print_operand, 'O' modifier:"
+msgstr "лоша ија за frv_print_operand, модификатор ‘O’:"
+
+#: config/frv/frv.c:2996
+msgid "bad insn to frv_print_operand, P modifier:"
+msgstr "лоша ија за frv_print_operand, модификатор ‘P’:"
+
+#: config/frv/frv.c:3016
+msgid "bad insn in frv_print_operand, z case"
+msgstr "лоша ија у frv_print_operand, случај z"
+
+#: config/frv/frv.c:3047
+msgid "bad insn in frv_print_operand, 0 case"
+msgstr "лоша ија у frv_print_operand, случај 0"
+
+#: config/frv/frv.c:3052
+msgid "frv_print_operand: unknown code"
+msgstr "frv_print_operand: непознат кôд"
+
+#: config/frv/frv.c:4421
+msgid "bad output_move_single operand"
+msgstr "лош операнд output_move_single"
+
+#: config/frv/frv.c:4548
+msgid "bad output_move_double operand"
+msgstr "лош операнд output_move_double"
+
+#: config/frv/frv.c:4690
+msgid "bad output_condmove_single operand"
+msgstr "лош операнд output_condmove_single"
+
+#. This macro is a C statement to print on `stderr' a string describing the
+#. particular machine description choice. Every machine description should
+#. define `TARGET_VERSION'. For example:
+#.
+#. #ifdef MOTOROLA
+#. #define TARGET_VERSION fprintf (stderr, " (68k, Motorola syntax)");
+#. #else
+#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
+#. #endif
+#: config/frv/frv.h:329
+#, c-format
+msgid " (frv)"
+msgstr " (frv)"
+
+#: config/i386/i386.c:6712
+#, c-format
+msgid "invalid UNSPEC as operand"
+msgstr "неисправан УНСПЕЦ као операнд"
+
+#: config/i386/i386.c:7294
+#, c-format
+msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
+msgstr "операнд није ни константа ни условни кôд, неисправан кôд аргумента ‘c’"
+
+#: config/i386/i386.c:7347
+#, c-format
+msgid "invalid operand code '%c'"
+msgstr "неисправан кôд операнда ‘%c;’"
+
+#: config/i386/i386.c:7390
+#, c-format
+msgid "invalid constraints for operand"
+msgstr "неисправна ограничења за операнд"
+
+#: config/i386/i386.c:12984
+msgid "unknown insn mode"
+msgstr "непознат режим ије"
+
+#. If the environment variable DJDIR is not defined, then DJGPP is not installed correctly and GCC will quickly become confused with the default prefix settings. Report the problem now so the user doesn't receive deceptive "file not found" error messages later.
+#. DJDIR is automatically defined by the DJGPP environment config file pointed to by the environment variable DJGPP. Examine DJGPP to try and figure out what's wrong.
+#: config/i386/xm-djgpp.h:62
+#, c-format
+msgid "environment variable DJGPP not defined"
+msgstr "променљива окружења DJGPP није дефинисана"
+
+#: config/i386/xm-djgpp.h:64
+#, c-format
+msgid "environment variable DJGPP points to missing file '%s'"
+msgstr "променљива окружења DJGPP указује на недостајућу датотеку ‘%s’"
+
+#: config/i386/xm-djgpp.h:67
+#, c-format
+msgid "environment variable DJGPP points to corrupt file '%s'"
+msgstr "променљива окружења DJGPP указује на искварену датотеку ‘%s’"
+
+#: config/ia64/ia64.c:4653
+#, c-format
+msgid "ia64_print_operand: unknown code"
+msgstr "ia64_print_operand: непознат кôд"
+
+#: config/ia64/ia64.c:9013
+msgid "invalid conversion from %<__fpreg%>"
+msgstr "неисправно претварање из %<__fpreg%>"
+
+#: config/ia64/ia64.c:9016
+msgid "invalid conversion to %<__fpreg%>"
+msgstr "неисправно претварање у %<__fpreg%>"
+
+#: config/ia64/ia64.c:9029 config/ia64/ia64.c:9040
+msgid "invalid operation on %<__fpreg%>"
+msgstr "неисправна операција на %<__fpreg%>"
+
+#: config/iq2000/iq2000.c:3125
+#, c-format
+msgid "invalid %%P operand"
+msgstr "неисправан %%P операнд"
+
+#: config/iq2000/iq2000.c:3133 config/rs6000/rs6000.c:10370
+#, c-format
+msgid "invalid %%p value"
+msgstr "неисправна %%p вредност"
+
+#: config/iq2000/iq2000.c:3189 config/mips/mips.c:5535
+#, c-format
+msgid "invalid use of %%d, %%x, or %%X"
+msgstr "неисправна употреба %%d, %%x, или %%X"
+
+#: config/m32r/m32r.c:1775
+#, c-format
+msgid "invalid operand to %%s code"
+msgstr "неисправан операнд за %%s кôд"
+
+#: config/m32r/m32r.c:1782
+#, c-format
+msgid "invalid operand to %%p code"
+msgstr "неисправан операнд за %%p кôд"
+
+#: config/m32r/m32r.c:1837
+msgid "bad insn for 'A'"
+msgstr "лоша ија за ‘A’"
+
+#: config/m32r/m32r.c:1884
+#, c-format
+msgid "invalid operand to %%T/%%B code"
+msgstr "неисправан операнд за %%T/%%B кôд"
+
+#: config/m32r/m32r.c:1907
+#, c-format
+msgid "invalid operand to %%N code"
+msgstr "неисправан операнд за %%N кôд"
+
+#: config/m32r/m32r.c:1940
+msgid "pre-increment address is not a register"
+msgstr "адреса предувећања није регистар"
+
+#: config/m32r/m32r.c:1947
+msgid "pre-decrement address is not a register"
+msgstr "адреса предумањења није регистар"
+
+#: config/m32r/m32r.c:1954
+msgid "post-increment address is not a register"
+msgstr "адреса постувећања није регистар"
+
+#: config/m32r/m32r.c:2030 config/m32r/m32r.c:2044
+#: config/rs6000/rs6000.c:17606
+msgid "bad address"
+msgstr "лоша адреса"
+
+#: config/m32r/m32r.c:2049
+msgid "lo_sum not of register"
+msgstr "lo_sum није од регистра"
+
+#. !!!! SCz wrong here.
+#: config/m68hc11/m68hc11.c:3189 config/m68hc11/m68hc11.c:3567
+msgid "move insn not handled"
+msgstr "ија премештања није обрађена"
+
+#: config/m68hc11/m68hc11.c:3413 config/m68hc11/m68hc11.c:3497
+#: config/m68hc11/m68hc11.c:3770
+msgid "invalid register in the move instruction"
+msgstr "неисправан регистар у инструкцији премештања"
+
+#: config/m68hc11/m68hc11.c:3447
+msgid "invalid operand in the instruction"
+msgstr "неисправан операнд у инструкцији"
+
+#: config/m68hc11/m68hc11.c:3744
+msgid "invalid register in the instruction"
+msgstr "неисправан регистар у инструкцији"
+
+#: config/m68hc11/m68hc11.c:3777
+msgid "operand 1 must be a hard register"
+msgstr "операнд 1 мора бити чврсти регистар"
+
+#: config/m68hc11/m68hc11.c:3791
+msgid "invalid rotate insn"
+msgstr "неисправна ија ротације"
+
+#: config/m68hc11/m68hc11.c:4215
+msgid "registers IX, IY and Z used in the same INSN"
+msgstr "регистри IX, IY и Z употребљени у истој ији"
+
+#: config/m68hc11/m68hc11.c:4552 config/m68hc11/m68hc11.c:4852
+msgid "cannot do z-register replacement"
+msgstr "не могу да обавим замену регистра Z"
+
+#: config/m68hc11/m68hc11.c:4915
+msgid "invalid Z register replacement for insn"
+msgstr "неисправна замена регистра Z за ију"
+
+#: config/mips/mips.c:5203
+msgid "mips_debugger_offset called with non stack/frame/arg pointer"
+msgstr "mips_debugger_offset позван без показивача на стек/оквир/арг"
+
+#: config/mips/mips.c:5413
+#, c-format
+msgid "PRINT_OPERAND, invalid insn for %%C"
+msgstr "PRINT_OPERAND, неисправна ија за %%C"
+
+#: config/mips/mips.c:5430
+#, c-format
+msgid "PRINT_OPERAND, invalid insn for %%N"
+msgstr "PRINT_OPERAND, неисправна ија за %%N"
+
+#: config/mips/mips.c:5439
+#, c-format
+msgid "PRINT_OPERAND, invalid insn for %%F"
+msgstr "PRINT_OPERAND, неисправна ија за %%F"
+
+#: config/mips/mips.c:5448
+#, c-format
+msgid "PRINT_OPERAND, invalid insn for %%W"
+msgstr "PRINT_OPERAND, неисправна ија за %%W"
+
+#: config/mips/mips.c:5469
+#, c-format
+msgid "invalid %%Y value"
+msgstr "неисправна %%Y вредност"
+
+#: config/mips/mips.c:5486 config/mips/mips.c:5494
+#, c-format
+msgid "PRINT_OPERAND, invalid insn for %%q"
+msgstr "PRINT_OPERAND, неисправна ија за %%q"
+
+#: config/mips/mips.c:5563
+msgid "PRINT_OPERAND, invalid operand for relocation"
+msgstr "PRINT_OPERAND, неисправан операнд за релокацију"
+
+#: config/mmix/mmix.c:1468 config/mmix/mmix.c:1598
+msgid "MMIX Internal: Expected a CONST_INT, not this"
+msgstr "MMIX унутрашње: Очекиван је CONST_INT, не ово"
+
+#: config/mmix/mmix.c:1547
+msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
+msgstr "MMIX унутрашње: Лоша вредност за ‘m’, није CONST_INT"
+
+#: config/mmix/mmix.c:1566
+msgid "MMIX Internal: Expected a register, not this"
+msgstr "MMIX унутрашње: Очекиван је регистар, не ово"
+
+#: config/mmix/mmix.c:1576
+msgid "MMIX Internal: Expected a constant, not this"
+msgstr "MMIX унутрашње: Очекивана је константа, не ово"
+
+#. We need the original here.
+#: config/mmix/mmix.c:1660
+msgid "MMIX Internal: Cannot decode this operand"
+msgstr "MMIX унутрашње: Не могу да декодирам овај операнд"
+
+#: config/mmix/mmix.c:1717
+msgid "MMIX Internal: This is not a recognized address"
+msgstr "MMIX унутрашње: Ово није препозната адреса"
+
+#: config/mmix/mmix.c:2650
+msgid "MMIX Internal: Trying to output invalidly reversed condition:"
+msgstr "MMIX унутрашње: Покушавам да испишем неисправно обрнут услов:"
+
+#: config/mmix/mmix.c:2657
+msgid "MMIX Internal: What's the CC of this?"
+msgstr "MMIX унутрашње: Шта је CC за ово?"
+
+#: config/mmix/mmix.c:2661
+msgid "MMIX Internal: What is the CC of this?"
+msgstr "MMIX унутрашње: Шта је CC за ово?"
+
+#: config/mmix/mmix.c:2725
+msgid "MMIX Internal: This is not a constant:"
+msgstr "MMIX унутрашње: Ово није константа:"
+
+#: config/mt/mt.c:298
+msgid "mt_final_prescan_insn, invalid insn #1"
+msgstr "mt_final_prescan_insn, неисправна ија #1"
+
+#: config/mt/mt.c:369
+msgid "PRINT_OPERAND_ADDRESS, 2 regs"
+msgstr "PRINT_OPERAND_ADDRESS, 2 регистра"
+
+#: config/mt/mt.c:393
+msgid "PRINT_OPERAND_ADDRESS, invalid insn #1"
+msgstr "PRINT_OPERAND_ADDRESS, неисправна ија #1"
+
+#: config/rs6000/host-darwin.c:87
+#, c-format
+msgid "Out of stack space.\n"
+msgstr "Нема места на стеку.\n"
+
+#: config/rs6000/host-darwin.c:108
+#, c-format
+msgid "Try running '%s' in the shell to raise its limit.\n"
+msgstr "Покушајте да покренете ‘%s’ у шкољци да повећате ограничење.\n"
+
+#: config/rs6000/rs6000.c:10200
+#, c-format
+msgid "invalid %%f value"
+msgstr "неисправна %%f вредност"
+
+#: config/rs6000/rs6000.c:10209
+#, c-format
+msgid "invalid %%F value"
+msgstr "неисправна %%F вредност"
+
+#: config/rs6000/rs6000.c:10218
+#, c-format
+msgid "invalid %%G value"
+msgstr "неисправна %%G вредност"
+
+#: config/rs6000/rs6000.c:10253
+#, c-format
+msgid "invalid %%j code"
+msgstr "неисправан %%j кôд"
+
+#: config/rs6000/rs6000.c:10263
+#, c-format
+msgid "invalid %%J code"
+msgstr "неисправан %%J кôд"
+
+#: config/rs6000/rs6000.c:10273
+#, c-format
+msgid "invalid %%k value"
+msgstr "неисправна %%k вредност"
+
+#: config/rs6000/rs6000.c:10293 config/xtensa/xtensa.c:1677
+#, c-format
+msgid "invalid %%K value"
+msgstr "неисправна %%K вредност"
+
+#: config/rs6000/rs6000.c:10360
+#, c-format
+msgid "invalid %%O value"
+msgstr "неисправна %%O вредност"
+
+#: config/rs6000/rs6000.c:10407
+#, c-format
+msgid "invalid %%q value"
+msgstr "неисправна %%q вредност"
+
+#: config/rs6000/rs6000.c:10451
+#, c-format
+msgid "invalid %%S value"
+msgstr "неисправна %%S вредност"
+
+#: config/rs6000/rs6000.c:10491
+#, c-format
+msgid "invalid %%T value"
+msgstr "неисправна %%T вредност"
+
+#: config/rs6000/rs6000.c:10501
+#, c-format
+msgid "invalid %%u value"
+msgstr "неисправна %%u вредност"
+
+#: config/rs6000/rs6000.c:10510 config/xtensa/xtensa.c:1647
+#, c-format
+msgid "invalid %%v value"
+msgstr "неисправна %%v вредност"
+
+#: config/rs6000/rs6000.c:19123
+msgid "AltiVec argument passed to unprototyped function"
+msgstr "алтивек аргумент прослеђен непрототипизираној функцији"
+
+#: config/s390/s390.c:4490
+#, c-format
+msgid "cannot decompose address"
+msgstr "не могу да разложим адресу"
+
+#: config/s390/s390.c:4700
+msgid "UNKNOWN in print_operand !?"
+msgstr "НЕПОЗНАТА у print_operand !?"
+
+#: config/sh/sh.c:746
+#, c-format
+msgid "invalid operand to %%R"
+msgstr "неисправан операнд за %%R"
+
+#: config/sh/sh.c:773
+#, c-format
+msgid "invalid operand to %%S"
+msgstr "неисправан операнд за %%S"
+
+#: config/sh/sh.c:7679
+msgid "created and used with different architectures / ABIs"
+msgstr "направљено и употребљено на различитим архитектурама / АБИјима"
+
+#: config/sh/sh.c:7681
+msgid "created and used with different ABIs"
+msgstr "направљено и употребљено са различитим АБИјима"
+
+#: config/sh/sh.c:7683
+msgid "created and used with different endianness"
+msgstr "направљено и употребељно са различитом крајношћу"
+
+#: config/sparc/sparc.c:6626 config/sparc/sparc.c:6632
+#, c-format
+msgid "invalid %%Y operand"
+msgstr "неисправан %%Y операнд"
+
+#: config/sparc/sparc.c:6702
+#, c-format
+msgid "invalid %%A operand"
+msgstr "неисправан %%A операнд"
+
+#: config/sparc/sparc.c:6712
+#, c-format
+msgid "invalid %%B operand"
+msgstr "неисправан %%B операнд"
+
+#: config/sparc/sparc.c:6751
+#, c-format
+msgid "invalid %%c operand"
+msgstr "неисправан %%c операнд"
+
+#: config/sparc/sparc.c:6752
+#, c-format
+msgid "invalid %%C operand"
+msgstr "неисправан %%C операнд"
+
+#: config/sparc/sparc.c:6773
+#, c-format
+msgid "invalid %%d operand"
+msgstr "неисправан %%d операнд"
+
+#: config/sparc/sparc.c:6774
+#, c-format
+msgid "invalid %%D operand"
+msgstr "неисправан %%D операнд"
+
+#: config/sparc/sparc.c:6790
+#, c-format
+msgid "invalid %%f operand"
+msgstr "неисправан %%f операнд"
+
+#: config/sparc/sparc.c:6804
+#, c-format
+msgid "invalid %%s operand"
+msgstr "неисправан %%s операнд"
+
+#: config/sparc/sparc.c:6858
+#, c-format
+msgid "long long constant not a valid immediate operand"
+msgstr "long long константа није прихватљив непосредни операнд"
+
+#: config/sparc/sparc.c:6861
+#, c-format
+msgid "floating point constant not a valid immediate operand"
+msgstr "реална константа није прихватљив непосредни операнд"
+
+#: config/stormy16/stormy16.c:1764 config/stormy16/stormy16.c:1835
+#, c-format
+msgid "'B' operand is not constant"
+msgstr "‘B’ операнд није константа"
+
+#: config/stormy16/stormy16.c:1791
+#, c-format
+msgid "'B' operand has multiple bits set"
+msgstr "‘B’ операнд има више постављених битова"
+
+#: config/stormy16/stormy16.c:1817
+#, c-format
+msgid "'o' operand is not constant"
+msgstr "‘o’ операнд није константа"
+
+#: config/stormy16/stormy16.c:1849
+#, c-format
+msgid "xstormy16_print_operand: unknown code"
+msgstr "xstormy16_print_operand: непознат кôд"
+
+#: config/v850/v850.c:360
+msgid "const_double_split got a bad insn:"
+msgstr "const_double_split доби лошу ију:"
+
+#: config/v850/v850.c:924
+msgid "output_move_single:"
+msgstr "output_move_single:"
+
+#: config/xtensa/xtensa.c:748 config/xtensa/xtensa.c:780
+#: config/xtensa/xtensa.c:789
+msgid "bad test"
+msgstr "лоша проба"
+
+#: config/xtensa/xtensa.c:1635
+#, c-format
+msgid "invalid %%D value"
+msgstr "неисправна %%D вредност"
+
+#: config/xtensa/xtensa.c:1672
+msgid "invalid mask"
+msgstr "неисправна маска"
+
+#: config/xtensa/xtensa.c:1698
+#, c-format
+msgid "invalid %%x value"
+msgstr "неисправна %%x вредност"
+
+#: config/xtensa/xtensa.c:1705
+#, c-format
+msgid "invalid %%d value"
+msgstr "неисправна %%d вредност"
+
+#: config/xtensa/xtensa.c:1726 config/xtensa/xtensa.c:1736
+#, c-format
+msgid "invalid %%t/%%b value"
+msgstr "неисправна %%t/%%b вредност"
+
+#: config/xtensa/xtensa.c:1778
+msgid "invalid address"
+msgstr "неисправна адреса"
+
+#: config/xtensa/xtensa.c:1803
+msgid "no register in address"
+msgstr "нема регистара у адреси"
+
+#: config/xtensa/xtensa.c:1811
+msgid "address offset not a constant"
+msgstr "помак адресе није константа"
+
+#: cp/call.c:2441
+msgid "candidates are:"
+msgstr "кандидати су:"
+
+#: cp/call.c:6213
+msgid "candidate 1:"
+msgstr "кандидат 1:"
+
+#: cp/call.c:6214
+msgid "candidate 2:"
+msgstr "кандидат 2:"
+
+#: cp/decl2.c:695
+msgid "candidates are: %+#D"
+msgstr "кандидати су: %+#D"
+
+#: cp/decl2.c:697
+msgid "candidate is: %+#D"
+msgstr "кандидат је: %+#D"
+
+#: cp/g++spec.c:238 java/jvspec.c:417
+#, c-format
+msgid "argument to '%s' missing\n"
+msgstr "аргумент за ‘%s’ недостаје\n"
+
+#: fortran/arith.c:141
+msgid "Arithmetic OK at %L"
+msgstr "Аритметичко OK код %L"
+
+#: fortran/arith.c:144
+msgid "Arithmetic overflow at %L"
+msgstr "Аритметичко преливање код %L"
+
+#: fortran/arith.c:147
+msgid "Arithmetic underflow at %L"
+msgstr "Аритметичко подливање код %L"
+
+#: fortran/arith.c:150
+msgid "Arithmetic NaN at %L"
+msgstr "Аритметичко НаН код %L"
+
+#: fortran/arith.c:153
+msgid "Division by zero at %L"
+msgstr "Дељење нулом код %L"
+
+#: fortran/arith.c:156
+msgid "Array operands are incommensurate at %L"
+msgstr "Низовни операнди су несамерљиви код %L"
+
+#: fortran/arith.c:160
+msgid "Integer outside symmetric range implied by Standard Fortran at %L"
+msgstr "Цео број ван симетричног опсега имплицираног стандардним фортраном код %L"
+
+#: fortran/arith.c:1384
+msgid "Elemental binary operation"
+msgstr "Елементална бинарна операција"
+
+#: fortran/arith.c:1920
+#, no-c-format
+msgid "Arithmetic OK converting %s to %s at %L"
+msgstr "Аритметичко OK при претварању %s у %s код %L"
+
+#: fortran/arith.c:1924
+#, no-c-format
+msgid "Arithmetic overflow converting %s to %s at %L"
+msgstr "Аритметичко преливање при претварању %s у %s код %L"
+
+#: fortran/arith.c:1928
+#, no-c-format
+msgid "Arithmetic underflow converting %s to %s at %L"
+msgstr "Аритметичко подливање при претварању %s у %s код %L"
+
+#: fortran/arith.c:1932
+#, no-c-format
+msgid "Arithmetic NaN converting %s to %s at %L"
+msgstr "Аритметичко НаН при претварању %s у %s код %L"
+
+#: fortran/arith.c:1936
+#, no-c-format
+msgid "Division by zero converting %s to %s at %L"
+msgstr "Дељење нулом при претварању %s у %s код %L"
+
+#: fortran/arith.c:1940
+#, no-c-format
+msgid "Array operands are incommensurate converting %s to %s at %L"
+msgstr "Низовни операнди су несамерљиви при претварању %s у %s код %L"
+
+#: fortran/arith.c:1944
+#, no-c-format
+msgid "Integer outside symmetric range implied by Standard Fortran converting %s to %s at %L"
+msgstr "Цео број ван симетричног опсега имплицираног стандардним фортраном при претварању %s у %s код %L"
+
+#: fortran/arith.c:2277 fortran/arith.c:2312 fortran/arith.c:2349
+#: fortran/arith.c:2399
+#, no-c-format
+msgid "The Hollerith constant at %L is too long to convert to %s"
+msgstr "Холеритова константа код %L је предугачка за претварање у %s"
+
+#: fortran/arith.c:2445
+#, no-c-format
+msgid "Enumerator exceeds the C integer type at %C"
+msgstr "Набрајач премашује Ц-ов целобројни тип код %C"
+
+#: fortran/array.c:97
+#, no-c-format
+msgid "Expected array subscript at %C"
+msgstr "Очекиван је индекс низа код %C"
+
+#: fortran/array.c:124
+#, no-c-format
+msgid "Expected array subscript stride at %C"
+msgstr "Очекиван је корак индекса низа код %C"
+
+#: fortran/array.c:167
+#, no-c-format
+msgid "Invalid form of array reference at %C"
+msgstr "Неисправан облик упућивача низа код %C"
+
+#: fortran/array.c:172
+#, no-c-format
+msgid "Array reference at %C cannot have more than %d dimensions"
+msgstr "Упућивач низа код %C не може имати више од %d димензија"
+
+#: fortran/array.c:224
+#, no-c-format
+msgid "Variable '%s' at %L in this context must be constant"
+msgstr "Променљива ‘%s’ код %L мора бити константна у овом контексту"
+
+#: fortran/array.c:300
+#, no-c-format
+msgid "Expected expression in array specification at %C"
+msgstr "Очекиван је израз у одредници низа код %C"
+
+#: fortran/array.c:379
+#, no-c-format
+msgid "Bad array specification for an explicitly shaped array at %C"
+msgstr "Лоша одредница за низ експлицитног облика код %C"
+
+#: fortran/array.c:390
+#, no-c-format
+msgid "Bad array specification for assumed shape array at %C"
+msgstr "Лоша одредница за низ претпостављеног облика код %C"
+
+#: fortran/array.c:403
+#, no-c-format
+msgid "Bad specification for deferred shape array at %C"
+msgstr "Лоша одредница за низ одложеног облика код %C"
+
+#: fortran/array.c:407
+#, no-c-format
+msgid "Bad specification for assumed size array at %C"
+msgstr "Лоша одредница за низ претпостављене величине код %C"
+
+#: fortran/array.c:416
+#, no-c-format
+msgid "Expected another dimension in array declaration at %C"
+msgstr "Очекивана је друга димензија у декларацији низа код %C"
+
+#: fortran/array.c:422
+#, no-c-format
+msgid "Array specification at %C has more than %d dimensions"
+msgstr "Одредница низа код %C има више од %d димензија"
+
+#: fortran/array.c:627
+#, no-c-format
+msgid "duplicated initializer"
+msgstr "двоструки успостављач"
+
+#: fortran/array.c:720
+#, no-c-format
+msgid "DO-iterator '%s' at %L is inside iterator of the same name"
+msgstr "DO-итератор ‘%s’ код %L је унутар истоименог итератора"
+
+#: fortran/array.c:822 fortran/array.c:931
+#, no-c-format
+msgid "Syntax error in array constructor at %C"
+msgstr "Синтаксна грешка у конструктору низа код %C"
+
+#: fortran/array.c:877
+#, no-c-format
+msgid "New in Fortran 2003: [...] style array constructors at %C"
+msgstr "Ново у фортрану 2003: [...] конструктори низа код %C"
+
+#: fortran/array.c:891
+#, no-c-format
+msgid "Empty array constructor at %C is not allowed"
+msgstr "Празан конструктор низа код %C није дозвољен"
+
+#: fortran/array.c:976
+#, no-c-format
+msgid "Element in %s array constructor at %L is %s"
+msgstr "Елемент у конструктору низа %s код %L је %s"
+
+#: fortran/array.c:1305
+#, no-c-format
+msgid "Iterator step at %L cannot be zero"
+msgstr "Корак итератора код %L не може бити нула"
+
+#: fortran/check.c:44
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be %s"
+msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити %s"
+
+#: fortran/check.c:60
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be a numeric type"
+msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити бројевног типа"
+
+#: fortran/check.c:75 fortran/check.c:684 fortran/check.c:694
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER or REAL"
+msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити целобројан или реалан"
+
+#: fortran/check.c:92
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be REAL or COMPLEX"
+msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити реалан или комплексан"
+
+#: fortran/check.c:118
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be a constant"
+msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити константа"
+
+#: fortran/check.c:126
+#, no-c-format
+msgid "Invalid kind for %s at %L"
+msgstr "Неисправна врста за %s код %L"
+
+#: fortran/check.c:146
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be double precision"
+msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити двоструке тачности"
+
+#: fortran/check.c:163
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be a logical array"
+msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити логички низ"
+
+#: fortran/check.c:180
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be an array"
+msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити низ"
+
+#: fortran/check.c:195
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be a scalar"
+msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити скалар"
+
+#: fortran/check.c:210
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be the same type and kind as '%s'"
+msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити истог типа и врсте као ‘%s’"
+
+#: fortran/check.c:225
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be of rank %d"
+msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити ранга %d"
+
+#: fortran/check.c:239
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must not be OPTIONAL"
+msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L не сме бити опциони"
+
+#: fortran/check.c:259
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be of kind %d"
+msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити врсте %d"
+
+#: fortran/check.c:280
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L cannot be INTENT(IN)"
+msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L не може бити намере-у"
+
+#: fortran/check.c:286
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be a variable"
+msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити променљива"
+
+#: fortran/check.c:303
+#, no-c-format
+msgid "Missing DIM parameter in intrinsic '%s' at %L"
+msgstr "Недостаје параметар DIM у сопственом ‘%s’ код %L"
+
+#: fortran/check.c:371
+#, no-c-format
+msgid "'dim' argument of '%s' intrinsic at %L is not a valid dimension index"
+msgstr "Аргумент ‘dim’ за сопствено ‘%s’ код %L није исправан димензиони индекс"
+
+#: fortran/check.c:456
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be ALLOCATABLE"
+msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити резервљив"
+
+#: fortran/check.c:477 fortran/check.c:3178
+#, no-c-format
+msgid "'%s' and '%s' arguments of '%s' intrinsic at %L must have the same type"
+msgstr "Аргументи ‘%s’ и ‘%s’ сопственог ‘%s’ код %L морају бити истог типа"
+
+#: fortran/check.c:486 fortran/check.c:974 fortran/check.c:1109
+#: fortran/check.c:1172 fortran/check.c:1397
+#, no-c-format
+msgid "Extension: Different type kinds at %L"
+msgstr "Проширење: Различите врсте типова код %L"
+
+#: fortran/check.c:511 fortran/check.c:1732
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be a POINTER"
+msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити показивач"
+
+#: fortran/check.c:523
+#, no-c-format
+msgid "NULL pointer at %L is not permitted as actual argument of '%s' intrinsic function"
+msgstr "Нулти показивач код %L није дозвољен као стварни аргумент сопствене функције ‘%s’"
+
+#: fortran/check.c:538
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be a POINTER or a TARGET"
+msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити показивач или циљ"
+
+#: fortran/check.c:554
+#, no-c-format
+msgid "Array section with a vector subscript at %L shall not be the target of a pointer"
+msgstr "Одељак низа са векторским индексом код %L неће бити циљ показивача"
+
+#: fortran/check.c:664 fortran/check.c:766
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must not be present if 'x' is COMPLEX"
+msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L не сме бити присутан ако је ‘x’ комплексно"
+
+#: fortran/check.c:815 fortran/check.c:1477 fortran/check.c:1485
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be numeric or LOGICAL"
+msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити бројеван или логички"
+
+#: fortran/check.c:829
+#, no-c-format
+msgid "different shape for arguments '%s' and '%s' at %L for intrinsic 'dot_product'"
+msgstr "различити облици аргумената ‘%s’ и ‘%s’ код %L за сопствено ‘dot_product’"
+
+#: fortran/check.c:1079
+#, no-c-format
+msgid "Argument of %s at %L must be of length one"
+msgstr "Аргумент за %s код %L мора бити дужине један"
+
+#: fortran/check.c:1131
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be the same kind as '%s'"
+msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити исте врсте као ‘%s’"
+
+#: fortran/check.c:1246
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be a non-derived type"
+msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити неизведени тип"
+
+#: fortran/check.c:1369
+#, no-c-format
+msgid "Intrinsic '%s' at %L must have at least two arguments"
+msgstr "Сопствено ‘%s’ код %L мора имати бар два аргумента"
+
+#: fortran/check.c:1403
+#, no-c-format
+msgid "'a%d' argument of '%s' intrinsic at %L must be %s(%d)"
+msgstr "Аргумент ‘a%d’ сопственог ‘%s’ код %L мора бити %s(%d)"
+
+#: fortran/check.c:1428
+#, no-c-format
+msgid "'a1' argument of '%s' intrinsic at %L must be INTEGER or REAL"
+msgstr "Аргумент ‘a1’ сопственог ‘%s’ код %L мора бити целобројан или реалан"
+
+#: fortran/check.c:1499
+#, no-c-format
+msgid "different shape on dimension 1 for arguments '%s' and '%s' at %L for intrinsic matmul"
+msgstr "различити облици по димензији 1 аргумената ‘%s’ и ‘%s’ код %L за сопствено ’matmul’"
+
+#: fortran/check.c:1519
+#, no-c-format
+msgid "different shape on dimension 2 for argument '%s' and dimension 1 for argument '%s' at %L for intrinsic matmul"
+msgstr "различити облици по димензији 2 аргумента ‘%s’ и димензији 1 аргумента ‘%s’ код %L за сопствено ’matmul’"
+
+#: fortran/check.c:1528
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be of rank 1 or 2"
+msgstr "Аргумент ‘%s’ сопственог ‘%s’ код %L мора бити ранга 1 или 2"
+
+#: fortran/check.c:1779
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be of type REAL or COMPLEX"
+msgstr "Аргумент ‘%s’ сопственог ‘%s’ код %L мора бити целобројан или реалан"
+
+#: fortran/check.c:1800
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be of a dummy variable"
+msgstr "Аргумент ‘%s’ сопственог ‘%s’ код %L мора бити од лажне променљиве"
+
+#: fortran/check.c:1808
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be of an OPTIONAL dummy variable"
+msgstr "Аргумент ‘%s’ сопственог ‘%s’ код %L мора бити од опционе лажне променљиве"
+
+#: fortran/check.c:1924
+#, no-c-format
+msgid "'shape' argument of 'reshape' intrinsic at %L must be an array of constant size"
+msgstr "Аргумент ‘shape’ сопственог ‘reshape’ код %L мора бити низ константне величине"
+
+#: fortran/check.c:1934
+#, no-c-format
+msgid "'shape' argument of 'reshape' intrinsic at %L has more than %d elements"
+msgstr "Аргумент ‘shape’ сопственог ‘reshape’ код %L има више од %d елемената"
+
+#: fortran/check.c:2022
+#, no-c-format
+msgid "Missing arguments to %s intrinsic at %L"
+msgstr "Недостају аргументи за сопствено %s код %L"
+
+#: fortran/check.c:2063
+#, no-c-format
+msgid "'source' argument of 'shape' intrinsic at %L must not be an assumed size array"
+msgstr "Аргумент ‘source’ сопственог ‘shape’ код %L не сме бити низ претпостављене величине"
+
+#: fortran/check.c:2125
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be less than rank %d"
+msgstr "Аргумент ‘%s’ сопственог ‘%s’ код %L мора бити мање ранга од %d"
+
+#: fortran/check.c:2582 fortran/check.c:2602
+#, no-c-format
+msgid "Too many arguments to %s at %L"
+msgstr "Превише аргумената за %s код %L"
+
+#: fortran/check.c:2730 fortran/check.c:3092 fortran/check.c:3116
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER or PROCEDURE"
+msgstr "Аргумент ‘%s’ сопственог ‘%s’ код %L мора бити целобројан или процедура"
+
+#: fortran/check.c:3163 fortran/check.c:3171
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER or LOGICAL"
+msgstr "Аргумент ‘%s’ сопственог ‘%s’ код %L мора бити целобројан или логички"
+
+#: fortran/data.c:63
+#, no-c-format
+msgid "non-constant array in DATA statement %L."
+msgstr "неконстантан низа у наредби DATA %L."
+
+#: fortran/data.c:327
+#, no-c-format
+msgid "Extension: re-initialization of '%s' at %L"
+msgstr "Проширење: реуспостављање ‘%s’ код %L"
+
+#: fortran/decl.c:208
+#, no-c-format
+msgid "Host associated variable '%s' may not be in the DATA statement at %C."
+msgstr "Домаћином придружена променљива ‘%s’ не може бити у наредби DATA код %C."
+
+#: fortran/decl.c:215
+#, no-c-format
+msgid "Extension: initialization of common block variable '%s' in DATA statement at %C"
+msgstr "Проширење: успостављање заједничког блока ‘%s’ у наредби DATA код %C"
+
+#: fortran/decl.c:301
+#, no-c-format
+msgid "Symbol '%s' must be a PARAMETER in DATA statement at %C"
+msgstr "Симбол ‘%s’ мора бити параметар у наредби DATA код %C"
+
+#: fortran/decl.c:408
+#, no-c-format
+msgid "Initialization at %C is not allowed in a PURE procedure"
+msgstr "Иницијализација код %C није дозвољена у чистој процедури"
+
+#: fortran/decl.c:455
+#, no-c-format
+msgid "DATA statement at %C is not allowed in a PURE procedure"
+msgstr "Наредба DATA код %C није дозвољена у чистој процедури"
+
+#: fortran/decl.c:483
+#, no-c-format
+msgid "Bad INTENT specification at %C"
+msgstr "Лоша одредница намере код %C"
+
+#: fortran/decl.c:548
+#, no-c-format
+msgid "Syntax error in character length specification at %C"
+msgstr "Синтаксна грешка у одредници знаковне дужине код %C"
+
+#: fortran/decl.c:623
+#, no-c-format
+msgid "Procedure '%s' at %C is already defined at %L"
+msgstr "Процедура ‘%s’ код %C већ је дефинисана код %L"
+
+#: fortran/decl.c:633
+#, no-c-format
+msgid "Procedure '%s' at %C has an explicit interface and must not have attributes declared at %L"
+msgstr "Процедура ‘%s’ код %C има експлицитно сучеље и не може имати атрибуте декларисане код %L"
+
+#: fortran/decl.c:805
+#, no-c-format
+msgid "Initializer not allowed for PARAMETER '%s' at %C"
+msgstr "Иницијализатор није дозвољен за параметар ‘%s’ код %C"
+
+#: fortran/decl.c:814
+#, no-c-format
+msgid "Initializer not allowed for COMMON variable '%s' at %C"
+msgstr "Иницијализатор није дозвољен за заједничку променљиву ‘%s’ код %C"
+
+#: fortran/decl.c:824
+#, no-c-format
+msgid "PARAMETER at %L is missing an initializer"
+msgstr "Недостаје успостављач за параметар код %L"
+
+#: fortran/decl.c:835
+#, no-c-format
+msgid "Variable '%s' at %C with an initializer already appears in a DATA statement"
+msgstr "Променљива ‘%s’ код %C са успостављачем већ се појављује у наредби DATA"
+
+#: fortran/decl.c:913
+#, no-c-format
+msgid "Component at %C must have the POINTER attribute"
+msgstr "Компонента код %C мора имати атрибут показивача"
+
+#: fortran/decl.c:922
+#, no-c-format
+msgid "Array component of structure at %C must have explicit or deferred shape"
+msgstr "Низовна компонента структуре код %C мора имати експлицитан или одложени облик"
+
+#: fortran/decl.c:951
+#, no-c-format
+msgid "Pointer array component of structure at %C must have a deferred shape"
+msgstr "Показивачка низовна компонента структуре код %C мора имати одложен облик"
+
+#: fortran/decl.c:961
+#, no-c-format
+msgid "Array component of structure at %C must have an explicit shape"
+msgstr "Низовна компонента структуре код %C мора имати експлицитан облик"
+
+#: fortran/decl.c:987
+#, no-c-format
+msgid "NULL() initialization at %C is ambiguous"
+msgstr "Двосмислено успостављање NULL() код %C"
+
+#: fortran/decl.c:1054
+#, no-c-format
+msgid "Enumerator cannot be array at %C"
+msgstr "Набрајач не може бити низ код %C"
+
+#: fortran/decl.c:1115 fortran/decl.c:3374
+#, no-c-format
+msgid "Duplicate array spec for Cray pointee at %C."
+msgstr "Двострука одредница низа за Крејов показиваног код %C."
+
+#: fortran/decl.c:1167
+#, no-c-format
+msgid "Function name '%s' not allowed at %C"
+msgstr "Име функције ‘%s’ није дозвољено код %C"
+
+#: fortran/decl.c:1183
+#, no-c-format
+msgid "Extension: Old-style initialization at %C"
+msgstr "Проширење: Старовремско успостављање код %C"
+
+#: fortran/decl.c:1199
+#, no-c-format
+msgid "Initialization at %C isn't for a pointer variable"
+msgstr "Иницијализација код %C није за показивачку променљиву"
+
+#: fortran/decl.c:1207
+#, no-c-format
+msgid "Pointer initialization requires a NULL() at %C"
+msgstr "Иницијализација показивача код %C захтева NULL()"
+
+#: fortran/decl.c:1214
+#, no-c-format
+msgid "Initialization of pointer at %C is not allowed in a PURE procedure"
+msgstr "Иницијализација показивача код %C није дозвољена у чистој процедури"
+
+#: fortran/decl.c:1228
+#, no-c-format
+msgid "Pointer initialization at %C requires '=>', not '='"
+msgstr "Иницијализација показивача код %C захтева ‘=>’, не ‘=’"
+
+#: fortran/decl.c:1236
+#, no-c-format
+msgid "Expected an initialization expression at %C"
+msgstr "Очекиван је успостављачки израз код %C"
+
+#: fortran/decl.c:1243
+#, no-c-format
+msgid "Initialization of variable at %C is not allowed in a PURE procedure"
+msgstr "Иницијализација променљиве код %C није дозвољена у чистој процедури"
+
+#: fortran/decl.c:1265
+#, no-c-format
+msgid "ENUMERATOR %L not initialized with integer expression"
+msgstr "Набрајач %L није успостављен целобројним изразом"
+
+#: fortran/decl.c:1324 fortran/decl.c:1333
+#, no-c-format
+msgid "Old-style type declaration %s*%d not supported at %C"
+msgstr "Старовремска декларација типа %s*%d није подржана код %C"
+
+#: fortran/decl.c:1338
+#, no-c-format
+msgid "Nonstandard type declaration %s*%d at %C"
+msgstr "Нестандардна декларација типа %s*%d код %C"
+
+#: fortran/decl.c:1372
+#, no-c-format
+msgid "Expected initialization expression at %C"
+msgstr "Очекиван је успостављачки израз код %C"
+
+#: fortran/decl.c:1378
+#, no-c-format
+msgid "Expected scalar initialization expression at %C"
+msgstr "Очекиван је скаларни успостављачки израз код %C"
+
+#: fortran/decl.c:1396
+#, no-c-format
+msgid "Kind %d not supported for type %s at %C"
+msgstr "Врста %d није подржана за тип %s код %C"
+
+#: fortran/decl.c:1405
+#, no-c-format
+msgid "Missing right paren at %C"
+msgstr "Недостаје лева заграда код %C"
+
+#: fortran/decl.c:1494 fortran/decl.c:1537
+#, no-c-format
+msgid "Kind %d is not a CHARACTER kind at %C"
+msgstr "Врста %d није знаковна код %C"
+
+#: fortran/decl.c:1531
+#, no-c-format
+msgid "Syntax error in CHARACTER declaration at %C"
+msgstr "Синтаксна грешка у декларацији CHARACTER код %C"
+
+#: fortran/decl.c:1592
+#, no-c-format
+msgid "Extension: BYTE type at %C"
+msgstr "Проширење: тип BYTE код %C"
+
+#: fortran/decl.c:1598
+#, no-c-format
+msgid "BYTE type used at %C is not available on the target machine"
+msgstr "Тип BYTE употребљен код %C није доступан на циљној машини"
+
+#: fortran/decl.c:1647
+#, no-c-format
+msgid "DOUBLE COMPLEX at %C does not conform to the Fortran 95 standard"
+msgstr "DOUBLE COMPLEX код %C не поштује стандард фортрана 95"
+
+#: fortran/decl.c:1670
+#, no-c-format
+msgid "Type name '%s' at %C is ambiguous"
+msgstr "Двосмислено име типа ‘%s’ код %C"
+
+#: fortran/decl.c:1736
+#, no-c-format
+msgid "Missing character range in IMPLICIT at %C"
+msgstr "Недостаје знаковни опсег за имплицитно код %C"
+
+#: fortran/decl.c:1782
+#, no-c-format
+msgid "Letters must be in alphabetic order in IMPLICIT statement at %C"
+msgstr "Слова морају бити у алфабетском поретку у наредби IMPLICIT код %C"
+
+#: fortran/decl.c:1836
+#, no-c-format
+msgid "Empty IMPLICIT statement at %C"
+msgstr "Празна наредба IMPLICIT код %C"
+
+#: fortran/decl.c:2000
+#, no-c-format
+msgid "Enumerator cannot have attributes %C"
+msgstr "Набрајач не може имати атрибуте %C"
+
+#: fortran/decl.c:2013
+#, no-c-format
+msgid "Missing dimension specification at %C"
+msgstr "Недостаје одредница димензија код %C"
+
+#: fortran/decl.c:2095
+#, no-c-format
+msgid "Duplicate %s attribute at %L"
+msgstr "Двоструки атрибут %s код %L"
+
+#: fortran/decl.c:2112
+#, no-c-format
+msgid "Attribute at %L is not allowed in a TYPE definition"
+msgstr "Атрибут код %L није дозвољен у дефиницији типа"
+
+#: fortran/decl.c:2126
+#, no-c-format
+msgid "%s attribute at %L is not allowed outside of a MODULE"
+msgstr "Атрибут %s код %L није дозвољен изван модула"
+
+#. Now we have an error, which we signal, and then fix up
+#. because the knock-on is plain and simple confusing.
+#: fortran/decl.c:2264
+#, no-c-format
+msgid "Derived type at %C has not been previously defined and so cannot appear in a derived type definition."
+msgstr "Изведени тип код %C није претходно дефинисан и зато се не може појавити у дефиницији изведеног типа."
+
+#: fortran/decl.c:2294
+#, no-c-format
+msgid "Syntax error in data declaration at %C"
+msgstr "Синтаксна грешка у декларацији података код %C"
+
+#: fortran/decl.c:2440
+#, no-c-format
+msgid "Name '%s' at %C is the name of the procedure"
+msgstr "Име ‘%s’ код %C је име процедуре"
+
+#: fortran/decl.c:2452
+#, no-c-format
+msgid "Unexpected junk in formal argument list at %C"
+msgstr "Неочекивано смеће у формалној листи аргумената код %C"
+
+#: fortran/decl.c:2470
+#, no-c-format
+msgid "Duplicate symbol '%s' in formal argument list at %C"
+msgstr "Двоструки симбол ‘%s’ у формалној листи аргумената код %C"
+
+#: fortran/decl.c:2513
+#, no-c-format
+msgid "Unexpected junk following RESULT variable at %C"
+msgstr "Неочекивано смеће после променљиве RESULT код %C"
+
+#: fortran/decl.c:2520
+#, no-c-format
+msgid "RESULT variable at %C must be different than function name"
+msgstr "Променљива RESULT код %C мора бити различита од имена функције"
+
+#: fortran/decl.c:2575
+#, no-c-format
+msgid "Expected formal argument list in function definition at %C"
+msgstr "Очекивана је формална листа аргумената у дефиницији функције код %C"
+
+#: fortran/decl.c:2586
+#, no-c-format
+msgid "Unexpected junk after function declaration at %C"
+msgstr "Неочекивано смеће после декларације функције код %C"
+
+#: fortran/decl.c:2607
+#, no-c-format
+msgid "Function '%s' at %C already has a type of %s"
+msgstr "Функција ‘%s’ код %C већ има тип %s"
+
+#: fortran/decl.c:2678
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear within a PROGRAM"
+msgstr "Наредба ENTRY код %C не може бити унутар PROGRAM"
+
+#: fortran/decl.c:2681
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear within a MODULE"
+msgstr "Наредба ENTRY код %C не може бити унутар MODULE"
+
+#: fortran/decl.c:2685
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear within a BLOCK DATA"
+msgstr "Наредба ENTRY код %C не може бити унутар BLOCK DATA"
+
+#: fortran/decl.c:2689
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear within an INTERFACE"
+msgstr "Наредба ENTRY код %C не може бити унутар INTERFACE"
+
+#: fortran/decl.c:2693
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear within a DERIVED TYPE block"
+msgstr "Наредба ENTRY код %C не може бити унутар блока DERIVED TYPE"
+
+#: fortran/decl.c:2698
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear within an IF-THEN block"
+msgstr "Наредба ENTRY код %C не може бити унутар блока IF-THEN"
+
+#: fortran/decl.c:2702
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear within a DO block"
+msgstr "Наредба ENTRY код %C не може бити унутар блока DO"
+
+#: fortran/decl.c:2706
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear within a SELECT block"
+msgstr "Наредба ENTRY код %C не може бити унутар блока SELECT"
+
+#: fortran/decl.c:2710
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear within a FORALL block"
+msgstr "Наредба ENTRY код %C не може бити унутар блока FORALL"
+
+#: fortran/decl.c:2714
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear within a WHERE block"
+msgstr "Наредба ENTRY код %C не може бити унутар блока WHERE"
+
+#: fortran/decl.c:2718
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear within a contained subprogram"
+msgstr "Наредба ENTRY код %C не може бити унутар садржаног потпрограма"
+
+#: fortran/decl.c:2731
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear in a contained procedure"
+msgstr "Наредба ENTRY код %C не може бити у садржаној процедури"
+
+#: fortran/decl.c:2812
+#, no-c-format
+msgid "RESULT attribute required in ENTRY statement at %C"
+msgstr "Неопходан је атрибут RESULT у наредби ENTRY код %C"
+
+#: fortran/decl.c:3053
+#, no-c-format
+msgid "Unexpected END statement at %C"
+msgstr "Неочекивана наредба END код %C"
+
+#. We would have required END [something]
+#: fortran/decl.c:3062
+#, no-c-format
+msgid "%s statement expected at %L"
+msgstr "Очекивана је наредба %s код %L"
+
+#: fortran/decl.c:3073
+#, no-c-format
+msgid "Expecting %s statement at %C"
+msgstr "Очекивана је наредба %s код %C"
+
+#: fortran/decl.c:3087
+#, no-c-format
+msgid "Expected block name of '%s' in %s statement at %C"
+msgstr "Очекивано је име блока за ‘%s’ у наредби %s код %C"
+
+#: fortran/decl.c:3103
+#, no-c-format
+msgid "Expected terminating name at %C"
+msgstr "Очекивано је завршно име код %C"
+
+#: fortran/decl.c:3112
+#, no-c-format
+msgid "Expected label '%s' for %s statement at %C"
+msgstr "Очекивана је етикета ‘%s’ за наредбу %s код %C"
+
+#: fortran/decl.c:3167
+#, no-c-format
+msgid "Missing array specification at %L in DIMENSION statement"
+msgstr "Недостаје одредница низа код %L у наредби DIMENSION"
+
+#: fortran/decl.c:3176
+#, no-c-format
+msgid "Array specification must be deferred at %L"
+msgstr "Одредница низа мора бити одложена код %L"
+
+#: fortran/decl.c:3253
+#, no-c-format
+msgid "Unexpected character in variable list at %C"
+msgstr "Неочекиван знак у листи променљивих код %C"
+
+#: fortran/decl.c:3290
+#, no-c-format
+msgid "Expected '(' at %C"
+msgstr "Очекивано је ‘(’ код %C"
+
+#: fortran/decl.c:3304 fortran/decl.c:3345
+#, no-c-format
+msgid "Expected variable name at %C"
+msgstr "Очекивано је име променљиве код %C"
+
+#: fortran/decl.c:3320
+#, no-c-format
+msgid "Cray pointer at %C must be an integer."
+msgstr "Крејов показивач код %C мора бити целобројни."
+
+#: fortran/decl.c:3324
+#, no-c-format
+msgid "Cray pointer at %C has %d bytes of precision; memory addresses require %d bytes."
+msgstr "Крејов показивач код %C има %d бајтова тачности; меморијска адреса захтева %d бајтова."
+
+#: fortran/decl.c:3331
+#, no-c-format
+msgid "Expected \",\" at %C"
+msgstr "Очекивано је ‘,’ код %C"
+
+#: fortran/decl.c:3394
+#, no-c-format
+msgid "Expected \")\" at %C"
+msgstr "Очекивано је ‘)’ код %C"
+
+#: fortran/decl.c:3406
+#, no-c-format
+msgid "Expected \",\" or end of statement at %C"
+msgstr "Очекивано је ‘,’ или крај наредбе код %C"
+
+#: fortran/decl.c:3471
+#, no-c-format
+msgid "Cray pointer declaration at %C requires -fcray-pointer flag."
+msgstr "Декларација Крејовог показивача код %C захтева заставицу -fcray-pointer."
+
+#: fortran/decl.c:3569
+#, no-c-format
+msgid "Access specification of the %s operator at %C has already been specified"
+msgstr "Одредница приступа оператора %s код %C је већ наведена"
+
+#: fortran/decl.c:3587
+#, no-c-format
+msgid "Access specification of the .%s. operator at %C has already been specified"
+msgstr "Одредница приступа оператора .%s. код %C је већ наведена"
+
+#: fortran/decl.c:3674
+#, no-c-format
+msgid "Expected variable name at %C in PARAMETER statement"
+msgstr "Очекивано је име променљиве код %C у наредби PARAMETER"
+
+#: fortran/decl.c:3681
+#, no-c-format
+msgid "Expected = sign in PARAMETER statement at %C"
+msgstr "Очекиван је знак = у наредби PARAMETER код %C"
+
+#: fortran/decl.c:3687
+#, no-c-format
+msgid "Expected expression at %C in PARAMETER statement"
+msgstr "Очекиван је израз код %C у наредби PARAMETER"
+
+#: fortran/decl.c:3745
+#, no-c-format
+msgid "Unexpected characters in PARAMETER statement at %C"
+msgstr "Неочекивани знакови у наредби PARAMETER код %C"
+
+#: fortran/decl.c:3770
+#, no-c-format
+msgid "Blanket SAVE statement at %C follows previous SAVE statement"
+msgstr "Покривачка наредба SAVE код %C прати претходну наредбу SAVE"
+
+#: fortran/decl.c:3783
+#, no-c-format
+msgid "SAVE statement at %C follows blanket SAVE statement"
+msgstr "Наредба SAVE код %C прати покривачку наредбу SAVE"
+
+#: fortran/decl.c:3829
+#, no-c-format
+msgid "Syntax error in SAVE statement at %C"
+msgstr "Синтаксна грешка у наредби SAVE код %C"
+
+#: fortran/decl.c:3850
+#, no-c-format
+msgid "MODULE PROCEDURE at %C must be in a generic module interface"
+msgstr "MODULE PROCEDURE код %C мора бити у генеричком сучељу модула"
+
+#: fortran/decl.c:3910
+#, no-c-format
+msgid "Derived type at %C can only be PRIVATE within a MODULE"
+msgstr "Изведени тип код %C може бити само приватан унутар модула"
+
+#: fortran/decl.c:3923
+#, no-c-format
+msgid "Derived type at %C can only be PUBLIC within a MODULE"
+msgstr "Изведени тип код %C може бити само јаван унутар модула"
+
+#: fortran/decl.c:3934
+#, no-c-format
+msgid "Expected :: in TYPE definition at %C"
+msgstr "Очекивано је :: у дефиницији TYPE код %C"
+
+#: fortran/decl.c:3951
+#, no-c-format
+msgid "Type name '%s' at %C cannot be the same as an intrinsic type"
+msgstr "Име типа ‘%s’ код %C не може бити исто као сопственог типа"
+
+#: fortran/decl.c:3961
+#, no-c-format
+msgid "Derived type name '%s' at %C already has a basic type of %s"
+msgstr "Име изведеног типа ‘%s’ код %C већ има основни тип %s"
+
+#: fortran/decl.c:3978
+#, no-c-format
+msgid "Derived type definition of '%s' at %C has already been defined"
+msgstr "Дефиниција изведеног типа ‘%s’ код %C је већ учињена"
+
+#: fortran/decl.c:4012
+#, no-c-format
+msgid "Cray Pointee at %C cannot be assumed shape array"
+msgstr "Крејов показивани код %C не може бити низ претпостављеног облика"
+
+#: fortran/decl.c:4033
+#, no-c-format
+msgid "New in Fortran 2003: ENUM AND ENUMERATOR at %C"
+msgstr "Ново у фортрану 2003: ENUM AND ENUMERATOR код %C"
+
+#: fortran/decl.c:4057
+#, no-c-format
+msgid "ENUM definition statement expected before %C"
+msgstr "Очекивана је наредба дефиниције ENUM пре %C"
+
+#: fortran/decl.c:4090
+#, no-c-format
+msgid "Syntax error in ENUMERATOR definition at %C"
+msgstr "Синтаксна грешка у дефиницији ENUMERATOR код %C"
+
+#: fortran/dump-parse-tree.c:53
+#, c-format
+msgid "%-5d "
+msgstr "%-5d "
+
+#: fortran/dump-parse-tree.c:55
+#, c-format
+msgid " "
+msgstr " "
+
+#: fortran/dump-parse-tree.c:79 fortran/dump-parse-tree.c:597
+#, c-format
+msgid "(%s "
+msgstr "(%s "
+
+#: fortran/dump-parse-tree.c:92 fortran/dump-parse-tree.c:844
+#: fortran/dump-parse-tree.c:881 fortran/dump-parse-tree.c:891
+#, c-format
+msgid "%d"
+msgstr "%d"
+
+#: fortran/dump-parse-tree.c:96 fortran/dump-parse-tree.c:123
+#: fortran/dump-parse-tree.c:166 fortran/dump-parse-tree.c:403
+#: fortran/dump-parse-tree.c:498 fortran/dump-parse-tree.c:584
+#: fortran/dump-parse-tree.c:605
+#, c-format
+msgid ")"
+msgstr ")"
+
+#: fortran/dump-parse-tree.c:106 fortran/dump-parse-tree.c:421
+#, c-format
+msgid "("
+msgstr "("
+
+#: fortran/dump-parse-tree.c:112
+#, c-format
+msgid "%s = "
+msgstr "%s = "
+
+#: fortran/dump-parse-tree.c:116
+#, c-format
+msgid "(arg not-present)"
+msgstr "(arg not-present)"
+
+#: fortran/dump-parse-tree.c:120 fortran/dump-parse-tree.c:397
+#: fortran/dump-parse-tree.c:494
+#, c-format
+msgid " "
+msgstr " "
+
+#: fortran/dump-parse-tree.c:137 fortran/dump-parse-tree.c:312
+#, c-format
+msgid "()"
+msgstr "()"
+
+#: fortran/dump-parse-tree.c:141
+#, c-format
+msgid "(%d"
+msgstr "(%d"
+
+#: fortran/dump-parse-tree.c:155
+#, c-format
+msgid " %s "
+msgstr " %s "
+
+#: fortran/dump-parse-tree.c:182
+#, c-format
+msgid "FULL"
+msgstr "FULL"
+
+#: fortran/dump-parse-tree.c:213 fortran/dump-parse-tree.c:222
+#: fortran/dump-parse-tree.c:297
+#, c-format
+msgid " , "
+msgstr " , "
+
+#: fortran/dump-parse-tree.c:227
+#, c-format
+msgid "UNKNOWN"
+msgstr "UNKNOWN"
+
+#: fortran/dump-parse-tree.c:252
+#, c-format
+msgid " %% %s"
+msgstr " %% %s"
+
+#: fortran/dump-parse-tree.c:324 fortran/dump-parse-tree.c:381
+#, c-format
+msgid "''"
+msgstr "''"
+
+#: fortran/dump-parse-tree.c:326
+#, c-format
+msgid "%c"
+msgstr "%c"
+
+#: fortran/dump-parse-tree.c:333
+#, c-format
+msgid "%s("
+msgstr "%s("
+
+#: fortran/dump-parse-tree.c:339
+#, c-format
+msgid "(/ "
+msgstr "(/ "
+
+#: fortran/dump-parse-tree.c:341
+#, c-format
+msgid " /)"
+msgstr " /)"
+
+#: fortran/dump-parse-tree.c:347
+#, c-format
+msgid "NULL()"
+msgstr "NULL()"
+
+#: fortran/dump-parse-tree.c:357 fortran/dump-parse-tree.c:370
+#: fortran/dump-parse-tree.c:395 fortran/dump-parse-tree.c:401
+#, c-format
+msgid "_%d"
+msgstr "_%d"
+
+#: fortran/dump-parse-tree.c:362
+#, c-format
+msgid ".true."
+msgstr ".true."
+
+#: fortran/dump-parse-tree.c:364
+#, c-format
+msgid ".false."
+msgstr ".false."
+
+#: fortran/dump-parse-tree.c:391
+#, c-format
+msgid "(complex "
+msgstr "(complex "
+
+#: fortran/dump-parse-tree.c:407
+#, c-format
+msgid "???"
+msgstr "???"
+
+#: fortran/dump-parse-tree.c:415 fortran/dump-parse-tree.c:701
+#, c-format
+msgid "%s:"
+msgstr "%s:"
+
+#: fortran/dump-parse-tree.c:425
+#, c-format
+msgid "U+ "
+msgstr "U+ "
+
+#: fortran/dump-parse-tree.c:428
+#, c-format
+msgid "U- "
+msgstr "U- "
+
+#: fortran/dump-parse-tree.c:431
+#, c-format
+msgid "+ "
+msgstr "+ "
+
+#: fortran/dump-parse-tree.c:434
+#, c-format
+msgid "- "
+msgstr "- "
+
+#: fortran/dump-parse-tree.c:437
+#, c-format
+msgid "* "
+msgstr "* "
+
+#: fortran/dump-parse-tree.c:440
+#, c-format
+msgid "/ "
+msgstr "/ "
+
+#: fortran/dump-parse-tree.c:443
+#, c-format
+msgid "** "
+msgstr "** "
+
+#: fortran/dump-parse-tree.c:446
+#, c-format
+msgid "// "
+msgstr "// "
+
+#: fortran/dump-parse-tree.c:449
+#, c-format
+msgid "AND "
+msgstr "AND "
+
+#: fortran/dump-parse-tree.c:452
+#, c-format
+msgid "OR "
+msgstr "OR "
+
+#: fortran/dump-parse-tree.c:455
+#, c-format
+msgid "EQV "
+msgstr "EQV "
+
+#: fortran/dump-parse-tree.c:458
+#, c-format
+msgid "NEQV "
+msgstr "NEQV "
+
+#: fortran/dump-parse-tree.c:461
+#, c-format
+msgid "= "
+msgstr "= "
+
+#: fortran/dump-parse-tree.c:464
+#, c-format
+msgid "<> "
+msgstr "<> "
+
+#: fortran/dump-parse-tree.c:467
+#, c-format
+msgid "> "
+msgstr "> "
+
+#: fortran/dump-parse-tree.c:470
+#, c-format
+msgid ">= "
+msgstr ">= "
+
+#: fortran/dump-parse-tree.c:473
+#, c-format
+msgid "< "
+msgstr "< "
+
+#: fortran/dump-parse-tree.c:476
+#, c-format
+msgid "<= "
+msgstr "<= "
+
+#: fortran/dump-parse-tree.c:479
+#, c-format
+msgid "NOT "
+msgstr "NOT "
+
+#: fortran/dump-parse-tree.c:482
+#, c-format
+msgid "parens"
+msgstr "заграде"
+
+#: fortran/dump-parse-tree.c:504
+#, c-format
+msgid "%s["
+msgstr "%s["
+
+#: fortran/dump-parse-tree.c:510
+#, c-format
+msgid "%s[["
+msgstr "%s[["
+
+#: fortran/dump-parse-tree.c:531
+#, c-format
+msgid "(%s %s %s %s"
+msgstr "(%s %s %s %s"
+
+#: fortran/dump-parse-tree.c:537
+#, c-format
+msgid " ALLOCATABLE"
+msgstr " ALLOCATABLE"
+
+#: fortran/dump-parse-tree.c:539 fortran/dump-parse-tree.c:602
+#, c-format
+msgid " DIMENSION"
+msgstr " DIMENSION"
+
+#: fortran/dump-parse-tree.c:541
+#, c-format
+msgid " EXTERNAL"
+msgstr " EXTERNAL"
+
+#: fortran/dump-parse-tree.c:543
+#, c-format
+msgid " INTRINSIC"
+msgstr " INTRINSIC"
+
+#: fortran/dump-parse-tree.c:545
+#, c-format
+msgid " OPTIONAL"
+msgstr " OPTIONAL"
+
+#: fortran/dump-parse-tree.c:547 fortran/dump-parse-tree.c:600
+#, c-format
+msgid " POINTER"
+msgstr " POINTER"
+
+#: fortran/dump-parse-tree.c:549
+#, c-format
+msgid " SAVE"
+msgstr " SAVE"
+
+#: fortran/dump-parse-tree.c:551
+#, c-format
+msgid " TARGET"
+msgstr " TARGET"
+
+#: fortran/dump-parse-tree.c:553
+#, c-format
+msgid " DUMMY"
+msgstr " DUMMY"
+
+#: fortran/dump-parse-tree.c:555
+#, c-format
+msgid " RESULT"
+msgstr " RESULT"
+
+#: fortran/dump-parse-tree.c:557
+#, c-format
+msgid " ENTRY"
+msgstr " ENTRY"
+
+#: fortran/dump-parse-tree.c:560
+#, c-format
+msgid " DATA"
+msgstr " DATA"
+
+#: fortran/dump-parse-tree.c:562
+#, c-format
+msgid " USE-ASSOC"
+msgstr " USE-ASSOC"
+
+#: fortran/dump-parse-tree.c:564
+#, c-format
+msgid " IN-NAMELIST"
+msgstr " IN-NAMELIST"
+
+#: fortran/dump-parse-tree.c:566
+#, c-format
+msgid " IN-COMMON"
+msgstr " IN-COMMON"
+
+#: fortran/dump-parse-tree.c:569
+#, c-format
+msgid " FUNCTION"
+msgstr " FUNCTION"
+
+#: fortran/dump-parse-tree.c:571
+#, c-format
+msgid " SUBROUTINE"
+msgstr " SUBROUTINE"
+
+#: fortran/dump-parse-tree.c:573
+#, c-format
+msgid " IMPLICIT-TYPE"
+msgstr " IMPLICIT-TYPE"
+
+#: fortran/dump-parse-tree.c:576
+#, c-format
+msgid " SEQUENCE"
+msgstr " SEQUENCE"
+
+#: fortran/dump-parse-tree.c:578
+#, c-format
+msgid " ELEMENTAL"
+msgstr " ELEMENTAL"
+
+#: fortran/dump-parse-tree.c:580
+#, c-format
+msgid " PURE"
+msgstr " PURE"
+
+#: fortran/dump-parse-tree.c:582
+#, c-format
+msgid " RECURSIVE"
+msgstr " RECURSIVE"
+
+#: fortran/dump-parse-tree.c:628
+#, c-format
+msgid "symbol %s "
+msgstr "симбол %s "
+
+#: fortran/dump-parse-tree.c:635
+#, c-format
+msgid "value: "
+msgstr "вредност: "
+
+#: fortran/dump-parse-tree.c:642
+#, c-format
+msgid "Array spec:"
+msgstr "Одредница низа:"
+
+#: fortran/dump-parse-tree.c:649
+#, c-format
+msgid "Generic interfaces:"
+msgstr "Генеричка сучеља:"
+
+#: fortran/dump-parse-tree.c:651 fortran/dump-parse-tree.c:675
+#: fortran/dump-parse-tree.c:704 fortran/dump-parse-tree.c:1044
+#: fortran/dump-parse-tree.c:1050 fortran/dump-parse-tree.c:1535
+#, c-format
+msgid " %s"
+msgstr " %s"
+
+#: fortran/dump-parse-tree.c:657
+#, c-format
+msgid "result: %s"
+msgstr "резултат: %s"
+
+#: fortran/dump-parse-tree.c:663
+#, c-format
+msgid "components: "
+msgstr "компоненте: "
+
+#: fortran/dump-parse-tree.c:670
+#, c-format
+msgid "Formal arglist:"
+msgstr "Формална арглиста:"
+
+#: fortran/dump-parse-tree.c:677
+#, c-format
+msgid " [Alt Return]"
+msgstr " [алт ретурн]"
+
+#: fortran/dump-parse-tree.c:684
+#, c-format
+msgid "Formal namespace"
+msgstr "Формални именски простор"
+
+#: fortran/dump-parse-tree.c:742
+#, c-format
+msgid "common: /%s/ "
+msgstr "заједничко: /%s/ "
+
+#: fortran/dump-parse-tree.c:750 fortran/dump-parse-tree.c:1471
+#, c-format
+msgid ", "
+msgstr ", "
+
+#: fortran/dump-parse-tree.c:763
+#, c-format
+msgid "symtree: %s Ambig %d"
+msgstr "симстабло: %s двосм %d"
+
+#: fortran/dump-parse-tree.c:766
+#, c-format
+msgid " from namespace %s"
+msgstr " из именског простора %s"
+
+#: fortran/dump-parse-tree.c:810
+#, c-format
+msgid "NOP"
+msgstr "NOP"
+
+#: fortran/dump-parse-tree.c:814
+#, c-format
+msgid "CONTINUE"
+msgstr "CONTINUE"
+
+#: fortran/dump-parse-tree.c:818
+#, c-format
+msgid "ENTRY %s"
+msgstr "ENTRY %s"
+
+#: fortran/dump-parse-tree.c:822
+#, c-format
+msgid "ASSIGN "
+msgstr "ASSIGN "
+
+#: fortran/dump-parse-tree.c:829
+#, c-format
+msgid "LABEL ASSIGN "
+msgstr "LABEL ASSIGN "
+
+#: fortran/dump-parse-tree.c:831
+#, c-format
+msgid " %d"
+msgstr " %d"
+
+#: fortran/dump-parse-tree.c:835
+#, c-format
+msgid "POINTER ASSIGN "
+msgstr "POINTER ASSIGN "
+
+#: fortran/dump-parse-tree.c:842
+#, c-format
+msgid "GOTO "
+msgstr "GOTO "
+
+#: fortran/dump-parse-tree.c:851
+#, c-format
+msgid ", ("
+msgstr ", ("
+
+#: fortran/dump-parse-tree.c:865
+#, c-format
+msgid "CALL %s "
+msgstr "CALL %s "
+
+#: fortran/dump-parse-tree.c:870
+#, c-format
+msgid "RETURN "
+msgstr "RETURN "
+
+#: fortran/dump-parse-tree.c:876
+#, c-format
+msgid "PAUSE "
+msgstr "PAUSE "
+
+#: fortran/dump-parse-tree.c:886
+#, c-format
+msgid "STOP "
+msgstr "STOP "
+
+#: fortran/dump-parse-tree.c:896 fortran/dump-parse-tree.c:904
+#, c-format
+msgid "IF "
+msgstr "IF "
+
+#: fortran/dump-parse-tree.c:898
+#, c-format
+msgid " %d, %d, %d"
+msgstr " %d, %d, %d"
+
+#: fortran/dump-parse-tree.c:915
+#, c-format
+msgid "ELSE\n"
+msgstr "ELSE\n"
+
+#: fortran/dump-parse-tree.c:918
+#, c-format
+msgid "ELSE IF "
+msgstr "ELSE IF "
+
+#: fortran/dump-parse-tree.c:928
+#, c-format
+msgid "ENDIF"
+msgstr "ENDIF"
+
+#: fortran/dump-parse-tree.c:933
+#, c-format
+msgid "SELECT CASE "
+msgstr "SELECT CASE "
+
+#: fortran/dump-parse-tree.c:941
+#, c-format
+msgid "CASE "
+msgstr "CASE "
+
+#: fortran/dump-parse-tree.c:957
+#, c-format
+msgid "END SELECT"
+msgstr "END SELECT"
+
+#: fortran/dump-parse-tree.c:961
+#, c-format
+msgid "WHERE "
+msgstr "WHERE "
+
+#: fortran/dump-parse-tree.c:972
+#, c-format
+msgid "ELSE WHERE "
+msgstr "ELSE WHERE "
+
+#: fortran/dump-parse-tree.c:979
+#, c-format
+msgid "END WHERE"
+msgstr "END WHERE"
+
+#: fortran/dump-parse-tree.c:984
+#, c-format
+msgid "FORALL "
+msgstr "FORALL "
+
+#: fortran/dump-parse-tree.c:1009
+#, c-format
+msgid "END FORALL"
+msgstr "END FORALL"
+
+#: fortran/dump-parse-tree.c:1013
+#, c-format
+msgid "DO "
+msgstr "DO "
+
+#: fortran/dump-parse-tree.c:1027 fortran/dump-parse-tree.c:1038
+#, c-format
+msgid "END DO"
+msgstr "END DO"
+
+#: fortran/dump-parse-tree.c:1031
+#, c-format
+msgid "DO WHILE "
+msgstr "DO WHILE "
+
+#: fortran/dump-parse-tree.c:1042
+#, c-format
+msgid "CYCLE"
+msgstr "CYCLE"
+
+#: fortran/dump-parse-tree.c:1048
+#, c-format
+msgid "EXIT"
+msgstr "EXIT"
+
+#: fortran/dump-parse-tree.c:1054
+#, c-format
+msgid "ALLOCATE "
+msgstr "ALLOCATE "
+
+#: fortran/dump-parse-tree.c:1057 fortran/dump-parse-tree.c:1073
+#, c-format
+msgid " STAT="
+msgstr " STAT="
+
+#: fortran/dump-parse-tree.c:1070
+#, c-format
+msgid "DEALLOCATE "
+msgstr "DEALLOCATE "
+
+#: fortran/dump-parse-tree.c:1086
+#, c-format
+msgid "OPEN"
+msgstr "OPEN"
+
+#: fortran/dump-parse-tree.c:1091 fortran/dump-parse-tree.c:1170
+#: fortran/dump-parse-tree.c:1212 fortran/dump-parse-tree.c:1235
+#: fortran/dump-parse-tree.c:1387
+#, c-format
+msgid " UNIT="
+msgstr " UNIT="
+
+#: fortran/dump-parse-tree.c:1096 fortran/dump-parse-tree.c:1175
+#: fortran/dump-parse-tree.c:1217 fortran/dump-parse-tree.c:1246
+#: fortran/dump-parse-tree.c:1404
+#, c-format
+msgid " IOMSG="
+msgstr " IOMSG="
+
+#: fortran/dump-parse-tree.c:1101 fortran/dump-parse-tree.c:1180
+#: fortran/dump-parse-tree.c:1222 fortran/dump-parse-tree.c:1251
+#: fortran/dump-parse-tree.c:1409
+#, c-format
+msgid " IOSTAT="
+msgstr " IOSTAT="
+
+#: fortran/dump-parse-tree.c:1106 fortran/dump-parse-tree.c:1240
+#, c-format
+msgid " FILE="
+msgstr " FILE="
+
+#: fortran/dump-parse-tree.c:1111 fortran/dump-parse-tree.c:1185
+#, c-format
+msgid " STATUS="
+msgstr " STATUS="
+
+#: fortran/dump-parse-tree.c:1116 fortran/dump-parse-tree.c:1281
+#, c-format
+msgid " ACCESS="
+msgstr " ACCESS="
+
+#: fortran/dump-parse-tree.c:1121 fortran/dump-parse-tree.c:1297
+#, c-format
+msgid " FORM="
+msgstr " FORM="
+
+#: fortran/dump-parse-tree.c:1126 fortran/dump-parse-tree.c:1312
+#, c-format
+msgid " RECL="
+msgstr " RECL="
+
+#: fortran/dump-parse-tree.c:1131 fortran/dump-parse-tree.c:1322
+#, c-format
+msgid " BLANK="
+msgstr " BLANK="
+
+#: fortran/dump-parse-tree.c:1136 fortran/dump-parse-tree.c:1327
+#, c-format
+msgid " POSITION="
+msgstr " POSITION="
+
+#: fortran/dump-parse-tree.c:1141 fortran/dump-parse-tree.c:1332
+#, c-format
+msgid " ACTION="
+msgstr " ACTION="
+
+#: fortran/dump-parse-tree.c:1146 fortran/dump-parse-tree.c:1352
+#, c-format
+msgid " DELIM="
+msgstr " DELIM="
+
+#: fortran/dump-parse-tree.c:1151 fortran/dump-parse-tree.c:1357
+#, c-format
+msgid " PAD="
+msgstr " PAD="
+
+#: fortran/dump-parse-tree.c:1156 fortran/dump-parse-tree.c:1362
+#, c-format
+msgid " CONVERT="
+msgstr " CONVERT="
+
+#: fortran/dump-parse-tree.c:1160 fortran/dump-parse-tree.c:1189
+#: fortran/dump-parse-tree.c:1226 fortran/dump-parse-tree.c:1367
+#: fortran/dump-parse-tree.c:1444
+#, c-format
+msgid " ERR=%d"
+msgstr " ERR=%d"
+
+#: fortran/dump-parse-tree.c:1165
+#, c-format
+msgid "CLOSE"
+msgstr "CLOSE"
+
+#: fortran/dump-parse-tree.c:1193
+#, c-format
+msgid "BACKSPACE"
+msgstr "BACKSPACE"
+
+#: fortran/dump-parse-tree.c:1197
+#, c-format
+msgid "ENDFILE"
+msgstr "ENDFILE"
+
+#: fortran/dump-parse-tree.c:1201
+#, c-format
+msgid "REWIND"
+msgstr "REWIND"
+
+#: fortran/dump-parse-tree.c:1205
+#, c-format
+msgid "FLUSH"
+msgstr "FLUSH"
+
+#: fortran/dump-parse-tree.c:1230
+#, c-format
+msgid "INQUIRE"
+msgstr "INQUIRE"
+
+#: fortran/dump-parse-tree.c:1256
+#, c-format
+msgid " EXIST="
+msgstr " EXIST="
+
+#: fortran/dump-parse-tree.c:1261
+#, c-format
+msgid " OPENED="
+msgstr " OPENED="
+
+#: fortran/dump-parse-tree.c:1266
+#, c-format
+msgid " NUMBER="
+msgstr " NUMBER="
+
+#: fortran/dump-parse-tree.c:1271
+#, c-format
+msgid " NAMED="
+msgstr " NAMED="
+
+#: fortran/dump-parse-tree.c:1276
+#, c-format
+msgid " NAME="
+msgstr " NAME="
+
+#: fortran/dump-parse-tree.c:1286
+#, c-format
+msgid " SEQUENTIAL="
+msgstr " SEQUENTIAL="
+
+#: fortran/dump-parse-tree.c:1292
+#, c-format
+msgid " DIRECT="
+msgstr " DIRECT="
+
+#: fortran/dump-parse-tree.c:1302
+#, c-format
+msgid " FORMATTED"
+msgstr " FORMATTED"
+
+#: fortran/dump-parse-tree.c:1307
+#, c-format
+msgid " UNFORMATTED="
+msgstr " UNFORMATTED="
+
+#: fortran/dump-parse-tree.c:1317
+#, c-format
+msgid " NEXTREC="
+msgstr " NEXTREC="
+
+#: fortran/dump-parse-tree.c:1337
+#, c-format
+msgid " READ="
+msgstr " READ="
+
+#: fortran/dump-parse-tree.c:1342
+#, c-format
+msgid " WRITE="
+msgstr " WRITE="
+
+#: fortran/dump-parse-tree.c:1347
+#, c-format
+msgid " READWRITE="
+msgstr " READWRITE="
+
+#: fortran/dump-parse-tree.c:1371
+#, c-format
+msgid "IOLENGTH "
+msgstr "IOLENGTH "
+
+#: fortran/dump-parse-tree.c:1377
+#, c-format
+msgid "READ"
+msgstr "READ"
+
+#: fortran/dump-parse-tree.c:1381
+#, c-format
+msgid "WRITE"
+msgstr "WRITE"
+
+#: fortran/dump-parse-tree.c:1393
+#, c-format
+msgid " FMT="
+msgstr " FMT="
+
+#: fortran/dump-parse-tree.c:1398
+#, c-format
+msgid " FMT=%d"
+msgstr " FMT=%d"
+
+#: fortran/dump-parse-tree.c:1400
+#, c-format
+msgid " NML=%s"
+msgstr " NML=%s"
+
+#: fortran/dump-parse-tree.c:1414
+#, c-format
+msgid " SIZE="
+msgstr " SIZE="
+
+#: fortran/dump-parse-tree.c:1419
+#, c-format
+msgid " REC="
+msgstr " REC="
+
+#: fortran/dump-parse-tree.c:1424
+#, c-format
+msgid " ADVANCE="
+msgstr " ADVANCE="
+
+#: fortran/dump-parse-tree.c:1435
+#, c-format
+msgid "TRANSFER "
+msgstr "TRANSFER "
+
+#: fortran/dump-parse-tree.c:1440
+#, c-format
+msgid "DT_END"
+msgstr "DT_END"
+
+#: fortran/dump-parse-tree.c:1446
+#, c-format
+msgid " END=%d"
+msgstr " END=%d"
+
+#: fortran/dump-parse-tree.c:1448
+#, c-format
+msgid " EOR=%d"
+msgstr " EOR=%d"
+
+#: fortran/dump-parse-tree.c:1465
+#, c-format
+msgid "Equivalence: "
+msgstr "Еквиваленција: "
+
+#: fortran/dump-parse-tree.c:1491
+#, c-format
+msgid "Namespace:"
+msgstr "Именски простор:"
+
+#: fortran/dump-parse-tree.c:1505
+#, c-format
+msgid " %c-%c: "
+msgstr " %c-%c: "
+
+#: fortran/dump-parse-tree.c:1507
+#, c-format
+msgid " %c: "
+msgstr " %c: "
+
+#: fortran/dump-parse-tree.c:1516
+#, c-format
+msgid "procedure name = %s"
+msgstr "име процедуре = %s"
+
+#: fortran/dump-parse-tree.c:1532
+#, c-format
+msgid "Operator interfaces for %s:"
+msgstr "Операторска сучеља за %s:"
+
+#: fortran/dump-parse-tree.c:1541
+#, c-format
+msgid "User operators:\n"
+msgstr "Кориснички оператори:\n"
+
+#: fortran/dump-parse-tree.c:1557
+#, c-format
+msgid "CONTAINS\n"
+msgstr "CONTAINS\n"
+
+#: fortran/error.c:137
+#, no-c-format
+msgid "In file %s:%d\n"
+msgstr "У датотеци %s:%d\n"
+
+#: fortran/error.c:152
+#, no-c-format
+msgid " Included at %s:%d\n"
+msgstr " Укључено код %s:%d\n"
+
+#: fortran/error.c:204
+#, no-c-format
+msgid "<During initialization>\n"
+msgstr "<Током успостављања>\n"
+
+#: fortran/error.c:479 fortran/error.c:535 fortran/error.c:561
+msgid "Warning:"
+msgstr "Упозорење:"
+
+#: fortran/error.c:537 fortran/error.c:611 fortran/error.c:635
+msgid "Error:"
+msgstr "Грешка:"
+
+#: fortran/error.c:656
+msgid "Fatal Error:"
+msgstr "Кобна грешка:"
+
+#: fortran/error.c:675
+#, no-c-format
+msgid "Internal Error at (1):"
+msgstr "Унутрашња грешка код (1):"
+
+#: fortran/expr.c:258
+#, c-format
+msgid "Constant expression required at %C"
+msgstr "Неопходан константан израз код %C"
+
+#: fortran/expr.c:261
+#, c-format
+msgid "Integer expression required at %C"
+msgstr "Неопходан целобројни израз код %C"
+
+#: fortran/expr.c:266
+#, c-format
+msgid "Integer value too large in expression at %C"
+msgstr "Превелика целобројна вредност у изразу код %C"
+
+#: fortran/expr.c:1274
+#, no-c-format
+msgid "Numeric or CHARACTER operands are required in expression at %L"
+msgstr "Неопходни бројевни или знаковни операнди у изразу код %L"
+
+#: fortran/expr.c:1294
+#, no-c-format
+msgid "Exponent at %L must be INTEGER for an initialization expression"
+msgstr "Изложилац код %L мора бити целобројан за успостављачки израз"
+
+#: fortran/expr.c:1307
+#, no-c-format
+msgid "Concatenation operator in expression at %L must have two CHARACTER operands"
+msgstr "Оператор надовезивања у изразу код %L мора имати два знаковна операнда"
+
+#: fortran/expr.c:1314
+#, no-c-format
+msgid "Concat operator at %L must concatenate strings of the same kind"
+msgstr "Оператор надовезивања код %L мора надовезивати ниске исте врсте"
+
+#: fortran/expr.c:1324
+#, no-c-format
+msgid ".NOT. operator in expression at %L must have a LOGICAL operand"
+msgstr "Оператор .NOT. у изразу код %L мора имати логички операнд"
+
+#: fortran/expr.c:1340
+#, no-c-format
+msgid "LOGICAL operands are required in expression at %L"
+msgstr "Неопходни су логички операнди у изразу код %L"
+
+#: fortran/expr.c:1351
+#, no-c-format
+msgid "Only intrinsic operators can be used in expression at %L"
+msgstr "Могу се користити само сопствени оператори у изразу код %L"
+
+#: fortran/expr.c:1359
+#, no-c-format
+msgid "Numeric operands are required in expression at %L"
+msgstr "Неопходни су бројевни операнди у изразу код %L"
+
+#: fortran/expr.c:1423
+#, no-c-format
+msgid "The F95 does not permit the assumed character length variable '%s' in constant expression at %L."
+msgstr "Фортран 95 не допушта променљиву претпостављене знаковне дужине ‘%s’ у константном изразу код %L."
+
+#: fortran/expr.c:1476
+#, no-c-format
+msgid "Function '%s' in initialization expression at %L must be an intrinsic function"
+msgstr "Функција ‘%s’ у успостављачком изразу код %L мора бити сопствена"
+
+#: fortran/expr.c:1498
+#, no-c-format
+msgid "Parameter '%s' at %L has not been declared or is a variable, which does not reduce to a constant expression"
+msgstr "Параметар ‘%s’ код %L није декларисан или је променљива, што се не скраћује на константан израз"
+
+#: fortran/expr.c:1583
+#, no-c-format
+msgid "Initialization expression didn't reduce %C"
+msgstr "Иницијализујући израз не скраћује %C"
+
+#: fortran/expr.c:1627
+#, no-c-format
+msgid "Specification function '%s' at %L cannot be a statement function"
+msgstr "Одредничка функција ‘%s’ код %L не може бити наредбена функција"
+
+#: fortran/expr.c:1634
+#, no-c-format
+msgid "Specification function '%s' at %L cannot be an internal function"
+msgstr "Одредничка функција ‘%s’ код %L не може бити унутрашња функција"
+
+#: fortran/expr.c:1641
+#, no-c-format
+msgid "Specification function '%s' at %L must be PURE"
+msgstr "Одредничка функција ‘%s’ код %L мора бити чиста"
+
+#: fortran/expr.c:1648
+#, no-c-format
+msgid "Specification function '%s' at %L cannot be RECURSIVE"
+msgstr "Одредничка функција ‘%s’ код %L не може бити рекурзивна"
+
+#: fortran/expr.c:1705
+#, no-c-format
+msgid "Dummy argument '%s' at %L cannot be OPTIONAL"
+msgstr "Лажни аргумент ‘%s’ код %L не може бити опцион"
+
+#: fortran/expr.c:1712
+#, no-c-format
+msgid "Dummy argument '%s' at %L cannot be INTENT(OUT)"
+msgstr "Лажни аргумент ‘%s’ код %L не може бити намере-из"
+
+#: fortran/expr.c:1732
+#, no-c-format
+msgid "Variable '%s' cannot appear in the expression at %L"
+msgstr "Променљива ‘%s’ се не може јавити у изразу код %L"
+
+#: fortran/expr.c:1780
+#, no-c-format
+msgid "Expression at %L must be of INTEGER type"
+msgstr "Израз код %L мора бити целобројног типа"
+
+#: fortran/expr.c:1786
+#, no-c-format
+msgid "Expression at %L must be scalar"
+msgstr "Израз код %L мора бити скалар"
+
+#: fortran/expr.c:1814
+#, no-c-format
+msgid "Incompatible ranks in %s at %L"
+msgstr "Несагласни рангови у %s код %L"
+
+#: fortran/expr.c:1828
+#, no-c-format
+msgid "different shape for %s at %L on dimension %d (%d/%d)"
+msgstr "%s код %L има различит облик за димензију %d (%d/%d)"
+
+#: fortran/expr.c:1861
+#, no-c-format
+msgid "Can't assign to INTENT(IN) variable '%s' at %L"
+msgstr "Не могу да доделим променљивој намере-у ‘%s’ код %L"
+
+#: fortran/expr.c:1905
+#, no-c-format
+msgid "'%s' at %L is not a VALUE"
+msgstr "‘%s’ код %L није вредност"
+
+#: fortran/expr.c:1912
+#, no-c-format
+msgid "Incompatible ranks %d and %d in assignment at %L"
+msgstr "Несагласни рангови %d и %d у додели код %L"
+
+#: fortran/expr.c:1919
+#, no-c-format
+msgid "Variable type is UNKNOWN in assignment at %L"
+msgstr "Тип променљиве је UNKNOWN у додели код %L"
+
+#: fortran/expr.c:1926
+#, no-c-format
+msgid "NULL appears on right-hand side in assignment at %L"
+msgstr "Појављује се NULL на десној страни у додели код %L"
+
+#: fortran/expr.c:1936
+#, no-c-format
+msgid "Vector assignment to assumed-size Cray Pointee at %L is illegal."
+msgstr "Векторска додела у Крејов показивани претпостављене величине код %L није дозвољена."
+
+#: fortran/expr.c:1945
+#, no-c-format
+msgid "POINTER valued function appears on right-hand side of assignment at %L"
+msgstr "Функција са показивачком вредношћу појављује се на десној страни доделе код %L"
+
+#: fortran/expr.c:1950
+msgid "Array assignment"
+msgstr "Низовна додела"
+
+#: fortran/expr.c:1967
+#, no-c-format
+msgid "Incompatible types in assignment at %L, %s to %s"
+msgstr "Несагласни типови у додели код %L, %s у %s"
+
+#: fortran/expr.c:1990
+#, no-c-format
+msgid "Pointer assignment target is not a POINTER at %L"
+msgstr "Циљ доделе показивача није показивач код %L"
+
+#: fortran/expr.c:1998
+#, no-c-format
+msgid "'%s' in the pointer assignment at %L cannot be an l-value since it is a procedure"
+msgstr "‘%s’ у додели показивача код %L не може бити л-вредност јер је процедура"
+
+#: fortran/expr.c:2007
+#, no-c-format
+msgid "Pointer assignment to non-POINTER at %L"
+msgstr "Додела показивача непоказивачу код %L"
+
+#: fortran/expr.c:2015
+#, no-c-format
+msgid "Bad pointer object in PURE procedure at %L"
+msgstr "Лош показивачки објекат у чистој процедури код %L"
+
+#: fortran/expr.c:2028
+#, no-c-format
+msgid "Different types in pointer assignment at %L"
+msgstr "Различити типови у додели показивача код %L"
+
+#: fortran/expr.c:2035
+#, no-c-format
+msgid "Different kind type parameters in pointer assignment at %L"
+msgstr "Различите врсте типова параметара у додели показивача код %L"
+
+#: fortran/expr.c:2042
+#, no-c-format
+msgid "Different ranks in pointer assignment at %L"
+msgstr "Различити рангови у додели показивача код %L"
+
+#: fortran/expr.c:2056
+#, no-c-format
+msgid "Different character lengths in pointer assignment at %L"
+msgstr "Различите знаковне дужине у додели показивача код %L"
+
+#: fortran/expr.c:2064
+#, no-c-format
+msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
+msgstr "Циљ доделе показивача није ни циљ ни показивач код %L"
+
+#: fortran/expr.c:2071
+#, no-c-format
+msgid "Bad target in pointer assignment in PURE procedure at %L"
+msgstr "Лош циљ у додели показивача у чистој процедури код %L"
+
+#: fortran/expr.c:2077
+#, no-c-format
+msgid "Pointer assignment with vector subscript on rhs at %L"
+msgstr "Додела показивача са векторским индексом на десној страни код %L"
+
+#: fortran/expr.c:2095
+#, no-c-format
+msgid "The upper bound in the last dimension of the assumed_size array on the rhs of the pointer assignment at %L must be set"
+msgstr "Горња граница последње димензије низа претпостављене величине, на десној страни доделе показивача код %L, мора бити постављена"
+
+#: fortran/gfortranspec.c:232
+#, c-format
+msgid "overflowed output arg list for '%s'"
+msgstr "преливена листа излазних аргумената за ‘%s’"
+
+#: fortran/gfortranspec.c:352
+#, c-format
+msgid ""
+"GNU Fortran comes with NO WARRANTY, to the extent permitted by law.\n"
+"You may redistribute copies of GNU Fortran\n"
+"under the terms of the GNU General Public License.\n"
+"For more information about these matters, see the file named COPYING\n"
+"\n"
+msgstr ""
+"Гнуов фортран долази БЕЗ ГАРАНЦИЈА, колико је допуштено законом.\n"
+"Можете делити копије Гнуовог фортрана\n"
+"под условима Гнуове Опште јавне лиценце.\n"
+"За више информација о овоме, погледајте датотеку по имену COPYING\n"
+
+#: fortran/gfortranspec.c:374
+#, c-format
+msgid "argument to '%s' missing"
+msgstr "недостаје аргумент за ‘%s’"
+
+#: fortran/gfortranspec.c:378
+#, c-format
+msgid "no input files; unwilling to write output files"
+msgstr "нема улазних датотека; безвољан да запишем излазне"
+
+#: fortran/gfortranspec.c:530
+#, c-format
+msgid "Driving:"
+msgstr "Погон:"
+
+#: fortran/interface.c:175
+#, no-c-format
+msgid "Syntax error in generic specification at %C"
+msgstr "Синтаксна грешка у генеричкој одредници код %C"
+
+#: fortran/interface.c:204
+#, no-c-format
+msgid "Syntax error: Trailing garbage in INTERFACE statement at %C"
+msgstr "Синтаксна грешка: Пратеће смеће у наредби INTERFACE код %C"
+
+#: fortran/interface.c:262
+#, no-c-format
+msgid "Syntax error: Trailing garbage in END INTERFACE statement at %C"
+msgstr "Синтаксна грешка: Пратеће смеће у наредби END INTERFACE код %C"
+
+#: fortran/interface.c:273
+#, no-c-format
+msgid "Expected a nameless interface at %C"
+msgstr "Очекивано је безимено сучеље код %C"
+
+#: fortran/interface.c:284
+#, no-c-format
+msgid "Expected 'END INTERFACE ASSIGNMENT (=)' at %C"
+msgstr "Очекивано је ‘END INTERFACE ASSIGNMENT (=)’ код %C"
+
+#: fortran/interface.c:286
+#, no-c-format
+msgid "Expecting 'END INTERFACE OPERATOR (%s)' at %C"
+msgstr "Очекивано је ‘END INTERFACE OPERATOR (%s)’ код %C"
+
+#: fortran/interface.c:300
+#, no-c-format
+msgid "Expecting 'END INTERFACE OPERATOR (.%s.)' at %C"
+msgstr "Очекивано је ‘END INTERFACE OPERATOR (.%s.)’ код %C"
+
+#: fortran/interface.c:311
+#, no-c-format
+msgid "Expecting 'END INTERFACE %s' at %C"
+msgstr "Очекивано је ‘END INTERFACE %s’ код %C"
+
+#: fortran/interface.c:523
+#, no-c-format
+msgid "Assignment operator interface at %L must be a SUBROUTINE"
+msgstr "Сучеље оператора доделе код %L мора бити потпрограм"
+
+#: fortran/interface.c:532
+#, no-c-format
+msgid "Intrinsic operator interface at %L must be a FUNCTION"
+msgstr "Сучеље сопственог оператора код %L мора бити функција"
+
+#: fortran/interface.c:619
+#, no-c-format
+msgid "First argument of defined assignment at %L must be INTENT(IN) or INTENT(INOUT)"
+msgstr "Први аргумент дефинисане доделе код %L мора бити намере-у или -у/из"
+
+#: fortran/interface.c:623
+#, no-c-format
+msgid "Second argument of defined assignment at %L must be INTENT(IN)"
+msgstr "Други аргумент дефинисане доделе код %L мора бити намере-у"
+
+#: fortran/interface.c:629 fortran/resolve.c:6021
+#, no-c-format
+msgid "First argument of operator interface at %L must be INTENT(IN)"
+msgstr "Први аргумент сучеља оператора код %L мора бити намере-у"
+
+#: fortran/interface.c:633 fortran/resolve.c:6033
+#, no-c-format
+msgid "Second argument of operator interface at %L must be INTENT(IN)"
+msgstr "Други аргумент сучеља оператора код %L мора бити намере-у"
+
+#: fortran/interface.c:640
+#, no-c-format
+msgid "Operator interface at %L conflicts with intrinsic interface"
+msgstr "Сучеље оператора код %L коси се са сопственим сучељем"
+
+#: fortran/interface.c:645
+#, no-c-format
+msgid "Operator interface at %L has the wrong number of arguments"
+msgstr "Сучеље оператора код %L има погрешан број аргумената"
+
+#: fortran/interface.c:894
+#, no-c-format
+msgid "Procedure '%s' in %s at %L is neither function nor subroutine"
+msgstr "Процедура ‘%s’ у %s код %L није ни функција ни потпрограм"
+
+#: fortran/interface.c:948
+#, no-c-format
+msgid "Ambiguous interfaces '%s' and '%s' in %s at %L"
+msgstr "Двосмислена сучеља ‘%s’ и ‘%s’ у %s код %L"
+
+#: fortran/interface.c:1198
+#, no-c-format
+msgid "Keyword argument '%s' at %L is not in the procedure"
+msgstr "Кључна реч ‘%s’ код %L није у процедури"
+
+#: fortran/interface.c:1207
+#, no-c-format
+msgid "Keyword argument '%s' at %L is already associated with another actual argument"
+msgstr "Кључна реч ‘%s’ код %L је већ придружена другом стварном аргументу"
+
+#: fortran/interface.c:1217
+#, no-c-format
+msgid "More actual than formal arguments in procedure call at %L"
+msgstr "Више стварних него формалних аргумената у позиву процедуре код %L"
+
+#: fortran/interface.c:1230
+#, no-c-format
+msgid "Missing alternate return spec in subroutine call at %L"
+msgstr "Недостаје одредница алтернативног враћања у позиву потпрограма код %L"
+
+#: fortran/interface.c:1239
+#, no-c-format
+msgid "Unexpected alternate return spec in subroutine call at %L"
+msgstr "Неочекивана одредница алтернативног враћања у позиву потпрограма код %L"
+
+#: fortran/interface.c:1254
+#, no-c-format
+msgid "Type/rank mismatch in argument '%s' at %L"
+msgstr "Неслагање типа/ранга у аргументу ‘%s’ код %L"
+
+#: fortran/interface.c:1269
+#, no-c-format
+msgid "Actual argument for '%s' cannot be an assumed-size array at %L"
+msgstr "Стварни аргумент за ‘%s’ код %L не може бити низ претпостављене величине"
+
+#: fortran/interface.c:1278
+#, no-c-format
+msgid "Actual argument for '%s' must be a pointer at %L"
+msgstr "Стварни аргумент за ‘%s’ код %L мора бити показивач"
+
+#: fortran/interface.c:1288
+#, no-c-format
+msgid "Actual argument at %L must be definable to match dummy INTENT = OUT/INOUT"
+msgstr "Стварни аргумент код %L мора бити могуће дефинисати да одговара лажном INTENT = OUT/INOUT"
+
+#: fortran/interface.c:1309
+#, no-c-format
+msgid "Missing actual argument for argument '%s' at %L"
+msgstr "Недостаје стварни аргумент за аргумент ‘%s’ код %L"
+
+#: fortran/interface.c:1494
+#, no-c-format
+msgid "Same actual argument associated with INTENT(%s) argument '%s' and INTENT(%s) argument '%s' at %L"
+msgstr "Исти стварни аргумент придружен намере-%s аргументу ‘%s’ и намере-%s аргументу ‘%s’ код %L"
+
+#: fortran/interface.c:1535
+#, no-c-format
+msgid "Procedure argument at %L is INTENT(IN) while interface specifies INTENT(%s)"
+msgstr "Аргумент процедуре код %L је намере-у док сучеље задаје намеру-%s"
+
+#: fortran/interface.c:1546
+#, no-c-format
+msgid "Procedure argument at %L is local to a PURE procedure and is passed to an INTENT(%s) argument"
+msgstr "Аргумент процедуре код %L је локалан у чистој процедури и прослеђује се аргументу намере-%s"
+
+#: fortran/interface.c:1555
+#, no-c-format
+msgid "Procedure argument at %L is local to a PURE procedure and has the POINTER attribute"
+msgstr "Аргумент процедуре код %L је локалан у чистој процедури и има атрибут показивача"
+
+#: fortran/interface.c:1577
+#, no-c-format
+msgid "Procedure '%s' called with an implicit interface at %L"
+msgstr "Процедура ‘%s’ позвана са имплицитним сучељем код %L"
+
+#: fortran/interface.c:1744
+#, no-c-format
+msgid "Function '%s' called in lieu of an operator at %L must be PURE"
+msgstr "Функција ‘%s’ позвана уместо оператора код %L мора бити чиста"
+
+#: fortran/interface.c:1824
+#, no-c-format
+msgid "Entity '%s' at %C is already present in the interface"
+msgstr "Ентитет ‘%s’ код %C је већ присутан у сучељу"
+
+#: fortran/intrinsic.c:2720
+#, no-c-format
+msgid "Too many arguments in call to '%s' at %L"
+msgstr "Превише аргумената у позиву ‘%s’ код %L"
+
+#: fortran/intrinsic.c:2734
+#, no-c-format
+msgid "Can't find keyword named '%s' in call to '%s' at %L"
+msgstr "Не могу да нађем кључну реч по имену ‘%s’ у позиву ‘%s’ код %L"
+
+#: fortran/intrinsic.c:2741
+#, no-c-format
+msgid "Argument '%s' is appears twice in call to '%s' at %L"
+msgstr "Аргумент ‘%s’ се појављује двапут у позиву ‘%s’ код %L"
+
+#: fortran/intrinsic.c:2755
+#, no-c-format
+msgid "Missing actual argument '%s' in call to '%s' at %L"
+msgstr "Недостаје стварни аргумент ‘%s’ у позиву ‘%s’ код %L"
+
+#: fortran/intrinsic.c:2814
+#, no-c-format
+msgid "Type of argument '%s' in call to '%s' at %L should be %s, not %s"
+msgstr "Тип аргумента ‘%s’ у позиву ‘%s’ код %L треба да је %s, не %s"
+
+#: fortran/intrinsic.c:3118
+#, no-c-format
+msgid "Ranks of arguments to elemental intrinsic '%s' differ at %L"
+msgstr "Не слажу се рангови аргумената за елементално сопствено ‘%s’ код %L"
+
+#: fortran/intrinsic.c:3164
+#, no-c-format
+msgid "Intrinsic '%s' at %L is not included in the selected standard"
+msgstr "Сопствено ‘%s’ код %L није укључено у изабрани стандард"
+
+#: fortran/intrinsic.c:3267
+#, no-c-format
+msgid "Extension: Evaluation of nonstandard initialization expression at %L"
+msgstr "Проширење: Израчунавање нестандардног успостављачког израза код %L"
+
+#: fortran/intrinsic.c:3327
+#, no-c-format
+msgid "Subroutine call to intrinsic '%s' at %L is not PURE"
+msgstr "Позив потпрограма сопственог ‘%s’ код %L није чист"
+
+#: fortran/intrinsic.c:3402
+#, no-c-format
+msgid "Extension: Conversion from %s to %s at %L"
+msgstr "Проширење: Претварање из %s у %s код %L"
+
+#: fortran/intrinsic.c:3405
+#, no-c-format
+msgid "Conversion from %s to %s at %L"
+msgstr "Претварање из %s у %s код %L"
+
+#: fortran/intrinsic.c:3453
+#, no-c-format
+msgid "Can't convert %s to %s at %L"
+msgstr "Не могу да претворим %s у %s код %L"
+
+#: fortran/io.c:415
+msgid "Positive width required"
+msgstr "Потребна је позитивна ширина"
+
+#: fortran/io.c:416
+msgid "Period required"
+msgstr "Потребан је период"
+
+#: fortran/io.c:417
+msgid "Nonnegative width required"
+msgstr "Потребна је ненегативна ширина"
+
+#: fortran/io.c:418
+msgid "Unexpected element"
+msgstr "Неочекивани елемент"
+
+#: fortran/io.c:419
+msgid "Unexpected end of format string"
+msgstr "Неочекивани крај форматирајуће ниске"
+
+#: fortran/io.c:436
+msgid "Missing leading left parenthesis"
+msgstr "Недостаје водећа лева заграда"
+
+#: fortran/io.c:474
+msgid "Expected P edit descriptor"
+msgstr "Очекиван је описник уређивања P"
+
+#. P requires a prior number.
+#: fortran/io.c:482
+msgid "P descriptor requires leading scale factor"
+msgstr "Описник P захтева водећи фактор размере"
+
+#. X requires a prior number if we're being pedantic.
+#: fortran/io.c:487
+#, no-c-format
+msgid "Extension: X descriptor requires leading space count at %C"
+msgstr "Проширење: Описник X захтева водећи број размака код %C"
+
+#: fortran/io.c:507
+#, no-c-format
+msgid "Extension: $ descriptor at %C"
+msgstr "Проширење: описник $ код %C"
+
+#: fortran/io.c:512
+msgid "$ must be the last specifier"
+msgstr "$ мора бити задњи наводилац"
+
+#: fortran/io.c:557
+msgid "Repeat count cannot follow P descriptor"
+msgstr "Број понављања не може пратити описник P"
+
+#: fortran/io.c:576
+#, no-c-format
+msgid "Extension: Missing positive width after L descriptor at %C"
+msgstr "Проширење: Недостаје позитивна ширина после описника L код %C"
+
+#: fortran/io.c:638
+msgid "Positive exponent width required"
+msgstr "Потребна је позитивна ширина изложиоца"
+
+#: fortran/io.c:739 fortran/io.c:791
+#, no-c-format
+msgid "Extension: Missing comma at %C"
+msgstr "Проширење: Недостаје зарез код %C"
+
+#: fortran/io.c:806 fortran/io.c:809
+#, no-c-format
+msgid "%s in format string at %C"
+msgstr "%s у форматирајућој ниски код %C"
+
+#: fortran/io.c:850
+#, no-c-format
+msgid "Format statement in module main block at %C."
+msgstr "Наредба форматирања у главном блоку модула код %C."
+
+#: fortran/io.c:856
+#, no-c-format
+msgid "Missing format label at %C"
+msgstr "Недостаје етикета формата код %C"
+
+#: fortran/io.c:914 fortran/io.c:938
+#, no-c-format
+msgid "Duplicate %s specification at %C"
+msgstr "Двострука одредница %s код %C"
+
+#: fortran/io.c:945
+#, no-c-format
+msgid "Variable tag cannot be INTENT(IN) at %C"
+msgstr "Ознака променљиве не може бити намере-у код %C"
+
+#: fortran/io.c:952
+#, no-c-format
+msgid "Variable tag cannot be assigned in PURE procedure at %C"
+msgstr "Ознака променљиве не може бити додељена у чистој процедури код %C"
+
+#: fortran/io.c:989
+#, no-c-format
+msgid "Duplicate %s label specification at %C"
+msgstr "Двострука одредница етикете %s код %C"
+
+#: fortran/io.c:1015
+#, no-c-format
+msgid "%s tag at %L must be of type %s"
+msgstr "Ознака %s код %L мора бити типа %s"
+
+#: fortran/io.c:1026
+#, no-c-format
+msgid "Constant expression in FORMAT tag at %L must be of type default CHARACTER"
+msgstr "Константан израз у ознаци FORMAT код %L мора бити типа подразумеваног CHARACTER"
+
+#: fortran/io.c:1039
+#, no-c-format
+msgid "%s tag at %L must be of type %s or %s"
+msgstr "Ознака %s код %L мора бити типа %s или %s"
+
+#: fortran/io.c:1047
+#, no-c-format
+msgid "Obsolete: ASSIGNED variable in FORMAT tag at %L"
+msgstr "Застарело: Додељена променљива у ознаци FORMAT код %L"
+
+#: fortran/io.c:1052
+#, no-c-format
+msgid "Variable '%s' at %L has not been assigned a format label"
+msgstr "Променљивој ‘%s’ код %L није додељена етикета формата"
+
+#: fortran/io.c:1067
+#, no-c-format
+msgid "Extension: Character array in FORMAT tag at %L"
+msgstr "Проширење: Знаковни низ у ознаци FORMAT код %L"
+
+#: fortran/io.c:1074
+#, no-c-format
+msgid "Extension: Non-character in FORMAT tag at %L"
+msgstr "Проширење: Не-знак у ознаци FORMAT код %L"
+
+#: fortran/io.c:1085
+#, no-c-format
+msgid "%s tag at %L must be scalar"
+msgstr "Ознака %s код %L мора бити скалар"
+
+#: fortran/io.c:1091
+#, no-c-format
+msgid "Fortran 2003: IOMSG tag at %L"
+msgstr "Фортран 2003: Ознака IOMSG код %L"
+
+#: fortran/io.c:1098
+#, no-c-format
+msgid "Fortran 95 requires default INTEGER in IOSTAT tag at %L"
+msgstr "Фортран 95 захтева подразумевни цео број у ознаци IOSTAT код %L"
+
+#: fortran/io.c:1106
+#, no-c-format
+msgid "Fortran 95 requires default INTEGER in SIZE tag at %L"
+msgstr "Фортран 95 захтева подразумевни цео број у ознаци SIZE код %L"
+
+#: fortran/io.c:1114
+#, no-c-format
+msgid "Extension: CONVERT tag at %L"
+msgstr "Проширење: ознака CONVERT код %L"
+
+#: fortran/io.c:1283
+#, no-c-format
+msgid "OPEN statement not allowed in PURE procedure at %C"
+msgstr "Наредба OPEN није дозвољена у чистој процедури код %C"
+
+#: fortran/io.c:1391
+#, no-c-format
+msgid "CLOSE statement not allowed in PURE procedure at %C"
+msgstr "Наредба CLOSE није дозвољена у чистој процедури код %C"
+
+#: fortran/io.c:1517 fortran/match.c:1457
+#, no-c-format
+msgid "%s statement not allowed in PURE procedure at %C"
+msgstr "Наредба %s није дозвољена у чистој процедури код %C"
+
+#: fortran/io.c:1577
+#, no-c-format
+msgid "Fortran 2003: FLUSH statement at %C"
+msgstr "Фортран 2003: Наредба FLUSH код %C"
+
+#: fortran/io.c:1637
+#, no-c-format
+msgid "Duplicate UNIT specification at %C"
+msgstr "Двострука одредница UNIT код %C"
+
+#: fortran/io.c:1693
+#, no-c-format
+msgid "Duplicate format specification at %C"
+msgstr "Двострука одредница формата код %C"
+
+#: fortran/io.c:1710
+#, no-c-format
+msgid "Symbol '%s' in namelist '%s' is INTENT(IN) at %C"
+msgstr "Симбол ‘%s’ у листи имена ‘%s’ је намере-у код %C"
+
+#: fortran/io.c:1746
+#, no-c-format
+msgid "Duplicate NML specification at %C"
+msgstr "Двострука одредница NML код %C"
+
+#: fortran/io.c:1755
+#, no-c-format
+msgid "Symbol '%s' at %C must be a NAMELIST group name"
+msgstr "Симбол ‘%s’ код %C мора бити име групе листе имена"
+
+#: fortran/io.c:1793
+#, no-c-format
+msgid "END tag at %C not allowed in output statement"
+msgstr "Ознака END код %C није дозвољена у излазној наредби"
+
+#: fortran/io.c:1853
+#, no-c-format
+msgid "UNIT specification at %L must be an INTEGER expression or a CHARACTER variable"
+msgstr "Одредница UNIT код %L мора бити целобројни израз или знаковна променљива"
+
+#: fortran/io.c:1862
+#, no-c-format
+msgid "Internal unit with vector subscript at %L"
+msgstr "Унутрашња јединица са векторским индексом код %L"
+
+#: fortran/io.c:1870
+#, no-c-format
+msgid "External IO UNIT cannot be an array at %L"
+msgstr "Спољашња У/И јединица не може бити низ код %L"
+
+#: fortran/io.c:1880
+#, no-c-format
+msgid "ERR tag label %d at %L not defined"
+msgstr "Етикета %d за ERR код %L није дефинисана"
+
+#: fortran/io.c:1892
+#, no-c-format
+msgid "END tag label %d at %L not defined"
+msgstr "Етикета %d за END код %L није дефинисана"
+
+#: fortran/io.c:1904
+#, no-c-format
+msgid "EOR tag label %d at %L not defined"
+msgstr "Етикета %d за EOR код %L није дефинисана"
+
+#: fortran/io.c:1914
+#, no-c-format
+msgid "FORMAT label %d at %L not defined"
+msgstr "Етикета %d за FORMAT код %L није дефинисана"
+
+#: fortran/io.c:2035
+#, no-c-format
+msgid "Syntax error in I/O iterator at %C"
+msgstr "Синтаксна грешка у У/И итератору код %C"
+
+#: fortran/io.c:2066
+#, no-c-format
+msgid "Expected variable in READ statement at %C"
+msgstr "Очекивана је променљива у наредби READ код %C"
+
+#: fortran/io.c:2072
+#, no-c-format
+msgid "Expected expression in %s statement at %C"
+msgstr "Очекиван је израз у наредби %s код %C"
+
+#: fortran/io.c:2083
+#, no-c-format
+msgid "Variable '%s' in input list at %C cannot be INTENT(IN)"
+msgstr "Променљива ‘%s’ у улазној листи код %C не може бити намере-у"
+
+#: fortran/io.c:2092
+#, no-c-format
+msgid "Cannot read to variable '%s' in PURE procedure at %C"
+msgstr "Не могу да читам у променљиву ‘%s’ у чистој процедури код %C"
+
+#: fortran/io.c:2109
+#, no-c-format
+msgid "Cannot write to internal file unit '%s' at %C inside a PURE procedure"
+msgstr "Не могу да пишем у унутрашњу датотеку ‘%s’ код %C унутар чисте процедуре"
+
+#. A general purpose syntax error.
+#: fortran/io.c:2169 fortran/io.c:2541 fortran/gfortran.h:1695
+#, no-c-format
+msgid "Syntax error in %s statement at %C"
+msgstr "Синтаксна грешка у наредби %s код %C"
+
+#: fortran/io.c:2390
+#, no-c-format
+msgid "PRINT namelist at %C is an extension"
+msgstr "Листа имена PRINT код %C је проширење"
+
+#: fortran/io.c:2502
+#, no-c-format
+msgid "Extension: Comma before output item list at %C is an extension"
+msgstr "Проширење: Зарез пре ставке излазне листе код %C је проширење"
+
+#: fortran/io.c:2511
+#, no-c-format
+msgid "Expected comma in I/O list at %C"
+msgstr "Очекиван је зарез у У/И листи код %C"
+
+#: fortran/io.c:2573
+#, no-c-format
+msgid "PRINT statement at %C not allowed within PURE procedure"
+msgstr "Наредба PRINT код %C није дозвољена у чистој процедури"
+
+#: fortran/io.c:2712 fortran/io.c:2763
+#, no-c-format
+msgid "INQUIRE statement not allowed in PURE procedure at %C"
+msgstr "Наредба INQUIRE код %C није дозвољена у чистој процедури"
+
+#: fortran/io.c:2739
+#, no-c-format
+msgid "IOLENGTH tag invalid in INQUIRE statement at %C"
+msgstr "Неисправна ознака IOLENGTH у наредби INQUIRE код %C"
+
+#: fortran/io.c:2749
+#, no-c-format
+msgid "INQUIRE statement at %L cannot contain both FILE and UNIT specifiers"
+msgstr "Наредба INQUIRE код %L не може садржати и наводилац FILE и UNIT"
+
+#: fortran/io.c:2756
+#, no-c-format
+msgid "INQUIRE statement at %L requires either FILE or UNIT specifier"
+msgstr "Наредба INQUIRE код %L захтева или наводилац FILE или UNIT"
+
+#: fortran/match.c:179
+#, no-c-format
+msgid "Integer too large at %C"
+msgstr "Цео број превелик код %C"
+
+#: fortran/match.c:239 fortran/parse.c:329
+#, no-c-format
+msgid "Too many digits in statement label at %C"
+msgstr "Превише цифара у етикети наредбе код %C"
+
+#: fortran/match.c:245 fortran/parse.c:332
+#, no-c-format
+msgid "Statement label at %C is zero"
+msgstr "Етикета наредбе код %C је нула"
+
+#: fortran/match.c:278
+#, no-c-format
+msgid "Label name '%s' at %C is ambiguous"
+msgstr "Двосмислено име етикете ‘%s’ код %C"
+
+#: fortran/match.c:284
+#, no-c-format
+msgid "Duplicate construct label '%s' at %C"
+msgstr "Двострука етикета конструкције ‘%s’ код %C"
+
+#: fortran/match.c:408
+#, no-c-format
+msgid "Name at %C is too long"
+msgstr "Предугачко име код %C"
+
+#: fortran/match.c:525
+#, no-c-format
+msgid "Loop variable at %C cannot be a sub-component"
+msgstr "Променљива петље код %C не може бити подкомпонента"
+
+#: fortran/match.c:531
+#, no-c-format
+msgid "Loop variable '%s' at %C cannot be INTENT(IN)"
+msgstr "Променљива петље ‘%s’ код %C не може бити намере-у"
+
+#: fortran/match.c:538
+#, no-c-format
+msgid "Loop variable at %C cannot have the POINTER attribute"
+msgstr "Променљива петље код %C не може имати атрибут показивача"
+
+#: fortran/match.c:568
+#, no-c-format
+msgid "Expected a step value in iterator at %C"
+msgstr "Очекивана је вредност корака у итератору код %C"
+
+#: fortran/match.c:580
+#, no-c-format
+msgid "Syntax error in iterator at %C"
+msgstr "Синтаксна грешка у итератору код %C"
+
+#: fortran/match.c:816
+#, no-c-format
+msgid "Invalid form of PROGRAM statement at %C"
+msgstr "Неисправан облик наредбе PROGRAM код %C"
+
+#: fortran/match.c:850
+#, no-c-format
+msgid "Cannot assign to a PARAMETER variable at %C"
+msgstr "Не могу да доделим у параметарску променљиву код %C"
+
+#: fortran/match.c:939 fortran/match.c:1015
+#, no-c-format
+msgid "Obsolete: arithmetic IF statement at %C"
+msgstr "Застарело: аритметичка наредба IF код %C"
+
+#: fortran/match.c:986
+#, no-c-format
+msgid "Syntax error in IF-expression at %C"
+msgstr "Синтаксна грешка у IF-изразу код %C"
+
+#: fortran/match.c:998
+#, no-c-format
+msgid "Block label not appropriate for arithmetic IF statement at %C"
+msgstr "Етикета блока није подесна за аритметичку наредбу IF код %C"
+
+#: fortran/match.c:1040
+#, no-c-format
+msgid "Block label is not appropriate IF statement at %C"
+msgstr "Етикета блока није подесна за наредбу IF код %C"
+
+#: fortran/match.c:1111
+#, no-c-format
+msgid "Unclassifiable statement in IF-clause at %C"
+msgstr "Неразврстљива наредба у одредби IF код %C"
+
+#: fortran/match.c:1118
+#, no-c-format
+msgid "Syntax error in IF-clause at %C"
+msgstr "Синтаксна грешка у одредби IF код %C"
+
+#: fortran/match.c:1162
+#, no-c-format
+msgid "Unexpected junk after ELSE statement at %C"
+msgstr "Неочекивано смеће после наредбе ELSE код %C"
+
+#: fortran/match.c:1168 fortran/match.c:1203
+#, no-c-format
+msgid "Label '%s' at %C doesn't match IF label '%s'"
+msgstr "Етикета ‘%s’ код %C не одговара етикети IF ‘%s’"
+
+#: fortran/match.c:1197
+#, no-c-format
+msgid "Unexpected junk after ELSE IF statement at %C"
+msgstr "Неочекивано смеће после наредбе ELSE IF код %C"
+
+#: fortran/match.c:1360
+#, no-c-format
+msgid "Name '%s' in %s statement at %C is not a loop name"
+msgstr "Име ‘%s’ у наредби %s код %C није име петље"
+
+#: fortran/match.c:1375
+#, no-c-format
+msgid "%s statement at %C is not within a loop"
+msgstr "Наредба %s код %C није унутар петље"
+
+#: fortran/match.c:1378
+#, no-c-format
+msgid "%s statement at %C is not within loop '%s'"
+msgstr "Наредба %s код %C није унутар петље ‘%s’"
+
+#: fortran/match.c:1435
+#, no-c-format
+msgid "Too many digits in STOP code at %C"
+msgstr "Превише цифара у коду за STOP код %L"
+
+#: fortran/match.c:1488
+#, no-c-format
+msgid "Obsolete: PAUSE statement at %C"
+msgstr "Застарело: наредба PAUSE код %C"
+
+#: fortran/match.c:1537
+#, no-c-format
+msgid "Obsolete: ASSIGN statement at %C"
+msgstr "Застарело: наредба ASSIGN код %C"
+
+#: fortran/match.c:1583
+#, no-c-format
+msgid "Obsolete: Assigned GOTO statement at %C"
+msgstr "Застарело: Додељена наредба GOTO код %C"
+
+#: fortran/match.c:1630 fortran/match.c:1682
+#, no-c-format
+msgid "Statement label list in GOTO at %C cannot be empty"
+msgstr "Листа етикета наредби у GOTO код %C не може бити празна"
+
+#: fortran/match.c:1766
+#, no-c-format
+msgid "Bad allocate-object in ALLOCATE statement at %C for a PURE procedure"
+msgstr "Лоша објекат у наредби ALLOCATE код %C у чистој процедури"
+
+#: fortran/match.c:1786
+#, no-c-format
+msgid "STAT variable '%s' of ALLOCATE statement at %C cannot be INTENT(IN)"
+msgstr "Статусна променљива ‘%s’ у наредби ALLOCATE код %C не може бити намере-у"
+
+#: fortran/match.c:1794
+#, no-c-format
+msgid "Illegal STAT variable in ALLOCATE statement at %C for a PURE procedure"
+msgstr "Недозвољена статусна променљива у наредби ALLOCATE код %C за чисту процедуру"
+
+#: fortran/match.c:1801 fortran/match.c:1967
+#, no-c-format
+msgid "STAT expression at %C must be a variable"
+msgstr "Статусни израз код %C мора бити променљива"
+
+#: fortran/match.c:1856
+#, no-c-format
+msgid "Illegal variable in NULLIFY at %C for a PURE procedure"
+msgstr "Недозвољена променљива у NULLIFY код %C за чисту процедуру"
+
+#: fortran/match.c:1934
+#, no-c-format
+msgid "Illegal deallocate-expression in DEALLOCATE at %C for a PURE procedure"
+msgstr "Недозвољени израз у DEALLOCATE код %C за чисту процедуру"
+
+#: fortran/match.c:1953
+#, no-c-format
+msgid "STAT variable '%s' of DEALLOCATE statement at %C cannot be INTENT(IN)"
+msgstr "Статусна променљива ‘%s’ у наредби DEALLOCATE код %C не може бити намере-у"
+
+#: fortran/match.c:1960
+#, no-c-format
+msgid "Illegal STAT variable in DEALLOCATE statement at %C for a PURE procedure"
+msgstr "Статусна променљива ‘%s’ у наредби DEALLOCATE код %C за чисту процедуру"
+
+#: fortran/match.c:2009
+#, no-c-format
+msgid "Alternate RETURN statement at %C is only allowed within a SUBROUTINE"
+msgstr "Алтернативна наредба RETURN код %C дозвољена је само унутар потпрограма"
+
+#: fortran/match.c:2040
+#, no-c-format
+msgid "Extension: RETURN statement in main program at %C"
+msgstr "Проширење: Наредба RETURN у главном програму код %C"
+
+#: fortran/match.c:2235
+#, no-c-format
+msgid "Syntax error in common block name at %C"
+msgstr "Синтаксна грешка у имену заједничког блока код %C"
+
+#: fortran/match.c:2271
+#, no-c-format
+msgid "Symbol '%s' at %C is already an external symbol that is not COMMON"
+msgstr "Симбол ‘%s’ код %C је већ спољашњи симбол који није заједнички"
+
+#: fortran/match.c:2318
+#, no-c-format
+msgid "Symbol '%s' at %C is already in a COMMON block"
+msgstr "Симбол ‘%s’ код %C је већ у заједничком блоку"
+
+#: fortran/match.c:2330
+#, no-c-format
+msgid "Previously initialized symbol '%s' in blank COMMON block at %C"
+msgstr "Претходно успостављен симбол ‘%s’ у празном заједничком блоку код %C"
+
+#: fortran/match.c:2333
+#, no-c-format
+msgid "Previously initialized symbol '%s' in COMMON block '%s' at %C"
+msgstr "Претходно успостављен симбол ‘%s’ у заједничком блоку ‘%s’ код %C"
+
+#: fortran/match.c:2345
+#, no-c-format
+msgid "Derived type variable in COMMON at %C does not have the SEQUENCE attribute"
+msgstr "Променљива изведеног типа у заједничком код %C нема атрибут SEQUENCE"
+
+#: fortran/match.c:2368
+#, no-c-format
+msgid "Array specification for symbol '%s' in COMMON at %C must be explicit"
+msgstr "Одредница низа за симбол ‘%s’ у заједничком код %C мора бити експлицитна"
+
+#: fortran/match.c:2379
+#, no-c-format
+msgid "Symbol '%s' in COMMON at %C cannot be a POINTER array"
+msgstr "Симбол ‘%s’ у заједничком код %C не може бити низ показивача"
+
+#: fortran/match.c:2411
+#, no-c-format
+msgid "Symbol '%s', in COMMON block '%s' at %C is being indirectly equivalenced to another COMMON block '%s'"
+msgstr "Симбол ‘%s’ у заједничком блоку ‘%s’ код %C посредно се еквивалентира са другим заједничким блоком, ‘%s’"
+
+#: fortran/match.c:2521
+#, no-c-format
+msgid "Namelist group name '%s' at %C already has a basic type of %s"
+msgstr "Име групе листе имена ‘%s’ код %C већ има основни тип %s"
+
+#: fortran/match.c:2528
+#, no-c-format
+msgid "Namelist group name '%s' at %C already is USE associated and cannot be respecified."
+msgstr "Име групе листе имена ‘%s’ код %C је већ употребно придружено и не може се поново одредити."
+
+#: fortran/match.c:2555
+#, no-c-format
+msgid "Assumed size array '%s' in namelist '%s'at %C is not allowed."
+msgstr "Низ претпостављене величине ‘%s’ у листи имена ‘%s’ код %C није дозвољен."
+
+#: fortran/match.c:2561
+#, no-c-format
+msgid "Assumed shape array '%s' in namelist '%s' at %C is an extension."
+msgstr "Низ претпостављене величине ‘%s’ у листи имена ‘%s’ код %C јесте проширење."
+
+#: fortran/match.c:2690
+#, no-c-format
+msgid "Derived type component %C is not a permitted EQUIVALENCE member"
+msgstr "Компонента изведеног типа %C није дозвољен члан у еквиваленцији"
+
+#: fortran/match.c:2699
+#, no-c-format
+msgid "Array reference in EQUIVALENCE at %C cannot be an array section"
+msgstr "Упућивач низа у еквивалецији код %C не може бити одељак низа"
+
+#: fortran/match.c:2728
+#, no-c-format
+msgid "EQUIVALENCE at %C requires two or more objects"
+msgstr "Еквиваленција код %C захтева два или више објеката"
+
+#: fortran/match.c:2742
+#, no-c-format
+msgid "Attempt to indirectly overlap COMMON blocks %s and %s by EQUIVALENCE at %C"
+msgstr "Покушај посредног преклапања заједничких блокова %s и %s помоћу еквиваленције код %C"
+
+#: fortran/match.c:2894
+#, no-c-format
+msgid "Statement function at %L is recursive"
+msgstr "Наредбена функција код %L је рекурзивна"
+
+#: fortran/match.c:2984
+#, no-c-format
+msgid "Expected initialization expression in CASE at %C"
+msgstr "Очекиван је успостављачки израз у CASE код %C"
+
+#: fortran/match.c:3011
+#, no-c-format
+msgid "Expected case name of '%s' at %C"
+msgstr "Очекивано је име случаја за ‘%s’ код %C"
+
+#: fortran/match.c:3055
+#, no-c-format
+msgid "Unexpected CASE statement at %C"
+msgstr "Неочекивана наредба CASE код %C"
+
+#: fortran/match.c:3107
+#, no-c-format
+msgid "Syntax error in CASE-specification at %C"
+msgstr "Синтаксна грешка у одредници CASE код %C"
+
+#: fortran/match.c:3227
+#, no-c-format
+msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
+msgstr "Наредба ELSEWHERE код %C није обухваћена блоком WHERE"
+
+#: fortran/match.c:3258
+#, no-c-format
+msgid "Label '%s' at %C doesn't match WHERE label '%s'"
+msgstr "Етикета ‘%s’ код %C не одговара етикети WHERE ‘%s’"
+
+#: fortran/match.c:3353
+#, no-c-format
+msgid "Syntax error in FORALL iterator at %C"
+msgstr "Синтаксна грешка у итератору FORALL код %C"
+
+#: fortran/matchexp.c:29
+#, c-format
+msgid "Syntax error in expression at %C"
+msgstr "Синтаксна грешка у изразу код %C"
+
+#: fortran/matchexp.c:73
+#, no-c-format
+msgid "Bad character '%c' in OPERATOR name at %C"
+msgstr "Лош знак ‘%c’ у имену оператора код %C"
+
+#: fortran/matchexp.c:81
+#, no-c-format
+msgid "The name '%s' cannot be used as a defined operator at %C"
+msgstr "Име ‘%s’ се не може употребити као дефинисани оператор код %C"
+
+#: fortran/matchexp.c:160
+#, no-c-format
+msgid "Expected a right parenthesis in expression at %C"
+msgstr "Очекивана је десна заграда у изразу код %C"
+
+#: fortran/matchexp.c:302
+#, no-c-format
+msgid "Expected exponent in expression at %C"
+msgstr "Очекиван је изложилац у изразу код %C"
+
+#: fortran/matchexp.c:338 fortran/matchexp.c:442
+#, no-c-format
+msgid "Extension: Unary operator following arithmetic operator (use parentheses) at %C"
+msgstr "Проширење: Унарни оператор прати аритметички (користите заграде) код %C"
+
+#: fortran/misc.c:42
+#, no-c-format
+msgid "Out of memory-- malloc() failed"
+msgstr "Недовољно меморије — malloc() крахирао"
+
+#: fortran/module.c:532
+#, no-c-format
+msgid "Missing generic specification in USE statement at %C"
+msgstr "Недостаје генеричка одредница у наредби USE код %C"
+
+#: fortran/module.c:840
+#, no-c-format
+msgid "Reading module %s at line %d column %d: %s"
+msgstr "Читање модула %s, линија %d колона %d: %s"
+
+#: fortran/module.c:844
+#, no-c-format
+msgid "Writing module %s at line %d column %d: %s"
+msgstr "Писање модула %s, линија %d колона %d: %s"
+
+#: fortran/module.c:848
+#, no-c-format
+msgid "Module %s at line %d column %d: %s"
+msgstr "Модул %s, линија %d колона %d: %s"
+
+#: fortran/module.c:890
+msgid "Unexpected EOF"
+msgstr "Неочекивано EOF"
+
+#: fortran/module.c:922
+msgid "Unexpected end of module in string constant"
+msgstr "Неочекиван крај модула у константној ниски"
+
+#: fortran/module.c:976
+msgid "Integer overflow"
+msgstr "Целобројно преливање"
+
+#: fortran/module.c:1007
+msgid "Name too long"
+msgstr "Предугачко име"
+
+#: fortran/module.c:1114
+msgid "Bad name"
+msgstr "Лоше име"
+
+#: fortran/module.c:1158
+msgid "Expected name"
+msgstr "Очекивано је име"
+
+#: fortran/module.c:1161
+msgid "Expected left parenthesis"
+msgstr "Очекивана је лева заграда"
+
+#: fortran/module.c:1164
+msgid "Expected right parenthesis"
+msgstr "Очекивана је десна заграда"
+
+#: fortran/module.c:1167
+msgid "Expected integer"
+msgstr "Очекиван је цео број"
+
+#: fortran/module.c:1170
+msgid "Expected string"
+msgstr "Очекивана је ниска"
+
+#: fortran/module.c:1194
+msgid "find_enum(): Enum not found"
+msgstr "find_enum(): Енумерација није нађена"
+
+#: fortran/module.c:1209
+#, no-c-format
+msgid "Error writing modules file: %s"
+msgstr "Грешка при писању датотеке модула: %s"
+
+#: fortran/module.c:1568
+msgid "Expected attribute bit name"
+msgstr "Очекивано је име атрибутског бита"
+
+#: fortran/module.c:2330
+msgid "Expected integer string"
+msgstr "Очекивана је целобројна ниска"
+
+#: fortran/module.c:2334
+msgid "Error converting integer"
+msgstr "Грешка при претварању целог броја"
+
+#: fortran/module.c:2357
+msgid "Expected real string"
+msgstr "Очекивана је реална ниска"
+
+#: fortran/module.c:2504
+msgid "Expected expression type"
+msgstr "Очекиван је тип израза"
+
+#: fortran/module.c:2550
+msgid "Bad operator"
+msgstr "Лош оператор"
+
+#: fortran/module.c:2636
+msgid "Bad type in constant expression"
+msgstr "Лош тип у константном изразу"
+
+#: fortran/module.c:2673
+#, no-c-format
+msgid "Namelist %s cannot be renamed by USE association to %s."
+msgstr "Листа имена %s не може се преименовати у %s придружењем USE."
+
+#: fortran/module.c:3369
+#, no-c-format
+msgid "Symbol '%s' referenced at %L not found in module '%s'"
+msgstr "Симбол ‘%s’ поменут код %L није нађен у модулу ‘%s’"
+
+#: fortran/module.c:3377
+#, no-c-format
+msgid "User operator '%s' referenced at %L not found in module '%s'"
+msgstr "Кориснички оператор ‘%s’ поменут код %L није нађен у модулу ‘%s’"
+
+#: fortran/module.c:3383
+#, no-c-format
+msgid "Intrinsic operator '%s' referenced at %L not found in module '%s'"
+msgstr "Сопствени оператор ‘%s’ поменут код %L није нађен у модулу ‘%s’"
+
+#: fortran/module.c:3738
+#, no-c-format
+msgid "Can't open module file '%s' for writing at %C: %s"
+msgstr "Не могу да отворим датотеку модула ‘%s’ за писање код %C: %s"
+
+#: fortran/module.c:3763
+#, no-c-format
+msgid "Error writing module file '%s' for writing: %s"
+msgstr "Грешка при отварању датотеке модула ‘%s’ за писање: %s"
+
+#: fortran/module.c:3784
+#, no-c-format
+msgid "Can't open module file '%s' for reading at %C: %s"
+msgstr "Не могу да отворим датотеку модула ‘%s’ за читање код %C: %s"
+
+#: fortran/module.c:3798
+msgid "Unexpected end of module"
+msgstr "Неочекиван крај модула"
+
+#: fortran/module.c:3806
+#, no-c-format
+msgid "Can't USE the same module we're building!"
+msgstr "Не може USE за исти модул који градимо!"
+
+#: fortran/options.c:232
+#, no-c-format
+msgid "Reading file '%s' as free form."
+msgstr "Читам датотеку ‘%s’ као слободан облик."
+
+#: fortran/options.c:242
+#, no-c-format
+msgid "'-fd-lines-as-comments' has no effect in free form."
+msgstr "‘-fd-lines-as-comments’ нема ефекта у слободном облику."
+
+#: fortran/options.c:245
+#, no-c-format
+msgid "'-fd-lines-as-code' has no effect in free form."
+msgstr "‘-fd-lines-as-code’ нема ефекта у слободном облику."
+
+#: fortran/options.c:314
+#, c-format
+msgid "gfortran: Only one -M option allowed\n"
+msgstr "gfortran: Дозвољена је само једна опција -M\n"
+
+#: fortran/options.c:320
+#, c-format
+msgid "gfortran: Directory required after -M\n"
+msgstr "gfortran: Потребан је директоријум после -M\n"
+
+#: fortran/options.c:360
+#, no-c-format
+msgid "Argument to -ffpe-trap is not valid: %s"
+msgstr "Аргумент за -ffpe-trap није исправан: %s"
+
+#: fortran/options.c:460
+#, no-c-format
+msgid "Fixed line length must be at least seven."
+msgstr "Фиксна дужина линије мора бити барем седам."
+
+#: fortran/options.c:514
+#, no-c-format
+msgid "Maximum supported idenitifier length is %d"
+msgstr "Највећа подржана дужина идентификатора је %d"
+
+#: fortran/options.c:521
+#, no-c-format
+msgid "Argument to -fqkind isn't a valid real kind"
+msgstr "Аргумент за -fqkind није исправна реална врста"
+
+#: fortran/parse.c:294
+#, no-c-format
+msgid "Unclassifiable statement at %C"
+msgstr "Неразврстљива наредба код %C"
+
+#: fortran/parse.c:339 fortran/parse.c:414
+#, no-c-format
+msgid "Non-numeric character in statement label at %C"
+msgstr "Небројевни знак у етикети наредбе код %C"
+
+#: fortran/parse.c:352
+#, no-c-format
+msgid "Ignoring statement label in empty statement at %C"
+msgstr "Игноришем етикету наредбе у празној наредби код %C"
+
+#: fortran/parse.c:422
+#, no-c-format
+msgid "Zero is not a valid statement label at %C"
+msgstr "Нула није исправна етикета наредбе код %C"
+
+#: fortran/parse.c:441
+#, no-c-format
+msgid "Bad continuation line at %C"
+msgstr "Лоше настављање линије код %C"
+
+#: fortran/parse.c:468
+#, no-c-format
+msgid "Statement label in blank line will be ignored at %C"
+msgstr "Етикета наредбе у празној линији код %C ће бити игнорисана"
+
+#: fortran/parse.c:494
+#, no-c-format
+msgid "Line truncated at %C"
+msgstr "Линија одсечена код %C"
+
+#: fortran/parse.c:667
+#, no-c-format
+msgid "FORMAT statement at %L does not have a statement label"
+msgstr "Наредба FORMAT код %L нема етикету наредбе"
+
+#: fortran/parse.c:739
+msgid "arithmetic IF"
+msgstr "аритметичко IF"
+
+#: fortran/parse.c:745
+msgid "attribute declaration"
+msgstr "декларација атрибута"
+
+#: fortran/parse.c:775
+msgid "data declaration"
+msgstr "декларација података"
+
+#: fortran/parse.c:784
+msgid "derived type declaration"
+msgstr "декларација изведеног типа"
+
+#: fortran/parse.c:863
+msgid "block IF"
+msgstr "блоковско IF"
+
+#: fortran/parse.c:872
+msgid "implied END DO"
+msgstr "имплицитно END DO"
+
+#: fortran/parse.c:939
+msgid "assignment"
+msgstr "додела"
+
+#: fortran/parse.c:942
+msgid "pointer assignment"
+msgstr "додела показивача"
+
+#: fortran/parse.c:951
+msgid "simple IF"
+msgstr "једноставно IF"
+
+#: fortran/parse.c:1088
+#, no-c-format
+msgid "Unexpected %s statement at %C"
+msgstr "Неочекивана наредба %s код %C"
+
+#: fortran/parse.c:1220
+#, no-c-format
+msgid "%s statement at %C cannot follow %s statement at %L"
+msgstr "Наредба %s код %C не може пратити наредбу %s код %L"
+
+#: fortran/parse.c:1237
+#, no-c-format
+msgid "Unexpected end of file in '%s'"
+msgstr "Неочекиван крај датотеке у ‘%s’"
+
+#: fortran/parse.c:1290
+#, no-c-format
+msgid "Derived type definition at %C has no components"
+msgstr "Дефиниција изведеног типа код %C нема компонената"
+
+#: fortran/parse.c:1301
+#, no-c-format
+msgid "PRIVATE statement in TYPE at %C must be inside a MODULE"
+msgstr "Наредба PRIVATE у TYPE код %C мора бити унутар модула"
+
+#: fortran/parse.c:1308
+#, no-c-format
+msgid "PRIVATE statement at %C must precede structure components"
+msgstr "Наредба PRIVATE код %C мора претходити компонентама структуре"
+
+#: fortran/parse.c:1316
+#, no-c-format
+msgid "Duplicate PRIVATE statement at %C"
+msgstr "Двострука наредба PRIVATE код %C"
+
+#: fortran/parse.c:1328
+#, no-c-format
+msgid "SEQUENCE statement at %C must precede structure components"
+msgstr "Наредба SEQUENCE код %C мора претходити компонентама структуре"
+
+#: fortran/parse.c:1335
+#, no-c-format
+msgid "SEQUENCE attribute at %C already specified in TYPE statement"
+msgstr "Атрибут SEQUENCE код %C је већ наведен у наредби TYPE"
+
+#: fortran/parse.c:1340
+#, no-c-format
+msgid "Duplicate SEQUENCE statement at %C"
+msgstr "Двострука наредба SEQUENCE код %C"
+
+#: fortran/parse.c:1364
+#, no-c-format
+msgid "Component %s of SEQUENCE type declared at %C does not have the SEQUENCE attribute"
+msgstr "Компонента %s у типу SEQUENCE декларисаном код %C не садржи атрибут SEQUENCE"
+
+#: fortran/parse.c:1409
+#, no-c-format
+msgid "ENUM declaration at %C has no ENUMERATORS"
+msgstr "Декларација ENUM код %C не садржи набрајаче"
+
+#: fortran/parse.c:1483
+#, no-c-format
+msgid "Unexpected %s statement in INTERFACE block at %C"
+msgstr "Неочекивана наредба %s у блоку INTERFACE код %C"
+
+#: fortran/parse.c:1510
+#, no-c-format
+msgid "SUBROUTINE at %C does not belong in a generic function interface"
+msgstr "Потпрограм код %C не спада у генеричко сучеље функције"
+
+#: fortran/parse.c:1515
+#, no-c-format
+msgid "FUNCTION at %C does not belong in a generic subroutine interface"
+msgstr "Функција код %C не спада у генеричко сучеље функције"
+
+#: fortran/parse.c:1532
+#, no-c-format
+msgid "Unexpected %s statement at %C in INTERFACE body"
+msgstr "Неочекивана наредба %s код %C у телу сучеља"
+
+#: fortran/parse.c:1604
+#, no-c-format
+msgid "%s statement must appear in a MODULE"
+msgstr "Наредба %s се мора појавити у модулу"
+
+#: fortran/parse.c:1611
+#, no-c-format
+msgid "%s statement at %C follows another accessibility specification"
+msgstr "Наредба %s код %C прати другачију одредницу приступа"
+
+#: fortran/parse.c:1688
+#, no-c-format
+msgid "ELSEWHERE statement at %C follows previous unmasked ELSEWHERE"
+msgstr "Наредба ELSEWHERE код %C прати претходно демаскирано ELSEWHERE"
+
+#: fortran/parse.c:1709
+#, no-c-format
+msgid "Unexpected %s statement in WHERE block at %C"
+msgstr "Неочекивана наредба %s у блоку WHERE код %C"
+
+#: fortran/parse.c:1769
+#, no-c-format
+msgid "Unexpected %s statement in FORALL block at %C"
+msgstr "Неочекивана наредба %s у блоку FORALL код %C"
+
+#: fortran/parse.c:1821
+#, no-c-format
+msgid "ELSE IF statement at %C cannot follow ELSE statement at %L"
+msgstr "Наредба ELSE IF код %C не може пратити наредбу ELSE код %L"
+
+#: fortran/parse.c:1839
+#, no-c-format
+msgid "Duplicate ELSE statements at %L and %C"
+msgstr "Двоструке наредбе ELSE код %L и %C"
+
+#: fortran/parse.c:1901
+#, no-c-format
+msgid "Expected a CASE or END SELECT statement following SELECT CASE at %C"
+msgstr "Очекивана је наредба CASE или END SELECT после SELECT CASE код %C"
+
+#: fortran/parse.c:1959
+#, no-c-format
+msgid "Variable '%s' at %C cannot be redefined inside loop beginning at %L"
+msgstr "Променљива ‘%s’ код %C не може се редефинисати унутар петље која почиње код %L"
+
+#: fortran/parse.c:1994
+#, no-c-format
+msgid "End of nonblock DO statement at %C is within another block"
+msgstr "Крај неблоковске наредбе DO код %C је унутар другог блока"
+
+#: fortran/parse.c:2003
+#, no-c-format
+msgid "End of nonblock DO statement at %C is interwoven with another DO loop"
+msgstr "Крај неблоковске наредбе DO код %C је уплетена са другом DO петљом"
+
+#: fortran/parse.c:2053
+#, no-c-format
+msgid "Statement label in ENDDO at %C doesn't match DO label"
+msgstr "Етикета наредбе у ENDDO код %C не одговара етикети DO"
+
+#: fortran/parse.c:2110
+#, no-c-format
+msgid "%s statement at %C cannot terminate a non-block DO loop"
+msgstr "Наредба %s код %C не може окончати неблоковску петљу DO"
+
+#: fortran/parse.c:2249
+#, no-c-format
+msgid "Contained procedure '%s' at %C is already ambiguous"
+msgstr "Садржана процедура ‘%s’ код %C је већ двосмислена"
+
+#: fortran/parse.c:2300
+#, no-c-format
+msgid "Unexpected %s statement in CONTAINS section at %C"
+msgstr "Неочекивана наредба %s у одељку CONTAINS код %C"
+
+#: fortran/parse.c:2385
+#, no-c-format
+msgid "CONTAINS statement at %C is already in a contained program unit"
+msgstr "Наредба CONTAINS код %C је већ у садржаној програмској јединици"
+
+#: fortran/parse.c:2434
+#, no-c-format
+msgid "Global name '%s' at %L is already being used as a %s at %L"
+msgstr "Глобално име ‘%s’ код %L се већ користи као %s код %L"
+
+#: fortran/parse.c:2455
+#, no-c-format
+msgid "Blank BLOCK DATA at %C conflicts with prior BLOCK DATA at %L"
+msgstr "Празно BLOCK DATA код %C коси се са претходним BLOCK DATA код %L"
+
+#: fortran/parse.c:2480
+#, no-c-format
+msgid "Unexpected %s statement in BLOCK DATA at %C"
+msgstr "Неочекивана наредба %s у BLOCK DATA код %C"
+
+#: fortran/parse.c:2523
+#, no-c-format
+msgid "Unexpected %s statement in MODULE at %C"
+msgstr "Неочекивана наредба %s у модулу код %C"
+
+#. If we see a duplicate main program, shut down. If the second
+#. instance is an implied main program, ie data decls or executable
+#. statements, we're in for lots of errors.
+#: fortran/parse.c:2702
+#, no-c-format
+msgid "Two main PROGRAMs at %L and %C"
+msgstr "Два главна програма, код %L и %C"
+
+#: fortran/primary.c:91
+#, no-c-format
+msgid "Missing kind-parameter at %C"
+msgstr "Недостаје параметар врсте код %C"
+
+#: fortran/primary.c:214
+#, no-c-format
+msgid "Integer kind %d at %C not available"
+msgstr "Целобројна врста %d код %C није доступна"
+
+#: fortran/primary.c:222
+#, no-c-format
+msgid "Integer too big for its kind at %C"
+msgstr "Цео број превелик за своју врсту код %C"
+
+#: fortran/primary.c:252
+#, no-c-format
+msgid "Extension: Hollerith constant at %C"
+msgstr "Проширење: Холеритова константа код %C"
+
+#: fortran/primary.c:264
+#, no-c-format
+msgid "Invalid Hollerith constant: %L must contain at least one character"
+msgstr "Неисправна Холеритова константа: %L мора садржати бар један знак"
+
+#: fortran/primary.c:270
+#, no-c-format
+msgid "Invalid Hollerith constant: Interger kind at %L should be default"
+msgstr "Неисправна Холеритова константа: Целобројна врста код %L треба да је подразумевана"
+
+#: fortran/primary.c:357
+#, no-c-format
+msgid "Extension: Hexadecimal constant at %C uses non-standard syntax."
+msgstr "Проширење: Хексадекадна константа код %C користи нестандардну синтаксу."
+
+#: fortran/primary.c:367
+#, no-c-format
+msgid "Empty set of digits in BOZ constant at %C"
+msgstr "Празан скуп цифара у БОЗ константи код %C"
+
+#: fortran/primary.c:373
+#, no-c-format
+msgid "Illegal character in BOZ constant at %C"
+msgstr "Недозвољени знак у БОЗ константи код %C"
+
+#: fortran/primary.c:395
+#, no-c-format
+msgid "Extension: BOZ constant at %C uses non-standard postfix syntax."
+msgstr "Проширење: БОЗ константа код %C користи нестандардну постфиксну синтаксу."
+
+#: fortran/primary.c:421
+#, no-c-format
+msgid "Integer too big for integer kind %i at %C"
+msgstr "Превелики цео број за целобројну врсту %i код %C"
+
+#: fortran/primary.c:521
+#, no-c-format
+msgid "Missing exponent in real number at %C"
+msgstr "Недостаје изложилац у реалном броју код %C"
+
+#: fortran/primary.c:578
+#, no-c-format
+msgid "Real number at %C has a 'd' exponent and an explicit kind"
+msgstr "Реални број код %C има изложилац ‘d’ и експлицитну врсту"
+
+#: fortran/primary.c:588
+#, no-c-format
+msgid "Real number at %C has a 'q' exponent and an explicit kind"
+msgstr "Реални број код %C има изложилац ‘q’ и експлицитну врсту"
+
+#: fortran/primary.c:600
+#, no-c-format
+msgid "Invalid real kind %d at %C"
+msgstr "Неисправна реална врста %d код %C"
+
+#: fortran/primary.c:614
+#, no-c-format
+msgid "Real constant overflows its kind at %C"
+msgstr "Реална константа прелива своју врсту код %C"
+
+#: fortran/primary.c:619
+#, no-c-format
+msgid "Real constant underflows its kind at %C"
+msgstr "Реална константа подлива своју врсту код %C"
+
+#: fortran/primary.c:711
+#, no-c-format
+msgid "Syntax error in SUBSTRING specification at %C"
+msgstr "Синтаксна грешка у одредници SUBSTRING код %C"
+
+#: fortran/primary.c:943
+#, no-c-format
+msgid "Invalid kind %d for CHARACTER constant at %C"
+msgstr "Неисправна врста %d за знаковну константу код %C"
+
+#: fortran/primary.c:964
+#, no-c-format
+msgid "Unterminated character constant beginning at %C"
+msgstr "Неокончана знаковна константа с почетком код %C"
+
+#: fortran/primary.c:1038
+#, no-c-format
+msgid "Bad kind for logical constant at %C"
+msgstr "Лоша врста за логичку константу код %C"
+
+#: fortran/primary.c:1073
+#, no-c-format
+msgid "Expected PARAMETER symbol in complex constant at %C"
+msgstr "Очекиван је параметарски симбол у комплексној константи код %C"
+
+#: fortran/primary.c:1079
+#, no-c-format
+msgid "Numeric PARAMETER required in complex constant at %C"
+msgstr "Потребан је бројевни параметар у комплексној константи код %C"
+
+#: fortran/primary.c:1085
+#, no-c-format
+msgid "Scalar PARAMETER required in complex constant at %C"
+msgstr "Потребан је скаларни параметар у комплексној константи код %C"
+
+#: fortran/primary.c:1115
+#, no-c-format
+msgid "Error converting PARAMETER constant in complex constant at %C"
+msgstr "Грешка при претварању параметарске константе у комплексну код %C"
+
+#: fortran/primary.c:1242
+#, no-c-format
+msgid "Syntax error in COMPLEX constant at %C"
+msgstr "Синтаксна грешка у комплексној константи код %C"
+
+#: fortran/primary.c:1424
+#, no-c-format
+msgid "Keyword '%s' at %C has already appeared in the current argument list"
+msgstr "Кључна реч ‘%s’ код %C се већ јавила у текућој листи аргумената"
+
+#: fortran/primary.c:1481
+#, no-c-format
+msgid "Expected alternate return label at %C"
+msgstr "Очекивана је етикета алтернативног повратка код %C"
+
+#: fortran/primary.c:1500
+#, no-c-format
+msgid "Missing keyword name in actual argument list at %C"
+msgstr "Недостаје име кључне речи у листи стварних аргумената код %C"
+
+#: fortran/primary.c:1536
+#, no-c-format
+msgid "Syntax error in argument list at %C"
+msgstr "Синтаксна грешка у листи аргумената код %C"
+
+#: fortran/primary.c:1623
+#, no-c-format
+msgid "Expected structure component name at %C"
+msgstr "Очекивано је име компоненте структуре код %C"
+
+#: fortran/primary.c:1861
+#, no-c-format
+msgid "Too many components in structure constructor at %C"
+msgstr "Превише компонената у конструктору структуре код %C"
+
+#: fortran/primary.c:1876
+#, no-c-format
+msgid "Too few components in structure constructor at %C"
+msgstr "Премало компонената у конструктору структуре код %C"
+
+#: fortran/primary.c:1894
+#, no-c-format
+msgid "Syntax error in structure constructor at %C"
+msgstr "Синтаксна грешка у конструктору структуре код %C"
+
+#: fortran/primary.c:2007
+#, no-c-format
+msgid "Unexpected use of subroutine name '%s' at %C"
+msgstr "Неочекивана употреба имена потпрограма ‘%s’ код %C"
+
+#: fortran/primary.c:2038
+#, no-c-format
+msgid "Statement function '%s' requires argument list at %C"
+msgstr "Наредбена функција ‘%s’ захтева листу аргумената код %C"
+
+#: fortran/primary.c:2041
+#, no-c-format
+msgid "Function '%s' requires an argument list at %C"
+msgstr "Функција ‘%s’ захтева листу аргумената код %C"
+
+#: fortran/primary.c:2195
+#, no-c-format
+msgid "Missing argument list in function '%s' at %C"
+msgstr "Недостаје листа аргумената у функцији ‘%s’ код %C"
+
+#: fortran/primary.c:2223
+#, no-c-format
+msgid "Symbol at %C is not appropriate for an expression"
+msgstr "Симбол код %C није подесан за израз"
+
+#: fortran/primary.c:2293
+#, no-c-format
+msgid "Expected VARIABLE at %C"
+msgstr "Очекивано је VARIABLE код %C"
+
+#: fortran/resolve.c:102
+#, no-c-format
+msgid "Alternate return specifier in elemental subroutine '%s' at %L is not allowed"
+msgstr "Наводилац алтернативног повратка није дозвољен у елементалном потпрограму ‘%s’ код %L"
+
+#: fortran/resolve.c:106
+#, no-c-format
+msgid "Alternate return specifier in function '%s' at %L is not allowed"
+msgstr "Наводилац алтернативног повратка није дозвољен у функцији ‘%s’ код %L"
+
+#: fortran/resolve.c:120
+#, no-c-format
+msgid "Dummy procedure '%s' of PURE procedure at %L must also be PURE"
+msgstr "Лажна процедура ‘%s’ чисте процедуре код %L мора такође бити чиста"
+
+#: fortran/resolve.c:128
+#, no-c-format
+msgid "Dummy procedure at %L not allowed in ELEMENTAL procedure"
+msgstr "Лажна процедура код %L није дозвољена у елементалној процедури"
+
+#: fortran/resolve.c:172
+#, no-c-format
+msgid "Argument '%s' of pure function '%s' at %L must be INTENT(IN)"
+msgstr "Аргумент ‘%s’ чисте функције ‘%s’ код %L мора бити намере-у"
+
+#: fortran/resolve.c:180
+#, no-c-format
+msgid "Argument '%s' of pure subroutine '%s' at %L must have its INTENT specified"
+msgstr "Аргумент ‘%s’ чистог потпрограма ‘%s’ код %L мора имати наведену намеру"
+
+#: fortran/resolve.c:191
+#, no-c-format
+msgid "Argument '%s' of elemental procedure at %L must be scalar"
+msgstr "Аргумент ‘%s’ елементалне процедуре код %L мора бити скалар"
+
+#: fortran/resolve.c:199
+#, no-c-format
+msgid "Argument '%s' of elemental procedure at %L cannot have the POINTER attribute"
+msgstr "Аргумент ‘%s’ елементалне процедуре код %L не може имати атрибут показивача"
+
+#: fortran/resolve.c:211
+#, no-c-format
+msgid "Argument '%s' of statement function at %L must be scalar"
+msgstr "Аргумент ‘%s’ наредбене функције код %L мора бити скалар"
+
+#: fortran/resolve.c:222
+#, no-c-format
+msgid "Character-valued argument '%s' of statement function at %L must has constant length"
+msgstr "Аргумент знаковне вредности ‘%s’ наредбене функције код %L мора имати константну дужину"
+
+#: fortran/resolve.c:283
+#, no-c-format
+msgid "Contained function '%s' at %L has no IMPLICIT type"
+msgstr "Садржана функција ‘%s’ код %L нема имплицитан тип"
+
+#: fortran/resolve.c:293
+#, no-c-format
+msgid "Character-valued internal function '%s' at %L must not be assumed length"
+msgstr "Унутрашња функција знаковне вредности ‘%s’ код %L не може бити претпостављене дужине"
+
+#: fortran/resolve.c:436
+#, no-c-format
+msgid "FUNCTION result %s can't be an array in FUNCTION %s at %L"
+msgstr "Резултат функције %s не може бити низ у функцији %s код %L"
+
+#: fortran/resolve.c:440
+#, no-c-format
+msgid "ENTRY result %s can't be an array in FUNCTION %s at %L"
+msgstr "Улазни резултат %s не може бити низ у функцији %s код %L"
+
+#: fortran/resolve.c:447
+#, no-c-format
+msgid "FUNCTION result %s can't be a POINTER in FUNCTION %s at %L"
+msgstr "Резултат функције %s не може бити показивач у функцији %s код %L"
+
+#: fortran/resolve.c:451
+#, no-c-format
+msgid "ENTRY result %s can't be a POINTER in FUNCTION %s at %L"
+msgstr "Улазни резултат %s не може бити показивач у функцији %s код %L"
+
+#: fortran/resolve.c:489
+#, no-c-format
+msgid "FUNCTION result %s can't be of type %s in FUNCTION %s at %L"
+msgstr "Резултат функције %s не може бити типа %s у функцији %s код %L"
+
+#: fortran/resolve.c:494
+#, no-c-format
+msgid "ENTRY result %s can't be of type %s in FUNCTION %s at %L"
+msgstr "Улазни резултат %s не може бити типа %s у функцији %s код %L"
+
+#: fortran/resolve.c:590
+#, no-c-format
+msgid "The element in the derived type constructor at %L, for pointer component '%s', is %s but should be %s"
+msgstr "Елемент у конструктору изведеног типа код %L, за показивачку компоненте ‘%s’, јесте %s а треба да буде %s"
+
+#: fortran/resolve.c:716
+#, no-c-format
+msgid "The upper bound in the last dimension must appear in the reference to the assumed size array '%s' at %L."
+msgstr "Горња граница у последњој димензији мора се појавити у упућивачу на низ претпостављене величине ‘%s’ код %L."
+
+#: fortran/resolve.c:781 fortran/resolve.c:3633 fortran/resolve.c:4299
+#, no-c-format
+msgid "Label %d referenced at %L is never defined"
+msgstr "Етикета %d поменута код %L није дефинисана"
+
+#: fortran/resolve.c:808
+#, no-c-format
+msgid "Statement function '%s' at %L is not allowed as an actual argument"
+msgstr "Наредбена функција ‘%s’ код %L није дозвољена као стварни аргумент"
+
+#: fortran/resolve.c:815
+#, no-c-format
+msgid "Internal procedure '%s' is not allowed as an actual argument at %L"
+msgstr "Унутрашња процедура ‘%s’ код %L није дозвољена као стварни аргумент"
+
+#: fortran/resolve.c:821
+#, no-c-format
+msgid "ELEMENTAL non-INTRINSIC procedure '%s' is not allowed as an actual argument at %L"
+msgstr "Елементална несопствена процедура ‘%s’ код %L није дозвољена као стварни аргумент"
+
+#: fortran/resolve.c:845
+#, no-c-format
+msgid "Symbol '%s' at %L is ambiguous"
+msgstr "Двосмислен симбол ‘%s’ код %L"
+
+#: fortran/resolve.c:982
+#, no-c-format
+msgid "Generic function '%s' at %L is not an intrinsic function"
+msgstr "Генеричка функција ‘%s’ код %L није сопствена функција"
+
+#: fortran/resolve.c:992
+#, no-c-format
+msgid "Generic function '%s' at %L is not consistent with a specific intrinsic interface"
+msgstr "Генеричка функција ‘%s’ код %L није у складу са одређеним сопственим сучељем"
+
+#: fortran/resolve.c:1030
+#, no-c-format
+msgid "Function '%s' at %L is INTRINSIC but is not compatible with an intrinsic"
+msgstr "Функција ‘%s’ код %L је сопствена али није сагласна са сопственом"
+
+#: fortran/resolve.c:1076
+#, no-c-format
+msgid "Unable to resolve the specific function '%s' at %L"
+msgstr "Не могу да разрешим одређену функцију ‘%s’ код %L"
+
+#: fortran/resolve.c:1132 fortran/resolve.c:5955
+#, no-c-format
+msgid "Function '%s' at %L has no IMPLICIT type"
+msgstr "Функција ‘%s’ код %L нема имплицитан тип"
+
+#. Internal procedures are taken care of in resolve_contained_fntype.
+#: fortran/resolve.c:1218
+#, no-c-format
+msgid "Function '%s' is declared CHARACTER(*) and cannot be used at %L since it is not a dummy argument"
+msgstr "Функција ‘%s’ декларисана је као CHARACTER(*) и не може бити употребљена код %L пошто није лажни аргумент"
+
+#: fortran/resolve.c:1332
+#, no-c-format
+msgid "Function reference to '%s' at %L is inside a FORALL block"
+msgstr "Упућивач функције на ‘%s’ код %L унутар блока FORALL"
+
+#: fortran/resolve.c:1338
+#, no-c-format
+msgid "Function reference to '%s' at %L is to a non-PURE procedure within a PURE procedure"
+msgstr "Упућивач функције на ‘%s’ код %L је за нечисту процедуру унутар чисте процедуре"
+
+#: fortran/resolve.c:1368
+#, no-c-format
+msgid "Subroutine call to '%s' in FORALL block at %L is not PURE"
+msgstr "Позив потпрограма за ‘%s’ у блоку FORALL код %L није чист"
+
+#: fortran/resolve.c:1371
+#, no-c-format
+msgid "Subroutine call to '%s' at %L is not PURE"
+msgstr "Позив потпрограма за ‘%s’ код %L није чист"
+
+#: fortran/resolve.c:1433
+#, no-c-format
+msgid "Generic subroutine '%s' at %L is not an intrinsic subroutine"
+msgstr "Генерички потпрограм ‘%s’ код %L није сопствени потпрограм"
+
+#: fortran/resolve.c:1442
+#, no-c-format
+msgid "Generic subroutine '%s' at %L is not consistent with an intrinsic subroutine interface"
+msgstr "Генерички потпрограм ‘%s’ код %L није у складу са сучељем сопственог потпрограма"
+
+#: fortran/resolve.c:1477
+#, no-c-format
+msgid "Subroutine '%s' at %L is INTRINSIC but is not compatible with an intrinsic"
+msgstr "Потпрограм ‘%s’ код %L је сопствени али није сагласан са сопственим"
+
+#: fortran/resolve.c:1520
+#, no-c-format
+msgid "Unable to resolve the specific subroutine '%s' at %L"
+msgstr "Не могу да разрешим одређени потпрограм ‘%s’ код %L"
+
+#: fortran/resolve.c:1576
+#, no-c-format
+msgid "'%s' at %L has a type, which is not consistent with the CALL at %L"
+msgstr "„%s“ код %L има тип који није у складу са позивом код %L"
+
+#: fortran/resolve.c:1642
+msgid "elemental subroutine"
+msgstr "елементални потпрограм"
+
+#: fortran/resolve.c:1674
+#, no-c-format
+msgid "Shapes for operands at %L and %L are not conformable"
+msgstr "Облици операнада код %L и %L нису усагласиви"
+
+#: fortran/resolve.c:1731
+#, c-format
+msgid "Operand of unary numeric operator '%s' at %%L is %s"
+msgstr "Операнд унарног бројевног оператора ‘%s’ код %%L је %s"
+
+#: fortran/resolve.c:1747
+#, c-format
+msgid "Operands of binary numeric operator '%s' at %%L are %s/%s"
+msgstr "Операнди бинарног бројевног оператора ‘%s’ код %%L су %s/%s"
+
+#: fortran/resolve.c:1761
+#, c-format
+msgid "Operands of string concatenation operator at %%L are %s/%s"
+msgstr "Операнди оператора надовезивања ниски код %%L су %s/%s"
+
+#: fortran/resolve.c:1780
+#, c-format
+msgid "Operands of logical operator '%s' at %%L are %s/%s"
+msgstr "Операнди логичког оператора ‘%s’ код %%L су %s/%s"
+
+#: fortran/resolve.c:1794
+#, c-format
+msgid "Operand of .NOT. operator at %%L is %s"
+msgstr "Операнд оператора .NOT. код %%L је %s"
+
+#: fortran/resolve.c:1804
+msgid "COMPLEX quantities cannot be compared at %L"
+msgstr "Комплексне величине се не могу поредити код %L"
+
+#: fortran/resolve.c:1830
+#, c-format
+msgid "Logicals at %%L must be compared with %s instead of %s"
+msgstr "Логичке код %%L морају бити поређене са %s уместо %s"
+
+#: fortran/resolve.c:1835
+#, c-format
+msgid "Operands of comparison operator '%s' at %%L are %s/%s"
+msgstr "Операнди оператора поређења ‘%s’ код %%L су %s/%s"
+
+#: fortran/resolve.c:1843
+#, c-format
+msgid "Operand of user operator '%s' at %%L is %s"
+msgstr "Операнд корисничког оператора ‘%s’ код %%L је %s"
+
+#: fortran/resolve.c:1846
+#, c-format
+msgid "Operands of user operator '%s' at %%L are %s/%s"
+msgstr "Операнди корисничког оператора ‘%s’ код %%L су %s/%s"
+
+#: fortran/resolve.c:1917
+#, no-c-format
+msgid "Inconsistent ranks for operator at %L and %L"
+msgstr "Неусаглашени рангови за оператор код %L и %L"
+
+#: fortran/resolve.c:2040
+#, no-c-format
+msgid "Illegal stride of zero at %L"
+msgstr "Недозвољен нулти корак код %L"
+
+#: fortran/resolve.c:2061
+#, no-c-format
+msgid "Array reference at %L is out of bounds"
+msgstr "Упућивач низа код %L је изван граница"
+
+#: fortran/resolve.c:2082
+#, no-c-format
+msgid "Rightmost upper bound of assumed size array section not specified at %L"
+msgstr "Није наведена десна горња граница низа претпостављене величине код %L"
+
+#: fortran/resolve.c:2092
+#, no-c-format
+msgid "Rank mismatch in array reference at %L (%d/%d)"
+msgstr "Неслагање рангова у упућивачу низа код %L (%d/%d)"
+
+#: fortran/resolve.c:2120
+#, no-c-format
+msgid "Array index at %L must be scalar"
+msgstr "Индекс низа код %L мора бити скалар"
+
+#: fortran/resolve.c:2126
+#, no-c-format
+msgid "Array index at %L must be of INTEGER type"
+msgstr "Индекс низа код %L мора бити целобројни"
+
+#: fortran/resolve.c:2132
+#, no-c-format
+msgid "Extension: REAL array index at %L"
+msgstr "Проширење: реални индекс низа код %L"
+
+#: fortran/resolve.c:2162
+#, no-c-format
+msgid "Argument dim at %L must be scalar"
+msgstr "Аргумент димензије код %L мора бити скалар"
+
+#: fortran/resolve.c:2168
+#, no-c-format
+msgid "Argument dim at %L must be of INTEGER type"
+msgstr "Аргумент димензије код %L мора целобројни"
+
+#: fortran/resolve.c:2270
+#, no-c-format
+msgid "Array index at %L is an array of rank %d"
+msgstr "Индекс низа код %L је низ ранга %d"
+
+#: fortran/resolve.c:2308
+#, no-c-format
+msgid "Substring start index at %L must be of type INTEGER"
+msgstr "Индекс почетка подниске код %L мора бити целобројни"
+
+#: fortran/resolve.c:2315
+#, no-c-format
+msgid "Substring start index at %L must be scalar"
+msgstr "Индекс почетка подниске код %L мора бити скалар"
+
+#: fortran/resolve.c:2322
+#, no-c-format
+msgid "Substring start index at %L is less than one"
+msgstr "Индекс почетка подниске код %L је мањи од један"
+
+#: fortran/resolve.c:2335
+#, no-c-format
+msgid "Substring end index at %L must be of type INTEGER"
+msgstr "Индекс краја подниске код %L мора бити целобројни"
+
+#: fortran/resolve.c:2342
+#, no-c-format
+msgid "Substring end index at %L must be scalar"
+msgstr "Индекс краја подниске код %L мора бити скалар"
+
+#: fortran/resolve.c:2350
+#, no-c-format
+msgid "Substring end index at %L is out of bounds"
+msgstr "Индекс краја подниске код %L је ван граница"
+
+#: fortran/resolve.c:2424
+#, no-c-format
+msgid "Component to the right of a part reference with nonzero rank must not have the POINTER attribute at %L"
+msgstr "Компонента десно од делимичног упућивача са ненултим рангом не сме имати атрибут показивача код %L"
+
+#: fortran/resolve.c:2443
+#, no-c-format
+msgid "Two or more part references with nonzero rank must not be specified at %L"
+msgstr "Два или више делимична упућивача са ненултим рангом не смеју бити наведени код %L"
+
+#: fortran/resolve.c:2672
+#, no-c-format
+msgid "%s at %L must be a scalar"
+msgstr "%s код %L мора бити скалар"
+
+#: fortran/resolve.c:2680
+#, no-c-format
+msgid "%s at %L must be INTEGER or REAL"
+msgstr "%s код %L мора бити целобројно или реално"
+
+#: fortran/resolve.c:2683
+#, no-c-format
+msgid "%s at %L must be INTEGER"
+msgstr "%s код %L мора бити целобројно"
+
+#: fortran/resolve.c:2699
+#, no-c-format
+msgid "Obsolete: REAL DO loop iterator at %L"
+msgstr "Застарело: Реални итератор у петљи DO код %L"
+
+#: fortran/resolve.c:2708
+#, no-c-format
+msgid "Cannot assign to loop variable in PURE procedure at %L"
+msgstr "Не може се додељивати променљивој петље у чистој процедури код %L"
+
+#: fortran/resolve.c:2732
+#, no-c-format
+msgid "Step expression in DO loop at %L cannot be zero"
+msgstr "Израз за корак у петљи DO код %L не може бити нула"
+
+#: fortran/resolve.c:2767
+#, no-c-format
+msgid "FORALL index-name at %L must be a scalar INTEGER"
+msgstr "Индекс-име у FORALL код %L мора бити скларни целобројан"
+
+#: fortran/resolve.c:2772
+#, no-c-format
+msgid "FORALL start expression at %L must be a scalar INTEGER"
+msgstr "Израз за почетак у FORALL код %L мора бити скаларни целобројан"
+
+#: fortran/resolve.c:2779
+#, no-c-format
+msgid "FORALL end expression at %L must be a scalar INTEGER"
+msgstr "Израз за крај у FORALL код %L мора бити скаларни целобројан"
+
+#: fortran/resolve.c:2787
+#, no-c-format
+msgid "FORALL stride expression at %L must be a scalar %s"
+msgstr "Израз за корак у FORALL код %L мора бити скаларни %s"
+
+#: fortran/resolve.c:2792
+#, no-c-format
+msgid "FORALL stride expression at %L cannot be zero"
+msgstr "Израз за корак у FORALL код %L не може бити нула"
+
+#: fortran/resolve.c:2890
+#, no-c-format
+msgid "Expression in DEALLOCATE statement at %L must be ALLOCATABLE or a POINTER"
+msgstr "Израз у наредби DEALLOCATE код %L мора бити резервљив или показивач"
+
+#: fortran/resolve.c:2990
+#, no-c-format
+msgid "Expression in ALLOCATE statement at %L must be ALLOCATABLE or a POINTER"
+msgstr "Израз у наредби ALLOCATE код %L мора бити резервљив или показивач"
+
+#: fortran/resolve.c:3015
+#, no-c-format
+msgid "Array specification required in ALLOCATE statement at %L"
+msgstr "Потребна је одредница низа у наредби ALLOCATE код %L"
+
+#: fortran/resolve.c:3044
+#, no-c-format
+msgid "Bad array specification in ALLOCATE statement at %L"
+msgstr "Лоша одредница низа у наредби ALLOCATE код %L"
+
+#. The cases overlap, or they are the same
+#. element in the list. Either way, we must
+#. issue an error and get the next case from P.
+#. FIXME: Sort P and Q by line number.
+#: fortran/resolve.c:3200
+#, no-c-format
+msgid "CASE label at %L overlaps with CASE label at %L"
+msgstr "Етикета CASE код %L преклапа етикету CASE код %L"
+
+#: fortran/resolve.c:3251
+#, no-c-format
+msgid "Expression in CASE statement at %L must be of type %s"
+msgstr "Израз у наредби CASE код %L мора бити типа %s"
+
+#: fortran/resolve.c:3262
+#, no-c-format
+msgid "Expression in CASE statement at %L must be kind %d"
+msgstr "Израз у наредби CASE код %L мора бити врста %d"
+
+#: fortran/resolve.c:3274
+#, no-c-format
+msgid "Expression in CASE statement at %L must be scalar"
+msgstr "Израз у наредби CASE код %L мора бити скалар"
+
+#: fortran/resolve.c:3320
+#, no-c-format
+msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
+msgstr "Изборни израз у рачунском GOTO код %L мора бити скаларни целобројан израз"
+
+#: fortran/resolve.c:3338
+#, no-c-format
+msgid "Argument of SELECT statement at %L cannot be %s"
+msgstr "Аргумент наредбе SELECT код %L не може бити %s"
+
+#: fortran/resolve.c:3347
+#, no-c-format
+msgid "Argument of SELECT statement at %L must be a scalar expression"
+msgstr "Аргумент наредбе SELECT код %L мора бити скаларни израз"
+
+#: fortran/resolve.c:3411
+#, no-c-format
+msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
+msgstr "DEFAULT CASE код %L не може бити праћен другим DEFAULT CASE код %L"
+
+#: fortran/resolve.c:3438
+#, no-c-format
+msgid "Logical range in CASE statement at %L is not allowed"
+msgstr "Логички опсег у наредби CASE код %L није дозвољен"
+
+#: fortran/resolve.c:3449
+#, no-c-format
+msgid "Range specification at %L can never be matched"
+msgstr "Одредница опсега код %L не може никако бити поклопљена"
+
+#: fortran/resolve.c:3552
+#, no-c-format
+msgid "Logical SELECT CASE block at %L has more that two cases"
+msgstr "Блок логичког SELECT CASE код %L има више од два случаја"
+
+#: fortran/resolve.c:3590
+#, no-c-format
+msgid "Data transfer element at %L cannot have POINTER components"
+msgstr "Елемент преноса података код %L не може имати показивачке компоненте"
+
+#: fortran/resolve.c:3597
+#, no-c-format
+msgid "Data transfer element at %L cannot have PRIVATE components"
+msgstr "Елемент преноса података код %L не може имати приватне компоненте"
+
+#: fortran/resolve.c:3606
+#, no-c-format
+msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
+msgstr "Елемент преноса података код %L не може бити пун упућивач на низ претпостављене величине"
+
+#: fortran/resolve.c:3640
+#, no-c-format
+msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
+msgstr "Наредба код %L није исправна наредба циља гранања за наредбу гранања код %L"
+
+#: fortran/resolve.c:3649
+#, no-c-format
+msgid "Branch at %L causes an infinite loop"
+msgstr "Гранање код %L води у бесконачну петљу"
+
+#: fortran/resolve.c:3682
+#, no-c-format
+msgid "Label at %L is not in the same block as the GOTO statement at %L"
+msgstr "Етикета код %L није у истом блоку као наредба GOTO код %L"
+
+#: fortran/resolve.c:3698
+#, no-c-format
+msgid "Obsolete: GOTO at %L jumps to END of construct at %L"
+msgstr "Застарело: GOTO код %L скаче на END конструкције код %L"
+
+#: fortran/resolve.c:3772
+#, no-c-format
+msgid "WHERE mask at %L has inconsistent shape"
+msgstr "Маска у WHERE код %L има неусаглашен облик"
+
+#: fortran/resolve.c:3788
+#, no-c-format
+msgid "WHERE assignment target at %L has inconsistent shape"
+msgstr "Циљ доделе у WHERE код %L има неусаглашен облик"
+
+#: fortran/resolve.c:3798 fortran/resolve.c:3997
+#, no-c-format
+msgid "Unsupported statement inside WHERE at %L"
+msgstr "Неподржана наредба унутар WHERE код %L"
+
+#: fortran/resolve.c:3874
+#, no-c-format
+msgid "expresion reference type error at %L"
+msgstr "грешка типа упућивача израза код %L"
+
+#: fortran/resolve.c:3906
+#, no-c-format
+msgid "Unsupported statement while finding forall index in expression"
+msgstr "Неподржана наредба током тражења индекса за FORALL у изразу"
+
+#: fortran/resolve.c:3953
+#, no-c-format
+msgid "Assignment to a FORALL index variable at %L"
+msgstr "Додела у индексну променљиву за FORALL код %L"
+
+#: fortran/resolve.c:3961
+#, no-c-format
+msgid "The FORALL with index '%s' cause more than one assignment to this object at %L"
+msgstr "FORALL са индексом ‘%s’ изазива више од једне доделе овом објекту код %L"
+
+#: fortran/resolve.c:4088
+#, no-c-format
+msgid "An outer FORALL construct already has an index with this name %L"
+msgstr "Спољашња конструкција FORALL већ има индекс са овим именом %L"
+
+#: fortran/resolve.c:4100 fortran/resolve.c:4103 fortran/resolve.c:4106
+#, no-c-format
+msgid "A FORALL index must not appear in a limit or stride expression in the same FORALL at %L"
+msgstr "Индекс у FORALL не сме се наћи у изразу за ограничење или корак за исто FORALL код %L"
+
+#: fortran/resolve.c:4149
+#, no-c-format
+msgid "ELSE IF clause at %L requires a scalar LOGICAL expression"
+msgstr "Одредба ELSE-IF код %L захтева скаларни логички израз"
+
+#: fortran/resolve.c:4159
+#, no-c-format
+msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
+msgstr "Одредба WHERE/ELSEWHERE код %L захтева логички низ"
+
+#: fortran/resolve.c:4240
+#, no-c-format
+msgid "ASSIGNED GOTO statement at %L requires an INTEGER variable"
+msgstr "Наредба ASSIGNED GOTO код %L захтева целобројну променљиву"
+
+#: fortran/resolve.c:4243
+#, no-c-format
+msgid "Variable '%s' has not been assigned a target label at %L"
+msgstr "Променљивој ‘%s’ није додељена циљна етикета код %L"
+
+#: fortran/resolve.c:4253
+#, no-c-format
+msgid "Alternate RETURN statement at %L requires an INTEGER return specifier"
+msgstr "Алтернативна наредба повратка код %L захтева целобројни наводилац повратка"
+
+#: fortran/resolve.c:4265
+#, no-c-format
+msgid "Subroutine '%s' called instead of assignment at %L must be PURE"
+msgstr "Потпрограм ‘%s’ позван уместо доделе код %L мора бити чист"
+
+#: fortran/resolve.c:4278
+#, no-c-format
+msgid "Cannot assign to variable '%s' in PURE procedure at %L"
+msgstr "Не може се доделити променљивој ‘%s’ у чистој процедури код %L"
+
+#: fortran/resolve.c:4287
+#, no-c-format
+msgid "Right side of assignment at %L is a derived type containing a POINTER in a PURE procedure"
+msgstr "Десна страна доделе код %L је изведени тип који садржи показивач у чистој процедури"
+
+#: fortran/resolve.c:4307
+#, no-c-format
+msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
+msgstr "ASSIGN код %L захтева скаларну подразумевану целобројну променљиву"
+
+#: fortran/resolve.c:4322
+#, no-c-format
+msgid "Arithmetic IF statement at %L requires a numeric expression"
+msgstr "Аритметичко IF код %L захтева бројевни израз"
+
+#: fortran/resolve.c:4334
+#, no-c-format
+msgid "IF clause at %L requires a scalar LOGICAL expression"
+msgstr "Одредба IF код %L захтева скаларни логички израз"
+
+#: fortran/resolve.c:4360
+#, no-c-format
+msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
+msgstr "Излазни услов из петље DO WHILE код %L мора бити скаларни логички израз"
+
+#: fortran/resolve.c:4367
+#, no-c-format
+msgid "STAT tag in ALLOCATE statement at %L must be of type INTEGER"
+msgstr "Ознака STAT у наредби ALLOCATE код %L мора бити целобројна"
+
+#: fortran/resolve.c:4379
+#, no-c-format
+msgid "STAT tag in DEALLOCATE statement at %L must be of type INTEGER"
+msgstr "Ознака STAT у наредби DEALLOCATE код %L мора бити целобројна"
+
+#: fortran/resolve.c:4445
+#, no-c-format
+msgid "FORALL mask clause at %L requires a LOGICAL expression"
+msgstr "Одредба маске у FORALL код %L захтева логички израз"
+
+#: fortran/resolve.c:4550
+#, no-c-format
+msgid "Allocatable array '%s' at %L must have a deferred shape"
+msgstr "Резервациони низ ‘%s’ код %L мора имати одложени облик"
+
+#: fortran/resolve.c:4553
+#, no-c-format
+msgid "Scalar object '%s' at %L may not be ALLOCATABLE"
+msgstr "Скаларни објекат ‘%s’ код %L не може бити резервациони"
+
+#: fortran/resolve.c:4560
+#, no-c-format
+msgid "Array pointer '%s' at %L must have a deferred shape"
+msgstr "Низовни показивач ‘%s’ код %L мора имати одложен облик"
+
+#: fortran/resolve.c:4571
+#, no-c-format
+msgid "Array '%s' at %L cannot have a deferred shape"
+msgstr "Низ ‘%s’ код %L не може имати одложен облик"
+
+#: fortran/resolve.c:4601
+#, no-c-format
+msgid "The module or main program array '%s' at %L must have constant shape"
+msgstr "Низ модула или главног програма ‘%s’ код %L мора имати константан облик"
+
+#: fortran/resolve.c:4613
+#, no-c-format
+msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
+msgstr "Ентитет са претпостављеном знаковном дужином код %L мора бити лажни аргумент или параметар"
+
+#: fortran/resolve.c:4626
+#, no-c-format
+msgid "'%s' at %L must have constant character length in this context"
+msgstr "‘%s’ код %L мора имати константну знаковну дужину у овом контексту"
+
+#: fortran/resolve.c:4657
+#, no-c-format
+msgid "Allocatable '%s' at %L cannot have an initializer"
+msgstr "Резервационо ‘%s’ код %L не може имати успостављач"
+
+#: fortran/resolve.c:4660
+#, no-c-format
+msgid "External '%s' at %L cannot have an initializer"
+msgstr "Спољашње ‘%s’ код %L не може имати успостављач"
+
+#: fortran/resolve.c:4663
+#, no-c-format
+msgid "Dummy '%s' at %L cannot have an initializer"
+msgstr "Лажно ‘%s’ код %L не може имати успостављач"
+
+#: fortran/resolve.c:4666
+#, no-c-format
+msgid "Intrinsic '%s' at %L cannot have an initializer"
+msgstr "Сопствено ‘%s’ код %L не може имати успостављач"
+
+#: fortran/resolve.c:4669
+#, no-c-format
+msgid "Function result '%s' at %L cannot have an initializer"
+msgstr "Резултат функцији ‘%s’ код %L не може имати успостављач"
+
+#: fortran/resolve.c:4672
+#, no-c-format
+msgid "Automatic array '%s' at %L cannot have an initializer"
+msgstr "Аутоматски низ ‘%s’ код %L не може имати успостављач"
+
+#: fortran/resolve.c:4692
+#, no-c-format
+msgid "Object '%s' at %L must have the SAVE attribute %s"
+msgstr "Објекат ‘%s’ код %L мора имати атрибут %s за SAVE"
+
+#: fortran/resolve.c:4725
+#, no-c-format
+msgid "Character-valued statement function '%s' at %L must have constant length"
+msgstr "Наредбена функција знаковне вредности ‘%s’ код %L мора имати константну дужину"
+
+#: fortran/resolve.c:4748
+#, no-c-format
+msgid "'%s' is of a PRIVATE type and cannot be a dummy argument of '%s', which is PUBLIC at %L"
+msgstr "‘%s’ је приватног типа и не може бити лажни аргумент у ‘%s’, који је јаван код %L"
+
+#: fortran/resolve.c:4763
+#, no-c-format
+msgid "External object '%s' at %L may not have an initializer"
+msgstr "Спољашњи објекат ‘%s’ код %L не може имати успостављач"
+
+#: fortran/resolve.c:4782
+#, no-c-format
+msgid "CHARACTER(*) function '%s' at %L cannot be array-valued"
+msgstr "Функција типа CHARACTER(*) ‘%s’ код %L не може имати низовну вредност"
+
+#: fortran/resolve.c:4786
+#, no-c-format
+msgid "CHARACTER(*) function '%s' at %L cannot be pointer-valued"
+msgstr "Функција типа CHARACTER(*) ‘%s’ код %L не може имати показивачку вредност"
+
+# no-c-format
+#: fortran/resolve.c:4790
+#, no-c-format
+msgid "CHARACTER(*) function '%s' at %L cannot be pure"
+msgstr "Функција типа CHARACTER(*) ‘%s’ код %L не може бити чиста"
+
+#: fortran/resolve.c:4794
+#, no-c-format
+msgid "CHARACTER(*) function '%s' at %L cannot be recursive"
+msgstr "Функција типа CHARACTER(*) ‘%s’ код %L не може бити рекурзивна"
+
+#: fortran/resolve.c:4803
+#, no-c-format
+msgid "CHARACTER(*) function '%s' at %L is obsolescent in fortran 95"
+msgstr "Функција типа CHARACTER(*) ‘%s’ код %L, застарела је у фортрану 95"
+
+#: fortran/resolve.c:4828
+#, no-c-format
+msgid "Character length of component '%s' needs to be a constant specification expression at %L."
+msgstr "Знаковна дужина компоненте ‘%s’ мора бити константан одреднички израз код %L."
+
+#: fortran/resolve.c:4843
+#, no-c-format
+msgid "The component '%s' is a PRIVATE type and cannot be a component of '%s', which is PUBLIC at %L"
+msgstr "Компонента ‘%s’ је приватни тип и не може бити компонента у ‘%s’, која је јавна код %L"
+
+#: fortran/resolve.c:4861
+#, no-c-format
+msgid "Component '%s' of '%s' at %L must have constant array bounds."
+msgstr "Компонента ‘%s’ у ‘%s’ код %L мора имати константне границе низа."
+
+#: fortran/resolve.c:4895
+#, no-c-format
+msgid "PRIVATE symbol '%s' cannot be member of PUBLIC namelist at %L"
+msgstr "Приватни симбол ‘%s’ не може бити члан јавне листе имена код %L"
+
+#: fortran/resolve.c:4908
+#, no-c-format
+msgid "The array '%s' must have constant shape to be a NAMELIST object at %L"
+msgstr "Низ ‘%s’ мора имати константан облик да би био објекат листе имена код %L"
+
+#: fortran/resolve.c:4926
+#, no-c-format
+msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L"
+msgstr "Атрибут процедуре коси се са атрибутом листе имена у ‘%s’ код %L"
+
+#: fortran/resolve.c:4943
+#, no-c-format
+msgid "Parameter array '%s' at %L cannot be automatic or assumed shape"
+msgstr "Параметарски низ ‘%s’ код %L не може бити аутоматског или претпостављеног облика"
+
+#: fortran/resolve.c:4955
+#, no-c-format
+msgid "Implicitly typed PARAMETER '%s' at %L doesn't match a later IMPLICIT type"
+msgstr "Имплицитно типски параметар ‘%s’ код %L не одговара каснијем имплицитном типу"
+
+#: fortran/resolve.c:4966
+#, no-c-format
+msgid "Incompatible derived type in PARAMETER at %L"
+msgstr "Несагласан изведени тип у параметру код %L"
+
+#: fortran/resolve.c:5067
+#, no-c-format
+msgid "Assumed size array at %L must be a dummy argument"
+msgstr "Низ претпостављене величине код %L мора бити лажни аргумент"
+
+#: fortran/resolve.c:5070
+#, no-c-format
+msgid "Assumed shape array at %L must be a dummy argument"
+msgstr "Низ претпостављеног облика код %L мора бити лажни аргумент"
+
+#: fortran/resolve.c:5083
+#, no-c-format
+msgid "Symbol at %L is not a DUMMY variable"
+msgstr "Симбол код %L није лажна променљива"
+
+#: fortran/resolve.c:5098
+#, no-c-format
+msgid "The derived type '%s' at %L is of type '%s', which has not been defined."
+msgstr "Изведени тип ‘%s’ код %L је типа ‘%s’, који није дефинисан."
+
+#: fortran/resolve.c:5117
+#, no-c-format
+msgid "The INTENT(OUT) dummy argument '%s' at %L is ASSUMED SIZE and so cannot have a default initializer"
+msgstr "Лажни аргумент намере-из ‘%s’ код %L је претпостављене величине и зато не може имати подразумевани успостављач"
+
+#: fortran/resolve.c:5157
+#, no-c-format
+msgid "Intrinsic at %L does not exist"
+msgstr "Сопствено код %L не постоји"
+
+#: fortran/resolve.c:5232
+#, no-c-format
+msgid "BLOCK DATA element '%s' at %L must be in COMMON"
+msgstr "BLOCK DATA елемент ‘%s’ код %L мора бити у заједничком"
+
+#: fortran/resolve.c:5276
+#, no-c-format
+msgid "Nonconstant array section at %L in DATA statement"
+msgstr "Неконстантан одељак низа код %L у наредби DATA"
+
+#: fortran/resolve.c:5289
+#, no-c-format
+msgid "DATA statement at %L has more variables than values"
+msgstr "Наредба DATA код %L има више променљивих него вредности"
+
+#: fortran/resolve.c:5487
+#, no-c-format
+msgid "DATA statement at %L has more values than variables"
+msgstr "Наредба DATA код %L има више вредности него променљивих"
+
+#: fortran/resolve.c:5569
+#, no-c-format
+msgid "Label %d at %L defined but not used"
+msgstr "Ознака %d код %L дефинисана али неупотребљена"
+
+#: fortran/resolve.c:5574
+#, no-c-format
+msgid "Label %d at %L defined but cannot be used"
+msgstr "Ознака %d код %L дефинисана али не може бити употребљена"
+
+#: fortran/resolve.c:5658
+#, no-c-format
+msgid "Derived type variable '%s' at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
+msgstr "Променљива изведеног типа ‘%s’ код %L мора имати атрибут SEQUENCE да би била објекат еквиваленције"
+
+#: fortran/resolve.c:5673
+#, no-c-format
+msgid "Derived type variable '%s' at %L with pointer component(s) cannot be an EQUIVALENCE object"
+msgstr "Променљива изведеног типа ‘%s’ код %L са показивачким компонентама не може бити објекат еквиваленције"
+
+#: fortran/resolve.c:5680
+#, no-c-format
+msgid "Derived type variable '%s' at %L with default initializer cannot be an EQUIVALENCE object"
+msgstr "Променљива изведеног типа ‘%s’ код %L са подразумеваним успостављачем не може бити објекат еквиваленције"
+
+#: fortran/resolve.c:5781
+#, no-c-format
+msgid "Syntax error in EQUIVALENCE statement at %L"
+msgstr "Синтаксна грешка у наредби EQUIVALENCE код %L"
+
+#: fortran/resolve.c:5798
+#, no-c-format
+msgid "Initialized objects '%s' and '%s' cannot both be in the EQUIVALENCE statement at %L"
+msgstr "Иницијализовани објекти ‘%s’ и ‘%s’ не могу оба бити у еквиваленцији код %L"
+
+#: fortran/resolve.c:5812
+#, no-c-format
+msgid "Common block member '%s' at %L cannot be an EQUIVALENCE object in the pure procedure '%s'"
+msgstr "Члан заједничког блока ‘%s’ код %L не може бити објекат еквиваленције у чистој процедури ‘%s’"
+
+#: fortran/resolve.c:5821
+#, no-c-format
+msgid "Named constant '%s' at %L cannot be an EQUIVALENCE object"
+msgstr "Именована константа ‘%s’ код %L не може бити објекат еквиваленције"
+
+#: fortran/resolve.c:5900
+#, no-c-format
+msgid "Array '%s' at %L with non-constant bounds cannot be an EQUIVALENCE object"
+msgstr "Низ ‘%s’ код %L са неконстантним границама не може бити објекат еквиваленције"
+
+#: fortran/resolve.c:5911
+#, no-c-format
+msgid "Structure component '%s' at %L cannot be an EQUIVALENCE object"
+msgstr "Компонената структуре ‘%s’ код %L не може бити објекат еквиваленције"
+
+#: fortran/resolve.c:5922
+#, no-c-format
+msgid "Substring at %L has length zero"
+msgstr "Подниска код %L има нулту дужину"
+
+#: fortran/resolve.c:5965
+#, no-c-format
+msgid "PUBLIC function '%s' at %L cannot be of PRIVATE type '%s'"
+msgstr "Јавна функција ‘%s’ код %L не може бити приватног типа ‘%s’"
+
+#: fortran/resolve.c:5977
+#, no-c-format
+msgid "ENTRY '%s' at %L has no IMPLICIT type"
+msgstr "Унос ‘%s’ код %L нема имплицитан тип"
+
+#: fortran/resolve.c:6003
+#, no-c-format
+msgid "User operator procedure '%s' at %L must be a FUNCTION"
+msgstr "Процедура корисничког оператора ‘%s’ код %L мора бити функција"
+
+#: fortran/resolve.c:6009
+#, no-c-format
+msgid "User operator procedure '%s' at %L cannot be assumed character length"
+msgstr "Процедура корисничког оператора ‘%s’ код %L не може бити претпостављене знаковне дужине"
+
+#: fortran/resolve.c:6015
+#, no-c-format
+msgid "User operator procedure '%s' at %L must have at least one argument"
+msgstr "Процедура корисничког оператора ‘%s’ код %L мора имати бар један аргумент"
+
+#: fortran/resolve.c:6025
+#, no-c-format
+msgid "First argument of operator interface at %L cannot be optional"
+msgstr "Први аргумент сучеља оператора код %L не може бити опциони"
+
+#: fortran/resolve.c:6037
+#, no-c-format
+msgid "Second argument of operator interface at %L cannot be optional"
+msgstr "Други аргумент сучеља оператора код %L не може бити опциони"
+
+#: fortran/resolve.c:6041
+#, no-c-format
+msgid "Operator interface at %L must have, at most, two arguments"
+msgstr "Сучеље оператора код %L мора имати, највише, два аргумента"
+
+#: fortran/resolve.c:6074
+#, no-c-format
+msgid "Contained procedure '%s' at %L of a PURE procedure must also be PURE"
+msgstr "Садржана процедура ‘%s’ код %L у чистој процедури мора такође бити чиста"
+
+#: fortran/scanner.c:536
+#, no-c-format
+msgid "Missing '&' in continued character constant at %C"
+msgstr "Недостаје ‘&’ у настављеној знаковној константи код %C"
+
+#: fortran/scanner.c:971
+#, no-c-format
+msgid "%s:%d: file %s left but not entered"
+msgstr "%s:%d: датотека %s је напуштена, али у њу није уђено"
+
+#: fortran/scanner.c:998
+#, no-c-format
+msgid "%s:%d: Illegal preprocessor directive"
+msgstr "%s:%d: Недозвољена предобрађивачка директива"
+
+#: fortran/scanner.c:1073
+#, no-c-format
+msgid "File '%s' is being included recursively"
+msgstr "Датотека ‘%s’ се укључује рекурзивно"
+
+#: fortran/scanner.c:1088
+#, no-c-format
+msgid "Can't open file '%s'"
+msgstr "Не могу да отворим датотеку ‘%s’"
+
+#: fortran/scanner.c:1097
+#, no-c-format
+msgid "Can't open included file '%s'"
+msgstr "Не могу да отворим укључену датотеку ‘%s’"
+
+#: fortran/scanner.c:1199
+#, c-format
+msgid "%s:%3d %s\n"
+msgstr "%s:%3d %s\n"
+
+#: fortran/simplify.c:101
+#, no-c-format
+msgid "Result of %s overflows its kind at %L"
+msgstr "Резултат %s прелива своју врсту код %L"
+
+#: fortran/simplify.c:120
+#, no-c-format
+msgid "KIND parameter of %s at %L must be an initialization expression"
+msgstr "Параметар врсте за %s код %L мора бити инцијализовани израз"
+
+#: fortran/simplify.c:130
+#, no-c-format
+msgid "Invalid KIND parameter of %s at %L"
+msgstr "Неисправан параметар врсте за %s код %L"
+
+#: fortran/simplify.c:227
+#, no-c-format
+msgid "Extended ASCII not implemented: argument of ACHAR at %L must be between 0 and 127"
+msgstr "Проширени аски није имплементиран: аргумент за ACHAR код %L мора бити између 0 и 127"
+
+#: fortran/simplify.c:254
+#, no-c-format
+msgid "Argument of ACOS at %L must be between -1 and 1"
+msgstr "Аргумент у ACOS код %L мора бити између -1 и 1"
+
+#: fortran/simplify.c:276
+#, no-c-format
+msgid "Argument of ACOSH at %L must not be less than 1"
+msgstr "Аргумент у ACOSH код %L не сме бити мањи од 1"
+
+#: fortran/simplify.c:503
+#, no-c-format
+msgid "Argument of ASIN at %L must be between -1 and 1"
+msgstr "Аргумент у ASIN код %L мора бити између -1 и 1"
+
+#: fortran/simplify.c:559
+#, no-c-format
+msgid "Argument of ATANH at %L must be inside the range -1 to 1"
+msgstr "Аргумент у ATANH код %L мора бити у опсегу -1 до 1"
+
+#: fortran/simplify.c:585
+#, no-c-format
+msgid "If first argument of ATAN2 %L is zero, then the second argument must not be zero"
+msgstr "Ако је први аргумент у ATAN2 код %L нула, други не сме бити нула"
+
+#: fortran/simplify.c:667
+#, no-c-format
+msgid "Bad character in CHAR function at %L"
+msgstr "Лош знак у функцији CHAR код %L"
+
+#: fortran/simplify.c:1195
+#, no-c-format
+msgid "Argument of IACHAR at %L must be of length one"
+msgstr "Аргумент у IACHAR код %L мора бити дужине један"
+
+#: fortran/simplify.c:1235
+#, no-c-format
+msgid "Invalid second argument of IBCLR at %L"
+msgstr "Неисправан други аргумент у IBCLR код %L"
+
+#: fortran/simplify.c:1243
+#, no-c-format
+msgid "Second argument of IBCLR exceeds bit size at %L"
+msgstr "Други аргумент у IBCLR премашује битску величину код %L"
+
+#: fortran/simplify.c:1270
+#, no-c-format
+msgid "Invalid second argument of IBITS at %L"
+msgstr "Неисправан други аргумент у IBITS код %L"
+
+#: fortran/simplify.c:1276
+#, no-c-format
+msgid "Invalid third argument of IBITS at %L"
+msgstr "Неисправан трећи аргумент у IBITS код %L"
+
+#: fortran/simplify.c:1287
+#, no-c-format
+msgid "Sum of second and third arguments of IBITS exceeds bit size at %L"
+msgstr "Збир другог и трећег аргумента у IBITS премашује битску величину код %L"
+
+#: fortran/simplify.c:1335
+#, no-c-format
+msgid "Invalid second argument of IBSET at %L"
+msgstr "Неисправан други аргумент у IBSET код %L"
+
+#: fortran/simplify.c:1343
+#, no-c-format
+msgid "Second argument of IBSET exceeds bit size at %L"
+msgstr "Други аргумент у IBSET премашује битску величину код %L"
+
+#: fortran/simplify.c:1369
+#, no-c-format
+msgid "Argument of ICHAR at %L must be of length one"
+msgstr "Аргумент у ICHAR код %L мора бити дужине један"
+
+#: fortran/simplify.c:1377
+#, no-c-format
+msgid "Argument of ICHAR at %L out of range of this processor"
+msgstr "Аргумент у ICHAR код %L ван опсега овог процесора"
+
+#: fortran/simplify.c:1585
+#, no-c-format
+msgid "Argument of INT at %L is not a valid type"
+msgstr "Аргумент у INT код %L није исправног типа"
+
+#: fortran/simplify.c:1662
+#, no-c-format
+msgid "Invalid second argument of ISHFT at %L"
+msgstr "Неисправан други аргумент у ISHFT код %L"
+
+#: fortran/simplify.c:1678
+#, no-c-format
+msgid "Magnitude of second argument of ISHFT exceeds bit size at %L"
+msgstr "Магнитуда другог аргумента у ISHFT премашује битску величину код %L"
+
+#: fortran/simplify.c:1742
+#, no-c-format
+msgid "Invalid second argument of ISHFTC at %L"
+msgstr "Неисправан други аргумент у ISHFTC код %L"
+
+#: fortran/simplify.c:1752
+#, no-c-format
+msgid "Invalid third argument of ISHFTC at %L"
+msgstr "Неисправан трећи аргумент у ISHFTC код %L"
+
+#: fortran/simplify.c:1767
+#, no-c-format
+msgid "Magnitude of second argument of ISHFTC exceeds third argument at %L"
+msgstr "Магнитуда другог аргумента у ISHFT премашује трећи аргумент код %L"
+
+#: fortran/simplify.c:1837
+#, no-c-format
+msgid "Argument of KIND at %L is a DERIVED type"
+msgstr "Аргумент у KIND код %L је изведеног типа"
+
+#: fortran/simplify.c:1908
+#, no-c-format
+msgid "DIM argument at %L is out of bounds"
+msgstr "Аргумент димензије код %L је ван граница"
+
+#: fortran/simplify.c:2048
+#, no-c-format
+msgid "Argument of LOG at %L cannot be less than or equal to zero"
+msgstr "Аргумент у LOG код %L не може бити мањи или једнак нули"
+
+#: fortran/simplify.c:2061
+#, no-c-format
+msgid "Complex argument of LOG at %L cannot be zero"
+msgstr "Комплексни аргумент у LOG код %L не може бити нула"
+
+#: fortran/simplify.c:2105
+#, no-c-format
+msgid "Argument of LOG10 at %L cannot be less than or equal to zero"
+msgstr "Аргумент у LOG10 код %L не може бити мањи или једнак нули"
+
+#. Result is processor-dependent.
+#: fortran/simplify.c:2282
+#, no-c-format
+msgid "Second argument MOD at %L is zero"
+msgstr "Други аргумент у MOD код %L је нула"
+
+#. Result is processor-dependent.
+#: fortran/simplify.c:2293
+#, no-c-format
+msgid "Second argument of MOD at %L is zero"
+msgstr "Други аргумент у MOD код %L је нула"
+
+#. Result is processor-dependent. This processor just opts
+#. to not handle it at all.
+#. Result is processor-dependent.
+#: fortran/simplify.c:2341 fortran/simplify.c:2353
+#, no-c-format
+msgid "Second argument of MODULO at %L is zero"
+msgstr "Други аргумент у MODULO код %L је нула"
+
+#: fortran/simplify.c:2410
+#, no-c-format
+msgid "Second argument of NEAREST at %L may not be zero"
+msgstr "Други аргумент у NEAREST код %L не може бити нула"
+
+#: fortran/simplify.c:2718
+#, no-c-format
+msgid "Invalid second argument of REPEAT at %L"
+msgstr "Неисправан други аргумент у REPEAT код %L"
+
+#: fortran/simplify.c:2792
+#, no-c-format
+msgid "Integer too large in shape specification at %L"
+msgstr "Цео број превелик у одредници облика код %L"
+
+#: fortran/simplify.c:2802
+#, no-c-format
+msgid "Too many dimensions in shape specification for RESHAPE at %L"
+msgstr "Превише димензија у одредници облика за RESHAPE код %L"
+
+#: fortran/simplify.c:2810
+#, no-c-format
+msgid "Shape specification at %L cannot be negative"
+msgstr "Одредница облика код %L не може бити негативна"
+
+#: fortran/simplify.c:2820
+#, no-c-format
+msgid "Shape specification at %L cannot be the null array"
+msgstr "Одредница облика код %L не може бити нулти низ"
+
+#: fortran/simplify.c:2844
+#, no-c-format
+msgid "ORDER parameter of RESHAPE at %L is not the same size as SHAPE parameter"
+msgstr "Параметар ORDER у RESHAPE код %L није исте величине као параметар SHAPE"
+
+#: fortran/simplify.c:2851
+#, no-c-format
+msgid "Error in ORDER parameter of RESHAPE at %L"
+msgstr "Грешка у параметру ORDER у RESHAPE код %L"
+
+#: fortran/simplify.c:2861
+#, no-c-format
+msgid "ORDER parameter of RESHAPE at %L is out of range"
+msgstr "Параметар ORDER у RESHAPE код %L је ван опсега"
+
+#: fortran/simplify.c:2870
+#, no-c-format
+msgid "Invalid permutation in ORDER parameter at %L"
+msgstr "Неисправна пермутација у параметру ORDER код %L"
+
+#: fortran/simplify.c:2927
+#, no-c-format
+msgid "PAD parameter required for short SOURCE parameter at %L"
+msgstr "Неопходан је параметар PAD за кратки параметар SOURCE код %L"
+
+#: fortran/simplify.c:3061
+#, no-c-format
+msgid "Result of SCALE overflows its kind at %L"
+msgstr "Резултат SCALE прелива своју врсту код %L"
+
+#: fortran/simplify.c:3642
+#, no-c-format
+msgid "Argument of SQRT at %L has a negative value"
+msgstr "Аргумент у SQRT код %L има негативну вредност"
+
+#: fortran/symbol.c:111
+#, no-c-format
+msgid "Duplicate IMPLICIT NONE statement at %C"
+msgstr "Двострука наредба IMPLICIT NONE код %C"
+
+#: fortran/symbol.c:151
+#, no-c-format
+msgid "Letter '%c' already set in IMPLICIT statement at %C"
+msgstr "Слово ‘%c’ већ постављено у наредби IMPLICIT код %C"
+
+#: fortran/symbol.c:173
+#, no-c-format
+msgid "Cannot specify IMPLICIT at %C after IMPLICIT NONE"
+msgstr "Не може се навести IMPLICIT код %C после IMPLICIT NONE"
+
+#: fortran/symbol.c:184
+#, no-c-format
+msgid "Letter %c already has an IMPLICIT type at %C"
+msgstr "Слово %c већ има имплицитан тип код %C"
+
+#: fortran/symbol.c:232
+#, no-c-format
+msgid "Symbol '%s' at %L has no IMPLICIT type"
+msgstr "Симбол ‘%s’ код %L нема имплицитан тип"
+
+#: fortran/symbol.c:304
+#, no-c-format
+msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
+msgstr "Атрибут %s није дозвољен у јединици програма BLOCK DATA код %L"
+
+#: fortran/symbol.c:506 fortran/symbol.c:997
+#, no-c-format
+msgid "%s attribute conflicts with %s attribute at %L"
+msgstr "Атрибут %s коси се са атрибутом %s код %L"
+
+#: fortran/symbol.c:509
+#, no-c-format
+msgid "%s attribute conflicts with %s attribute in '%s' at %L"
+msgstr "Атрибут %s коси се са атрибутом %s у ‘%s’ код %L"
+
+#: fortran/symbol.c:551
+#, no-c-format
+msgid "Cannot change attributes of USE-associated symbol at %L"
+msgstr "Не могу се променити атрибути USE-придруженог симбола код %L"
+
+#: fortran/symbol.c:554
+#, no-c-format
+msgid "Cannot change attributes of USE-associated symbol %s at %L"
+msgstr "Не могу се променити атрибути USE-придруженог симбола %s код %L"
+
+#: fortran/symbol.c:576
+#, no-c-format
+msgid "Cannot change attributes of symbol at %L after it has been used"
+msgstr "Не могу се променити атрибути симбола код %L пошто је употребљен"
+
+#: fortran/symbol.c:592
+#, no-c-format
+msgid "Duplicate %s attribute specified at %L"
+msgstr "Двоструки атрибут %S наведен код %L"
+
+#: fortran/symbol.c:733
+#, no-c-format
+msgid "Cray Pointee at %L appears in multiple pointer() statements."
+msgstr "Крејов показивани код %L појављује се у више наредби pointer()"
+
+#: fortran/symbol.c:765
+#, no-c-format
+msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
+msgstr "Атрибут SAVE код %L не може бити наведен у чистој процедури"
+
+#: fortran/symbol.c:773
+#, no-c-format
+msgid "Duplicate SAVE attribute specified at %L"
+msgstr "Двоструки атрибут SAVE наведен код %L"
+
+#: fortran/symbol.c:1027
+#, no-c-format
+msgid "%s procedure at %L is already declared as %s procedure"
+msgstr "Процедура %s код %L је већ декларисана као процедура %s"
+
+#: fortran/symbol.c:1062
+#, no-c-format
+msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
+msgstr "Намера-%s коси се са намером-%s код %L"
+
+#: fortran/symbol.c:1085
+#, no-c-format
+msgid "ACCESS specification at %L was already specified"
+msgstr "Одредница ACCESS код %L је већ наведена "
+
+#: fortran/symbol.c:1105
+#, no-c-format
+msgid "Symbol '%s' at %L already has an explicit interface"
+msgstr "Симбол ‘%s’ код %L већ има експлицитно сучеље"
+
+#: fortran/symbol.c:1133
+#, no-c-format
+msgid "Symbol '%s' at %L already has basic type of %s"
+msgstr "Симбол ‘%s’ код %L већ има основни тип %s"
+
+#: fortran/symbol.c:1145
+#, no-c-format
+msgid "Symbol '%s' at %L cannot have a type"
+msgstr "Симбол ‘%s’ код %L не може имати тип"
+
+#: fortran/symbol.c:1283
+#, no-c-format
+msgid "Component '%s' at %C already declared at %L"
+msgstr "Компонента ‘%s’ код %C већ је декларисана код %L"
+
+#: fortran/symbol.c:1361
+#, no-c-format
+msgid "Symbol '%s' at %C is ambiguous"
+msgstr "Двосмислен симбол ‘%s’ код %C"
+
+#: fortran/symbol.c:1393
+#, no-c-format
+msgid "Derived type '%s' at %C is being used before it is defined"
+msgstr "Изведени тип ‘%s’ код %C користи се пре него што је дефинисан"
+
+#: fortran/symbol.c:1421
+#, no-c-format
+msgid "'%s' at %C is not a member of the '%s' structure"
+msgstr "‘%s’ код %C није члан структуре ‘%s’"
+
+#: fortran/symbol.c:1427
+#, no-c-format
+msgid "Component '%s' at %C is a PRIVATE component of '%s'"
+msgstr "Компонента ‘%s’ код %C је приватна компонента у ‘%s’"
+
+#: fortran/symbol.c:1571
+#, no-c-format
+msgid "Duplicate statement label %d at %L and %L"
+msgstr "Двострука етикета наредбе %d код %L и %L"
+
+#: fortran/symbol.c:1581
+#, no-c-format
+msgid "Label %d at %C already referenced as branch target"
+msgstr "Етикета %d код %C је већ поменута као циљ гранања"
+
+#: fortran/symbol.c:1590
+#, no-c-format
+msgid "Label %d at %C already referenced as a format label"
+msgstr "Етикета %d код %C је већ поменута код етикета формата"
+
+#: fortran/symbol.c:1632
+#, no-c-format
+msgid "Label %d at %C previously used as a FORMAT label"
+msgstr "Етикета %d код %C је претходно употребљена као етикета формата"
+
+#: fortran/symbol.c:1640
+#, no-c-format
+msgid "Label %d at %C previously used as branch target"
+msgstr "Етикета %d код %C је претходно употребљена као циљ гранања"
+
+#: fortran/symbol.c:1893
+#, no-c-format
+msgid "Name '%s' at %C is an ambiguous reference to '%s' from module '%s'"
+msgstr "Име ‘%s’ код %C је двосмислен упућивач на ‘%s’ из модула ‘%s’"
+
+#: fortran/symbol.c:1896
+#, no-c-format
+msgid "Name '%s' at %C is an ambiguous reference to '%s' from current program unit"
+msgstr "Име ‘%s’ код %C је двосмислен упућивач на ‘%s’ из текуће програмске јединице"
+
+#. Symbol is from another namespace.
+#: fortran/symbol.c:2033
+#, no-c-format
+msgid "Symbol '%s' at %C has already been host associated"
+msgstr "Симбол ‘%s’ код %C је већ придружен домаћину"
+
+#: fortran/trans-common.c:360
+#, no-c-format
+msgid "Named COMMON block '%s' at %L shall be of the same size"
+msgstr "Именовани заједнички блок ‘%s’ код %L ће бити исте величине"
+
+#: fortran/trans-common.c:658
+#, no-c-format
+msgid "Bad array reference at %L"
+msgstr "Лош упућивач низа код %L"
+
+#: fortran/trans-common.c:666
+#, no-c-format
+msgid "Illegal reference type at %L as EQUIVALENCE object"
+msgstr "Недозвољен тип упућивача код %L као објекат еквиваленције"
+
+#: fortran/trans-common.c:706
+#, no-c-format
+msgid "Inconsistent equivalence rules involving '%s' at %L and '%s' at %L"
+msgstr "Неусаглашена правила еквиваленције у вези са ‘%s’ код %L и ‘%s’ код %L"
+
+#. Aligning this field would misalign a previous field.
+#: fortran/trans-common.c:839
+#, no-c-format
+msgid "The equivalence set for variable '%s' declared at %L violates alignment requirents"
+msgstr "Скуп еквиваленције за променљиву ‘%s’ декларисан код %L крши захтеве равнања"
+
+#: fortran/trans-common.c:904
+#, no-c-format
+msgid "Equivalence for '%s' does not match ordering of COMMON '%s' at %L"
+msgstr "Еквиваленција за ‘%s’ не одговара поретку заједничког ‘%s’ код %L"
+
+#: fortran/trans-common.c:919
+#, no-c-format
+msgid "The equivalence set for '%s' cause an invalid extension to COMMON '%s' at %L"
+msgstr "Скуп еквиваленције за ‘%s’ изазива неисправно проширење до заједничког ‘%s’ код %L"
+
+#. The required offset conflicts with previous alignment
+#. requirements. Insert padding immediately before this
+#. segment.
+#: fortran/trans-common.c:930
+#, no-c-format
+msgid "Padding of %d bytes required before '%s' in COMMON '%s' at %L"
+msgstr "Неопходно уметање %d бајтова пре ‘%s’ у заједничком ‘%s’ код %L"
+
+#: fortran/trans-common.c:956
+#, no-c-format
+msgid "COMMON '%s' at %L requires %d bytes of padding at start"
+msgstr "Заједничко ‘%s’ код %L затева %d уметнутих бајтова на почетку"
+
+#: fortran/trans-const.c:158
+msgid "Array bound mismatch"
+msgstr "Неслагање граница низа"
+
+#: fortran/trans-const.c:161
+msgid "Array reference out of bounds"
+msgstr "Упућивач низа ван граница"
+
+#: fortran/trans-const.c:164
+msgid "Incorrect function return value"
+msgstr "Нетачна вредност повратка из функције"
+
+#: fortran/trans-decl.c:441
+#, no-c-format
+msgid "storage size not known"
+msgstr "величина складишта није позната"
+
+#: fortran/trans-decl.c:448
+#, no-c-format
+msgid "storage size not constant"
+msgstr "величина складишта није константна"
+
+#: fortran/trans-io.c:541
+msgid "Assigned label is not a format label"
+msgstr "Додељена етикета није етикета формата"
+
+#: fortran/trans-io.c:982
+#, no-c-format
+msgid "INQUIRE statement at %L cannot contain both FILE and UNIT specifiers."
+msgstr "Наредба INQUIRE код %L не може садржати и наводиоце FILE и UNIT"
+
+#: fortran/trans-stmt.c:163
+msgid "Assigned label is not a target label"
+msgstr "Додељена етикета није етикета циља"
+
+#. Check the label list.
+#: fortran/trans-stmt.c:179
+msgid "Assigned label is not in the list"
+msgstr "Додељена етикета није у листи"
+
+#: fortran/trans-stmt.c:319
+#, no-c-format
+msgid "An alternate return at %L without a * dummy argument"
+msgstr "Алтернативан повратак код %L без лажног аргумента *"
+
+#. FIXME: i18n bug here. Order of prints should not be
+#. fixed.
+#: java/gjavah.c:916
+#, c-format
+msgid "ignored method '"
+msgstr "игнорисан метод ‘"
+
+#: java/gjavah.c:918
+#, c-format
+msgid "' marked virtual\n"
+msgstr "’ означен виртуелним\n"
+
+#: java/gjavah.c:2356
+#, c-format
+msgid "Try '"
+msgstr "Покушајте ‘"
+
+#: java/gjavah.c:2356
+#, c-format
+msgid " --help' for more information.\n"
+msgstr " --help’ за више информација.\n"
+
+#: java/gjavah.c:2363
+#, c-format
+msgid "Usage: "
+msgstr "Употреба: "
+
+#: java/gjavah.c:2363
+#, c-format
+msgid ""
+" [OPTION]... CLASS...\n"
+"\n"
+msgstr ""
+" [ОПЦИЈЕ]... КЛАСА...\n"
+"\n"
+
+#: java/gjavah.c:2364
+#, c-format
+msgid ""
+"Generate C or C++ header files from .class files\n"
+"\n"
+msgstr ""
+"Стварај Ц или Ц++ заглавља према класним датотекама\n"
+"\n"
+
+#: java/gjavah.c:2365
+#, c-format
+msgid " -stubs Generate an implementation stub file\n"
+msgstr " -stubs Створи датотеку клице имплементације\n"
+
+#: java/gjavah.c:2366
+#, c-format
+msgid " -jni Generate a JNI header or stub\n"
+msgstr " -jni Створи ЈНИ заглавље или клицу\n"
+
+#: java/gjavah.c:2367
+#, c-format
+msgid " -force Always overwrite output files\n"
+msgstr " -force Увек пребрисуј излазне датотеке\n"
+
+#: java/gjavah.c:2368
+#, c-format
+msgid " -old Unused compatibility option\n"
+msgstr " -old Неупотребљена опција сагласности\n"
+
+#: java/gjavah.c:2369
+#, c-format
+msgid " -trace Unused compatibility option\n"
+msgstr " -trace Неупотребљена опција сагласности\n"
+
+#: java/gjavah.c:2370
+#, c-format
+msgid " -J OPTION Unused compatibility option\n"
+msgstr " -J ОПЦИЈА Неупотребљена опција сагласности\n"
+
+#: java/gjavah.c:2372
+#, c-format
+msgid " -add TEXT Insert TEXT into class body\n"
+msgstr " -add ТЕКСТ Уметни ТЕКСТ у тело класе\n"
+
+#: java/gjavah.c:2373
+#, c-format
+msgid " -append TEXT Insert TEXT after class declaration\n"
+msgstr " -append ТЕКСТ Уметни ТЕКСТ после декларације класе\n"
+
+#: java/gjavah.c:2374
+#, c-format
+msgid " -friend TEXT Insert TEXT as 'friend' declaration\n"
+msgstr " -friend ТЕКСТ Уметни текст као декларацију пријатеља\n"
+
+#: java/gjavah.c:2375
+#, c-format
+msgid " -prepend TEXT Insert TEXT before start of class\n"
+msgstr " -prepend ТЕКСТ Уметни ТЕКСТ пре почетка класе\n"
+
+#: java/gjavah.c:2377 java/jcf-dump.c:912
+#, c-format
+msgid " --classpath PATH Set path to find .class files\n"
+msgstr " --classpath ПУТАЊА Постави путању за тражење класних датотека\n"
+
+#: java/gjavah.c:2378 java/jcf-dump.c:913
+#, c-format
+msgid " -IDIR Append directory to class path\n"
+msgstr " -IДИР Прикачи директоријум класној путањи\n"
+
+#: java/gjavah.c:2379 java/jcf-dump.c:914
+#, c-format
+msgid " --bootclasspath PATH Override built-in class path\n"
+msgstr " --bootclasspath ПУТАЊА Потисни уграђену класну путању\n"
+
+#: java/gjavah.c:2380 java/jcf-dump.c:915
+#, c-format
+msgid " --extdirs PATH Set extensions directory path\n"
+msgstr " --extdirs ПУТАЊА Постави путању директоријума проширења\n"
+
+#: java/gjavah.c:2381
+#, c-format
+msgid " -d DIRECTORY Set output directory name\n"
+msgstr " -d ДИРЕКТОРИЈУМ Постави име излазног директоријума\n"
+
+#: java/gjavah.c:2382 java/jcf-dump.c:916 java/jv-scan.c:115
+#, c-format
+msgid " -o FILE Set output file name\n"
+msgstr " -o ДАТОТЕКА Постави име излазне датотеке\n"
+
+#: java/gjavah.c:2383
+#, c-format
+msgid " -td DIRECTORY Set temporary directory name\n"
+msgstr " -td ДИРЕКТОРИЈУМ Постави име привременог директоријума\n"
+
+#: java/gjavah.c:2385 java/jcf-dump.c:918 java/jv-scan.c:117
+#, c-format
+msgid " --help Print this help, then exit\n"
+msgstr " --help Испиши ову помоћ, затим изађи\n"
+
+#: java/gjavah.c:2386 java/jcf-dump.c:919 java/jv-scan.c:118
+#, c-format
+msgid " --version Print version number, then exit\n"
+msgstr " --version Испиши број верзије, затим изађи\n"
+
+#: java/gjavah.c:2387 java/jcf-dump.c:920
+#, c-format
+msgid " -v, --verbose Print extra information while running\n"
+msgstr " -v, --verbose Исписуј додатне податке у току рада\n"
+
+#: java/gjavah.c:2389
+#, c-format
+msgid ""
+" -M Print all dependencies to stdout;\n"
+" suppress ordinary output\n"
+msgstr ""
+" -M Исписуј све зависности на стдиз;\n"
+" сузбиј уобичајен излаз\n"
+
+#: java/gjavah.c:2391
+#, c-format
+msgid ""
+" -MM Print non-system dependencies to stdout;\n"
+" suppress ordinary output\n"
+msgstr ""
+" -MM Исписуј несистемске зависности на стдиз;\n"
+" сузбиј уобичајен излаз\n"
+
+#: java/gjavah.c:2393
+#, c-format
+msgid " -MD Print all dependencies to stdout\n"
+msgstr " -MD Исписуј све зависности на стдиз\n"
+
+#: java/gjavah.c:2394
+#, c-format
+msgid " -MMD Print non-system dependencies to stdout\n"
+msgstr " -MMD Исписуј све несистемске зависности на стдиз\n"
+
+#: java/gjavah.c:2397 java/jcf-dump.c:922 java/jv-scan.c:120
+#, c-format
+msgid ""
+"For bug reporting instructions, please see:\n"
+"%s.\n"
+msgstr ""
+"За упутства о пријављивању грешака, погледајте:\n"
+"%s.\n"
+
+#: java/gjavah.c:2581
+#, c-format
+msgid "Processing %s\n"
+msgstr "Обрађујем %s\n"
+
+#: java/gjavah.c:2591
+#, c-format
+msgid "Found in %s\n"
+msgstr "Нађено у %s\n"
+
+#: java/jcf-dump.c:829
+#, c-format
+msgid "Not a valid Java .class file.\n"
+msgstr "Није исправна јаванска класна датотека.\n"
+
+#: java/jcf-dump.c:835
+#, c-format
+msgid "error while parsing constant pool\n"
+msgstr "грешка при рашчлањивању депоа константи\n"
+
+#: java/jcf-dump.c:841 java/jcf-parse.c:759
+#, gcc-internal-format
+msgid "error in constant pool entry #%d\n"
+msgstr "грешка у депоу константи, унос #%d\n"
+
+#: java/jcf-dump.c:851
+#, c-format
+msgid "error while parsing fields\n"
+msgstr "грешка при рашчлањивању поља\n"
+
+#: java/jcf-dump.c:857
+#, c-format
+msgid "error while parsing methods\n"
+msgstr "грешка при рашчлањивању метода\n"
+
+#: java/jcf-dump.c:863
+#, c-format
+msgid "error while parsing final attributes\n"
+msgstr "грешка при рашчлањивању коначних атрибута\n"
+
+#: java/jcf-dump.c:900
+#, c-format
+msgid "Try 'jcf-dump --help' for more information.\n"
+msgstr "Покушајте ‘jcf-dump --help’ за више података.\n"
+
+#: java/jcf-dump.c:907
+#, c-format
+msgid ""
+"Usage: jcf-dump [OPTION]... CLASS...\n"
+"\n"
+msgstr ""
+"Употреба: jcf-dump [ОПЦИЈА]... КЛАСА...\n"
+"\n"
+
+#: java/jcf-dump.c:908
+#, c-format
+msgid ""
+"Display contents of a class file in readable form.\n"
+"\n"
+msgstr ""
+"Приказује садржај класне датотеке у читљивом облику.\n"
+"\n"
+
+#: java/jcf-dump.c:909
+#, c-format
+msgid " -c Disassemble method bodies\n"
+msgstr " -c Растави тела метода\n"
+
+#: java/jcf-dump.c:910
+#, c-format
+msgid " --javap Generate output in 'javap' format\n"
+msgstr " --javap Стварај излаз као из javap\n"
+
+#: java/jcf-dump.c:950 java/jcf-dump.c:1018
+#, c-format
+msgid "jcf-dump: no classes specified\n"
+msgstr "jcf-dump: није наведена ниједна класа\n"
+
+#: java/jcf-dump.c:1038
+#, c-format
+msgid "Cannot open '%s' for output.\n"
+msgstr "Не могу да отворим ‘%s’ за излаз.\n"
+
+#: java/jcf-dump.c:1084
+#, c-format
+msgid "bad format of .zip/.jar archive\n"
+msgstr "лош формат ЗИП/ЈАР архиве\n"
+
+#: java/jcf-dump.c:1202
+#, c-format
+msgid "Bad byte codes.\n"
+msgstr "Лоши бајткодови.\n"
+
+#: java/jv-scan.c:100
+#, c-format
+msgid "Try 'jv-scan --help' for more information.\n"
+msgstr "Покушајте ‘jv-scan --help’ за више података.\n"
+
+#: java/jv-scan.c:107
+#, c-format
+msgid ""
+"Usage: jv-scan [OPTION]... FILE...\n"
+"\n"
+msgstr ""
+"Употреба: jv-scan [ОПЦИЈА]... ДАТОТЕКА...\n"
+"\n"
+
+#: java/jv-scan.c:108
+#, c-format
+msgid ""
+"Print useful information read from Java source files.\n"
+"\n"
+msgstr ""
+"Исписује корисне податке исчитане из јаванских изворних датотека.\n"
+"\n"
+
+#: java/jv-scan.c:109
+#, c-format
+msgid " --no-assert Don't recognize the assert keyword\n"
+msgstr " --no-assert Не узимај у обзир кључну реч assert\n"
+
+#: java/jv-scan.c:110
+#, c-format
+msgid " --complexity Print cyclomatic complexity of input file\n"
+msgstr " --complexity Испиши цикломатичну сложеност улазне датотеке\n"
+
+#: java/jv-scan.c:111
+#, c-format
+msgid " --encoding NAME Specify encoding of input file\n"
+msgstr " --encoding ИМЕ Задај кодирање улазне датотеке\n"
+
+#: java/jv-scan.c:112
+#, c-format
+msgid " --print-main Print name of class containing 'main'\n"
+msgstr " --print-main Испиши име класе која садржи main\n"
+
+#: java/jv-scan.c:113
+#, c-format
+msgid " --list-class List all classes defined in file\n"
+msgstr " --list-class Излистај све класе дефинисане у датотеци\n"
+
+#: java/jv-scan.c:114
+#, c-format
+msgid " --list-filename Print input filename when listing class names\n"
+msgstr " --list-filename Испиши име улазне датотеке при испису имена класа\n"
+
+#: java/jv-scan.c:257
+#, c-format
+msgid "%s: error: "
+msgstr "%s: грешка: "
+
+#: java/jv-scan.c:269 java/jv-scan.c:280
+#, c-format
+msgid "%s: warning: "
+msgstr "%s: упозорење: "
+
+#: java/jvgenmain.c:48
+#, c-format
+msgid "Usage: %s [OPTIONS]... CLASSNAMEmain [OUTFILE]\n"
+msgstr "Употреба: %s [ОПЦИЈЕ]... ИМЕКЛАСЕmain [ИЗЛАЗНА_ДАТОТЕКА]\n"
+
+#: java/jvgenmain.c:101
+#, c-format
+msgid "%s: Cannot open output file: %s\n"
+msgstr "%s: Не могу да отворим излазну датотеку: %s\n"
+
+#: java/jvgenmain.c:138
+#, c-format
+msgid "%s: Failed to close output file %s\n"
+msgstr "%s: Нисам успео да затворим излазну датотеку %s\n"
+
+#: java/jvspec.c:420
+#, c-format
+msgid "can't specify '-D' without '--main'\n"
+msgstr "не може се задати ‘-D’ без ‘--main’\n"
+
+#: java/jvspec.c:423
+#, c-format
+msgid "'%s' is not a valid class name"
+msgstr "‘%s’ није исправно име класе"
+
+#: java/jvspec.c:429
+#, c-format
+msgid "--resource requires -o"
+msgstr "--resource захтева -o"
+
+#: java/jvspec.c:443
+#, c-format
+msgid "cannot specify both -C and -o"
+msgstr "не могу се задати и -C и -o"
+
+#: java/jvspec.c:455
+#, c-format
+msgid "cannot create temporary file"
+msgstr "не могу да направим привремену датотеку"
+
+#: java/jvspec.c:483
+#, c-format
+msgid "using both @FILE with multiple files not implemented"
+msgstr "коришћење и @FILE и вишеструких датотека није имплементирано"
+
+#: java/jvspec.c:546
+#, c-format
+msgid "cannot specify 'main' class when not linking"
+msgstr "не може се задати главна класа када се не повезује"
+
+#: config/mcore/mcore.h:57
+msgid "the m210 does not have little endian support"
+msgstr "М210 нема подршку мале крајности"
+
+#: config/lynx.h:71
+msgid "cannot use mthreads and mlegacy-threads together"
+msgstr "не могу се заједно користити mthreads и mlegacy-threads"
+
+#: config/lynx.h:96
+msgid "cannot use mshared and static together"
+msgstr "не могу се заједно користити mshared и static"
+
+#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22
+#: config/sparc/sol2-bi.h:169 config/sparc/sol2-bi.h:174
+msgid "does not support multilib"
+msgstr "не подржава вишебиб"
+
+#: config/mips/r3900.h:35
+msgid "-mhard-float not supported"
+msgstr "-mhard-float није подржано"
+
+#: config/mips/r3900.h:37
+msgid "-msingle-float and -msoft-float cannot both be specified"
+msgstr "не могу се задати и -msingle-float и -msoft-float"
+
+#: config/i386/cygwin.h:29
+msgid "mno-cygwin and mno-win32 are not compatible"
+msgstr "mno-cygwin и mno-win32 нису сагласни"
+
+#: config/i386/cygwin.h:70 config/i386/mingw32.h:58
+msgid "shared and mdll are not compatible"
+msgstr "shared и mdll нису сагласни"
+
+#: config/vax/netbsd-elf.h:42
+msgid "the -shared option is not currently supported for VAX ELF"
+msgstr "опција -shared тренутно није подржана за ВАКСов ЕЛФ"
+
+#: config/arm/arm.h:141
+msgid "-msoft-float and -mhard_float may not be used together"
+msgstr "-msoft-float и -mhard_float не могу се користити заједно"
+
+#: config/arm/arm.h:143
+msgid "-mbig-endian and -mlittle-endian may not be used together"
+msgstr "-mbig-endian и -mlittle-endian не могу се користити заједно"
+
+#: config/arc/arc.h:62 config/mips/mips.h:849
+msgid "may not use both -EB and -EL"
+msgstr "не могу се навести и -EB и -EL"
+
+#: config/i386/sco5.h:189
+msgid "-pg not supported on this platform"
+msgstr "-pg није подржано на овој платформи"
+
+#: config/i386/sco5.h:190
+msgid "-p and -pp specified - pick one"
+msgstr "задато је -p и -pp — изаберите једно"
+
+#: config/i386/sco5.h:264
+msgid "-G and -static are mutually exclusive"
+msgstr "-G и -static су међусобно искључиви"
+
+#: config/rs6000/darwin.h:105
+msgid " conflicting code gen style switches are used"
+msgstr " употребљени су сукобљени прекидачи стила генерисања кôда"
+
+#: ada/lang-specs.h:34 gcc.c:794 java/jvspec.c:80
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr "-pg и -fomit-frame-pointer нису сагласни"
+
+#: ada/lang-specs.h:35
+msgid "-c or -S required for Ada"
+msgstr "потребно је -c или -S за аду"
+
+#: gcc.c:767
+msgid "GCC does not support -C or -CC without -E"
+msgstr "ГЦЦ не подржава -C или -CC без -E"
+
+#: gcc.c:961
+msgid "-E or -x required when input is from standard input"
+msgstr "потребно је -E или -x када је улаз са стандардног улаза"
+
+#: config/s390/tpf.h:125
+msgid "static is not supported on TPF-OS"
+msgstr "static није подржано на ТПФ-ОСу"
+
+#: config/sh/sh.h:460
+msgid "SH2a does not support little-endian"
+msgstr "СХ2а не подржава малу крајност"
+
+#: config/sparc/linux64.h:206 config/sparc/linux64.h:217
+#: config/sparc/netbsd-elf.h:126 config/sparc/netbsd-elf.h:145
+#: config/sparc/sol2-bi.h:197 config/sparc/sol2-bi.h:207
+msgid "may not use both -m32 and -m64"
+msgstr "не могу се навести и -m32 и -m64"
+
+#: config/vxworks.h:66
+msgid "-Xbind-now and -Xbind-lazy are incompatible"
+msgstr "-Xbind-now и -Xbind-lazy нису сагласни"
+
+#: config/vax/vax.h:50 config/vax/vax.h:51
+msgid "profiling not supported with -mg\n"
+msgstr "профилисање није подржано уз -mg\n"
+
+#: config/i386/nwld.h:35
+msgid "Static linking is not supported.\n"
+msgstr "Статичко повезивање није подржано.\n"
+
+#: java/lang-specs.h:34
+msgid "-fjni and -femit-class-files are incompatible"
+msgstr "-fjni и -femit-class-files нису сагласни"
+
+#: java/lang-specs.h:35
+msgid "-fjni and -femit-class-file are incompatible"
+msgstr "-fjni и -femit-class-file нису сагласни"
+
+#: java/lang-specs.h:36 java/lang-specs.h:37
+msgid "-femit-class-file should used along with -fsyntax-only"
+msgstr "-femit-class-file треба користити само уз -fsyntax-only"
+
+#: config/darwin.h:239
+msgid "-current_version only allowed with -dynamiclib"
+msgstr "-current_version дозвољено само са -dynamiclib"
+
+#: config/darwin.h:241
+msgid "-install_name only allowed with -dynamiclib"
+msgstr "-install_name дозвољено само са -dynamiclib"
+
+#: config/darwin.h:246
+msgid "-bundle not allowed with -dynamiclib"
+msgstr "-bundle није дозвољено са -dynamiclib"
+
+#: config/darwin.h:247
+msgid "-bundle_loader not allowed with -dynamiclib"
+msgstr "-bundle_loader није дозвољено са -dynamiclib"
+
+#: config/darwin.h:248
+msgid "-client_name not allowed with -dynamiclib"
+msgstr "-client_name није дозвољено са -dynamiclib"
+
+#: config/darwin.h:253
+msgid "-force_flat_namespace not allowed with -dynamiclib"
+msgstr "-force_flat_namespace није дозвољено са -dynamiclib"
+
+#: config/darwin.h:255
+msgid "-keep_private_externs not allowed with -dynamiclib"
+msgstr "-keep_private_externs није дозвољено са -dynamiclib"
+
+#: config/darwin.h:256
+msgid "-private_bundle not allowed with -dynamiclib"
+msgstr "-private_bundle није дозвољено са -dynamiclib"
+
+#: java/lang.opt:66
+msgid "Warn if a deprecated compiler feature, class, method, or field is used"
+msgstr "Упозори ако се употреби превазиђена могућност компилатора, класа, метод или поље"
+
+#: java/lang.opt:70
+msgid "Warn if deprecated empty statements are found"
+msgstr "Упозори ако се нађе превазиђена празна наредба"
+
+#: java/lang.opt:74
+msgid "Warn if .class files are out of date"
+msgstr "Упозори ако су класне датотеке застареле"
+
+#: java/lang.opt:78
+msgid "Warn if modifiers are specified when not necessary"
+msgstr "Упозори ако су модификатори задати када није неопходно"
+
+#: java/lang.opt:82
+msgid "Deprecated; use --classpath instead"
+msgstr "Непрепоручљиво; користите --classpath"
+
+#: java/lang.opt:86
+msgid "Permit the use of the assert keyword"
+msgstr "Дозволи употребу кључне речи assert"
+
+#: java/lang.opt:108
+msgid "Replace system path"
+msgstr "Замени системску путању"
+
+#: java/lang.opt:112
+msgid "Generate checks for references to NULL"
+msgstr "Стварај провере за упућиваче на NULL"
+
+#: java/lang.opt:116
+msgid "Set class path"
+msgstr "Постави класну путању"
+
+#: java/lang.opt:123
+msgid "Output a class file"
+msgstr "Испиши класну датотеку"
+
+#: java/lang.opt:127
+msgid "Alias for -femit-class-file"
+msgstr "Други назив за -femit-class-file"
+
+#: java/lang.opt:131
+msgid "Choose input encoding (defaults from your locale)"
+msgstr "Изаберите улазно кодирање (подразумевано из локалитета)"
+
+#: java/lang.opt:135
+msgid "Set the extension directory path"
+msgstr "Постави путању директоријума проширења"
+
+#: java/lang.opt:139
+msgid "Input file is a file with a list of filenames to compile"
+msgstr "Улазна датотека је датотека са листом имена за компиловање"
+
+#: java/lang.opt:143
+msgid "Always check for non gcj generated classes archives"
+msgstr "Увек проверавај да ли су архиве класа створене ГЦЈом"
+
+#: java/lang.opt:147
+msgid "Assume the runtime uses a hash table to map an object to its synchronization structure"
+msgstr "Претпостави да машина користи хрпу да мапира објекат у своју синхронизациону структуру"
+
+#: java/lang.opt:151
+msgid "Use offset tables for virtual method calls"
+msgstr "Користи табеле помака за позиве виртуелних метода"
+
+#: java/lang.opt:158
+msgid "Assume native functions are implemented using JNI"
+msgstr "Претпостави да су урођене функције имплементиране ЈНИјем"
+
+#: java/lang.opt:162
+msgid "Enable optimization of static class initialization code"
+msgstr "Укључи оптимизацију статичког кода за успостављање класе"
+
+#: java/lang.opt:169
+msgid "Enable assignability checks for stores into object arrays"
+msgstr "Укључи провере додељивости за сладиштења у објектне низове"
+
+#: java/lang.opt:173
+msgid "Generate code for the Boehm GC"
+msgstr "Створи кôд за ГЦ Боем"
+
+#: java/lang.opt:177
+msgid "Call a library routine to do integer divisions"
+msgstr "Зови библиотечку рутину за целобројна дељења"
+
+#: java/lang.opt:181
+msgid "Generated should be loaded by bootstrap loader"
+msgstr "Створено треба учитавати самоуздижућим учитавачем"
+
+#: ada/lang.opt:74
+msgid "Specify options to GNAT"
+msgstr "Наведите опције ГНАТу"
+
+#: fortran/lang.opt:30
+msgid "Add a directory for INCLUDE and MODULE searching"
+msgstr "Додај директоријум за претрагу укључивања и модула"
+
+#: fortran/lang.opt:34
+msgid "Put MODULE files in 'directory'"
+msgstr "Стави датотеке модула у дати директоријум"
+
+#: fortran/lang.opt:42
+msgid "Warn about possible aliasing of dummy arguments"
+msgstr "Упозори на могућу дволичност лажних аргумената"
+
+#: fortran/lang.opt:46
+msgid "Warn about missing ampersand in continued character literals"
+msgstr "Упозори на недостајуће & у настављеним дословним нискама"
+
+#: fortran/lang.opt:50
+msgid "Warn about implicit conversion"
+msgstr "Упозори на имплицитно претварање"
+
+#: fortran/lang.opt:54
+msgid "Warn about calls with implicit interface"
+msgstr "Упозори на позиве са имплицитним сучељима"
+
+#: fortran/lang.opt:58
+msgid "Warn about truncated source lines"
+msgstr "Упозори на одсечене изворне линије"
+
+#: fortran/lang.opt:62
+msgid "Warn about usage of non-standard intrinsics"
+msgstr "Упозори на употребу нестандардних сопствених"
+
+#: fortran/lang.opt:66
+msgid "Warn about \"suspicious\" constructs"
+msgstr "Упозори на „сумњиве“ конструкције"
+
+#: fortran/lang.opt:70
+msgid "Warn about underflow of numerical constant expressions"
+msgstr "Упозори на подливање бројевних константних израза"
+
+#: fortran/lang.opt:74 common.opt:162
+msgid "Warn when a label is unused"
+msgstr "Упозори када се етикета не користи"
+
+#: fortran/lang.opt:78
+msgid "Do not treat local variables and COMMON blocks as if they were named in SAVE statements"
+msgstr "Не сматрај да су локалне променљиве и заједнички блокови именовани у наредбама SAVE"
+
+#: fortran/lang.opt:82
+msgid "Specify that backslash in string introduces an escape character"
+msgstr "Наведите да контракроз у ниски уводи избегавајући знак"
+
+#: fortran/lang.opt:86
+msgid "Set the default double precision kind to an 8 byte wide type"
+msgstr "Постави подразумевану врсту двоструке тачности на 8-битни тип"
+
+#: fortran/lang.opt:90
+msgid "Set the default integer kind to an 8 byte wide type"
+msgstr "Постави подразумевану врсту целог броја на 8-битни тип"
+
+#: fortran/lang.opt:94
+msgid "Set the default real kind to an 8 byte wide type"
+msgstr "Постави подразумевану врсту реалног броја на 8-битни тип"
+
+#: fortran/lang.opt:98
+msgid "Ignore 'D' in column one in fixed form"
+msgstr "Игнориши ‘D’ у првој колони у фиксном облику"
+
+#: fortran/lang.opt:102
+msgid "Treat lines with 'D' in column one as comments"
+msgstr "Сматрај линије са ‘D’ у првој колони за коментаре"
+
+#: fortran/lang.opt:106
+msgid "Allow dollar signs in entity names"
+msgstr "Дозволи долар у именима ентитета"
+
+#: fortran/lang.opt:110
+msgid "Display the code tree after parsing"
+msgstr "Прикажи стабло кôда после рашчлањивања"
+
+#: fortran/lang.opt:114
+msgid "Use f2c calling convention"
+msgstr "Користи конвенцију позивања f2c"
+
+#: fortran/lang.opt:118
+msgid "Assume that the source file is fixed form"
+msgstr "Претпостави да је извор у фиксном облику"
+
+#: fortran/lang.opt:122
+msgid "Assume that the source file is free form"
+msgstr "Претпостави да је извор у слободном облику"
+
+#: fortran/lang.opt:126
+msgid "Append underscores to externally visible names"
+msgstr "Додај подвлаке споља видљивим именима"
+
+#: fortran/lang.opt:130
+msgid "Use the Cray Pointer extension"
+msgstr "Користи проширење Крејовог показивача"
+
+#: fortran/lang.opt:134
+msgid "Append a second underscore if the name already contains an underscore"
+msgstr "Додај другу подвлаку ако име већ садржи подвлаку"
+
+#: fortran/lang.opt:138
+msgid "Specify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statements"
+msgstr "Наведите да имплицитни типови нису дозвољени, осим ако се не потисне експлицитном наредбом IMPLICIT"
+
+#: fortran/lang.opt:142
+msgid "Allow arbitrary character line width in fixed mode"
+msgstr "Дозволи произвољну дужину линије у фиксном режиму"
+
+#: fortran/lang.opt:146
+msgid "Use n as character line width in fixed mode"
+msgstr "Користи n као дужину линије у фиксном режиму"
+
+#: fortran/lang.opt:150
+msgid "Allow arbitrary character line width in free mode"
+msgstr "Дозволи произвољну дужину линије у слободном режиму"
+
+#: fortran/lang.opt:154
+msgid "Use n as character line width in free mode"
+msgstr "Користи n као дужину линије у слободном режиму"
+
+#: fortran/lang.opt:158
+msgid "Maximum identifier length"
+msgstr "Највећа дужина идентификатора"
+
+#: fortran/lang.opt:162
+msgid "Size in bytes of the largest array that will be put on the stack"
+msgstr "Величина у бајтовима највећег низа који ће бити стављен на стек"
+
+#: fortran/lang.opt:166
+msgid "Set default accessibility of module entities to PRIVATE"
+msgstr "Постави подразумевани приступ модулским ентитетима на приватан"
+
+#: fortran/lang.opt:170
+msgid "Don't generate code, just do syntax and semantics checking"
+msgstr "Не стварај кôд, само провери синтаксу и семантику"
+
+#: fortran/lang.opt:174
+msgid "Try to layout derived types as compact as possible"
+msgstr "Покушај да распоредиш изведене типове што збијеније"
+
+#: fortran/lang.opt:178
+msgid "Copy array sections into a contiguous block on procedure entry"
+msgstr "Копирај одељке низа у непрекидан блок при улазу у процедуру"
+
+#: fortran/lang.opt:182
+msgid "Treat the input file as preprocessed"
+msgstr "Сматрај улазну датотеку предобрађеном"
+
+#: fortran/lang.opt:186
+msgid "Set the kind for a real with the 'q' exponent to 'n'"
+msgstr "Постави врсту за реалне бројеве са изложиоцем ‘q’ на ‘n’"
+
+#: fortran/lang.opt:190
+msgid "Stop on following floating point exceptions"
+msgstr "Стани код следећих изузетака покретног зареза"
+
+#: fortran/lang.opt:194
+msgid "Conform to the ISO Fortran 95 standard"
+msgstr "Поштуј ИСО стандард фортрана 95"
+
+#: fortran/lang.opt:198
+msgid "Conform to the ISO Fortran 2003 standard"
+msgstr "Поштуј ИСО стандард фортрана 2003"
+
+#: fortran/lang.opt:202
+msgid "Conform nothing in particular"
+msgstr "Не поштуј ништа посебно"
+
+#: fortran/lang.opt:206
+msgid "Accept extensions to support legacy code"
+msgstr "Прихвати проширења за подршку старог кода"
+
+#: fortran/lang.opt:210 c.opt:661
+msgid "Use the narrowest integer type possible for enumeration types"
+msgstr "За набројиве типове користи најужи целобројни тип могућ"
+
+#: fortran/lang.opt:214
+msgid "Use little-endian format for unformatted files"
+msgstr "Користи формат мале крајности за неформатиране датотеке"
+
+#: fortran/lang.opt:218
+msgid "Use big-endian format for unformatted files"
+msgstr "Користи формат мале крајности за неформатиране датотеке"
+
+#: fortran/lang.opt:222
+msgid "Use native format for unformatted files"
+msgstr "Користи урођени формат за неформатиране датотеке"
+
+#: fortran/lang.opt:226
+msgid "Swap endianness for unformatted files"
+msgstr "Размени крајност за неформатиране датотеке"
+
+#: fortran/lang.opt:230
+msgid "Use a 4-byte record marker for unformatted files"
+msgstr "Користи 4-бајтни обележивач слога за неформатиране датотеке"
+
+#: fortran/lang.opt:234
+msgid "Use an 8-byte record marker for unformatted files"
+msgstr "Користи 8-бајтни обележивач слога за неформатиране датотеке"
+
+#: treelang/lang.opt:30
+msgid "Trace lexical analysis"
+msgstr "Прати лексичку анализу"
+
+#: treelang/lang.opt:34
+msgid "Trace the parsing process"
+msgstr "Прати поступак рашчлањивања"
+
+#: config/alpha/alpha.opt:24 config/i386/i386.opt:186
+msgid "Do not use hardware fp"
+msgstr "Не користи хардверски ФП"
+
+#: config/alpha/alpha.opt:28
+msgid "Use fp registers"
+msgstr "Користи ФП регистре"
+
+#: config/alpha/alpha.opt:32
+msgid "Assume GAS"
+msgstr "Претпостави ГАС"
+
+#: config/alpha/alpha.opt:36
+msgid "Do not assume GAS"
+msgstr "Не претпостављај ГАС"
+
+#: config/alpha/alpha.opt:40
+msgid "Request IEEE-conformant math library routines (OSF/1)"
+msgstr "Захтевај рутине математичке библиотеке које поштују ИЕЕЕ (OSF/1)"
+
+#: config/alpha/alpha.opt:44
+msgid "Emit IEEE-conformant code, without inexact exceptions"
+msgstr "Емитуј кôд који поштује ИЕЕЕ, без нетачних изузетака"
+
+#: config/alpha/alpha.opt:51
+msgid "Do not emit complex integer constants to read-only memory"
+msgstr "Не емитуј комплексне целобројне константе у само-за-читање меморију"
+
+#: config/alpha/alpha.opt:55
+msgid "Use VAX fp"
+msgstr "Користи ВАКСов ФП"
+
+#: config/alpha/alpha.opt:59
+msgid "Do not use VAX fp"
+msgstr "Не користи ВАКСов ФП"
+
+#: config/alpha/alpha.opt:63
+msgid "Emit code for the byte/word ISA extension"
+msgstr "Емитуј кôд за бајт/реч ИСА проширење"
+
+#: config/alpha/alpha.opt:67
+msgid "Emit code for the motion video ISA extension"
+msgstr "Емитуј кôд за видео ИСА проширење"
+
+#: config/alpha/alpha.opt:71
+msgid "Emit code for the fp move and sqrt ISA extension"
+msgstr "Емитуј кôд за fp move и sqrt ИСА проширење"
+
+#: config/alpha/alpha.opt:75
+msgid "Emit code for the counting ISA extension"
+msgstr "Емитуј кôд за бројачко ИСА проширење"
+
+#: config/alpha/alpha.opt:79
+msgid "Emit code using explicit relocation directives"
+msgstr "Емитуј кôд користећи екплицитне релокационе директиве"
+
+#: config/alpha/alpha.opt:83
+msgid "Emit 16-bit relocations to the small data areas"
+msgstr "Емитуј 16-битне релокације у мале области података"
+
+#: config/alpha/alpha.opt:87
+msgid "Emit 32-bit relocations to the small data areas"
+msgstr "Емитуј 32-битне релокације у мале области података"
+
+#: config/alpha/alpha.opt:91
+msgid "Emit direct branches to local functions"
+msgstr "Емитуј непосредна гранања у локалне функције"
+
+#: config/alpha/alpha.opt:95
+msgid "Emit indirect branches to local functions"
+msgstr "Емитуј посредна гранања у локалне функције"
+
+#: config/alpha/alpha.opt:99
+msgid "Emit rdval instead of rduniq for thread pointer"
+msgstr "Емитуј rdval уместо rduniq за показивач нити"
+
+#: config/alpha/alpha.opt:103 config/s390/s390.opt:56
+#: config/sparc/long-double-switch.opt:24
+msgid "Use 128-bit long double"
+msgstr "Користи 128-битни long double"
+
+#: config/alpha/alpha.opt:107 config/s390/s390.opt:60
+#: config/sparc/long-double-switch.opt:28
+msgid "Use 64-bit long double"
+msgstr "Користи 64-битни long double"
+
+#: config/alpha/alpha.opt:111
+msgid "Use features of and schedule given CPU"
+msgstr "Користи могућности и распоређуј за дати ЦПУ"
+
+#: config/alpha/alpha.opt:115
+msgid "Schedule given CPU"
+msgstr "Rаспоређуј дати ЦПУ"
+
+#: config/alpha/alpha.opt:119
+msgid "Control the generated fp rounding mode"
+msgstr "Контролиши створени ФП режим заокруживања"
+
+#: config/alpha/alpha.opt:123
+msgid "Control the IEEE trap mode"
+msgstr "Контролиши ИЕЕЕ режим клопки"
+
+#: config/alpha/alpha.opt:127
+msgid "Control the precision given to fp exceptions"
+msgstr "Контролиши тачност дату ФП изузецима"
+
+#: config/alpha/alpha.opt:131
+msgid "Tune expected memory latency"
+msgstr "Наштелуј очекивано кашњење меморије"
+
+#: config/alpha/alpha.opt:135 config/ia64/ia64.opt:93
+#: config/rs6000/sysv4.opt:33
+msgid "Specify bit size of immediate TLS offsets"
+msgstr "Наведите битску величину непосредних ТЛС помака"
+
+#: config/frv/frv.opt:24
+msgid "Use 4 media accumulators"
+msgstr "Користи 4 медија-акумулатора"
+
+#: config/frv/frv.opt:28
+msgid "Use 8 media accumulators"
+msgstr "Користи 8 медија-акумулатора"
+
+#: config/frv/frv.opt:32
+msgid "Enable label alignment optimizations"
+msgstr "Укључи оптимизацију равнања етикета"
+
+#: config/frv/frv.opt:36
+msgid "Dynamically allocate cc registers"
+msgstr "Динамички резервиши цц регистре"
+
+#: config/frv/frv.opt:43
+msgid "Set the cost of branches"
+msgstr "Постави цену гранањâ"
+
+#: config/frv/frv.opt:47
+msgid "Enable conditional execution other than moves/scc"
+msgstr "Укључи условно извршавања осим померања/сцц"
+
+#: config/frv/frv.opt:51
+msgid "Change the maximum length of conditionally-executed sequences"
+msgstr "Промени највећу дужину условно извршаваних секвенци"
+
+#: config/frv/frv.opt:55
+msgid "Change the number of temporary registers that are available to conditionally-executed sequences"
+msgstr "Промени број привремених регистара доступних условно извршаваним секвенцама"
+
+#: config/frv/frv.opt:59
+msgid "Enable conditional moves"
+msgstr "Укључи условна померања"
+
+#: config/frv/frv.opt:63
+msgid "Set the target CPU type"
+msgstr "Постави циљни тип ЦПУа"
+
+#: config/frv/frv.opt:85
+msgid "Use fp double instructions"
+msgstr "Користи ФП двоструке тачности"
+
+#: config/frv/frv.opt:89
+msgid "Change the ABI to allow double word insns"
+msgstr "Промени АБИ да дозволи дворечне ије"
+
+#: config/frv/frv.opt:93
+msgid "Enable Function Descriptor PIC mode"
+msgstr "Укључи ПИЦ режим описника функција"
+
+#: config/frv/frv.opt:97
+msgid "Just use icc0/fcc0"
+msgstr "Само користи icc0/fcc0"
+
+#: config/frv/frv.opt:101
+msgid "Only use 32 FPRs"
+msgstr "Користи само 32 ФПРа"
+
+#: config/frv/frv.opt:105
+msgid "Use 64 FPRs"
+msgstr "Користи 64 ФПРа"
+
+#: config/frv/frv.opt:109
+msgid "Only use 32 GPRs"
+msgstr "Користи само 32 ГПРа"
+
+#: config/frv/frv.opt:113
+msgid "Use 64 GPRs"
+msgstr "Користи 64 ГПРа"
+
+#: config/frv/frv.opt:117
+msgid "Enable use of GPREL for read-only data in FDPIC"
+msgstr "Укључи употребу ГПРЕЛа за само-за-читање податке у ФДПИЦу"
+
+#: config/frv/frv.opt:121 config/rs6000/rs6000.opt:93
+#: config/pdp11/pdp11.opt:72
+msgid "Use hardware floating point"
+msgstr "Користи хардверски покретан зарез"
+
+#: config/frv/frv.opt:125
+msgid "Enable inlining of PLT in function calls"
+msgstr "Укључи уткивање ПЛТа у позивима функција"
+
+#: config/frv/frv.opt:129
+msgid "Enable PIC support for building libraries"
+msgstr "Укључи ПИЦ подршку за грађење библиотека"
+
+#: config/frv/frv.opt:133
+msgid "Follow the EABI linkage requirements"
+msgstr "Прати ЕАБИ захтеве повезивости"
+
+#: config/frv/frv.opt:137
+msgid "Disallow direct calls to global functions"
+msgstr "Забрани непосредне позиве глобалних функција"
+
+#: config/frv/frv.opt:141
+msgid "Use media instructions"
+msgstr "Користи медија-инструкције"
+
+#: config/frv/frv.opt:145
+msgid "Use multiply add/subtract instructions"
+msgstr "Користи инструкције множење-додавање/одузимање"
+
+#: config/frv/frv.opt:149
+msgid "Enable optimizing &&/|| in conditional execution"
+msgstr "Укључи оптимизацију &&/|| у условном извршавању"
+
+#: config/frv/frv.opt:153
+msgid "Enable nested conditional execution optimizations"
+msgstr "Укључи оптимизацију угњежденог условног извршавања"
+
+#: config/frv/frv.opt:158
+msgid "Do not mark ABI switches in e_flags"
+msgstr "Не означавај промене АБИја у e_flags"
+
+#: config/frv/frv.opt:162
+msgid "Remove redundant membars"
+msgstr "Уклони сувишне мембарове"
+
+#: config/frv/frv.opt:166
+msgid "Pack VLIW instructions"
+msgstr "Пакуј ВЛИВ инструкције"
+
+#: config/frv/frv.opt:170
+msgid "Enable setting GPRs to the result of comparisons"
+msgstr "Укључи постављање ГПРова на резултате поређења"
+
+#: config/frv/frv.opt:174
+msgid "Change the amount of scheduler lookahead"
+msgstr "Промени распон гледања унапред распоређивача"
+
+#: config/frv/frv.opt:178 config/pa/pa.opt:105
+msgid "Use software floating point"
+msgstr "Користи софтверски покретан зарез"
+
+#: config/frv/frv.opt:182
+msgid "Assume a large TLS segment"
+msgstr "Претпостави велики ТЛС сегмент"
+
+#: config/frv/frv.opt:186
+msgid "Do not assume a large TLS segment"
+msgstr "Не претпостављај велики ТЛС сегмент"
+
+#: config/frv/frv.opt:191
+msgid "Cause gas to print tomcat statistics"
+msgstr "Нека ГАС исписује томкет статистику"
+
+#: config/frv/frv.opt:196
+msgid "Link with the library-pic libraries"
+msgstr "Повезуј са ПИЦ библиотекама"
+
+#: config/frv/frv.opt:200
+msgid "Allow branches to be packed with other instructions"
+msgstr "Дозволи да гранања буду упакована са другим инструкцијама"
+
+#: config/mn10300/mn10300.opt:24
+msgid "Target the AM33 processor"
+msgstr "Циљај процесор АМ33"
+
+#: config/mn10300/mn10300.opt:28
+msgid "Target the AM33/2.0 processor"
+msgstr "Циљај процесор АМ33/2.0"
+
+#: config/mn10300/mn10300.opt:32
+msgid "Work around hardware multiply bug"
+msgstr "Заобиђи хардверску грешку у множењу"
+
+#: config/mn10300/mn10300.opt:37
+msgid "Enable linker relaxations"
+msgstr "Укључи релаксације повезивача"
+
+#: config/mn10300/mn10300.opt:41
+msgid "Return pointers in both a0 and d0"
+msgstr "Враћај показиваче и у a0 и у d0"
+
+#: config/s390/tpf.opt:24
+msgid "Enable TPF-OS tracing code"
+msgstr "Укључи кôд за праћење ТПФ-ОСа"
+
+#: config/s390/tpf.opt:28
+msgid "Specify main object for TPF-OS"
+msgstr "Наведите главни објекат за ТПФ-ОС"
+
+#: config/s390/s390.opt:24
+msgid "31 bit ABI"
+msgstr "31-битни АБИ"
+
+#: config/s390/s390.opt:28
+msgid "64 bit ABI"
+msgstr "64-битни АБИ"
+
+#: config/s390/s390.opt:32 config/i386/i386.opt:80
+msgid "Generate code for given CPU"
+msgstr "Створи кôд за дати ЦПУ"
+
+#: config/s390/s390.opt:36
+msgid "Maintain backchain pointer"
+msgstr "Одржавај показивач контраланца"
+
+#: config/s390/s390.opt:40
+msgid "Additional debug prints"
+msgstr "Додатно исправљачко исписивање"
+
+#: config/s390/s390.opt:44
+msgid "ESA/390 architecture"
+msgstr "Архитектура ЕСА/390"
+
+#: config/s390/s390.opt:48
+msgid "Enable fused multiply/add instructions"
+msgstr "Укључи инструкције стопљеног множења-додавања"
+
+#: config/s390/s390.opt:52 config/i386/i386.opt:48 config/i386/i386.opt:118
+msgid "Use hardware fp"
+msgstr "Користи хардверски ФП"
+
+#: config/s390/s390.opt:64
+msgid "Use packed stack layout"
+msgstr "Користи распоред пакованог стека"
+
+#: config/s390/s390.opt:68
+msgid "Use bras for executable < 64k"
+msgstr "Користи bras за извршне датотеке < 64k"
+
+#: config/s390/s390.opt:72
+msgid "Don't use hardware fp"
+msgstr "Не користи хардверски ФП"
+
+#: config/s390/s390.opt:76
+msgid "Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered"
+msgstr "Постави највећи број бајтова који се мора одложити на стек пре него што се окине инструкција клопке"
+
+#: config/s390/s390.opt:80
+msgid "Emit extra code in the function prologue in order to trap if the stack size exceeds the given limit"
+msgstr "Емитуј додатни кôд у прологу функције ради клопке кад величина стека премашује дато ограничење"
+
+#: config/s390/s390.opt:84 config/ia64/ia64.opt:97 config/sparc/sparc.opt:96
+#: config/i386/i386.opt:222 config/rs6000/rs6000.opt:203
+msgid "Schedule code for given CPU"
+msgstr "Распореди кôд за дати ЦПУ"
+
+#: config/s390/s390.opt:88
+msgid "mvcle use"
+msgstr "Употреба mvcle"
+
+#: config/s390/s390.opt:92
+msgid "Warn if a function uses alloca or creates an array with dynamic size"
+msgstr "Упозори ако функција користи alloca или прави низ динамичке величине"
+
+#: config/s390/s390.opt:96
+msgid "Warn if a single function's framesize exceeds the given framesize"
+msgstr "Упозори ако величина оквира једне функције премашује дату величину"
+
+#: config/s390/s390.opt:100
+msgid "z/Architecture"
+msgstr "Архитектура z/"
+
+#: config/ia64/ilp32.opt:3
+msgid "Generate ILP32 code"
+msgstr "Створи ИЛП32 кôд"
+
+#: config/ia64/ilp32.opt:7
+msgid "Generate LP64 code"
+msgstr "Створи ЛП64 кôд"
+
+#: config/ia64/ia64.opt:3
+msgid "Generate big endian code"
+msgstr "Створи кôд велике крајности"
+
+#: config/ia64/ia64.opt:7
+msgid "Generate little endian code"
+msgstr "Створи кôд мале крајности"
+
+#: config/ia64/ia64.opt:11
+msgid "Generate code for GNU as"
+msgstr "Створи кôд за Гнуов as"
+
+#: config/ia64/ia64.opt:15
+msgid "Generate code for GNU ld"
+msgstr "Створи кôд за Гнуов ld"
+
+#: config/ia64/ia64.opt:19
+msgid "Emit stop bits before and after volatile extended asms"
+msgstr "Емитуј битове заустављања пре и после непостојаних проширених асмова"
+
+#: config/ia64/ia64.opt:23
+msgid "Use in/loc/out register names"
+msgstr "Користи имена регистара in/loc/out"
+
+#: config/ia64/ia64.opt:30
+msgid "Enable use of sdata/scommon/sbss"
+msgstr "Укључи употребу sdata/scommon/sbss"
+
+#: config/ia64/ia64.opt:34
+msgid "Generate code without GP reg"
+msgstr "Створи кôд без ГП регистра"
+
+#: config/ia64/ia64.opt:38
+msgid "gp is constant (but save/restore gp on indirect calls)"
+msgstr "ГП је константан (али чувај/враћај ГП при посредним позивима)"
+
+#: config/ia64/ia64.opt:42
+msgid "Generate self-relocatable code"
+msgstr "Створи саморелокациони кôд"
+
+#: config/ia64/ia64.opt:46
+msgid "Generate inline floating point division, optimize for latency"
+msgstr "Стварај уткано дељење у покретном зарезу, оптимизуј за кашњење"
+
+#: config/ia64/ia64.opt:50
+msgid "Generate inline floating point division, optimize for throughput"
+msgstr "Стварај уткано дељење у покретном зарезу, оптимизуј за пропусност"
+
+#: config/ia64/ia64.opt:57
+msgid "Generate inline integer division, optimize for latency"
+msgstr "Стварај уткано целобројно дељење, оптимизуј за кашњење"
+
+#: config/ia64/ia64.opt:61
+msgid "Generate inline integer division, optimize for throughput"
+msgstr "Стварај уткано целобројно дељење, оптимизуј за пропусност"
+
+#: config/ia64/ia64.opt:65
+msgid "Do not inline integer division"
+msgstr "Не уткивај целобројно дељење"
+
+#: config/ia64/ia64.opt:69
+msgid "Generate inline square root, optimize for latency"
+msgstr "Стварај уткани квадратни корен, оптимизуј за кашњење"
+
+#: config/ia64/ia64.opt:73
+msgid "Generate inline square root, optimize for throughput"
+msgstr "Стварај уткани квадратни корен, оптимизуј за пропусност"
+
+#: config/ia64/ia64.opt:77
+msgid "Do not inline square root"
+msgstr "Не уткивај квадратни корен"
+
+#: config/ia64/ia64.opt:81
+msgid "Enable Dwarf 2 line debug info via GNU as"
+msgstr "Укључи исправљачке податке ДВАРФ 2 преко Гнуовог as"
+
+#: config/ia64/ia64.opt:85
+msgid "Enable earlier placing stop bits for better scheduling"
+msgstr "Укључи раније постављање битова заустављања ради бољег распоређивања"
+
+#: config/ia64/ia64.opt:89 config/pa/pa.opt:52
+msgid "Specify range of registers to make fixed"
+msgstr "Наведите опсег регистара које треба фиксирати"
+
+#: config/m32c/m32c.opt:25 config/mt/mt.opt:28
+msgid "Use simulator runtime"
+msgstr "Користи симулаторско извршавање"
+
+#: config/m32c/m32c.opt:29
+msgid "Compile code for R8C variants"
+msgstr "Компилуј кôд за варијанте Р8Ц"
+
+#: config/m32c/m32c.opt:33
+msgid "Compile code for M16C variants"
+msgstr "Компилуј кôд за варијанте М16Ц"
+
+#: config/m32c/m32c.opt:37
+msgid "Compile code for M32CM variants"
+msgstr "Компилуј кôд за варијанте М32ЦМ"
+
+#: config/m32c/m32c.opt:41
+msgid "Compile code for M32C variants"
+msgstr "Компилуј кôд за варијанте М32Ц"
+
+#: config/m32c/m32c.opt:45
+msgid "Number of memreg bytes (default: 16, range: 0..16)"
+msgstr "Број бајтова мемрегова (подразумевано: 16, опсег: 0..16)"
+
+#: config/sparc/little-endian.opt:24
+msgid "Generate code for little-endian"
+msgstr "Створи кôд за малу крајност"
+
+#: config/sparc/little-endian.opt:28
+msgid "Generate code for big-endian"
+msgstr "Створи кôд за велику крајност"
+
+#: config/sparc/sparc.opt:24 config/sparc/sparc.opt:28
+msgid "Use hardware FP"
+msgstr "Користи хардверски ФП"
+
+#: config/sparc/sparc.opt:32
+msgid "Do not use hardware FP"
+msgstr "Не користи хардверски ФП"
+
+#: config/sparc/sparc.opt:36
+msgid "Assume possible double misalignment"
+msgstr "Претпостави могуће двоструко неравнање"
+
+#: config/sparc/sparc.opt:40
+msgid "Pass -assert pure-text to linker"
+msgstr "Проследи -assert pure-text повезивачу"
+
+#: config/sparc/sparc.opt:44
+msgid "Use ABI reserved registers"
+msgstr "Користи регистре резервисане АБИјем"
+
+#: config/sparc/sparc.opt:48
+msgid "Use hardware quad FP instructions"
+msgstr "Користи хардверске четворне ФП инструкције"
+
+#: config/sparc/sparc.opt:52
+msgid "Do not use hardware quad fp instructions"
+msgstr "Не користи хардверске четворне ФП инструкције"
+
+#: config/sparc/sparc.opt:56
+msgid "Compile for V8+ ABI"
+msgstr "Компилуј за АБИ В8+"
+
+#: config/sparc/sparc.opt:60
+msgid "Use UltraSPARC Visual Instruction Set extensions"
+msgstr "Користи скуп визуелних инструкција (ВИС) УлтраСПАРКа"
+
+#: config/sparc/sparc.opt:64
+msgid "Pointers are 64-bit"
+msgstr "Показивачи су 64-битни"
+
+#: config/sparc/sparc.opt:68
+msgid "Pointers are 32-bit"
+msgstr "Показивачи су 32-битни"
+
+#: config/sparc/sparc.opt:72
+msgid "Use 64-bit ABI"
+msgstr "Користи 64-битни АБИ"
+
+#: config/sparc/sparc.opt:76
+msgid "Use 32-bit ABI"
+msgstr "Користи 32-битни АБИ"
+
+#: config/sparc/sparc.opt:80
+msgid "Use stack bias"
+msgstr "Користи нагињање стека"
+
+#: config/sparc/sparc.opt:84
+msgid "Use structs on stronger alignment for double-word copies"
+msgstr "Користи структуре на јачем равнању за дворечне копије"
+
+#: config/sparc/sparc.opt:88
+msgid "Optimize tail call instructions in assembler and linker"
+msgstr "Оптимизуј инструкције репних позива у асемблеру и повезивачу"
+
+#: config/sparc/sparc.opt:92 config/rs6000/rs6000.opt:199
+msgid "Use features of and schedule code for given CPU"
+msgstr "Користи могућности и распоређуј кôд за дати ЦПУ"
+
+#: config/sparc/sparc.opt:100
+msgid "Use given SPARC-V9 code model"
+msgstr "Користи дати модел кôда СПАРКа В9"
+
+#: config/m32r/m32r.opt:24
+msgid "Compile for the m32rx"
+msgstr "Компилуј за m32rx"
+
+#: config/m32r/m32r.opt:28
+msgid "Compile for the m32r2"
+msgstr "Компилуј за m32r2"
+
+#: config/m32r/m32r.opt:32
+msgid "Compile for the m32r"
+msgstr "Компилуј за m32r"
+
+#: config/m32r/m32r.opt:36
+msgid "Align all loops to 32 byte boundary"
+msgstr "Поравнај све петље на 32-бајтну границу"
+
+#: config/m32r/m32r.opt:40
+msgid "Prefer branches over conditional execution"
+msgstr "Боље гранања него условно извршавање"
+
+#: config/m32r/m32r.opt:44
+msgid "Give branches their default cost"
+msgstr "Дај гранањима њихову подразумевану цену"
+
+#: config/m32r/m32r.opt:48
+msgid "Display compile time statistics"
+msgstr "Прикажи статистике за време компиловања"
+
+#: config/m32r/m32r.opt:52
+msgid "Specify cache flush function"
+msgstr "Наведите функцију за спирање оставе"
+
+#: config/m32r/m32r.opt:56
+msgid "Specify cache flush trap number"
+msgstr "Наведите број клопке за спирање оставе"
+
+#: config/m32r/m32r.opt:60
+msgid "Only issue one instruction per cycle"
+msgstr "Издај само једну инструкцију по циклусу"
+
+#: config/m32r/m32r.opt:64
+msgid "Allow two instructions to be issued per cycle"
+msgstr "Дозволи издавање две инструкције по циклусу"
+
+#: config/m32r/m32r.opt:68
+msgid "Code size: small, medium or large"
+msgstr "Величина кôда: small, medium или large"
+
+#: config/m32r/m32r.opt:72
+msgid "Don't call any cache flush functions"
+msgstr "Не позивај функције за спирање оставе"
+
+#: config/m32r/m32r.opt:76
+msgid "Don't call any cache flush trap"
+msgstr "Не позивај клопке за спирање оставе"
+
+#: config/m32r/m32r.opt:83
+msgid "Small data area: none, sdata, use"
+msgstr "Мала област података: none, sdata, use"
+
+#: config/m68k/m68k.opt:24
+msgid "Generate code for a 520X"
+msgstr "Створи кôд за 520X"
+
+#: config/m68k/m68k.opt:28
+msgid "Generate code for a 5206e"
+msgstr "Створи кôд за 5206e"
+
+#: config/m68k/m68k.opt:32
+msgid "Generate code for a 528x"
+msgstr "Створи кôд за 528x"
+
+#: config/m68k/m68k.opt:36
+msgid "Generate code for a 5307"
+msgstr "Створи кôд за 5307"
+
+#: config/m68k/m68k.opt:40
+msgid "Generate code for a 5407"
+msgstr "Створи кôд за 5407"
+
+#: config/m68k/m68k.opt:44 config/m68k/m68k.opt:97
+msgid "Generate code for a 68000"
+msgstr "Створи кôд за 68000"
+
+#: config/m68k/m68k.opt:48 config/m68k/m68k.opt:101
+msgid "Generate code for a 68020"
+msgstr "Створи кôд за 68020"
+
+#: config/m68k/m68k.opt:52
+msgid "Generate code for a 68040, without any new instructions"
+msgstr "Створи кôд за 68040, без икаквих нових инструкција"
+
+#: config/m68k/m68k.opt:56
+msgid "Generate code for a 68060, without any new instructions"
+msgstr "Створи кôд за 68060, без икаквих нових инструкција"
+
+#: config/m68k/m68k.opt:60
+msgid "Generate code for a 68030"
+msgstr "Створи кôд за 68030"
+
+#: config/m68k/m68k.opt:64
+msgid "Generate code for a 68040"
+msgstr "Створи кôд за 68040"
+
+#: config/m68k/m68k.opt:68
+msgid "Generate code for a 68060"
+msgstr "Створи кôд за 68060"
+
+#: config/m68k/m68k.opt:72
+msgid "Generate code for a 68302"
+msgstr "Створи кôд за 68302"
+
+#: config/m68k/m68k.opt:76
+msgid "Generate code for a 68332"
+msgstr "Створи кôд за 68332"
+
+#: config/m68k/m68k.opt:81
+msgid "Generate code for a 68851"
+msgstr "Створи кôд за 68851"
+
+#: config/m68k/m68k.opt:85
+msgid "Generate code that uses 68881 floating-point instructions"
+msgstr "Створи кôд који користи инструкције од 68881 за рачунање у покретном зарезу"
+
+#: config/m68k/m68k.opt:89
+msgid "Align variables on a 32-bit boundary"
+msgstr "Поравнај променљиве на 32-бајтну границу"
+
+#: config/m68k/m68k.opt:93
+msgid "Use the bit-field instructions"
+msgstr "Користи инструкције битског нивоа"
+
+#: config/m68k/m68k.opt:105
+msgid "Generate code for a cpu32"
+msgstr "Створи кôд за cpu32"
+
+#: config/m68k/m68k.opt:109
+msgid "Enable ID based shared library"
+msgstr "Укључи дељене библиотеке на основу ИДа"
+
+#: config/m68k/m68k.opt:113
+msgid "Do not use the bit-field instructions"
+msgstr "Не користи инструкције битског нивоа"
+
+#: config/m68k/m68k.opt:117
+msgid "Use normal calling convention"
+msgstr "Користи нормалну конвенцију позивања"
+
+#: config/m68k/m68k.opt:121
+msgid "Consider type 'int' to be 32 bits wide"
+msgstr "Сматрај да тип ‘int’ има 32 бита"
+
+#: config/m68k/m68k.opt:125
+msgid "Generate pc-relative code"
+msgstr "Прави ПЦ-релативан кôд"
+
+#: config/m68k/m68k.opt:129
+msgid "Use different calling convention using 'rtd'"
+msgstr "Користи различиту конвенцију позивања користећи ‘rtd’"
+
+#: config/m68k/m68k.opt:133
+msgid "Enable separate data segment"
+msgstr "Укључи раздвојени сегмент података"
+
+#: config/m68k/m68k.opt:137 config/bfin/bfin.opt:45
+msgid "ID of shared library to build"
+msgstr "ИД дељене библиотеке за градњу"
+
+#: config/m68k/m68k.opt:141
+msgid "Consider type 'int' to be 16 bits wide"
+msgstr "Сматрај да тип ‘int’ има 16 битова"
+
+#: config/m68k/m68k.opt:145
+msgid "Generate code with library calls for floating point"
+msgstr "Створи кôд са библиотечким позивима за покретни зарез"
+
+#: config/m68k/m68k.opt:149
+msgid "Do not use unaligned memory references"
+msgstr "Не користи непоравнате меморијске упућиваче"
+
+#: config/m68k/ieee.opt:25 config/i386/i386.opt:122
+msgid "Use IEEE math for fp comparisons"
+msgstr "Користи ИЕЕЕ математику за ФП поређења"
+
+#: config/i386/djgpp.opt:26
+msgid "Ignored (obsolete)"
+msgstr "Игнорисано (застарело)"
+
+#: config/i386/i386.opt:24
+msgid "sizeof(long double) is 16"
+msgstr "sizeof(long double) је 16"
+
+#: config/i386/i386.opt:28
+msgid "Generate 32bit i386 code"
+msgstr "Створи 32-битни кôд за и386"
+
+#: config/i386/i386.opt:36
+msgid "Support 3DNow! built-in functions"
+msgstr "Подржи уграђене 3DNow! функције"
+
+#: config/i386/i386.opt:44
+msgid "Generate 64bit x86-64 code"
+msgstr "Створи 64-битни кôд за икс86-64"
+
+#: config/i386/i386.opt:52
+msgid "sizeof(long double) is 12"
+msgstr "sizeof(long double) је 12"
+
+#: config/i386/i386.opt:56
+msgid "Reserve space for outgoing arguments in the function prologue"
+msgstr "Резервиши простор за одлазеће аргументе у прологу функције"
+
+#: config/i386/i386.opt:60
+msgid "Align some doubles on dword boundary"
+msgstr "Поравнај неке двоструке на граници д-речи"
+
+#: config/i386/i386.opt:64
+msgid "Function starts are aligned to this power of 2"
+msgstr "Почеци функција су поравнати на овај степен двојке"
+
+#: config/i386/i386.opt:68
+msgid "Jump targets are aligned to this power of 2"
+msgstr "Циљеви скокова су поравнати на овај степен двојке"
+
+#: config/i386/i386.opt:72
+msgid "Loop code aligned to this power of 2"
+msgstr "Кôд петље је поравнат на овај степен двојке"
+
+#: config/i386/i386.opt:76
+msgid "Align destination of the string operations"
+msgstr "Поравнај одредиште операција над нискама"
+
+#: config/i386/i386.opt:84
+msgid "Use given assembler dialect"
+msgstr "Користи дати дијалект асемблера"
+
+#: config/i386/i386.opt:88
+msgid "Branches are this expensive (1-5, arbitrary units)"
+msgstr "Гранања оволико коштају (1-5, произвољне јединице)"
+
+#: config/i386/i386.opt:92
+msgid "Data greater than given threshold will go into .ldata section in x86-64 medium model"
+msgstr "Подаци већи од датог прага ће отићи у одељак .ldata у средњем моделу икс86-64"
+
+#: config/i386/i386.opt:96
+msgid "Use given x86-64 code model"
+msgstr "Користи дати модел кôда икс86-64"
+
+#: config/i386/i386.opt:106
+msgid "Generate sin, cos, sqrt for FPU"
+msgstr "Створи sin, cos, sqrt за ФПУ"
+
+#: config/i386/i386.opt:110
+msgid "Return values of functions in FPU registers"
+msgstr "Враћај вредности функција у регистрима ФПУа"
+
+#: config/i386/i386.opt:114
+msgid "Generate floating point mathematics using given instruction set"
+msgstr "Стварај математику у покретном зарезу користећи дати скуп инструкција"
+
+#: config/i386/i386.opt:126
+msgid "Inline all known string operations"
+msgstr "Уткај све познате операције над нискама"
+
+#: config/i386/i386.opt:134
+msgid "Support MMX built-in functions"
+msgstr "Подржи уграђене ММИкс функције"
+
+#: config/i386/i386.opt:138
+msgid "Use native (MS) bitfield layout"
+msgstr "Користи урођени (МСов) распоред битских поља"
+
+#: config/i386/i386.opt:154
+msgid "Omit the frame pointer in leaf functions"
+msgstr "Изостави показивач оквира у функцијама-листовима"
+
+#: config/i386/i386.opt:166
+msgid "Attempt to keep stack aligned to this power of 2"
+msgstr "Покушај да одржиш стек поравнат на овом степену двојке"
+
+#: config/i386/i386.opt:170
+msgid "Use push instructions to save outgoing arguments"
+msgstr "Користи инструкције гурања за чување одлазећих аргумената"
+
+#: config/i386/i386.opt:174
+msgid "Use red-zone in the x86-64 code"
+msgstr "Користи црвену зону у кôду за икс86-64"
+
+#: config/i386/i386.opt:178
+msgid "Number of registers used to pass integer arguments"
+msgstr "Број регистара који се користи за прослеђивање целобројних аргумената"
+
+#: config/i386/i386.opt:182
+msgid "Alternate calling convention"
+msgstr "Алтернативна конвенција позивања"
+
+#: config/i386/i386.opt:190
+msgid "Support MMX and SSE built-in functions and code generation"
+msgstr "Подржи уграђене ММИкс и ССЕ функције и стварање кôда"
+
+#: config/i386/i386.opt:194
+msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
+msgstr "Подржи уграђене ММИкс, ССЕ и ССЕ2 функције и стварање кôда"
+
+#: config/i386/i386.opt:198
+msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
+msgstr "Подржи уграђене ММИкс, ССЕ, ССЕ2 и ССЕ3 функције и стварање кôда"
+
+#: config/i386/i386.opt:202
+msgid "Use SSE register passing conventions for SF and DF mode"
+msgstr "Користи ССЕ конвенције прослеђивања регистара за режиме СФ и ДФ"
+
+#: config/i386/i386.opt:206
+msgid "Uninitialized locals in .bss"
+msgstr "Неуспостављени локални у .bss"
+
+#: config/i386/i386.opt:210
+msgid "Enable stack probing"
+msgstr "Укључи сондирање стека"
+
+#: config/i386/i386.opt:214
+msgid "Use given thread-local storage dialect"
+msgstr "Користи дати дијалект нитно-локалног складиштења"
+
+#: config/i386/i386.opt:218
+#, c-format
+msgid "Use direct references against %gs when accessing tls data"
+msgstr "Користи непосредне упућиваче за %gs при приступању ТЛС подацима"
+
+#: config/i386/cygming.opt:24
+msgid "Create console application"
+msgstr "Направи терминалски програм"
+
+#: config/i386/cygming.opt:28
+msgid "Use the Cygwin interface"
+msgstr "Користи суљеље Сигвина"
+
+#: config/i386/cygming.opt:32
+msgid "Generate code for a DLL"
+msgstr "Створи кôд за ДЛЛ"
+
+#: config/i386/cygming.opt:36
+msgid "Ignore dllimport for functions"
+msgstr "Игнориши dllimport за функције"
+
+#: config/i386/cygming.opt:40
+msgid "Use Mingw-specific thread support"
+msgstr "Користи подршку нити посебну за Мингв"
+
+#: config/i386/cygming.opt:44
+msgid "Set Windows defines"
+msgstr "Постави дефиниције за Виндоуз"
+
+#: config/i386/cygming.opt:48
+msgid "Create GUI application"
+msgstr "Направи ГУИ програм"
+
+#: config/i386/sco5.opt:25
+msgid "Generate ELF output"
+msgstr "Створи ЕЛФ излаз"
+
+#: config/rs6000/aix41.opt:25 config/rs6000/aix64.opt:33
+msgid "Support message passing with the Parallel Environment"
+msgstr "Подржи прослеђивање помоћу паралелног окружења"
+
+#: config/rs6000/aix.opt:25 config/rs6000/rs6000.opt:128
+msgid "Conform more closely to IBM XLC semantics"
+msgstr "Поштуј ближе семантику ИБМовог ИксЛЦа"
+
+#: config/rs6000/darwin.opt:25 config/rs6000/sysv4.opt:133
+msgid "Generate 64-bit code"
+msgstr "Створи 64-битни кôд"
+
+#: config/rs6000/darwin.opt:29 config/rs6000/sysv4.opt:137
+msgid "Generate 32-bit code"
+msgstr "Створи 32-битни кôд"
+
+#: config/rs6000/darwin.opt:33
+msgid "Generate code suitable for executables (NOT shared libs)"
+msgstr "Створи кôд погодан за извршне (НЕ за дељене библиотеке)"
+
+#: config/rs6000/rs6000.opt:25
+msgid "Use POWER instruction set"
+msgstr "Користи скуп инструкција Пауера"
+
+#: config/rs6000/rs6000.opt:29
+msgid "Do not use POWER instruction set"
+msgstr "Не користи скуп инструкција Пауера"
+
+#: config/rs6000/rs6000.opt:33
+msgid "Use POWER2 instruction set"
+msgstr "Користи скуп инструкција Пауера2"
+
+#: config/rs6000/rs6000.opt:37
+msgid "Use PowerPC instruction set"
+msgstr "Користи скуп инструкција ПауерПЦа"
+
+#: config/rs6000/rs6000.opt:41
+msgid "Do not use PowerPC instruction set"
+msgstr "Не користи скуп инструкција ПауерПЦа"
+
+#: config/rs6000/rs6000.opt:45
+msgid "Use PowerPC-64 instruction set"
+msgstr "Користи скуп инструкција ПауерПЦа-64"
+
+#: config/rs6000/rs6000.opt:49
+msgid "Use PowerPC General Purpose group optional instructions"
+msgstr "Користи опционе инструкције ПауерПЦа из групе за општу употребу"
+
+#: config/rs6000/rs6000.opt:53
+msgid "Use PowerPC Graphics group optional instructions"
+msgstr "Користи опционе инструкције ПауерПЦа из графичке групе"
+
+#: config/rs6000/rs6000.opt:57
+msgid "Use PowerPC V2.01 single field mfcr instruction"
+msgstr "Користи инструкцију mfcr са једним пољем, ПауерПЦа в2.01"
+
+#: config/rs6000/rs6000.opt:61
+msgid "Use PowerPC V2.02 popcntb instruction"
+msgstr "Користи инструкцију popcntb ПауерПЦа в2.02"
+
+#: config/rs6000/rs6000.opt:65
+msgid "Use PowerPC V2.02 floating point rounding instructions"
+msgstr "Користи инструкције ПауерПЦа в2.02 за заокруживање у покретном зарезу"
+
+#: config/rs6000/rs6000.opt:69
+msgid "Use AltiVec instructions"
+msgstr "Користи алтивек инструкције"
+
+#: config/rs6000/rs6000.opt:73
+msgid "Generate load/store multiple instructions"
+msgstr "Стварај инструкције вишеструког учитавања/складиштења"
+
+#: config/rs6000/rs6000.opt:77
+msgid "Generate string instructions for block moves"
+msgstr "Стварај инструкције ниски за премештања блокова"
+
+#: config/rs6000/rs6000.opt:81
+msgid "Use new mnemonics for PowerPC architecture"
+msgstr "Користи нову мнемонику за архитектуру ПауерПЦа"
+
+#: config/rs6000/rs6000.opt:85
+msgid "Use old mnemonics for PowerPC architecture"
+msgstr "Користи стару мнемонику за архитектуру ПауерПЦа"
+
+#: config/rs6000/rs6000.opt:89 config/pdp11/pdp11.opt:84
+msgid "Do not use hardware floating point"
+msgstr "Не користи хардверски покретан зарез"
+
+#: config/rs6000/rs6000.opt:97
+msgid "Do not generate load/store with update instructions"
+msgstr "Не стварај инструкције учитавања/складиштења са ажурирањем"
+
+#: config/rs6000/rs6000.opt:101
+msgid "Generate load/store with update instructions"
+msgstr "Стварај инструкције учитавања/складиштења са ажурирањем"
+
+#: config/rs6000/rs6000.opt:105
+msgid "Do not generate fused multiply/add instructions"
+msgstr "Не стварај инструкције стопљеног множења-додавања"
+
+#: config/rs6000/rs6000.opt:109
+msgid "Generate fused multiply/add instructions"
+msgstr "Стварај инструкције стопљеног множења-додавања"
+
+#: config/rs6000/rs6000.opt:113
+msgid "Schedule the start and end of the procedure"
+msgstr "Распоређуј почетак и крај процедуре"
+
+#: config/rs6000/rs6000.opt:120
+msgid "Return all structures in memory (AIX default)"
+msgstr "Враћај све структуре у меморији (подразумевано за Аикс)"
+
+#: config/rs6000/rs6000.opt:124
+msgid "Return small structures in registers (SVR4 default)"
+msgstr "Враћај мале структуре у регистрима (подразумевано за СВР4)"
+
+#: config/rs6000/rs6000.opt:132
+msgid "Generate software floating point divide for better throughput"
+msgstr "Стварај софтверско дељење у покретном зарезу ради боље пропусности"
+
+#: config/rs6000/rs6000.opt:136
+msgid "Do not place floating point constants in TOC"
+msgstr "Не стављај константе покретног зареза у ТОЦ"
+
+#: config/rs6000/rs6000.opt:140
+msgid "Place floating point constants in TOC"
+msgstr "Стављај константе покретног зареза у ТОЦ"
+
+#: config/rs6000/rs6000.opt:144
+msgid "Do not place symbol+offset constants in TOC"
+msgstr "Не стављај константе симбола+помака у ТОЦ"
+
+#: config/rs6000/rs6000.opt:148
+msgid "Place symbol+offset constants in TOC"
+msgstr "Стављај константе симбола+помака у ТОЦ"
+
+#: config/rs6000/rs6000.opt:159
+msgid "Use only one TOC entry per procedure"
+msgstr "Користи само један ТОЦ по процедури"
+
+#: config/rs6000/rs6000.opt:163
+msgid "Put everything in the regular TOC"
+msgstr "Стави све у регуларан ТОЦ"
+
+#: config/rs6000/rs6000.opt:167
+msgid "Generate VRSAVE instructions when generating AltiVec code"
+msgstr "Стварај инструкције VRSAVE при састављању алтивек кода"
+
+#: config/rs6000/rs6000.opt:171
+msgid "Deprecated option. Use -mvrsave/-mno-vrsave instead"
+msgstr "Непрепоручљива опција; користите -mvrsave и -mno-vrsave"
+
+#: config/rs6000/rs6000.opt:175
+msgid "Generate isel instructions"
+msgstr "Стварај инструкције isel"
+
+#: config/rs6000/rs6000.opt:179
+msgid "Deprecated option. Use -misel/-mno-isel instead"
+msgstr "Непрепоручљива опција; користите -misel и -mno-isel"
+
+#: config/rs6000/rs6000.opt:183
+msgid "Generate SPE SIMD instructions on E500"
+msgstr "Стварај СПЕ СИМД инструкције на Е500"
+
+#: config/rs6000/rs6000.opt:187
+msgid "Deprecated option. Use -mspe/-mno-spe instead"
+msgstr "Непрепоручљива опција; користите -mspe и -mno-spe"
+
+#: config/rs6000/rs6000.opt:191
+msgid "Enable debug output"
+msgstr "Укључи исправљачки излаз"
+
+#: config/rs6000/rs6000.opt:195
+msgid "Specify ABI to use"
+msgstr "Наведите АБИ који се користи"
+
+#: config/rs6000/rs6000.opt:207
+msgid "Select full, part, or no traceback table"
+msgstr "Изаберите пуну или делимичну табелу повратног трага, или без ње"
+
+#: config/rs6000/rs6000.opt:211
+msgid "Avoid all range limits on call instructions"
+msgstr "Избегавај сва ограничења опсега при позивним инструкцијама"
+
+#: config/rs6000/rs6000.opt:215
+msgid "Warn about deprecated 'vector long ...' AltiVec type usage"
+msgstr "Упозори на превазиђену употребу алтивек типа ‘vector long ...’"
+
+#: config/rs6000/rs6000.opt:219
+msgid "Select GPR floating point method"
+msgstr "Изаберите метод покретног зареза за ГПР"
+
+#: config/rs6000/rs6000.opt:223
+msgid "Specify size of long double (64 or 128 bits)"
+msgstr "Наведите величину за ‘long double’ (64 или 128 битова)"
+
+#: config/rs6000/rs6000.opt:227
+msgid "Determine which dependences between insns are considered costly"
+msgstr "Одредите које зависности између ија се сматрају скупим"
+
+#: config/rs6000/rs6000.opt:231
+msgid "Specify which post scheduling nop insertion scheme to apply"
+msgstr "Наведите коју шему пост-распоређивања за уметање НОПа треба применити"
+
+#: config/rs6000/rs6000.opt:235
+msgid "Specify alignment of structure fields default/natural"
+msgstr "Наведите равнање поља структуре, подразумевано/природно"
+
+#: config/rs6000/rs6000.opt:239
+msgid "Specify scheduling priority for dispatch slot restricted insns"
+msgstr "Наведите приоритет распоређивања за ије ограничене жлебом одашиљања"
+
+#: config/rs6000/aix64.opt:25
+msgid "Compile for 64-bit pointers"
+msgstr "Компилуј за 64-битне показиваче"
+
+#: config/rs6000/aix64.opt:29
+msgid "Compile for 32-bit pointers"
+msgstr "Компилуј за 32-битне показиваче"
+
+#: config/rs6000/linux64.opt:25
+msgid "Call mcount for profiling before a function prologue"
+msgstr "Позивај mcount за профилисање пре пролога функције"
+
+#: config/rs6000/sysv4.opt:25
+msgid "Select ABI calling convention"
+msgstr "Изаберите конвенцију позивања АБИја"
+
+#: config/rs6000/sysv4.opt:29
+msgid "Select method for sdata handling"
+msgstr "Изаберите метод руковања с-подацима"
+
+#: config/rs6000/sysv4.opt:37 config/rs6000/sysv4.opt:41
+msgid "Align to the base type of the bit-field"
+msgstr "Равнај на основни тип битског поља"
+
+#: config/rs6000/sysv4.opt:46 config/rs6000/sysv4.opt:50
+msgid "Produce code relocatable at runtime"
+msgstr "Произведи кôд релокабилан при извршавању"
+
+#: config/rs6000/sysv4.opt:54 config/rs6000/sysv4.opt:58
+msgid "Produce little endian code"
+msgstr "Произведи кôд мале крајности"
+
+#: config/rs6000/sysv4.opt:62 config/rs6000/sysv4.opt:66
+msgid "Produce big endian code"
+msgstr "Произведи кôд велике крајности"
+
+#: config/rs6000/sysv4.opt:71 config/rs6000/sysv4.opt:75
+#: config/rs6000/sysv4.opt:84 config/rs6000/sysv4.opt:101
+#: config/rs6000/sysv4.opt:129 config/rs6000/sysv4.opt:141
+msgid "no description yet"
+msgstr "још увек без описа"
+
+#: config/rs6000/sysv4.opt:79
+msgid "Assume all variable arg functions are prototyped"
+msgstr "Претпостави да све варарг функције имају прототипе"
+
+#: config/rs6000/sysv4.opt:88
+msgid "Use EABI"
+msgstr "Користи ЕАБИ"
+
+#: config/rs6000/sysv4.opt:92
+msgid "Allow bit-fields to cross word boundaries"
+msgstr "Дозволи битским пољима да прелазе границе речи"
+
+#: config/rs6000/sysv4.opt:96
+msgid "Use alternate register names"
+msgstr "Користи алтернативна имена регистара"
+
+#: config/rs6000/sysv4.opt:105
+msgid "Link with libsim.a, libc.a and sim-crt0.o"
+msgstr "Повежи са libsim.a, libc.a и sim-crt0.o"
+
+#: config/rs6000/sysv4.opt:109
+msgid "Link with libads.a, libc.a and crt0.o"
+msgstr "Повежи са libads.a, libc.a и crt0.o"
+
+#: config/rs6000/sysv4.opt:113
+msgid "Link with libyk.a, libc.a and crt0.o"
+msgstr "Повежи са libyk.a, libc.a и crt0.o"
+
+#: config/rs6000/sysv4.opt:117
+msgid "Link with libmvme.a, libc.a and crt0.o"
+msgstr "Повежи са libmvme.a, libc.a и crt0.o"
+
+#: config/rs6000/sysv4.opt:121
+msgid "Set the PPC_EMB bit in the ELF flags header"
+msgstr "Постави бит PPC_EMB у заглављу ЕЛФ заставица"
+
+#: config/rs6000/sysv4.opt:125
+msgid "Use the WindISS simulator"
+msgstr "Користи симулатор ВиндИСС"
+
+#: config/rs6000/sysv4.opt:145
+msgid "Generate code to use a non-exec PLT and GOT"
+msgstr "Створи кôд који користи неизвршне PLT и GOT"
+
+#: config/rs6000/sysv4.opt:149
+msgid "Generate code for old exec BSS PLT"
+msgstr "Створи кôд за стари извршни BSS PLT"
+
+#: config/mt/mt.opt:24
+msgid "Use byte loads and stores when generating code."
+msgstr "Користи учитавања и складиштења бајтова при стварању кода."
+
+#: config/mt/mt.opt:32
+msgid "Do not include crt0.o in the startup files"
+msgstr "Не укључуј crt0.o у датотеке при покретању"
+
+#: config/mt/mt.opt:36 config/mt/mt.opt:40 config/mt/mt.opt:44
+#: config/mt/mt.opt:48 config/mt/mt.opt:52
+msgid "Internal debug switch"
+msgstr "Унутрашњи прекидач за исправљање"
+
+#: config/mt/mt.opt:56 config/iq2000/iq2000.opt:24
+msgid "Specify CPU for code generation purposes"
+msgstr "Наведите ЦПУ у сврху стварања кода"
+
+#: config/mcore/mcore.opt:24
+msgid "Generate code for the M*Core M210"
+msgstr "Створи кôд за М*Језгро М210"
+
+#: config/mcore/mcore.opt:28
+msgid "Generate code for the M*Core M340"
+msgstr "Створи кôд за М*Језгро М340"
+
+#: config/mcore/mcore.opt:32
+msgid "Set maximum alignment to 4"
+msgstr "Постави највеће равнање на 4"
+
+#: config/mcore/mcore.opt:36
+msgid "Force functions to be aligned to a 4 byte boundary"
+msgstr "Спроведи поравнање функција на 4-бајтну границу"
+
+#: config/mcore/mcore.opt:40
+msgid "Set maximum alignment to 8"
+msgstr "Постави највеће равнање на 8"
+
+#: config/mcore/mcore.opt:44
+msgid "Generate big-endian code"
+msgstr "Створи кôд велике крајности"
+
+#: config/mcore/mcore.opt:48
+msgid "Emit call graph information"
+msgstr "Емитуј информације за граф позива"
+
+#: config/mcore/mcore.opt:52
+msgid "Use the divide instruction"
+msgstr "Користи инструкције дељења"
+
+#: config/mcore/mcore.opt:56
+msgid "Inline constants if it can be done in 2 insns or less"
+msgstr "Уткивај константе ако је могуће у 2 или мање ија"
+
+#: config/mcore/mcore.opt:60
+msgid "Generate little-endian code"
+msgstr "Створи кôд мале крајности"
+
+#: config/mcore/mcore.opt:68
+msgid "Use arbitrary sized immediates in bit operations"
+msgstr "Користи непосредне произвољне величине у битским операцијама"
+
+#: config/mcore/mcore.opt:72
+msgid "Prefer word accesses over byte accesses"
+msgstr "Боље приступ речима него бајтовима"
+
+#: config/mcore/mcore.opt:76
+msgid "Set the maximum amount for a single stack increment operation"
+msgstr "Постави највећу вредност једне операције увећања стека"
+
+#: config/mcore/mcore.opt:80
+msgid "Always treat bitfields as int-sized"
+msgstr "Увек сматрај да су битска поља величина инта"
+
+#: config/arc/arc.opt:33
+msgid "Prepend the name of the cpu to all public symbol names"
+msgstr "Додај име ЦПУа на почетак имена свих јавних симбола"
+
+#: config/arc/arc.opt:43
+msgid "Compile code for ARC variant CPU"
+msgstr "Компилуј кôд за АРЦ"
+
+#: config/arc/arc.opt:47
+msgid "Put functions in SECTION"
+msgstr "Стави функције у SECTION"
+
+#: config/arc/arc.opt:51
+msgid "Put data in SECTION"
+msgstr "Стави податке у SECTION"
+
+#: config/arc/arc.opt:55
+msgid "Put read-only data in SECTION"
+msgstr "Стави само-за-читање податке у SECTION"
+
+#: config/sh/sh.opt:45
+msgid "Generate SH1 code"
+msgstr "Створи кôд за СХ1"
+
+#: config/sh/sh.opt:49
+msgid "Generate SH2 code"
+msgstr "Створи кôд за СХ2"
+
+#: config/sh/sh.opt:53
+msgid "Generate SH2a code"
+msgstr "Створи кôд за СХ2а"
+
+#: config/sh/sh.opt:57
+msgid "Generate SH2a FPU-less code"
+msgstr "Створи кôд за СХ2а без ФПУа"
+
+#: config/sh/sh.opt:61
+msgid "Generate default single-precision SH2a code"
+msgstr "Створи подразумевани кôд једноструке тачности за СХ2а"
+
+#: config/sh/sh.opt:65
+msgid "Generate only single-precision SH2a code"
+msgstr "Створи само кôд једноструке тачности за СХ2а"
+
+#: config/sh/sh.opt:69
+msgid "Generate SH2e code"
+msgstr "Створи кôд за СХ2е"
+
+#: config/sh/sh.opt:73
+msgid "Generate SH3 code"
+msgstr "Створи кôд за СХ3"
+
+#: config/sh/sh.opt:77
+msgid "Generate SH3e code"
+msgstr "Створи кôд за СХ3е"
+
+#: config/sh/sh.opt:81
+msgid "Generate SH4 code"
+msgstr "Створи кôд за СХ4"
+
+#: config/sh/sh.opt:85
+msgid "Generate SH4 FPU-less code"
+msgstr "Створи кôд за СХ4 без ФПУа"
+
+#: config/sh/sh.opt:89
+msgid "Generate default single-precision SH4 code"
+msgstr "Створи подразумевани кôд једноструке тачности за СХ4"
+
+#: config/sh/sh.opt:93
+msgid "Generate only single-precision SH4 code"
+msgstr "Створи само кôд једноструке тачности за СХ4"
+
+#: config/sh/sh.opt:97
+msgid "Generate SH4a code"
+msgstr "Створи кôд за СХ4а"
+
+#: config/sh/sh.opt:101
+msgid "Generate SH4a FPU-less code"
+msgstr "Створи кôд за СХ4а без ФПУа"
+
+#: config/sh/sh.opt:105
+msgid "Generate default single-precision SH4a code"
+msgstr "Створи подразумевани кôд једноструке тачности за СХ4а"
+
+#: config/sh/sh.opt:109
+msgid "Generate only single-precision SH4a code"
+msgstr "Створи само кôд једноструке тачности за СХ4а"
+
+#: config/sh/sh.opt:113
+msgid "Generate SH4al-dsp code"
+msgstr "Створи кôд за СХ4ал-дсп"
+
+#: config/sh/sh.opt:117
+msgid "Generate 32-bit SHmedia code"
+msgstr "Створи 32-битни кôд за СХмедију"
+
+#: config/sh/sh.opt:121
+msgid "Generate 32-bit FPU-less SHmedia code"
+msgstr "Створи 32-битни кôд за СХмедију без ФПУа"
+
+#: config/sh/sh.opt:125
+msgid "Generate 64-bit SHmedia code"
+msgstr "Створи 64-битни кôд за СХмедију"
+
+#: config/sh/sh.opt:129
+msgid "Generate 64-bit FPU-less SHmedia code"
+msgstr "Створи 64-битни кôд за СХмедију без ФПУа"
+
+#: config/sh/sh.opt:133
+msgid "Generate SHcompact code"
+msgstr "Створи кôд за СХкомпакт"
+
+#: config/sh/sh.opt:137
+msgid "Generate FPU-less SHcompact code"
+msgstr "Створи кôд за СХкомпакт без ФПУа"
+
+#: config/sh/sh.opt:141
+msgid "Throttle unrolling to avoid thrashing target registers unless the unroll benefit outweighs this"
+msgstr "Смањи одмотавање да би избегао млаћење циљних регистара осим ако се одмотавањем ипак постиже укупан добитак"
+
+#: config/sh/sh.opt:145
+msgid "Generate code in big endian mode"
+msgstr "Стварај кôд у режиму велике крајности"
+
+#: config/sh/sh.opt:149
+msgid "Generate 32-bit offsets in switch tables"
+msgstr "Створи 32-битне помаке у прекидачким табелама"
+
+#: config/sh/sh.opt:153
+msgid "Enable SH5 cut2 workaround"
+msgstr "Укључи заобилазак cut2 за СХ5"
+
+#: config/sh/sh.opt:157
+msgid "Align doubles at 64-bit boundaries"
+msgstr "Поравнај све двоструке на 64-битним границама"
+
+#: config/sh/sh.opt:161
+msgid "Division strategy, one of: call, call2, fp, inv, inv:minlat, inv20u, inv20l, inv:call, inv:call2, inv:fp"
+msgstr "Стратегија дељења, једно од: call, call2, fp, inv, inv:minlat, inv20u, inv20l, inv:call, inv:call2, inv:fp"
+
+#: config/sh/sh.opt:165
+msgid "Specify name for 32 bit signed division function"
+msgstr "Наведите име за функцију означеног 32-битног дељења"
+
+#: config/sh/sh.opt:172
+msgid "Cost to assume for gettr insn"
+msgstr "Претпостављена цена за ију gettr"
+
+#: config/sh/sh.opt:176 config/sh/sh.opt:222
+msgid "Follow Renesas (formerly Hitachi) / SuperH calling conventions"
+msgstr "Прати Ренесасову (бившу Хитачијеву) конвенцију позивања СуперХ"
+
+#: config/sh/sh.opt:180
+msgid "Increase the IEEE compliance for floating-point code"
+msgstr "Повећај сагласност кôда покретног зареза са ИЕЕЕом"
+
+#: config/sh/sh.opt:184
+msgid "Enable the use of the indexed addressing mode for SHmedia32/SHcompact"
+msgstr "Укључи употребу индексног адресног режима за СХмедију32/СХкомпакт"
+
+#: config/sh/sh.opt:188
+msgid "Assume symbols might be invalid"
+msgstr "Претпостави да симболи могу бити неважећи"
+
+#: config/sh/sh.opt:192
+msgid "Annotate assembler instructions with estimated addresses"
+msgstr "Придодај инструкцијама асемблера процењене адресе"
+
+#: config/sh/sh.opt:196
+msgid "Generate code in little endian mode"
+msgstr "Створи кôд у режиму мале крајности"
+
+#: config/sh/sh.opt:200
+msgid "Mark MAC register as call-clobbered"
+msgstr "Означи регистар MAC као позивом продрман"
+
+#: config/sh/sh.opt:206
+msgid "Make structs a multiple of 4 bytes (warning: ABI altered)"
+msgstr "Нека структуре буду умношци 4 бајта (упозорење: измењен АБИ)"
+
+#: config/sh/sh.opt:210
+msgid "Emit function-calls using global offset table when generating PIC"
+msgstr "Емитуј позиве функција користећи глобалну табелу помака при стварању ПИЦа"
+
+#: config/sh/sh.opt:214
+msgid "Assume pt* instructions won't trap"
+msgstr "Претпостваи да pt* инструкције не бацају клопке"
+
+#: config/sh/sh.opt:218
+msgid "Shorten address references during linking"
+msgstr "Скрати упућиваче адреса при повезивању"
+
+#: config/sh/sh.opt:226
+msgid "Deprecated. Use -Os instead"
+msgstr "Непрепоручљиво; користите -Os"
+
+#: config/sh/sh.opt:230
+msgid "Cost to assume for a multiply insn"
+msgstr "Претпостављена цена за ију множења"
+
+#: config/sh/sh.opt:234
+msgid "Generate library function call to invalidate instruction cache entries after fixing trampoline"
+msgstr "Створи позив библиотечке функције за поништавање ставки у остави инструкција после поправке трамполине"
+
+#: config/arm/arm.opt:24
+msgid "Specify an ABI"
+msgstr "Наведите АБИ"
+
+#: config/arm/arm.opt:28
+msgid "Generate a call to abort if a noreturn function returns"
+msgstr "Створи позив за прекидање ако се неповратна функција врати"
+
+#: config/arm/arm.opt:35
+msgid "Pass FP arguments in FP registers"
+msgstr "Прослеђуј ФП аргументе у ФП регистрима"
+
+#: config/arm/arm.opt:39
+msgid "Generate APCS conformant stack frames"
+msgstr "Стварај оквире стека сагласне са АПЦСом"
+
+#: config/arm/arm.opt:43
+msgid "Generate re-entrant, PIC code"
+msgstr "Створи вишеулазни, ПИЦ кôд"
+
+#: config/arm/arm.opt:50
+msgid "Specify the name of the target architecture"
+msgstr "Наведите име циљне архитектуре"
+
+#: config/arm/arm.opt:57
+msgid "Assume target CPU is configured as big endian"
+msgstr "Претпостави да је циљни ЦПУ постављен на велику крајност"
+
+#: config/arm/arm.opt:61
+msgid "Thumb: Assume non-static functions may be called from ARM code"
+msgstr "Тамб: Претпостави да се нестатичке функције могу позвати из АРМ кôда"
+
+#: config/arm/arm.opt:65
+msgid "Thumb: Assume function pointers may go to non-Thumb aware code"
+msgstr "Тамб: Претпостави да функцијски показивачи могу водити у кôд несвестан Тамба"
+
+#: config/arm/arm.opt:69
+msgid "Cirrus: Place NOPs to avoid invalid instruction combinations"
+msgstr "Цирус: Стављај НОПе да би избегао неважеће комбинације инструкција"
+
+#: config/arm/arm.opt:73
+msgid "Specify the name of the target CPU"
+msgstr "Наведите име циљног ЦПУа"
+
+#: config/arm/arm.opt:77
+msgid "Specify if floating point hardware should be used"
+msgstr "Наведите да ли да се користи хардвер за покретан зарез"
+
+#: config/arm/arm.opt:91
+msgid "Specify the name of the target floating point hardware/format"
+msgstr "Наведите име циљног хардвера/формата за покретан зарез"
+
+#: config/arm/arm.opt:95
+msgid "Alias for -mfloat-abi=hard"
+msgstr "Други назив за -mfloat-abi=hard"
+
+#: config/arm/arm.opt:99
+msgid "Assume target CPU is configured as little endian"
+msgstr "Претпостави да је циљни ЦПУ постављен на малу крајност"
+
+#: config/arm/arm.opt:103
+msgid "Generate call insns as indirect calls, if necessary"
+msgstr "Стварај ије позива као посредне позиве, ако је неопходно"
+
+#: config/arm/arm.opt:107
+msgid "Specify the register to be used for PIC addressing"
+msgstr "Наведите регистар који се користи за ПИЦ адресирање"
+
+#: config/arm/arm.opt:111
+msgid "Store function names in object code"
+msgstr "Складишти имена функција у објектном коду"
+
+#: config/arm/arm.opt:115
+msgid "Permit scheduling of a function's prologue sequence"
+msgstr "Дозволи распоређивање пролошког редоследа функције"
+
+#: config/arm/arm.opt:119
+msgid "Do not load the PIC register in function prologues"
+msgstr "Не учитавај ПИЦ регистре у пролозима функција"
+
+#: config/arm/arm.opt:123
+msgid "Alias for -mfloat-abi=soft"
+msgstr "Други назив за -mfloat-abi=soft"
+
+#: config/arm/arm.opt:127
+msgid "Specify the minimum bit alignment of structures"
+msgstr "Наведите најмање битско равнање структура"
+
+#: config/arm/arm.opt:131
+msgid "Compile for the Thumb not the ARM"
+msgstr "Компилуј за Тамб, не за АРМ"
+
+#: config/arm/arm.opt:135
+msgid "Support calls between Thumb and ARM instruction sets"
+msgstr "Подржи позиве између Тамба и скупа инструкција АРМа"
+
+#: config/arm/arm.opt:139
+msgid "Specify how to access the thread pointer"
+msgstr "Наведите како приступати показивачу нити"
+
+#: config/arm/arm.opt:143
+msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
+msgstr "Тамб: Стварај (нелиснате) оквире стека чак и ако није потребно"
+
+#: config/arm/arm.opt:147
+msgid "Thumb: Generate (leaf) stack frames even if not needed"
+msgstr "Тамб: Стварај (лиснате) оквире стека чак и ако није потребно"
+
+#: config/arm/arm.opt:151
+msgid "Tune code for the given processor"
+msgstr "Наштелуј кôд за дати процесор"
+
+#: config/arm/arm.opt:155
+msgid "Assume big endian bytes, little endian words"
+msgstr "Претпостави бајтове велике крајности, речи мале"
+
+#: config/arm/pe.opt:24
+msgid "Ignore dllimport attribute for functions"
+msgstr "Игнориши атрибут dllimport за функције"
+
+#: config/pdp11/pdp11.opt:24
+msgid "Generate code for an 11/10"
+msgstr "Створи кôд за 11/10"
+
+#: config/pdp11/pdp11.opt:28
+msgid "Generate code for an 11/40"
+msgstr "Створи кôд за 11/40"
+
+#: config/pdp11/pdp11.opt:32
+msgid "Generate code for an 11/45"
+msgstr "Створи кôд за 11/45"
+
+#: config/pdp11/pdp11.opt:36
+msgid "Use 16-bit abs patterns"
+msgstr "Користи 16-битне abs шеме"
+
+#: config/pdp11/pdp11.opt:40
+msgid "Return floating-point results in ac0 (fr0 in Unix assembler syntax)"
+msgstr "Враћај резултат покретног зареза у ac0 (fr0 у Униксовој синтакси асемблера)"
+
+#: config/pdp11/pdp11.opt:44
+msgid "Do not use inline patterns for copying memory"
+msgstr "Не користи уткане шеме за копирање меморије"
+
+#: config/pdp11/pdp11.opt:48
+msgid "Use inline patterns for copying memory"
+msgstr "Користи уткане шеме за копирање меморије"
+
+#: config/pdp11/pdp11.opt:52
+msgid "Do not pretend that branches are expensive"
+msgstr "Не претварај се да су гранања скупа"
+
+#: config/pdp11/pdp11.opt:56
+msgid "Pretend that branches are expensive"
+msgstr "Претварај се да су гранања скупа"
+
+#: config/pdp11/pdp11.opt:60
+msgid "Use the DEC assembler syntax"
+msgstr "Користи синтаксу ДЕЦовог асемблера"
+
+#: config/pdp11/pdp11.opt:64
+msgid "Use 32 bit float"
+msgstr "Користи 32-битни једноструки"
+
+#: config/pdp11/pdp11.opt:68
+msgid "Use 64 bit float"
+msgstr "Користи 64-битни једноструки"
+
+#: config/pdp11/pdp11.opt:76
+msgid "Use 16 bit int"
+msgstr "Користи 16-битни целобројни"
+
+#: config/pdp11/pdp11.opt:80
+msgid "Use 32 bit int"
+msgstr "Користи 32-битни целобројни"
+
+#: config/pdp11/pdp11.opt:88
+msgid "Target has split I&D"
+msgstr "Циљ има подељен I&D"
+
+#: config/pdp11/pdp11.opt:92
+msgid "Use UNIX assembler syntax"
+msgstr "Користи Униксову синтаксу асемблера"
+
+#: config/avr/avr.opt:24
+msgid "Use subroutines for function prologues and epilogues"
+msgstr "Користи потпрограме за прологе и епилоге функција"
+
+#: config/avr/avr.opt:28
+msgid "Select the target MCU"
+msgstr "Изаберите циљни МЦУ"
+
+#: config/avr/avr.opt:35
+msgid "Use STACK as the initial value of the stack pointer"
+msgstr "Користи STACK као почетну вредност за показивач стека"
+
+#: config/avr/avr.opt:39
+msgid "Use an 8-bit 'int' type"
+msgstr "Користи 8-битни тип ‘int’"
+
+#: config/avr/avr.opt:43
+msgid "Change the stack pointer without disabling interrupts"
+msgstr "Мењај показивач стека без искључивања прекида"
+
+#: config/avr/avr.opt:47
+msgid "Do not generate tablejump insns"
+msgstr "Не стварај ије tablejump"
+
+#: config/avr/avr.opt:57
+msgid "Use rjmp/rcall (limited range) on >8K devices"
+msgstr "Користи rjmp/rcall (ограничен опсег) на >8k уређајима"
+
+#: config/avr/avr.opt:61
+msgid "Output instruction sizes to the asm file"
+msgstr "Испиши величине инструкција у асм датотеку"
+
+#: config/avr/avr.opt:65
+msgid "Change only the low 8 bits of the stack pointer"
+msgstr "Мењај само доњих 8 битова показивача стека"
+
+#: config/crx/crx.opt:24
+msgid "Support multiply accumulate instructions"
+msgstr "Подржи инструкције вишеструке акумулације"
+
+#: config/crx/crx.opt:28
+msgid "Do not use push to store function arguments"
+msgstr "Не користи push за складиштење аргумената функције"
+
+#: config/crx/crx.opt:32
+msgid "Restrict doloop to the given nesting level"
+msgstr "Ограничи doloop на дати ниво угњеждења"
+
+#: config/c4x/c4x.opt:24
+msgid "Generate code for C30 CPU"
+msgstr "Створи кôд за ЦПУ Ц30"
+
+#: config/c4x/c4x.opt:28
+msgid "Generate code for C31 CPU"
+msgstr "Створи кôд за Ц31"
+
+#: config/c4x/c4x.opt:32
+msgid "Generate code for C32 CPU"
+msgstr "Створи кôд за Ц32"
+
+#: config/c4x/c4x.opt:36
+msgid "Generate code for C33 CPU"
+msgstr "Створи кôд за Ц33"
+
+#: config/c4x/c4x.opt:40
+msgid "Generate code for C40 CPU"
+msgstr "Створи кôд за Ц40"
+
+#: config/c4x/c4x.opt:44
+msgid "Generate code for C44 CPU"
+msgstr "Створи кôд за Ц44"
+
+#: config/c4x/c4x.opt:48
+msgid "Assume that pointers may be aliased"
+msgstr "Претпостави да показивачи могу бити дволични"
+
+#: config/c4x/c4x.opt:52
+msgid "Big memory model"
+msgstr "Велики модел меморије"
+
+#: config/c4x/c4x.opt:56
+msgid "Use the BK register as a general purpose register"
+msgstr "Користи регистар BK као регистар опште намене"
+
+#: config/c4x/c4x.opt:60
+msgid "Generate code for CPU"
+msgstr "Створи кôд за ЦПУ"
+
+#: config/c4x/c4x.opt:64
+msgid "Enable use of DB instruction"
+msgstr "Укључи употребу ДБ инструкција"
+
+#: config/c4x/c4x.opt:68
+msgid "Enable debugging"
+msgstr "Укључи исправљање"
+
+#: config/c4x/c4x.opt:72
+msgid "Enable new features under development"
+msgstr "Укључи нове могућности у развоју"
+
+#: config/c4x/c4x.opt:76
+msgid "Use fast but approximate float to integer conversion"
+msgstr "Користи брзо али приближно претварање реалног у целобројно"
+
+#: config/c4x/c4x.opt:80
+msgid "Force RTL generation to emit valid 3 operand insns"
+msgstr "Спроведи стварање РТЛа да емитује важеће трооперандске ије"
+
+#: config/c4x/c4x.opt:84
+msgid "Force constants into registers to improve hoisting"
+msgstr "Спроведи константе у регистре ради побољшања подизања"
+
+#: config/c4x/c4x.opt:88 config/c4x/c4x.opt:112
+msgid "Save DP across ISR in small memory model"
+msgstr "Снимај DP преко ИСРа у малом меморијском моделу"
+
+#: config/c4x/c4x.opt:92
+msgid "Allow unsigned iteration counts for RPTB/DB"
+msgstr "Дозволи неозначене бројаче итерација за RPTB/DB"
+
+#: config/c4x/c4x.opt:96
+msgid "Pass arguments on the stack"
+msgstr "Прослеђуј аргументе на стеку"
+
+#: config/c4x/c4x.opt:100
+msgid "Use MPYI instruction for C3x"
+msgstr "Користи инструкцију MPYI за Ц3н"
+
+#: config/c4x/c4x.opt:104
+msgid "Enable parallel instructions"
+msgstr "Укључи паралелне инструкције"
+
+#: config/c4x/c4x.opt:108
+msgid "Enable MPY||ADD and MPY||SUB instructions"
+msgstr "Укључи инструкције MPY||ADD и MPY||SUB"
+
+#: config/c4x/c4x.opt:116
+msgid "Preserve all 40 bits of FP reg across call"
+msgstr "Сачувај свих 40 битова ФП регистра преко позива"
+
+#: config/c4x/c4x.opt:120
+msgid "Pass arguments in registers"
+msgstr "Прослеђуј све аргументе у регистрима"
+
+#: config/c4x/c4x.opt:124
+msgid "Enable use of RTPB instruction"
+msgstr "Укључи употребу инструкције RPTB"
+
+#: config/c4x/c4x.opt:128
+msgid "Enable use of RTPS instruction"
+msgstr "Укључи употребу инструкције RPTS"
+
+#: config/c4x/c4x.opt:132
+msgid "Set the maximum number of iterations for RPTS to N"
+msgstr "Постави највећи број итерација за RPTS на N"
+
+#: config/c4x/c4x.opt:136
+msgid "Small memory model"
+msgstr "Мали модел меморије"
+
+#: config/c4x/c4x.opt:140
+msgid "Emit code compatible with TI tools"
+msgstr "Емитуј кôд сагласан са ТИјевим алатима"
+
+#: config/pa/pa-hpux.opt:24
+msgid "Generate cpp defines for server IO"
+msgstr "Стварај Ц++ дефиниције за У/И сервера"
+
+#: config/pa/pa-hpux.opt:28 config/pa/pa-hpux1010.opt:24
+#: config/pa/pa-hpux1111.opt:24
+msgid "Specify UNIX standard for predefines and linking"
+msgstr "Одредите стандард Уникса за предефиниције и повезивање"
+
+#: config/pa/pa-hpux.opt:32
+msgid "Generate cpp defines for workstation IO"
+msgstr "Стварај Ц++ дефиниције за У/И радне станице"
+
+#: config/pa/pa.opt:24 config/pa/pa.opt:77 config/pa/pa.opt:85
+msgid "Generate PA1.0 code"
+msgstr "Створи ПА1.0 кôд"
+
+#: config/pa/pa.opt:28 config/pa/pa.opt:89 config/pa/pa.opt:109
+msgid "Generate PA1.1 code"
+msgstr "Створи ПА1.1 кôд"
+
+#: config/pa/pa.opt:32 config/pa/pa.opt:93
+msgid "Generate PA2.0 code (requires binutils 2.10 or later)"
+msgstr "Створи ПА2.0 кôд (захтева binutils 2.10 или новији)"
+
+#: config/pa/pa.opt:36
+msgid "Generate code for huge switch statements"
+msgstr "Створи кôд за огромне наредбе прекидача"
+
+#: config/pa/pa.opt:40
+msgid "Disable FP regs"
+msgstr "Искључи ФП регистре"
+
+#: config/pa/pa.opt:44
+msgid "Disable indexed addressing"
+msgstr "Искључи индексно адресирање"
+
+#: config/pa/pa.opt:48
+msgid "Generate fast indirect calls"
+msgstr "Стварај брзе посредне позиве"
+
+#: config/pa/pa.opt:56
+msgid "Assume code will be assembled by GAS"
+msgstr "Претпостави да ће кôд саставити ГАС"
+
+#: config/pa/pa.opt:60
+msgid "Put jumps in call delay slots"
+msgstr "Стављај скокове у жлебове застоја позива"
+
+#: config/pa/pa.opt:65
+msgid "Enable linker optimizations"
+msgstr "Укључи оптимизације повезивача"
+
+#: config/pa/pa.opt:69
+msgid "Always generate long calls"
+msgstr "Увек стварај дуге позиве"
+
+#: config/pa/pa.opt:73
+msgid "Emit long load/store sequences"
+msgstr "Емитуј дуге низове учитавања/уписивања"
+
+#: config/pa/pa.opt:81
+msgid "Disable space regs"
+msgstr "Искључи регистре размака"
+
+#: config/pa/pa.opt:97
+msgid "Use portable calling conventions"
+msgstr "Користи преносиве конвенције позивања"
+
+#: config/pa/pa.opt:101
+msgid "Specify CPU for scheduling purposes. Valid arguments are 700, 7100, 7100LC, 7200, 7300, and 8000"
+msgstr "Одредите ЦПУ ради распоређивања. Могући аргументи су 700, 7100, 7100LC, 7200, 7300, и 8000"
+
+#: config/pa/pa.opt:113
+msgid "Do not disable space regs"
+msgstr "Не искључуј регистре размака"
+
+#: config/pa/pa64-hpux.opt:24
+msgid "Assume code will be linked by GNU ld"
+msgstr "Претпостави да ће кôд повезивати Гнуов ld"
+
+#: config/pa/pa64-hpux.opt:28
+msgid "Assume code will be linked by HP ld"
+msgstr "Претпостави да ће кôд повезивати ХПов ld"
+
+#: config/xtensa/xtensa.opt:24
+msgid "Use CONST16 instruction to load constants"
+msgstr "Користи КОНСТ16 инструкцију за учитавање константи"
+
+#: config/xtensa/xtensa.opt:28
+msgid "Enable fused multiply/add and multiply/subtract FP instructions"
+msgstr "Укључи ФП инструкције стопљеног множења-додавања и множења-одузимања"
+
+#: config/xtensa/xtensa.opt:32
+msgid "Use indirect CALLXn instructions for large programs"
+msgstr "Користи посредне инструкције CALLXn за велике програме"
+
+#: config/xtensa/xtensa.opt:36
+msgid "Automatically align branch targets to reduce branch penalties"
+msgstr "Аутоматски равнај циљеве гранања ради смањења губитака при грањању"
+
+#: config/xtensa/xtensa.opt:40
+msgid "Intersperse literal pools with code in the text section"
+msgstr "Умешај депое дословних ниски са кôдом у текстуалном одељку"
+
+#: config/stormy16/stormy16.opt:25
+msgid "Provide libraries for the simulator"
+msgstr "Пружи библиотеке за симулатор"
+
+#: config/mips/mips.opt:24
+msgid "Generate code that conforms to the given ABI"
+msgstr "Створи кôд који поштује дати АБИ"
+
+#: config/mips/mips.opt:28
+msgid "Use SVR4-style PIC"
+msgstr "Користи ПИЦ у стилу СВР4"
+
+#: config/mips/mips.opt:32
+msgid "Use PMC-style 'mad' instructions"
+msgstr "Користи инструкције mad у стилу ПМЦа"
+
+#: config/mips/mips.opt:36
+msgid "Generate code for the given ISA"
+msgstr "Створи кôд за дату ИСУ"
+
+#: config/mips/mips.opt:40
+msgid "Use Branch Likely instructions, overriding the architecture default"
+msgstr "Користи инструкције извесног гранања, потискујући подразумевано за архитектуру"
+
+#: config/mips/mips.opt:44
+msgid "Trap on integer divide by zero"
+msgstr "Хватај целобројно дељење нулом"
+
+#: config/mips/mips.opt:48
+msgid "Use branch-and-break sequences to check for integer divide by zero"
+msgstr "Користи низове гранања-и-прекида ради провере целобројног дељења нулом"
+
+#: config/mips/mips.opt:52
+msgid "Use trap instructions to check for integer divide by zero"
+msgstr "Користи инструкције клопки ради провере целобројног дељења нулом"
+
+#: config/mips/mips.opt:56
+msgid "Allow hardware floating-point instructions to cover both 32-bit and 64-bit operations"
+msgstr "Дозволи хардверским ФП инструкцијама да покрију и 32-битне и 64-битне операције"
+
+#: config/mips/mips.opt:60
+msgid "Use MIPS-DSP instructions"
+msgstr "Користи инструкције МИПСа-ДСП"
+
+#: config/mips/mips.opt:70
+msgid "Use big-endian byte order"
+msgstr "Користи редослед бајтова велике крајности"
+
+#: config/mips/mips.opt:74
+msgid "Use little-endian byte order"
+msgstr "Користи редослед бајтова мале крајности"
+
+#: config/mips/mips.opt:78 config/iq2000/iq2000.opt:32
+msgid "Use ROM instead of RAM"
+msgstr "Користи РОМ уместо РАМа"
+
+#: config/mips/mips.opt:82
+msgid "Use NewABI-style %reloc() assembly operators"
+msgstr "Користи асемблерске операторе %reloc() у стилу ЊуАБИја"
+
+#: config/mips/mips.opt:86
+msgid "Work around certain R4000 errata"
+msgstr "Заобиђи извесне грешке у Р4000у"
+
+#: config/mips/mips.opt:90
+msgid "Work around certain R4400 errata"
+msgstr "Заобиђи извесне грешке у Р4400у"
+
+#: config/mips/mips.opt:94
+msgid "Work around errata for early SB-1 revision 2 cores"
+msgstr "Заобиђи грешке у раним језгрима СБ-1 ревизије 2"
+
+#: config/mips/mips.opt:98
+msgid "Work around certain VR4120 errata"
+msgstr "Заобиђи извесне грешке у ВР4120"
+
+#: config/mips/mips.opt:102
+msgid "Work around VR4130 mflo/mfhi errata"
+msgstr "Зобиђи грешке код mflo/mfhi у ВР4130"
+
+#: config/mips/mips.opt:106
+msgid "Work around an early 4300 hardware bug"
+msgstr "Забиђи хардверску грешку у раним 4300"
+
+#: config/mips/mips.opt:110
+msgid "FP exceptions are enabled"
+msgstr "ФП изузеци су укључени"
+
+#: config/mips/mips.opt:114
+msgid "Use 32-bit floating-point registers"
+msgstr "Користи 32-битне регистре покретног зареза"
+
+#: config/mips/mips.opt:118
+msgid "Use 64-bit floating-point registers"
+msgstr "Користи 64-битне регистре покретног зареза"
+
+#: config/mips/mips.opt:122
+msgid "Use FUNC to flush the cache before calling stack trampolines"
+msgstr "Користи FUNC за спирање оставе пре звања трамполина са стека"
+
+#: config/mips/mips.opt:126
+msgid "Generate floating-point multiply-add instructions"
+msgstr "Стварај инструкције множење-додавање у покретном зарезу"
+
+#: config/mips/mips.opt:130
+msgid "Use 32-bit general registers"
+msgstr "Користи 32-битне опште регистре"
+
+#: config/mips/mips.opt:134
+msgid "Use 64-bit general registers"
+msgstr "Користи 64-битне опште регистре"
+
+#: config/mips/mips.opt:138
+msgid "Allow the use of hardware floating-point instructions"
+msgstr "Дозволи употребу хардверских инструкција покретног зареза"
+
+#: config/mips/mips.opt:142
+msgid "Generate code for ISA level N"
+msgstr "Створи кôд за ИСУ нивоа N"
+
+#: config/mips/mips.opt:146
+msgid "Generate mips16 code"
+msgstr "Створи кôд за мипс16"
+
+#: config/mips/mips.opt:150
+msgid "Use MIPS-3D instructions"
+msgstr "Користи МИПС-3Д инструкције"
+
+#: config/mips/mips.opt:154
+msgid "Use indirect calls"
+msgstr "Користи посредне позиве"
+
+#: config/mips/mips.opt:158
+msgid "Use a 32-bit long type"
+msgstr "Користи 32-битан тип long"
+
+#: config/mips/mips.opt:162
+msgid "Use a 64-bit long type"
+msgstr "Користи 64-битан тип long"
+
+#: config/mips/mips.opt:166
+msgid "Don't optimize block moves"
+msgstr "Не оптимизуј блоковска померања"
+
+#: config/mips/mips.opt:170
+msgid "Use the mips-tfile postpass"
+msgstr "Користи постпролаз mips-tfile"
+
+#: config/mips/mips.opt:174
+msgid "Do not use a cache-flushing function before calling stack trampolines"
+msgstr "Не користи функцију за спирање оставе пре звања трамполина са стека"
+
+#: config/mips/mips.opt:178
+msgid "Generate normal-mode code"
+msgstr "Стварај кôд нормалног режима"
+
+#: config/mips/mips.opt:182
+msgid "Do not use MIPS-3D instructions"
+msgstr "Не користи МИПС-3Д инструкције"
+
+#: config/mips/mips.opt:186
+msgid "Use paired-single floating-point instructions"
+msgstr "Користи упарене једноструке инструкције покретног зареза"
+
+#: config/mips/mips.opt:190
+msgid "Restrict the use of hardware floating-point instructions to 32-bit operations"
+msgstr "Ограничи употребу хардверских инструкција покретног зареза на 32-битне операције"
+
+#: config/mips/mips.opt:194
+msgid "Prevent the use of all hardware floating-point instructions"
+msgstr "Спречи употребу свих хардверских инструкција покретног зареза"
+
+#: config/mips/mips.opt:198
+msgid "Optimize lui/addiu address loads"
+msgstr "Оптимизуј учитавања адреса код lui/addiu"
+
+#: config/mips/mips.opt:202
+msgid "Assume all symbols have 32-bit values"
+msgstr "Претпостави да сви симболи имају 32-битне вредности"
+
+#: config/mips/mips.opt:206
+msgid "Optimize the output for PROCESSOR"
+msgstr "Оптимизуј излаз за дати процесор"
+
+#: config/mips/mips.opt:210 config/iq2000/iq2000.opt:45
+msgid "Put uninitialized constants in ROM (needs -membedded-data)"
+msgstr "Стави неуспостављене константе у РОМу (захтева -membedded-data)"
+
+#: config/mips/mips.opt:214
+msgid "Perform VR4130-specific alignment optimizations"
+msgstr "Оптимизуј равнање посебно за ВР4130"
+
+#: config/mips/mips.opt:218
+msgid "Lift restrictions on GOT size"
+msgstr "Отпусти ограничења на величину GOT"
+
+#: config/fr30/fr30.opt:24
+msgid "Assume small address space"
+msgstr "Претпостави мали адресни простор"
+
+#: config/m68hc11/m68hc11.opt:24 config/m68hc11/m68hc11.opt:32
+msgid "Compile for a 68HC11"
+msgstr "Компилуј за 68ХЦ11"
+
+#: config/m68hc11/m68hc11.opt:28 config/m68hc11/m68hc11.opt:36
+msgid "Compile for a 68HC12"
+msgstr "Компилуј за 68ХЦ12"
+
+#: config/m68hc11/m68hc11.opt:42 config/m68hc11/m68hc11.opt:46
+msgid "Compile for a 68HCS12"
+msgstr "Компилуј за 68ХЦС12"
+
+#: config/m68hc11/m68hc11.opt:50
+msgid "Auto pre/post decrement increment allowed"
+msgstr "Аутоматско пред/пост увећање/умањење дозвољено"
+
+#: config/m68hc11/m68hc11.opt:54
+msgid "Min/max instructions allowed"
+msgstr "Инструкције min/max дозвољене"
+
+#: config/m68hc11/m68hc11.opt:58
+msgid "Use call and rtc for function calls and returns"
+msgstr "Користи call и rtc за позиве и повратке из функција"
+
+#: config/m68hc11/m68hc11.opt:62
+msgid "Auto pre/post decrement increment not allowed"
+msgstr "Аутоматско пред/пост увећање/умањење није дозвољено"
+
+#: config/m68hc11/m68hc11.opt:66
+msgid "Use jsr and rts for function calls and returns"
+msgstr "Користи jsr и rts за позиве и повратке из функција"
+
+#: config/m68hc11/m68hc11.opt:70
+msgid "Min/max instructions not allowed"
+msgstr "Инструкције min/max нису дозвољене"
+
+#: config/m68hc11/m68hc11.opt:74
+msgid "Use direct addressing mode for soft registers"
+msgstr "Користи режим непосредног адресирања за меке регистре"
+
+#: config/m68hc11/m68hc11.opt:78
+msgid "Compile with 32-bit integer mode"
+msgstr "Компилуј са 32-битним целобројним режимом"
+
+#: config/m68hc11/m68hc11.opt:83
+msgid "Specify the register allocation order"
+msgstr "Одредите редослед резервисања регистара"
+
+#: config/m68hc11/m68hc11.opt:87
+msgid "Do not use direct addressing mode for soft registers"
+msgstr "Не користи режим непосредног адресирања за меке регистре"
+
+#: config/m68hc11/m68hc11.opt:91
+msgid "Compile with 16-bit integer mode"
+msgstr "Компилуј са 16-битним целобројним режимом"
+
+#: config/m68hc11/m68hc11.opt:95
+msgid "Indicate the number of soft registers available"
+msgstr "Наведите број доступних меких регистара"
+
+#: config/vax/vax.opt:24 config/vax/vax.opt:28
+msgid "Target DFLOAT double precision code"
+msgstr "Циљ је кôд двоструке тачности DFLOAT"
+
+#: config/vax/vax.opt:32 config/vax/vax.opt:36
+msgid "Generate GFLOAT double precision code"
+msgstr "Створи кôд двоструке тачности GFLOAT"
+
+#: config/vax/vax.opt:40
+msgid "Generate code for GNU assembler (gas)"
+msgstr "Створи кôд за Гнуов асемблер (gas)"
+
+#: config/vax/vax.opt:44
+msgid "Generate code for UNIX assembler"
+msgstr "Створи кôд за Униксов асемблер"
+
+#: config/vax/vax.opt:48
+msgid "Use VAXC structure conventions"
+msgstr "Користи конвенције VAXC за структуре"
+
+#: config/cris/linux.opt:28
+msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
+msgstr "Заједно са -fpic и -fPIC, не користи упућивања GOTPLT"
+
+#: config/cris/cris.opt:46
+msgid "Work around bug in multiplication instruction"
+msgstr "Заобиђи грешку у инструкцији множења"
+
+#: config/cris/cris.opt:52
+msgid "Compile for ETRAX 4 (CRIS v3)"
+msgstr "Компилуј за Етракс 4 (КРИС в3)"
+
+#: config/cris/cris.opt:57
+msgid "Compile for ETRAX 100 (CRIS v8)"
+msgstr "Компилуј за Етракс 100 (КРИС в8)"
+
+#: config/cris/cris.opt:65
+msgid "Emit verbose debug information in assembly code"
+msgstr "Емитуј опширне исправљачке информације у асемблерском кôду"
+
+#: config/cris/cris.opt:72
+msgid "Do not use condition codes from normal instructions"
+msgstr "Не користи условне кôдове из нормалних инструкција"
+
+#: config/cris/cris.opt:81
+msgid "Do not emit addressing modes with side-effect assignment"
+msgstr "Не емитуј адресне режиме уз доделу са споредним ефектима"
+
+#: config/cris/cris.opt:90
+msgid "Do not tune stack alignment"
+msgstr "Не подешавај равнање стека"
+
+#: config/cris/cris.opt:99
+msgid "Do not tune writable data alignment"
+msgstr "Не подешавај равнање уписивих података"
+
+#: config/cris/cris.opt:108
+msgid "Do not tune code and read-only data alignment"
+msgstr "Не подешавај равнање података кôда и оних само-за-читање"
+
+#: config/cris/cris.opt:117
+msgid "Align code and data to 32 bits"
+msgstr "Равнај кôд и податке на 32 бита"
+
+#: config/cris/cris.opt:134
+msgid "Don't align items in code or data"
+msgstr "Не равнај ставке у кôду и подацима"
+
+#: config/cris/cris.opt:143
+msgid "Do not emit function prologue or epilogue"
+msgstr "Не емитуј пролог и епилог функција"
+
+#: config/cris/cris.opt:150
+msgid "Use the most feature-enabling options allowed by other options"
+msgstr "Користи опцију која пружа највише могућности дозвољених другим опцијама"
+
+#: config/cris/cris.opt:159
+msgid "Override -mbest-lib-options"
+msgstr "Потисни -mbest-lib-options"
+
+#: config/cris/cris.opt:166
+msgid "Generate code for the specified chip or CPU version"
+msgstr "Створи кôд за наведени чип или верзију ЦПУа"
+
+#: config/cris/cris.opt:170
+msgid "Tune alignment for the specified chip or CPU version"
+msgstr "Подеси равнање за наведени чип или верзију ЦПУа"
+
+#: config/cris/cris.opt:174
+msgid "Warn when a stackframe is larger than the specified size"
+msgstr "Упозори када је оквир стека већи од одређене величине"
+
+#: config/cris/aout.opt:28
+msgid "Compile for the MMU-less Etrax 100-based elinux system"
+msgstr "Компилуј за систем Елинукс на основу Етракса 100 без ММУа"
+
+#: config/cris/aout.opt:34
+msgid "For elinux, request a specified stack-size for this program"
+msgstr "За Елинукс, захтевај одређену величину стека у овом програму"
+
+#: config/h8300/h8300.opt:24
+msgid "Generate H8S code"
+msgstr "Створи кôд за Х8С"
+
+#: config/h8300/h8300.opt:28
+msgid "Generate H8SX code"
+msgstr "Створи кôд за Х8СИкс"
+
+#: config/h8300/h8300.opt:32
+msgid "Generate H8S/2600 code"
+msgstr "Створи кôд за Х8С/2600"
+
+#: config/h8300/h8300.opt:36
+msgid "Make integers 32 bits wide"
+msgstr "Нека целобројни тип буде 32-битни"
+
+#: config/h8300/h8300.opt:43
+msgid "Use registers for argument passing"
+msgstr "Користи регистре за прослеђивање аргумената"
+
+#: config/h8300/h8300.opt:47
+msgid "Consider access to byte sized memory slow"
+msgstr "Сматрај спорим приступ меморији бајтне величине"
+
+#: config/h8300/h8300.opt:51
+msgid "Enable linker relaxing"
+msgstr "Укључи опуштање при повезивању"
+
+#: config/h8300/h8300.opt:55
+msgid "Generate H8/300H code"
+msgstr "Створи кôд за Х8/300Х"
+
+#: config/h8300/h8300.opt:59
+msgid "Enable the normal mode"
+msgstr "Укључи нормалан режим"
+
+#: config/h8300/h8300.opt:63
+msgid "Use H8/300 alignment rules"
+msgstr "Користи правила равнања за Х8/300"
+
+#: config/v850/v850.opt:24
+msgid "Use registers r2 and r5"
+msgstr "Користи регистре r2 и r5"
+
+#: config/v850/v850.opt:28
+msgid "Use 4 byte entries in switch tables"
+msgstr "Користи 4-бајтне уносе у табелама пребацивања"
+
+#: config/v850/v850.opt:32
+msgid "Enable backend debugging"
+msgstr "Укључи исправљање зачеља"
+
+#: config/v850/v850.opt:36
+msgid "Do not use the callt instruction"
+msgstr "Не користи инструкцију callt"
+
+#: config/v850/v850.opt:40
+msgid "Reuse r30 on a per function basis"
+msgstr "Поново користи r30 од функције до функције"
+
+#: config/v850/v850.opt:44
+msgid "Support Green Hills ABI"
+msgstr "Подржи АБИ Грин Хилс"
+
+#: config/v850/v850.opt:48
+msgid "Prohibit PC relative function calls"
+msgstr "Забрани позиве функција у односу на ПЦ"
+
+#: config/v850/v850.opt:52
+msgid "Use stubs for function prologues"
+msgstr "Користи клице за прологе функција"
+
+#: config/v850/v850.opt:56
+msgid "Set the max size of data eligible for the SDA area"
+msgstr "Највећа величина података подесних за област СДА"
+
+#: config/v850/v850.opt:60
+msgid "Enable the use of the short load instructions"
+msgstr "Укључи употребу инструкције кратког учитавања"
+
+#: config/v850/v850.opt:64
+msgid "Same as: -mep -mprolog-function"
+msgstr "Исто као: -mep -mprolog-function"
+
+#: config/v850/v850.opt:68
+msgid "Set the max size of data eligible for the TDA area"
+msgstr "Највећа величина података подесних за област ТДА"
+
+#: config/v850/v850.opt:72
+msgid "Enforce strict alignment"
+msgstr "Спроведи строго равнање"
+
+#: config/v850/v850.opt:79
+msgid "Compile for the v850 processor"
+msgstr "Компилуј за процесор в850"
+
+#: config/v850/v850.opt:83
+msgid "Compile for the v850e processor"
+msgstr "Компилуј за процесор в850е"
+
+#: config/v850/v850.opt:87
+msgid "Compile for the v850e1 processor"
+msgstr "Компилуј за процесор в850е1"
+
+#: config/v850/v850.opt:91
+msgid "Set the max size of data eligible for the ZDA area"
+msgstr "Највећа величина података подесних за област ЗДА"
+
+#: config/mmix/mmix.opt:25
+msgid "For intrinsics library: pass all parameters in registers"
+msgstr "За библиотеку сопствених: прослеђуј све параметре у регистрима"
+
+#: config/mmix/mmix.opt:29
+msgid "Use register stack for parameters and return value"
+msgstr "Користи стек регистара за параметре и повратне вредности"
+
+#: config/mmix/mmix.opt:33
+msgid "Use call-clobbered registers for parameters and return value"
+msgstr "Користи позивом продрмане регистре за параметре и повратне вредности"
+
+#: config/mmix/mmix.opt:38
+msgid "Use epsilon-respecting floating point compare instructions"
+msgstr "Користи поредбене инструкције у покретном зарезу које поштују епсилон"
+
+#: config/mmix/mmix.opt:42
+msgid "Use zero-extending memory loads, not sign-extending ones"
+msgstr "Користи меморијска учитавања која проширују нулом, а не знаком"
+
+#: config/mmix/mmix.opt:46
+msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)"
+msgstr "Стварај резултате дељења са остатком који има исти знак као делилац (а не дељеник)"
+
+#: config/mmix/mmix.opt:50
+msgid "Prepend global symbols with \":\" (for use with PREFIX)"
+msgstr "Додај „:“ на почетак глобалних симбола (за употребу са PREFIX)"
+
+#: config/mmix/mmix.opt:54
+msgid "Do not provide a default start-address 0x100 of the program"
+msgstr "Не пружај подразумевану почетну адресу програма 0x100"
+
+#: config/mmix/mmix.opt:58
+msgid "Link to emit program in ELF format (rather than mmo)"
+msgstr "Повезивање даје програм у формату ЕЛФ (пре него ммо)"
+
+#: config/mmix/mmix.opt:62
+msgid "Use P-mnemonics for branches statically predicted as taken"
+msgstr "Користи П-мнемонику за грањања за која је статички предвиђено да ће бити извршена"
+
+#: config/mmix/mmix.opt:66
+msgid "Don't use P-mnemonics for branches"
+msgstr "Не користи П-мнемонику за гранања"
+
+#: config/mmix/mmix.opt:80
+msgid "Use addresses that allocate global registers"
+msgstr "Користи адресе које резервишу глобалне регистре"
+
+#: config/mmix/mmix.opt:84
+msgid "Do not use addresses that allocate global registers"
+msgstr "Не користи адресе које резервишу глобалне регистре"
+
+#: config/mmix/mmix.opt:88
+msgid "Generate a single exit point for each function"
+msgstr "Створи јединствену излазну тачку за сваку функцију"
+
+#: config/mmix/mmix.opt:92
+msgid "Do not generate a single exit point for each function"
+msgstr "Не стварај јединствену излазну тачку за сваку функцију"
+
+#: config/mmix/mmix.opt:96
+msgid "Set start-address of the program"
+msgstr "Постави почетну адресу програма"
+
+#: config/mmix/mmix.opt:100
+msgid "Set start-address of data"
+msgstr "Постави почетну адресу података"
+
+#: config/iq2000/iq2000.opt:28
+msgid "Specify CPU for scheduling purposes"
+msgstr "Одредите ЦПУ ради распоређивања"
+
+#: config/iq2000/iq2000.opt:36
+msgid "Use GP relative sdata/sbss sections"
+msgstr "Користи одељке sdata/sbss релативне према GP"
+
+#: config/iq2000/iq2000.opt:41
+msgid "No default crt0.o"
+msgstr "Без подразумеване crt0.o"
+
+#: config/bfin/bfin.opt:24
+msgid "Omit frame pointer for leaf functions"
+msgstr "Изостави показивач оквира за функције-листове"
+
+#: config/bfin/bfin.opt:28
+msgid "Program is entirely located in low 64k of memory"
+msgstr "Програм се у потпуности смешта у доњих 64 kB меморије"
+
+#: config/bfin/bfin.opt:32
+msgid "Work around a hardware anomaly by adding a number of NOPs before a"
+msgstr "Заобиђи хардвеску неправилност додајући неколико НОП пре a"
+
+#: config/bfin/bfin.opt:37
+msgid "Avoid speculative loads to work around a hardware anomaly."
+msgstr "Избегавај спекулативна учитавања ради заобилажења хардверске неправилности."
+
+#: config/bfin/bfin.opt:41
+msgid "Enabled ID based shared library"
+msgstr "Укључи дељене библиотеке на основу ИДа"
+
+#: config/bfin/bfin.opt:49
+msgid "Avoid generating pc-relative calls; use indirection"
+msgstr "Избегавај стварање позива у односу на ПЦу; користи индирекцију"
+
+#: config/vxworks.opt:25
+msgid "Assume the VxWorks RTP environment"
+msgstr "Претпостави ВиксВорксово окружење РТП"
+
+#: config/vxworks.opt:32
+msgid "Assume the VxWorks vThreads environment"
+msgstr "Претпостави ВиксВорксово окружење вТредс"
+
+#: config/darwin.opt:24
+msgid "Generate code suitable for fast turn around debugging"
+msgstr "Створи кôд погодан за исправљање при брзим обртима"
+
+#: config/darwin.opt:28
+msgid "The earliest MacOS X version on which this program will run"
+msgstr "Најранија верзија МекОСа X на којој ће овај програм радити"
+
+#: config/darwin.opt:32
+msgid "Set sizeof(bool) to 1"
+msgstr "Постави sizeof(bool) на 1"
+
+#: config/lynx.opt:24
+msgid "Support legacy multi-threading"
+msgstr "Подржи застарелу вишенитност"
+
+#: config/lynx.opt:28
+msgid "Use shared libraries"
+msgstr "Користи дељене библиотеке"
+
+#: config/lynx.opt:32
+msgid "Support multi-threading"
+msgstr "Подржи вишенитност"
+
+#: c.opt:42
+msgid "Assert the <answer> to <question>. Putting '-' before <question> disables the <answer> to <question>"
+msgstr "Потврди да се <answer> и <question> поклапају. Стављањем ‘-’ испред <question> искључује се дати <answer> и <question>"
+
+#: c.opt:46
+msgid "Do not discard comments"
+msgstr "Не одбацуј коментаре"
+
+#: c.opt:50
+msgid "Do not discard comments in macro expansions"
+msgstr "Не одбацуј коментаре при ширењу макроа"
+
+#: c.opt:54
+msgid "Define a <macro> with <val> as its value. If just <macro> is given, <val> is taken to be 1"
+msgstr "Дефиниши <macro> чија је вредност <val>. Ако је дат само <macro>, за <val> се узима 1"
+
+#: c.opt:61
+msgid "Add <dir> to the end of the main framework include path"
+msgstr "Додај <dir> на крај главне путање укључивања радног оквира"
+
+#: c.opt:65
+msgid "Print the name of header files as they are used"
+msgstr "Исписуј имена заглавља које се користе"
+
+#: c.opt:69 c.opt:782
+msgid "Add <dir> to the end of the main include path"
+msgstr "Додај <dir> на крај главне путање укључивања"
+
+#: c.opt:73
+msgid "Generate make dependencies"
+msgstr "Створи зависности за справљач"
+
+#: c.opt:77
+msgid "Generate make dependencies and compile"
+msgstr "Створи зависности за справљач и компилуј"
+
+#: c.opt:81
+msgid "Write dependency output to the given file"
+msgstr "Испиши зависности у дату датотеку"
+
+#: c.opt:85
+msgid "Treat missing header files as generated files"
+msgstr "Сматрај недостајућа заглавља за изведене датотеке"
+
+#: c.opt:89
+msgid "Like -M but ignore system header files"
+msgstr "Као -M али игнориши системска заглавља"
+
+#: c.opt:93
+msgid "Like -MD but ignore system header files"
+msgstr "Као -MD али игнориши системска заглавља"
+
+#: c.opt:97
+msgid "Generate phony targets for all headers"
+msgstr "Створи лажне циљеве за сва заглавља"
+
+#: c.opt:101
+msgid "Add a MAKE-quoted target"
+msgstr "Додај циљ цитран за справљач"
+
+#: c.opt:105
+msgid "Add an unquoted target"
+msgstr "Додај нецитиран циљ"
+
+#: c.opt:109
+msgid "Do not generate #line directives"
+msgstr "Не стварај директиве #line"
+
+#: c.opt:113
+msgid "Undefine <macro>"
+msgstr "Оддефиниши <macro>"
+
+#: c.opt:117
+msgid "Warn about things that will change when compiling with an ABI-compliant compiler"
+msgstr "Упозори на ствари које ће се променити када се компилује компилатором који поштује АБИ"
+
+#: c.opt:121
+msgid "Enable most warning messages"
+msgstr "Укључи већину порука упозорења"
+
+#: c.opt:125
+msgid "Warn whenever an Objective-C assignment is being intercepted by the garbage collector"
+msgstr "Упозори кад год сакупљач смећа пресретне доделу у објективном Ц-у"
+
+#: c.opt:129
+msgid "Warn about casting functions to incompatible types"
+msgstr "Упозори на претапање функција у несагласне типове"
+
+#: c.opt:133
+msgid "Warn about C constructs that are not in the common subset of C and C++"
+msgstr "Упозори на Ц конструкције које нису у заједничком подскупу Ц-а и Ц++а"
+
+#: c.opt:138
+msgid "Warn about casts which discard qualifiers"
+msgstr "Упозори на претапања која одбацују одредбе"
+
+#: c.opt:142
+msgid "Warn about subscripts whose type is \"char\""
+msgstr "Упозори на индексе типа „char“"
+
+#: c.opt:146
+msgid "Warn about possibly nested block comments, and C++ comments spanning more than one physical line"
+msgstr "Упозори на могуће угњеждене блоковске коментаре, и Ц++ коментаре који премашују једну физичку линију"
+
+#: c.opt:150
+msgid "Synonym for -Wcomment"
+msgstr "Синоним за -Wcomment"
+
+#: c.opt:154
+msgid "Warn about possibly confusing type conversions"
+msgstr "Упозори на могуће збуњујујћа претварања типова"
+
+#: c.opt:158
+msgid "Warn when all constructors and destructors are private"
+msgstr "Упозори када су сви конструктори и деструктори приватни"
+
+#: c.opt:162
+msgid "Warn when a declaration is found after a statement"
+msgstr "Упозори када наиђе декларација после наредбе"
+
+#: c.opt:166
+msgid "Warn about deprecated compiler features"
+msgstr "Упозори на превазиђене могућности компилатора"
+
+#: c.opt:170
+msgid "Warn about compile-time integer division by zero"
+msgstr "Упозори на дељење нулом при компиловању"
+
+#: c.opt:174
+msgid "Warn about violations of Effective C++ style rules"
+msgstr "Упозори на кршења стилских правила датих у Делотворном Ц++у"
+
+#: c.opt:178
+msgid "Warn about stray tokens after #elif and #endif"
+msgstr "Упозори на залутале целине после #elif и #endif"
+
+#: c.opt:186
+msgid "Make implicit function declarations an error"
+msgstr "Нека имплицитна декларација функције буде грешка"
+
+#: c.opt:190
+msgid "Warn if testing floating point numbers for equality"
+msgstr "Упозори на проверу једнакости бројева у покретном зарезу"
+
+#: c.opt:194
+msgid "Warn about printf/scanf/strftime/strfmon format string anomalies"
+msgstr "Упозори на аномалије у формату за printf/scanf/strftime/strfmon"
+
+#: c.opt:198
+msgid "Warn if passing too many arguments to a function for its format string"
+msgstr "Упозори ако се функцији прослеђује превише аргумената за форматирајућу ниску"
+
+#: c.opt:202
+msgid "Warn about format strings that are not literals"
+msgstr "Упозори на форматирајуће ниске које нису дословне"
+
+#: c.opt:206
+msgid "Warn about possible security problems with format functions"
+msgstr "Упозори на могуће безбедносне проблеме са форматским функцијама"
+
+#: c.opt:210
+msgid "Warn about strftime formats yielding 2-digit years"
+msgstr "Упозори на формате за strftime који дају двоцифрене године"
+
+#: c.opt:214
+msgid "Warn about zero-length formats"
+msgstr "Упозори на формате нулте дужине"
+
+#: c.opt:221
+msgid "Warn about variables which are initialized to themselves"
+msgstr "Упозори на променљиве које се саме успостављају"
+
+#: c.opt:228
+msgid "Warn about implicit function declarations"
+msgstr "Упозори на имплицитне декларације функција"
+
+#: c.opt:232
+msgid "Warn when a declaration does not specify a type"
+msgstr "Упозори када декларација не наводи тип"
+
+#: c.opt:236
+msgid "Deprecated. This switch has no effect"
+msgstr "Непрепоручљиво. Овај прекидач нема ефекта"
+
+#: c.opt:240
+msgid "Warn when there is a cast to a pointer from an integer of a different size"
+msgstr "Упозори на претапање у показивач из целобројног различите величине"
+
+#: c.opt:244
+msgid "Warn about invalid uses of the \"offsetof\" macro"
+msgstr "Упозори на неисправне употребе макроа „offsetof“"
+
+#: c.opt:248
+msgid "Warn about PCH files that are found but not used"
+msgstr "Упозори на нађене ПЦХ датотеке које се не користе"
+
+#: c.opt:252
+msgid "Do not warn about using \"long long\" when -pedantic"
+msgstr "Не упозоравај на употребу „long long“ при -pedantic"
+
+#: c.opt:256
+msgid "Warn about suspicious declarations of \"main\""
+msgstr "Упозори на сумњиве декларације „main“"
+
+#: c.opt:260
+msgid "Warn about possibly missing braces around initializers"
+msgstr "Упозори на могуће недостајуће витичасте заграде око успостављачâ"
+
+#: c.opt:264
+msgid "Warn about global functions without previous declarations"
+msgstr "Упозори на глобалне функције без претходне декларације"
+
+#: c.opt:268
+msgid "Warn about missing fields in struct initializers"
+msgstr "Упозори на недостајућа поља у успостављачима структура"
+
+#: c.opt:272
+msgid "Warn about functions which might be candidates for format attributes"
+msgstr "Упозори на функције које могу бити кандидати за форматске атрибуте"
+
+#: c.opt:276
+msgid "Warn about user-specified include directories that do not exist"
+msgstr "Упозори на непостојеће директоријуме за укључивање које је корисник задао"
+
+#: c.opt:280
+msgid "Warn about global functions without prototypes"
+msgstr "Упозори на глобалне функције без прототипа"
+
+#: c.opt:284
+msgid "Warn about use of multi-character character constants"
+msgstr "Упозори на употребу вишезнаковних знаковних константи"
+
+#: c.opt:288
+msgid "Warn about \"extern\" declarations not at file scope"
+msgstr "Упозори на декларације „extern“ ван досега датотеке"
+
+#: c.opt:292
+msgid "Warn when non-templatized friend functions are declared within a template"
+msgstr "Упозори када се нешаблонске пријатељске функције декларишу унутар шаблона"
+
+#: c.opt:296
+msgid "Warn about non-virtual destructors"
+msgstr "Упозори на невиртуелне деструкторе"
+
+#: c.opt:300
+msgid "Warn about NULL being passed to argument slots marked as requiring non-NULL"
+msgstr "Упозори на прослеђивање NULL на позицији аргумента за који се захтева не-NULL"
+
+#: c.opt:304
+msgid "Warn about non-normalised Unicode strings"
+msgstr "Упозори на ненормализоване уникодске ниске"
+
+#: c.opt:308
+msgid "Warn if a C-style cast is used in a program"
+msgstr "Упозори на употребу претапања у стилу Ц-а"
+
+#: c.opt:312
+msgid "Warn if an old-style parameter definition is used"
+msgstr "Упозори на старовремску дефиницију параметара"
+
+#: c.opt:316
+msgid "Warn about overloaded virtual function names"
+msgstr "Упозори на препуњена имена виртуелних функција"
+
+#: c.opt:320
+msgid "Warn about possibly missing parentheses"
+msgstr "Упозори на могуће недостајуће заграде"
+
+#: c.opt:324
+msgid "Warn when converting the type of pointers to member functions"
+msgstr "Упозори када се претварају типови показивача на чланске функције"
+
+#: c.opt:328
+msgid "Warn about function pointer arithmetic"
+msgstr "Упозори на аритметику са функцијским показивачима"
+
+#: c.opt:332
+msgid "Warn when a pointer is cast to an integer of a different size"
+msgstr "Упозори када се показивач претапа у целобројни различите величине"
+
+#: c.opt:336
+msgid "Warn about misuses of pragmas"
+msgstr "Упозори на злоупотребе прагми"
+
+#: c.opt:340
+msgid "Warn if inherited methods are unimplemented"
+msgstr "Упозори када наслеђени методи нису имплементирани"
+
+#: c.opt:344
+msgid "Warn about multiple declarations of the same object"
+msgstr "Упозори на вишеструке декларације истог објекта"
+
+#: c.opt:348
+msgid "Warn when the compiler reorders code"
+msgstr "Упозори када компилатор преуреди кôд"
+
+#: c.opt:352
+msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)"
+msgstr "Упозори када повратни тип функције спадне на „int“ (Ц), или на неусаглашене повратне типове (Ц++)"
+
+#: c.opt:356
+msgid "Warn if a selector has multiple methods"
+msgstr "Упозори када селектор има вишеструке методе"
+
+#: c.opt:360
+msgid "Warn about possible violations of sequence point rules"
+msgstr "Упозори на могућа кршења правила секвенцијалних тачака"
+
+#: c.opt:364
+msgid "Warn about signed-unsigned comparisons"
+msgstr "Упозори на поређење означеног и неозначеног"
+
+#: c.opt:368
+msgid "Warn when overload promotes from unsigned to signed"
+msgstr "Упозори када препуњавање прелази из неозначеног у означено"
+
+#: c.opt:372
+msgid "Warn about uncasted NULL used as sentinel"
+msgstr "Упозори на непретопљено NULL у улози стражара"
+
+#: c.opt:376
+msgid "Warn about unprototyped function declarations"
+msgstr "Упозори на непрототипизиране декларације функција"
+
+#: c.opt:380
+msgid "Warn if type signatures of candidate methods do not match exactly"
+msgstr "Упозори аке се типски потписи кандидатских метода не поклапају тачно"
+
+#: c.opt:384
+msgid "Warn when synthesis behavior differs from Cfront"
+msgstr "Упозори када се понашање синтезе разликује од Цфронта"
+
+#: c.opt:388 common.opt:142
+msgid "Do not suppress warnings from system headers"
+msgstr "Не сузбијај упозорења из системских заглавља"
+
+#: c.opt:392
+msgid "Warn about features not present in traditional C"
+msgstr "Упозори на могућности које нису присутне у традиционалном Ц-у"
+
+#: c.opt:396
+msgid "Warn if trigraphs are encountered that might affect the meaning of the program"
+msgstr "Упозори када наиђу триграфи који могу утицати на значење програма"
+
+#: c.opt:400
+msgid "Warn about @selector()s without previously declared methods"
+msgstr "Упозори на селекторе без претходно декларисаних метода"
+
+#: c.opt:404
+msgid "Warn if an undefined macro is used in an #if directive"
+msgstr "Упозори ако се у директиви #if употреби недефинисани макро"
+
+#: c.opt:408
+msgid "Warn about unrecognized pragmas"
+msgstr "Упозори на непрепознате прагме"
+
+#: c.opt:412
+msgid "Warn about macros defined in the main file that are not used"
+msgstr "Упозори на макрое дефинисане у главној датотеци који нису употребљени"
+
+#: c.opt:416
+msgid "Do not warn about using variadic macros when -pedantic"
+msgstr "Не упозоравај на употребу варијадичких макроа при -pedantic"
+
+#: c.opt:420
+msgid "Give strings the type \"array of char\""
+msgstr "Нека ниске имају тип „array of char“"
+
+#: c.opt:424
+msgid "Warn when a pointer differs in signedness in an assignment"
+msgstr "Упозори када се показивач у додели разликује по означености"
+
+#: c.opt:428
+msgid "A synonym for -std=c89 (for C) or -std=c++98 (for C++)"
+msgstr "Синоним за -std=c89 (за Ц) или -std=c++98 (за Ц++)"
+
+#: c.opt:436
+msgid "Enforce class member access control semantics"
+msgstr "Спроведи семантику контроле приступа члановима класе"
+
+#: c.opt:443
+msgid "Change when template instances are emitted"
+msgstr "Промени када се емитују примерци шаблона"
+
+#: c.opt:447
+msgid "Recognize the \"asm\" keyword"
+msgstr "Препознај кључну реч „asm“"
+
+#: c.opt:451
+msgid "Recognize built-in functions"
+msgstr "Препознај уграђене функције"
+
+#: c.opt:458
+msgid "Check the return value of new"
+msgstr "Провери повратни тип за new"
+
+#: c.opt:462
+msgid "Allow the arguments of the '?' operator to have different types"
+msgstr "Дозволи да аргументи оператора ‘?’ имају различите типове"
+
+#: c.opt:466
+msgid "Reduce the size of object files"
+msgstr "Смањи величину објектних датотека"
+
+#: c.opt:470
+msgid "Make string literals \"const char[]\" not \"char[]\""
+msgstr "Нека дословне ниске буду „const char[]“ уместо „char[]“"
+
+#: c.opt:474
+msgid "Use class <name> for constant strings"
+msgstr "Користи класу <name> за константне ниске"
+
+#: c.opt:478
+msgid "Inline member functions by default"
+msgstr "Подразумевано уткивај чланске функције"
+
+#: c.opt:482
+msgid "Permit '$' as an identifier character"
+msgstr "Дозволи „$“ као знак у идентификатору"
+
+#: c.opt:489
+msgid "Generate code to check exception specifications"
+msgstr "Створи кôд за проверу одредница изузетака"
+
+#: c.opt:496
+msgid "Convert all strings and character constants to character set <cset>"
+msgstr "Претвори све ниске и знаковне константе у скуп знакова <cset>"
+
+#: c.opt:500
+msgid "Permit universal character names (\\u and \\U) in identifiers"
+msgstr "Дозволи универзална имена знакова (\\u и \\U) у идентификаторима"
+
+#: c.opt:504
+msgid "Specify the default character set for source files"
+msgstr "Наведи подразумевани скуп знакова за изворне датотеке"
+
+#: c.opt:521
+msgid "Scope of for-init-statement variables is local to the loop"
+msgstr "Досег променљивих у успостављачу петље је локалан за петљу"
+
+#: c.opt:525
+msgid "Do not assume that standard C libraries and \"main\" exist"
+msgstr "Не претпостављај да стандардне Ц библиотеке и „main“ постоје"
+
+#: c.opt:529
+msgid "Recognize GNU-defined keywords"
+msgstr "Препознаје кључне речи које дефинише Гну"
+
+#: c.opt:533
+msgid "Generate code for GNU runtime environment"
+msgstr "Створи кôд за Гнуово извршно окружење"
+
+#: c.opt:546
+msgid "Assume normal C execution environment"
+msgstr "Претпостави нормално извршно окружење Ц-а"
+
+#: c.opt:550
+msgid "Enable support for huge objects"
+msgstr "Укључи подршку за огромне објекте"
+
+#: c.opt:554
+msgid "Export functions even if they can be inlined"
+msgstr "Извези функције чак и ако се могу уткати"
+
+#: c.opt:558
+msgid "Emit implicit instantiations of inline templates"
+msgstr "Емитуј имплицитна извођења утканих шаблона"
+
+#: c.opt:562
+msgid "Emit implicit instantiations of templates"
+msgstr "Емитуј имплицитна извођења шаблона"
+
+#: c.opt:566
+msgid "Inject friend functions into enclosing namespace"
+msgstr "Убаци пријатељске функције у окружујући именски простор"
+
+#: c.opt:573
+msgid "Don't warn about uses of Microsoft extensions"
+msgstr "Не упозоравај на употребе Мајкрософтових проширења"
+
+#: c.opt:583
+msgid "Generate code for NeXT (Apple Mac OS X) runtime environment"
+msgstr "Створи кôд за извршно окружење НеКСТа (Еплов МекОС X)"
+
+#: c.opt:587
+msgid "Assume that receivers of Objective-C messages may be nil"
+msgstr "Претпостави да примаоци порука у објективном Ц-у могу бити нулти"
+
+#: c.opt:599
+msgid "Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed"
+msgstr "Стварај посебне методе у објективном Ц-у за успостављање/уништавање не-ПОД Ц++ и-променљивих, када је потребно"
+
+#: c.opt:603
+msgid "Allow fast jumps to the message dispatcher"
+msgstr "Дозволи брзе скокове до отправника порука"
+
+#: c.opt:609
+msgid "Enable Objective-C exception and synchronization syntax"
+msgstr "Укључи синтаксу објективног Ц-а за изузетке и синхронизацију"
+
+#: c.opt:613
+msgid "Enable garbage collection (GC) in Objective-C/Objective-C++ programs"
+msgstr "Укључи сакупљање смећа (ГЦ) у програмима у објективном Ц-у/објективном Ц++у"
+
+#: c.opt:618
+msgid "Enable Objective-C setjmp exception handling runtime"
+msgstr "Укључи извршни део објективног Ц-а за руковање setjmp изузецима"
+
+#: c.opt:622
+msgid "Recognize C++ kewords like \"compl\" and \"xor\""
+msgstr "Препознај кључне речи Ц++а као „compl“ и „xor“"
+
+#: c.opt:626
+msgid "Enable optional diagnostics"
+msgstr "Укључи опциону дијагоностику"
+
+#: c.opt:633
+msgid "Look for and use PCH files even when preprocessing"
+msgstr "Тражи и користи ПЦХ датотеке чак и током предобраде"
+
+#: c.opt:637
+msgid "Downgrade conformance errors to warnings"
+msgstr "Ражалуј грешке у поштовању на упозорења"
+
+#: c.opt:641
+msgid "Treat the input file as already preprocessed"
+msgstr "Сматрај улазну датотеку већ предобрађеном"
+
+#: c.opt:645
+msgid "Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime"
+msgstr "Користи се у режиму фиксирај-и-настави за указивање да се објектне датотеке могу размењивати при извршавању"
+
+#: c.opt:649
+msgid "Enable automatic template instantiation"
+msgstr "Укључи аутоматско извођење шаблона"
+
+#: c.opt:653
+msgid "Generate run time type descriptor information"
+msgstr "Стварај описе типова при извршавању"
+
+#: c.opt:657
+msgid "Use the same size for double as for float"
+msgstr "Користи исту величину за double као за float"
+
+#: c.opt:665
+msgid "Force the underlying type for \"wchar_t\" to be \"unsigned short\""
+msgstr "Спроведи да „unsigned short“ буде подметнут за „wchar_t“"
+
+#: c.opt:669
+msgid "When \"signed\" or \"unsigned\" is not given make the bitfield signed"
+msgstr "Нека битско поље буде означено када није дато ни „signed“ ни „unsigned“"
+
+#: c.opt:673
+msgid "Make \"char\" signed by default"
+msgstr "Нека „char“ подразумевано буде означен"
+
+#: c.opt:680
+msgid "Display statistics accumulated during compilation"
+msgstr "Прикажи статистику срачунату током компилације"
+
+#: c.opt:687
+msgid "Distance between tab stops for column reporting"
+msgstr "Величина табулатора за пријављивање колона"
+
+#: c.opt:691
+msgid "Specify maximum template instantiation depth"
+msgstr "Одредите највећу дубину извођења шаблона"
+
+#: c.opt:698
+msgid "Do not generate thread-safe code for initializing local statics"
+msgstr "Не стварај нитно-безбедан кôд за успостављање локалних статика"
+
+#: c.opt:702
+msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
+msgstr "Нека битско поље буде неозначено када није дато ни „signed“ ни „unsigned“"
+
+#: c.opt:706
+msgid "Make \"char\" unsigned by default"
+msgstr "Нека „char“ подразумевано буде неозначен"
+
+#: c.opt:710
+msgid "Use __cxa_atexit to register destructors"
+msgstr "Користи __cxa_atexit за регистрацију деструкторâ"
+
+#: c.opt:714
+msgid "Marks all inlined methods as having hidden visibility"
+msgstr "Означи скривање видљивости свим утканим методима"
+
+#: c.opt:718
+msgid "Discard unused virtual functions"
+msgstr "Одбаци неупотребљене виртуелне функције"
+
+#: c.opt:722
+msgid "Implement vtables using thunks"
+msgstr "Имплементирај в-табеле користећи смрзеве"
+
+#: c.opt:726
+msgid "Emit common-like symbols as weak symbols"
+msgstr "Емитуј наизглед заједничке симболе као слабе симболе"
+
+#: c.opt:730
+msgid "Convert all wide strings and character constants to character set <cset>"
+msgstr "Претвори све широке ниске и знаковне константе у скуп знакова <cset>"
+
+#: c.opt:734
+msgid "Generate a #line directive pointing at the current working directory"
+msgstr "Створи директиву #line која показује на текући радни директоријум"
+
+#: c.opt:738
+msgid "Emit cross referencing information"
+msgstr "Емитуј информације о укрштеном упућивању"
+
+#: c.opt:742
+msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode"
+msgstr "Стварај лењу потрагу класа (преко objc_getClass()) за употребу у режиму Зиро-Линка"
+
+#: c.opt:746
+msgid "Dump declarations to a .decl file"
+msgstr "Попиши декларације у .decl датотеку"
+
+#: c.opt:750 c.opt:778
+msgid "Add <dir> to the end of the system include path"
+msgstr "Додај <dir> на крај системске путање укључивања"
+
+#: c.opt:754
+msgid "Accept definition of macros in <file>"
+msgstr "Прихвати дефиниције макроа из <file>"
+
+#: c.opt:758
+msgid "Include the contents of <file> before other files"
+msgstr "Укључи садржај <file> пре других датотека"
+
+#: c.opt:762
+msgid "Specify <path> as a prefix for next two options"
+msgstr "Одреди <path> као префикс за следеће две опције"
+
+#: c.opt:766
+msgid "Set <dir> to be the system root directory"
+msgstr "Постави да <dir> буде корени директоријум система"
+
+#: c.opt:770
+msgid "Add <dir> to the start of the system include path"
+msgstr "Додај <dir> на почетак системске путање укључивања"
+
+#: c.opt:774
+msgid "Add <dir> to the end of the quote include path"
+msgstr "Додај <dir> на крај цитиране путање укључивања"
+
+#: c.opt:795
+msgid "Do not search standard system include directories (those specified with -isystem will still be used)"
+msgstr "Не тражи стандардне системске директоријуме укључивања (што је наведено помоћу -isystem ће и даље бити коришћено)"
+
+#: c.opt:799
+msgid "Do not search standard system include directories for C++"
+msgstr "Не тражи стандардне системске директоријуме укључивања за Ц++"
+
+#: c.opt:815
+msgid "Generate C header of platform-specific features"
+msgstr "Створи Ц заглавље са особинама посебним за платформу"
+
+#: c.opt:819
+msgid "Print a checksum of the executable for PCH validity checking, and stop"
+msgstr "Испиши контролни збир извршне датотеке за проверу ПЦХа и стани"
+
+#: c.opt:823
+msgid "Remap file names when including files"
+msgstr "Премапирај имена датотека при укључивању датотека"
+
+#: c.opt:827
+msgid "Conform to the ISO 1998 C++ standard"
+msgstr "Поштуј стандард Ц++а ИСО 1998"
+
+#: c.opt:831 c.opt:859
+msgid "Conform to the ISO 1990 C standard"
+msgstr "Поштуј стандард Ц-а ИСО 1990"
+
+#: c.opt:835 c.opt:867
+msgid "Conform to the ISO 1999 C standard"
+msgstr "Поштуј стандард Ц-а ИСО 1999"
+
+#: c.opt:839
+msgid "Deprecated in favor of -std=c99"
+msgstr "Непрепоручљиво, боље -std=c99"
+
+#: c.opt:843
+msgid "Conform to the ISO 1998 C++ standard with GNU extensions"
+msgstr "Поштуј стандард Ц++а ИСО 1998, са Гнуовим проширењима"
+
+#: c.opt:847
+msgid "Conform to the ISO 1990 C standard with GNU extensions"
+msgstr "Поштуј стандард Ц-а ИСО 1990, са Гнуовим проширењима"
+
+#: c.opt:851
+msgid "Conform to the ISO 1999 C standard with GNU extensions"
+msgstr "Поштуј стандард Ц-а ИСО 1999, са Гнуовим проширењима"
+
+#: c.opt:855
+msgid "Deprecated in favor of -std=gnu99"
+msgstr "Непрепоручљиво, боље -std=gnu99"
+
+#: c.opt:863
+msgid "Conform to the ISO 1990 C standard as amended in 1994"
+msgstr "Поштуј стандард Ц-а ИСО 1990, са допунама из 1994."
+
+#: c.opt:871
+msgid "Deprecated in favor of -std=iso9899:1999"
+msgstr "Непрепоручљиво, боље -std=iso9899:1999"
+
+#: c.opt:875
+msgid "Enable traditional preprocessing"
+msgstr "Укључи традиционалну предобраду"
+
+#: c.opt:879
+msgid "Support ISO C trigraphs"
+msgstr "Подржи триграфе ИСО Ц-а"
+
+#: c.opt:883
+msgid "Do not predefine system-specific and GCC-specific macros"
+msgstr "Не предефиниши макрое посебне за систем и ГЦЦ"
+
+#: c.opt:887
+msgid "Enable verbose output"
+msgstr "Укључи опширан излаз"
+
+#: common.opt:28
+msgid "Display this information"
+msgstr "Прикажи ову информацију"
+
+#: common.opt:32
+msgid "Set parameter <param> to value. See below for a complete list of parameters"
+msgstr "Постави параметар <param> на вредност. Види ниже целокупну листу параметара"
+
+#: common.opt:42
+msgid "Put global and static data smaller than <number> bytes into a special section (on some targets)"
+msgstr "Стави глобалне и статичке податке мање од <number> бајтова у посебан одељак (на неким циљевима)"
+
+#: common.opt:46
+msgid "Set optimization level to <number>"
+msgstr "Постави ниво оптимизације на <number>"
+
+#: common.opt:50
+msgid "Optimize for space rather than speed"
+msgstr "Оптимизуј величину пре него брзину"
+
+#: common.opt:54
+msgid "This switch is deprecated; use -Wextra instead"
+msgstr "Овај прекидач је превазиђен; користите -Wextra"
+
+#: common.opt:58
+msgid "Warn about returning structures, unions or arrays"
+msgstr "Упозори на враћање структура, унија или низова"
+
+#: common.opt:62
+msgid "Warn about inappropriate attribute usage"
+msgstr "Упозори на неприкладну употребу атрибута"
+
+#: common.opt:66
+msgid "Warn about pointer casts which increase alignment"
+msgstr "Упозори на претапања показивача која увећавају равнање"
+
+#: common.opt:70
+msgid "Warn about uses of __attribute__((deprecated)) declarations"
+msgstr "Упозори на употребе декларација __attribute__((deprecated))"
+
+#: common.opt:74
+msgid "Warn when an optimization pass is disabled"
+msgstr "Упозори када је оптимизациони пролаз искључен"
+
+#: common.opt:78
+msgid "Treat all warnings as errors"
+msgstr "Сматрај сва упозорења грешкама"
+
+#: common.opt:82
+msgid "Print extra (possibly unwanted) warnings"
+msgstr "Исписуј додатна (могуће нежељена) упозорења"
+
+#: common.opt:86
+msgid "Exit on the first error occurred"
+msgstr "Изађи код прве сусретнуте грешке"
+
+#: common.opt:90
+msgid "Warn when an inlined function cannot be inlined"
+msgstr "Упозори када се уткана функција не може уткати"
+
+#: common.opt:94
+msgid "Warn if an object is larger than <number> bytes"
+msgstr "Упозори ако је објекат већи од <number> бајтова"
+
+#: common.opt:98
+msgid "Warn if the loop cannot be optimized due to nontrivial assumptions."
+msgstr "Упозори ако се петља не може оптимизовати услед нетривијалних претпоставки."
+
+#: common.opt:102
+msgid "Warn about functions which might be candidates for __attribute__((noreturn))"
+msgstr "Упозори на функције које могу бити кандидати за __attribute__((noreturn))"
+
+#: common.opt:106
+msgid "Warn when the packed attribute has no effect on struct layout"
+msgstr "Упозори када атрибут паковања нема ефекта на распоред структуре"
+
+#: common.opt:110
+msgid "Warn when padding is required to align structure members"
+msgstr "Упозори када се захтева уметање ради равнања чланова структуре"
+
+#: common.opt:114
+msgid "Warn when one local variable shadows another"
+msgstr "Упозори када једна локална променљива заклања другу"
+
+#: common.opt:118
+msgid "Warn when not issuing stack smashing protection for some reason"
+msgstr "Упозори када се из неког разлога не издаје заштита од разбијања стека"
+
+#: common.opt:122 common.opt:126
+msgid "Warn about code which might break strict aliasing rules"
+msgstr "Упозори на кôд који може прекршити правила строге дволичности"
+
+#: common.opt:130
+msgid "Warn about enumerated switches, with no default, missing a case"
+msgstr "Упозори на набројиве прекидаче без подразумеване гране, којима недостаје случај"
+
+#: common.opt:134
+msgid "Warn about enumerated switches missing a \"default:\" statement"
+msgstr "Упозори на набројиве прекидаче којима недостаје наредба „default:“"
+
+#: common.opt:138
+msgid "Warn about all enumerated switches missing a specific case"
+msgstr "Упозори на све набројиве прекидаче којима недостаје одређени случај"
+
+#: common.opt:146
+msgid "Warn about uninitialized automatic variables"
+msgstr "Упозори на неуспостављене аутоматске променљиве"
+
+#: common.opt:150
+msgid "Warn about code that will never be executed"
+msgstr "Упозори на кôд који се никад не извршава"
+
+#: common.opt:154
+msgid "Enable all -Wunused- warnings"
+msgstr "Укључи сва упозорења -Wunused-*"
+
+#: common.opt:158
+msgid "Warn when a function is unused"
+msgstr "Упозори када се функција не користи"
+
+#: common.opt:166
+msgid "Warn when a function parameter is unused"
+msgstr "Упозори када се параметар функције не користи"
+
+#: common.opt:170
+msgid "Warn when an expression value is unused"
+msgstr "Упозори када се вредност израза не користи"
+
+#: common.opt:174
+msgid "Warn when a variable is unused"
+msgstr "Упозори када се променљива не користи"
+
+#: common.opt:178
+msgid "Warn when a register variable is declared volatile"
+msgstr "Упозори када се регистарска променљива прогласи непостојаном"
+
+#: common.opt:182
+msgid "Emit declaration information into <file>"
+msgstr "Емитуј податке о декларацијама у <file>"
+
+#: common.opt:195
+msgid "Enable dumps from specific passes of the compiler"
+msgstr "Укључи пописе из одређених пролаза компилатора"
+
+#: common.opt:199
+msgid "Set the file basename to be used for dumps"
+msgstr "Постави основно име датотека за пописе"
+
+#: common.opt:217
+msgid "Align the start of functions"
+msgstr "Поравнај почетке функција"
+
+#: common.opt:224
+msgid "Align labels which are only reached by jumping"
+msgstr "Поравнај етикете које се достижу једино скакањем"
+
+#: common.opt:231
+msgid "Align all labels"
+msgstr "Поравнај све етикете"
+
+#: common.opt:238
+msgid "Align the start of loops"
+msgstr "Поравнај почетке петљи"
+
+#: common.opt:251
+msgid "Specify that arguments may alias each other and globals"
+msgstr "Претпостави да аргументи могу бити дволични, међусобно и са глобалнима"
+
+#: common.opt:255
+msgid "Assume arguments may alias globals but not each other"
+msgstr "Претпостави да аргументи могу бити дволични са глобалнима, али не и међусобно"
+
+#: common.opt:259
+msgid "Assume arguments alias neither each other nor globals"
+msgstr "Претпостави да аргументи не могу бити дволични, ни међусобно ни са глобалнима"
+
+#: common.opt:263
+msgid "Generate unwind tables that are exact at each instruction boundary"
+msgstr "Стварај табеле одмотавања које су тачне на свакој граници инструкција"
+
+#: common.opt:271
+msgid "Generate code to check bounds before indexing arrays"
+msgstr "Стварај кôд за проверу граница пре индексирања низова"
+
+#: common.opt:275
+msgid "Replace add, compare, branch with branch on count register"
+msgstr "Замени додавање-упоређивање-гранање регистром за гранање-на-збир"
+
+#: common.opt:279
+msgid "Use profiling information for branch probabilities"
+msgstr "Користи профилишуће информације за вероватноће гранања"
+
+#: common.opt:283
+msgid "Perform branch target load optimization before prologue / epilogue threading"
+msgstr "Оптимизуј учитавање циља гранања пре плетења пролога или епилога"
+
+#: common.opt:287
+msgid "Perform branch target load optimization after prologue / epilogue threading"
+msgstr "Оптимизуј учитавање циља гранања после плетења пролога или епилога"
+
+#: common.opt:291
+msgid "Restrict target load migration not to re-use registers in any basic block"
+msgstr "Спречи миграцију учитавања циља да користи исте регистре у било којем основном блоку"
+
+#: common.opt:295
+msgid "Mark <register> as being preserved across functions"
+msgstr "Означи да се <register> очувава преко функција"
+
+#: common.opt:299
+msgid "Mark <register> as being corrupted by function calls"
+msgstr "Означи да се <register> квари позивима функција"
+
+#: common.opt:306
+msgid "Save registers around function calls"
+msgstr "Сачувавај регистре око позива функција"
+
+#: common.opt:310
+msgid "Do not put uninitialized globals in the common section"
+msgstr "Не стављај неуспостављене глобалне у заједнички одељак"
+
+#: common.opt:314
+msgid "Perform a register copy-propagation optimization pass"
+msgstr "Изврши оптимизацију за распростирање копирања преко регистара"
+
+#: common.opt:318
+msgid "Perform cross-jumping optimization"
+msgstr "Изврши оптимизацију за укрштање скокова"
+
+#: common.opt:322
+msgid "When running CSE, follow jumps to their targets"
+msgstr "При извршавању ЦСЕа прати скокове до њихових циљева"
+
+#: common.opt:326
+msgid "When running CSE, follow conditional jumps"
+msgstr "При извршавању ЦСЕа прати условне скокове"
+
+#: common.opt:330
+msgid "Omit range reduction step when performing complex division"
+msgstr "Изостави корак редукције опсега при комплексним дељењима"
+
+#: common.opt:334
+msgid "Place data items into their own section"
+msgstr "Стављај податке у њихов сопствени одељак"
+
+#: common.opt:340
+msgid "Defer popping functions args from stack until later"
+msgstr "Одложи за касније подизање аргумената са стека"
+
+#: common.opt:344
+msgid "Attempt to fill delay slots of branch instructions"
+msgstr "Покушај да испуниш жлебове застоја за инструкције гранања"
+
+#: common.opt:348
+msgid "Delete useless null pointer checks"
+msgstr "Обриши бескорисне провере нултог показивача"
+
+#: common.opt:352
+msgid "How often to emit source location at the beginning of line-wrapped diagnostics"
+msgstr "Колико често емитовати локацију у извору на почетку дијагностике преломљене у више линија"
+
+#: common.opt:356
+msgid "Amend appropriate diagnostic messages with the command line option that controls them"
+msgstr "Допуни одговарајуће дијагностичке поруке опцијом командне линије које их контролишу"
+
+#: common.opt:360
+msgid "Dump various compiler internals to a file"
+msgstr "Попиши разне унутрашње ствари компилатора у датотеку"
+
+#: common.opt:364
+msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
+msgstr "Сузбиј испис бројева инструкција и линија у исправљачким пописима"
+
+#: common.opt:368
+msgid "Perform early inlining"
+msgstr "Изврши рано уткивање"
+
+#: common.opt:372
+msgid "Perform DWARF2 duplicate elimination"
+msgstr "Изврши елиминацију дупликата ДВАРФ 2"
+
+#: common.opt:376 common.opt:380
+msgid "Perform unused type elimination in debug info"
+msgstr "Елиминиши неупотребље типове у исправљачким информацијама"
+
+#: common.opt:384
+msgid "Enable exception handling"
+msgstr "Укључи руковање изузецима"
+
+#: common.opt:388
+msgid "Perform a number of minor, expensive optimizations"
+msgstr "Изврши и неке мање, а скупе оптимизације"
+
+#: common.opt:395
+msgid "Assume no NaNs or infinities are generated"
+msgstr "Претпостави да се не стварају ни НаНи ни бесконачности"
+
+#: common.opt:399
+msgid "Mark <register> as being unavailable to the compiler"
+msgstr "Означи да <register> није доступан компилатору"
+
+#: common.opt:403
+msgid "Don't allocate floats and doubles in extended-precision registers"
+msgstr "Не резервиши једноструке и двоструке у регистрима проширене тачности"
+
+#: common.opt:409
+msgid "Copy memory address constants into registers before use"
+msgstr "Копирај константне меморијске адресе у регистре пре употребе"
+
+#: common.opt:415
+msgid "Copy memory operands into registers before use"
+msgstr "Копирај меморијске операнде у регистре пре употребе"
+
+#: common.opt:422
+msgid "Allow function addresses to be held in registers"
+msgstr "Дозволи држање адреса функција у регистрима"
+
+#: common.opt:426
+msgid "Place each function into its own section"
+msgstr "Стави сваку функцију у њен сопствени одељак"
+
+#: common.opt:430
+msgid "Perform global common subexpression elimination"
+msgstr "Елиминиши глобалне заједничке подизразе"
+
+#: common.opt:434
+msgid "Perform enhanced load motion during global common subexpression elimination"
+msgstr "Изврши побољшано кретање учитавања током елиминације глобалних заједничких подизраза"
+
+#: common.opt:438
+msgid "Perform store motion after global common subexpression elimination"
+msgstr "Изврши кретање складиштења током елиминације глобалних заједничких подизраза"
+
+#: common.opt:442
+msgid "Perform redundant load after store elimination in global common subexpression"
+msgstr "Елиминиши непотребно учитавање после складиштења у глобалном заједничком подизразу"
+
+#: common.opt:447
+msgid "Perform global common subexpression elimination after register allocation"
+msgstr "Елиминиши глобалне заједничке подизразе после резервисања регистара"
+
+#: common.opt:452
+msgid "Enable guessing of branch probabilities"
+msgstr "Укључи погађање вероватноћа гранања"
+
+#: common.opt:460
+msgid "Process #ident directives"
+msgstr "Обради директиве #ident"
+
+#: common.opt:464
+msgid "Perform conversion of conditional jumps to branchless equivalents"
+msgstr "Претвори условне скокове у безгране еквиваленте"
+
+#: common.opt:468
+msgid "Perform conversion of conditional jumps to conditional execution"
+msgstr "Претвори условне скокове у условно извршавање"
+
+#: common.opt:476
+msgid "Do not generate .size directives"
+msgstr "Не стварај директиве .size"
+
+#: common.opt:485
+msgid "Pay attention to the \"inline\" keyword"
+msgstr "Обраћај пажњу на кључну реч „inline“"
+
+#: common.opt:489
+msgid "Integrate simple functions into their callers"
+msgstr "Интегриши једноставне функције у њихове позиваче"
+
+#: common.opt:493
+msgid "Integrate functions called once into their callers"
+msgstr "Интегриши функције једном позване у њихове позиваче"
+
+#: common.opt:500
+msgid "Limit the size of inlined functions to <number>"
+msgstr "Ограничи број утканих функција на <number>"
+
+#: common.opt:504
+msgid "Instrument function entry and exit with profiling calls"
+msgstr "Опреми улаз и излаз функција профилишућим позивима"
+
+#: common.opt:508
+msgid "Perform Interprocedural constant propagation"
+msgstr "Изврши међупроцедурално распростирање константи"
+
+#: common.opt:512
+msgid "Discover pure and const functions"
+msgstr "Откривај чисте и константне функције"
+
+#: common.opt:516
+msgid "Discover readonly and non addressable static variables"
+msgstr "Откривај статичке променљиве које су само за читање и не могу се адресирати"
+
+#: common.opt:520
+msgid "Type based escape and alias analysis"
+msgstr "Анализа бегова и дволичности на основу типова"
+
+#: common.opt:524
+msgid "Optimize induction variables on trees"
+msgstr "Оптимизуј индукционе променљиве на стаблима"
+
+#: common.opt:528
+msgid "Use jump tables for sufficiently large switch statements"
+msgstr "Користи табеле скокова за довољно велике наредбе прекидача"
+
+#: common.opt:532
+msgid "Generate code for functions even if they are fully inlined"
+msgstr "Стварај кôд за функције чак и ако су потпуно уткане"
+
+#: common.opt:536
+msgid "Emit static const variables even if they are not used"
+msgstr "Емитуј статичке константне променљиве чак и ако се не користе"
+
+#: common.opt:540
+msgid "Give external symbols a leading underscore"
+msgstr "Додај спољашњим симболима водећу подвлаку"
+
+#: common.opt:544
+msgid "Perform loop optimizations"
+msgstr "Оптимизуј петље"
+
+#: common.opt:548
+msgid "Perform loop optimizations using the new loop optimizer"
+msgstr "Оптимизуј петље користећи нови оптимизатор петљи"
+
+#: common.opt:552
+msgid "Set errno after built-in math functions"
+msgstr "Постави errno после уграђених математичких фја"
+
+#: common.opt:556
+msgid "Report on permanent memory allocation"
+msgstr "Извештавај о трајном резервисању меморије"
+
+#: common.opt:563
+msgid "Attempt to merge identical constants and constant variables"
+msgstr "Покушај да стопиш истоветне константе и константне променљиве"
+
+#: common.opt:567
+msgid "Attempt to merge identical constants across compilation units"
+msgstr "Покушај да стопиш истоветне константе преко компилационих јединица"
+
+#: common.opt:571
+msgid "Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping"
+msgstr "Ограничи дијагностику на <number> знакова по линији. 0 сузбија преламање линија"
+
+#: common.opt:575
+msgid "Perform SMS based modulo scheduling before the first scheduling pass"
+msgstr "Изврши окретно модуло-распоређивање на основу СМСа пре првог распоређивачког пролаза"
+
+#: common.opt:579
+msgid "Move loop invariant computations out of loops"
+msgstr "Премести инваријантна рачунања изван петљи"
+
+#: common.opt:583
+msgid "Add mudflap bounds-checking instrumentation for single-threaded program"
+msgstr "Додај блатобранску проверу граница за једнонитни програм"
+
+#: common.opt:587
+msgid "Add mudflap bounds-checking instrumentation for multi-threaded program"
+msgstr "Додај блатобранску проверу граница за вишенитни програм"
+
+#: common.opt:591
+msgid "Ignore read operations when inserting mudflap instrumentation"
+msgstr "Игнориши операције читања при опремању блатобраном"
+
+#: common.opt:595
+msgid "Enable/Disable the traditional scheduling in loops that already passed modulo scheduling"
+msgstr "Укључи/искључи традиционално распоређивање у петљама које су већ прошле кроз модуло-распоређивање"
+
+#: common.opt:599
+msgid "Support synchronous non-call exceptions"
+msgstr "Подржи синхроне непозивне изузетке"
+
+#: common.opt:603
+msgid "When possible do not generate stack frames"
+msgstr "Када је могуће не стварај оквире стека"
+
+#: common.opt:607
+msgid "Do the full register move optimization pass"
+msgstr "Изврши потпуни пролаз оптимизације померањем регистара"
+
+#: common.opt:611
+msgid "Optimize sibling and tail recursive calls"
+msgstr "Оптимизуј сродничке и репно рекурзивне позиве"
+
+#: common.opt:615
+msgid "Pack structure members together without holes"
+msgstr "Пакуј чланове структура заједно без рупа"
+
+#: common.opt:619
+msgid "Set initial maximum structure member alignment"
+msgstr "Постави почетно највеће равнање чланова структуре"
+
+#: common.opt:623
+msgid "Return small aggregates in memory, not registers"
+msgstr "Враћај мале скупине у меморији, не у регистрима"
+
+#: common.opt:627
+msgid "Perform loop peeling"
+msgstr "Изврши љушћење петљи"
+
+#: common.opt:631
+msgid "Enable machine specific peephole optimizations"
+msgstr "Укључи машински-зависне окнасте оптимизације"
+
+#: common.opt:635
+msgid "Enable an RTL peephole pass before sched2"
+msgstr "Укључи окнасти РТЛ пролаз пре sched2"
+
+#: common.opt:639
+msgid "Generate position-independent code if possible (large mode)"
+msgstr "Стварај положајно-независни кôд ако је могуће (велики режим)"
+
+#: common.opt:643
+msgid "Generate position-independent code for executables if possible (large mode)"
+msgstr "Стварај положајно-независни кôд за извршне ако је могуће (велики режим)"
+
+#: common.opt:647
+msgid "Generate position-independent code if possible (small mode)"
+msgstr "Стварај положајно-независни кôд ако је могуће (мали режим)"
+
+#: common.opt:651
+msgid "Generate position-independent code for executables if possible (small mode)"
+msgstr "Стварај положајно-независни кôд за извршне ако је могуће (мали режим)"
+
+#: common.opt:655
+msgid "Generate prefetch instructions, if available, for arrays in loops"
+msgstr "Стварај инструкције предохватања, ако су доступне, за низове у петљама"
+
+#: common.opt:659
+msgid "Enable basic program profiling code"
+msgstr "Укључи основни кôд за профилисање програма"
+
+#: common.opt:663
+msgid "Insert arc-based program profiling code"
+msgstr "Убаци кôд за профилисање програма на основу лукова"
+
+#: common.opt:667
+msgid "Enable common options for generating profile info for profile feedback directed optimizations"
+msgstr "Укључи уобичајене опције за стварање профилних информација, ради оптимизација на основу одзива профилисања"
+
+#: common.opt:671
+msgid "Enable common options for performing profile feedback directed optimizations"
+msgstr "Укључи уобичајене опције за оптимизације на основу одзива профилисања"
+
+#: common.opt:675
+msgid "Insert code to profile values of expressions"
+msgstr "Умећи кôд за профилисање вредности израза"
+
+#: common.opt:682
+msgid "Make compile reproducible using <string>"
+msgstr "Учини компилацију поновљивом користећи <string>"
+
+#: common.opt:686
+msgid "Return small aggregates in registers"
+msgstr "Враћај мале скупине у регистрима"
+
+#: common.opt:690
+msgid "Enables a register move optimization"
+msgstr "Укључи оптимизацију померањем регистара"
+
+#: common.opt:694
+msgid "Perform a register renaming optimization pass"
+msgstr "Изврши пролаз оптимизације преименовањем регистара"
+
+#: common.opt:698
+msgid "Reorder basic blocks to improve code placement"
+msgstr "Прераспореди основне блокове ради побољшања постављења кôда"
+
+#: common.opt:702
+msgid "Reorder basic blocks and partition into hot and cold sections"
+msgstr "Прераспореди основне блокове и подели на вруће и хладне одељке"
+
+#: common.opt:706
+msgid "Reorder functions to improve code placement"
+msgstr "Прераспореди функције ради побољшања постављења кôда"
+
+#: common.opt:710
+msgid "Add a common subexpression elimination pass after loop optimizations"
+msgstr "Додај пролаз елиминације заједничких подизраза после оптимизација петље"
+
+#: common.opt:714
+msgid "Run the loop optimizer twice"
+msgstr "Изврши оптимизатор петљи двапут"
+
+#: common.opt:718
+msgid "Disable optimizations that assume default FP rounding behavior"
+msgstr "Искључи оптимизације које претпостављају подразумевано понашање ФП заокруживања"
+
+#: common.opt:722
+msgid "Enable scheduling across basic blocks"
+msgstr "Укључи распоређивање преко основних блокова"
+
+#: common.opt:726
+msgid "Allow speculative motion of non-loads"
+msgstr "Дозволи спекулативно кретање не-учитавања"
+
+#: common.opt:730
+msgid "Allow speculative motion of some loads"
+msgstr "Дозволи спекулативно кретање неких учитавања"
+
+#: common.opt:734
+msgid "Allow speculative motion of more loads"
+msgstr "Дозволи спекулативно кретање више учитавања"
+
+#: common.opt:738
+msgid "Set the verbosity level of the scheduler"
+msgstr "Постави ниво опширности распоређивача"
+
+#: common.opt:742
+msgid "If scheduling post reload, do superblock scheduling"
+msgstr "Ако се распоређује после поновљеног учитавања, изврши суперблоковско распоређивање"
+
+#: common.opt:746
+msgid "If scheduling post reload, do trace scheduling"
+msgstr "Ако се распоређује после поновљеног учитавања, изврши распоређивање трага"
+
+#: common.opt:750
+msgid "Reschedule instructions before register allocation"
+msgstr "Прераспореди инструкције пре резервисања регистара"
+
+#: common.opt:754
+msgid "Reschedule instructions after register allocation"
+msgstr "Прераспореди инструкције после резервисања регистара"
+
+#: common.opt:760
+msgid "Allow premature scheduling of queued insns"
+msgstr "Дозволи прерано распоређивање ија у реду"
+
+#: common.opt:764
+msgid "Set number of queued insns that can be prematurely scheduled"
+msgstr "Број ија у реду које се могу прерано распоређивати"
+
+#: common.opt:772 common.opt:776
+msgid "Set dependence distance checking in premature scheduling of queued insns"
+msgstr "Провера растојања зависности у прераном распоређивању ија у реду"
+
+#: common.opt:780
+msgid "Mark data as shared rather than private"
+msgstr "Означи податке као дељене пре него као приватне"
+
+#: common.opt:784
+msgid "Show column numbers in diagnostics, when available. Default on"
+msgstr "Приказуј бројеве колона у дијагностици, ако су доступни. Подразумевано укључено."
+
+#: common.opt:788
+msgid "Disable optimizations observable by IEEE signaling NaNs"
+msgstr "Искључи оптимизације приметне при ИЕЕЕ издавању НаНа"
+
+#: common.opt:792
+msgid "Convert floating point constants to single precision constants"
+msgstr "Претвори константе у покретном зарезу у једноструку прецизност"
+
+#: common.opt:796
+msgid "Split lifetimes of induction variables when loops are unrolled"
+msgstr "Подели времена живота индукционих променљивих када се петље одмотавају"
+
+#: common.opt:800
+msgid "Apply variable expansion when loops are unrolled"
+msgstr "Примени ширење променљивих када се петље одмотавају"
+
+#: common.opt:806
+msgid "Insert stack checking code into the program"
+msgstr "Уметни кôд за проверу стека у програм"
+
+#: common.opt:813
+msgid "Trap if the stack goes past <register>"
+msgstr "Хватај ако стек прође поред <register>"
+
+#: common.opt:817
+msgid "Trap if the stack goes past symbol <name>"
+msgstr "Хватај ако стек прође поред симбола <name>"
+
+#: common.opt:821
+msgid "Use propolice as a stack protection method"
+msgstr "Користи propolice као метод заштите стека"
+
+#: common.opt:825
+msgid "Use a stack protection method for every function"
+msgstr "Користи метод заштите стека за сваку функцију"
+
+#: common.opt:829
+msgid "Perform strength reduction optimizations"
+msgstr "Изврши оптимизације смањења снаге"
+
+#: common.opt:837
+msgid "Assume strict aliasing rules apply"
+msgstr "Претпостави правила строге дволичности"
+
+#: common.opt:841
+msgid "Check for syntax errors, then stop"
+msgstr "Провери синтаксне грешке, па стани"
+
+#: common.opt:845
+msgid "Create data files needed by \"gcov\""
+msgstr "Створи датотеке потребне за „gcov“"
+
+#: common.opt:849
+msgid "Perform jump threading optimizations"
+msgstr "Изврши оптимизације плетења скокова"
+
+#: common.opt:853
+msgid "Report the time taken by each compiler pass"
+msgstr "Извести о времену потрошеном у сваком компилаторском пролазу"
+
+#: common.opt:857
+msgid "Set the default thread-local storage code generation model"
+msgstr "Подразумевани модел стварања кôда за нитно-локално складиштење"
+
+#: common.opt:861
+msgid "Perform superblock formation via tail duplication"
+msgstr "Формирај суперблокове преко умножавања репа"
+
+#: common.opt:868
+msgid "Assume floating-point operations can trap"
+msgstr "Претпостави да операције у покретном зарезу могу да хватају"
+
+#: common.opt:872
+msgid "Trap for signed overflow in addition, subtraction and multiplication"
+msgstr "Хватај преливање означених при додавању, одузимању и множењу"
+
+#: common.opt:876
+msgid "Enable SSA-CCP optimization on trees"
+msgstr "Укључи ССА-ЦЦП оптимизацију над стаблима"
+
+#: common.opt:880
+msgid "Enable SSA-CCP optimization for stores and loads"
+msgstr "Укључи ССА-ЦЦП оптимизацију за складиштења и учитавања"
+
+#: common.opt:884
+msgid "Enable loop header copying on trees"
+msgstr "Укључи копирање заглавља петље на стаблима"
+
+#: common.opt:888
+msgid "Coalesce memory temporaries in the SSA->normal pass"
+msgstr "Сједини меморијске привремене у пролазу ССА->нормално"
+
+#: common.opt:892
+msgid "Replace SSA temporaries with better names in copies"
+msgstr "Смени ССА привремене бољим именима у копијама"
+
+#: common.opt:896
+msgid "Enable copy propagation on trees"
+msgstr "Укључи распростирање копирања на стаблима"
+
+#: common.opt:900
+msgid "Enable copy propagation for stores and loads"
+msgstr "Укључи распростирање копирања за складиштења и учитавања"
+
+#: common.opt:904
+msgid "Enable SSA dead code elimination optimization on trees"
+msgstr "Укључи ССА оптимизацију елиминације мртвог кôда на стаблима"
+
+#: common.opt:908
+msgid "Enable dominator optimizations"
+msgstr "Укључи доминаторске оптимизације"
+
+#: common.opt:912
+msgid "Enable dead store elimination"
+msgstr "Укључи елиминацију мртвих складиштења"
+
+#: common.opt:916
+msgid "Enable Full Redundancy Elimination (FRE) on trees"
+msgstr "Укључи пуну елиминацију сувишности (ФРЕ) на стаблима"
+
+#: common.opt:920
+msgid "Enable loop invariant motion on trees"
+msgstr "Укључи кретање инваријанти петље на стаблима"
+
+#: common.opt:924
+msgid "Enable linear loop transforms on trees"
+msgstr "Укључи линеарне трансформације петљи на стаблима"
+
+#: common.opt:928
+msgid "Create canonical induction variables in loops"
+msgstr "Стварај каноничке индукционе променљиве у петљама"
+
+#: common.opt:932
+msgid "Enable loop optimizations on tree level"
+msgstr "Укључи оптимизације петљи на нивоу стабла"
+
+#: common.opt:936
+msgid "Enable SSA-PRE optimization on trees"
+msgstr "Укључи ССА-ПРЕ оптимизацију на стаблима"
+
+#: common.opt:940
+msgid "Perform structural alias analysis"
+msgstr "Изврши анализу структурних дволичности"
+
+#: common.opt:944
+msgid "Enable SSA code sinking on trees"
+msgstr "Укључи ССА потапање кôда на стаблима"
+
+#: common.opt:948
+msgid "Perform scalar replacement of aggregates"
+msgstr "Изврши скаларну замену скупина"
+
+#: common.opt:952
+msgid "Replace temporary expressions in the SSA->normal pass"
+msgstr "Замени привремене изразе у пролазу ССА->нормално"
+
+#: common.opt:956
+msgid "Perform live range splitting during the SSA->normal pass"
+msgstr "Изврши поделу опсега уживо током пролаза ССА->нормално"
+
+#: common.opt:960
+msgid "Perform Value Range Propagation on trees"
+msgstr "Изврши распростирање опсега вредности на стаблима"
+
+#: common.opt:964
+msgid "Compile whole compilation unit at a time"
+msgstr "Компилуј целу компилациону јединицу у једном тренутку"
+
+#: common.opt:968
+msgid "Perform loop unrolling when iteration count is known"
+msgstr "Одмотај петљу када се зна број итерација"
+
+#: common.opt:972
+msgid "Perform loop unrolling for all loops"
+msgstr "Одмотај све петље"
+
+#: common.opt:979
+msgid "Allow loop optimizations to assume that the loops behave in normal way"
+msgstr "Дозволи да оптимизације петље претпоставе да се петље нормално понашају"
+
+#: common.opt:987
+msgid "Allow math optimizations that may violate IEEE or ISO standards"
+msgstr "Дозволи математичке оптимизације које могу прекршити ИЕЕЕ или ИСО стандарде"
+
+#: common.opt:991
+msgid "Perform loop unswitching"
+msgstr "Изврши одусловљавање петљи"
+
+#: common.opt:995
+msgid "Just generate unwind tables for exception handling"
+msgstr "Само створи табеле одмотавања за руковање изузецима"
+
+#: common.opt:999
+msgid "Perform variable tracking"
+msgstr "Изврши праћење променљивих"
+
+#: common.opt:1003
+msgid "Enable loop vectorization on trees"
+msgstr "Укључи векторизацију петљи на стаблима"
+
+#: common.opt:1007
+msgid "Enable loop versioning when doing loop vectorization on trees"
+msgstr "Укључи верзионисање петље при векторизацији на стаблима"
+
+#: common.opt:1011
+msgid "Set the verbosity level of the vectorizer"
+msgstr "Постави ниво опширности векторизатора"
+
+#: common.opt:1021
+msgid "Add extra commentary to assembler output"
+msgstr "Додај допунске коментаре у испису асемблера"
+
+#: common.opt:1025
+msgid "Set the default symbol visibility"
+msgstr "Постави подразумевану видљивост симбола"
+
+#: common.opt:1030
+msgid "Use expression value profiles in optimizations"
+msgstr "Користи профиле вредности израза у оптимизацијама"
+
+#: common.opt:1034
+msgid "Construct webs and split unrelated uses of single variable"
+msgstr "Конструиши мреже и подели неповезане употребе једне променљиве"
+
+#: common.opt:1038
+msgid "Perform whole program optimizations"
+msgstr "Изврши оптимизације целог програма"
+
+#: common.opt:1042
+msgid "Assume signed arithmetic overflow wraps around"
+msgstr "Претпостави да се преливање означене аритметике омотава"
+
+#: common.opt:1046
+msgid "Put zero initialized data in the bss section"
+msgstr "Стави податке успостављене на нулу у одељак bss"
+
+#: common.opt:1050
+msgid "Generate debug information in default format"
+msgstr "Стварај исправљачке информације у подразумеваном формату"
+
+#: common.opt:1054
+msgid "Generate debug information in COFF format"
+msgstr "Стварај исправљачке информације у формату КОФФа"
+
+#: common.opt:1058
+msgid "Generate debug information in DWARF v2 format"
+msgstr "Стварај исправљачке информације у формату ДВАРФа 2"
+
+#: common.opt:1062
+msgid "Generate debug information in default extended format"
+msgstr "Стварај исправљачке информације у подразумеваном проширеном формату"
+
+#: common.opt:1066
+msgid "Generate debug information in STABS format"
+msgstr "Стварај исправљачке информације у формату СТАБСа"
+
+#: common.opt:1070
+msgid "Generate debug information in extended STABS format"
+msgstr "Стварај исправљачке информације у проширеном формату СТАБСа"
+
+#: common.opt:1074
+msgid "Generate debug information in VMS format"
+msgstr "Стварај исправљачке информације у формату ВМСа"
+
+#: common.opt:1078
+msgid "Generate debug information in XCOFF format"
+msgstr "Стварај исправљачке информације у формату ИксКОФФа"
+
+#: common.opt:1082
+msgid "Generate debug information in extended XCOFF format"
+msgstr "Стварај исправљачке информације у проширеном формату ИксКОФФа"
+
+#: common.opt:1086
+msgid "Place output into <file>"
+msgstr "Стави излаз у <file>"
+
+#: common.opt:1090
+msgid "Enable function profiling"
+msgstr "Укључи профилисање функција"
+
+#: common.opt:1094
+msgid "Issue warnings needed for strict compliance to the standard"
+msgstr "Издај упозорења потребна за строго поштовање стандарда"
+
+#: common.opt:1098
+msgid "Like -pedantic but issue them as errors"
+msgstr "Као -pedantic али их издај као грешке"
+
+#: common.opt:1102
+msgid "Do not display functions compiled or elapsed time"
+msgstr "Не приказуј компиловане функције или протекло време"
+
+#: common.opt:1106
+msgid "Display the compiler's version"
+msgstr "Прикажи верзију компилатора"
+
+#: common.opt:1110
+msgid "Suppress warnings"
+msgstr "Сузбиј упозорења"
+
+#: attribs.c:175
+#, gcc-internal-format
+msgid "%qs attribute directive ignored"
+msgstr "атрибутска директива %qs игнорисана"
+
+#: attribs.c:183
+#, gcc-internal-format
+msgid "wrong number of arguments specified for %qs attribute"
+msgstr "погрешан број аргумената наведне за атрибут %qs"
+
+#: attribs.c:200
+#, gcc-internal-format
+msgid "%qs attribute does not apply to types"
+msgstr "атрибут %qs није примењив на типове"
+
+#: attribs.c:247
+#, gcc-internal-format
+msgid "%qs attribute only applies to function types"
+msgstr "атрибут %qs је примењив само на функцијске типове"
+
+#: bb-reorder.c:1872
+#, gcc-internal-format
+msgid "multiple hot/cold transitions found (bb %i)"
+msgstr "вишеструки хладни/врући прелази нађени (об. %i)"
+
+#: bt-load.c:1504
+#, gcc-internal-format
+msgid "branch target register load optimization is not intended to be run twice"
+msgstr "оптимизацију учитавања циља гранања у регистар не треба покретати двапут"
+
+#: builtins.c:389
+#, gcc-internal-format
+msgid "offset outside bounds of constant string"
+msgstr "померај ван граница константне ниске"
+
+#: builtins.c:989
+#, gcc-internal-format
+msgid "second argument to %<__builtin_prefetch%> must be a constant"
+msgstr "други аргумент за %<__builtin_prefetch%> мора бити константа"
+
+#: builtins.c:996
+#, gcc-internal-format
+msgid "invalid second argument to %<__builtin_prefetch%>; using zero"
+msgstr "неисправан други аргумент за %<__builtin_prefetch%>; користим нулу"
+
+#: builtins.c:1004
+#, gcc-internal-format
+msgid "third argument to %<__builtin_prefetch%> must be a constant"
+msgstr "трећи аргумент за %<__builtin_prefetch%> мора бити константа"
+
+#: builtins.c:1011
+#, gcc-internal-format
+msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
+msgstr "неисправан трећи аргумент за %<__builtin_prefetch%>; користим нулу"
+
+#: builtins.c:4124
+#, gcc-internal-format
+msgid "argument of %<__builtin_args_info%> must be constant"
+msgstr "аргумент за %<__builtin_args_info%> мора бити константа"
+
+#: builtins.c:4130
+#, gcc-internal-format
+msgid "argument of %<__builtin_args_info%> out of range"
+msgstr "аргумент за %<__builtin_args_info%> ван опсега"
+
+#: builtins.c:4136
+#, gcc-internal-format
+msgid "missing argument in %<__builtin_args_info%>"
+msgstr "недостаје аргумент за %<__builtin_args_info%>"
+
+#: builtins.c:4232 gimplify.c:1882
+#, gcc-internal-format
+msgid "too few arguments to function %<va_start%>"
+msgstr "премало аргумената за функцију %<va_start%>"
+
+#: builtins.c:4396
+#, gcc-internal-format
+msgid "first argument to %<va_arg%> not of type %<va_list%>"
+msgstr "први аргумент за %<va_arg%> није типа %<va_list%>"
+
+#. Unfortunately, this is merely undefined, rather than a constraint
+#. violation, so we cannot make this an error. If this call is never
+#. executed, the program is still strictly conforming.
+#: builtins.c:4410
+#, gcc-internal-format
+msgid "%qT is promoted to %qT when passed through %<...%>"
+msgstr "%qT се унапређује у %qT при прослеђивању кроз %<...%>"
+
+#: builtins.c:4415
+#, gcc-internal-format
+msgid "(so you should pass %qT not %qT to %<va_arg%>)"
+msgstr "(стога би требало да проследите %qT уместо %qT за %<va_arg%>)"
+
+#. We can, however, treat "undefined" any way we please.
+#. Call abort to encourage the user to fix the program.
+#: builtins.c:4421 c-typeck.c:2185
+#, gcc-internal-format
+msgid "if this code is reached, the program will abort"
+msgstr "ако се овај кôд досегне, програм ће се прекинути"
+
+#: builtins.c:4540
+#, gcc-internal-format
+msgid "invalid argument to %<__builtin_frame_address%>"
+msgstr "неисправан аргумент за %<__builtin_frame_address%>"
+
+#: builtins.c:4542
+#, gcc-internal-format
+msgid "invalid argument to %<__builtin_return_address%>"
+msgstr "неисправан аргумент за %<__builtin_return_address%>"
+
+#: builtins.c:4555
+#, gcc-internal-format
+msgid "unsupported argument to %<__builtin_frame_address%>"
+msgstr "неподржан аргумент за %<__builtin_frame_address%>"
+
+#: builtins.c:4557
+#, gcc-internal-format
+msgid "unsupported argument to %<__builtin_return_address%>"
+msgstr "неподржан аргумент за %<__builtin_return_address%>"
+
+#: builtins.c:4660
+#, gcc-internal-format
+msgid "second argument to %<__builtin_expect%> must be a constant"
+msgstr "други аргумент за %<__builtin_expect%> мора бити константа"
+
+#: builtins.c:6134
+#, gcc-internal-format
+msgid "%<__builtin_longjmp%> second argument must be 1"
+msgstr "%<__builtin_longjmp%> други аргумент мора бити 1"
+
+#: builtins.c:6698
+#, gcc-internal-format
+msgid "target format does not support infinity"
+msgstr "циљни формат не подржава бесконачност"
+
+#: builtins.c:8540 builtins.c:8634
+#, gcc-internal-format
+msgid "too few arguments to function %qs"
+msgstr "премало аргумената за функцију %qs"
+
+#: builtins.c:8546 builtins.c:8640
+#, gcc-internal-format
+msgid "too many arguments to function %qs"
+msgstr "превише аргумената за функцију %qs"
+
+#: builtins.c:8552 builtins.c:8665
+#, gcc-internal-format
+msgid "non-floating-point argument to function %qs"
+msgstr "аргумент који није у покретном зарезу за функцију %qs"
+
+#: builtins.c:9765
+#, gcc-internal-format
+msgid "%<va_start%> used in function with fixed args"
+msgstr "%<va_start%> употребљено у функцији са фиксним аргументима"
+
+#. Evidently an out of date version of <stdarg.h>; can't validate
+#. va_start's second argument, but can still work as intended.
+#: builtins.c:9772
+#, gcc-internal-format
+msgid "%<__builtin_next_arg%> called without an argument"
+msgstr "%<__builtin_next_arg%> позвано без аргумената"
+
+#: builtins.c:9787
+#, gcc-internal-format
+msgid "%<va_start%> used with too many arguments"
+msgstr "%<va_start%> употребљено са превише аргумената"
+
+#. FIXME: Sometimes with the tree optimizers we can get the
+#. not the last argument even though the user used the last
+#. argument. We just warn and set the arg to be the last
+#. argument so that we will get wrong-code because of
+#. it.
+#: builtins.c:9807
+#, gcc-internal-format
+msgid "second parameter of %<va_start%> not last named argument"
+msgstr "други параметар за %<va_start%> није последњи именовани аргумент"
+
+#: builtins.c:9919
+#, gcc-internal-format
+msgid "%Hfirst argument of %D must be a pointer, second integer constant"
+msgstr "%Hпрви аргумент за %D мора бити показивач, а други целобројна константа"
+
+#: builtins.c:9932
+#, gcc-internal-format
+msgid "%Hlast argument of %D is not integer constant between 0 and 3"
+msgstr "%Hпоследњи аргумент за %D није целобројна константа између 0 и 3"
+
+#: builtins.c:9978 builtins.c:10131 builtins.c:10199
+#, gcc-internal-format
+msgid "%Hcall to %D will always overflow destination buffer"
+msgstr "%Hпозив за %D ће увек прелити одредишни бафер"
+
+#: c-common.c:831
+#, gcc-internal-format
+msgid "%qD is not defined outside of function scope"
+msgstr "%qD није дефинисано изван досега функције"
+
+#: c-common.c:852
+#, gcc-internal-format
+msgid "string length %qd is greater than the length %qd ISO C%d compilers are required to support"
+msgstr "дужина ниске %qd већа је од дужине %qd коју ИСО компилатори Ц%d морају да подрже"
+
+#: c-common.c:893
+#, gcc-internal-format
+msgid "overflow in constant expression"
+msgstr "преливање у константном изразу"
+
+#: c-common.c:913
+#, gcc-internal-format
+msgid "integer overflow in expression"
+msgstr "целобројно преливање у изразу"
+
+#: c-common.c:922
+#, gcc-internal-format
+msgid "floating point overflow in expression"
+msgstr "преливање покретног зареза у изразу"
+
+#: c-common.c:928
+#, gcc-internal-format
+msgid "vector overflow in expression"
+msgstr "векторско преливање у изразу"
+
+#. This detects cases like converting -129 or 256 to unsigned char.
+#: c-common.c:950
+#, gcc-internal-format
+msgid "large integer implicitly truncated to unsigned type"
+msgstr "велики целобројни имплицитно подсечен на неозначени тип"
+
+#: c-common.c:953
+#, gcc-internal-format
+msgid "negative integer implicitly converted to unsigned type"
+msgstr "негативни целобројни имплицитно претворен у неозначени тип"
+
+#: c-common.c:975
+#, gcc-internal-format
+msgid "type-punning to incomplete type might break strict-aliasing rules"
+msgstr "типско преметање у непотпун тип може прекршити правила строге дволичности"
+
+#: c-common.c:983
+#, gcc-internal-format
+msgid "dereferencing type-punned pointer will break strict-aliasing rules"
+msgstr "разрешавање типски преметнутог показивача ће прекршити правила строге дволичности"
+
+#: c-common.c:987
+#, gcc-internal-format
+msgid "dereferencing type-punned pointer might break strict-aliasing rules"
+msgstr "разрешавање типски преметнутог показивача може прекршити правила строге дволичности"
+
+#: c-common.c:1049
+#, gcc-internal-format
+msgid "overflow in implicit constant conversion"
+msgstr "преливање у имплицитном претварању константе"
+
+#: c-common.c:1185
+#, gcc-internal-format
+msgid "operation on %qE may be undefined"
+msgstr "операција над %qE може бити недефинисана"
+
+#: c-common.c:1471
+#, gcc-internal-format
+msgid "case label does not reduce to an integer constant"
+msgstr "етикета случаја се не своди на целобројну константу"
+
+#: c-common.c:1511
+#, gcc-internal-format
+msgid "case label value is less than minimum value for type"
+msgstr "етикета случаја је мања од најмање вредности типа"
+
+#: c-common.c:1519
+#, gcc-internal-format
+msgid "case label value exceeds maximum value for type"
+msgstr "етикета случаја премашује највећу вредност типа"
+
+#: c-common.c:1527
+#, gcc-internal-format
+msgid "lower value in case label range less than minimum value for type"
+msgstr "доња вредност у опсегу етикета случаја мања од најмање вредности типа"
+
+#: c-common.c:1536
+#, gcc-internal-format
+msgid "upper value in case label range exceeds maximum value for type"
+msgstr "горња вредност у опсегу етикета случаја премашује највећу вредност типа"
+
+#: c-common.c:1876
+#, gcc-internal-format
+msgid "invalid truth-value expression"
+msgstr "неисправан израз истинитосне вредности"
+
+#: c-common.c:1924
+#, gcc-internal-format
+msgid "invalid operands to binary %s"
+msgstr "неисправни операнди за бинарно %s"
+
+#: c-common.c:2159
+#, gcc-internal-format
+msgid "comparison is always false due to limited range of data type"
+msgstr "поређење је увек нетачно услед ограниченог опсега типа"
+
+#: c-common.c:2161
+#, gcc-internal-format
+msgid "comparison is always true due to limited range of data type"
+msgstr "поређење је увек тачно услед ограниченог опсега типа"
+
+#: c-common.c:2231
+#, gcc-internal-format
+msgid "comparison of unsigned expression >= 0 is always true"
+msgstr "поређење неозначеног израза >= 0 је увек тачно"
+
+#: c-common.c:2240
+#, gcc-internal-format
+msgid "comparison of unsigned expression < 0 is always false"
+msgstr "поређење неозначеног израза < 0 је увек тачно"
+
+#: c-common.c:2282
+#, gcc-internal-format
+msgid "pointer of type %<void *%> used in arithmetic"
+msgstr "показивач типа %<void *%> употребљен у аритметици"
+
+#: c-common.c:2288
+#, gcc-internal-format
+msgid "pointer to a function used in arithmetic"
+msgstr "показивач на функцију употребљен у аритметици"
+
+#: c-common.c:2294
+#, gcc-internal-format
+msgid "pointer to member function used in arithmetic"
+msgstr "показивач на чланску функцију употребљен у аритметици"
+
+#. Common Ada/Pascal programmer's mistake. We always warn
+#. about this since it is so bad.
+#: c-common.c:2420
+#, gcc-internal-format
+msgid "the address of %qD, will always evaluate as %<true%>"
+msgstr "адреса за %qD ће увек бити израчуната као %<true%>"
+
+#: c-common.c:2517
+#, gcc-internal-format
+msgid "suggest parentheses around assignment used as truth value"
+msgstr "предлажем заграде око израза употребљеног као истинитосна вредност"
+
+#: c-common.c:2585 c-common.c:2625
+#, gcc-internal-format
+msgid "invalid use of %<restrict%>"
+msgstr "неисправна употреба %<restrict%>"
+
+#: c-common.c:2841
+#, gcc-internal-format
+msgid "invalid application of %<sizeof%> to a function type"
+msgstr "неисправна примена %<sizeof%> на функцијски тип"
+
+#: c-common.c:2851
+#, gcc-internal-format
+msgid "invalid application of %qs to a void type"
+msgstr "неисправна примена %qs на празан тип"
+
+#: c-common.c:2857
+#, gcc-internal-format
+msgid "invalid application of %qs to incomplete type %qT "
+msgstr "неисправна примена %qs на непотпун тип %qT"
+
+#: c-common.c:2898
+#, gcc-internal-format
+msgid "%<__alignof%> applied to a bit-field"
+msgstr "%<__alignof%> примењено на битско поље"
+
+#: c-common.c:3444
+#, gcc-internal-format
+msgid "cannot disable built-in function %qs"
+msgstr "не могу да искључим уграђену функцију %qs"
+
+#: c-common.c:3632
+#, gcc-internal-format
+msgid "pointers are not permitted as case values"
+msgstr "показивачи нису дозвољени као вредности случаја"
+
+#: c-common.c:3638
+#, gcc-internal-format
+msgid "range expressions in switch statements are non-standard"
+msgstr "изрази опсега у наредбама прекидача нису стандардни"
+
+#: c-common.c:3664
+#, gcc-internal-format
+msgid "empty range specified"
+msgstr "наведен је празан опсег"
+
+#: c-common.c:3724
+#, gcc-internal-format
+msgid "duplicate (or overlapping) case value"
+msgstr "двострука (или преклапајућа) вредност случаја"
+
+#: c-common.c:3725
+#, gcc-internal-format
+msgid "%Jthis is the first entry overlapping that value"
+msgstr "%Jово је први унос који преклапа ту вредност"
+
+#: c-common.c:3729
+#, gcc-internal-format
+msgid "duplicate case value"
+msgstr "двострука вредност случаја"
+
+#: c-common.c:3730
+#, gcc-internal-format
+msgid "%Jpreviously used here"
+msgstr "%Jпретходно употребљена овде"
+
+#: c-common.c:3734
+#, gcc-internal-format
+msgid "multiple default labels in one switch"
+msgstr "вишеструке етикете подразумеваног у истом прекидачу"
+
+#: c-common.c:3735
+#, gcc-internal-format
+msgid "%Jthis is the first default label"
+msgstr "%Jово је прва етикета подразумеваног"
+
+#: c-common.c:3784
+#, gcc-internal-format
+msgid "%Jcase value %qs not in enumerated type"
+msgstr "%Jвредност случаја %qs није у набројивом типу"
+
+#: c-common.c:3787
+#, gcc-internal-format
+msgid "%Jcase value %qs not in enumerated type %qT"
+msgstr "%Jвредност случаја %qs није у набројивом типу %qT"
+
+#: c-common.c:3844
+#, gcc-internal-format
+msgid "%Hswitch missing default case"
+msgstr "%Hпрекидачу недостаје подразумевани случај"
+
+#. Warn if there are enumerators that don't correspond to
+#. case expressions.
+#: c-common.c:3904
+#, gcc-internal-format
+msgid "%Henumeration value %qE not handled in switch"
+msgstr "%Hнабројива вредност %qE није обрађена у прекидачу"
+
+#: c-common.c:3931
+#, gcc-internal-format
+msgid "taking the address of a label is non-standard"
+msgstr "узимање адресе етикете није стандардно"
+
+#: c-common.c:4095
+#, gcc-internal-format
+msgid "%qE attribute ignored for field of type %qT"
+msgstr "атрибут %qE се игнорише за поље типа %qT"
+
+#: c-common.c:4106 c-common.c:4125 c-common.c:4143 c-common.c:4170
+#: c-common.c:4189 c-common.c:4212 c-common.c:4233 c-common.c:4258
+#: c-common.c:4284 c-common.c:4332 c-common.c:4359 c-common.c:4410
+#: c-common.c:4435 c-common.c:4463 c-common.c:4482 c-common.c:4814
+#: c-common.c:4879 c-common.c:4975 c-common.c:5041 c-common.c:5059
+#: c-common.c:5105 c-common.c:5175 c-common.c:5199 c-common.c:5498
+#: c-common.c:5521 c-common.c:5560
+#, gcc-internal-format
+msgid "%qE attribute ignored"
+msgstr "атрибут %qE се игнорише"
+
+#: c-common.c:4313
+#, gcc-internal-format
+msgid "%qE attribute have effect only on public objects"
+msgstr "атрибут %qE има утицаја само у јавним објектима"
+
+#: c-common.c:4520
+#, gcc-internal-format
+msgid "unknown machine mode %qs"
+msgstr "непознат машински режим %qs"
+
+#: c-common.c:4540
+#, gcc-internal-format
+msgid "specifying vector types with __attribute__ ((mode)) is deprecated"
+msgstr "превазиђено задавање векторских типова помоћу __attribute__ ((режим))"
+
+#: c-common.c:4543
+#, gcc-internal-format
+msgid "use __attribute__ ((vector_size)) instead"
+msgstr "употребите __attribute__ ((величина_вектора)) уместо тога"
+
+#: c-common.c:4552
+#, gcc-internal-format
+msgid "unable to emulate %qs"
+msgstr "не могу да емулирам %qs"
+
+#: c-common.c:4562
+#, gcc-internal-format
+msgid "invalid pointer mode %qs"
+msgstr "неисправан режим показивача %qs"
+
+#: c-common.c:4577
+#, gcc-internal-format
+msgid "no data type for mode %qs"
+msgstr "нема типа података за режим %qs"
+
+#: c-common.c:4587
+#, gcc-internal-format
+msgid "cannot use mode %qs for enumeral types"
+msgstr "не могу да користим режим %qs за бројевне типове"
+
+#: c-common.c:4614
+#, gcc-internal-format
+msgid "mode %qs applied to inappropriate type"
+msgstr "режим %qs примењен на неодговарајући тип"
+
+#: c-common.c:4645
+#, gcc-internal-format
+msgid "%Jsection attribute cannot be specified for local variables"
+msgstr "%Jатрибут одељка се не може навести за локалне променљиве"
+
+#: c-common.c:4656
+#, gcc-internal-format
+msgid "section of %q+D conflicts with previous declaration"
+msgstr "одељак за %q+D коси се са претходном декларацијом"
+
+#: c-common.c:4665
+#, gcc-internal-format
+msgid "section attribute not allowed for %q+D"
+msgstr "атрибут одељка није допуштен за %q+D"
+
+#: c-common.c:4671
+#, gcc-internal-format
+msgid "%Jsection attributes are not supported for this target"
+msgstr "%Jатрибути одељка нису подржани за овај циљ"
+
+#: c-common.c:4703
+#, gcc-internal-format
+msgid "requested alignment is not a constant"
+msgstr "захтевано равнање није константа"
+
+#: c-common.c:4708
+#, gcc-internal-format
+msgid "requested alignment is not a power of 2"
+msgstr "захтевано равнање није степен двојке"
+
+#: c-common.c:4713
+#, gcc-internal-format
+msgid "requested alignment is too large"
+msgstr "захтевано равнање је превелико"
+
+#: c-common.c:4739
+#, gcc-internal-format
+msgid "alignment may not be specified for %q+D"
+msgstr "равнање се не може навести за %q+D"
+
+#: c-common.c:4777
+#, gcc-internal-format
+msgid "%q+D defined both normally and as an alias"
+msgstr "%q+D дефинисано и нормално и као алијас"
+
+#: c-common.c:4793
+#, gcc-internal-format
+msgid "alias argument not a string"
+msgstr "аргумент алијаса није ниска"
+
+#: c-common.c:4844
+#, gcc-internal-format
+msgid "%Jweakref attribute must appear before alias attribute"
+msgstr "%Jатрибут слабог упућивања мора се јавити пре атрибута алијаса"
+
+#: c-common.c:4872
+#, gcc-internal-format
+msgid "%qE attribute ignored on non-class types"
+msgstr "атрибут %qE се игнорише на не-класним типовима"
+
+#: c-common.c:4885
+#, gcc-internal-format
+msgid "visibility argument not a string"
+msgstr "видљивост аргумента није ниска"
+
+#: c-common.c:4897
+#, gcc-internal-format
+msgid "%qE attribute ignored on types"
+msgstr "атрибут %qE се игнорише на типовима"
+
+#: c-common.c:4912
+#, gcc-internal-format
+msgid "visibility argument must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
+msgstr "аргумент видљивости мора бити једно од „default“, „hidden“, „protected“ или „internal“"
+
+#: c-common.c:4983
+#, gcc-internal-format
+msgid "tls_model argument not a string"
+msgstr "аргумент за tls_model није ниска"
+
+#: c-common.c:4996
+#, gcc-internal-format
+msgid "tls_model argument must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
+msgstr "аргумент за tls_model мора бити једно од „local-exec“, „initial-exec“, „local-dynamic“ или „global-dynamic“"
+
+#: c-common.c:5015 c-common.c:5079
+#, gcc-internal-format
+msgid "%J%qE attribute applies only to functions"
+msgstr "%Jатрибут %qE примењује се само на функције"
+
+#: c-common.c:5020 c-common.c:5084
+#, gcc-internal-format
+msgid "%Jcan%'t set %qE attribute after definition"
+msgstr "%Jатрибут %qE не може се поставити после дефиниције"
+
+#: c-common.c:5173
+#, gcc-internal-format
+msgid "%qE attribute ignored for %qE"
+msgstr "атрибут %qE се игнорише за %qE"
+
+#: c-common.c:5228
+#, gcc-internal-format
+msgid "invalid vector type for attribute %qE"
+msgstr "неисправан тип вектора за атрибут %qE"
+
+#: c-common.c:5234
+#, gcc-internal-format
+msgid "vector size not an integral multiple of component size"
+msgstr "величина вектора није целобројни умножак величине компоненте"
+
+#: c-common.c:5240
+#, gcc-internal-format
+msgid "zero vector size"
+msgstr "нулта величина вектора"
+
+#: c-common.c:5248
+#, gcc-internal-format
+msgid "number of components of the vector not a power of two"
+msgstr "број компоненти вектора није степен двојке"
+
+#: c-common.c:5276
+#, gcc-internal-format
+msgid "nonnull attribute without arguments on a non-prototype"
+msgstr "ненулти атрибут без аргумената код непрототипа"
+
+#: c-common.c:5291
+#, gcc-internal-format
+msgid "nonnull argument has invalid operand number (argument %lu)"
+msgstr "ненулти аргумент има неисправан број операнада (аргумент %lu)"
+
+#: c-common.c:5310
+#, gcc-internal-format
+msgid "nonnull argument with out-of-range operand number (argument %lu, operand %lu)"
+msgstr "ненулти аргумент са бројем операнада ван опсега (аргумент %lu, операнд %lu)"
+
+#: c-common.c:5318
+#, gcc-internal-format
+msgid "nonnull argument references non-pointer operand (argument %lu, operand %lu)"
+msgstr "ненулти аргумент упућује на непоказивачки операнд (аргумент %lu, операнд %lu)"
+
+#: c-common.c:5381 c-common.c:5404
+#, gcc-internal-format
+msgid "not enough variable arguments to fit a sentinel"
+msgstr "недовољно променљивих аргумената да би се уклопио стражар"
+
+#: c-common.c:5425
+#, gcc-internal-format
+msgid "missing sentinel in function call"
+msgstr "недостаје стражар у позиву функције"
+
+#: c-common.c:5467
+#, gcc-internal-format
+msgid "null argument where non-null required (argument %lu)"
+msgstr "нулти аргумент где је неопходан ненулти (аргумент %lu)"
+
+#: c-common.c:5532
+#, gcc-internal-format
+msgid "cleanup argument not an identifier"
+msgstr "чистачки аргумент није идентификатор"
+
+#: c-common.c:5539
+#, gcc-internal-format
+msgid "cleanup argument not a function"
+msgstr "чистачки аргумент није функција"
+
+#: c-common.c:5578
+#, gcc-internal-format
+msgid "%qE attribute requires prototypes with named arguments"
+msgstr "атрибут %qE захтева прототипове са именованим аргументима"
+
+#: c-common.c:5589
+#, gcc-internal-format
+msgid "%qE attribute only applies to variadic functions"
+msgstr "атрибут %qE је примењив само на варијадичке функције"
+
+#: c-common.c:5600
+#, gcc-internal-format
+msgid "requested position is not an integer constant"
+msgstr "захтевани положај није целобројна константа"
+
+#: c-common.c:5607
+#, gcc-internal-format
+msgid "requested position is less than zero"
+msgstr "захтевани положај је мањи од нуле"
+
+#: c-common.c:5909
+#, gcc-internal-format
+msgid "%Hignoring return value of %qD, declared with attribute warn_unused_result"
+msgstr "%Hигноришем повратну вредност из %qD декларисану уз атрибут warn_unused_result"
+
+#: c-common.c:5913
+#, gcc-internal-format
+msgid "%Hignoring return value of function declared with attribute warn_unused_result"
+msgstr "%Hигноришем повратну вредност функције декларисану уз атрибут warn_unused_result"
+
+#: c-common.c:5973 cp/typeck.c:4257
+#, gcc-internal-format
+msgid "attempt to take address of bit-field structure member %qD"
+msgstr "покушај узимања адресе битског поља %qD у структури"
+
+#: c-common.c:6020
+#, gcc-internal-format
+msgid "invalid lvalue in assignment"
+msgstr "неисправна л-вредност у додели"
+
+#: c-common.c:6023
+#, gcc-internal-format
+msgid "invalid lvalue in increment"
+msgstr "неисправна л-вредност у увећању"
+
+#: c-common.c:6026
+#, gcc-internal-format
+msgid "invalid lvalue in decrement"
+msgstr "неисправна л-вредност у умањењу"
+
+#: c-common.c:6029
+#, gcc-internal-format
+msgid "invalid lvalue in unary %<&%>"
+msgstr "неисправна л-вредност у унарном %<&%>"
+
+#: c-common.c:6032
+#, gcc-internal-format
+msgid "invalid lvalue in asm statement"
+msgstr "неисправна л-вредност у asm наредби"
+
+#: c-common.c:6160 c-common.c:6209 c-typeck.c:2443
+#, gcc-internal-format
+msgid "too few arguments to function %qE"
+msgstr "премало аргумената за функцију %qE"
+
+#. ??? This should not be an error when inlining calls to
+#. unprototyped functions.
+#: c-common.c:6177 c-typeck.c:4095
+#, gcc-internal-format
+msgid "incompatible type for argument %d of %qE"
+msgstr "несагласни тип за аргумент %d у %qE"
+
+#. Except for passing an argument to an unprototyped function,
+#. this is a constraint violation. When passing an argument to
+#. an unprototyped function, it is compile-time undefined;
+#. making it a constraint in that case was rejected in
+#. DR#252.
+#: c-convert.c:96 c-typeck.c:1596 c-typeck.c:3736 cp/typeck.c:1372
+#: cp/typeck.c:6014 fortran/convert.c:89 treelang/tree-convert.c:79
+#, gcc-internal-format
+msgid "void value not ignored as it ought to be"
+msgstr "празна вредност није игнорисана а требало би"
+
+#: c-convert.c:134 fortran/convert.c:122 java/typeck.c:154
+#: treelang/tree-convert.c:105
+#, gcc-internal-format
+msgid "conversion to non-scalar type requested"
+msgstr "затражено је претварање у нескаларни тип"
+
+#: c-decl.c:564
+#, gcc-internal-format
+msgid "array %q+D assumed to have one element"
+msgstr "претпоставља се да низ %q+D има један елемент"
+
+#: c-decl.c:669
+#, gcc-internal-format
+msgid "GCC supports only %u nested scopes"
+msgstr "ГЦЦ подржава само %u угњеждених досега"
+
+#: c-decl.c:755 cp/decl.c:351 java/decl.c:1700
+#, gcc-internal-format
+msgid "label %q+D used but not defined"
+msgstr "етикета %q+D употребљена али недефинисана"
+
+#: c-decl.c:761 cp/decl.c:362 java/decl.c:1705
+#, gcc-internal-format
+msgid "label %q+D defined but not used"
+msgstr "етикета %q+D дефинисана али неупотребљена"
+
+#: c-decl.c:763
+#, gcc-internal-format
+msgid "label %q+D declared but not defined"
+msgstr "етикета %q+D декларисана али недефинисана"
+
+#: c-decl.c:798
+#, gcc-internal-format
+msgid "nested function %q+D declared but never defined"
+msgstr "угњеждена функција %q+D декларисана али нигде дефинисана"
+
+#: c-decl.c:812 cp/decl.c:556
+#, gcc-internal-format
+msgid "unused variable %q+D"
+msgstr "неупотребљена променљива %q+D"
+
+#: c-decl.c:816
+#, gcc-internal-format
+msgid "type of array %q+D completed incompatibly with implicit initialization"
+msgstr "тип низа %q+D довршен несагласно са имплицитним успостављањем"
+
+#: c-decl.c:1050
+#, gcc-internal-format
+msgid "a parameter list with an ellipsis can%'t match an empty parameter name list declaration"
+msgstr "листа параметара са тротачком не може поклопити декларацију празне листе имена параметара"
+
+#: c-decl.c:1057
+#, gcc-internal-format
+msgid "an argument type that has a default promotion can%'t match an empty parameter name list declaration"
+msgstr "тип аргумента који има подразумевано унапређење не може поклопити декларацију празне листе имена параметара"
+
+#: c-decl.c:1092
+#, gcc-internal-format
+msgid "prototype for %q+D declares more arguments than previous old-style definition"
+msgstr "протитип за %q+D декларише више аргумената од претходне старовремске дефиниције"
+
+#: c-decl.c:1098
+#, gcc-internal-format
+msgid "prototype for %q+D declares fewer arguments than previous old-style definition"
+msgstr "протитип за %q+D декларише мање аргумената од претходне старовремске дефиниције"
+
+#: c-decl.c:1107
+#, gcc-internal-format
+msgid "prototype for %q+D declares argument %d with incompatible type"
+msgstr "протитип за %q+D декларише %d са несагласним типом"
+
+#. If we get here, no errors were found, but do issue a warning
+#. for this poor-style construct.
+#: c-decl.c:1120
+#, gcc-internal-format
+msgid "prototype for %q+D follows non-prototype definition"
+msgstr "протитип за %q+D прати непрототипску дефиницију"
+
+#: c-decl.c:1135
+#, gcc-internal-format
+msgid "previous definition of %q+D was here"
+msgstr "претходна дефиниција %q+D беше овде"
+
+#: c-decl.c:1137
+#, gcc-internal-format
+msgid "previous implicit declaration of %q+D was here"
+msgstr "претходна имплицитна декларација %q+D беше овде"
+
+#: c-decl.c:1139
+#, gcc-internal-format
+msgid "previous declaration of %q+D was here"
+msgstr "претходна декларација %q+D беше овде"
+
+#: c-decl.c:1179
+#, gcc-internal-format
+msgid "%q+D redeclared as different kind of symbol"
+msgstr "%q+D поново декларисано као различита врста симбола"
+
+#: c-decl.c:1183
+#, gcc-internal-format
+msgid "built-in function %q+D declared as non-function"
+msgstr "уграђена функција %q+D декларисана као нефункција"
+
+#: c-decl.c:1186 c-decl.c:1302 c-decl.c:1926
+#, gcc-internal-format
+msgid "declaration of %q+D shadows a built-in function"
+msgstr "декларација %q+D заклања уграђену функцију"
+
+#: c-decl.c:1195
+#, gcc-internal-format
+msgid "redeclaration of enumerator %q+D"
+msgstr "поновљена декларација набрајача %q+D"
+
+#. If types don't match for a built-in, throw away the
+#. built-in. No point in calling locate_old_decl here, it
+#. won't print anything.
+#: c-decl.c:1216
+#, gcc-internal-format
+msgid "conflicting types for built-in function %q+D"
+msgstr "сукобљени типови за уграђену функцију %q+D"
+
+#: c-decl.c:1240 c-decl.c:1253 c-decl.c:1263
+#, gcc-internal-format
+msgid "conflicting types for %q+D"
+msgstr "сукобљени типови за %q+D"
+
+#: c-decl.c:1261
+#, gcc-internal-format
+msgid "conflicting type qualifiers for %q+D"
+msgstr "сукобљене одредбе типа за %q+D"
+
+#. Allow OLDDECL to continue in use.
+#: c-decl.c:1278
+#, gcc-internal-format
+msgid "redefinition of typedef %q+D"
+msgstr "поновљена дефиниција типа %q+D"
+
+#: c-decl.c:1326 c-decl.c:1404
+#, gcc-internal-format
+msgid "redefinition of %q+D"
+msgstr "поновљена дефиниција %q+D"
+
+#: c-decl.c:1361 c-decl.c:1442
+#, gcc-internal-format
+msgid "static declaration of %q+D follows non-static declaration"
+msgstr "статичка декларација %q+D прати нестатичку декларацију"
+
+#: c-decl.c:1371 c-decl.c:1378 c-decl.c:1431 c-decl.c:1439
+#, gcc-internal-format
+msgid "non-static declaration of %q+D follows static declaration"
+msgstr "нестатичка декларација %q+D прати статичку декларацију"
+
+#: c-decl.c:1391
+#, gcc-internal-format
+msgid "thread-local declaration of %q+D follows non-thread-local declaration"
+msgstr "нитно-локална декларација %q+D прати не-нитно-локалну декларацију"
+
+#: c-decl.c:1394
+#, gcc-internal-format
+msgid "non-thread-local declaration of %q+D follows thread-local declaration"
+msgstr "не-нитно-локална декларација %q+D прати нитно-локалну декларацију"
+
+#: c-decl.c:1424
+#, gcc-internal-format
+msgid "extern declaration of %q+D follows declaration with no linkage"
+msgstr "декларација спољашњег %q+D прати декларацију без повезивости"
+
+#: c-decl.c:1460
+#, gcc-internal-format
+msgid "declaration of %q+D with no linkage follows extern declaration"
+msgstr "декларација %q+D без повезивости прати декларацију спољашњег"
+
+#: c-decl.c:1466
+#, gcc-internal-format
+msgid "redeclaration of %q+D with no linkage"
+msgstr "поновљена декларација %q+D без повезивости"
+
+#: c-decl.c:1480
+#, gcc-internal-format
+msgid "redeclaration of %q+D with different visibility (old visibility preserved)"
+msgstr "поновљена декларација %q+D са различитом видљивошћу (чува се стара видљивост)"
+
+#: c-decl.c:1491
+#, gcc-internal-format
+msgid "inline declaration of %qD follows declaration with attribute noinline"
+msgstr "уткана декларација %q+D прати декларацију без атрибута noinline"
+
+#: c-decl.c:1498
+#, gcc-internal-format
+msgid "declaration of %q+D with attribute noinline follows inline declaration "
+msgstr "декларација %q+D са атрибутом noinline прати уткану декларацију "
+
+#: c-decl.c:1513
+#, gcc-internal-format
+msgid "%q+D declared inline after being called"
+msgstr "%q+D декларисано уткано пошто је већ позвано"
+
+#: c-decl.c:1518
+#, gcc-internal-format
+msgid "%q+D declared inline after its definition"
+msgstr "%q+D декларисано уткано после своје дефиниције"
+
+#: c-decl.c:1537
+#, gcc-internal-format
+msgid "redefinition of parameter %q+D"
+msgstr "поновљена дефиниција параметра %q+D"
+
+#: c-decl.c:1564
+#, gcc-internal-format
+msgid "redundant redeclaration of %q+D"
+msgstr "сувишна поновљена декларација %q+D"
+
+#: c-decl.c:1913
+#, gcc-internal-format
+msgid "declaration of %q+D shadows previous non-variable"
+msgstr "декларација %q+D заклања претходну не-променљиву"
+
+#: c-decl.c:1918
+#, gcc-internal-format
+msgid "declaration of %q+D shadows a parameter"
+msgstr "декларација %q+D заклања параметар"
+
+#: c-decl.c:1921
+#, gcc-internal-format
+msgid "declaration of %q+D shadows a global declaration"
+msgstr "декларација %q+D заклања глобалну декларацију"
+
+#: c-decl.c:1931
+#, gcc-internal-format
+msgid "declaration of %q+D shadows a previous local"
+msgstr "декларација %q+D заклања претходну локалну"
+
+#: c-decl.c:1934 cp/name-lookup.c:954 cp/name-lookup.c:985
+#: cp/name-lookup.c:993
+#, gcc-internal-format
+msgid "%Jshadowed declaration is here"
+msgstr "%Jзаклоњена декларација је овде"
+
+#: c-decl.c:2134
+#, gcc-internal-format
+msgid "nested extern declaration of %qD"
+msgstr "угњеждена декларација %qD"
+
+#: c-decl.c:2303
+#, gcc-internal-format
+msgid "implicit declaration of function %qE"
+msgstr "имплицитна декларација функције %qE"
+
+#: c-decl.c:2364
+#, gcc-internal-format
+msgid "incompatible implicit declaration of built-in function %qD"
+msgstr "несагласна имплицитна декларација уграђене функције %qD"
+
+#: c-decl.c:2373
+#, gcc-internal-format
+msgid "incompatible implicit declaration of function %qD"
+msgstr "несагласна имплицитна декларација функције %qD"
+
+#: c-decl.c:2426
+#, gcc-internal-format
+msgid "%H%qE undeclared here (not in a function)"
+msgstr "%H%qE недекларисано овде (не у функцији)"
+
+#: c-decl.c:2431
+#, gcc-internal-format
+msgid "%H%qE undeclared (first use in this function)"
+msgstr "%H%qE недекларисано (прва употреба у овој функцији)"
+
+#: c-decl.c:2435
+#, gcc-internal-format
+msgid "%H(Each undeclared identifier is reported only once"
+msgstr "%H(Сваки недекларисани идентификатор пријављен је само једном"
+
+#: c-decl.c:2436
+#, gcc-internal-format
+msgid "%Hfor each function it appears in.)"
+msgstr "%Hза сваку функцију у којој се јавља.)"
+
+#: c-decl.c:2474 cp/decl.c:2131
+#, gcc-internal-format
+msgid "label %qE referenced outside of any function"
+msgstr "на етикету %qE упућено ван било које функције"
+
+#: c-decl.c:2516
+#, gcc-internal-format
+msgid "duplicate label declaration %qE"
+msgstr "двострука декларација етикете %qE"
+
+#: c-decl.c:2552
+#, gcc-internal-format
+msgid "%Hduplicate label %qD"
+msgstr "%Hдвострука етикета %qD"
+
+#: c-decl.c:2562
+#, gcc-internal-format
+msgid "%Jjump into statement expression"
+msgstr "%Jскок у наредбени израз"
+
+#: c-decl.c:2564
+#, gcc-internal-format
+msgid "%Jjump into scope of identifier with variably modified type"
+msgstr "%Jскок у досег идентификатора са променљиво измењивим типом"
+
+#: c-decl.c:2579
+#, gcc-internal-format
+msgid "%Htraditional C lacks a separate namespace for labels, identifier %qE conflicts"
+msgstr "%Hтрадиционалном Ц-у недостаје одвојени именски простор за етикете, те је идентификатор %qE у сукобу"
+
+#: c-decl.c:2654
+#, gcc-internal-format
+msgid "%H%qE defined as wrong kind of tag"
+msgstr "%H%qE дефинисан као погрешна врста ознаке"
+
+#: c-decl.c:2869
+#, gcc-internal-format
+msgid "unnamed struct/union that defines no instances"
+msgstr "неименована структура/унија која не дефинише ниједан примерак"
+
+#: c-decl.c:2877
+#, gcc-internal-format
+msgid "empty declaration with storage class specifier does not redeclare tag"
+msgstr "празна декларација са наводиоцем складишне класе која не редекларише ознаку"
+
+#: c-decl.c:2888
+#, gcc-internal-format
+msgid "empty declaration with type qualifier does not redeclare tag"
+msgstr "празна декларација са одредом типа која не редекларише ознаку"
+
+#: c-decl.c:2909 c-decl.c:2916
+#, gcc-internal-format
+msgid "useless type name in empty declaration"
+msgstr "бескорисно име типа у празној декларацији"
+
+#: c-decl.c:2924
+#, gcc-internal-format
+msgid "%<inline%> in empty declaration"
+msgstr "%<inline%> у празној декларацији"
+
+#: c-decl.c:2930
+#, gcc-internal-format
+msgid "%<auto%> in file-scope empty declaration"
+msgstr "%<auto%> у празној декларацији у досегу датотеке"
+
+#: c-decl.c:2936
+#, gcc-internal-format
+msgid "%<register%> in file-scope empty declaration"
+msgstr "%<register%> у празној декларацији у досегу датотеке"
+
+#: c-decl.c:2942
+#, gcc-internal-format
+msgid "useless storage class specifier in empty declaration"
+msgstr "бескорисан наводилац складишне класе у празној декларацији"
+
+#: c-decl.c:2948
+#, gcc-internal-format
+msgid "useless %<__thread%> in empty declaration"
+msgstr "бескорисно %<__thread%> у празној декларацији"
+
+#: c-decl.c:2956
+#, gcc-internal-format
+msgid "useless type qualifier in empty declaration"
+msgstr "бескорисна одредба типа у празној декларацији"
+
+#: c-decl.c:2963 c-parser.c:1157
+#, gcc-internal-format
+msgid "empty declaration"
+msgstr "празна декларација"
+
+#: c-decl.c:3029
+#, gcc-internal-format
+msgid "ISO C90 does not support %<static%> or type qualifiers in parameter array declarators"
+msgstr "ИСО Ц 90 не подржава %<static%> или одредбе типа у параметарским деклараторима низова"
+
+#: c-decl.c:3032
+#, gcc-internal-format
+msgid "ISO C90 does not support %<[*]%> array declarators"
+msgstr "ИСО Ц 90 не подржава деклараторе низова %<[*]%>"
+
+#: c-decl.c:3035
+#, gcc-internal-format
+msgid "GCC does not yet properly implement %<[*]%> array declarators"
+msgstr "ГЦЦ још увек не имплементира исправно деклараторе низова %<[*]%>"
+
+#: c-decl.c:3054
+#, gcc-internal-format
+msgid "static or type qualifiers in abstract declarator"
+msgstr "статичка или одредбе типова у апстрактном декларатору"
+
+#: c-decl.c:3142
+#, gcc-internal-format
+msgid "%q+D is usually a function"
+msgstr "%q+D је обично функција"
+
+#: c-decl.c:3151 cp/decl.c:3700 cp/decl2.c:825
+#, gcc-internal-format
+msgid "typedef %qD is initialized (use __typeof__ instead)"
+msgstr "дефиниција типа %qD је успостављена (употребите __typeof__)"
+
+#: c-decl.c:3156
+#, gcc-internal-format
+msgid "function %qD is initialized like a variable"
+msgstr "функција %qD је успостављена као променљива"
+
+#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
+#: c-decl.c:3162
+#, gcc-internal-format
+msgid "parameter %qD is initialized"
+msgstr "параметар %qD је успостављен"
+
+#: c-decl.c:3187
+#, gcc-internal-format
+msgid "variable %qD has initializer but incomplete type"
+msgstr "променљива %qD има успостављач али је непотпуног типа"
+
+#: c-decl.c:3263 c-decl.c:5885 cp/decl.c:3739 cp/decl.c:10141
+#, gcc-internal-format
+msgid "inline function %q+D given attribute noinline"
+msgstr "утканој функцији %q+D дат је атрибут noinline"
+
+#: c-decl.c:3335
+#, gcc-internal-format
+msgid "initializer fails to determine size of %q+D"
+msgstr "успостављач не одређује величину за %q+D"
+
+#: c-decl.c:3340
+#, gcc-internal-format
+msgid "array size missing in %q+D"
+msgstr "недостаје величина низа у %q+D"
+
+#: c-decl.c:3352
+#, gcc-internal-format
+msgid "zero or negative size array %q+D"
+msgstr "нулта или негативна величина низа %q+D"
+
+#: c-decl.c:3407 varasm.c:1646
+#, gcc-internal-format
+msgid "storage size of %q+D isn%'t known"
+msgstr "величина складишта за %q+D није позната"
+
+#: c-decl.c:3417
+#, gcc-internal-format
+msgid "storage size of %q+D isn%'t constant"
+msgstr "величина складишта за %q+D није константна"
+
+#: c-decl.c:3464
+#, gcc-internal-format
+msgid "ignoring asm-specifier for non-static local variable %q+D"
+msgstr "игноришем наводилац asm за нестатичку локалну променљиву %q+D"
+
+#: c-decl.c:3492 fortran/f95-lang.c:670
+#, gcc-internal-format
+msgid "cannot put object with volatile field into register"
+msgstr "не могу да ставим објекат са непостојаним пољем у регистар"
+
+#: c-decl.c:3627
+#, gcc-internal-format
+msgid "ISO C forbids forward parameter declarations"
+msgstr "ИСО Ц забрањује унапредне декларације параметара"
+
+#: c-decl.c:3746
+#, gcc-internal-format
+msgid "bit-field %qs width not an integer constant"
+msgstr "ширина битског поља %qs није целобројна константа"
+
+#: c-decl.c:3754
+#, gcc-internal-format
+msgid "negative width in bit-field %qs"
+msgstr "негативна ширина у битском пољу %qs"
+
+#: c-decl.c:3759
+#, gcc-internal-format
+msgid "zero width for bit-field %qs"
+msgstr "нулта ширина за битско поље %qs"
+
+#: c-decl.c:3769
+#, gcc-internal-format
+msgid "bit-field %qs has invalid type"
+msgstr "битско поље %qs има неисправан тип"
+
+#: c-decl.c:3779
+#, gcc-internal-format
+msgid "type of bit-field %qs is a GCC extension"
+msgstr "тип битског поља %qs је проширење ГЦЦа"
+
+#: c-decl.c:3788
+#, gcc-internal-format
+msgid "width of %qs exceeds its type"
+msgstr "ширина %qs премашује свој тип"
+
+#: c-decl.c:3801
+#, gcc-internal-format
+msgid "%qs is narrower than values of its type"
+msgstr "%qs је уже од вредности свог типа"
+
+#: c-decl.c:3950
+#, gcc-internal-format
+msgid "type defaults to %<int%> in declaration of %qs"
+msgstr "тип спада на %<int%> у декларацији %qs"
+
+#: c-decl.c:3978
+#, gcc-internal-format
+msgid "duplicate %<const%>"
+msgstr "удвостручено %<const%>"
+
+#: c-decl.c:3980
+#, gcc-internal-format
+msgid "duplicate %<restrict%>"
+msgstr "удвостручено %<restrict%>"
+
+#: c-decl.c:3982
+#, gcc-internal-format
+msgid "duplicate %<volatile%>"
+msgstr "удвостручено %<volatile%>"
+
+#: c-decl.c:4001
+#, gcc-internal-format
+msgid "function definition declared %<auto%>"
+msgstr "дефиниција функције декларисана као %<auto%>"
+
+#: c-decl.c:4003
+#, gcc-internal-format
+msgid "function definition declared %<register%>"
+msgstr "дефиниција функције декларисана као %<register%>"
+
+#: c-decl.c:4005
+#, gcc-internal-format
+msgid "function definition declared %<typedef%>"
+msgstr "дефиниција функције декларисана као %<typedef%>"
+
+#: c-decl.c:4007
+#, gcc-internal-format
+msgid "function definition declared %<__thread%>"
+msgstr "дефиниција функције декларисана као %<__thread%>"
+
+#: c-decl.c:4023
+#, gcc-internal-format
+msgid "storage class specified for structure field %qs"
+msgstr "складишна класа наведена за поље структуре %qs"
+
+#: c-decl.c:4027 cp/decl.c:7187
+#, gcc-internal-format
+msgid "storage class specified for parameter %qs"
+msgstr "складишна класа наведена за параметар %qs"
+
+#: c-decl.c:4030 cp/decl.c:7189
+#, gcc-internal-format
+msgid "storage class specified for typename"
+msgstr "складишна класа наведена за име типа"
+
+#: c-decl.c:4043 cp/decl.c:7206
+#, gcc-internal-format
+msgid "%qs initialized and declared %<extern%>"
+msgstr "%qs успостављено и декларисано као %<extern%>"
+
+#: c-decl.c:4045 cp/decl.c:7209
+#, gcc-internal-format
+msgid "%qs has both %<extern%> and initializer"
+msgstr "%qs има и %<extern%> и успостављач"
+
+#: c-decl.c:4050
+#, gcc-internal-format
+msgid "file-scope declaration of %qs specifies %<auto%>"
+msgstr "декларација датотечног досега за %qs наводи %<auto%>"
+
+#: c-decl.c:4052
+#, gcc-internal-format
+msgid "file-scope declaration of %qs specifies %<register%>"
+msgstr "декларација датотечног досега за %qs наводи %<register%>"
+
+#: c-decl.c:4057 cp/decl.c:7213
+#, gcc-internal-format
+msgid "nested function %qs declared %<extern%>"
+msgstr "угњеждена функција %qs декларисана као %<extern%>"
+
+#: c-decl.c:4060 cp/decl.c:7223
+#, gcc-internal-format
+msgid "function-scope %qs implicitly auto and declared %<__thread%>"
+msgstr "%qs досега функције имплицитно аутоматска и декларасина као %<__thread%>"
+
+#. Only the innermost declarator (making a parameter be of
+#. array type which is converted to pointer type)
+#. may have static or type qualifiers.
+#: c-decl.c:4107 c-decl.c:4301
+#, gcc-internal-format
+msgid "static or type qualifiers in non-parameter array declarator"
+msgstr "статичка или одредба типа у непараметарском декларатору низа"
+
+#: c-decl.c:4153
+#, gcc-internal-format
+msgid "declaration of %qs as array of voids"
+msgstr "декларација %qs као низа празних"
+
+#: c-decl.c:4159
+#, gcc-internal-format
+msgid "declaration of %qs as array of functions"
+msgstr "декларација %qs као низа функција"
+
+#: c-decl.c:4164
+#, gcc-internal-format
+msgid "invalid use of structure with flexible array member"
+msgstr "неисправна употреба структуре са флексибилним чланским низом"
+
+#: c-decl.c:4184
+#, gcc-internal-format
+msgid "size of array %qs has non-integer type"
+msgstr "величина низа %qs има нецелобројни тип"
+
+#: c-decl.c:4189
+#, gcc-internal-format
+msgid "ISO C forbids zero-size array %qs"
+msgstr "ИСО Ц забрањује нулту величину низа %qs"
+
+#: c-decl.c:4196
+#, gcc-internal-format
+msgid "size of array %qs is negative"
+msgstr "величина низа %qs је негативна"
+
+#: c-decl.c:4210
+#, gcc-internal-format
+msgid "ISO C90 forbids array %qs whose size can%'t be evaluated"
+msgstr "ИСО Ц 90 забрањује низ %qs чија се величина не може израчунати"
+
+#: c-decl.c:4214
+#, gcc-internal-format
+msgid "ISO C90 forbids variable-size array %qs"
+msgstr "ИСО Ц 90 забрањује низ променљиве величине %qs"
+
+#: c-decl.c:4254 c-decl.c:4423 cp/decl.c:7646
+#, gcc-internal-format
+msgid "size of array %qs is too large"
+msgstr "величина низа %qs је превелика"
+
+#: c-decl.c:4265
+#, gcc-internal-format
+msgid "ISO C90 does not support flexible array members"
+msgstr "ИСО Ц 90 не подржава флексибилне чланске низове"
+
+#: c-decl.c:4275
+#, gcc-internal-format
+msgid "array type has incomplete element type"
+msgstr "низовни тип има непотпун тип елемента"
+
+#: c-decl.c:4333 cp/decl.c:7307
+#, gcc-internal-format
+msgid "%qs declared as function returning a function"
+msgstr "%qs декларисано као функција која враћа функцију"
+
+#: c-decl.c:4338 cp/decl.c:7312
+#, gcc-internal-format
+msgid "%qs declared as function returning an array"
+msgstr "%qs декларисано као функција која враћа низ"
+
+#: c-decl.c:4358
+#, gcc-internal-format
+msgid "function definition has qualified void return type"
+msgstr "дефиниција функције има одређен празан повратни тип"
+
+#: c-decl.c:4361
+#, gcc-internal-format
+msgid "type qualifiers ignored on function return type"
+msgstr "одредбе типова се игноришу на повратном типу функције"
+
+#: c-decl.c:4390 c-decl.c:4436 c-decl.c:4531 c-decl.c:4621
+#, gcc-internal-format
+msgid "ISO C forbids qualified function types"
+msgstr "ИСО Ц забрањује одређене функцијске типове"
+
+#: c-decl.c:4444
+#, gcc-internal-format
+msgid "typedef %q+D declared %<inline%>"
+msgstr "дефиниција типа %q+D декларисана као %<inline%>"
+
+#: c-decl.c:4474
+#, gcc-internal-format
+msgid "ISO C forbids const or volatile function types"
+msgstr "ИСО Ц забрањује константне или непостојане функцијске типове"
+
+#: c-decl.c:4494
+#, gcc-internal-format
+msgid "variable or field %qs declared void"
+msgstr "променљива или поље %qs декларисано као празно"
+
+#: c-decl.c:4524
+#, gcc-internal-format
+msgid "attributes in parameter array declarator ignored"
+msgstr "атрибути у параметарском декларатору низа игнорисани"
+
+#: c-decl.c:4558
+#, gcc-internal-format
+msgid "parameter %q+D declared %<inline%>"
+msgstr "параметар %q+D декларисан као %<inline%>"
+
+#: c-decl.c:4571
+#, gcc-internal-format
+msgid "field %qs declared as a function"
+msgstr "поље %qs декларисано као функција"
+
+#: c-decl.c:4577
+#, gcc-internal-format
+msgid "field %qs has incomplete type"
+msgstr "поље %qs има непотпун тип"
+
+#: c-decl.c:4591 c-decl.c:4603 c-decl.c:4607
+#, gcc-internal-format
+msgid "invalid storage class for function %qs"
+msgstr "неисправна складишна класа за функцију %qs"
+
+#: c-decl.c:4627
+#, gcc-internal-format
+msgid "%<noreturn%> function returns non-void value"
+msgstr "функција са %<noreturn%> враћа непразну вредност"
+
+#: c-decl.c:4655
+#, gcc-internal-format
+msgid "cannot inline function %<main%>"
+msgstr "функција %<main%> се не може уткати"
+
+#: c-decl.c:4702
+#, gcc-internal-format
+msgid "variable previously declared %<static%> redeclared %<extern%>"
+msgstr "променљива претходно декларисана као %<static%> поново декларисана као %<extern%>"
+
+#: c-decl.c:4712
+#, gcc-internal-format
+msgid "variable %q+D declared %<inline%>"
+msgstr "променљива %q+D декларисана као %<inline%>"
+
+#. A mere warning is sure to result in improper semantics
+#. at runtime. Don't bother to allow this to compile.
+#. A mere warning is sure to result in improper
+#. semantics at runtime. Don't bother to allow this to
+#. compile.
+#: c-decl.c:4742 cp/decl.c:6115 cp/decl.c:8236
+#, gcc-internal-format
+msgid "thread-local storage not supported for this target"
+msgstr "нитно-локално складиштење није подржано за овај циљ"
+
+#: c-decl.c:4807 c-decl.c:5964
+#, gcc-internal-format
+msgid "function declaration isn%'t a prototype"
+msgstr "декларација функције није прототип"
+
+#: c-decl.c:4815
+#, gcc-internal-format
+msgid "parameter names (without types) in function declaration"
+msgstr "имена параметара (без типова) у декларацији функције"
+
+#: c-decl.c:4848
+#, gcc-internal-format
+msgid "parameter %u (%q+D) has incomplete type"
+msgstr "параметар %u (%q+D) има непотпун тип"
+
+#: c-decl.c:4851
+#, gcc-internal-format
+msgid "%Jparameter %u has incomplete type"
+msgstr "%Jпараметар %u има непотпун тип"
+
+#: c-decl.c:4860
+#, gcc-internal-format
+msgid "parameter %u (%q+D) has void type"
+msgstr "параметар %u (%q+D) има празан тип"
+
+#: c-decl.c:4863
+#, gcc-internal-format
+msgid "%Jparameter %u has void type"
+msgstr "%Jпараметар %u има празан тип"
+
+#: c-decl.c:4923
+#, gcc-internal-format
+msgid "%<void%> as only parameter may not be qualified"
+msgstr "%<void%> као једини параметар не може бити одређен"
+
+#: c-decl.c:4927 c-decl.c:4961
+#, gcc-internal-format
+msgid "%<void%> must be the only parameter"
+msgstr "%<void%> мора бити једини параметар"
+
+#: c-decl.c:4955
+#, gcc-internal-format
+msgid "parameter %q+D has just a forward declaration"
+msgstr "параметар %q+D има само унапредну декларацију"
+
+#. The %s will be one of 'struct', 'union', or 'enum'.
+#: c-decl.c:5000
+#, gcc-internal-format
+msgid "%<%s %E%> declared inside parameter list"
+msgstr "%<%s %E%> декларисано унутар параметарске листе"
+
+#. The %s will be one of 'struct', 'union', or 'enum'.
+#: c-decl.c:5004
+#, gcc-internal-format
+msgid "anonymous %s declared inside parameter list"
+msgstr "анонимно %s декларисано унутар листе"
+
+#: c-decl.c:5009
+#, gcc-internal-format
+msgid "its scope is only this definition or declaration, which is probably not what you want"
+msgstr "има досег само у овој дефиницији или декларацији, што вероватно није оно што желите"
+
+#: c-decl.c:5142
+#, gcc-internal-format
+msgid "redefinition of %<union %E%>"
+msgstr "поновна дефиниција %<union %E%>"
+
+#: c-decl.c:5144
+#, gcc-internal-format
+msgid "redefinition of %<struct %E%>"
+msgstr "поновна дефиниција %<struct %E%>"
+
+#: c-decl.c:5149
+#, gcc-internal-format
+msgid "nested redefinition of %<union %E%>"
+msgstr "угњеждена поновна дефиниција %<union %E%>"
+
+#: c-decl.c:5151
+#, gcc-internal-format
+msgid "nested redefinition of %<struct %E%>"
+msgstr "угњеждена поновна дефиниција %<struct %E%>"
+
+#: c-decl.c:5222 cp/decl.c:3500
+#, gcc-internal-format
+msgid "declaration does not declare anything"
+msgstr "декларација ништа не декларише"
+
+#: c-decl.c:5226
+#, gcc-internal-format
+msgid "ISO C doesn%'t support unnamed structs/unions"
+msgstr "ИСО Ц не подржава неименоване струкутре/уније"
+
+#: c-decl.c:5269 c-decl.c:5285
+#, gcc-internal-format
+msgid "duplicate member %q+D"
+msgstr "удвостручени члан %q+D"
+
+#: c-decl.c:5324
+#, gcc-internal-format
+msgid "union has no named members"
+msgstr "унија нема именованих чланова"
+
+#: c-decl.c:5326
+#, gcc-internal-format
+msgid "union has no members"
+msgstr "унија нема чланова"
+
+#: c-decl.c:5331
+#, gcc-internal-format
+msgid "struct has no named members"
+msgstr "структура нема именованих чланова"
+
+#: c-decl.c:5333
+#, gcc-internal-format
+msgid "struct has no members"
+msgstr "структура нема чланова"
+
+#: c-decl.c:5392
+#, gcc-internal-format
+msgid "%Jflexible array member in union"
+msgstr "%Jфлексибилан члански низ у унији"
+
+#: c-decl.c:5397
+#, gcc-internal-format
+msgid "%Jflexible array member not at end of struct"
+msgstr "%Jфлексибилан члански низ није на крају структуре"
+
+#: c-decl.c:5402
+#, gcc-internal-format
+msgid "%Jflexible array member in otherwise empty struct"
+msgstr "%Jфлексибилан члански низ у иначе празној структури"
+
+#: c-decl.c:5409
+#, gcc-internal-format
+msgid "%Jinvalid use of structure with flexible array member"
+msgstr "%Jнеисправна употреба структуре са флексибилним чланским низом"
+
+#: c-decl.c:5520
+#, gcc-internal-format
+msgid "union cannot be made transparent"
+msgstr "унија не може бити учињена провидном"
+
+#: c-decl.c:5591
+#, gcc-internal-format
+msgid "nested redefinition of %<enum %E%>"
+msgstr "угњеждена поновна дефиниција %<enum %E%>"
+
+#. This enum is a named one that has been declared already.
+#: c-decl.c:5598
+#, gcc-internal-format
+msgid "redeclaration of %<enum %E%>"
+msgstr "поновљена декларација %<enum %E%>"
+
+#: c-decl.c:5661
+#, gcc-internal-format
+msgid "enumeration values exceed range of largest integer"
+msgstr "вредности у набрајању премашују опсег највећег целог броја"
+
+#: c-decl.c:5678
+#, gcc-internal-format
+msgid "specified mode too small for enumeral values"
+msgstr "наведени режим је премали за набројиве вредности"
+
+#: c-decl.c:5774
+#, gcc-internal-format
+msgid "enumerator value for %qE is not an integer constant"
+msgstr "вредност набрајача за %qE није целобројна константа"
+
+#: c-decl.c:5791
+#, gcc-internal-format
+msgid "overflow in enumeration values"
+msgstr "преливање у вредностима набрајача"
+
+#: c-decl.c:5796
+#, gcc-internal-format
+msgid "ISO C restricts enumerator values to range of %<int%>"
+msgstr "ИСО Ц ограничава вредности набрајача на опсег %<int%>"
+
+#: c-decl.c:5892
+#, gcc-internal-format
+msgid "return type is an incomplete type"
+msgstr "повратни тип је непотпун тип"
+
+#: c-decl.c:5900
+#, gcc-internal-format
+msgid "return type defaults to %<int%>"
+msgstr "повратни тип спада на %<int%>"
+
+#: c-decl.c:5971
+#, gcc-internal-format
+msgid "no previous prototype for %q+D"
+msgstr "нема претходног прототипа за %q+D"
+
+#: c-decl.c:5980
+#, gcc-internal-format
+msgid "%q+D was used with no prototype before its definition"
+msgstr "%q+D је употребљено без прототипа пре дефиниције"
+
+#: c-decl.c:5986
+#, gcc-internal-format
+msgid "no previous declaration for %q+D"
+msgstr "нема претходне декларације за %q+D"
+
+#: c-decl.c:5996
+#, gcc-internal-format
+msgid "%q+D was used with no declaration before its definition"
+msgstr "%q+D је употребљено без декларације пре дефиниције"
+
+#: c-decl.c:6028 c-decl.c:6545
+#, gcc-internal-format
+msgid "return type of %q+D is not %<int%>"
+msgstr "повратни тип за %q+D није %<int%>"
+
+#: c-decl.c:6043
+#, gcc-internal-format
+msgid "first argument of %q+D should be %<int%>"
+msgstr "први аргумент за %q+D треба да је %<int%>"
+
+#: c-decl.c:6051
+#, gcc-internal-format
+msgid "second argument of %q+D should be %<char **%>"
+msgstr "други аргумент за %q+D треба да је %<char **%>"
+
+#: c-decl.c:6060
+#, gcc-internal-format
+msgid "third argument of %q+D should probably be %<char **%>"
+msgstr "трећи аргумент за %q+D вероватно треба да је %<char **%>"
+
+#: c-decl.c:6070
+#, gcc-internal-format
+msgid "%q+D takes only zero or two arguments"
+msgstr "%q+D прима или ниједан или два аргумента"
+
+#: c-decl.c:6073
+#, gcc-internal-format
+msgid "%q+D is normally a non-static function"
+msgstr "%q+D је обично нестатичка функција"
+
+#: c-decl.c:6119
+#, gcc-internal-format
+msgid "%Jold-style parameter declarations in prototyped function definition"
+msgstr "%Jстаровремска декларација параметара у дефиницији функције са прототипом"
+
+#: c-decl.c:6133
+#, gcc-internal-format
+msgid "%Jtraditional C rejects ISO C style function definitions"
+msgstr "%Jтрадиционални Ц одбија дефиниције функција у стилу ИСО Ц-а"
+
+#: c-decl.c:6149
+#, gcc-internal-format
+msgid "%Jparameter name omitted"
+msgstr "%Jизостављено име параметра"
+
+#: c-decl.c:6183
+#, gcc-internal-format
+msgid "%Jold-style function definition"
+msgstr "%Jстаровремска дефиниција функције"
+
+#: c-decl.c:6192
+#, gcc-internal-format
+msgid "%Jparameter name missing from parameter list"
+msgstr "%Jнедостаје име параметра у листи параметара"
+
+#: c-decl.c:6203
+#, gcc-internal-format
+msgid "%q+D declared as a non-parameter"
+msgstr "%q+D декларисано као не-параметарско"
+
+#: c-decl.c:6208
+#, gcc-internal-format
+msgid "multiple parameters named %q+D"
+msgstr "више параметара по имену %q+D"
+
+#: c-decl.c:6216
+#, gcc-internal-format
+msgid "parameter %q+D declared with void type"
+msgstr "параметар %q+D декларисан са празним типом"
+
+#: c-decl.c:6233 c-decl.c:6235
+#, gcc-internal-format
+msgid "type of %q+D defaults to %<int%>"
+msgstr "тип за %q+D спада на %<int%>"
+
+#: c-decl.c:6254
+#, gcc-internal-format
+msgid "parameter %q+D has incomplete type"
+msgstr "параметар %q+D има непотпун тип"
+
+#: c-decl.c:6260
+#, gcc-internal-format
+msgid "declaration for parameter %q+D but no such parameter"
+msgstr "декларација за параметар %q+D, али нема таквог"
+
+#: c-decl.c:6310
+#, gcc-internal-format
+msgid "number of arguments doesn%'t match built-in prototype"
+msgstr "број аргумената не одговора уграђеном прототипу"
+
+#: c-decl.c:6314
+#, gcc-internal-format
+msgid "number of arguments doesn%'t match prototype"
+msgstr "број аргумената не одговара прототипу"
+
+#: c-decl.c:6315 c-decl.c:6355 c-decl.c:6368
+#, gcc-internal-format
+msgid "%Hprototype declaration"
+msgstr "%Hдекларација прототипа"
+
+#: c-decl.c:6349
+#, gcc-internal-format
+msgid "promoted argument %qD doesn%'t match built-in prototype"
+msgstr "унапређени аргумент %qD не одговара уграђеном прототипу"
+
+#: c-decl.c:6353
+#, gcc-internal-format
+msgid "promoted argument %qD doesn%'t match prototype"
+msgstr "унапређени аргумент %qD не одговара прототипу"
+
+#: c-decl.c:6363
+#, gcc-internal-format
+msgid "argument %qD doesn%'t match built-in prototype"
+msgstr "аргумент %qD не одговара уграђеном прототипу"
+
+#: c-decl.c:6367
+#, gcc-internal-format
+msgid "argument %qD doesn%'t match prototype"
+msgstr "аргумент %qD не одговара прототипу"
+
+#: c-decl.c:6590 cp/decl.c:10962
+#, gcc-internal-format
+msgid "no return statement in function returning non-void"
+msgstr "нема повратне наредбе у функцији која враћа непразан тип"
+
+#: c-decl.c:6599
+#, gcc-internal-format
+msgid "this function may return with or without a value"
+msgstr "ова функција може и не мора вратити вредност"
+
+#. If we get here, declarations have been used in a for loop without
+#. the C99 for loop scope. This doesn't make much sense, so don't
+#. allow it.
+#: c-decl.c:6692
+#, gcc-internal-format
+msgid "%<for%> loop initial declaration used outside C99 mode"
+msgstr "Иницијална декларација у %<for%> петљи употребљена ван режима Ц-а 99"
+
+#: c-decl.c:6721
+#, gcc-internal-format
+msgid "declaration of static variable %q+D in %<for%> loop initial declaration"
+msgstr "декларација статичке променљиве %q+D у почетној декларацији %<for%> петље"
+
+#: c-decl.c:6724
+#, gcc-internal-format
+msgid "declaration of %<extern%> variable %q+D in %<for%> loop initial declaration"
+msgstr "декларација спољашње променљиве %q+D у почетној декларацији %<for%> петље"
+
+#: c-decl.c:6729
+#, gcc-internal-format
+msgid "%<struct %E%> declared in %<for%> loop initial declaration"
+msgstr "%<struct %E%> декларисана у почетној декларацији %<for%> петље"
+
+#: c-decl.c:6733
+#, gcc-internal-format
+msgid "%<union %E%> declared in %<for%> loop initial declaration"
+msgstr "%<union %E%> декларисана у почетној декларацији %<for%> петље"
+
+#: c-decl.c:6737
+#, gcc-internal-format
+msgid "%<enum %E%> declared in %<for%> loop initial declaration"
+msgstr "%<enum %E%> декларисан у почетној декларацији %<for%> петље"
+
+#: c-decl.c:6741
+#, gcc-internal-format
+msgid "declaration of non-variable %q+D in %<for%> loop initial declaration"
+msgstr "декларација не-променљиве %q+D у почетној декларацији %<for%> петље"
+
+#: c-decl.c:7025 c-decl.c:7176 c-decl.c:7386
+#, gcc-internal-format
+msgid "duplicate %qE"
+msgstr "удвостручено %qE"
+
+#: c-decl.c:7048 c-decl.c:7185 c-decl.c:7288
+#, gcc-internal-format
+msgid "two or more data types in declaration specifiers"
+msgstr "два или више типова података у наводиоцима декларације"
+
+#: c-decl.c:7060 cp/parser.c:7512
+#, gcc-internal-format
+msgid "%<long long long%> is too long for GCC"
+msgstr "%<long long long%> је предуго за ГЦЦ"
+
+#: c-decl.c:7067 c-decl.c:7259
+#, gcc-internal-format
+msgid "both %<long long%> and %<double%> in declaration specifiers"
+msgstr "и %<long long%> и %<double%> у наводиоцима декларације"
+
+#: c-decl.c:7073
+#, gcc-internal-format
+msgid "ISO C90 does not support %<long long%>"
+msgstr "ИСО Ц 90 не подржава %<long long%>"
+
+#: c-decl.c:7078 c-decl.c:7098
+#, gcc-internal-format
+msgid "both %<long%> and %<short%> in declaration specifiers"
+msgstr "и %<long%> и %<short%> у наводиоцима декларације"
+
+#: c-decl.c:7081 c-decl.c:7192
+#, gcc-internal-format
+msgid "both %<long%> and %<void%> in declaration specifiers"
+msgstr "и %<long%> и %<void%> у наводиоцима декларације"
+
+#: c-decl.c:7084 c-decl.c:7211
+#, gcc-internal-format
+msgid "both %<long%> and %<_Bool%> in declaration specifiers"
+msgstr "и %<long%> и %<_Bool%> у наводиоцима декларације"
+
+#: c-decl.c:7087 c-decl.c:7230
+#, gcc-internal-format
+msgid "both %<long%> and %<char%> in declaration specifiers"
+msgstr "и %<long%> и %<char%> у наводиоцима декларације"
+
+#: c-decl.c:7090 c-decl.c:7243
+#, gcc-internal-format
+msgid "both %<long%> and %<float%> in declaration specifiers"
+msgstr "и %<long%> и %<float%> у наводиоцима декларације"
+
+#: c-decl.c:7101 c-decl.c:7195
+#, gcc-internal-format
+msgid "both %<short%> and %<void%> in declaration specifiers"
+msgstr "и %<short%> и %<void%> у наводиоцима декларације"
+
+#: c-decl.c:7104 c-decl.c:7214
+#, gcc-internal-format
+msgid "both %<short%> and %<_Bool%> in declaration specifiers"
+msgstr "и %<short%> и %<_Bool%> у наводиоцима декларације"
+
+#: c-decl.c:7107 c-decl.c:7233
+#, gcc-internal-format
+msgid "both %<short%> and %<char%> in declaration specifiers"
+msgstr "и %<short%> и %<char%> у наводиоцима декларације"
+
+#: c-decl.c:7110 c-decl.c:7246
+#, gcc-internal-format
+msgid "both %<short%> and %<float%> in declaration specifiers"
+msgstr "и %<short%> и %<float%> у наводиоцима декларације"
+
+#: c-decl.c:7113 c-decl.c:7262
+#, gcc-internal-format
+msgid "both %<short%> and %<double%> in declaration specifiers"
+msgstr "и %<short%> и %<double%> у наводиоцима декларације"
+
+#: c-decl.c:7121 c-decl.c:7141
+#, gcc-internal-format
+msgid "both %<signed%> and %<unsigned%> in declaration specifiers"
+msgstr "и %<signed%> и %<unsigned%> у наводиоцима декларације"
+
+#: c-decl.c:7124 c-decl.c:7198
+#, gcc-internal-format
+msgid "both %<signed%> and %<void%> in declaration specifiers"
+msgstr "и %<signed%> и %<void%> у наводиоцима декларације"
+
+#: c-decl.c:7127 c-decl.c:7217
+#, gcc-internal-format
+msgid "both %<signed%> and %<_Bool%> in declaration specifiers"
+msgstr "и %<signed%> и %<_Bool%> у наводиоцима декларације"
+
+#: c-decl.c:7130 c-decl.c:7249
+#, gcc-internal-format
+msgid "both %<signed%> and %<float%> in declaration specifiers"
+msgstr "и %<signed%> и %<float%> у наводиоцима декларације"
+
+#: c-decl.c:7133 c-decl.c:7265
+#, gcc-internal-format
+msgid "both %<signed%> and %<double%> in declaration specifiers"
+msgstr "и %<signed%> и %<double%> у наводиоцима декларације"
+
+#: c-decl.c:7144 c-decl.c:7201
+#, gcc-internal-format
+msgid "both %<unsigned%> and %<void%> in declaration specifiers"
+msgstr "и %<unsigned%> и %<void%> у наводиоцима декларације"
+
+#: c-decl.c:7147 c-decl.c:7220
+#, gcc-internal-format
+msgid "both %<unsigned%> and %<_Bool%> in declaration specifiers"
+msgstr "и %<unsigned%> и %<_Bool%> у наводиоцима декларације"
+
+#: c-decl.c:7150 c-decl.c:7252
+#, gcc-internal-format
+msgid "both %<unsigned%> and %<float%> in declaration specifiers"
+msgstr "и %<unsigned%> и %<float%> у наводиоцима декларације"
+
+#: c-decl.c:7153 c-decl.c:7268
+#, gcc-internal-format
+msgid "both %<unsigned%> and %<double%> in declaration specifiers"
+msgstr "и %<unsigned%> и %<double%> у наводиоцима декларације"
+
+#: c-decl.c:7161
+#, gcc-internal-format
+msgid "ISO C90 does not support complex types"
+msgstr "ИСО Ц 90 не подржава комплексне типове"
+
+#: c-decl.c:7163 c-decl.c:7204
+#, gcc-internal-format
+msgid "both %<complex%> and %<void%> in declaration specifiers"
+msgstr "и %<complex%> и %<void%> у наводиоцима декларације"
+
+#: c-decl.c:7166 c-decl.c:7223
+#, gcc-internal-format
+msgid "both %<complex%> and %<_Bool%> in declaration specifiers"
+msgstr "и %<complex%> и %<_Bool%> у наводиоцима декларације"
+
+#: c-decl.c:7305
+#, gcc-internal-format
+msgid "%qE fails to be a typedef or built in type"
+msgstr "%qE није ни по дефиницији типа ни уграђени тип"
+
+#: c-decl.c:7337
+#, gcc-internal-format
+msgid "%qE is not at beginning of declaration"
+msgstr "%qE није на почетку декларације"
+
+#: c-decl.c:7351
+#, gcc-internal-format
+msgid "%<__thread%> used with %<auto%>"
+msgstr "%<__thread%> употребљено уз %<auto%>"
+
+#: c-decl.c:7353
+#, gcc-internal-format
+msgid "%<__thread%> used with %<register%>"
+msgstr "%<__thread%> употребљено уз %<register%>"
+
+#: c-decl.c:7355
+#, gcc-internal-format
+msgid "%<__thread%> used with %<typedef%>"
+msgstr "%<__thread%> употребљено уз %<typedef%>"
+
+#: c-decl.c:7366 cp/parser.c:7398
+#, gcc-internal-format
+msgid "%<__thread%> before %<extern%>"
+msgstr "%<__thread%> пре %<extern%>"
+
+#: c-decl.c:7375 cp/parser.c:7388
+#, gcc-internal-format
+msgid "%<__thread%> before %<static%>"
+msgstr "%<__thread%> пре %<static%>"
+
+#: c-decl.c:7391
+#, gcc-internal-format
+msgid "multiple storage classes in declaration specifiers"
+msgstr "вишеструке складишне класе у наводиоцима декларације"
+
+#: c-decl.c:7398
+#, gcc-internal-format
+msgid "%<__thread%> used with %qE"
+msgstr "%<__thread%> употребљено уз %qE"
+
+#: c-decl.c:7452
+#, gcc-internal-format
+msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
+msgstr "ИСО Ц не подржава да обичан %<complex%> значи %<double complex%>"
+
+#: c-decl.c:7497 c-decl.c:7523
+#, gcc-internal-format
+msgid "ISO C does not support complex integer types"
+msgstr "ИСО Ц не подржава комплексне целобројне типове"
+
+#: c-decl.c:7597 toplev.c:822
+#, gcc-internal-format
+msgid "%q+F used but never defined"
+msgstr "%q+F употребљено али недефинисано"
+
+#: c-format.c:97 c-format.c:206
+#, gcc-internal-format
+msgid "format string has invalid operand number"
+msgstr "форматирајућа ниска има неисправан број операнада"
+
+#: c-format.c:114
+#, gcc-internal-format
+msgid "function does not return string type"
+msgstr "функција не враћа податак типа ниске"
+
+#: c-format.c:143
+#, gcc-internal-format
+msgid "format string argument not a string type"
+msgstr "аргумент форматирајуће ниске није типа ниске"
+
+#: c-format.c:186
+#, gcc-internal-format
+msgid "unrecognized format specifier"
+msgstr "непрепознат наводилац формата"
+
+#: c-format.c:198
+#, gcc-internal-format
+msgid "%qE is an unrecognized format function type"
+msgstr "%qE је непрепознат тип форматирајуће функције"
+
+#: c-format.c:212
+#, gcc-internal-format
+msgid "%<...%> has invalid operand number"
+msgstr "%<...%> има неисправан број операнада"
+
+#: c-format.c:219
+#, gcc-internal-format
+msgid "format string argument follows the args to be formatted"
+msgstr "аргумент форматирајуће ниске прати аргументе које треба форматирати"
+
+#: c-format.c:899
+#, gcc-internal-format
+msgid "function might be possible candidate for %qs format attribute"
+msgstr "функција може бити могући кандидат за форматски атрибут %qs"
+
+#: c-format.c:991 c-format.c:1012 c-format.c:2026
+#, gcc-internal-format
+msgid "missing $ operand number in format"
+msgstr "недостаје број операнда $ у формату"
+
+#: c-format.c:1021
+#, gcc-internal-format
+msgid "%s does not support %%n$ operand number formats"
+msgstr "%s не подржава формат %%n$ за број операнда"
+
+#: c-format.c:1028
+#, gcc-internal-format
+msgid "operand number out of range in format"
+msgstr "број операнда ван опсега у формату"
+
+#: c-format.c:1051
+#, gcc-internal-format
+msgid "format argument %d used more than once in %s format"
+msgstr "форматирајући аргумент %d употребљен више од једанпут у формату %s"
+
+#: c-format.c:1083
+#, gcc-internal-format
+msgid "$ operand number used after format without operand number"
+msgstr "број операнда $ употребљен после формата без броја операнда"
+
+#: c-format.c:1114
+#, gcc-internal-format
+msgid "format argument %d unused before used argument %d in $-style format"
+msgstr "форматирајући аргумент %d није употребљен пре употребљеног аргумента %d у формату типа $"
+
+#: c-format.c:1209
+#, gcc-internal-format
+msgid "format not a string literal, format string not checked"
+msgstr "формат није дословна ниска, формат није проверен"
+
+#: c-format.c:1224 c-format.c:1227
+#, gcc-internal-format
+msgid "format not a string literal and no format arguments"
+msgstr "формат није дословна ниска и нема форматирајућих аргумената"
+
+#: c-format.c:1230
+#, gcc-internal-format
+msgid "format not a string literal, argument types not checked"
+msgstr "формат није дословна ниска, типови аргумената нису проверени"
+
+#: c-format.c:1243
+#, gcc-internal-format
+msgid "too many arguments for format"
+msgstr "превише аргумената за формат"
+
+#: c-format.c:1246
+#, gcc-internal-format
+msgid "unused arguments in $-style format"
+msgstr "неупотребљени аргументи у формату типа $"
+
+#: c-format.c:1249
+#, gcc-internal-format
+msgid "zero-length %s format string"
+msgstr "форматирајућа ниска %s нулте дужине"
+
+#: c-format.c:1253
+#, gcc-internal-format
+msgid "format is a wide character string"
+msgstr "формат је широкознаковна ниска"
+
+#: c-format.c:1256
+#, gcc-internal-format
+msgid "unterminated format string"
+msgstr "неодређена форматирајућа ниска"
+
+#: c-format.c:1470
+#, gcc-internal-format
+msgid "embedded %<\\0%> in format"
+msgstr "угњеждено %<\\0%> у формату"
+
+#: c-format.c:1485
+#, gcc-internal-format
+msgid "spurious trailing %<%%%> in format"
+msgstr "сувишно пратеће %<%%%> у формату"
+
+#: c-format.c:1529 c-format.c:1774
+#, gcc-internal-format
+msgid "repeated %s in format"
+msgstr "поновљено %s у формату"
+
+#: c-format.c:1542
+#, gcc-internal-format
+msgid "missing fill character at end of strfmon format"
+msgstr "недостаје знак попуне на крају формата strfmon"
+
+#: c-format.c:1586 c-format.c:1688 c-format.c:1973 c-format.c:2038
+#, gcc-internal-format
+msgid "too few arguments for format"
+msgstr "премало аргумената за формат"
+
+#: c-format.c:1627
+#, gcc-internal-format
+msgid "zero width in %s format"
+msgstr "нулта дужина у формату %s"
+
+#: c-format.c:1645
+#, gcc-internal-format
+msgid "empty left precision in %s format"
+msgstr "празна лева тачност у формату %s"
+
+#: c-format.c:1718
+#, gcc-internal-format
+msgid "empty precision in %s format"
+msgstr "празна тачност у формату %s"
+
+#: c-format.c:1758
+#, gcc-internal-format
+msgid "%s does not support the %qs %s length modifier"
+msgstr "%s не подржава модификатор дужине %qs за %s"
+
+#: c-format.c:1808
+#, gcc-internal-format
+msgid "conversion lacks type at end of format"
+msgstr "претварању недостаје тип на крају формата"
+
+#: c-format.c:1819
+#, gcc-internal-format
+msgid "unknown conversion type character %qc in format"
+msgstr "непознат знак типа претварања %qc у формату"
+
+#: c-format.c:1822
+#, gcc-internal-format
+msgid "unknown conversion type character 0x%x in format"
+msgstr "непознат знак типа претварања 0x%x у формату"
+
+#: c-format.c:1829
+#, gcc-internal-format
+msgid "%s does not support the %<%%%c%> %s format"
+msgstr "%s не подржава %<%%%c%> формат за %s"
+
+#: c-format.c:1845
+#, gcc-internal-format
+msgid "%s used with %<%%%c%> %s format"
+msgstr "%s употребљено уз %<%%%c%> формат за %s"
+
+#: c-format.c:1854
+#, gcc-internal-format
+msgid "%s does not support %s"
+msgstr "%s не подржава %s"
+
+#: c-format.c:1864
+#, gcc-internal-format
+msgid "%s does not support %s with the %<%%%c%> %s format"
+msgstr "%s не подржава %s са %<%%%c%> форматом за %s"
+
+#: c-format.c:1898
+#, gcc-internal-format
+msgid "%s ignored with %s and %<%%%c%> %s format"
+msgstr "%s игнорисано са %s и %<%%%c%> форматом за %s"
+
+#: c-format.c:1902
+#, gcc-internal-format
+msgid "%s ignored with %s in %s format"
+msgstr "%s игнорисано са %s у формату %s"
+
+#: c-format.c:1909
+#, gcc-internal-format
+msgid "use of %s and %s together with %<%%%c%> %s format"
+msgstr "употреба %s и %s заједно са %<%%%c%> форматом за %s"
+
+#: c-format.c:1913
+#, gcc-internal-format
+msgid "use of %s and %s together in %s format"
+msgstr "употреба %s и %s заједно у формату %s"
+
+#: c-format.c:1932
+#, gcc-internal-format
+msgid "%<%%%c%> yields only last 2 digits of year in some locales"
+msgstr "%<%%%c%> даје само последње две цифре године у неким локалитетима"
+
+#: c-format.c:1935
+#, gcc-internal-format
+msgid "%<%%%c%> yields only last 2 digits of year"
+msgstr "%<%%%c%> даје само последње две цифре године"
+
+#. The end of the format string was reached.
+#: c-format.c:1952
+#, gcc-internal-format
+msgid "no closing %<]%> for %<%%[%> format"
+msgstr "нема затварајућег %<]%> за формат %<%%[%>"
+
+#: c-format.c:1966
+#, gcc-internal-format
+msgid "use of %qs length modifier with %qc type character"
+msgstr "употреба модификатора дужине %qs са знаком типа %qc"
+
+#: c-format.c:1988
+#, gcc-internal-format
+msgid "%s does not support the %<%%%s%c%> %s format"
+msgstr "%s не подржава %<%%%s%c%> формат за %s"
+
+#: c-format.c:2005
+#, gcc-internal-format
+msgid "operand number specified with suppressed assignment"
+msgstr "број операнда наведен са сузбијеном доделом"
+
+#: c-format.c:2008
+#, gcc-internal-format
+msgid "operand number specified for format taking no argument"
+msgstr "број операнда наведен за формат који не узима ниједан аргумент"
+
+#: c-format.c:2151
+#, gcc-internal-format
+msgid "writing through null pointer (argument %d)"
+msgstr "писање кроз нулти показивач (аргумент %d)"
+
+#: c-format.c:2159
+#, gcc-internal-format
+msgid "reading through null pointer (argument %d)"
+msgstr "читање кроз нулти показивач (аргумент %d)"
+
+#: c-format.c:2179
+#, gcc-internal-format
+msgid "writing into constant object (argument %d)"
+msgstr "писање у константан објекат (аргумент %d)"
+
+#: c-format.c:2190
+#, gcc-internal-format
+msgid "extra type qualifiers in format argument (argument %d)"
+msgstr "сувишна одредба типа у форматирајућем аргументу (аргумент %d)"
+
+#: c-format.c:2301
+#, gcc-internal-format
+msgid "%s should have type %<%s%s%>, but argument %d has type %qT"
+msgstr "%s треба да је типа %<%s%s%>, али аргумент %d је типа %qT"
+
+#: c-format.c:2305
+#, gcc-internal-format
+msgid "format %q.*s expects type %<%s%s%>, but argument %d has type %qT"
+msgstr "формат %q.*s очекује тип %<%s%s%>, али аргумент %d је типа %qT"
+
+#: c-format.c:2313
+#, gcc-internal-format
+msgid "%s should have type %<%T%s%>, but argument %d has type %qT"
+msgstr "%s треба да је типа %<%T%s%>, али аргумент %d је типа %qT"
+
+#: c-format.c:2317
+#, gcc-internal-format
+msgid "format %q.*s expects type %<%T%s%>, but argument %d has type %qT"
+msgstr "формат %q.*s очекује тип %<%T%s%>, али аргумент %d је типа %qT"
+
+#: c-format.c:2376 c-format.c:2382 c-format.c:2532
+#, gcc-internal-format
+msgid "%<__gcc_host_wide_int__%> is not defined as a type"
+msgstr "%<__gcc_host_wide_int__%> није дефинисано као тип"
+
+#: c-format.c:2389 c-format.c:2542
+#, gcc-internal-format
+msgid "%<__gcc_host_wide_int__%> is not defined as %<long%> or %<long long%>"
+msgstr "%<__gcc_host_wide_int__%> није дефинисано као %<long%> или %<long long%>"
+
+#: c-format.c:2438
+#, gcc-internal-format
+msgid "%<locus%> is not defined as a type"
+msgstr "%<locus%> није дефинисано као тип"
+
+#: c-format.c:2491
+#, gcc-internal-format
+msgid "%<location_t%> is not defined as a type"
+msgstr "%<location_t%> није дефинисано као тип"
+
+#: c-format.c:2508
+#, gcc-internal-format
+msgid "%<tree%> is not defined as a type"
+msgstr "%<tree%> није дефинисано као тип"
+
+#: c-format.c:2513
+#, gcc-internal-format
+msgid "%<tree%> is not defined as a pointer type"
+msgstr "%<tree%> није дефинисано као показивачки тип"
+
+#: c-format.c:2724
+#, gcc-internal-format
+msgid "args to be formatted is not %<...%>"
+msgstr "аргументи за форматирање нису %<...%>"
+
+#: c-format.c:2733
+#, gcc-internal-format
+msgid "strftime formats cannot format arguments"
+msgstr "формати strftime не могу форматирати аргументе"
+
+#: c-lex.c:254
+#, gcc-internal-format
+msgid "badly nested C headers from preprocessor"
+msgstr "лоше угњеждено Ц заглавље из предобрађивача"
+
+#: c-lex.c:302
+#, gcc-internal-format
+msgid "%Hignoring #pragma %s %s"
+msgstr "%Hигноришем #pragma %s %s"
+
+#. ... or not.
+#: c-lex.c:412
+#, gcc-internal-format
+msgid "%Hstray %<@%> in program"
+msgstr "%Hзалутало %<@%> у програму"
+
+#: c-lex.c:426
+#, gcc-internal-format
+msgid "stray %qs in program"
+msgstr "залутало %qs у програму"
+
+#: c-lex.c:436
+#, gcc-internal-format
+msgid "missing terminating %c character"
+msgstr "недостаје окончавајући знак %c"
+
+#: c-lex.c:438
+#, gcc-internal-format
+msgid "stray %qc in program"
+msgstr "залутало %qc у програму"
+
+#: c-lex.c:440
+#, gcc-internal-format
+msgid "stray %<\\%o%> in program"
+msgstr "залутало %<\\%o%> у програму"
+
+#: c-lex.c:601
+#, gcc-internal-format
+msgid "this decimal constant is unsigned only in ISO C90"
+msgstr "ова декадна константа је неозначена само у ИЦО Ц-у 90"
+
+#: c-lex.c:605
+#, gcc-internal-format
+msgid "this decimal constant would be unsigned in ISO C90"
+msgstr "ова декадна константа би била неозначена у ИЦО Ц-у 90"
+
+#: c-lex.c:621
+#, gcc-internal-format
+msgid "integer constant is too large for %qs type"
+msgstr "целобројна константа превелика за тип %qs"
+
+#: c-lex.c:687
+#, gcc-internal-format
+msgid "floating constant exceeds range of %<%s%>"
+msgstr "константа у покретном зарезу премашује опсег за %<%s%>"
+
+#: c-lex.c:770
+#, gcc-internal-format
+msgid "traditional C rejects string constant concatenation"
+msgstr "традиционални Ц одбија надовезивање константних ниски"
+
+#: c-objc-common.c:81
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it is suppressed using -fno-inline"
+msgstr "функција %q+F не може никако бити уткана јер је то сузбијено помоћу -fno-inline"
+
+#: c-objc-common.c:91
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it might not be bound within this unit of translation"
+msgstr "функција %q+F не може никако бити уткана јер можда није ограничена у оквиру ове преводилачке јединице"
+
+#: c-objc-common.c:99
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining"
+msgstr "функција %q+F не може никако бити уткана јер користи атрибуте сукобљене са уткивањем"
+
+#: c-opts.c:147
+#, gcc-internal-format
+msgid "no class name specified with %qs"
+msgstr "нема имена класе наведеног помоћу %qs"
+
+#: c-opts.c:151
+#, gcc-internal-format
+msgid "assertion missing after %qs"
+msgstr "недостаје тврдња после %qs"
+
+#: c-opts.c:156
+#, gcc-internal-format
+msgid "macro name missing after %qs"
+msgstr "недостаје име макроа после %qs"
+
+#: c-opts.c:165
+#, gcc-internal-format
+msgid "missing path after %qs"
+msgstr "недостаје путања после %qs"
+
+#: c-opts.c:174
+#, gcc-internal-format
+msgid "missing filename after %qs"
+msgstr "недостаје име датотеке после %qs"
+
+#: c-opts.c:179
+#, gcc-internal-format
+msgid "missing makefile target after %qs"
+msgstr "недостаје справљачки циљ после %qs"
+
+#: c-opts.c:319
+#, gcc-internal-format
+msgid "-I- specified twice"
+msgstr "-I- наведено двапут"
+
+#: c-opts.c:322
+#, gcc-internal-format
+msgid "obsolete option -I- used, please use -iquote instead"
+msgstr "употребљена застарела опција -I-, користите -iquote уместо ње"
+
+#: c-opts.c:492
+#, gcc-internal-format
+msgid "argument %qs to %<-Wnormalized%> not recognized"
+msgstr "аргумент %qs за %<-Wnormalized%> није препознат"
+
+#: c-opts.c:576
+#, gcc-internal-format
+msgid "switch %qs is no longer supported"
+msgstr "прекидач %qs више није подржан"
+
+#: c-opts.c:686
+#, gcc-internal-format
+msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)"
+msgstr "-fhandle-exceptions је преименовано у -fexceptions (и сада је подразумевано укључено)"
+
+#: c-opts.c:868
+#, gcc-internal-format
+msgid "output filename specified twice"
+msgstr "излазна датотека наведена двапут"
+
+#: c-opts.c:1012
+#, gcc-internal-format
+msgid "-Wformat-y2k ignored without -Wformat"
+msgstr "-Wformat-y2k се игнорише без -Wformat"
+
+#: c-opts.c:1014
+#, gcc-internal-format
+msgid "-Wformat-extra-args ignored without -Wformat"
+msgstr "-Wformat-extra-args се игнорише без -Wformat"
+
+#: c-opts.c:1016
+#, gcc-internal-format
+msgid "-Wformat-zero-length ignored without -Wformat"
+msgstr "-Wformat-zero-length се игнорише без -Wformat"
+
+#: c-opts.c:1018
+#, gcc-internal-format
+msgid "-Wformat-nonliteral ignored without -Wformat"
+msgstr "-Wformat-nonliteral се игнорише без -Wformat"
+
+#: c-opts.c:1020
+#, gcc-internal-format
+msgid "-Wformat-security ignored without -Wformat"
+msgstr "-Wformat-security се игнорише без -Wformat"
+
+#: c-opts.c:1040
+#, gcc-internal-format
+msgid "opening output file %s: %m"
+msgstr "отварам улазну датотеку %s: %m"
+
+#: c-opts.c:1045
+#, gcc-internal-format
+msgid "too many filenames given. Type %s --help for usage"
+msgstr "задато је превише датотека. Упишите %s --help за употребу"
+
+#: c-opts.c:1131
+#, gcc-internal-format
+msgid "YYDEBUG was not defined at build time, -dy ignored"
+msgstr "YYDEBUG није дефинисано приликом градње, -dy се игнорише"
+
+#: c-opts.c:1177
+#, gcc-internal-format
+msgid "opening dependency file %s: %m"
+msgstr "отварам датотеку зависности %s: %m"
+
+#: c-opts.c:1187
+#, gcc-internal-format
+msgid "closing dependency file %s: %m"
+msgstr "затварам датотеку зависности %s: %m"
+
+#: c-opts.c:1190
+#, gcc-internal-format
+msgid "when writing output to %s: %m"
+msgstr "када уписујем излаз у %s: %m"
+
+#: c-opts.c:1270
+#, gcc-internal-format
+msgid "to generate dependencies you must specify either -M or -MM"
+msgstr "да бисте створили зависности морате навести или -M или -MM"
+
+#: c-opts.c:1438
+#, gcc-internal-format
+msgid "too late for # directive to set debug directory"
+msgstr "прекасно за # директиву да постави исправљачки директоријум"
+
+#: c-parser.c:969
+#, gcc-internal-format
+msgid "ISO C forbids an empty source file"
+msgstr "ИСО Ц забрањује празну изворну датотеку"
+
+#: c-parser.c:1054 c-parser.c:5762
+#, gcc-internal-format
+msgid "ISO C does not allow extra %<;%> outside of a function"
+msgstr "ИСО Ц не дозвољава додатно %<;%> изван функције"
+
+#: c-parser.c:1145
+#, gcc-internal-format
+msgid "expected declaration specifiers"
+msgstr "очекивани су наводиоци декларације"
+
+#: c-parser.c:1193
+#, gcc-internal-format
+msgid "data definition has no type or storage class"
+msgstr "дефиниција података нема тип или складишну класу"
+
+#: c-parser.c:1247
+#, gcc-internal-format
+msgid "expected %<,%> or %<;%>"
+msgstr "очекивано је %<,%> или %<;%>"
+
+#. This can appear in many cases looking nothing like a
+#. function definition, so we don't give a more specific
+#. error suggesting there was one.
+#: c-parser.c:1254 c-parser.c:1271
+#, gcc-internal-format
+msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
+msgstr "очекивано је %<=%>, %<,%>, %<;%>, %<asm%> или %<__attribute__%>"
+
+#: c-parser.c:1263
+#, gcc-internal-format
+msgid "ISO C forbids nested functions"
+msgstr "ИСО Ц забрањује угњеждене функције"
+
+#: c-parser.c:1609 c-parser.c:2372 c-parser.c:2981 c-parser.c:3222
+#: c-parser.c:4009 c-parser.c:4590 c-parser.c:4980 c-parser.c:5000
+#: c-parser.c:5115 c-parser.c:5261 c-parser.c:5278 c-parser.c:5410
+#: c-parser.c:5422 c-parser.c:5447 c-parser.c:5575 c-parser.c:5604
+#: c-parser.c:5612 c-parser.c:5640 c-parser.c:5654 c-parser.c:5867
+#: c-parser.c:5966
+#, gcc-internal-format
+msgid "expected identifier"
+msgstr "очекиван је идентификатор"
+
+#: c-parser.c:1635 cp/parser.c:10280
+#, gcc-internal-format
+msgid "comma at end of enumerator list"
+msgstr "зарез на крају листе набрајања"
+
+#: c-parser.c:1641
+#, gcc-internal-format
+msgid "expected %<,%> or %<}%>"
+msgstr "очекивано је %<,%> или %<}%>"
+
+#: c-parser.c:1655 c-parser.c:1825 c-parser.c:5729
+#, gcc-internal-format
+msgid "expected %<{%>"
+msgstr "очекивано је %<{%>"
+
+#: c-parser.c:1664
+#, gcc-internal-format
+msgid "ISO C forbids forward references to %<enum%> types"
+msgstr "ИСО Ц забрањује помињања унапред за %<enum%> типове"
+
+#: c-parser.c:1767
+#, gcc-internal-format
+msgid "expected class name"
+msgstr "очекивано је име класе"
+
+#: c-parser.c:1786 c-parser.c:5514
+#, gcc-internal-format
+msgid "extra semicolon in struct or union specified"
+msgstr "сувишна тачка-зарез у структури или унији"
+
+#: c-parser.c:1808
+#, gcc-internal-format
+msgid "no semicolon at end of struct or union"
+msgstr "недостаје тачка-зарез на крају структуре или уније"
+
+#: c-parser.c:1811
+#, gcc-internal-format
+msgid "expected %<;%>"
+msgstr "очекивано је %<;%>"
+
+#: c-parser.c:1888 c-parser.c:2815
+#, gcc-internal-format
+msgid "expected specifier-qualifier-list"
+msgstr "очекивана је листа наводилаца-одредби"
+
+#: c-parser.c:1898
+#, gcc-internal-format
+msgid "ISO C forbids member declarations with no members"
+msgstr "ИСО Ц забрањује чланске декларације без чланова"
+
+#: c-parser.c:1967
+#, gcc-internal-format
+msgid "expected %<,%>, %<;%> or %<}%>"
+msgstr "очекивано је %<,%>, %<;%> или %<}%>"
+
+#: c-parser.c:1974
+#, gcc-internal-format
+msgid "expected %<:%>, %<,%>, %<;%>, %<}%> or %<__attribute__%>"
+msgstr "очекивано је %<:%>, %<,%>, %<;%>, %<}%> или %<__attribute__%>"
+
+#: c-parser.c:2023
+#, gcc-internal-format
+msgid "%<typeof%> applied to a bit-field"
+msgstr "%<typeof%> примењено на битско поље"
+
+#: c-parser.c:2242
+#, gcc-internal-format
+msgid "expected identifier or %<(%>"
+msgstr "очекиван је идентификатор или %<(%>"
+
+#: c-parser.c:2435
+#, gcc-internal-format
+msgid "ISO C requires a named argument before %<...%>"
+msgstr "ИСО Ц захтева именовани аргумент пре %<...%>"
+
+#: c-parser.c:2537
+#, gcc-internal-format
+msgid "expected declaration specifiers or %<...%>"
+msgstr "очекивани су наводиоци декларације или %<...%>"
+
+#: c-parser.c:2587
+#, gcc-internal-format
+msgid "wide string literal in %<asm%>"
+msgstr "широка дословна ниска у %<asm%>"
+
+#: c-parser.c:2593
+#, gcc-internal-format
+msgid "expected string literal"
+msgstr "очекивана је дословна ниска"
+
+#: c-parser.c:2907
+#, gcc-internal-format
+msgid "ISO C forbids empty initializer braces"
+msgstr "ИСО Ц забрањује празне витичасте заграде успостављача"
+
+#: c-parser.c:2952
+#, gcc-internal-format
+msgid "obsolete use of designated initializer with %<:%>"
+msgstr "застарела употреба утврђеног успостављача са %<:%>"
+
+#: c-parser.c:3075
+#, gcc-internal-format
+msgid "ISO C forbids specifying range of elements to initialize"
+msgstr "ИСО Ц забрањује навођење опсега елемената за успостављање"
+
+#: c-parser.c:3088
+#, gcc-internal-format
+msgid "ISO C90 forbids specifying subobject to initialize"
+msgstr "ИСО Ц 90 забрањује навођење подобјекта за успостављање"
+
+#: c-parser.c:3096
+#, gcc-internal-format
+msgid "obsolete use of designated initializer without %<=%>"
+msgstr "застарела употреба утврђеног успостављача без %<=%>"
+
+#: c-parser.c:3104
+#, gcc-internal-format
+msgid "expected %<=%>"
+msgstr "очекивано је %<=%>"
+
+#: c-parser.c:3241
+#, gcc-internal-format
+msgid "ISO C forbids label declarations"
+msgstr "ИСО Ц забрањује декларације етикета"
+
+#: c-parser.c:3246 c-parser.c:3255
+#, gcc-internal-format
+msgid "expected declaration or statement"
+msgstr "очекивана је декларација или наредба"
+
+#: c-parser.c:3275 c-parser.c:3303
+#, gcc-internal-format
+msgid "%HISO C90 forbids mixed declarations and code"
+msgstr "%HИСО Ц 90 забрањује мешање декларација и кода"
+
+#: c-parser.c:3319
+#, gcc-internal-format
+msgid "label at end of compound statement"
+msgstr "етикета на крају сложене наредбе"
+
+#: c-parser.c:3362
+#, gcc-internal-format
+msgid "expected %<:%> or %<...%>"
+msgstr "очекивано је %<:%> или %<...%>"
+
+#: c-parser.c:3498
+#, gcc-internal-format
+msgid "expected identifier or %<*%>"
+msgstr "очекиван је идентификатор или %<*%>"
+
+#. Avoid infinite loop in error recovery:
+#. c_parser_skip_until_found stops at a closing nesting
+#. delimiter without consuming it, but here we need to consume
+#. it to proceed further.
+#: c-parser.c:3560
+#, gcc-internal-format
+msgid "expected statement"
+msgstr "очекивана је наредба"
+
+#: c-parser.c:3894
+#, gcc-internal-format
+msgid "%E qualifier ignored on asm"
+msgstr "одредба %E се игнорише уз asm"
+
+#: c-parser.c:4174
+#, gcc-internal-format
+msgid "ISO C forbids omitting the middle term of a ?: expression"
+msgstr "ИСО Ц забрањује изостављање средњег члана ?: израза"
+
+#: c-parser.c:4560
+#, gcc-internal-format
+msgid "traditional C rejects the unary plus operator"
+msgstr "традиционални Ц одбија оператор унарни плус"
+
+#: c-parser.c:4673
+#, gcc-internal-format
+msgid "%<sizeof%> applied to a bit-field"
+msgstr "%<sizeof%> примењено на битско поље"
+
+#: c-parser.c:4816 c-parser.c:5157 c-parser.c:5179
+#, gcc-internal-format
+msgid "expected expression"
+msgstr "очекиван је израз"
+
+#: c-parser.c:4842
+#, gcc-internal-format
+msgid "braced-group within expression allowed only inside a function"
+msgstr "витичасто заграђена група унутар израза дозвољена је само у оквиру функције"
+
+#: c-parser.c:4856
+#, gcc-internal-format
+msgid "ISO C forbids braced-groups within expressions"
+msgstr "ИСО Ц забрањује витичасто заграђене групе унутар израза"
+
+#: c-parser.c:5039
+#, gcc-internal-format
+msgid "first argument to %<__builtin_choose_expr%> not a constant"
+msgstr "први аргумент за %<__builtin_choose_expr%> није константа"
+
+#: c-parser.c:5206
+#, gcc-internal-format
+msgid "compound literal has variable size"
+msgstr "сложена дословна ниска има променљиву величину"
+
+#: c-parser.c:5214
+#, gcc-internal-format
+msgid "ISO C90 forbids compound literals"
+msgstr "ИСО Ц 90 забрањује сложене дословне ниске"
+
+#: c-parser.c:5725
+#, gcc-internal-format
+msgid "extra semicolon in method definition specified"
+msgstr "сувишна тачка-зарез у дефиницији метода"
+
+#: c-pch.c:132
+#, gcc-internal-format
+msgid "can%'t create precompiled header %s: %m"
+msgstr "не могу да направим прекомпиловано заглавље %s: %m"
+
+#: c-pch.c:153
+#, gcc-internal-format
+msgid "can%'t write to %s: %m"
+msgstr "не могу да пишем у %s: %m"
+
+#: c-pch.c:159
+#, gcc-internal-format
+msgid "%qs is not a valid output file"
+msgstr "%qs није исправна излазна датотека"
+
+#: c-pch.c:188 c-pch.c:203 c-pch.c:217
+#, gcc-internal-format
+msgid "can%'t write %s: %m"
+msgstr "не могу да упишем %s: %m"
+
+#: c-pch.c:193 c-pch.c:210
+#, gcc-internal-format
+msgid "can%'t seek in %s: %m"
+msgstr "не могу да тражим у %s: %m"
+
+#: c-pch.c:201 c-pch.c:243 c-pch.c:283 c-pch.c:334
+#, gcc-internal-format
+msgid "can%'t read %s: %m"
+msgstr "не могу да читам %s: %m"
+
+#: c-pch.c:452
+#, gcc-internal-format
+msgid "malformed #pragma GCC pch_preprocess, ignored"
+msgstr "лоше формирано #pragma GCC pch_preprocess, игноришем"
+
+#: c-pch.c:458
+#, gcc-internal-format
+msgid "pch_preprocess pragma should only be used with -fpreprocessed"
+msgstr "прагма pch_preprocess треба да се користи само уз -fpreprocessed"
+
+#: c-pch.c:459
+#, gcc-internal-format
+msgid "use #include instead"
+msgstr "користите #include уместо тога"
+
+#: c-pch.c:467
+#, gcc-internal-format
+msgid "%s: couldn%'t open PCH file: %m"
+msgstr "%s: не могу да отворим ПЦХ датотеку: %m"
+
+#: c-pch.c:472
+#, gcc-internal-format
+msgid "use -Winvalid-pch for more information"
+msgstr "употребите -Winvalid-pch за више информација"
+
+#: c-pch.c:473
+#, gcc-internal-format
+msgid "%s: PCH file was invalid"
+msgstr "%s: ПЦХ датотека није исправна"
+
+#: c-pragma.c:101
+#, gcc-internal-format
+msgid "#pragma pack (pop) encountered without matching #pragma pack (push)"
+msgstr "сусретнуто #pragma pack (pop) без поклапајућег #pragma pack (push)"
+
+#: c-pragma.c:114
+#, gcc-internal-format
+msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s)"
+msgstr "сусретнуто #pragma pack(pop, %s) без поклапајућег #pragma pack(push, %s)"
+
+#: c-pragma.c:128
+#, gcc-internal-format
+msgid "#pragma pack(push[, id], <n>) is not supported on this target"
+msgstr "#pragma pack(push[, id], <n>) није подржано на овом циљу"
+
+#: c-pragma.c:130
+#, gcc-internal-format
+msgid "#pragma pack(pop[, id], <n>) is not supported on this target"
+msgstr "#pragma pack(pop[, id], <n>) није подржано на овом циљу"
+
+#: c-pragma.c:151
+#, gcc-internal-format
+msgid "missing %<(%> after %<#pragma pack%> - ignored"
+msgstr "недостаје %<(%> после %<#pragma pack%> — игноришем"
+
+#: c-pragma.c:164 c-pragma.c:204
+#, gcc-internal-format
+msgid "malformed %<#pragma pack%> - ignored"
+msgstr "лоше формирано %<#pragma pack%> — игноришем"
+
+#: c-pragma.c:169
+#, gcc-internal-format
+msgid "malformed %<#pragma pack(push[, id][, <n>])%> - ignored"
+msgstr "лоше формирано %<#pragma pack(push[, id][, <n>])%> — игноришем"
+
+#: c-pragma.c:171
+#, gcc-internal-format
+msgid "malformed %<#pragma pack(pop[, id])%> - ignored"
+msgstr "лоше формирано %<#pragma pack(pop[, id])%> — игноришем"
+
+#: c-pragma.c:180
+#, gcc-internal-format
+msgid "unknown action %qs for %<#pragma pack%> - ignored"
+msgstr "непозната радња %qs за %<#pragma pack%> — игноришем"
+
+#: c-pragma.c:207
+#, gcc-internal-format
+msgid "junk at end of %<#pragma pack%>"
+msgstr "смеће на крају %<#pragma pack%>"
+
+#: c-pragma.c:210
+#, gcc-internal-format
+msgid "#pragma pack has no effect with -fpack-struct - ignored"
+msgstr "#pragma pack нема ефекта уз -fpack-struct — игноришем"
+
+#: c-pragma.c:230
+#, gcc-internal-format
+msgid "alignment must be a small power of two, not %d"
+msgstr "равнање мора бити мали степен двојке, не %d"
+
+#: c-pragma.c:263
+#, gcc-internal-format
+msgid "applying #pragma weak %q+D after first use results in unspecified behavior"
+msgstr "примена #pragma weak %q+D после прве употребе доводи до неодређеног понашања"
+
+#: c-pragma.c:337 c-pragma.c:342
+#, gcc-internal-format
+msgid "malformed #pragma weak, ignored"
+msgstr "лоше формирано #pragma weak, игноришем"
+
+#: c-pragma.c:346
+#, gcc-internal-format
+msgid "junk at end of #pragma weak"
+msgstr "смеће на крају #pragma weak"
+
+#: c-pragma.c:414 c-pragma.c:416
+#, gcc-internal-format
+msgid "malformed #pragma redefine_extname, ignored"
+msgstr "лоше формирано #pragma redefine_extname, игноришем"
+
+#: c-pragma.c:419
+#, gcc-internal-format
+msgid "junk at end of #pragma redefine_extname"
+msgstr "смеће на крају #pragma redefine_extname"
+
+#: c-pragma.c:425
+#, gcc-internal-format
+msgid "#pragma redefine_extname not supported on this target"
+msgstr "#pragma redefine_extname није подржано на овом циљу"
+
+#: c-pragma.c:442 c-pragma.c:529
+#, gcc-internal-format
+msgid "#pragma redefine_extname ignored due to conflict with previous rename"
+msgstr "#pragma redefine_extname игнорисано услед сукоба са претходним преименовањем"
+
+#: c-pragma.c:465
+#, gcc-internal-format
+msgid "#pragma redefine_extname ignored due to conflict with previous #pragma redefine_extname"
+msgstr "#pragma redefine_extname игнорисано услед сукоба са претходним #pragma redefine_extname"
+
+#: c-pragma.c:484
+#, gcc-internal-format
+msgid "malformed #pragma extern_prefix, ignored"
+msgstr "лоше формирано #pragma extern_prefix, игноришем"
+
+#: c-pragma.c:487
+#, gcc-internal-format
+msgid "junk at end of #pragma extern_prefix"
+msgstr "смеће на крају #pragma extern_prefix"
+
+#: c-pragma.c:494
+#, gcc-internal-format
+msgid "#pragma extern_prefix not supported on this target"
+msgstr "#pragma extern_prefix није подржано на овом циљу"
+
+#: c-pragma.c:520
+#, gcc-internal-format
+msgid "asm declaration ignored due to conflict with previous rename"
+msgstr "asm декларација игнорисана услед сукоба са претходним преименовањем"
+
+#: c-pragma.c:551
+#, gcc-internal-format
+msgid "#pragma redefine_extname ignored due to conflict with __asm__ declaration"
+msgstr "#pragma redefine_extname игнорисано услед сукоба са декларацијом __asm__"
+
+#: c-pragma.c:616
+#, gcc-internal-format
+msgid "#pragma GCC visibility must be followed by push or pop"
+msgstr "#pragma GCC visibility мора пратити push или pop"
+
+#: c-pragma.c:623
+#, gcc-internal-format
+msgid "no matching push for %<#pragma GCC visibility pop%>"
+msgstr "нема поклапајућег push за %<#pragma GCC visibility pop%>"
+
+#: c-pragma.c:635 c-pragma.c:661
+#, gcc-internal-format
+msgid "missing %<(%> after %<#pragma GCC visibility push%> - ignored"
+msgstr "недостаје %<(%> после %<#pragma GCC visibility push%> — игноришем"
+
+#: c-pragma.c:639
+#, gcc-internal-format
+msgid "malformed #pragma GCC visibility push"
+msgstr "лоше формирано #pragma GCC visibility push"
+
+#: c-pragma.c:656
+#, gcc-internal-format
+msgid "#pragma GCC visibility push() must specify default, internal, hidden or protected"
+msgstr "#pragma GCC visibility push() мора задати default, internal, hidden или protected"
+
+#: c-pragma.c:665
+#, gcc-internal-format
+msgid "junk at end of %<#pragma GCC visibility%>"
+msgstr "смеће на крају %<#pragma GCC visibility%>"
+
+#: c-typeck.c:156
+#, gcc-internal-format
+msgid "%qD has an incomplete type"
+msgstr "%qD има непотпун тип"
+
+#: c-typeck.c:177 cp/call.c:2693
+#, gcc-internal-format
+msgid "invalid use of void expression"
+msgstr "неисправна употреба израза празног типа"
+
+#: c-typeck.c:185
+#, gcc-internal-format
+msgid "invalid use of flexible array member"
+msgstr "неисправна употреба флексибилног чланског низа"
+
+#: c-typeck.c:191
+#, gcc-internal-format
+msgid "invalid use of array with unspecified bounds"
+msgstr "неисправна употреба низа са ненаведеним границама"
+
+#: c-typeck.c:199
+#, gcc-internal-format
+msgid "invalid use of undefined type %<%s %E%>"
+msgstr "неисправна употреба недефинисаног типа %<%s %E%>"
+
+#. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL.
+#: c-typeck.c:203
+#, gcc-internal-format
+msgid "invalid use of incomplete typedef %qD"
+msgstr "неисправна употреба непотпуног typedef %qD"
+
+#: c-typeck.c:430 c-typeck.c:455
+#, gcc-internal-format
+msgid "function types not truly compatible in ISO C"
+msgstr "функцијски типови нису истински сагласни у ИСО Ц-у "
+
+#: c-typeck.c:857
+#, gcc-internal-format
+msgid "types are not quite compatible"
+msgstr "типови нису сасвим сагласни"
+
+#: c-typeck.c:1175
+#, gcc-internal-format
+msgid "function return types not compatible due to %<volatile%>"
+msgstr "повратни типови функција нису сагласни услед %<volatile%>"
+
+#: c-typeck.c:1334 c-typeck.c:2628
+#, gcc-internal-format
+msgid "arithmetic on pointer to an incomplete type"
+msgstr "аритметика са показивачем на непотпун тип"
+
+#: c-typeck.c:1725
+#, gcc-internal-format
+msgid "%qT has no member named %qE"
+msgstr "%qT нема члан по имену %qE"
+
+#: c-typeck.c:1760
+#, gcc-internal-format
+msgid "request for member %qE in something not a structure or union"
+msgstr "захтев за члан %qE у нечему што није ни структура ни унија"
+
+#: c-typeck.c:1791
+#, gcc-internal-format
+msgid "dereferencing pointer to incomplete type"
+msgstr "разрешавање показивача на непотпун тип"
+
+#: c-typeck.c:1795
+#, gcc-internal-format
+msgid "dereferencing %<void *%> pointer"
+msgstr "разрешавање %<void *%> показивача"
+
+#: c-typeck.c:1812 cp/typeck.c:2197
+#, gcc-internal-format
+msgid "invalid type argument of %qs"
+msgstr "неисправан аргумент типа за %qs"
+
+#: c-typeck.c:1840 cp/typeck.c:2348
+#, gcc-internal-format
+msgid "subscripted value is neither array nor pointer"
+msgstr "индексирана вредност није ни низ ни показивач"
+
+#: c-typeck.c:1851 cp/typeck.c:2267 cp/typeck.c:2353
+#, gcc-internal-format
+msgid "array subscript is not an integer"
+msgstr "индекс низа није целобројан"
+
+#: c-typeck.c:1857
+#, gcc-internal-format
+msgid "subscripted value is pointer to function"
+msgstr "индексирана вредност је показивач на функцију"
+
+#: c-typeck.c:1870 cp/typeck.c:2263
+#, gcc-internal-format
+msgid "array subscript has type %<char%>"
+msgstr "индекс низа је типа %<char%>"
+
+#: c-typeck.c:1910
+#, gcc-internal-format
+msgid "ISO C forbids subscripting %<register%> array"
+msgstr "ИСО Ц забрањује %<register%> низове"
+
+#: c-typeck.c:1912
+#, gcc-internal-format
+msgid "ISO C90 forbids subscripting non-lvalue array"
+msgstr "ИСО Ц 90 забрањује индексирање не-л-вредносног низа"
+
+#: c-typeck.c:2154
+#, gcc-internal-format
+msgid "called object %qE is not a function"
+msgstr "позвани објекат %qE није функција"
+
+#. This situation leads to run-time undefined behavior. We can't,
+#. therefore, simply error unless we can prove that all possible
+#. executions of the program must execute the code.
+#: c-typeck.c:2181
+#, gcc-internal-format
+msgid "function called through a non-compatible type"
+msgstr "функција позвана кроз несагласан тип"
+
+#: c-typeck.c:2288
+#, gcc-internal-format
+msgid "too many arguments to function %qE"
+msgstr "превише аргумената за функцију %qE"
+
+#: c-typeck.c:2309
+#, gcc-internal-format
+msgid "type of formal parameter %d is incomplete"
+msgstr "тип формалног параметра %d није потпун"
+
+#: c-typeck.c:2322
+#, gcc-internal-format
+msgid "passing argument %d of %qE as integer rather than floating due to prototype"
+msgstr "прослеђивање аргумента %d за %qE као целобројног уместо као реалног, због прототипа"
+
+#: c-typeck.c:2327
+#, gcc-internal-format
+msgid "passing argument %d of %qE as integer rather than complex due to prototype"
+msgstr "прослеђивање аргумента %d за %qE као целобројног уместо као комплексног, због прототипа"
+
+#: c-typeck.c:2332
+#, gcc-internal-format
+msgid "passing argument %d of %qE as complex rather than floating due to prototype"
+msgstr "прослеђивање аргумента %d за %qE као комплексног уместо као реалног, због прототипа"
+
+#: c-typeck.c:2337
+#, gcc-internal-format
+msgid "passing argument %d of %qE as floating rather than integer due to prototype"
+msgstr "прослеђивање аргумента %d за %qE као реалног уместо као целобројног, због прототипа"
+
+#: c-typeck.c:2342
+#, gcc-internal-format
+msgid "passing argument %d of %qE as complex rather than integer due to prototype"
+msgstr "прослеђивање аргумента %d за %qE као комплексног уместо као целобројног, због прототипа"
+
+#: c-typeck.c:2347
+#, gcc-internal-format
+msgid "passing argument %d of %qE as floating rather than complex due to prototype"
+msgstr "прослеђивање аргумента %d за %qE као реалног уместо као комплексног, због прототипа"
+
+#: c-typeck.c:2359
+#, gcc-internal-format
+msgid "passing argument %d of %qE as %<float%> rather than %<double%> due to prototype"
+msgstr "прослеђивање аргумента %d за %qE као %<float%> уместо као %<double%>, због прототипа"
+
+#: c-typeck.c:2379
+#, gcc-internal-format
+msgid "passing argument %d of %qE with different width due to prototype"
+msgstr "прослеђивање аргумента %d за %qE са различитом ширином, због прототипа"
+
+#: c-typeck.c:2402
+#, gcc-internal-format
+msgid "passing argument %d of %qE as unsigned due to prototype"
+msgstr "прослеђивање аргумента %d за %qE као неозначеног, због прототипа"
+
+#: c-typeck.c:2406
+#, gcc-internal-format
+msgid "passing argument %d of %qE as signed due to prototype"
+msgstr "прослеђивање аргумента %d за %qE као означеног, због прототипа"
+
+#: c-typeck.c:2496
+#, gcc-internal-format
+msgid "suggest parentheses around + or - inside shift"
+msgstr "предложи заграде око + или - унутар помака"
+
+#: c-typeck.c:2504
+#, gcc-internal-format
+msgid "suggest parentheses around && within ||"
+msgstr "предложи заграде око && унутар ||"
+
+#: c-typeck.c:2514
+#, gcc-internal-format
+msgid "suggest parentheses around arithmetic in operand of |"
+msgstr "предложи заграде око аритметике у операнду уз |"
+
+#: c-typeck.c:2519
+#, gcc-internal-format
+msgid "suggest parentheses around comparison in operand of |"
+msgstr "предложи заграде око поређења у операнду уз |"
+
+#: c-typeck.c:2529
+#, gcc-internal-format
+msgid "suggest parentheses around arithmetic in operand of ^"
+msgstr "предложи заграде око аритметике у операнду уз ^"
+
+#: c-typeck.c:2534
+#, gcc-internal-format
+msgid "suggest parentheses around comparison in operand of ^"
+msgstr "предложи заграде око поређења у операнду уз ^"
+
+#: c-typeck.c:2542
+#, gcc-internal-format
+msgid "suggest parentheses around + or - in operand of &"
+msgstr "предложи заграде око + или - у операнду уз &"
+
+#: c-typeck.c:2547
+#, gcc-internal-format
+msgid "suggest parentheses around comparison in operand of &"
+msgstr "предложи заграде око поређења у операнду уз &"
+
+#: c-typeck.c:2553
+#, gcc-internal-format
+msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
+msgstr "поређења као X<=Y<=Z немају своје математичко значење"
+
+#: c-typeck.c:2580
+#, gcc-internal-format
+msgid "pointer of type %<void *%> used in subtraction"
+msgstr "показивачи типа %<void *%> употребљени у одузимању"
+
+#: c-typeck.c:2582
+#, gcc-internal-format
+msgid "pointer to a function used in subtraction"
+msgstr "показивач на функцију употребљен у одузимању"
+
+#: c-typeck.c:2679
+#, gcc-internal-format
+msgid "wrong type argument to unary plus"
+msgstr "погрешан тип аргумента уз унарно плус"
+
+#: c-typeck.c:2692
+#, gcc-internal-format
+msgid "wrong type argument to unary minus"
+msgstr "погрешан тип аргумента уз унарно минус"
+
+#: c-typeck.c:2709
+#, gcc-internal-format
+msgid "ISO C does not support %<~%> for complex conjugation"
+msgstr "ИСО Ц не подржава %<~%> за комплексну конјугацију"
+
+#: c-typeck.c:2715
+#, gcc-internal-format
+msgid "wrong type argument to bit-complement"
+msgstr "погрешан тип аргумента уз битски комплемент"
+
+#: c-typeck.c:2723
+#, gcc-internal-format
+msgid "wrong type argument to abs"
+msgstr "погрешан тип аргумента за abs"
+
+#: c-typeck.c:2735
+#, gcc-internal-format
+msgid "wrong type argument to conjugation"
+msgstr "погрешан тип аргумента за конјугацију"
+
+#: c-typeck.c:2747
+#, gcc-internal-format
+msgid "wrong type argument to unary exclamation mark"
+msgstr "погрешан тип аргумента уз унарни знак узвика"
+
+#: c-typeck.c:2784
+#, gcc-internal-format
+msgid "ISO C does not support %<++%> and %<--%> on complex types"
+msgstr "ИСО Ц не подржава %<++%> и %<--%> за комплексне типове"
+
+#: c-typeck.c:2800 c-typeck.c:2832
+#, gcc-internal-format
+msgid "wrong type argument to increment"
+msgstr "погрешан тип аргумента уз увећање"
+
+#: c-typeck.c:2802 c-typeck.c:2834
+#, gcc-internal-format
+msgid "wrong type argument to decrement"
+msgstr "погрешан тип аргумента уз умањење"
+
+#: c-typeck.c:2823
+#, gcc-internal-format
+msgid "increment of pointer to unknown structure"
+msgstr "увећање показивача на непознату структуру"
+
+#: c-typeck.c:2825
+#, gcc-internal-format
+msgid "decrement of pointer to unknown structure"
+msgstr "умањење показивача на непознату структуру"
+
+#: c-typeck.c:3002
+#, gcc-internal-format
+msgid "assignment of read-only member %qD"
+msgstr "додела само-за-читање члану %qD"
+
+#: c-typeck.c:3003
+#, gcc-internal-format
+msgid "increment of read-only member %qD"
+msgstr "увећање само-за-читање члана %qD"
+
+#: c-typeck.c:3004
+#, gcc-internal-format
+msgid "decrement of read-only member %qD"
+msgstr "умањење само-за-читање члана %qD"
+
+#: c-typeck.c:3005
+#, gcc-internal-format
+msgid "read-only member %qD used as %<asm%> output"
+msgstr "само-за-читање члан %qD употребљен као %<asm%> излаз"
+
+#: c-typeck.c:3009
+#, gcc-internal-format
+msgid "assignment of read-only variable %qD"
+msgstr "додела само-за-читање променљивој %qD"
+
+#: c-typeck.c:3010
+#, gcc-internal-format
+msgid "increment of read-only variable %qD"
+msgstr "увећање само-за-читање променљиве %qD"
+
+#: c-typeck.c:3011
+#, gcc-internal-format
+msgid "decrement of read-only variable %qD"
+msgstr "умањење само-за-читање променљиве %qD"
+
+#: c-typeck.c:3012
+#, gcc-internal-format
+msgid "read-only variable %qD used as %<asm%> output"
+msgstr "само-за-читање променљива %qD употребљена као %<asm%> излаз"
+
+#: c-typeck.c:3015
+#, gcc-internal-format
+msgid "assignment of read-only location"
+msgstr "додела само-за-читање локацији"
+
+#: c-typeck.c:3016
+#, gcc-internal-format
+msgid "increment of read-only location"
+msgstr "увећање само-за-читање локације"
+
+#: c-typeck.c:3017
+#, gcc-internal-format
+msgid "decrement of read-only location"
+msgstr "умањење само-за-читање локације"
+
+#: c-typeck.c:3018
+#, gcc-internal-format
+msgid "read-only location used as %<asm%> output"
+msgstr "само-за-читање локација употребљена као %<asm%> излаз"
+
+#: c-typeck.c:3053
+#, gcc-internal-format
+msgid "cannot take address of bit-field %qD"
+msgstr "не може се узети адреса битског поља %qD"
+
+#: c-typeck.c:3081
+#, gcc-internal-format
+msgid "global register variable %qD used in nested function"
+msgstr "глобална регистарска променљива %qD употребљена у угњежденој функцији"
+
+#: c-typeck.c:3084
+#, gcc-internal-format
+msgid "register variable %qD used in nested function"
+msgstr "регистарска променљива %qD употребљена у угњежденој функцији"
+
+#: c-typeck.c:3089
+#, gcc-internal-format
+msgid "address of global register variable %qD requested"
+msgstr "затражена адреса глобалне регистарске променљиве %qD"
+
+#: c-typeck.c:3091
+#, gcc-internal-format
+msgid "address of register variable %qD requested"
+msgstr "затражена адреса регистарске променљиве %qD"
+
+#: c-typeck.c:3137
+#, gcc-internal-format
+msgid "non-lvalue array in conditional expression"
+msgstr "не-л-вредносни низ у условном изразу"
+
+#: c-typeck.c:3181
+#, gcc-internal-format
+msgid "signed and unsigned type in conditional expression"
+msgstr "означени и неозначени типови у условном изразу"
+
+#: c-typeck.c:3188
+#, gcc-internal-format
+msgid "ISO C forbids conditional expr with only one void side"
+msgstr "ИСО Ц забрањује условне изразе са само једном празном страном"
+
+#: c-typeck.c:3204 c-typeck.c:3212
+#, gcc-internal-format
+msgid "ISO C forbids conditional expr between %<void *%> and function pointer"
+msgstr "ИСО Ц забрањује условни израз између %<void *%> и функцијског показивача"
+
+#: c-typeck.c:3219
+#, gcc-internal-format
+msgid "pointer type mismatch in conditional expression"
+msgstr "неслагање показивачких типова у условном изразу"
+
+#: c-typeck.c:3226 c-typeck.c:3236
+#, gcc-internal-format
+msgid "pointer/integer type mismatch in conditional expression"
+msgstr "неслагање типова показивача или целобројних у условном изразу"
+
+#: c-typeck.c:3250
+#, gcc-internal-format
+msgid "type mismatch in conditional expression"
+msgstr "неслагање типова у условном изразу"
+
+#: c-typeck.c:3290
+#, gcc-internal-format
+msgid "left-hand operand of comma expression has no effect"
+msgstr "леви операнд зарез-израза нема ефекта"
+
+#: c-typeck.c:3324
+#, gcc-internal-format
+msgid "cast specifies array type"
+msgstr "претапање наводи низовни тип"
+
+#: c-typeck.c:3330
+#, gcc-internal-format
+msgid "cast specifies function type"
+msgstr "претапање наводи функцијски тип"
+
+#: c-typeck.c:3340
+#, gcc-internal-format
+msgid "ISO C forbids casting nonscalar to the same type"
+msgstr "ИСО Ц забрањује претапање нескалара у исти тип"
+
+#: c-typeck.c:3357
+#, gcc-internal-format
+msgid "ISO C forbids casts to union type"
+msgstr "ИСО Ц забрањује претапање у унијски тип"
+
+#: c-typeck.c:3365
+#, gcc-internal-format
+msgid "cast to union type from type not present in union"
+msgstr "претапање у унијски тип из типа који не чини унију"
+
+#: c-typeck.c:3411
+#, gcc-internal-format
+msgid "cast adds new qualifiers to function type"
+msgstr "претапање додаје нове одредбе функцијском типу"
+
+#. There are qualifiers present in IN_OTYPE that are not
+#. present in IN_TYPE.
+#: c-typeck.c:3416
+#, gcc-internal-format
+msgid "cast discards qualifiers from pointer target type"
+msgstr "претапање одбацује одредбе са циљног типа показивача"
+
+#: c-typeck.c:3432
+#, gcc-internal-format
+msgid "cast increases required alignment of target type"
+msgstr "претапање увећава неопходно равнање циљног типа"
+
+#: c-typeck.c:3439
+#, gcc-internal-format
+msgid "cast from pointer to integer of different size"
+msgstr "претапање из показивача у целобројни различите величине"
+
+#: c-typeck.c:3443
+#, gcc-internal-format
+msgid "cast from function call of type %qT to non-matching type %qT"
+msgstr "претапање из функцијског позива типа %qT у непоклапајући тип %qT"
+
+#: c-typeck.c:3451
+#, gcc-internal-format
+msgid "cast to pointer from integer of different size"
+msgstr "претапање из целобројног у показивач различите величине"
+
+#: c-typeck.c:3464
+#, gcc-internal-format
+msgid "ISO C forbids conversion of function pointer to object pointer type"
+msgstr "ИСО Ц забрањује претварање показивача на функцију у показивач на објекат"
+
+#: c-typeck.c:3473
+#, gcc-internal-format
+msgid "ISO C forbids conversion of object pointer to function pointer type"
+msgstr "ИСО Ц забрањује претварање показивача на објекат у показивач на функцијски тип"
+
+#: c-typeck.c:3747
+#, gcc-internal-format
+msgid "cannot pass rvalue to reference parameter"
+msgstr "д-вредност се не може проследити упућивачком параметру"
+
+#: c-typeck.c:3854 c-typeck.c:4022
+#, gcc-internal-format
+msgid "passing argument %d of %qE makes qualified function pointer from unqualified"
+msgstr "прослеђивање аргумента %d од %qE прави одређени функцијски показивач од неодређеног"
+
+#: c-typeck.c:3857 c-typeck.c:4025
+#, gcc-internal-format
+msgid "assignment makes qualified function pointer from unqualified"
+msgstr "додела прави одређени функцијски показивач од неодређеног"
+
+#: c-typeck.c:3860 c-typeck.c:4027
+#, gcc-internal-format
+msgid "initialization makes qualified function pointer from unqualified"
+msgstr "успостављање прави одређени функцијски показивач од неодређеног"
+
+#: c-typeck.c:3863 c-typeck.c:4029
+#, gcc-internal-format
+msgid "return makes qualified function pointer from unqualified"
+msgstr "повратак прави одређени функцијски показивач од неодређеног"
+
+#: c-typeck.c:3867 c-typeck.c:3989
+#, gcc-internal-format
+msgid "passing argument %d of %qE discards qualifiers from pointer target type"
+msgstr "прослеђивање аргумента %d од %qE одбацује одредбе са циљног типа показивача"
+
+#: c-typeck.c:3869 c-typeck.c:3991
+#, gcc-internal-format
+msgid "assignment discards qualifiers from pointer target type"
+msgstr "додела одбацује одредбе са циљног типа показивача"
+
+#: c-typeck.c:3871 c-typeck.c:3993
+#, gcc-internal-format
+msgid "initialization discards qualifiers from pointer target type"
+msgstr "успостављање одбацује одредбе са циљног типа показивача"
+
+#: c-typeck.c:3873 c-typeck.c:3995
+#, gcc-internal-format
+msgid "return discards qualifiers from pointer target type"
+msgstr "повратак одбацује одредбе са циљног типа показивача"
+
+#: c-typeck.c:3880
+#, gcc-internal-format
+msgid "ISO C prohibits argument conversion to union type"
+msgstr "ИСО Ц забрањује претварање аргумента у унијски тип"
+
+#: c-typeck.c:3915
+#, gcc-internal-format
+msgid "request for implicit conversion from %qT to %qT not permitted in C++"
+msgstr "захтев за имплицтно претварање из %qT у %qT није дозвољен у Ц++у"
+
+#: c-typeck.c:3928
+#, gcc-internal-format
+msgid "argument %d of %qE might be a candidate for a format attribute"
+msgstr "аргумент %d од %qE може бити кандидат за форматски атрибут"
+
+#: c-typeck.c:3934
+#, gcc-internal-format
+msgid "assignment left-hand side might be a candidate for a format attribute"
+msgstr "лева страна доделе може бити кандидат за форматски атрибут"
+
+#: c-typeck.c:3939
+#, gcc-internal-format
+msgid "initialization left-hand side might be a candidate for a format attribute"
+msgstr "лева страна успостављања може бити кандидат за форматски атрибут"
+
+#: c-typeck.c:3944
+#, gcc-internal-format
+msgid "return type might be a candidate for a format attribute"
+msgstr "повратни тип може бити кандидат за форматски атрибут"
+
+#: c-typeck.c:3969
+#, gcc-internal-format
+msgid "ISO C forbids passing argument %d of %qE between function pointer and %<void *%>"
+msgstr "ИСО Ц забрањује прослеђивање аргумента %d од %qE између функцијског показивача и %<void *%>"
+
+#: c-typeck.c:3972
+#, gcc-internal-format
+msgid "ISO C forbids assignment between function pointer and %<void *%>"
+msgstr "ИСО Ц забрањује доделу између функцијског показивача и %<void *%>"
+
+#: c-typeck.c:3974
+#, gcc-internal-format
+msgid "ISO C forbids initialization between function pointer and %<void *%>"
+msgstr "ИСО Ц забрањује успостављање између функцијског показивача и %<void *%>"
+
+#: c-typeck.c:3976
+#, gcc-internal-format
+msgid "ISO C forbids return between function pointer and %<void *%>"
+msgstr "ИСО Ц забрањује повратак између функцијског показивача и %<void *%>"
+
+#: c-typeck.c:4005
+#, gcc-internal-format
+msgid "pointer targets in passing argument %d of %qE differ in signedness"
+msgstr "циљеви показивача у прослеђивању аргумента %d за %qE разликују се у означености"
+
+#: c-typeck.c:4007
+#, gcc-internal-format
+msgid "pointer targets in assignment differ in signedness"
+msgstr "циљеви показивача у додели разликују се у означености"
+
+#: c-typeck.c:4009
+#, gcc-internal-format
+msgid "pointer targets in initialization differ in signedness"
+msgstr "циљеви показивача у успостављању разликују се у означености"
+
+#: c-typeck.c:4011
+#, gcc-internal-format
+msgid "pointer targets in return differ in signedness"
+msgstr "циљеви показивача у повратку разликују се у означености"
+
+#: c-typeck.c:4036
+#, gcc-internal-format
+msgid "passing argument %d of %qE from incompatible pointer type"
+msgstr "прослеђивање аргумента %d од %qE из несагласног показивачког типа"
+
+#: c-typeck.c:4038
+#, gcc-internal-format
+msgid "assignment from incompatible pointer type"
+msgstr "додела из несагласног показивачког типа"
+
+#: c-typeck.c:4039
+#, gcc-internal-format
+msgid "initialization from incompatible pointer type"
+msgstr "успостављање из несагласног показивачког типа"
+
+#: c-typeck.c:4041
+#, gcc-internal-format
+msgid "return from incompatible pointer type"
+msgstr "повратак из несагласног показивачког типа"
+
+#: c-typeck.c:4063
+#, gcc-internal-format
+msgid "passing argument %d of %qE makes pointer from integer without a cast"
+msgstr "прослеђивање аргумента %d од %qE прави показивач од целобројног без претапања"
+
+#: c-typeck.c:4065
+#, gcc-internal-format
+msgid "assignment makes pointer from integer without a cast"
+msgstr "додела прави показивач од целобројног без претапања"
+
+#: c-typeck.c:4067
+#, gcc-internal-format
+msgid "initialization makes pointer from integer without a cast"
+msgstr "успостављање прави показивач од целобројног без претапања"
+
+#: c-typeck.c:4069
+#, gcc-internal-format
+msgid "return makes pointer from integer without a cast"
+msgstr "повратак прави показивач од целобројног без претапања"
+
+#: c-typeck.c:4076
+#, gcc-internal-format
+msgid "passing argument %d of %qE makes integer from pointer without a cast"
+msgstr "прослеђивање аргумента %d од %qE прави целобројни од показивача без претапања"
+
+#: c-typeck.c:4078
+#, gcc-internal-format
+msgid "assignment makes integer from pointer without a cast"
+msgstr "додела прави целобројни од показивача без претапања"
+
+#: c-typeck.c:4080
+#, gcc-internal-format
+msgid "initialization makes integer from pointer without a cast"
+msgstr "успостављање прави целобројни од показивача без претапања"
+
+#: c-typeck.c:4082
+#, gcc-internal-format
+msgid "return makes integer from pointer without a cast"
+msgstr "повратак прави целобројни од показивача без претапања"
+
+#: c-typeck.c:4098
+#, gcc-internal-format
+msgid "incompatible types in assignment"
+msgstr "несагласни типови у додели"
+
+#: c-typeck.c:4101
+#, gcc-internal-format
+msgid "incompatible types in initialization"
+msgstr "несагласни типови у успостављању"
+
+#: c-typeck.c:4104
+#, gcc-internal-format
+msgid "incompatible types in return"
+msgstr "несагласни типови у повратку"
+
+#: c-typeck.c:4185
+#, gcc-internal-format
+msgid "traditional C rejects automatic aggregate initialization"
+msgstr "традиционални Ц одбија аутоматску успостављање скупина"
+
+#: c-typeck.c:4353 c-typeck.c:4368 c-typeck.c:4383
+#, gcc-internal-format
+msgid "(near initialization for %qs)"
+msgstr "(близу успостављања за %qs)"
+
+#: c-typeck.c:4921 cp/decl.c:4597
+#, gcc-internal-format
+msgid "opaque vector types cannot be initialized"
+msgstr "непрозирни векторски типови не могу бити успостављени"
+
+#: c-typeck.c:5551
+#, gcc-internal-format
+msgid "unknown field %qE specified in initializer"
+msgstr "непознато поље %qE наведено у успостављачу"
+
+#: c-typeck.c:6445
+#, gcc-internal-format
+msgid "traditional C rejects initialization of unions"
+msgstr "традиционални Ц одбија успостављање унија"
+
+#: c-typeck.c:6753
+#, gcc-internal-format
+msgid "jump into statement expression"
+msgstr "скок у наредбени израз"
+
+#: c-typeck.c:6759
+#, gcc-internal-format
+msgid "jump into scope of identifier with variably modified type"
+msgstr "скок у досег идентификатора са променљиво измењивим типом"
+
+#: c-typeck.c:6796
+#, gcc-internal-format
+msgid "ISO C forbids %<goto *expr;%>"
+msgstr "ИСО Ц забрањује %<goto *expr;%>"
+
+#: c-typeck.c:6811 cp/typeck.c:6262
+#, gcc-internal-format
+msgid "function declared %<noreturn%> has a %<return%> statement"
+msgstr "функција декларисана са %<noreturn%> има наредбу %<return%>"
+
+#: c-typeck.c:6819
+#, gcc-internal-format
+msgid "%<return%> with no value, in function returning non-void"
+msgstr "%<return%> без вредности у функцији која не враћа празан тип"
+
+#: c-typeck.c:6828
+#, gcc-internal-format
+msgid "%<return%> with a value, in function returning void"
+msgstr "%<return%> са вредношћу у функцији која враћа празан тип"
+
+#: c-typeck.c:6885
+#, gcc-internal-format
+msgid "function returns address of local variable"
+msgstr "функција враћа адресу на локалну променљиву"
+
+#: c-typeck.c:6958 cp/semantics.c:916
+#, gcc-internal-format
+msgid "switch quantity not an integer"
+msgstr "величина у прекидачу није целобројна"
+
+#: c-typeck.c:6969
+#, gcc-internal-format
+msgid "%<long%> switch expression not converted to %<int%> in ISO C"
+msgstr "%<long%> израз у прекидачу не претвара се у %<int%> у ИСО Ц-у"
+
+#: c-typeck.c:7010
+#, gcc-internal-format
+msgid "case label in statement expression not containing enclosing switch statement"
+msgstr "етикета случаја у наредбеном изразу не садржи обухватајућу наредбу прекидача"
+
+#: c-typeck.c:7013
+#, gcc-internal-format
+msgid "%<default%> label in statement expression not containing enclosing switch statement"
+msgstr "етикета %<default%> у наредбеном изразу не садржи обухватајућу наредбу прекидача"
+
+#: c-typeck.c:7019
+#, gcc-internal-format
+msgid "case label in scope of identifier with variably modified type not containing enclosing switch statement"
+msgstr "етикета случаја у досегу идентификатора са променљиво измењивим типом не садржи обухватајућу наредбу прекидача"
+
+#: c-typeck.c:7022
+#, gcc-internal-format
+msgid "%<default%> label in scope of identifier with variably modified type not containing enclosing switch statement"
+msgstr "етикета %<default%> у досегу идентификатора са променљиво измењивим типом не садржи обухватајућу наредбу прекидача"
+
+#: c-typeck.c:7026 cp/parser.c:6207
+#, gcc-internal-format
+msgid "case label not within a switch statement"
+msgstr "етикета случаја није у оквиру наредбе прекидача"
+
+#: c-typeck.c:7028
+#, gcc-internal-format
+msgid "%<default%> label not within a switch statement"
+msgstr "етикета %<default%> није у оквиру наредбе прекидача"
+
+#: c-typeck.c:7105
+#, gcc-internal-format
+msgid "%Hsuggest explicit braces to avoid ambiguous %<else%>"
+msgstr "%Hпредложи експлицитне витичасте заграде ради избегавања двосмисленог %<else%>"
+
+#: c-typeck.c:7124
+#, gcc-internal-format
+msgid "%Hempty body in an if-statement"
+msgstr "%Hпразно тело у наредби if"
+
+#: c-typeck.c:7133
+#, gcc-internal-format
+msgid "%Hempty body in an else-statement"
+msgstr "%Hпразно тело у наредби else"
+
+#: c-typeck.c:7242 cp/cp-gimplify.c:118 cp/parser.c:6704
+#, gcc-internal-format
+msgid "break statement not within loop or switch"
+msgstr "наредба искакања није у оквиру петље или прекидача"
+
+#: c-typeck.c:7244 cp/parser.c:6715
+#, gcc-internal-format
+msgid "continue statement not within a loop"
+msgstr "наредба настављања није у оквиру петље"
+
+#: c-typeck.c:7264
+#, gcc-internal-format
+msgid "%Hstatement with no effect"
+msgstr "%Hнаредба без ефекта"
+
+#: c-typeck.c:7286
+#, gcc-internal-format
+msgid "expression statement has incomplete type"
+msgstr "наредба израза има непотпун тип"
+
+#: c-typeck.c:7744 c-typeck.c:7785
+#, gcc-internal-format
+msgid "division by zero"
+msgstr "дељење нулом"
+
+#: c-typeck.c:7830 cp/typeck.c:3036
+#, gcc-internal-format
+msgid "right shift count is negative"
+msgstr "негативан десни помак"
+
+#: c-typeck.c:7837 cp/typeck.c:3042
+#, gcc-internal-format
+msgid "right shift count >= width of type"
+msgstr "десни помак >= од ширине типа"
+
+#: c-typeck.c:7858 cp/typeck.c:3061
+#, gcc-internal-format
+msgid "left shift count is negative"
+msgstr "негативан леви помак"
+
+#: c-typeck.c:7861 cp/typeck.c:3063
+#, gcc-internal-format
+msgid "left shift count >= width of type"
+msgstr "леви помак >= од ширине типа"
+
+#: c-typeck.c:7879 cp/typeck.c:3098
+#, gcc-internal-format
+msgid "comparing floating point with == or != is unsafe"
+msgstr "поређење реалних помоћу == или != није безбедно"
+
+#: c-typeck.c:7903 c-typeck.c:7910
+#, gcc-internal-format
+msgid "ISO C forbids comparison of %<void *%> with function pointer"
+msgstr "ИСО Ц забрањује поређење %<void *%> и функцијског показивача"
+
+#: c-typeck.c:7916 c-typeck.c:7962
+#, gcc-internal-format
+msgid "comparison of distinct pointer types lacks a cast"
+msgstr "поређењу различитих показивачких типова недостаје претапање"
+
+#: c-typeck.c:7930 c-typeck.c:7935 c-typeck.c:7982 c-typeck.c:7987
+#, gcc-internal-format
+msgid "comparison between pointer and integer"
+msgstr "поређење између показивача и целобројног"
+
+#: c-typeck.c:7954
+#, gcc-internal-format
+msgid "comparison of complete and incomplete pointers"
+msgstr "поређење потпуног и непотпуног показивача"
+
+#: c-typeck.c:7957
+#, gcc-internal-format
+msgid "ISO C forbids ordered comparisons of pointers to functions"
+msgstr "ИСО Ц забрањује поређена уређености показивача на функције"
+
+#: c-typeck.c:7970 c-typeck.c:7977
+#, gcc-internal-format
+msgid "ordered comparison of pointer with integer zero"
+msgstr "поређење уређености показивача са целобројном нулом"
+
+#: c-typeck.c:8207
+#, gcc-internal-format
+msgid "comparison between signed and unsigned"
+msgstr "поређење означеног и неозначеног"
+
+#: c-typeck.c:8253 cp/typeck.c:3521
+#, gcc-internal-format
+msgid "comparison of promoted ~unsigned with constant"
+msgstr "поређење унапређеног ~неозначеног са константом"
+
+#: c-typeck.c:8261 cp/typeck.c:3529
+#, gcc-internal-format
+msgid "comparison of promoted ~unsigned with unsigned"
+msgstr "поређење унапређеног ~неозначеног са неозначеним"
+
+#: c-typeck.c:8319
+#, gcc-internal-format
+msgid "used array that cannot be converted to pointer where scalar is required"
+msgstr "употребљен низ који се не може претворити у показивач где се захтева скалар"
+
+#: c-typeck.c:8323
+#, gcc-internal-format
+msgid "used struct type value where scalar is required"
+msgstr "употребљена вредност структурног типа где се захтева скалар"
+
+#: c-typeck.c:8327
+#, gcc-internal-format
+msgid "used union type value where scalar is required"
+msgstr "употребљена вредност унијског типа где се захтева скалар"
+
+#: calls.c:1929
+#, gcc-internal-format
+msgid "function call has aggregate value"
+msgstr "позив функције има скупинску вредност"
+
+#: cfgexpand.c:1597
+#, gcc-internal-format
+msgid "not protecting local variables: variable length buffer"
+msgstr "не штитим локалне променљиве: бафер променљиве величине"
+
+#: cfgexpand.c:1599
+#, gcc-internal-format
+msgid "not protecting function: no buffer at least %d bytes long"
+msgstr "не штитим функцију: нема бафера великог бар %d бајтова"
+
+#: cfghooks.c:90
+#, gcc-internal-format
+msgid "bb %d on wrong place"
+msgstr "об. %d на погрешном месту"
+
+#: cfghooks.c:96
+#, gcc-internal-format
+msgid "prev_bb of %d should be %d, not %d"
+msgstr "prev_bb за %d треба да је %d, а не %d"
+
+#: cfghooks.c:113
+#, gcc-internal-format
+msgid "verify_flow_info: Wrong count of block %i %i"
+msgstr "verify_flow_info: Погрешан збир блока %i %i"
+
+#: cfghooks.c:119
+#, gcc-internal-format
+msgid "verify_flow_info: Wrong frequency of block %i %i"
+msgstr "verify_flow_info: Погрешна учестаност блока %i %i"
+
+#: cfghooks.c:127
+#, gcc-internal-format
+msgid "verify_flow_info: Duplicate edge %i->%i"
+msgstr "verify_flow_info: Удвостручена ивица %i->%i"
+
+#: cfghooks.c:133
+#, gcc-internal-format
+msgid "verify_flow_info: Wrong probability of edge %i->%i %i"
+msgstr "verify_flow_info: Погрешна вероватноћа ивице %i->%i %i"
+
+#: cfghooks.c:139
+#, gcc-internal-format
+msgid "verify_flow_info: Wrong count of edge %i->%i %i"
+msgstr "verify_flow_info: Погрешан збир ивице %i->%i %i"
+
+#: cfghooks.c:151
+#, gcc-internal-format
+msgid "verify_flow_info: Basic block %d succ edge is corrupted"
+msgstr "verify_flow_info: Искварена наследне ивица основног блока %d"
+
+#: cfghooks.c:165 cfgrtl.c:2045
+#, gcc-internal-format
+msgid "wrong amount of branch edges after unconditional jump %i"
+msgstr "погрешан број гранских ивица после безусловног скока %i"
+
+#: cfghooks.c:173 cfghooks.c:184
+#, gcc-internal-format
+msgid "basic block %d pred edge is corrupted"
+msgstr "искварена претходна ивица основног блока %d"
+
+#: cfghooks.c:185
+#, gcc-internal-format
+msgid "its dest_idx should be %d, not %d"
+msgstr "њен dest_idx треба да је %d, не %d"
+
+#: cfghooks.c:214
+#, gcc-internal-format
+msgid "basic block %i edge lists are corrupted"
+msgstr "искварене листе ивица основног блока %i"
+
+#: cfghooks.c:227
+#, gcc-internal-format
+msgid "verify_flow_info failed"
+msgstr "verify_flow_info није успело"
+
+#: cfghooks.c:288
+#, gcc-internal-format
+msgid "%s does not support redirect_edge_and_branch"
+msgstr "%s не подржава redirect_edge_and_branch"
+
+#: cfghooks.c:306
+#, gcc-internal-format
+msgid "%s does not support redirect_edge_and_branch_force"
+msgstr "%s не подржава redirect_edge_and_branch_force"
+
+#: cfghooks.c:324
+#, gcc-internal-format
+msgid "%s does not support split_block"
+msgstr "%s не подржава split_block"
+
+#: cfghooks.c:360
+#, gcc-internal-format
+msgid "%s does not support move_block_after"
+msgstr "%s не подржава move_block_after"
+
+#: cfghooks.c:373
+#, gcc-internal-format
+msgid "%s does not support delete_basic_block"
+msgstr "%s не подржава delete_basic_block"
+
+#: cfghooks.c:405
+#, gcc-internal-format
+msgid "%s does not support split_edge"
+msgstr "%s не подржава split_edge"
+
+#: cfghooks.c:466
+#, gcc-internal-format
+msgid "%s does not support create_basic_block"
+msgstr "%s не подржава create_basic_block"
+
+#: cfghooks.c:494
+#, gcc-internal-format
+msgid "%s does not support can_merge_blocks_p"
+msgstr "%s не подржава can_merge_blocks_p"
+
+#: cfghooks.c:505
+#, gcc-internal-format
+msgid "%s does not support predict_edge"
+msgstr "%s не подржава predict_edge"
+
+#: cfghooks.c:514
+#, gcc-internal-format
+msgid "%s does not support predicted_by_p"
+msgstr "%s не подржава predicted_by_p"
+
+#: cfghooks.c:528
+#, gcc-internal-format
+msgid "%s does not support merge_blocks"
+msgstr "%s не подржава merge_blocks"
+
+#: cfghooks.c:573
+#, gcc-internal-format
+msgid "%s does not support make_forwarder_block"
+msgstr "%s не подржава make_forwarder_block"
+
+#: cfghooks.c:678
+#, gcc-internal-format
+msgid "%s does not support can_duplicate_block_p"
+msgstr "%s не подржава can_duplicate_block_p"
+
+#: cfghooks.c:706
+#, gcc-internal-format
+msgid "%s does not support duplicate_block"
+msgstr "%s не подржава duplicate_block"
+
+#: cfghooks.c:774
+#, gcc-internal-format
+msgid "%s does not support block_ends_with_call_p"
+msgstr "%s не подржава block_ends_with_call_p"
+
+#: cfghooks.c:785
+#, gcc-internal-format
+msgid "%s does not support block_ends_with_condjump_p"
+msgstr "%s не подржава block_ends_with_condjump_p"
+
+#: cfghooks.c:803
+#, gcc-internal-format
+msgid "%s does not support flow_call_edges_add"
+msgstr "%s не подржава flow_call_edges_add"
+
+#: cfgloop.c:1088
+#, gcc-internal-format
+msgid "size of loop %d should be %d, not %d"
+msgstr "величина петље %d треба да је %d, не %d"
+
+#: cfgloop.c:1105
+#, gcc-internal-format
+msgid "bb %d do not belong to loop %d"
+msgstr "об. %d не припада петљи %d"
+
+#: cfgloop.c:1122
+#, gcc-internal-format
+msgid "loop %d's header does not have exactly 2 entries"
+msgstr "заглавље петље %d нема тачно две ставке"
+
+#: cfgloop.c:1129
+#, gcc-internal-format
+msgid "loop %d's latch does not have exactly 1 successor"
+msgstr "реза петље %d нема тачно један наследник"
+
+#: cfgloop.c:1134
+#, gcc-internal-format
+msgid "loop %d's latch does not have header as successor"
+msgstr "реза петље %d нема једно заглавље као наследник"
+
+#: cfgloop.c:1139
+#, gcc-internal-format
+msgid "loop %d's latch does not belong directly to it"
+msgstr "реза петље %d не припада петљи непосредно"
+
+#: cfgloop.c:1145
+#, gcc-internal-format
+msgid "loop %d's header does not belong directly to it"
+msgstr "заглавље петље %d не припада петљи непосредно"
+
+#: cfgloop.c:1151
+#, gcc-internal-format
+msgid "loop %d's latch is marked as part of irreducible region"
+msgstr "реза петље %d је означена као део несводљиве области"
+
+#: cfgloop.c:1184
+#, gcc-internal-format
+msgid "basic block %d should be marked irreducible"
+msgstr "основни блок %d треба да је означен несводљивим"
+
+#: cfgloop.c:1190
+#, gcc-internal-format
+msgid "basic block %d should not be marked irreducible"
+msgstr "основни блок %d не треба да је означен несводљивим"
+
+#: cfgloop.c:1198
+#, gcc-internal-format
+msgid "edge from %d to %d should be marked irreducible"
+msgstr "ивица од %d до %d треба да је означена несводљивом"
+
+#: cfgloop.c:1205
+#, gcc-internal-format
+msgid "edge from %d to %d should not be marked irreducible"
+msgstr "ивица од %d до %d не треба да је означена несводљивом"
+
+#: cfgloop.c:1240
+#, gcc-internal-format
+msgid "wrong single exit %d->%d recorded for loop %d"
+msgstr "погрешан једноструки излаза %d->%d забележен за петљу %d"
+
+#: cfgloop.c:1244
+#, gcc-internal-format
+msgid "right exit is %d->%d"
+msgstr "прави излаз је %d->%d"
+
+#: cfgloop.c:1261
+#, gcc-internal-format
+msgid "single exit not recorded for loop %d"
+msgstr "једноструки излаз није забележен за петљу %d"
+
+#: cfgloop.c:1268
+#, gcc-internal-format
+msgid "loop %d should not have single exit (%d -> %d)"
+msgstr "петља %d не треба да има једноструки излаз (%d -> %d)"
+
+#: cfgrtl.c:1931
+#, gcc-internal-format
+msgid "BB_RTL flag not set for block %d"
+msgstr "заставица BB_RTL није постављена за блок %d"
+
+#: cfgrtl.c:1937
+#, gcc-internal-format
+msgid "end insn %d for block %d not found in the insn stream"
+msgstr "крајња ија %d за блок %d није нађена у току ија"
+
+#: cfgrtl.c:1951
+#, gcc-internal-format
+msgid "insn %d is in multiple basic blocks (%d and %d)"
+msgstr "ија %d је у више основних блокова (%d и %d)"
+
+#: cfgrtl.c:1963
+#, gcc-internal-format
+msgid "head insn %d for block %d not found in the insn stream"
+msgstr "заглавна ија %d за блок %d није нађена у току ија"
+
+#: cfgrtl.c:1987
+#, gcc-internal-format
+msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i"
+msgstr "verify_flow_info: REG_BR_PROB се не поклапа са конф. %wi %i"
+
+#: cfgrtl.c:2002
+#, gcc-internal-format
+msgid "fallthru edge crosses section boundary (bb %i)"
+msgstr "пропадна ивица пресеца границе одељка (об. %i)"
+
+#: cfgrtl.c:2027
+#, gcc-internal-format
+msgid "missing REG_EH_REGION note in the end of bb %i"
+msgstr "недостаје REG_EH_REGION белешка на крају об. %i"
+
+#: cfgrtl.c:2035
+#, gcc-internal-format
+msgid "too many outgoing branch edges from bb %i"
+msgstr "превише излазних гранских ивица из об. %i"
+
+#: cfgrtl.c:2040
+#, gcc-internal-format
+msgid "fallthru edge after unconditional jump %i"
+msgstr "пропадна ивица после безусловног скока %i"
+
+#: cfgrtl.c:2051
+#, gcc-internal-format
+msgid "wrong amount of branch edges after conditional jump %i"
+msgstr "погрешна количина гранских ивица после безусловног скока %i"
+
+#: cfgrtl.c:2057
+#, gcc-internal-format
+msgid "call edges for non-call insn in bb %i"
+msgstr "позивне ивице за не-позивну ију у об. %i"
+
+#: cfgrtl.c:2066
+#, gcc-internal-format
+msgid "abnormal edges for no purpose in bb %i"
+msgstr "абнормалне ивице без сврхе у об. %i"
+
+#: cfgrtl.c:2078
+#, gcc-internal-format
+msgid "insn %d inside basic block %d but block_for_insn is NULL"
+msgstr "ија %d унутар основног блока %d али block_for_insn јесте NULL"
+
+#: cfgrtl.c:2082
+#, gcc-internal-format
+msgid "insn %d inside basic block %d but block_for_insn is %i"
+msgstr "ија %d унутар основног блока %d али block_for_insn јесте %i"
+
+#: cfgrtl.c:2096 cfgrtl.c:2106
+#, gcc-internal-format
+msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
+msgstr "NOTE_INSN_BASIC_BLOCK недостаје за блок %d"
+
+#: cfgrtl.c:2119
+#, gcc-internal-format
+msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
+msgstr "NOTE_INSN_BASIC_BLOCK %d усред основног блока %d"
+
+#: cfgrtl.c:2129
+#, gcc-internal-format
+msgid "in basic block %d:"
+msgstr "у основном блоку %d:"
+
+#: cfgrtl.c:2166
+#, gcc-internal-format
+msgid "bb prediction set for block %i, but it is not used in RTL land"
+msgstr "предвиђање об. постављено за блок %i, али се не користи у свету РТЛа"
+
+#: cfgrtl.c:2184
+#, gcc-internal-format
+msgid "missing barrier after block %i"
+msgstr "недостаје баријера после блока %i"
+
+#: cfgrtl.c:2197
+#, gcc-internal-format
+msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
+msgstr "verify_flow_info: нетачни блокови за пропад %i->%i"
+
+#: cfgrtl.c:2206
+#, gcc-internal-format
+msgid "verify_flow_info: Incorrect fallthru %i->%i"
+msgstr "verify_flow_info: нетачан пропад %i->%i"
+
+#: cfgrtl.c:2225
+#, gcc-internal-format
+msgid "basic blocks not laid down consecutively"
+msgstr "основни блокови нису положени надовезујуће"
+
+#: cfgrtl.c:2264
+#, gcc-internal-format
+msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
+msgstr "број об. белешки у ланцу ија (%d) != n_basic_blocks (%d)"
+
+#: cgraph.c:763
+#, gcc-internal-format
+msgid "%D renamed after being referenced in assembly"
+msgstr "%D преименован пошто је поменут у асемблеру"
+
+#: cgraphunit.c:664
+#, gcc-internal-format
+msgid "aux field set for edge %s->%s"
+msgstr "помоћно поље постављено за ивицу %s->%s"
+
+#: cgraphunit.c:670
+#, gcc-internal-format
+msgid "Execution count is negative"
+msgstr "Број извршавања је негативан"
+
+#: cgraphunit.c:677
+#, gcc-internal-format
+msgid "caller edge count is negative"
+msgstr "број ивица позивача је негативан"
+
+#: cgraphunit.c:686
+#, gcc-internal-format
+msgid "inlined_to pointer is wrong"
+msgstr "показивач inlined_to је погрешан"
+
+#: cgraphunit.c:691
+#, gcc-internal-format
+msgid "multiple inline callers"
+msgstr "вишеструки уткани позивачи"
+
+#: cgraphunit.c:698
+#, gcc-internal-format
+msgid "inlined_to pointer set for noninline callers"
+msgstr "показивач inlined_to постављен за неуткане позиваче"
+
+#: cgraphunit.c:704
+#, gcc-internal-format
+msgid "inlined_to pointer is set but no predecesors found"
+msgstr "показивач inlined_to постављен али нема претходника"
+
+#: cgraphunit.c:709
+#, gcc-internal-format
+msgid "inlined_to pointer refers to itself"
+msgstr "показивач inlined_to упућује на самог себе"
+
+#: cgraphunit.c:719
+#, gcc-internal-format
+msgid "node not found in DECL_ASSEMBLER_NAME hash"
+msgstr "чвор није нађен у хрпи DECL_ASSEMBLER_NAME"
+
+#: cgraphunit.c:747
+#, gcc-internal-format
+msgid "shared call_stmt:"
+msgstr "дељени call_stmt:"
+
+#: cgraphunit.c:753
+#, gcc-internal-format
+msgid "edge points to wrong declaration:"
+msgstr "ивица показује на погрешну декларацију:"
+
+#: cgraphunit.c:762
+#, gcc-internal-format
+msgid "missing callgraph edge for call stmt:"
+msgstr "недостаје графпоз ивица за call_stmt:"
+
+#: cgraphunit.c:779
+#, gcc-internal-format
+msgid "edge %s->%s has no corresponding call_stmt"
+msgstr "ивица %s->%s нема одговарајући call_stmt"
+
+#: cgraphunit.c:791
+#, gcc-internal-format
+msgid "verify_cgraph_node failed"
+msgstr "verify_cgraph_node није успело"
+
+#: cgraphunit.c:1028
+#, gcc-internal-format
+msgid "failed to reclaim unneeded function"
+msgstr "нисам успео да повратим непотребну функцију"
+
+#: cgraphunit.c:1308
+#, gcc-internal-format
+msgid "nodes with no released memory found"
+msgstr "нађени чворови без ослобођене меморије"
+
+#: collect2.c:1172
+#, gcc-internal-format
+msgid "unknown demangling style '%s'"
+msgstr "непознат стил распетљавања „%s“"
+
+#: collect2.c:1495
+#, gcc-internal-format
+msgid "%s terminated with signal %d [%s]%s"
+msgstr "%s окончан сигналом %d [%s]%s"
+
+#: collect2.c:1513
+#, gcc-internal-format
+msgid "%s returned %d exit status"
+msgstr "%s врати излазни статус %d"
+
+#: collect2.c:2175
+#, gcc-internal-format
+msgid "cannot find 'ldd'"
+msgstr "не могу да нађем „ldd“"
+
+#: convert.c:65
+#, gcc-internal-format
+msgid "cannot convert to a pointer type"
+msgstr "не могу да претворим у показивачки тип"
+
+#: convert.c:304
+#, gcc-internal-format
+msgid "pointer value used where a floating point value was expected"
+msgstr "показивачка вредност употребљена где се очекивала реална"
+
+#: convert.c:308
+#, gcc-internal-format
+msgid "aggregate value used where a float was expected"
+msgstr "скупинска вредност употребљена где се очекивала реална"
+
+#: convert.c:333
+#, gcc-internal-format
+msgid "conversion to incomplete type"
+msgstr "претварање у непотпун тип"
+
+#: convert.c:688 convert.c:764
+#, gcc-internal-format
+msgid "can't convert between vector values of different size"
+msgstr "не могу да претварам између векторских вредности различитих величина"
+
+#: convert.c:694
+#, gcc-internal-format
+msgid "aggregate value used where an integer was expected"
+msgstr "скупинска вредност употребљена где се очекивала целобројна"
+
+#: convert.c:744
+#, gcc-internal-format
+msgid "pointer value used where a complex was expected"
+msgstr "показивачка вредност употребљена где се очекивала комплексна"
+
+#: convert.c:748
+#, gcc-internal-format
+msgid "aggregate value used where a complex was expected"
+msgstr "скупинска вредност употребљена где се очекивала комплексна"
+
+#: convert.c:770
+#, gcc-internal-format
+msgid "can't convert value to a vector"
+msgstr "не могу да претворим вредност у вектор"
+
+#: coverage.c:183
+#, gcc-internal-format
+msgid "%qs is not a gcov data file"
+msgstr "%qs није датотека података гкова"
+
+#: coverage.c:194
+#, gcc-internal-format
+msgid "%qs is version %q.*s, expected version %q.*s"
+msgstr "%qs је верзија %q.*s, а очекивана је %q.*s"
+
+#: coverage.c:274 coverage.c:282
+#, gcc-internal-format
+msgid "coverage mismatch for function %u while reading execution counters"
+msgstr "неслагање покривача за функцију %u у току читања извршних бројача"
+
+#: coverage.c:276 coverage.c:359
+#, gcc-internal-format
+msgid "checksum is %x instead of %x"
+msgstr "контролни збир је %x уместо %x"
+
+#: coverage.c:284 coverage.c:367
+#, gcc-internal-format
+msgid "number of counters is %d instead of %d"
+msgstr "број бројача је %d уместо %d"
+
+#: coverage.c:290
+#, gcc-internal-format
+msgid "cannot merge separate %s counters for function %u"
+msgstr "не могу да стопим засебних %s бројача за функцију %u"
+
+#: coverage.c:311
+#, gcc-internal-format
+msgid "%qs has overflowed"
+msgstr "%qs се прелило"
+
+#: coverage.c:311
+#, gcc-internal-format
+msgid "%qs is corrupted"
+msgstr "%qs је искварено"
+
+#: coverage.c:348
+#, gcc-internal-format
+msgid "no coverage for function %qs found"
+msgstr "покривач за функцију %qs није нађен"
+
+#: coverage.c:356 coverage.c:364
+#, gcc-internal-format
+msgid "coverage mismatch for function %qs while reading counter %qs"
+msgstr "неслагање покривача за функцију %qs у току читања бројача %qs"
+
+#: coverage.c:529
+#, gcc-internal-format
+msgid "cannot open %s"
+msgstr "не могу да отворим %s"
+
+#: coverage.c:564
+#, gcc-internal-format
+msgid "error writing %qs"
+msgstr "грешка при писању %qs"
+
+#: diagnostic.c:602
+#, gcc-internal-format
+msgid "in %s, at %s:%d"
+msgstr "у %s, код %s:%d"
+
+#: dominance.c:855
+#, gcc-internal-format
+msgid "dominator of %d status unknown"
+msgstr "доминатор %d статуса непознат"
+
+#: dominance.c:857
+#, gcc-internal-format
+msgid "dominator of %d should be %d, not %d"
+msgstr "доминатор %d треба да је %d, не %d"
+
+#: dominance.c:869
+#, gcc-internal-format
+msgid "ENTRY does not dominate bb %d"
+msgstr "ENTRY не доминира на об. %d"
+
+#: dwarf2out.c:3533
+#, gcc-internal-format
+msgid "DW_LOC_OP %s not implemented"
+msgstr "DW_LOC_OP %s није имплементирано"
+
+#: emit-rtl.c:2269
+#, gcc-internal-format
+msgid "invalid rtl sharing found in the insn"
+msgstr "неисправно rtl дељење нађено у ији"
+
+#: emit-rtl.c:2271
+#, gcc-internal-format
+msgid "shared rtx"
+msgstr "дељено rtx"
+
+#: emit-rtl.c:2273 flow.c:492 flow.c:517 flow.c:539
+#, gcc-internal-format
+msgid "internal consistency failure"
+msgstr "неуспех услед унутрашње неусаглашености"
+
+#: emit-rtl.c:3337
+#, gcc-internal-format
+msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
+msgstr "ИЦЕ: emit_insn употребљено где је потребно emit_jump_insn:\n"
+
+#: errors.c:133 java/jv-scan.c:289
+#, gcc-internal-format
+msgid "abort in %s, at %s:%d"
+msgstr "прекид у %s, код %s:%d"
+
+#: except.c:338
+#, gcc-internal-format
+msgid "exception handling disabled, use -fexceptions to enable"
+msgstr "руковање изузецима је искључено, укључите помоћу -fexceptions"
+
+#: except.c:2786
+#, gcc-internal-format
+msgid "argument of %<__builtin_eh_return_regno%> must be constant"
+msgstr "аргумент за %<__builtin_eh_return_regno%> мора бити константа"
+
+#: except.c:2917
+#, gcc-internal-format
+msgid "__builtin_eh_return not supported on this target"
+msgstr "__builtin_eh_return није подржан на овом циљу"
+
+#: except.c:3771 except.c:3780
+#, gcc-internal-format
+msgid "region_array is corrupted for region %i"
+msgstr "region_array је искварен за област %i"
+
+#: except.c:3785
+#, gcc-internal-format
+msgid "outer block of region %i is wrong"
+msgstr "погрешан спољашњи блок области %i"
+
+#: except.c:3790
+#, gcc-internal-format
+msgid "region %i may contain throw and is contained in region that may not"
+msgstr "област %i може садржати бацање, а садржана је у области која то не може"
+
+#: except.c:3796
+#, gcc-internal-format
+msgid "negative nesting depth of region %i"
+msgstr "негативна дубина угњеждења области %i"
+
+#: except.c:3816
+#, gcc-internal-format
+msgid "tree list ends on depth %i"
+msgstr "листа стабла се завршава на дубини %i"
+
+#: except.c:3821
+#, gcc-internal-format
+msgid "array does not match the region tree"
+msgstr "низ не одговара стаблу области"
+
+#: except.c:3827
+#, gcc-internal-format
+msgid "verify_eh_tree failed"
+msgstr "verify_eh_tree није успело"
+
+#: explow.c:1212
+#, gcc-internal-format
+msgid "stack limits not supported on this target"
+msgstr "ограничења стека нису подржана на овом циљу"
+
+#: fold-const.c:3331 fold-const.c:3342
+#, gcc-internal-format
+msgid "comparison is always %d due to width of bit-field"
+msgstr "поређење је увек %d услед ширине битског поља"
+
+#: fold-const.c:4943 fold-const.c:4958
+#, gcc-internal-format
+msgid "comparison is always %d"
+msgstr "поређење је увек %d"
+
+#: fold-const.c:5087
+#, gcc-internal-format
+msgid "%<or%> of unmatched not-equal tests is always 1"
+msgstr "%<or%> непоклопљених тестова неједнакости је увек 1"
+
+#: fold-const.c:5092
+#, gcc-internal-format
+msgid "%<and%> of mutually exclusive equal-tests is always 0"
+msgstr "%<and%> међусобно искључивих тестова једнакости је увек 0"
+
+#: fold-const.c:10313
+#, gcc-internal-format
+msgid "fold check: original tree changed by fold"
+msgstr "провера сажимања: првобитно дрво измењено сажимањем"
+
+#: function.c:491
+#, gcc-internal-format
+msgid "%Jtotal size of local objects too large"
+msgstr "%Jукупна величина локалних објеката је превелика"
+
+#: function.c:838 varasm.c:1674
+#, gcc-internal-format
+msgid "size of variable %q+D is too large"
+msgstr "величина променљиве %q+D је превелика"
+
+#: function.c:1548
+#, gcc-internal-format
+msgid "impossible constraint in %<asm%>"
+msgstr "немогуће ограничење у %<asm%>"
+
+#: function.c:3506
+#, gcc-internal-format
+msgid "variable %q+D might be clobbered by %<longjmp%> or %<vfork%>"
+msgstr "променљива %q+D може бити продрмана са %<longjmp%> или %<vfork%>"
+
+#: function.c:3527
+#, gcc-internal-format
+msgid "argument %q+D might be clobbered by %<longjmp%> or %<vfork%>"
+msgstr "аргумент %q+D може бити продрман са %<longjmp%> или %<vfork%>"
+
+#: function.c:3922
+#, gcc-internal-format
+msgid "function returns an aggregate"
+msgstr "функција враћа скупинску вредност"
+
+#: function.c:4314
+#, gcc-internal-format
+msgid "unused parameter %q+D"
+msgstr "неупотребљен параметар %q+D"
+
+#: gcc.c:1243
+#, gcc-internal-format
+msgid "ambiguous abbreviation %s"
+msgstr "двосмислена скраћеница %s"
+
+#: gcc.c:1270
+#, gcc-internal-format
+msgid "incomplete '%s' option"
+msgstr "непотпуна опција „%s“"
+
+#: gcc.c:1281
+#, gcc-internal-format
+msgid "missing argument to '%s' option"
+msgstr "опцији „%s“ недостаје аргумент"
+
+#: gcc.c:1294
+#, gcc-internal-format
+msgid "extraneous argument to '%s' option"
+msgstr "сувишан аргумент за опцију „%s“"
+
+#: gcc.c:3804
+#, gcc-internal-format
+msgid "warning: -pipe ignored because -save-temps specified"
+msgstr "упозорење: -pipe се игнорише јер је задато -save-temps"
+
+#: gcc.c:4105
+#, gcc-internal-format
+msgid "warning: '-x %s' after last input file has no effect"
+msgstr "упозорење: „-x %s“ после последње улазне датотеке нема ефекта"
+
+#. Catch the case where a spec string contains something like
+#. '%{foo:%*}'. i.e. there is no * in the pattern on the left
+#. hand side of the :.
+#: gcc.c:5174
+#, gcc-internal-format
+msgid "spec failure: '%%*' has not been initialized by pattern match"
+msgstr "крах навода: „%%*“ није успостављено шематским поклапањем"
+
+#: gcc.c:5183
+#, gcc-internal-format
+msgid "warning: use of obsolete %%[ operator in specs"
+msgstr "упозорење: употреба застарелог оператора %%[ у наводима"
+
+#: gcc.c:5264
+#, gcc-internal-format
+msgid "spec failure: unrecognized spec option '%c'"
+msgstr "крах навода: непрепозната опција навода „%c“"
+
+#: gcc.c:6188
+#, gcc-internal-format
+msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC"
+msgstr "крах навода: више од једног аргумента за SYSROOT_SUFFIX_SPEC"
+
+#: gcc.c:6211
+#, gcc-internal-format
+msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC"
+msgstr "крах навода: више од једног аргумента за SYSROOT_HEADERS_SUFFIX_SPEC"
+
+#: gcc.c:6300
+#, gcc-internal-format
+msgid "unrecognized option '-%s'"
+msgstr "непрепозната опција „-%s“"
+
+#: gcc.c:6491 gcc.c:6554
+#, gcc-internal-format
+msgid "%s: %s compiler not installed on this system"
+msgstr "%s: компилатор за %s није инсталиран на овом систему"
+
+#: gcc.c:6646
+#, gcc-internal-format
+msgid "%s: linker input file unused because linking not done"
+msgstr "%s: улазна датотека повезивача се не користи је се повезивање не извршава"
+
+#: gcc.c:6686
+#, gcc-internal-format
+msgid "language %s not recognized"
+msgstr "језик %s није препознат"
+
+#: gcc.c:6757
+#, gcc-internal-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: gcse.c:6587
+#, gcc-internal-format
+msgid "%s: %d basic blocks and %d edges/basic block"
+msgstr "%s: %d основних блокова и %d ивица по основном блоку"
+
+#: gcse.c:6600
+#, gcc-internal-format
+msgid "%s: %d basic blocks and %d registers"
+msgstr "%s: %d основних блокова и %d регистара"
+
+#: ggc-common.c:404 ggc-common.c:412 ggc-common.c:480 ggc-common.c:499
+#: ggc-page.c:2110 ggc-page.c:2141 ggc-page.c:2148 ggc-zone.c:2291
+#: ggc-zone.c:2306
+#, gcc-internal-format
+msgid "can't write PCH file: %m"
+msgstr "не могу да запишем ПЦХ датотеку: %m"
+
+#: ggc-common.c:492 config/i386/host-cygwin.c:58
+#, gcc-internal-format
+msgid "can't get position in PCH file: %m"
+msgstr "не могу да добавим положај у ПЦХ датотеци: %m"
+
+#: ggc-common.c:502
+#, gcc-internal-format
+msgid "can't write padding to PCH file: %m"
+msgstr "не могу да запишем уметање у ПЦХ датотеку: %m"
+
+#: ggc-common.c:557 ggc-common.c:565 ggc-common.c:572 ggc-common.c:575
+#: ggc-common.c:585 ggc-common.c:588 ggc-page.c:2235 ggc-zone.c:2325
+#, gcc-internal-format
+msgid "can't read PCH file: %m"
+msgstr "не могу да читам ПЦХ датотеку: %m"
+
+#: ggc-common.c:580
+#, gcc-internal-format
+msgid "had to relocate PCH"
+msgstr "морадох преместим ПЦХ"
+
+#: ggc-page.c:1448
+#, gcc-internal-format
+msgid "open /dev/zero: %m"
+msgstr "отварање /dev/zero: %m"
+
+#: ggc-page.c:2126 ggc-page.c:2132
+#, gcc-internal-format
+msgid "can't write PCH file"
+msgstr "не могу да запишем ПЦХ датотеку"
+
+#: ggc-zone.c:2288 ggc-zone.c:2299
+#, gcc-internal-format
+msgid "can't seek PCH file: %m"
+msgstr "не могу да тражим у ПЦХ датотеци: %m"
+
+#: ggc-zone.c:2302
+#, gcc-internal-format
+msgid "can't write PCH fle: %m"
+msgstr "не могу да запишем ПЦХ датотеку: %m"
+
+#: gimple-low.c:202
+#, gcc-internal-format
+msgid "unexpected node"
+msgstr "неочекивани чвор"
+
+#: gimplify.c:3683
+#, gcc-internal-format
+msgid "invalid lvalue in asm output %d"
+msgstr "неисправна л-вредност у излазу асемблера %d"
+
+#: gimplify.c:3795
+#, gcc-internal-format
+msgid "memory input %d is not directly addressable"
+msgstr "меморијски улаз %d не може се непосредно адресирати"
+
+#: gimplify.c:4671
+#, gcc-internal-format
+msgid "gimplification failed"
+msgstr "гимплификација није успела"
+
+#: global.c:376 global.c:389 global.c:403
+#, gcc-internal-format
+msgid "%s cannot be used in asm here"
+msgstr "%s се не може користити овде у асемблеру"
+
+#: graph.c:403 java/jcf-parse.c:1086 java/jcf-parse.c:1221 java/lex.c:1855
+#: objc/objc-act.c:501
+#, gcc-internal-format
+msgid "can't open %s: %m"
+msgstr "не могу да отворим %s: %m"
+
+#: haifa-sched.c:182
+#, gcc-internal-format
+msgid "fix_sched_param: unknown param: %s"
+msgstr "fix_sched_param: непознат параметар %s"
+
+#. Eventually this should become a hard error IMO.
+#: opts.c:261
+#, gcc-internal-format
+msgid "command line option \"%s\" is valid for %s but not for %s"
+msgstr "опција командне линије „%s“ исправна је за %s али не за %s"
+
+#: opts.c:315
+#, gcc-internal-format
+msgid "command line option %qs is not supported by this configuration"
+msgstr "опција командне линије %qs није подржана овом конфигурацијом"
+
+#: opts.c:359
+#, gcc-internal-format
+msgid "missing argument to \"%s\""
+msgstr "недостаје аргумент за „%s“"
+
+#: opts.c:369
+#, gcc-internal-format
+msgid "argument to \"%s\" should be a non-negative integer"
+msgstr "аргумент за „%s“ треба да је ненегативан цео број"
+
+#: opts.c:457
+#, gcc-internal-format
+msgid "unrecognized command line option \"%s\""
+msgstr "непрепозната опција командне линије „%s“"
+
+#: opts.c:670
+#, gcc-internal-format
+msgid "-Wuninitialized is not supported without -O"
+msgstr "-Wuninitialized није подржано без -O"
+
+#: opts.c:685
+#, gcc-internal-format
+msgid "-freorder-blocks-and-partition does not work with exceptions"
+msgstr "-freorder-blocks-and-partition не ради са изузецима"
+
+#: opts.c:696
+#, gcc-internal-format
+msgid "-freorder-blocks-and-partition does not support unwind info"
+msgstr "-freorder-blocks-and-partition не подржава податке одмотавања"
+
+#: opts.c:710
+#, gcc-internal-format
+msgid "-freorder-blocks-and-partition does not work on this architecture"
+msgstr "-freorder-blocks-and-partition не ради на овој архитектури"
+
+#: opts.c:878
+#, gcc-internal-format
+msgid "structure alignment must be a small power of two, not %d"
+msgstr "равнање структуре мора бити мали степен двојке, не %d"
+
+#: opts.c:936
+#, gcc-internal-format
+msgid "unrecognized visibility value \"%s\""
+msgstr "непрепозната вредност видљивости „%s“"
+
+#: opts.c:984
+#, gcc-internal-format
+msgid "unrecognized register name \"%s\""
+msgstr "непрепознато име регистра „%s“"
+
+#: opts.c:1008
+#, gcc-internal-format
+msgid "unknown tls-model \"%s\""
+msgstr "непознат ТЛС модел „%s“"
+
+#: opts.c:1058
+#, gcc-internal-format
+msgid "-f[no-]force-mem is nop and option will be removed in 4.2"
+msgstr "-f[no-]force-mem не ради ништа и биће уклоњена у 4.2"
+
+#: opts.c:1081
+#, gcc-internal-format
+msgid "%s: --param arguments should be of the form NAME=VALUE"
+msgstr "%s: аргументи за --param треба да су облика ИМЕ=ВРЕДНОСТ"
+
+#: opts.c:1086
+#, gcc-internal-format
+msgid "invalid --param value %qs"
+msgstr "неисправна вредност %qs за --param"
+
+#: opts.c:1183
+#, gcc-internal-format
+msgid "target system does not support debug output"
+msgstr "циљни систем не подржава исправљачки излаз"
+
+#: opts.c:1190
+#, gcc-internal-format
+msgid "debug format \"%s\" conflicts with prior selection"
+msgstr "исправљачки формат „%s“ коси се са претходним избором"
+
+#: opts.c:1206
+#, gcc-internal-format
+msgid "unrecognised debug output level \"%s\""
+msgstr "непрепознат ниво исправљачког излаза „%s“"
+
+#: opts.c:1208
+#, gcc-internal-format
+msgid "debug output level %s is too high"
+msgstr "ниво исправљачког излаза %s је превисок"
+
+#: params.c:71
+#, gcc-internal-format
+msgid "minimum value of parameter %qs is %u"
+msgstr "најмања вредност параметра %qs је %u"
+
+#: params.c:76
+#, gcc-internal-format
+msgid "maximum value of parameter %qs is %u"
+msgstr "највећа вредност параметра %qs је %u"
+
+#. If we didn't find this parameter, issue an error message.
+#: params.c:85
+#, gcc-internal-format
+msgid "invalid parameter %qs"
+msgstr "неисправан параметар %qs"
+
+#: profile.c:287
+#, gcc-internal-format
+msgid "corrupted profile info: run_max * runs < sum_max"
+msgstr "искварени подаци профила: run_max * runs < sum_max"
+
+#: profile.c:293
+#, gcc-internal-format
+msgid "corrupted profile info: sum_all is smaller than sum_max"
+msgstr "искварени подаци профила: sum_all је мање од sum_max"
+
+#: profile.c:338
+#, gcc-internal-format
+msgid "corrupted profile info: edge from %i to %i exceeds maximal count"
+msgstr "искварени подаци профила: ивица из %i у %i премашује највећи збир"
+
+#: profile.c:503
+#, gcc-internal-format
+msgid "corrupted profile info: number of iterations for basic block %d thought to be %i"
+msgstr "искварени подаци профила: број итерација за основни блок %d је предвиђен као %i"
+
+#: profile.c:524
+#, gcc-internal-format
+msgid "corrupted profile info: number of executions for edge %d-%d thought to be %i"
+msgstr "искварени подаци профила: број извршавања за ивицу %d-%d је предвиђен као %i"
+
+#: reg-stack.c:526
+#, gcc-internal-format
+msgid "output constraint %d must specify a single register"
+msgstr "излазно ограничење %d мора навести један једини регистар"
+
+#: reg-stack.c:536
+#, gcc-internal-format
+msgid "output constraint %d cannot be specified together with \"%s\" clobber"
+msgstr "излазно ограничење %d не може бити наведено заједно са продрмом „%s“"
+
+#: reg-stack.c:559
+#, gcc-internal-format
+msgid "output regs must be grouped at top of stack"
+msgstr "излазни регистри морају бити груписани на врху стека"
+
+#: reg-stack.c:596
+#, gcc-internal-format
+msgid "implicitly popped regs must be grouped at top of stack"
+msgstr "имплицитно подигнути регистри морају бити груписани на врху стека"
+
+#: reg-stack.c:615
+#, gcc-internal-format
+msgid "output operand %d must use %<&%> constraint"
+msgstr "излазни операнд %d мора користити ограничење %<&%>"
+
+#: regclass.c:766
+#, gcc-internal-format
+msgid "can't use '%s' as a %s register"
+msgstr "„%s“ се не може користити као %s регистар"
+
+#: regclass.c:781 config/ia64/ia64.c:5041 config/ia64/ia64.c:5048
+#: config/pa/pa.c:339 config/pa/pa.c:346
+#, gcc-internal-format
+msgid "unknown register name: %s"
+msgstr "непознато име регистра: %s"
+
+#: regclass.c:791
+#, gcc-internal-format
+msgid "global register variable follows a function definition"
+msgstr "глобална регистарска променљива прати дефиницију функције"
+
+#: regclass.c:795
+#, gcc-internal-format
+msgid "register used for two global register variables"
+msgstr "регистар се користи за две глобалне регистарске променљиве"
+
+#: regclass.c:800
+#, gcc-internal-format
+msgid "call-clobbered register used for global register variable"
+msgstr "позивом продрман регистар користи се за глобалну регистарску променљиву"
+
+#: regrename.c:1916
+#, gcc-internal-format
+msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
+msgstr "validate_value_data: [%u] Лош next_regno за празан ланац (%u)"
+
+#: regrename.c:1928
+#, gcc-internal-format
+msgid "validate_value_data: Loop in regno chain (%u)"
+msgstr "validate_value_data: Петља у regno ланцу (%u)"
+
+#: regrename.c:1931
+#, gcc-internal-format
+msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
+msgstr "validate_value_data: [%u] Лош oldest_regno (%u)"
+
+#: regrename.c:1943
+#, gcc-internal-format
+msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
+msgstr "validate_value_data: [%u] Непразан рег. у ланцу (%s %u %i)"
+
+#: reload.c:1270
+#, gcc-internal-format
+msgid "cannot reload integer constant operand in %<asm%>"
+msgstr "не може се поново учитати целобројни константни операнд у %<asm%>"
+
+#: reload.c:1293
+#, gcc-internal-format
+msgid "impossible register constraint in %<asm%>"
+msgstr "немогуће регистарско ограничење у %<asm%>"
+
+#: reload.c:3568
+#, gcc-internal-format
+msgid "%<&%> constraint used with no register class"
+msgstr "%<&%> ограничење употребљено без регистарске класе"
+
+#: reload.c:3739 reload.c:3971
+#, gcc-internal-format
+msgid "inconsistent operand constraints in an %<asm%>"
+msgstr "неусаглашена ограничења операнда у %<asm%>"
+
+#: reload1.c:1235
+#, gcc-internal-format
+msgid "frame size too large for reliable stack checking"
+msgstr "величина оквира превелика за поуздану проверу стека"
+
+#: reload1.c:1238
+#, gcc-internal-format
+msgid "try reducing the number of local variables"
+msgstr "покушајте да смањите број локалних променљивих"
+
+#: reload1.c:1894
+#, gcc-internal-format
+msgid "can't find a register in class %qs while reloading %<asm%>"
+msgstr "не могу да нађем регистар у класи %qs при поновном учитавању %<asm%>"
+
+#: reload1.c:1899
+#, gcc-internal-format
+msgid "unable to find a register to spill in class %qs"
+msgstr "не могу да нађем регистар за просипање у класи %qs"
+
+#: reload1.c:3984
+#, gcc-internal-format
+msgid "%<asm%> operand requires impossible reload"
+msgstr "операнд у %<asm%> захтева немогуће поновно учитавање"
+
+#: reload1.c:5108
+#, gcc-internal-format
+msgid "%<asm%> operand constraint incompatible with operand size"
+msgstr "ограничење операнда у %<asm%> несагласно са величином операнда"
+
+#: reload1.c:6738
+#, gcc-internal-format
+msgid "output operand is constant in %<asm%>"
+msgstr "излазни операнд је константан у %<asm%>"
+
+#: rtl.c:474
+#, gcc-internal-format
+msgid "RTL check: access of elt %d of '%s' with last elt %d in %s, at %s:%d"
+msgstr "РТЛ провера: приступ елта %d у „%s“ последњим елтом %d у %s, код %s:%d"
+
+#: rtl.c:484
+#, gcc-internal-format
+msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
+msgstr "РТЛ провера: очекивах је елт %d типа „%c“, добих „%c“ (rtx %s) у %s, код %s:%d"
+
+#: rtl.c:494
+#, gcc-internal-format
+msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d"
+msgstr "РТЛ провера: очекивах је елт %d типа „%c“ или „%c“, добих „%c“ (rtx %s) у %s, код %s:%d"
+
+#: rtl.c:503
+#, gcc-internal-format
+msgid "RTL check: expected code '%s', have '%s' in %s, at %s:%d"
+msgstr "РТЛ провера: очекивах кôд „%s“, добих „%s“ у %s, код %s:%d"
+
+#: rtl.c:513
+#, gcc-internal-format
+msgid "RTL check: expected code '%s' or '%s', have '%s' in %s, at %s:%d"
+msgstr "РТЛ провера: очекивах кôд „%s“ или „%s“, добих „%s“ у %s, код %s:%d"
+
+#: rtl.c:539
+#, gcc-internal-format
+msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
+msgstr "РТЛ провера: приступ елта %d вектора последњим елтом %d у %s, код %s:%d"
+
+#: rtl.c:550
+#, gcc-internal-format
+msgid "RTL flag check: %s used with unexpected rtx code '%s' in %s, at %s:%d"
+msgstr "РТЛ провера заставице: %s употребљена са неочекиваним rtx кодом „%s“ у „%s“, код %s:%d"
+
+#: stmt.c:317
+#, gcc-internal-format
+msgid "output operand constraint lacks %<=%>"
+msgstr "ограничењу излазног операнда недостаје %<=%>"
+
+#: stmt.c:332
+#, gcc-internal-format
+msgid "output constraint %qc for operand %d is not at the beginning"
+msgstr "излазно ограничење %qc за операнд %d није на почетку"
+
+#: stmt.c:355
+#, gcc-internal-format
+msgid "operand constraint contains incorrectly positioned %<+%> or %<=%>"
+msgstr "ограничење операнда садржи нетачно позиционирано %<+%> или %<=%>"
+
+#: stmt.c:362 stmt.c:461
+#, gcc-internal-format
+msgid "%<%%%> constraint used with last operand"
+msgstr "ограничење %<%%%> употребљено са последњим операндом"
+
+#: stmt.c:381
+#, gcc-internal-format
+msgid "matching constraint not valid in output operand"
+msgstr "поклапајуће ограничење није исправно у излазном операнду"
+
+#: stmt.c:452
+#, gcc-internal-format
+msgid "input operand constraint contains %qc"
+msgstr "ограничење улазног операнда садржи %qc"
+
+#: stmt.c:494
+#, gcc-internal-format
+msgid "matching constraint references invalid operand number"
+msgstr "поклапајуће ограничење упућује на неисправан број операнда"
+
+#: stmt.c:532
+#, gcc-internal-format
+msgid "invalid punctuation %qc in constraint"
+msgstr "неисправна интерпункција %qc у ограничењу"
+
+#: stmt.c:556
+#, gcc-internal-format
+msgid "matching constraint does not allow a register"
+msgstr "поклапајуће ограничење не дозвољава регистар"
+
+#: stmt.c:615
+#, gcc-internal-format
+msgid "asm-specifier for variable %qs conflicts with asm clobber list"
+msgstr "наводилац asm за променљиву %qs коси се са asm листом продрмавања"
+
+#: stmt.c:703
+#, gcc-internal-format
+msgid "unknown register name %qs in %<asm%>"
+msgstr "непознато име регистра %qs у %<asm%>"
+
+#: stmt.c:711
+#, gcc-internal-format
+msgid "PIC register %qs clobbered in %<asm%>"
+msgstr "ПИЦ регистар %qs продрман у %<asm%>"
+
+#: stmt.c:758
+#, gcc-internal-format
+msgid "more than %d operands in %<asm%>"
+msgstr "више од %d операнада у %<asm%>"
+
+#: stmt.c:821
+#, gcc-internal-format
+msgid "output number %d not directly addressable"
+msgstr "излазни број %d не може се непосредно адресирати"
+
+#: stmt.c:900
+#, gcc-internal-format
+msgid "asm operand %d probably doesn%'t match constraints"
+msgstr "asm операнд %d вероватно не одговара ограничењима"
+
+#: stmt.c:910
+#, gcc-internal-format
+msgid "use of memory input without lvalue in asm operand %d is deprecated"
+msgstr "превазиђена употреба меморијског улаза без л-вредности у asm операнду %d"
+
+#: stmt.c:1057
+#, gcc-internal-format
+msgid "asm clobber conflict with output operand"
+msgstr "сукоб asm продрмавања са излазним операндом"
+
+#: stmt.c:1062
+#, gcc-internal-format
+msgid "asm clobber conflict with input operand"
+msgstr "сукоб asm продрмавања са улазним операндом"
+
+#: stmt.c:1139
+#, gcc-internal-format
+msgid "too many alternatives in %<asm%>"
+msgstr "превише алтернатива у %<asm%>"
+
+#: stmt.c:1151
+#, gcc-internal-format
+msgid "operand constraints for %<asm%> differ in number of alternatives"
+msgstr "ограничења операнда за %<asm%> разликују се у броју алтернатива"
+
+#: stmt.c:1204
+#, gcc-internal-format
+msgid "duplicate asm operand name %qs"
+msgstr "двоструко име asm операнда %qs"
+
+#: stmt.c:1302
+#, gcc-internal-format
+msgid "missing close brace for named operand"
+msgstr "недостаје затворена витичаста заграда за именовани операнд"
+
+#: stmt.c:1330
+#, gcc-internal-format
+msgid "undefined named operand %qs"
+msgstr "недефинисани именовани операнд %qs"
+
+#: stmt.c:1474
+#, gcc-internal-format
+msgid "%Hvalue computed is not used"
+msgstr "%Hизрачуната вредност се не користи"
+
+#: stor-layout.c:149
+#, gcc-internal-format
+msgid "type size can%'t be explicitly evaluated"
+msgstr "величина типа не може бити експлицитно израчуната"
+
+#: stor-layout.c:151
+#, gcc-internal-format
+msgid "variable-size type declared outside of any function"
+msgstr "тип променљиве величине декларисан изван било које функције"
+
+#: stor-layout.c:462
+#, gcc-internal-format
+msgid "size of %q+D is %d bytes"
+msgstr "величина %q+D је %d бајтова"
+
+#: stor-layout.c:464
+#, gcc-internal-format
+msgid "size of %q+D is larger than %wd bytes"
+msgstr "величина %q+D је већа од %wd бајтова"
+
+#: stor-layout.c:890
+#, gcc-internal-format
+msgid "packed attribute causes inefficient alignment for %q+D"
+msgstr "атрибут паковања доводи до неефикасног равнања за %q+D"
+
+#: stor-layout.c:893
+#, gcc-internal-format
+msgid "packed attribute is unnecessary for %q+D"
+msgstr "атрибут паковања непотребан за %q+D"
+
+#. No, we need to skip space before this field.
+#. Bump the cumulative size to multiple of field alignment.
+#: stor-layout.c:908
+#, gcc-internal-format
+msgid "padding struct to align %q+D"
+msgstr "убацујем уметак у структуру ради равнања %q+D"
+
+#: stor-layout.c:1311
+#, gcc-internal-format
+msgid "padding struct size to alignment boundary"
+msgstr "убацујем уметак за величину структуре до границе равнања"
+
+#: stor-layout.c:1341
+#, gcc-internal-format
+msgid "packed attribute causes inefficient alignment for %qs"
+msgstr "атрибут паковања доводи до неефикасног равнања за %qs"
+
+#: stor-layout.c:1345
+#, gcc-internal-format
+msgid "packed attribute is unnecessary for %qs"
+msgstr "атрибут паковања непотребан за %qs"
+
+#: stor-layout.c:1351
+#, gcc-internal-format
+msgid "packed attribute causes inefficient alignment"
+msgstr "атрибут паковања доводи до неефикасног равнања"
+
+#: stor-layout.c:1353
+#, gcc-internal-format
+msgid "packed attribute is unnecessary"
+msgstr "атрибут паковања непотребан"
+
+#: stor-layout.c:1858
+#, gcc-internal-format
+msgid "alignment of array elements is greater than element size"
+msgstr "равнање елемената низа је веће од величине елемента"
+
+#: targhooks.c:98
+#, gcc-internal-format
+msgid "__builtin_saveregs not supported by this target"
+msgstr "__builtin_saveregs није подржано овим циљем"
+
+#: tlink.c:484
+#, gcc-internal-format
+msgid "repository file '%s' does not contain command-line arguments"
+msgstr "датотека складишта „%s“ не садржи аргументе командне линије"
+
+#: tlink.c:705
+#, gcc-internal-format
+msgid "'%s' was assigned to '%s', but was not defined during recompilation, or vice versa"
+msgstr "„%s“ је додељено у „%s“ али није дефинисано током поновне компилације, или обрнуто"
+
+#: tlink.c:775
+#, gcc-internal-format
+msgid "ld returned %d exit status"
+msgstr "ld врати излазни статус %d"
+
+#: toplev.c:513
+#, gcc-internal-format
+msgid "invalid option argument %qs"
+msgstr "неисправан аргумент опције %qs"
+
+#: toplev.c:603
+#, gcc-internal-format
+msgid "getting core file size maximum limit: %m"
+msgstr "добављам ограничење највеће величине датотеке језгра: %m"
+
+#: toplev.c:606
+#, gcc-internal-format
+msgid "setting core file size limit to maximum: %m"
+msgstr "постављам ограничење највеће величине датотеке језгра: %m"
+
+#: toplev.c:824
+#, gcc-internal-format
+msgid "%q+F declared %<static%> but never defined"
+msgstr "%q+F декларисано као %<static%> али нигде дефинисано"
+
+#: toplev.c:849
+#, gcc-internal-format
+msgid "%q+D defined but not used"
+msgstr "%q+D дефинисано али неупотребљено"
+
+#: toplev.c:892 toplev.c:916
+#, gcc-internal-format
+msgid "%qs is deprecated (declared at %s:%d)"
+msgstr "%qs је превазиђено (декларисано код %s:%d)"
+
+#: toplev.c:920
+#, gcc-internal-format
+msgid "type is deprecated (declared at %s:%d)"
+msgstr "тип је превазиђен (декларисан код %s:%d)"
+
+#: toplev.c:926
+#, gcc-internal-format
+msgid "%qs is deprecated"
+msgstr "%qs је превазиђено"
+
+#: toplev.c:928
+#, gcc-internal-format
+msgid "type is deprecated"
+msgstr "тип је превазиђен"
+
+#: toplev.c:1095
+#, gcc-internal-format
+msgid "unrecognized gcc debugging option: %c"
+msgstr "непрепозната исправљачка опција: %c"
+
+#: toplev.c:1248
+#, gcc-internal-format
+msgid "can%'t open %s for writing: %m"
+msgstr "не могу да отворим %s за писање: %m"
+
+#: toplev.c:1592
+#, gcc-internal-format
+msgid "instruction scheduling not supported on this target machine"
+msgstr "распоређивање инструкција није подржано на овој циљној машини"
+
+#: toplev.c:1596
+#, gcc-internal-format
+msgid "this target machine does not have delayed branches"
+msgstr "ова циљна машина нема одгођена гранања"
+
+#: toplev.c:1610
+#, gcc-internal-format
+msgid "-f%sleading-underscore not supported on this target machine"
+msgstr "-f%sleading-underscore није подржано на овој циљној машини"
+
+#: toplev.c:1683
+#, gcc-internal-format
+msgid "target system does not support the \"%s\" debug format"
+msgstr "циљни систем не подржава исправљачки формат „%s“"
+
+#: toplev.c:1695
+#, gcc-internal-format
+msgid "variable tracking requested, but useless unless producing debug info"
+msgstr "праћење променљивих затражено, али бескорисно без стварања исправљачких података"
+
+#: toplev.c:1698
+#, gcc-internal-format
+msgid "variable tracking requested, but not supported by this debug format"
+msgstr "праћење променљивих затражено, али неподржано овим исправљачким фоматом"
+
+#: toplev.c:1718
+#, gcc-internal-format
+msgid "can%'t open %s: %m"
+msgstr "не могу да отворим %s: %m"
+
+#: toplev.c:1725
+#, gcc-internal-format
+msgid "-ffunction-sections not supported for this target"
+msgstr "-ffunction-sections није подржано за овај циљ"
+
+#: toplev.c:1730
+#, gcc-internal-format
+msgid "-fdata-sections not supported for this target"
+msgstr "-fdata-sections није подржано за овај циљ"
+
+#: toplev.c:1737
+#, gcc-internal-format
+msgid "-ffunction-sections disabled; it makes profiling impossible"
+msgstr "-ffunction-sections искључено јер би онемогућило профилисање"
+
+#: toplev.c:1744
+#, gcc-internal-format
+msgid "-fprefetch-loop-arrays not supported for this target"
+msgstr "-fprefetch-loop-arrays није подржано за овај циљ"
+
+#: toplev.c:1750
+#, gcc-internal-format
+msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
+msgstr "-fprefetch-loop-arrays није подржано за овај циљ (покушајте нешто од -march)"
+
+#: toplev.c:1759
+#, gcc-internal-format
+msgid "-fprefetch-loop-arrays is not supported with -Os"
+msgstr "-fprefetch-loop-arrays није подржано уз -O варијанте"
+
+#: toplev.c:1765
+#, gcc-internal-format
+msgid "-ffunction-sections may affect debugging on some targets"
+msgstr "-ffunction-sections може утицати на исправљање на неком циљевима"
+
+#: toplev.c:1780
+#, gcc-internal-format
+msgid "-fstack-protector not supported for this target"
+msgstr "-fstack-protector није подржано за овај циљ"
+
+#: toplev.c:1793
+#, gcc-internal-format
+msgid "unwind tables currently requires a frame pointer for correctness"
+msgstr "табеле одмотавања тренутно захтевају показивач оквира ради исправности"
+
+#: toplev.c:1898
+#, gcc-internal-format
+msgid "error writing to %s: %m"
+msgstr "грешка при упису у %s: %m"
+
+#: toplev.c:1900 java/jcf-parse.c:1105 java/jcf-write.c:3539
+#, gcc-internal-format
+msgid "error closing %s: %m"
+msgstr "грешка при затварању %s: %m"
+
+#: tree-cfg.c:1445 tree-cfg.c:2083 tree-cfg.c:2086
+#, gcc-internal-format
+msgid "%Hwill never be executed"
+msgstr "%Hникада неће бити извршено"
+
+#: tree-cfg.c:3172
+#, gcc-internal-format
+msgid "SSA name in freelist but still referenced"
+msgstr "ССА име у листи слободних, али се упућује на њ"
+
+#: tree-cfg.c:3181
+#, gcc-internal-format
+msgid "ASSERT_EXPR with an always-false condition"
+msgstr "ASSERT_EXPR са увек нетачним условом"
+
+#: tree-cfg.c:3191
+#, gcc-internal-format
+msgid "GIMPLE register modified with BIT_FIELD_REF"
+msgstr "ГИМПЛЕ регистар измењен помоћу BIT_FIELD_REF"
+
+#: tree-cfg.c:3226
+#, gcc-internal-format
+msgid "invariant not recomputed when ADDR_EXPR changed"
+msgstr "инваријанта није поново израчуната када се ADDR_EXPR промени"
+
+#: tree-cfg.c:3232
+#, gcc-internal-format
+msgid "constant not recomputed when ADDR_EXPR changed"
+msgstr "константа није поново израчуната када се ADDR_EXPR промени"
+
+#: tree-cfg.c:3237
+#, gcc-internal-format
+msgid "side effects not recomputed when ADDR_EXPR changed"
+msgstr "споредни ефекти нису поново израчунати када се ADDR_EXPR промени"
+
+#: tree-cfg.c:3253
+#, gcc-internal-format
+msgid "address taken, but ADDRESSABLE bit not set"
+msgstr "адреса узета, али бит ADDRESSABLE није постављен"
+
+#: tree-cfg.c:3263
+#, gcc-internal-format
+msgid "non-boolean used in condition"
+msgstr "не-логичка вредност употребљена у услову"
+
+#: tree-cfg.c:3268
+#, gcc-internal-format
+msgid "invalid conditional operand"
+msgstr "неисправан операнд услова"
+
+#: tree-cfg.c:3323
+#, gcc-internal-format
+msgid "invalid reference prefix"
+msgstr "неисправан префикс упућивача"
+
+#: tree-cfg.c:3388
+#, gcc-internal-format
+msgid "is not a valid GIMPLE statement"
+msgstr "није исправна ГИМПЛЕ наредба"
+
+#: tree-cfg.c:3408
+#, gcc-internal-format
+msgid "statement marked for throw, but doesn%'t"
+msgstr "наредба означена за бацање, али не чини то"
+
+#: tree-cfg.c:3413
+#, gcc-internal-format
+msgid "statement marked for throw in middle of block"
+msgstr "наредба означена за бацање усред блока"
+
+#: tree-cfg.c:3508
+#, gcc-internal-format
+msgid "bb_for_stmt (phi) is set to a wrong basic block"
+msgstr "bb_for_stmt (phi) постављено на погрешан основни блок"
+
+#: tree-cfg.c:3523
+#, gcc-internal-format
+msgid "PHI def is not a GIMPLE value"
+msgstr "ПХИ дефиниција није ГИМПЛЕ вредност"
+
+#: tree-cfg.c:3539 tree-cfg.c:3562
+#, gcc-internal-format
+msgid "incorrect sharing of tree nodes"
+msgstr "нетачно дељење чворова стабла"
+
+#: tree-cfg.c:3553
+#, gcc-internal-format
+msgid "bb_for_stmt (stmt) is set to a wrong basic block"
+msgstr "bb_for_stmt (stmt) постављено на погрешан основни блок"
+
+#: tree-cfg.c:3571
+#, gcc-internal-format
+msgid "verify_stmts failed"
+msgstr "verify_stmts није успело"
+
+#: tree-cfg.c:3592
+#, gcc-internal-format
+msgid "ENTRY_BLOCK has a statement list associated with it"
+msgstr "ENTRY_BLOCK има придружену листу наредби"
+
+#: tree-cfg.c:3598
+#, gcc-internal-format
+msgid "EXIT_BLOCK has a statement list associated with it"
+msgstr "EXIT_BLOCK има придружену листу наредби"
+
+#: tree-cfg.c:3605
+#, gcc-internal-format
+msgid "fallthru to exit from bb %d"
+msgstr "пропад до излаза из об. %d"
+
+#: tree-cfg.c:3627
+#, gcc-internal-format
+msgid "nonlocal label %s is not first in a sequence of labels in bb %d"
+msgstr "нелокална етикета %s није прва у низу етикета у об. %d"
+
+#: tree-cfg.c:3636
+#, gcc-internal-format
+msgid "label %s to block does not match in bb %d"
+msgstr "етикета %s за блок не поклапа се у об. %d"
+
+#: tree-cfg.c:3645
+#, gcc-internal-format
+msgid "label %s has incorrect context in bb %d"
+msgstr "етикета %s има нетачан контекст у об. %d"
+
+#: tree-cfg.c:3659
+#, gcc-internal-format
+msgid "control flow in the middle of basic block %d"
+msgstr "контролни ток усред основног блока %d"
+
+#: tree-cfg.c:3669
+#, gcc-internal-format
+msgid "label %s in the middle of basic block %d"
+msgstr "етикета %s усред основног блока %d"
+
+#: tree-cfg.c:3688
+#, gcc-internal-format
+msgid "fallthru edge after a control statement in bb %d"
+msgstr "пропадна ивица после контролне наредбе у об. %d"
+
+#: tree-cfg.c:3703
+#, gcc-internal-format
+msgid "structured COND_EXPR at the end of bb %d"
+msgstr "структуиран COND_EXPR на крају об. %d"
+
+#: tree-cfg.c:3716 tree-cfg.c:3754 tree-cfg.c:3767 tree-cfg.c:3838
+#, gcc-internal-format
+msgid "wrong outgoing edge flags at end of bb %d"
+msgstr "погрешне заставице излазне ивице на крају об. %d"
+
+#: tree-cfg.c:3724
+#, gcc-internal-format
+msgid "%<then%> label does not match edge at end of bb %d"
+msgstr "етикета %<then%> не поклапа ивицу на крају об. %d"
+
+#: tree-cfg.c:3732
+#, gcc-internal-format
+msgid "%<else%> label does not match edge at end of bb %d"
+msgstr "етикета %<else%> не поклапа ивицу на крају об. %d"
+
+#: tree-cfg.c:3742
+#, gcc-internal-format
+msgid "explicit goto at end of bb %d"
+msgstr "експлицитно goto на крају об. %d"
+
+#: tree-cfg.c:3772
+#, gcc-internal-format
+msgid "return edge does not point to exit in bb %d"
+msgstr "повратна ивица не показује на излаз у об. %d"
+
+#: tree-cfg.c:3805
+#, gcc-internal-format
+msgid "found default case not at end of case vector"
+msgstr "нађен подразумевани случај који није на крају вектора случаја"
+
+#: tree-cfg.c:3811
+#, gcc-internal-format
+msgid "case labels not sorted:"
+msgstr "етикете случајева нису сортиране:"
+
+#: tree-cfg.c:3822
+#, gcc-internal-format
+msgid "no default case found at end of case vector"
+msgstr "подразумевани случај није нађен на крају вектора случајева"
+
+#: tree-cfg.c:3830
+#, gcc-internal-format
+msgid "extra outgoing edge %d->%d"
+msgstr "сувишна излазна ивица %d->%d"
+
+#: tree-cfg.c:3852
+#, gcc-internal-format
+msgid "missing edge %i->%i"
+msgstr "недостаје ивица %i->%i"
+
+#: tree-cfg.c:5143 tree-cfg.c:5147
+#, gcc-internal-format
+msgid "%H%<noreturn%> function does return"
+msgstr "%H%<noreturn%> функција ипак враћа"
+
+#: tree-cfg.c:5169 tree-cfg.c:5174
+#, gcc-internal-format
+msgid "%Hcontrol reaches end of non-void function"
+msgstr "%Hконтрола стиже до краја функције непразног типа"
+
+#: tree-cfg.c:5234
+#, gcc-internal-format
+msgid "%Jfunction might be possible candidate for attribute %<noreturn%>"
+msgstr "%Jфункција може бити кандидат за атрибут %<noreturn%>"
+
+#: tree-dump.c:856
+#, gcc-internal-format
+msgid "could not open dump file %qs: %s"
+msgstr "нисам могао да отворим датотеку пописа %qs: %s"
+
+#: tree-dump.c:987
+#, gcc-internal-format
+msgid "ignoring unknown option %q.*s in %<-fdump-%s%>"
+msgstr "игноришем непознату опцију %q.*s у %<-fdump-%s%>"
+
+#: tree-eh.c:1767
+#, gcc-internal-format
+msgid "EH edge %i->%i is missing"
+msgstr "недостаје ЕХ ивица %i->%i"
+
+#: tree-eh.c:1772
+#, gcc-internal-format
+msgid "EH edge %i->%i miss EH flag"
+msgstr "ЕХ ивици %i->%i недостаје ЕХ заставица"
+
+#. ??? might not be mistake.
+#: tree-eh.c:1778
+#, gcc-internal-format
+msgid "EH edge %i->%i has duplicated regions"
+msgstr "ЕХ ивица %i->%i има удвостручене области"
+
+#: tree-eh.c:1812
+#, gcc-internal-format
+msgid "BB %i can not throw but has EH edges"
+msgstr "Об. %i не може да баци али има ЕХ ивице"
+
+#: tree-eh.c:1819
+#, gcc-internal-format
+msgid "BB %i last statement has incorrectly set region"
+msgstr "Последња наредба у об. %i има неисправно постављену област"
+
+#: tree-eh.c:1830
+#, gcc-internal-format
+msgid "unnecessary EH edge %i->%i"
+msgstr "непотребна ЕХ ивица %i->%i"
+
+#: tree-inline.c:1386
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
+msgstr "функција %q+F се не може уткати јер користи alloca (потисните атрибутом always_inline)"
+
+#: tree-inline.c:1398
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it uses setjmp"
+msgstr "функција %q+F се не може уткати јер користи setjmp"
+
+#: tree-inline.c:1412
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it uses variable argument lists"
+msgstr "функција %q+F се не може уткати јер користи променљиву листу аргумената"
+
+#: tree-inline.c:1423
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
+msgstr "функција %q+F се не може уткати јер користи јер користи руковање изузецима типа setjmp-longjmp"
+
+#: tree-inline.c:1430
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it uses non-local goto"
+msgstr "функција %q+F се не може уткати јер користи нелокално goto"
+
+#: tree-inline.c:1441
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it uses __builtin_return or __builtin_apply_args"
+msgstr "функција %q+F се не може уткати јер користи __builtin_return или __builtin_apply_args"
+
+#: tree-inline.c:1460
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it contains a computed goto"
+msgstr "функција %q+F се не може уткати јер користи рачунско goto"
+
+#: tree-inline.c:1474
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it receives a non-local goto"
+msgstr "функција %q+F се не може уткати јер прима нелокално goto"
+
+#: tree-inline.c:1499
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it uses variable sized variables"
+msgstr "функција %q+F се не може уткати јер користи променљиве променљиве величине"
+
+#: tree-inline.c:2038 tree-inline.c:2048
+#, gcc-internal-format
+msgid "inlining failed in call to %q+F: %s"
+msgstr "уткивање није успело у позиву %q+F: %s"
+
+#: tree-inline.c:2039 tree-inline.c:2050
+#, gcc-internal-format
+msgid "called from here"
+msgstr "позвано одавде"
+
+#: tree-mudflap.c:847
+#, gcc-internal-format
+msgid "mudflap checking not yet implemented for ARRAY_RANGE_REF"
+msgstr "блатобранска провера још увек није имплементирана за ARRAY_RANGE_REF"
+
+#: tree-mudflap.c:1038
+#, gcc-internal-format
+msgid "mudflap cannot track %qs in stub function"
+msgstr "блатобран не може да прати %qs у клици функције"
+
+#: tree-mudflap.c:1269
+#, gcc-internal-format
+msgid "mudflap cannot track unknown size extern %qs"
+msgstr "блатобран не може да прати спољашње %qs непознате величине"
+
+#: tree-nomudflap.c:51
+#, gcc-internal-format
+msgid "mudflap: this language is not supported"
+msgstr "блатобран: овај језик није подржан"
+
+#: tree-optimize.c:478
+#, gcc-internal-format
+msgid "size of return value of %q+D is %u bytes"
+msgstr "величина повратне вредности %q+D је %u бајтова"
+
+#: tree-optimize.c:481
+#, gcc-internal-format
+msgid "size of return value of %q+D is larger than %wd bytes"
+msgstr "величина повратне вредности %q+D је већа од %wd бајтова"
+
+#: tree-outof-ssa.c:614 tree-outof-ssa.c:629 tree-outof-ssa.c:643
+#: tree-outof-ssa.c:665 tree-outof-ssa.c:1120 tree-outof-ssa.c:1872
+#: tree-ssa-live.c:429 tree-ssa-live.c:1835
+#, gcc-internal-format
+msgid "SSA corruption"
+msgstr "ССА искварење"
+
+#: tree-outof-ssa.c:2287
+#, gcc-internal-format
+msgid " Pending stmts not issued on PRED edge (%d, %d)\n"
+msgstr " Наступајуће наредбе нису издате на претходној ивици (%d, %d)\n"
+
+#: tree-outof-ssa.c:2293
+#, gcc-internal-format
+msgid " Pending stmts not issued on SUCC edge (%d, %d)\n"
+msgstr " Наступајуће наредбе нису издате на наследној ивици (%d, %d)\n"
+
+#: tree-outof-ssa.c:2300
+#, gcc-internal-format
+msgid " Pending stmts not issued on ENTRY edge (%d, %d)\n"
+msgstr " Наступајуће наредбе нису издате на улазној ивици (%d, %d)\n"
+
+#: tree-outof-ssa.c:2306
+#, gcc-internal-format
+msgid " Pending stmts not issued on EXIT edge (%d, %d)\n"
+msgstr " Наступајуће наредбе нису издате на излазној ивици (%d, %d)\n"
+
+#: tree-profile.c:216
+#, gcc-internal-format
+msgid "unimplemented functionality"
+msgstr "неимплементирана фунционалност"
+
+#: tree-ssa-loop-niter.c:1118
+#, gcc-internal-format
+msgid "%H%s"
+msgstr "%H%s"
+
+#: tree-ssa-operands.c:1328
+#, gcc-internal-format
+msgid "internal error"
+msgstr "унутрашња грешка"
+
+#: tree-ssa.c:111
+#, gcc-internal-format
+msgid "expected an SSA_NAME object"
+msgstr "очекиван објекат типа SSA_NAME"
+
+#: tree-ssa.c:117
+#, gcc-internal-format
+msgid "type mismatch between an SSA_NAME and its symbol"
+msgstr "неслагање типова између SSA_NAME и његовог симбола"
+
+#: tree-ssa.c:123
+#, gcc-internal-format
+msgid "found an SSA_NAME that had been released into the free pool"
+msgstr "нађен SSA_NAME који је ослобољен у депо слободних"
+
+#: tree-ssa.c:129
+#, gcc-internal-format
+msgid "found a virtual definition for a GIMPLE register"
+msgstr "нађена виртуелна дефиниција за ГИМПЛЕ регистар"
+
+#: tree-ssa.c:135
+#, gcc-internal-format
+msgid "found a real definition for a non-register"
+msgstr "нађена стварна дефиниција за не-регистар"
+
+#: tree-ssa.c:142
+#, gcc-internal-format
+msgid "found real variable when subvariables should have appeared"
+msgstr "нађена стварна променљива кад је требало да се појаве потпроменљиве"
+
+#: tree-ssa.c:171
+#, gcc-internal-format
+msgid "SSA_NAME created in two different blocks %i and %i"
+msgstr "SSA_NAME направљен у два различита блока %i и %i"
+
+#: tree-ssa.c:180
+#, gcc-internal-format
+msgid "SSA_NAME_DEF_STMT is wrong"
+msgstr "SSA_NAME_DEF_STMT је погрешно"
+
+#: tree-ssa.c:238
+#, gcc-internal-format
+msgid "missing definition"
+msgstr "недостаје дефиниција"
+
+#: tree-ssa.c:244
+#, gcc-internal-format
+msgid "definition in block %i does not dominate use in block %i"
+msgstr "дефиниција у блоку %i не доминира употребом у блоку %i"
+
+#: tree-ssa.c:252
+#, gcc-internal-format
+msgid "definition in block %i follows the use"
+msgstr "дефиниција у блоку %i прати употребу"
+
+#: tree-ssa.c:259
+#, gcc-internal-format
+msgid "SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set"
+msgstr "SSA_NAME_OCCURS_IN_ABNORMAL_PHI треба да је постављено"
+
+#: tree-ssa.c:267
+#, gcc-internal-format
+msgid "no immediate_use list"
+msgstr "нема листе непосредне употребе"
+
+#: tree-ssa.c:279
+#, gcc-internal-format
+msgid "wrong immediate use list"
+msgstr "погрешна листа непосредне употребе"
+
+#: tree-ssa.c:312
+#, gcc-internal-format
+msgid "incoming edge count does not match number of PHI arguments"
+msgstr "долазна ивица се не поклапа са бројем ПХИ аргумената"
+
+#: tree-ssa.c:327
+#, gcc-internal-format
+msgid "PHI argument is missing for edge %d->%d"
+msgstr "недостаје ПХИ аргумент за ивицу %d->%d"
+
+#: tree-ssa.c:336
+#, gcc-internal-format
+msgid "PHI argument is not SSA_NAME, or invariant"
+msgstr "ПХИ аргумент није SSA_NAME нити инваријанта"
+
+#: tree-ssa.c:348
+#, gcc-internal-format
+msgid "wrong edge %d->%d for PHI argument"
+msgstr "погрешна ивица %d->%d за ПХИ аргумент"
+
+#: tree-ssa.c:397
+#, gcc-internal-format
+msgid "non-addressable variable inside an alias set"
+msgstr "променљива која се не може адресирати унутар скупа алијаса"
+
+#: tree-ssa.c:413
+#, gcc-internal-format
+msgid "addressable variable that is an alias tag but is not in any alias set"
+msgstr "променљива која се може адресирати која је ознака алијаса, али није ни у једном скупу алијаса"
+
+#: tree-ssa.c:423
+#, gcc-internal-format
+msgid "verify_flow_insensitive_alias_info failed"
+msgstr "verify_flow_insensitive_alias_info није успело"
+
+#: tree-ssa.c:465
+#, gcc-internal-format
+msgid "dereferenced pointers should have a name or a type tag"
+msgstr "разрешени показивачи треба да имају име или ознаку типа"
+
+#: tree-ssa.c:472
+#, gcc-internal-format
+msgid "pointers with a memory tag, should have points-to sets"
+msgstr "показивачи са меморијском ознаком треба да имају скупове показује-на"
+
+#: tree-ssa.c:480
+#, gcc-internal-format
+msgid "pointer escapes but its name tag is not call-clobbered"
+msgstr "показивач бежи али његова ознака имена није позивом продрмана"
+
+#: tree-ssa.c:489
+#, gcc-internal-format
+msgid "verify_flow_sensitive_alias_info failed"
+msgstr "verify_flow_sensitive_alias_info није успело"
+
+#: tree-ssa.c:566
+#, gcc-internal-format
+msgid "alias set of a pointer's type tag should be a superset of the corresponding name tag"
+msgstr "скуп алијаса за ознаку типа показивача треба да је надскуп одговарајуће ознаке имена"
+
+#: tree-ssa.c:582
+#, gcc-internal-format
+msgid "two different pointers with identical points-to sets but different name tags"
+msgstr "два различита показивача са истоветним показује-на скуповима, али различитим ознакама имена"
+
+#: tree-ssa.c:614
+#, gcc-internal-format
+msgid "verify_name_tags failed"
+msgstr "verify_name_tags није успело"
+
+#: tree-ssa.c:685
+#, gcc-internal-format
+msgid "AUX pointer initialized for edge %d->%d"
+msgstr "АУКС показивач успостављен за ивицу %d->%d"
+
+#: tree-ssa.c:708
+#, gcc-internal-format
+msgid "stmt (%p) marked modified after optimization pass : "
+msgstr "наредба (%p) означена измењеном после оптимизујућег пролаза: "
+
+#: tree-ssa.c:726
+#, gcc-internal-format
+msgid "statement makes a memory store, but has no V_MAY_DEFS nor V_MUST_DEFS"
+msgstr "наредба чини складиштење у меморију, али нема V_MAY_DEFS нити V_MUST_DEFS"
+
+#: tree-ssa.c:737
+#, gcc-internal-format
+msgid "statement makes aliased stores, but has no V_MAY_DEFS"
+msgstr "наредба чини дволична складиштења, али нема V_MAY_DEFS"
+
+#: tree-ssa.c:776
+#, gcc-internal-format
+msgid "verify_ssa failed"
+msgstr "verify_ssa није успело"
+
+#. We only do data flow with SSA_NAMEs, so that's all we
+#. can warn about.
+#: tree-ssa.c:1163
+#, gcc-internal-format
+msgid "%H%qD is used uninitialized in this function"
+msgstr "%H%qD у овој функцији користи се неуспостављено"
+
+#: tree-ssa.c:1201
+#, gcc-internal-format
+msgid "%H%qD may be used uninitialized in this function"
+msgstr "%H%qD у овој функцији може бити бити употребљено неуспостављено"
+
+#: tree-vect-transform.c:561
+#, gcc-internal-format
+msgid "no support for induction"
+msgstr "нема подршке за индукцију"
+
+#: tree.c:3497
+#, gcc-internal-format
+msgid "%q+D already declared with dllexport attribute: dllimport ignored"
+msgstr "%q+D већ декларисано са атрибутом dllexport: dllimport се игнорише"
+
+#: tree.c:3509
+#, gcc-internal-format
+msgid "%q+D redeclared without dllimport attribute after being referenced with dll linkage"
+msgstr "%q+D поново декларисано без атрибута dllimport пошто је на њ упућено ДЛЛ повезивошћу"
+
+#: tree.c:3525 config/i386/winnt-cxx.c:70
+#, gcc-internal-format
+msgid "%q+D redeclared without dllimport attribute: previous dllimport ignored"
+msgstr "%q+D поново декларисано без атрибута dllimport: претходно dllimport се игнорише"
+
+#: tree.c:3577 config/darwin.c:1236 config/arm/arm.c:2896
+#: config/arm/arm.c:2924 config/avr/avr.c:4656 config/h8300/h8300.c:5282
+#: config/h8300/h8300.c:5306 config/i386/i386.c:2066 config/i386/i386.c:16727
+#: config/ia64/ia64.c:534 config/m68hc11/m68hc11.c:1118
+#: config/sh/symbian.c:409 config/sh/symbian.c:416
+#, gcc-internal-format
+msgid "%qs attribute ignored"
+msgstr "атрибут %qs се игнорише"
+
+#: tree.c:3596
+#, gcc-internal-format
+msgid "inline function %q+D declared as dllimport: attribute ignored"
+msgstr "уткана функција %q+D поново декларисана као dllimport: атрибут се игнорише"
+
+#: tree.c:3604
+#, gcc-internal-format
+msgid "function %q+D definition is marked dllimport"
+msgstr "дефиниција функције %q+D означена као dllimport"
+
+#: tree.c:3612 config/sh/symbian.c:431
+#, gcc-internal-format
+msgid "variable %q+D definition is marked dllimport"
+msgstr "дефиниција променљиве %q+D означена као dllimport"
+
+#: tree.c:3635 config/sh/symbian.c:506
+#, gcc-internal-format
+msgid "external linkage required for symbol %q+D because of %qs attribute"
+msgstr "спољашња повезивост неопходна за симбол %q+D због атрибута %qs"
+
+#: tree.c:5029
+#, gcc-internal-format
+msgid "arrays of functions are not meaningful"
+msgstr "низови функција немају смисла"
+
+#: tree.c:5081
+#, gcc-internal-format
+msgid "function return type cannot be function"
+msgstr "повратни тип функције не може бити функција"
+
+#: tree.c:6000
+#, gcc-internal-format
+msgid "tree check: %s, have %s in %s, at %s:%d"
+msgstr "провера стабла: %s, имам %s у %s, код %s:%d"
+
+#: tree.c:6037
+#, gcc-internal-format
+msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
+msgstr "провера стабла: не очекивај ниједно од %s, имам %s у %s, код %s:%d"
+
+#: tree.c:6050
+#, gcc-internal-format
+msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
+msgstr "провера стабла: очекивах класу %qs, имам %qs (%s) у %s, код %s:%d"
+
+#: tree.c:6075
+#, gcc-internal-format
+msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
+msgstr "провера стабла: очекивах стабло које садржи структуру %qs, имам %qs у %s, код %s:%d"
+
+#: tree.c:6089
+#, gcc-internal-format
+msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
+msgstr "провера стабла: приступих елту %d у tree_vec са %d елтова у %s, код %s:%d"
+
+#: tree.c:6101
+#, gcc-internal-format
+msgid "tree check: accessed elt %d of phi_node with %d elts in %s, at %s:%d"
+msgstr "провера стабла: приступих елту %d у phi_node са %d елтова у %s, код %s:%d"
+
+#: tree.c:6113
+#, gcc-internal-format
+msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
+msgstr "провера стабла: приступих операнду %d од %s са %d операнада у %s, код %s:%d"
+
+#: value-prof.c:101
+#, gcc-internal-format
+msgid "%HCorrupted value profile: %s profiler overall count (%d) does not match BB count (%d)"
+msgstr "%HИскварена вредност профила: укупни број профилизатора %s (%d) не поклапа се са бројем об. (%d)"
+
+#: varasm.c:470
+#, gcc-internal-format
+msgid "%+D causes a section type conflict"
+msgstr "%+D изазива сукоб типа одељка"
+
+#: varasm.c:930 varasm.c:938
+#, gcc-internal-format
+msgid "register name not specified for %q+D"
+msgstr "име регистра није наведено за %q+D"
+
+#: varasm.c:940
+#, gcc-internal-format
+msgid "invalid register name for %q+D"
+msgstr "неисправно име регистра за %q+D"
+
+#: varasm.c:942
+#, gcc-internal-format
+msgid "data type of %q+D isn%'t suitable for a register"
+msgstr "тип податка за %q+D није погодан за регистар"
+
+#: varasm.c:945
+#, gcc-internal-format
+msgid "register specified for %q+D isn%'t suitable for data type"
+msgstr "регистар наведен за %q+D није погодан за тип податка"
+
+#: varasm.c:955
+#, gcc-internal-format
+msgid "global register variable has initial value"
+msgstr "глобална регистарска променљива има почетну вредност"
+
+#: varasm.c:959
+#, gcc-internal-format
+msgid "optimization may eliminate reads and/or writes to register variables"
+msgstr "оптимизација може уклонити читања и/или писања у регистарске променљиве"
+
+#: varasm.c:997
+#, gcc-internal-format
+msgid "register name given for non-register variable %q+D"
+msgstr "име регистра дато за нерегистарску променљиву %q+D"
+
+#: varasm.c:1074
+#, gcc-internal-format
+msgid "global destructors not supported on this target"
+msgstr "глобални деструктори нису подржани на овом циљу"
+
+#: varasm.c:1135
+#, gcc-internal-format
+msgid "global constructors not supported on this target"
+msgstr "глобални конструктори нису подржани на овом циљу"
+
+#: varasm.c:1697
+#, gcc-internal-format
+msgid "alignment of %q+D is greater than maximum object file alignment. Using %d"
+msgstr "равнање за %q+D веће је од највећег равнања објектне датотеке. Користим %d"
+
+#: varasm.c:1736
+#, gcc-internal-format
+msgid "thread-local COMMON data not implemented"
+msgstr "нитно-локални COMMON подаци нису имплементирани"
+
+#: varasm.c:1761
+#, gcc-internal-format
+msgid "requested alignment for %q+D is greater than implemented alignment of %wu"
+msgstr "захтевано равнање за %q+D веће је од имплементираног равнања за %wu"
+
+#: varasm.c:3935
+#, gcc-internal-format
+msgid "no-op convert from %wd to %wd bytes in initializer"
+msgstr "не-оп претварање из %wd у %wd бајтова у успостављачу"
+
+#: varasm.c:3979
+#, gcc-internal-format
+msgid "initializer for integer value is too complicated"
+msgstr "успостављач за целобројну вредност је превише компликован"
+
+#: varasm.c:3984
+#, gcc-internal-format
+msgid "initializer for floating value is not a floating constant"
+msgstr "успостављач за реалну вредност није реална константа"
+
+#: varasm.c:4253
+#, gcc-internal-format
+msgid "invalid initial value for member %qs"
+msgstr "неисправна почетна вредност за члан %qs"
+
+#: varasm.c:4453 varasm.c:4497
+#, gcc-internal-format
+msgid "weak declaration of %q+D must precede definition"
+msgstr "слаба декларација %q+D мора претходити дефиницији"
+
+#: varasm.c:4461
+#, gcc-internal-format
+msgid "weak declaration of %q+D after first use results in unspecified behavior"
+msgstr "слаба декларација %q+D после прве употребе резултује неодређеним понашањем"
+
+#: varasm.c:4495
+#, gcc-internal-format
+msgid "weak declaration of %q+D must be public"
+msgstr "слаба декларација %q+D мора бити јавна"
+
+#: varasm.c:4504
+#, gcc-internal-format
+msgid "weak declaration of %q+D not supported"
+msgstr "слаба декларација %q+D није подржана"
+
+#: varasm.c:4534
+#, gcc-internal-format
+msgid "only weak aliases are supported in this configuration"
+msgstr "само слаби алијаси су подржани у овој конфигурацији"
+
+#: varasm.c:4764
+#, gcc-internal-format
+msgid "%Jweakref is not supported in this configuration"
+msgstr "%Jслаби упућивач није подржан у овој конфигурацији"
+
+#: varasm.c:4837
+#, gcc-internal-format
+msgid "%q+D aliased to undefined symbol %qs"
+msgstr "%q+D удволичено са недефинисаним симболом %qs"
+
+#: varasm.c:4842
+#, gcc-internal-format
+msgid "%q+D aliased to external symbol %qs"
+msgstr "%q+D удволичено са спољашњим симболом %qs"
+
+#: varasm.c:4881
+#, gcc-internal-format
+msgid "weakref %q+D ultimately targets itself"
+msgstr "слаби упућивач %q+D на крају циља самог себе"
+
+#: varasm.c:4894
+#, gcc-internal-format
+msgid "%Jalias definitions not supported in this configuration"
+msgstr "%Jдефиниције алијаса нису подржане у овој конфигурацији"
+
+#: varasm.c:4899
+#, gcc-internal-format
+msgid "%Jonly weak aliases are supported in this configuration"
+msgstr "%Jсамо слаби алијаси су подржани у овој конфигурацији"
+
+#: varasm.c:4956
+#, gcc-internal-format
+msgid "visibility attribute not supported in this configuration; ignored"
+msgstr "атрибут видљивости није подржан у овој конфигурацији, игноришем"
+
+#: varray.c:207
+#, gcc-internal-format
+msgid "virtual array %s[%lu]: element %lu out of bounds in %s, at %s:%d"
+msgstr "виртуелни низ %s[%lu]: елемент %lu ван граница у %s, код %s:%d"
+
+#: varray.c:217
+#, gcc-internal-format
+msgid "underflowed virtual array %s in %s, at %s:%d"
+msgstr "подливен виртуелни низ %s у %s, код %s:%d"
+
+#: vec.c:153
+#, gcc-internal-format
+msgid "vector %s %s domain error, in %s at %s:%u"
+msgstr "вектор %s грешке домена %s, у %s код %s:%u"
+
+#. Print an error message for unrecognized stab codes.
+#: xcoffout.c:187
+#, gcc-internal-format
+msgid "no sclass for %s stab (0x%x)"
+msgstr "нема sclass за %s stab (0x%x)"
+
+#: config/darwin-c.c:86
+#, gcc-internal-format
+msgid "too many #pragma options align=reset"
+msgstr "превише #pragma options align=reset"
+
+#: config/darwin-c.c:106 config/darwin-c.c:109 config/darwin-c.c:111
+#: config/darwin-c.c:113
+#, gcc-internal-format
+msgid "malformed '#pragma options', ignoring"
+msgstr "лоше формирано „#pragma options“, игноришем"
+
+#: config/darwin-c.c:116
+#, gcc-internal-format
+msgid "junk at end of '#pragma options'"
+msgstr "смеће на крају „#pragma options“"
+
+#: config/darwin-c.c:126
+#, gcc-internal-format
+msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
+msgstr "лоше формирано „#pragma options align={mac68k|power|reset}“, игноришем"
+
+#: config/darwin-c.c:138
+#, gcc-internal-format
+msgid "missing '(' after '#pragma unused', ignoring"
+msgstr "недостаје „(“ после „#pragma unused“, игноришем"
+
+#: config/darwin-c.c:156
+#, gcc-internal-format
+msgid "missing ')' after '#pragma unused', ignoring"
+msgstr "недостаје „)“ после „#pragma unused“, игноришем"
+
+#: config/darwin-c.c:159
+#, gcc-internal-format
+msgid "junk at end of '#pragma unused'"
+msgstr "смеће на крају „#pragma unused“"
+
+#: config/darwin-c.c:385
+#, gcc-internal-format
+msgid "subframework include %s conflicts with framework include"
+msgstr "укључивање радног подоквира %s коси се са укључивањем радног оквира"
+
+#: config/darwin-c.c:577
+#, gcc-internal-format
+msgid "Unknown value %qs of -mmacosx-version-min"
+msgstr "Непозната вредност %qs за -mmacosx-version-min"
+
+#: config/darwin.c:1350
+#, gcc-internal-format
+msgid "internal and protected visibility attributes not supported in this configuration; ignored"
+msgstr "атрибути унутрашње и заштићене видљивости нису подржани у овој конфигурацији, игноришем"
+
+#: config/host-darwin.c:63
+#, gcc-internal-format
+msgid "couldn't unmap pch_address_space: %m"
+msgstr "нисам могао да демапирам pch_address_space: %m"
+
+#: config/sol2-c.c:94 config/sol2-c.c:110
+#, gcc-internal-format
+msgid "malformed %<#pragma align%>, ignoring"
+msgstr "лоше формирано %<#pragma align%>, игноришем"
+
+#: config/sol2-c.c:103
+#, gcc-internal-format
+msgid "invalid alignment for %<#pragma align%>, ignoring"
+msgstr "неисправно равнање за %<#pragma align%>, игноришем"
+
+#: config/sol2-c.c:118
+#, gcc-internal-format
+msgid "%<#pragma align%> must appear before the declaration of %D, ignoring"
+msgstr "%<#pragma align%> мора да се јави пре декларације %D, игноришем"
+
+#: config/sol2-c.c:130 config/sol2-c.c:142
+#, gcc-internal-format
+msgid "malformed %<#pragma align%>"
+msgstr "лоше формирано %<#pragma align%>"
+
+#: config/sol2-c.c:137
+#, gcc-internal-format
+msgid "junk at end of %<#pragma align%>"
+msgstr "смеће на крају %<#pragma align%>"
+
+#: config/sol2-c.c:158 config/sol2-c.c:165
+#, gcc-internal-format
+msgid "malformed %<#pragma init%>, ignoring"
+msgstr "лоше формирано %<#pragma init%>, игноришем"
+
+#: config/sol2-c.c:188 config/sol2-c.c:200
+#, gcc-internal-format
+msgid "malformed %<#pragma init%>"
+msgstr "лоше формирано %<#pragma init%>"
+
+#: config/sol2-c.c:195
+#, gcc-internal-format
+msgid "junk at end of %<#pragma init%>"
+msgstr "смеће на крају %<#pragma init%>"
+
+#: config/sol2-c.c:216 config/sol2-c.c:223
+#, gcc-internal-format
+msgid "malformed %<#pragma fini%>, ignoring"
+msgstr "лоше формирано %<#pragma fini%>, игноришем"
+
+#: config/sol2-c.c:246 config/sol2-c.c:258
+#, gcc-internal-format
+msgid "malformed %<#pragma fini%>"
+msgstr "лоше формирано %<#pragma fini%>"
+
+#: config/sol2-c.c:253
+#, gcc-internal-format
+msgid "junk at end of %<#pragma fini%>"
+msgstr "смеће на крају %<#pragma fini%>"
+
+#: config/sol2.c:54
+#, gcc-internal-format
+msgid "ignoring %<#pragma align%> for explicitly aligned %q+D"
+msgstr "игноришем %<#pragma align%> за експлицитно поравнато %q+D"
+
+#. Mach-O supports 'weak imports', and 'weak definitions' in coalesced
+#. sections. machopic_select_section ensures that weak variables go in
+#. coalesced sections. Weak aliases (or any other kind of aliases) are
+#. not supported. Weak symbols that aren't visible outside the .s file
+#. are not supported.
+#: config/darwin.h:395
+#, gcc-internal-format
+msgid "alias definitions not supported in Mach-O; ignored"
+msgstr "дефиниције алијаса нису подржане у Маху-О, игноришем"
+
+#. No profiling.
+#: config/vx-common.h:83
+#, gcc-internal-format
+msgid "profiler support for VxWorks"
+msgstr "подршка профилисања за ВиксВоркс"
+
+#: config/windiss.h:37
+#, gcc-internal-format
+msgid "profiler support for WindISS"
+msgstr "подршка профилисања за ВиндИСС"
+
+#: config/alpha/alpha.c:231 config/rs6000/rs6000.c:1579
+#, gcc-internal-format
+msgid "bad value %qs for -mtls-size switch"
+msgstr "лоша вредност %qs за прекидач -mtls-size"
+
+#: config/alpha/alpha.c:285
+#, gcc-internal-format
+msgid "-f%s ignored for Unicos/Mk (not supported)"
+msgstr "-f%s игнорисано за Уникос/Мк (није подржано)"
+
+#: config/alpha/alpha.c:309
+#, gcc-internal-format
+msgid "-mieee not supported on Unicos/Mk"
+msgstr "-mieee није подржано на Уникосу/Мк"
+
+#: config/alpha/alpha.c:320
+#, gcc-internal-format
+msgid "-mieee-with-inexact not supported on Unicos/Mk"
+msgstr "-mieee-with-inexact није подржано на Уникосу/Мк"
+
+#: config/alpha/alpha.c:337
+#, gcc-internal-format
+msgid "bad value %qs for -mtrap-precision switch"
+msgstr "лоша вредност %qs за прекидач -mtrap-precision"
+
+#: config/alpha/alpha.c:351
+#, gcc-internal-format
+msgid "bad value %qs for -mfp-rounding-mode switch"
+msgstr "лоша вредност %qs за прекидач -mfp-rounding-mode"
+
+#: config/alpha/alpha.c:366
+#, gcc-internal-format
+msgid "bad value %qs for -mfp-trap-mode switch"
+msgstr "лоша вредност %qs за прекидач -mfp-trap-mode"
+
+#: config/alpha/alpha.c:380 config/alpha/alpha.c:392
+#, gcc-internal-format
+msgid "bad value %qs for -mcpu switch"
+msgstr "лоша вредност %qs за прекидач -mcpu"
+
+#: config/alpha/alpha.c:399
+#, gcc-internal-format
+msgid "trap mode not supported on Unicos/Mk"
+msgstr "режим клопки није подржан на Уникосу/Мк"
+
+#: config/alpha/alpha.c:406
+#, gcc-internal-format
+msgid "fp software completion requires -mtrap-precision=i"
+msgstr "ФП софтверско довршавање захтева -mtrap-precision=i"
+
+#: config/alpha/alpha.c:422
+#, gcc-internal-format
+msgid "rounding mode not supported for VAX floats"
+msgstr "режим заокруживања није подржан за ВАКСове реалне"
+
+#: config/alpha/alpha.c:427
+#, gcc-internal-format
+msgid "trap mode not supported for VAX floats"
+msgstr "режим клопки није подржан за ВАКСове реалне"
+
+#: config/alpha/alpha.c:431
+#, gcc-internal-format
+msgid "128-bit long double not supported for VAX floats"
+msgstr "128-битни дуги реални није подржан за ВАКСове реалне"
+
+#: config/alpha/alpha.c:459
+#, gcc-internal-format
+msgid "L%d cache latency unknown for %s"
+msgstr "Кашњење L%d оставе непознато за %s"
+
+#: config/alpha/alpha.c:474
+#, gcc-internal-format
+msgid "bad value %qs for -mmemory-latency"
+msgstr "лоша вредност %qs за -mmemory-latency"
+
+#: config/alpha/alpha.c:6569 config/alpha/alpha.c:6572 config/s390/s390.c:8111
+#: config/s390/s390.c:8114
+#, gcc-internal-format
+msgid "bad builtin fcode"
+msgstr "лош уграђени fcode"
+
+#: config/arc/arc.c:390
+#, gcc-internal-format
+msgid "argument of %qs attribute is not a string constant"
+msgstr "аргумент атрибута %qs није константна ниска"
+
+#: config/arc/arc.c:398
+#, gcc-internal-format
+msgid "argument of %qs attribute is not \"ilink1\" or \"ilink2\""
+msgstr "аргумент атрибута %qs није „ilink1“ или „ilink2“"
+
+#: config/arm/arm.c:912
+#, gcc-internal-format
+msgid "switch -mcpu=%s conflicts with -march= switch"
+msgstr "прекидач -mcpu=%s коси се са -march="
+
+#: config/arm/arm.c:922 config/rs6000/rs6000.c:1231 config/sparc/sparc.c:706
+#, gcc-internal-format
+msgid "bad value (%s) for %s switch"
+msgstr "лоша вредност (%s) за прекидач %s"
+
+#: config/arm/arm.c:1032
+#, gcc-internal-format
+msgid "target CPU does not support interworking"
+msgstr "циљни ЦПУ не подржава интерворкинг"
+
+#: config/arm/arm.c:1038
+#, gcc-internal-format
+msgid "target CPU does not support THUMB instructions"
+msgstr "циљни ЦПУ не подржава инструкције Тамба"
+
+#: config/arm/arm.c:1056
+#, gcc-internal-format
+msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
+msgstr "укључивање подршке за контраход има смисла само када се компилује за Тамб"
+
+#: config/arm/arm.c:1059
+#, gcc-internal-format
+msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
+msgstr "укључивање подршке за интерворкинг позваних има смисла само када се компилује за Тамб"
+
+#: config/arm/arm.c:1062
+#, gcc-internal-format
+msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
+msgstr "укључивање подршке за интерворкинг позивача има смисла само када се компилује за Тамб"
+
+#: config/arm/arm.c:1066
+#, gcc-internal-format
+msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
+msgstr "-mapcs-stack-check није сагласно са -mno-apcs-frame"
+
+#: config/arm/arm.c:1074
+#, gcc-internal-format
+msgid "-fpic and -mapcs-reent are incompatible"
+msgstr "-fpic и -mapcs-reent нису сагласни"
+
+#: config/arm/arm.c:1077
+#, gcc-internal-format
+msgid "APCS reentrant code not supported. Ignored"
+msgstr "Вишеулазни кôд АПЦСа није подржан, игноришем"
+
+#: config/arm/arm.c:1085
+#, gcc-internal-format
+msgid "-g with -mno-apcs-frame may not give sensible debugging"
+msgstr "-g уз -mno-apcs-frame може дати бесмислено исправљање"
+
+#: config/arm/arm.c:1093
+#, gcc-internal-format
+msgid "passing floating point arguments in fp regs not yet supported"
+msgstr "прослеђивање аргумената у покретном зарезу у ФП регистрима још увек није подржано"
+
+#: config/arm/arm.c:1135
+#, gcc-internal-format
+msgid "invalid ABI option: -mabi=%s"
+msgstr "неисправна опција АБИја: -mabi=%s"
+
+#: config/arm/arm.c:1141
+#, gcc-internal-format
+msgid "iwmmxt requires an AAPCS compatible ABI for proper operation"
+msgstr "iWMMXt захтева ААПЦС-сагласан АБИ за правилан рад"
+
+#: config/arm/arm.c:1144
+#, gcc-internal-format
+msgid "iwmmxt abi requires an iwmmxt capable cpu"
+msgstr "iWMMXt АБИ захтева iWMMXt-способан ЦПУ"
+
+#: config/arm/arm.c:1154
+#, gcc-internal-format
+msgid "invalid floating point emulation option: -mfpe=%s"
+msgstr "неисправна опција емулације покретног зареза: -mfpe=%s"
+
+#: config/arm/arm.c:1171
+#, gcc-internal-format
+msgid "invalid floating point option: -mfpu=%s"
+msgstr "неисправна опција покретног зареза: -mfpu=%s"
+
+#: config/arm/arm.c:1211
+#, gcc-internal-format
+msgid "invalid floating point abi: -mfloat-abi=%s"
+msgstr "неисправан АБИ покретног зареза: -mfloat-abi=%s"
+
+#: config/arm/arm.c:1218
+#, gcc-internal-format
+msgid "-mfloat-abi=hard and VFP"
+msgstr "-mfloat-abi=hard и ВФП"
+
+#: config/arm/arm.c:1224
+#, gcc-internal-format
+msgid "iWMMXt and hardware floating point"
+msgstr "iWMMXt и хардверски покретан зарез"
+
+#: config/arm/arm.c:1247
+#, gcc-internal-format
+msgid "invalid thread pointer option: -mtp=%s"
+msgstr "неисправна опција показивача нити: -mtp=%s"
+
+#: config/arm/arm.c:1260
+#, gcc-internal-format
+msgid "can not use -mtp=cp15 with -mthumb"
+msgstr "не може се користити -mtp=cp15 уз -mthumb"
+
+#: config/arm/arm.c:1274
+#, gcc-internal-format
+msgid "structure size boundary can only be set to %s"
+msgstr "граница величине структура може бити постављена само на %s"
+
+#: config/arm/arm.c:1283
+#, gcc-internal-format
+msgid "-mpic-register= is useless without -fpic"
+msgstr "-mpic-register= је бескорисно без -fpic"
+
+#: config/arm/arm.c:1290
+#, gcc-internal-format
+msgid "unable to use '%s' for PIC register"
+msgstr "не могу да користим „%s“ за ПИЦ регистар"
+
+#: config/arm/arm.c:2864 config/arm/arm.c:2882 config/avr/avr.c:4676
+#: config/bfin/bfin.c:2731 config/c4x/c4x.c:4076 config/h8300/h8300.c:5258
+#: config/i386/i386.c:2030 config/m68hc11/m68hc11.c:1155
+#: config/m68k/m68k.c:376 config/mcore/mcore.c:3032 config/mt/mt.c:1274
+#: config/rs6000/rs6000.c:17402 config/sh/sh.c:7568 config/sh/sh.c:7589
+#: config/sh/sh.c:7612 config/stormy16/stormy16.c:2241 config/v850/v850.c:2111
+#, gcc-internal-format
+msgid "%qs attribute only applies to functions"
+msgstr "атрибут %qs примењује се само на функције"
+
+#: config/arm/arm.c:12004
+#, gcc-internal-format
+msgid "unable to compute real location of stacked parameter"
+msgstr "не могу да срачунам стварну локацију параметра на стеку"
+
+#. @@@ better error message
+#: config/arm/arm.c:12649 config/arm/arm.c:12686
+#, gcc-internal-format
+msgid "selector must be an immediate"
+msgstr "селектор мора бити непосредни"
+
+#. @@@ better error message
+#: config/arm/arm.c:12729 config/i386/i386.c:15504 config/i386/i386.c:15538
+#, gcc-internal-format
+msgid "mask must be an immediate"
+msgstr "маска мора бити непосредна"
+
+#: config/arm/arm.c:13388
+#, gcc-internal-format
+msgid "no low registers available for popping high registers"
+msgstr "нема доступних ниских регистара за подизање високих регистара"
+
+#: config/arm/arm.c:13612
+#, gcc-internal-format
+msgid "interrupt Service Routines cannot be coded in Thumb mode"
+msgstr "сервисне рутине прекида не могу бити кодиране у режиму Тамба"
+
+#: config/arm/pe.c:165 config/mcore/mcore.c:2898
+#, gcc-internal-format
+msgid "initialized variable %q+D is marked dllimport"
+msgstr "успостављена променљива %q+D означена је као dllimport"
+
+#: config/arm/pe.c:174
+#, gcc-internal-format
+msgid "static variable %q+D is marked dllimport"
+msgstr "статичка променљива %q+D означена је као dllimport"
+
+#: config/avr/avr.c:531
+#, gcc-internal-format
+msgid "large frame pointer change (%d) with -mtiny-stack"
+msgstr "велика промена (%d) показивача оквира уз -mtiny-stack"
+
+#: config/avr/avr.c:4649
+#, gcc-internal-format
+msgid "only initialized variables can be placed into program memory area"
+msgstr "само успостављене променљиве могу се сместити у меморијску област програма"
+
+#: config/avr/avr.c:4693
+#, gcc-internal-format
+msgid "%qs appears to be a misspelled interrupt handler"
+msgstr "%qs изгледа као погрешно написан руковалац прекидима"
+
+#: config/avr/avr.c:4701
+#, gcc-internal-format
+msgid "%qs appears to be a misspelled signal handler"
+msgstr "%qs изгледа као погрешно написан руковалац сигналима"
+
+#: config/avr/avr.c:4770
+#, gcc-internal-format
+msgid "only uninitialized variables can be placed in the .noinit section"
+msgstr "само неуспостављене променљиве могу се сместити у одељак .noint"
+
+#: config/avr/avr.c:4784
+#, gcc-internal-format
+msgid "MCU %qs supported for assembler only"
+msgstr "МЦУ %qs подржан само за асемблер"
+
+#: config/avr/avr.h:713
+#, gcc-internal-format
+msgid "trampolines not supported"
+msgstr "трамполине нису подржане"
+
+#: config/bfin/bfin.c:1813 config/m68k/m68k.c:294
+#, gcc-internal-format
+msgid "-mshared-library-id=%s is not between 0 and %d"
+msgstr "-mshared-library-id=%s није између 0 и %d"
+
+#: config/bfin/bfin.c:1833
+#, gcc-internal-format
+msgid "-mshared-library-id= specified without -mid-shared-library"
+msgstr "-mshared-library-id= наведено без -mid-shared-library"
+
+#: config/bfin/bfin.c:2736
+#, gcc-internal-format
+msgid "multiple function type attributes specified"
+msgstr "наведени вишеструки атрибути типа функције"
+
+#: config/bfin/bfin.c:2792
+#, gcc-internal-format
+msgid "`%s' attribute only applies to functions"
+msgstr "атрибут „%s“ примењив је само на функције"
+
+#: config/bfin/bfin.c:2803
+#, gcc-internal-format
+msgid "can't apply both longcall and shortcall attributes to the same function"
+msgstr "не могу се на исту функцију применити атрибути и longcall и shortcall"
+
+#: config/c4x/c4x-c.c:72
+#, gcc-internal-format
+msgid "missing '(' after '#pragma %s' - ignored"
+msgstr "недостаје „(“ после „#pragma %s“, игноришем"
+
+#: config/c4x/c4x-c.c:75
+#, gcc-internal-format
+msgid "missing function name in '#pragma %s' - ignored"
+msgstr "недостаје име функције у „#pragma %s“, игноришем"
+
+#: config/c4x/c4x-c.c:80
+#, gcc-internal-format
+msgid "malformed '#pragma %s' - ignored"
+msgstr "лоше формирано „#pragma %s“, игноришем"
+
+#: config/c4x/c4x-c.c:82
+#, gcc-internal-format
+msgid "missing section name in '#pragma %s' - ignored"
+msgstr "недостаје име одељка у „#pragma %s“, игноришем"
+
+#: config/c4x/c4x-c.c:87
+#, gcc-internal-format
+msgid "missing ')' for '#pragma %s' - ignored"
+msgstr "недостаје „)“ за „#pragma %s“, игноришем"
+
+#: config/c4x/c4x-c.c:90
+#, gcc-internal-format
+msgid "junk at end of '#pragma %s'"
+msgstr "смеће на крају „#pragma %s“"
+
+#: config/c4x/c4x.c:860
+#, gcc-internal-format
+msgid "ISR %s requires %d words of local vars, max is 32767"
+msgstr "ИСР %s захтева %d речи локалних променљивих, највише 32767"
+
+#. This function is for retrieving a part of an instruction name for
+#. an operator, for immediate output. If that ever happens for
+#. MULT, we need to apply TARGET_MUL_BUG in the caller. Make sure
+#. we notice.
+#: config/cris/cris.c:435
+#, gcc-internal-format
+msgid "MULT case in cris_op_str"
+msgstr "MULT случај у cris_op_str"
+
+#: config/cris/cris.c:813
+#, gcc-internal-format
+msgid "invalid use of ':' modifier"
+msgstr "неисправна употреба модификатора „:“"
+
+#: config/cris/cris.c:986
+#, gcc-internal-format
+msgid "internal error: bad register: %d"
+msgstr "унутрашња грешка: лош регистар %d"
+
+#: config/cris/cris.c:1528
+#, gcc-internal-format
+msgid "internal error: sideeffect-insn affecting main effect"
+msgstr "унутрашња грешка: ија за споредни ефекат утиче на главни ефекат"
+
+#: config/cris/cris.c:1552
+#, gcc-internal-format
+msgid "unknown cc_attr value"
+msgstr "непозната вредност cc_attr"
+
+#. If we get here, the caller got its initial tests wrong.
+#: config/cris/cris.c:1903
+#, gcc-internal-format
+msgid "internal error: cris_side_effect_mode_ok with bad operands"
+msgstr "унутрашња грешка: cris_side_effect_mode_ok са лошим операндима"
+
+#: config/cris/cris.c:2106
+#, gcc-internal-format
+msgid "-max-stackframe=%d is not usable, not between 0 and %d"
+msgstr "-max-stackframe=%d није употребљиво, није између 0 и %d"
+
+#: config/cris/cris.c:2134
+#, gcc-internal-format
+msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
+msgstr "непозната одредница верзије КРИСа у -march= или -mcpu= : %s"
+
+#: config/cris/cris.c:2170
+#, gcc-internal-format
+msgid "unknown CRIS cpu version specification in -mtune= : %s"
+msgstr "непозната одредница верзије КРИСа у -mtune= : %s"
+
+#: config/cris/cris.c:2188
+#, gcc-internal-format
+msgid "-fPIC and -fpic are not supported in this configuration"
+msgstr "-fPIC и -fpic нису подржани у овој конфигурацији"
+
+#: config/cris/cris.c:2203
+#, gcc-internal-format
+msgid "that particular -g option is invalid with -maout and -melinux"
+msgstr "та конкретна опција -g није исправна уз -maout и -melinux"
+
+#: config/cris/cris.c:2416
+#, gcc-internal-format
+msgid "Unknown src"
+msgstr "Непознат извор"
+
+#: config/cris/cris.c:2477
+#, gcc-internal-format
+msgid "Unknown dest"
+msgstr "Непознато одредиште"
+
+#: config/cris/cris.c:2762
+#, gcc-internal-format
+msgid "stackframe too big: %d bytes"
+msgstr "оквир стека превелик: %d бајтова"
+
+#: config/cris/cris.c:3214 config/cris/cris.c:3241
+#, gcc-internal-format
+msgid "expand_binop failed in movsi got"
+msgstr "expand_binop није успело у movsi got"
+
+#: config/cris/cris.c:3322
+#, gcc-internal-format
+msgid "emitting PIC operand, but PIC register isn't set up"
+msgstr "емитује се ПИЦ операнд, али ПИЦ регистар није постављен"
+
+#. Definitions for GCC. Part of the machine description for CRIS.
+#. Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+#. Free Software Foundation, Inc.
+#. Contributed by Axis Communications. Written by Hans-Peter Nilsson.
+#.
+#. This file is part of GCC.
+#.
+#. GCC 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 2, or (at your option)
+#. any later version.
+#.
+#. GCC 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 GCC; see the file COPYING. If not, write to
+#. the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+#. Boston, MA 02110-1301, USA.
+#. After the first "Node:" comment comes all preprocessor directives and
+#. attached declarations described in the info files, the "Using and
+#. Porting GCC" manual (uapgcc), in the same order as found in the "Target
+#. macros" section in the gcc-2.9x CVS edition of 2000-03-17. FIXME: Not
+#. really, but needs an update anyway.
+#.
+#. There is no generic copy-of-uapgcc comment, you'll have to see uapgcc
+#. for that. If applicable, there is a CRIS-specific comment. The order
+#. of macro definitions follow the order in the manual. Every section in
+#. the manual (node in the info pages) has an introductory `Node:
+#. <subchapter>' comment. If no macros are defined for a section, only
+#. the section-comment is present.
+#. Note that other header files (e.g. config/elfos.h, config/linux.h,
+#. config/cris/linux.h and config/cris/aout.h) are responsible for lots of
+#. settings not repeated below. This file contains general CRIS
+#. definitions and definitions for the cris-*-elf subtarget.
+#. We don't want to use gcc_assert for everything, as that can be
+#. compiled out.
+#: config/cris/cris.h:44
+#, gcc-internal-format
+msgid "CRIS-port assertion failed: "
+msgstr "Тврдња КРИС-порта није прошла: "
+
+#. Node: Caller Saves
+#. (no definitions)
+#. Node: Function entry
+#. See cris.c for TARGET_ASM_FUNCTION_PROLOGUE and
+#. TARGET_ASM_FUNCTION_EPILOGUE.
+#. Node: Profiling
+#: config/cris/cris.h:871
+#, gcc-internal-format
+msgid "no FUNCTION_PROFILER for CRIS"
+msgstr "недостаје FUNCTION_PROFILER за КРИС"
+
+#: config/crx/crx.h:355
+#, gcc-internal-format
+msgid "Profiler support for CRX"
+msgstr "Подршка профилисања за ЦРИкс"
+
+#: config/crx/crx.h:366
+#, gcc-internal-format
+msgid "Trampoline support for CRX"
+msgstr "Подршка трамполина за ЦРИкс"
+
+#: config/frv/frv.c:8623
+#, gcc-internal-format
+msgid "accumulator is not a constant integer"
+msgstr "акумулатор није целобројна константа"
+
+#: config/frv/frv.c:8628
+#, gcc-internal-format
+msgid "accumulator number is out of bounds"
+msgstr "број акумулатора је ван граница"
+
+#: config/frv/frv.c:8639
+#, gcc-internal-format
+msgid "inappropriate accumulator for %qs"
+msgstr "неодговарајући акумулатор за %qs"
+
+#: config/frv/frv.c:8717
+#, gcc-internal-format
+msgid "invalid IACC argument"
+msgstr "неодговарајући аргумент за IACC"
+
+#: config/frv/frv.c:8740
+#, gcc-internal-format
+msgid "%qs expects a constant argument"
+msgstr "%qs очекује константан аргумент"
+
+#: config/frv/frv.c:8745
+#, gcc-internal-format
+msgid "constant argument out of range for %qs"
+msgstr "константан аргумент ван опсега за %qs"
+
+#: config/frv/frv.c:9227
+#, gcc-internal-format
+msgid "media functions are not available unless -mmedia is used"
+msgstr "медијске функције нису доступне ако се не укључи -mmedia"
+
+#: config/frv/frv.c:9239
+#, gcc-internal-format
+msgid "this media function is only available on the fr500"
+msgstr "ова медијска функција доступна је само на фр500"
+
+#: config/frv/frv.c:9267
+#, gcc-internal-format
+msgid "this media function is only available on the fr400 and fr550"
+msgstr "ова медијска функција доступна је само на фр400 и фр550"
+
+#: config/frv/frv.c:9286
+#, gcc-internal-format
+msgid "this builtin function is only available on the fr405 and fr450"
+msgstr "ова уграђена функција доступна је само на фр405 и фр450"
+
+#: config/frv/frv.c:9295
+#, gcc-internal-format
+msgid "this builtin function is only available on the fr500 and fr550"
+msgstr "ова уграђена функција доступна је само на фр500 и фр550"
+
+#: config/frv/frv.c:9307
+#, gcc-internal-format
+msgid "this builtin function is only available on the fr450"
+msgstr "ова уграђена функција доступна је само на фр450"
+
+#: config/h8300/h8300.c:331
+#, gcc-internal-format
+msgid "-ms2600 is used without -ms"
+msgstr "-ms2600 се користи без -ms"
+
+#: config/h8300/h8300.c:337
+#, gcc-internal-format
+msgid "-mn is used without -mh or -ms"
+msgstr "-mn се користи без -mh или -ms"
+
+#: config/i386/host-cygwin.c:65
+#, gcc-internal-format
+msgid "can't extend PCH file: %m"
+msgstr "не могу да проширим ПЦХ датотеку: %m"
+
+#: config/i386/host-cygwin.c:76
+#, gcc-internal-format
+msgid "can't set position in PCH file: %m"
+msgstr "не могу да поставим положај у ПЦХ датотеци: %m"
+
+#: config/i386/i386.c:1322
+#, gcc-internal-format
+msgid "code model %s not supported in PIC mode"
+msgstr "модела кôда %s није подржан у ПИЦ режиму"
+
+#: config/i386/i386.c:1330 config/sparc/sparc.c:670
+#, gcc-internal-format
+msgid "bad value (%s) for -mcmodel= switch"
+msgstr "лоша вредност (%s) за прекидач -mcmodel="
+
+#: config/i386/i386.c:1346
+#, gcc-internal-format
+msgid "bad value (%s) for -masm= switch"
+msgstr "лоша вредност (%s) за прекидач -masm="
+
+#: config/i386/i386.c:1349
+#, gcc-internal-format
+msgid "code model %qs not supported in the %s bit mode"
+msgstr "модела кôда %qs није подржан у %s-битном режиму"
+
+#: config/i386/i386.c:1352
+#, gcc-internal-format
+msgid "code model %<large%> not supported yet"
+msgstr "модела кôда %<large%> још увек није подржан"
+
+#: config/i386/i386.c:1354
+#, gcc-internal-format
+msgid "%i-bit mode not compiled in"
+msgstr "%i-битни режим није укомпилован"
+
+#: config/i386/i386.c:1384 config/i386/i386.c:1408
+#, gcc-internal-format
+msgid "CPU you selected does not support x86-64 instruction set"
+msgstr "ЦПУ који сте изабрали не подржава скуп инструкција икс86-64"
+
+#: config/i386/i386.c:1390 config/mt/mt.c:803
+#, gcc-internal-format
+msgid "bad value (%s) for -march= switch"
+msgstr "лоша вредност (%s) за прекидач -march="
+
+#: config/i386/i386.c:1421
+#, gcc-internal-format
+msgid "bad value (%s) for -mtune= switch"
+msgstr "лоша вредност (%s) за прекидач -mtune="
+
+#: config/i386/i386.c:1438
+#, gcc-internal-format
+msgid "-mregparm=%d is not between 0 and %d"
+msgstr "-mregparm=%d није између 0 и %d"
+
+#: config/i386/i386.c:1451
+#, gcc-internal-format
+msgid "-malign-loops is obsolete, use -falign-loops"
+msgstr "-malign-loops је застарело, користите -falign-loops"
+
+#: config/i386/i386.c:1456 config/i386/i386.c:1469 config/i386/i386.c:1482
+#, gcc-internal-format
+msgid "-malign-loops=%d is not between 0 and %d"
+msgstr "-malign-loops=%d није између 0 и %d"
+
+#: config/i386/i386.c:1464
+#, gcc-internal-format
+msgid "-malign-jumps is obsolete, use -falign-jumps"
+msgstr "-malign-jumps је застарело, користите -falign-jumps"
+
+#: config/i386/i386.c:1477
+#, gcc-internal-format
+msgid "-malign-functions is obsolete, use -falign-functions"
+msgstr "-malign-functions је застарело, користите -falign-functions"
+
+#: config/i386/i386.c:1515
+#, gcc-internal-format
+msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
+msgstr "-mpreferred-stack-boundary=%d није између %d и 12"
+
+#: config/i386/i386.c:1527
+#, gcc-internal-format
+msgid "-mbranch-cost=%d is not between 0 and 5"
+msgstr "-mbranch-cost=%d није између 0 и 5"
+
+#: config/i386/i386.c:1535
+#, gcc-internal-format
+msgid "-mlarge-data-threshold=%d is negative"
+msgstr "-mlarge-data-threshold=%d је негативно"
+
+#: config/i386/i386.c:1547
+#, gcc-internal-format
+msgid "bad value (%s) for -mtls-dialect= switch"
+msgstr "лоша вредност (%s) за прекидач -mtls-dialect="
+
+#: config/i386/i386.c:1594
+#, gcc-internal-format
+msgid "-malign-double makes no sense in the 64bit mode"
+msgstr "-malign-double нема смисла у 64-битном режиму"
+
+#: config/i386/i386.c:1596
+#, gcc-internal-format
+msgid "-mrtd calling convention not supported in the 64bit mode"
+msgstr "конвенција позивања -mrtd није подржана у 64-битном режиму"
+
+#: config/i386/i386.c:1616
+#, gcc-internal-format
+msgid "-msseregparm used without SSE enabled"
+msgstr "-msseregparm употребљено без укључених ССЕ инструкција"
+
+#: config/i386/i386.c:1628 config/i386/i386.c:1639
+#, gcc-internal-format
+msgid "SSE instruction set disabled, using 387 arithmetics"
+msgstr "скуп ССЕ инструкција искључен, користим 387 аритметику"
+
+#: config/i386/i386.c:1644
+#, gcc-internal-format
+msgid "387 instruction set disabled, using SSE arithmetics"
+msgstr "скуп 387 инструкција искључен, користим ССЕ аритметику"
+
+#: config/i386/i386.c:1651
+#, gcc-internal-format
+msgid "bad value (%s) for -mfpmath= switch"
+msgstr "лоша вредност (%s) за прекидач -mfpmath="
+
+#: config/i386/i386.c:1673
+#, gcc-internal-format
+msgid "unwind tables currently require either a frame pointer or -maccumulate-outgoing-args for correctness"
+msgstr "табеле одмотавања тренутно захтевају или показивач оквира или -maccumulate-outgoing-args за исправност"
+
+#: config/i386/i386.c:2043 config/i386/i386.c:2085
+#, gcc-internal-format
+msgid "fastcall and regparm attributes are not compatible"
+msgstr "атрибути fastcall и regparm нису сагласни"
+
+#: config/i386/i386.c:2050
+#, gcc-internal-format
+msgid "%qs attribute requires an integer constant argument"
+msgstr "атрибут %qs захтева целобројну константу као аргумент"
+
+#: config/i386/i386.c:2056
+#, gcc-internal-format
+msgid "argument to %qs attribute larger than %d"
+msgstr "аргумент за атрибут %qs већи од %d"
+
+#: config/i386/i386.c:2077 config/i386/i386.c:2112
+#, gcc-internal-format
+msgid "fastcall and cdecl attributes are not compatible"
+msgstr "атрибути fastcall и cdecl нису сагласни"
+
+#: config/i386/i386.c:2081
+#, gcc-internal-format
+msgid "fastcall and stdcall attributes are not compatible"
+msgstr "атрибути fastcall и stdcall нису сагласни"
+
+#: config/i386/i386.c:2095 config/i386/i386.c:2108
+#, gcc-internal-format
+msgid "stdcall and cdecl attributes are not compatible"
+msgstr "атрибути stdcall и cdecl нису сагласни"
+
+#: config/i386/i386.c:2099
+#, gcc-internal-format
+msgid "stdcall and fastcall attributes are not compatible"
+msgstr "атрибути stdcall и fastcall нису сагласни"
+
+#: config/i386/i386.c:2234
+#, gcc-internal-format
+msgid "Calling %qD with attribute sseregparm without SSE/SSE2 enabled"
+msgstr "Позивање %qD са атрибутом sseregparm без укључених ССЕ/ССЕ2"
+
+#: config/i386/i386.c:2237
+#, gcc-internal-format
+msgid "Calling %qT with attribute sseregparm without SSE/SSE2 enabled"
+msgstr "Позивање %qT са атрибутом sseregparm без укључених ССЕ/ССЕ2"
+
+#: config/i386/i386.c:2965
+#, gcc-internal-format
+msgid "SSE register return with SSE disabled"
+msgstr "ССЕ враћање регистра уз искључене ССЕ"
+
+#: config/i386/i386.c:2967
+#, gcc-internal-format
+msgid "SSE register argument with SSE disabled"
+msgstr "ССЕ регистарски аргумент уз искључене ССЕ"
+
+#: config/i386/i386.c:3282
+#, gcc-internal-format
+msgid "SSE vector argument without SSE enabled changes the ABI"
+msgstr "ССЕ векторски аргумент без укључених ССЕ мења АБИ"
+
+#: config/i386/i386.c:3299
+#, gcc-internal-format
+msgid "MMX vector argument without MMX enabled changes the ABI"
+msgstr "ММИкс векторски аргумент без укључених ММИкс мења АБИ"
+
+#: config/i386/i386.c:3565
+#, gcc-internal-format
+msgid "SSE vector return without SSE enabled changes the ABI"
+msgstr "ССЕ векторско враћање без укључених ССЕ мења АБИ"
+
+#: config/i386/i386.c:3575
+#, gcc-internal-format
+msgid "MMX vector return without MMX enabled changes the ABI"
+msgstr "ММИкс векторско враћање без укључених ММИкс мења АБИ"
+
+#: config/i386/i386.c:6959
+#, gcc-internal-format
+msgid "extended registers have no high halves"
+msgstr "проширени регистри немају високе половине"
+
+#: config/i386/i386.c:6974
+#, gcc-internal-format
+msgid "unsupported operand size for extended register"
+msgstr "неподржана величина операнда за проширени регистар"
+
+#: config/i386/i386.c:15232 config/rs6000/rs6000.c:7171
+#, gcc-internal-format
+msgid "selector must be an integer constant in the range 0..%wi"
+msgstr "селектор мора бити целобројна константа у опсегу 0..%wi"
+
+#: config/i386/i386.c:15570
+#, gcc-internal-format
+msgid "shift must be an immediate"
+msgstr "помак мора бити непосредни"
+
+#: config/i386/i386.c:16737
+#, gcc-internal-format
+msgid "%qs incompatible attribute ignored"
+msgstr "%qs несагласан атрибут игнорисан"
+
+#: config/i386/winnt-cxx.c:74
+#, gcc-internal-format
+msgid "key method %q+D of dllimport'd class defined"
+msgstr "кључни метод %q+D dllimport класе дефинисан"
+
+#: config/i386/winnt-cxx.c:95 config/sh/symbian.c:173
+#, gcc-internal-format
+msgid "definition of static data member %q+D of dllimport'd class"
+msgstr "дефиниција статичког чланског податка %q+D dllimport класе"
+
+#: config/i386/winnt.c:74
+#, gcc-internal-format
+msgid "%qs attribute only applies to variables"
+msgstr "атрибут %qs примењује се само на променљиве"
+
+#: config/i386/winnt.c:103
+#, gcc-internal-format
+msgid "%qs attribute applies only to initialized variables with external linkage"
+msgstr "атрибут %qs примењује се само на успостављене променљиве са спољашњом повезивошћу"
+
+#: config/i386/winnt.c:214
+#, gcc-internal-format
+msgid "inconsistent dll linkage for %q+D, dllexport assumed"
+msgstr "неусаглашена повезивост ДЛЛа за %q+D, претпостављам dllexport"
+
+#: config/i386/winnt.c:254 config/sh/symbian.c:273
+#, gcc-internal-format
+msgid "%qs declared as both exported to and imported from a DLL"
+msgstr "%qs декларисано и као извезено и као увезено у ДЛЛу"
+
+#: config/i386/winnt.c:549
+#, gcc-internal-format
+msgid "%q+D causes a section type conflict"
+msgstr "%q+D доводи до сукоба типова одељка"
+
+#: config/i386/cygming.h:166
+#, gcc-internal-format
+msgid "-f%s ignored for target (all code is position independent)"
+msgstr "-f%s игнорисано за циљ (сав кôд је зависан од положаја)"
+
+#: config/i386/djgpp.h:181
+#, gcc-internal-format
+msgid "-mbnu210 is ignored (option is obsolete)"
+msgstr "-mbnu210 се игнорише (опција је застарела)"
+
+#: config/i386/i386-interix.h:257
+#, gcc-internal-format
+msgid "ms-bitfields not supported for objc"
+msgstr "МСова битска поља нису подржана за објективни Ц"
+
+#: config/ia64/ia64-c.c:52
+#, gcc-internal-format
+msgid "malformed #pragma builtin"
+msgstr "лоше формирано уграђено #pragma"
+
+#: config/ia64/ia64.c:502 config/m32r/m32r.c:373
+#, gcc-internal-format
+msgid "invalid argument of %qs attribute"
+msgstr "неисправан аргумент за атрибут %qs"
+
+#: config/ia64/ia64.c:514
+#, gcc-internal-format
+msgid "%Jan address area attribute cannot be specified for local variables"
+msgstr "%Jатрибут адресне области не може бити наведен за локалне променљиве"
+
+#: config/ia64/ia64.c:521
+#, gcc-internal-format
+msgid "address area of %q+D conflicts with previous declaration"
+msgstr "адресна област за %q+D коси се са претходном декларацијом"
+
+#: config/ia64/ia64.c:528
+#, gcc-internal-format
+msgid "%Jaddress area attribute cannot be specified for functions"
+msgstr "%Jадресна област атрибута не може бити наведена за функције"
+
+#: config/ia64/ia64.c:5029 config/pa/pa.c:327
+#, gcc-internal-format
+msgid "value of -mfixed-range must have form REG1-REG2"
+msgstr "вредност уз -mfixed-range мора бити облика РЕГ1-РЕГ2"
+
+#: config/ia64/ia64.c:5056 config/pa/pa.c:354
+#, gcc-internal-format
+msgid "%s-%s is an empty range"
+msgstr "%s-%s је празан опсег"
+
+#: config/ia64/ia64.c:5084
+#, gcc-internal-format
+msgid "bad value %<%s%> for -mtls-size= switch"
+msgstr "лоша вредност %<%s%> за прекидач -mtls-size="
+
+#: config/ia64/ia64.c:5112
+#, gcc-internal-format
+msgid "bad value %<%s%> for -mtune= switch"
+msgstr "лоша вредност %<%s%> за прекидач -mtune="
+
+#: config/ia64/ia64.c:5131
+#, gcc-internal-format
+msgid "not yet implemented: latency-optimized inline square root"
+msgstr "још није имплементирано: уткани квадратни корен оптимизован за кашњење"
+
+#: config/iq2000/iq2000.c:1808
+#, gcc-internal-format
+msgid "gp_offset (%ld) or end_offset (%ld) is less than zero"
+msgstr "gp_offset (%ld) или end_offset (%ld) мањи је од нуле"
+
+#: config/iq2000/iq2000.c:2589
+#, gcc-internal-format
+msgid "argument %qd is not a constant"
+msgstr "аргумент %qd није константа"
+
+#: config/iq2000/iq2000.c:2892 config/mt/mt.c:348 config/xtensa/xtensa.c:1773
+#, gcc-internal-format
+msgid "PRINT_OPERAND_ADDRESS, null pointer"
+msgstr "PRINT_OPERAND_ADDRESS, нулти показивач"
+
+#: config/iq2000/iq2000.c:3047
+#, gcc-internal-format
+msgid "PRINT_OPERAND: Unknown punctuation '%c'"
+msgstr "PRINT_OPERAND: Непозната интерпункција „%c“"
+
+#: config/iq2000/iq2000.c:3056 config/mips/mips.c:5393
+#: config/xtensa/xtensa.c:1627
+#, gcc-internal-format
+msgid "PRINT_OPERAND null pointer"
+msgstr "PRINT_OPERAND нулти показивач"
+
+#: config/m32c/m32c-pragma.c:64
+#, gcc-internal-format
+msgid "junk at end of #pragma GCC memregs [0..16]"
+msgstr "смеће на крају #pragma GCC memregs [0..16]"
+
+#: config/m32c/m32c-pragma.c:71
+#, gcc-internal-format
+msgid "#pragma GCC memregs must precede any function decls"
+msgstr "#pragma GCC memregs мора претходити свим декларацијама функција"
+
+#: config/m32c/m32c-pragma.c:82 config/m32c/m32c-pragma.c:89
+#, gcc-internal-format
+msgid "#pragma GCC memregs takes a number [0..16]"
+msgstr "#pragma GCC memregs узима број из [0..16]"
+
+#: config/m32c/m32c.c:412
+#, gcc-internal-format
+msgid "invalid target memregs value '%d'"
+msgstr "неисрпавна вредност „%d“ за memregs"
+
+#: config/m68hc11/m68hc11.c:279
+#, gcc-internal-format
+msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
+msgstr "-f%s игнорисано код 68ХЦ11/68ХЦ12 (није подржано)"
+
+#: config/m68hc11/m68hc11.c:1240
+#, gcc-internal-format
+msgid "%<trap%> and %<far%> attributes are not compatible, ignoring %<far%>"
+msgstr "атрибути %<trap%> и %<far%> нису сагласни, игноришем %<far%>"
+
+#: config/m68hc11/m68hc11.c:1247
+#, gcc-internal-format
+msgid "%<trap%> attribute is already used"
+msgstr "атрибут %<trap%> је већ употребљен"
+
+#: config/m68k/m68k.c:321
+#, gcc-internal-format
+msgid "cannot specify both -msep-data and -mid-shared-library"
+msgstr "не могу се навести и -msep-data и -mid-shared-library"
+
+#: config/m68k/m68k.c:333
+#, gcc-internal-format
+msgid "-fPIC is not currently supported on the 68000 or 68010"
+msgstr "-fPIC тренутно није подржано на 68000 и 68010"
+
+#: config/m68k/m68k.c:640 config/rs6000/rs6000.c:13666
+#, gcc-internal-format
+msgid "stack limit expression is not supported"
+msgstr "израз ограничења стека није подржан"
+
+#: config/mips/mips.c:4582
+#, gcc-internal-format
+msgid "-%s conflicts with the other architecture options, which specify a %s processor"
+msgstr "-%s се коси са осталим опцијама архитектуре, које наводе процесор %s"
+
+#: config/mips/mips.c:4598
+#, gcc-internal-format
+msgid "-march=%s is not compatible with the selected ABI"
+msgstr "-march=%s није сагласно са изабраним АБИјем"
+
+#: config/mips/mips.c:4616
+#, gcc-internal-format
+msgid "-mgp64 used with a 32-bit processor"
+msgstr "-mgp64 употребљено са 32-битним процесором"
+
+#: config/mips/mips.c:4618
+#, gcc-internal-format
+msgid "-mgp32 used with a 64-bit ABI"
+msgstr "-mgp32 употребљено са 64-битним АБИјем"
+
+#: config/mips/mips.c:4620
+#, gcc-internal-format
+msgid "-mgp64 used with a 32-bit ABI"
+msgstr "-mgp64 употребљено са 32-битним АБИјем"
+
+#: config/mips/mips.c:4638 config/mips/mips.c:4640 config/mips/mips.c:4642
+#: config/mips/mips.c:4718
+#, gcc-internal-format
+msgid "unsupported combination: %s"
+msgstr "неподржана комбинација: %s"
+
+#: config/mips/mips.c:4713
+#, gcc-internal-format
+msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
+msgstr "стварање инструкција за извесно гранање укључено, али их архитектура не подржава"
+
+#: config/mips/mips.c:4730
+#, gcc-internal-format
+msgid "-G is incompatible with PIC code which is the default"
+msgstr "-G није сагласно са ПИЦ кôдом, који је подразумеван"
+
+#: config/mips/mips.c:4797
+#, gcc-internal-format
+msgid "-mips3d requires -mpaired-single"
+msgstr "-mips3d захтева -mpaired-single"
+
+#: config/mips/mips.c:4806
+#, gcc-internal-format
+msgid "-mips3d/-mpaired-single must be used with -mfp64 -mhard-float"
+msgstr "-mips3d и -mpaired-single морају бити употребљени са -mfp64 -mhard-float"
+
+#: config/mips/mips.c:4811
+#, gcc-internal-format
+msgid "-mips3d/-mpaired-single must be used with -mips64"
+msgstr "-mips3d и -mpaired-single морају бити употребљени са -mips64"
+
+#: config/mips/mips.c:4814
+#, gcc-internal-format
+msgid "-mips16 and -mdsp cannot be used together"
+msgstr "-mips16 и -mdsp не могу бити употребљени заједно"
+
+#: config/mips/mips.c:5330
+#, gcc-internal-format
+msgid "internal error: %%) found without a %%( in assembler pattern"
+msgstr "унутрашња грешка: нађено %%) без %%( у шеми асемблера"
+
+#: config/mips/mips.c:5344
+#, gcc-internal-format
+msgid "internal error: %%] found without a %%[ in assembler pattern"
+msgstr "унутрашња грешка: нађено %%] без %%[ у шеми асемблера"
+
+#: config/mips/mips.c:5357
+#, gcc-internal-format
+msgid "internal error: %%> found without a %%< in assembler pattern"
+msgstr "унутрашња грешка: нађено %%> без %%< у шеми асемблера"
+
+#: config/mips/mips.c:5370
+#, gcc-internal-format
+msgid "internal error: %%} found without a %%{ in assembler pattern"
+msgstr "унутрашња грешка: нађено %%} без %%{ у шеми асемблера"
+
+#: config/mips/mips.c:5384
+#, gcc-internal-format
+msgid "PRINT_OPERAND: unknown punctuation '%c'"
+msgstr "PRINT_OPERAND: непозната интерпункција „%c“"
+
+#: config/mips/mips.c:8147
+#, gcc-internal-format
+msgid "cannot handle inconsistent calls to %qs"
+msgstr "не могу да обрадим неусаглашене позиве за %qs"
+
+#: config/mips/mips.c:9546
+#, gcc-internal-format
+msgid "the cpu name must be lower case"
+msgstr "име ЦПУа мора бити малим словима"
+
+#: config/mips/mips.c:10212
+#, gcc-internal-format
+msgid "invalid argument to builtin function"
+msgstr "неисправан аргумент за уграђену функцију"
+
+#. Output assembler code to FILE to increment profiler label # LABELNO
+#. for profiling a function entry.
+#: config/mips/mips.h:2108
+#, gcc-internal-format
+msgid "mips16 function profiling"
+msgstr "профилисање функција мипса16"
+
+#: config/mmix/mmix.c:227
+#, gcc-internal-format
+msgid "-f%s not supported: ignored"
+msgstr "-f%s није подржано, игноришем"
+
+#: config/mmix/mmix.c:655
+#, gcc-internal-format
+msgid "support for mode %qs"
+msgstr "подршка за режим %qs"
+
+#: config/mmix/mmix.c:669
+#, gcc-internal-format
+msgid "too large function value type, needs %d registers, have only %d registers for this"
+msgstr "превелик тип вредности функције, захтева %d регистара, а имам их само %d за ово"
+
+#: config/mmix/mmix.c:839
+#, gcc-internal-format
+msgid "function_profiler support for MMIX"
+msgstr "function_profiler подршка за ММИИкс"
+
+#: config/mmix/mmix.c:861
+#, gcc-internal-format
+msgid "MMIX Internal: Last named vararg would not fit in a register"
+msgstr "ММИИкс-унутрашње: Последње именовано варарг није могло да стане у регистар"
+
+#: config/mmix/mmix.c:1476 config/mmix/mmix.c:1500 config/mmix/mmix.c:1616
+#, gcc-internal-format
+msgid "MMIX Internal: Bad register: %d"
+msgstr "ММИИкс-унутрашње: Лош регистар: %d"
+
+#. Presumably there's a missing case above if we get here.
+#: config/mmix/mmix.c:1608
+#, gcc-internal-format
+msgid "MMIX Internal: Missing %qc case in mmix_print_operand"
+msgstr "ММИИкс-унутрашње: Недостаје случај %qc у mmix_print_operand"
+
+#: config/mmix/mmix.c:1894
+#, gcc-internal-format
+msgid "stack frame not a multiple of 8 bytes: %wd"
+msgstr "оквир стека није умножак 8 бајтова: %wd"
+
+#: config/mmix/mmix.c:2130
+#, gcc-internal-format
+msgid "stack frame not a multiple of octabyte: %wd"
+msgstr "оквир стека није умножак октабајта: %wd"
+
+#: config/mmix/mmix.c:2470 config/mmix/mmix.c:2534
+#, gcc-internal-format
+msgid "MMIX Internal: %s is not a shiftable int"
+msgstr "ММИИкс-унутрашње: %s није помицљив целобројни"
+
+#: config/mt/mt.c:311
+#, gcc-internal-format
+msgid "info pointer NULL"
+msgstr "инфопоказивач нулти"
+
+#: config/pa/pa.c:459
+#, gcc-internal-format
+msgid "PIC code generation is not supported in the portable runtime model"
+msgstr "стварање ПИЦ кôда није подржано преносивим моделом извршавања"
+
+#: config/pa/pa.c:464
+#, gcc-internal-format
+msgid "PIC code generation is not compatible with fast indirect calls"
+msgstr "стварање ПИЦ кôда није сагласно са брзим посредним позивима"
+
+#: config/pa/pa.c:469
+#, gcc-internal-format
+msgid "-g is only supported when using GAS on this processor,"
+msgstr "-g је подржано само када се користи ГАС на овом процесору,"
+
+#: config/pa/pa.c:470
+#, gcc-internal-format
+msgid "-g option disabled"
+msgstr "опција -g искључена"
+
+#: config/pa/pa.c:8016
+#, gcc-internal-format
+msgid "alignment (%u) for %s exceeds maximum alignment for global common data. Using %u"
+msgstr "равнање (%u) за %s премашује највеће равнање за глобалне заједничке податке. Користим %u"
+
+#: config/pa/pa-hpux11.h:85
+#, gcc-internal-format
+msgid "-munix=98 option required for C89 Amendment 1 features.\n"
+msgstr "опција -munix=98 потребна за могућности из амандмана 1 Ц-а 89.\n"
+
+#: config/rs6000/host-darwin.c:52
+#, gcc-internal-format
+msgid "Segmentation Fault (code)"
+msgstr "Сегментна грешка (кôд)"
+
+#: config/rs6000/host-darwin.c:121
+#, gcc-internal-format
+msgid "Segmentation Fault"
+msgstr "Сегментна грешка"
+
+#: config/rs6000/host-darwin.c:135
+#, gcc-internal-format
+msgid "While setting up signal stack: %m"
+msgstr "При постављању стека сигнала: %m"
+
+#: config/rs6000/host-darwin.c:141
+#, gcc-internal-format
+msgid "While setting up signal handler: %m"
+msgstr "При постављању руковаоца сигналима: %m"
+
+#. Handle the machine specific pragma longcall. Its syntax is
+#.
+#. # pragma longcall ( TOGGLE )
+#.
+#. where TOGGLE is either 0 or 1.
+#.
+#. rs6000_default_long_calls is set to the value of TOGGLE, changing
+#. whether or not new function declarations receive a longcall
+#. attribute by default.
+#: config/rs6000/rs6000-c.c:53
+#, gcc-internal-format
+msgid "ignoring malformed #pragma longcall"
+msgstr "игноришем лоше формирано #pragma longcall"
+
+#: config/rs6000/rs6000-c.c:66
+#, gcc-internal-format
+msgid "missing open paren"
+msgstr "недостаје отворена заграда"
+
+#: config/rs6000/rs6000-c.c:68
+#, gcc-internal-format
+msgid "missing number"
+msgstr "недостаје број"
+
+#: config/rs6000/rs6000-c.c:70
+#, gcc-internal-format
+msgid "missing close paren"
+msgstr "недостаје затворена заграда"
+
+#: config/rs6000/rs6000-c.c:73
+#, gcc-internal-format
+msgid "number must be 0 or 1"
+msgstr "број мора бити 0 или 1"
+
+#: config/rs6000/rs6000-c.c:76
+#, gcc-internal-format
+msgid "junk at end of #pragma longcall"
+msgstr "смеће на крају #pragma longcall"
+
+#: config/rs6000/rs6000-c.c:2530
+#, gcc-internal-format
+msgid "passing arg %d of %qE discards qualifiers frompointer target type"
+msgstr "прослеђивање арга %d за %qE одбацује одредбе типа показивачког циља"
+
+#: config/rs6000/rs6000-c.c:2573
+#, gcc-internal-format
+msgid "invalid parameter combination for AltiVec intrinsic"
+msgstr "неисправна комбинација параметара за алтивек сопствену"
+
+#: config/rs6000/rs6000.c:1255
+#, gcc-internal-format
+msgid "-mmultiple is not supported on little endian systems"
+msgstr "-mmultiple није подржано на системима мале крајности"
+
+#: config/rs6000/rs6000.c:1262
+#, gcc-internal-format
+msgid "-mstring is not supported on little endian systems"
+msgstr "-mstring није подржано на системима мале крајности"
+
+#: config/rs6000/rs6000.c:1276
+#, gcc-internal-format
+msgid "unknown -mdebug-%s switch"
+msgstr "непознат прекидач -mdebug-%s"
+
+#: config/rs6000/rs6000.c:1288
+#, gcc-internal-format
+msgid "unknown -mtraceback arg %qs; expecting %<full%>, %<partial%> or %<none%>"
+msgstr "непознат арг %qs за -mtraceback; очекивах %<full%>, %<partial%> или %<none%>"
+
+#: config/rs6000/rs6000.c:1334
+#, gcc-internal-format
+msgid "AltiVec and E500 instructions cannot coexist"
+msgstr "алтивек и Е500 инструкције не могу се користити заједно"
+
+#: config/rs6000/rs6000.c:1562
+#, gcc-internal-format
+msgid "unknown -m%s= option specified: '%s'"
+msgstr "непозната опција типа -m%s=: „%s“"
+
+#: config/rs6000/rs6000.c:1772
+#, gcc-internal-format
+msgid "not configured for ABI: '%s'"
+msgstr "није подешено за АБИ: „%s“"
+
+#: config/rs6000/rs6000.c:1785
+#, gcc-internal-format
+msgid "Using darwin64 ABI"
+msgstr "Користим АБИ Дарвина64"
+
+#: config/rs6000/rs6000.c:1790
+#, gcc-internal-format
+msgid "Using old darwin ABI"
+msgstr "Користим стари АБИ Дарвина"
+
+#: config/rs6000/rs6000.c:1797
+#, gcc-internal-format
+msgid "Using IBM extended precision long double"
+msgstr "Користим ИБМов дугачки двоструки проширене тачности"
+
+#: config/rs6000/rs6000.c:1803
+#, gcc-internal-format
+msgid "Using IEEE extended precision long double"
+msgstr "Користим ИЕЕЕ дугачки двоструки проширене тачности"
+
+#: config/rs6000/rs6000.c:1808
+#, gcc-internal-format
+msgid "unknown ABI specified: '%s'"
+msgstr "наведен непознат АБИ: „%s“"
+
+#: config/rs6000/rs6000.c:1835
+#, gcc-internal-format
+msgid "invalid option for -mfloat-gprs: '%s'"
+msgstr "неисправна опција за -mfloat-gprs: „%s“"
+
+#: config/rs6000/rs6000.c:1845
+#, gcc-internal-format
+msgid "Unknown switch -mlong-double-%s"
+msgstr "Непознат прекицач -mlong-double-%s"
+
+#: config/rs6000/rs6000.c:1866
+#, gcc-internal-format
+msgid "-malign-power is not supported for 64-bit Darwin; it is incompatible with the installed C and C++ libraries"
+msgstr "-malign-power није подржано на 64-битном Дарвину; није сагласно са инсталираним Ц и Ц++ библиотекама"
+
+#: config/rs6000/rs6000.c:1874
+#, gcc-internal-format
+msgid "unknown -malign-XXXXX option specified: '%s'"
+msgstr "наведена непозната опција -malign-XXXXX: „%s“"
+
+#: config/rs6000/rs6000.c:4239
+#, gcc-internal-format
+msgid "GCC vector returned by reference: non-standard ABI extension with no compatibility guarantee"
+msgstr "ГЦЦ вектор враћен упућивачем: нестандарно проширење АБИја, без јемства сагласности"
+
+#: config/rs6000/rs6000.c:4312
+#, gcc-internal-format
+msgid "cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them"
+msgstr "вредност се не може вратити у векторском регистру јер су алтивек инструкције искључене; употребите -maltivec да их укључите"
+
+#: config/rs6000/rs6000.c:4558
+#, gcc-internal-format
+msgid "cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them"
+msgstr "вредност се не може проследити у векторском регистру јер су алтивек инструкције искључене; употребите -maltivec да их укључите"
+
+#: config/rs6000/rs6000.c:5414
+#, gcc-internal-format
+msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
+msgstr "ГЦЦ вектор прослеђен упућивачем: нестандарно проширење АБИја, без јемства сагласности"
+
+#: config/rs6000/rs6000.c:6585
+#, gcc-internal-format
+msgid "argument 1 must be a 5-bit signed literal"
+msgstr "аргумент 1 мора бити петобитна означена константа"
+
+#: config/rs6000/rs6000.c:6688 config/rs6000/rs6000.c:7482
+#, gcc-internal-format
+msgid "argument 2 must be a 5-bit unsigned literal"
+msgstr "аргумент 2 мора бити петобитна неозначена константа"
+
+#: config/rs6000/rs6000.c:6728
+#, gcc-internal-format
+msgid "argument 1 of __builtin_altivec_predicate must be a constant"
+msgstr "аргумент 1 за __builtin_altivec_predicate мора бити константа"
+
+#: config/rs6000/rs6000.c:6781
+#, gcc-internal-format
+msgid "argument 1 of __builtin_altivec_predicate is out of range"
+msgstr "аргумент 1 за __builtin_altivec_predicate ван опсега"
+
+#: config/rs6000/rs6000.c:6943
+#, gcc-internal-format
+msgid "argument 3 must be a 4-bit unsigned literal"
+msgstr "аргумент 3 мора бити четворобитна неозначена константа"
+
+#: config/rs6000/rs6000.c:7115
+#, gcc-internal-format
+msgid "argument to %qs must be a 2-bit unsigned literal"
+msgstr "аргумент за %qs мора бити двобитна неозначена константа"
+
+#: config/rs6000/rs6000.c:7259
+#, gcc-internal-format
+msgid "unresolved overload for Altivec builtin %qF"
+msgstr "неразрешено препуњавање за алтивек уграђено %qF"
+
+#: config/rs6000/rs6000.c:7341
+#, gcc-internal-format
+msgid "argument to dss must be a 2-bit unsigned literal"
+msgstr "аргумент за dss мора бити двобитна неозначена константа"
+
+#: config/rs6000/rs6000.c:7602
+#, gcc-internal-format
+msgid "argument 1 of __builtin_spe_predicate must be a constant"
+msgstr "аргумент 1 за __builtin_spe_predicate мора бити константа"
+
+#: config/rs6000/rs6000.c:7674
+#, gcc-internal-format
+msgid "argument 1 of __builtin_spe_predicate is out of range"
+msgstr "аргумент 1 за __builtin_spe_predicate ван опсега"
+
+#: config/rs6000/rs6000.c:13629
+#, gcc-internal-format
+msgid "stack frame too large"
+msgstr "оквир стека превелик"
+
+#: config/rs6000/rs6000.c:16188
+#, gcc-internal-format
+msgid "no profiling of 64-bit code for this ABI"
+msgstr "нема профилисања 64-битног кôда за овај АБИ"
+
+#: config/rs6000/rs6000.c:17297
+#, gcc-internal-format
+msgid "use of %<long%> in AltiVec types is invalid for 64-bit code"
+msgstr "употреба %<long%> у алтивек типовима није исправна у 64-битном кôду"
+
+#: config/rs6000/rs6000.c:17299
+#, gcc-internal-format
+msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
+msgstr "превазиђена употреба %<long%> у алтивек; користите %<int%>"
+
+#: config/rs6000/rs6000.c:17303
+#, gcc-internal-format
+msgid "use of %<long long%> in AltiVec types is invalid"
+msgstr "употреба %<long long%> у алтивек типовима није исправна"
+
+#: config/rs6000/rs6000.c:17305
+#, gcc-internal-format
+msgid "use of %<double%> in AltiVec types is invalid"
+msgstr "употреба %<double%> у алтивек типовима није исправна"
+
+#: config/rs6000/rs6000.c:17307
+#, gcc-internal-format
+msgid "use of %<long double%> in AltiVec types is invalid"
+msgstr "употреба %<long double%> у алтивек типовима није исправна"
+
+#: config/rs6000/rs6000.c:17309
+#, gcc-internal-format
+msgid "use of boolean types in AltiVec types is invalid"
+msgstr "употреба логичких типова у алтивек типовима није исправна"
+
+#: config/rs6000/rs6000.c:17311
+#, gcc-internal-format
+msgid "use of %<complex%> in AltiVec types is invalid"
+msgstr "употреба %<complex%> у алтивек типовима није исправна"
+
+#: config/rs6000/aix43.h:39 config/rs6000/aix51.h:38 config/rs6000/aix52.h:38
+#, gcc-internal-format
+msgid "-maix64 and POWER architecture are incompatible"
+msgstr "-maix64 и архитектура Пауера нису сагласни"
+
+#: config/rs6000/aix43.h:44 config/rs6000/aix51.h:43 config/rs6000/aix52.h:43
+#, gcc-internal-format
+msgid "-maix64 requires PowerPC64 architecture remain enabled"
+msgstr "-maix64 захтева да архитектура ПауерПЦ-64 остане укључена"
+
+#: config/rs6000/aix43.h:50 config/rs6000/aix52.h:49
+#, gcc-internal-format
+msgid "soft-float and long-double-128 are incompatible"
+msgstr "soft-float и long-double-128 нису сагласни"
+
+#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:47 config/rs6000/aix52.h:53
+#, gcc-internal-format
+msgid "-maix64 required: 64-bit computation with 32-bit addressing not yet supported"
+msgstr "потребно је -maix64: 64-битно рачунање са 32-битним адресама још увек није подржано"
+
+#. The Darwin ABI always includes AltiVec, can't be (validly) turned
+#. off.
+#: config/rs6000/darwin.h:75
+#, gcc-internal-format
+msgid "-mdynamic-no-pic overrides -fpic or -fPIC"
+msgstr "-mdynamic-no-pic потискује -fpic и -fPIC"
+
+#. Darwin doesn't support -fpic.
+#: config/rs6000/darwin.h:81
+#, gcc-internal-format
+msgid "-fpic is not supported; -fPIC assumed"
+msgstr "-fpic није подржано; претпостављам -fPIC"
+
+#: config/rs6000/darwin.h:88
+#, gcc-internal-format
+msgid "-m64 requires PowerPC64 architecture, enabling"
+msgstr "-m64 захтева архитектуру ПауерПЦ-64, укључујем"
+
+#. See note below.
+#. if (!rs6000_explicit_options.long_double)
+#. rs6000_long_double_type_size = 128;
+#: config/rs6000/eabispe.h:45 config/rs6000/linuxspe.h:62
+#, gcc-internal-format
+msgid "-m64 not supported in this configuration"
+msgstr "-m64 није подржано у овој конфигурацији"
+
+#: config/rs6000/linux64.h:109
+#, gcc-internal-format
+msgid "-m64 requires a PowerPC64 cpu"
+msgstr "-m64 захтева ЦПУ типа ПауерПЦ-64"
+
+#. Definitions for __builtin_return_address and __builtin_frame_address.
+#. __builtin_return_address (0) should give link register (65), enable
+#. this.
+#. This should be uncommented, so that the link register is used, but
+#. currently this would result in unmatched insns and spilling fixed
+#. registers so we'll leave it for another day. When these problems are
+#. taken care of one additional fetch will be necessary in RETURN_ADDR_RTX.
+#. (mrs)
+#. #define RETURN_ADDR_IN_PREVIOUS_FRAME
+#. Number of bytes into the frame return addresses can be found. See
+#. rs6000_stack_info in rs6000.c for more information on how the different
+#. abi's store the return address.
+#: config/rs6000/rs6000.h:1590
+#, gcc-internal-format
+msgid "RETURN_ADDRESS_OFFSET not supported"
+msgstr "RETURN_ADDRESS_OFFSET није подржано"
+
+#. Sometimes certain combinations of command options do not make sense
+#. on a particular target machine. You can define a macro
+#. `OVERRIDE_OPTIONS' to take account of this. This macro, if
+#. defined, is executed once just after all the command options have
+#. been parsed.
+#.
+#. The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to
+#. get control.
+#: config/rs6000/sysv4.h:130
+#, gcc-internal-format
+msgid "bad value for -mcall-%s"
+msgstr "лоша вредност за -mcall-%s"
+
+#: config/rs6000/sysv4.h:146
+#, gcc-internal-format
+msgid "bad value for -msdata=%s"
+msgstr "лоша вредност за -msdata=%s"
+
+#: config/rs6000/sysv4.h:163
+#, gcc-internal-format
+msgid "-mrelocatable and -msdata=%s are incompatible"
+msgstr "-mrelocatable и -msdata=%s нису сагласни"
+
+#: config/rs6000/sysv4.h:172
+#, gcc-internal-format
+msgid "-f%s and -msdata=%s are incompatible"
+msgstr "-f%s и -msdata=%s нису сагласни"
+
+#: config/rs6000/sysv4.h:181
+#, gcc-internal-format
+msgid "-msdata=%s and -mcall-%s are incompatible"
+msgstr "-msdata=%s и -mcall-%s нису сагласни"
+
+#: config/rs6000/sysv4.h:190
+#, gcc-internal-format
+msgid "-mrelocatable and -mno-minimal-toc are incompatible"
+msgstr "-mrelocatable и -mno-minimal-toc нису сагласни"
+
+#: config/rs6000/sysv4.h:196
+#, gcc-internal-format
+msgid "-mrelocatable and -mcall-%s are incompatible"
+msgstr "-mrelocatable и -mcall-%s нису сагласни"
+
+#: config/rs6000/sysv4.h:203
+#, gcc-internal-format
+msgid "-fPIC and -mcall-%s are incompatible"
+msgstr "-fPIC и -mcall-%s нису сагласни"
+
+#: config/rs6000/sysv4.h:210
+#, gcc-internal-format
+msgid "-mcall-aixdesc must be big endian"
+msgstr "-mcall-aixdesc мора бити велике крајности"
+
+#: config/rs6000/sysv4.h:215
+#, gcc-internal-format
+msgid "-msecure-plt not supported by your assembler"
+msgstr "ваш асемблер на подржава -msecure-plt"
+
+#: config/rs6000/sysv4.h:220
+#, gcc-internal-format
+msgid "-msoft-float and -mlong-double-128 not supported"
+msgstr "-msoft-float и -mlong-double-128 нису подржани"
+
+#: config/rs6000/sysv4.h:234
+#, gcc-internal-format
+msgid "-m%s not supported in this configuration"
+msgstr "-m%s није подржано у овој конфигурацији"
+
+#: config/s390/s390.c:1339
+#, gcc-internal-format
+msgid "stack guard value must be an exact power of 2"
+msgstr "вредност браника стека мора бити тачан степен двојке"
+
+#: config/s390/s390.c:1346
+#, gcc-internal-format
+msgid "stack size must be an exact power of 2"
+msgstr "величина стека мора бити тачан степен двојке"
+
+#: config/s390/s390.c:1391
+#, gcc-internal-format
+msgid "z/Architecture mode not supported on %s"
+msgstr "режим з/Архитектуре није подржан на %s"
+
+#: config/s390/s390.c:1393
+#, gcc-internal-format
+msgid "64-bit ABI not supported in ESA/390 mode"
+msgstr "64-битни АБИ није подржан у режиму ЕСЕ/390"
+
+#: config/s390/s390.c:1404
+#, gcc-internal-format
+msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination"
+msgstr "-mbackchain -mpacked-stack -mhard-float нису подржани у комбинацији"
+
+#: config/s390/s390.c:1410
+#, gcc-internal-format
+msgid "-mstack-size implies use of -mstack-guard"
+msgstr "-mstack-size имплицира коришћење -mstack-guard"
+
+#: config/s390/s390.c:1412
+#, gcc-internal-format
+msgid "stack size must be greater than the stack guard value"
+msgstr "величина стека мора бити већа од вредности браника стека"
+
+#: config/s390/s390.c:1414
+#, gcc-internal-format
+msgid "stack size must not be greater than 64k"
+msgstr "величина стека не сме бити већа од 64k"
+
+#: config/s390/s390.c:1417
+#, gcc-internal-format
+msgid "-mstack-guard implies use of -mstack-size"
+msgstr "-mstack-guard имплицира коришћење -mstack-size"
+
+#: config/s390/s390.c:6568
+#, gcc-internal-format
+msgid "total size of local variables exceeds architecture limit"
+msgstr "укупна величина локалних променљивих премашује ограничење архитектуре"
+
+#: config/s390/s390.c:7155
+#, gcc-internal-format
+msgid "frame size of %qs is "
+msgstr "величина оквира за %qs је "
+
+#: config/s390/s390.c:7155
+#, gcc-internal-format
+msgid " bytes"
+msgstr " бајтова"
+
+#: config/s390/s390.c:7159
+#, gcc-internal-format
+msgid "%qs uses dynamic stack allocation"
+msgstr "%qs користи динамичко резервисање стека"
+
+#: config/sh/sh.c:6483
+#, gcc-internal-format
+msgid "__builtin_saveregs not supported by this subtarget"
+msgstr "__builtin_saveregs није подржано овим подциљем"
+
+#: config/sh/sh.c:7488
+#, gcc-internal-format
+msgid "%qs attribute only applies to interrupt functions"
+msgstr "атрибут %qs примењив је само на функције прекида"
+
+#: config/sh/sh.c:7574
+#, gcc-internal-format
+msgid "attribute interrupt_handler is not compatible with -m5-compact"
+msgstr "атрибут interrupt_handler није сагласан са -m5-compact"
+
+#. The argument must be a constant string.
+#: config/sh/sh.c:7596
+#, gcc-internal-format
+msgid "%qs attribute argument not a string constant"
+msgstr "аргумент атрибута %qs није константна ниска"
+
+#. The argument must be a constant integer.
+#: config/sh/sh.c:7621
+#, gcc-internal-format
+msgid "%qs attribute argument not an integer constant"
+msgstr "аргумент атрибута %qs није целобројна константа"
+
+#: config/sh/sh.c:9673
+#, gcc-internal-format
+msgid "r0 needs to be available as a call-clobbered register"
+msgstr "r0 мора бити доступан као позивом продрман регистар"
+
+#: config/sh/sh.c:9694
+#, gcc-internal-format
+msgid "Need a second call-clobbered general purpose register"
+msgstr "Потребан је други позивом продрман регистар опште намене"
+
+#: config/sh/sh.c:9702
+#, gcc-internal-format
+msgid "Need a call-clobbered target register"
+msgstr "Потребан је позивом продрман циљни регистар"
+
+#: config/sh/symbian.c:147
+#, gcc-internal-format
+msgid "function %q+D is defined after prior declaration as dllimport: attribute ignored"
+msgstr "функција %q+D је дефинисана после претходне декларације као dllimport: игноришем атрибут"
+
+#: config/sh/symbian.c:159
+#, gcc-internal-format
+msgid "inline function %q+D is declared as dllimport: attribute ignored"
+msgstr "уткана функција %q+D је декларисана као dllimport: игноришем атрибут"
+
+#: config/sh/symbian.c:280
+#, gcc-internal-format
+msgid "failure in redeclaration of %q+D: dllimport'd symbol lacks external linkage"
+msgstr "крах у поновљеној декларацији %q+D: увезеном симболу недостаје спољашња повезивост"
+
+#: config/sh/symbian.c:326
+#, gcc-internal-format
+msgid "%s %q+D %s after being referenced with dllimport linkage"
+msgstr "%s %q+D %s пошто је поменута са dllimport повезивошћу"
+
+#: config/sh/symbian.c:892 cp/tree.c:2335
+#, gcc-internal-format
+msgid "lang_* check: failed in %s, at %s:%d"
+msgstr "провера lang_*: крах у %s, код %s:%d"
+
+#. FIXME
+#: config/sh/netbsd-elf.h:95
+#, gcc-internal-format
+msgid "unimplemented-shmedia profiling"
+msgstr "неимплементирано профилисање СХмедије"
+
+#. There are no delay slots on SHmedia.
+#. Relaxation isn't yet supported for SHmedia
+#. After reload, if conversion does little good but can cause ICEs: - find_if_block doesn't do anything for SH because we don't have conditional execution patterns. (We use conditional move patterns, which are handled differently, and only before reload). - find_cond_trap doesn't do anything for the SH because we #. don't have conditional traps. - find_if_case_1 uses redirect_edge_and_branch_force in the only path that does an optimization, and this causes an ICE when branch targets are in registers. - find_if_case_2 doesn't do anything for the SHmedia after reload except when it can redirect a tablejump - and that's rather rare.
+#. -fprofile-arcs needs a working libgcov . In unified tree configurations with newlib, this requires to configure with --with-newlib --with-headers. But there is no way to check here we have a working libgcov, so just assume that we have.
+#: config/sh/sh.h:611
+#, gcc-internal-format
+msgid "profiling is still experimental for this target"
+msgstr "профилисање је још увек опитно за овај циљ"
+
+#. Only the sh64-elf assembler fully supports .quad properly.
+#. User supplied - leave it alone.
+#. The debugging information is sufficient, but gdb doesn't implement this yet
+#. Never run scheduling before reload, since that can break global alloc, and generates slower code anyway due to the pressure on R0.
+#. Enable sched1 for SH4; ready queue will be reordered by the target hooks when pressure is high. We can not do this for SH3 and lower as they give spill failures for R0.
+#. ??? Current exception handling places basic block boundaries after call_insns. It causes the high pressure on R0 and gives spill failures for R0 in reload. See PR 22553 and the thread on gcc-patches <http://gcc.gnu.org/ml/gcc-patches/2005-10/msg00816.html>.
+#: config/sh/sh.h:676
+#, gcc-internal-format
+msgid "ignoring -fschedule-insns because of exception handling bug"
+msgstr "игноришем -fschedule-insns због грешке у руковању изузецима"
+
+#: config/sparc/sparc.c:643
+#, gcc-internal-format
+msgid "%s is not supported by this configuration"
+msgstr "%s није подржано овом конфигурацијом"
+
+#: config/sparc/sparc.c:650
+#, gcc-internal-format
+msgid "-mlong-double-64 not allowed with -m64"
+msgstr "-mlong-double-64 није дозвољено уз -m64"
+
+#: config/sparc/sparc.c:675
+#, gcc-internal-format
+msgid "-mcmodel= is not supported on 32 bit systems"
+msgstr "-mcmodel= није подржано на 32-битним системима"
+
+#: config/stormy16/stormy16.c:497
+#, gcc-internal-format
+msgid "constant halfword load operand out of range"
+msgstr "константан операнд учитавања полу-речи ван опсега"
+
+#: config/stormy16/stormy16.c:507
+#, gcc-internal-format
+msgid "constant arithmetic operand out of range"
+msgstr "константан аритметички операнд ван опсега"
+
+#: config/stormy16/stormy16.c:1108
+#, gcc-internal-format
+msgid "local variable memory requirements exceed capacity"
+msgstr "потребна меморија за локалне променљиве премашује капацитете"
+
+#: config/stormy16/stormy16.c:1274
+#, gcc-internal-format
+msgid "function_profiler support"
+msgstr "function_profiler подршка"
+
+#: config/stormy16/stormy16.c:1363
+#, gcc-internal-format
+msgid "cannot use va_start in interrupt function"
+msgstr "не може се користити va_start у функцији прекида"
+
+#: config/stormy16/stormy16.c:1895
+#, gcc-internal-format
+msgid "switch statement of size %lu entries too large"
+msgstr "наредба прекидача са %lu уноса је превелика"
+
+#: config/stormy16/stormy16.c:2263
+#, gcc-internal-format
+msgid "%<__BELOW100__%> attribute only applies to variables"
+msgstr "атрибут %<__BELOW100__%> примењује се само на променљиве"
+
+#: config/stormy16/stormy16.c:2270
+#, gcc-internal-format
+msgid "__BELOW100__ attribute not allowed with auto storage class"
+msgstr "атрибут __BELOW100__ није дозвољен са аутом. складишном класом"
+
+#: config/v850/v850-c.c:67
+#, gcc-internal-format
+msgid "#pragma GHS endXXXX found without previous startXXX"
+msgstr "нађена #pragma GHS endXXXX без претходне startXXX"
+
+#: config/v850/v850-c.c:70
+#, gcc-internal-format
+msgid "#pragma GHS endXXX does not match previous startXXX"
+msgstr "#pragma GHS endXXXX не поклапа се са претходним startXXX"
+
+#: config/v850/v850-c.c:96
+#, gcc-internal-format
+msgid "cannot set interrupt attribute: no current function"
+msgstr "не могу да поставим атрибут прекида: нема текуће функције"
+
+#: config/v850/v850-c.c:104
+#, gcc-internal-format
+msgid "cannot set interrupt attribute: no such identifier"
+msgstr "не могу да поставим атрибут прекида: нема таквог идентификатора"
+
+#: config/v850/v850-c.c:149
+#, gcc-internal-format
+msgid "junk at end of #pragma ghs section"
+msgstr "смеће на крају #pragma ghs section"
+
+#: config/v850/v850-c.c:166
+#, gcc-internal-format
+msgid "unrecognized section name \"%s\""
+msgstr "непрепознато име одељка „%s“"
+
+#: config/v850/v850-c.c:181
+#, gcc-internal-format
+msgid "malformed #pragma ghs section"
+msgstr "лоше формирано #pragma ghs section"
+
+#: config/v850/v850-c.c:200
+#, gcc-internal-format
+msgid "junk at end of #pragma ghs interrupt"
+msgstr "смеће на крају #pragma ghs interrupt"
+
+#: config/v850/v850-c.c:211
+#, gcc-internal-format
+msgid "junk at end of #pragma ghs starttda"
+msgstr "смеће на крају #pragma ghs starttda"
+
+#: config/v850/v850-c.c:222
+#, gcc-internal-format
+msgid "junk at end of #pragma ghs startsda"
+msgstr "смеће на крају #pragma ghs startsda"
+
+#: config/v850/v850-c.c:233
+#, gcc-internal-format
+msgid "junk at end of #pragma ghs startzda"
+msgstr "смеће на крају #pragma ghs startzda"
+
+#: config/v850/v850-c.c:244
+#, gcc-internal-format
+msgid "junk at end of #pragma ghs endtda"
+msgstr "смеће на крају #pragma ghs endtda"
+
+#: config/v850/v850-c.c:255
+#, gcc-internal-format
+msgid "junk at end of #pragma ghs endsda"
+msgstr "смеће на крају #pragma ghs endsda"
+
+#: config/v850/v850-c.c:266
+#, gcc-internal-format
+msgid "junk at end of #pragma ghs endzda"
+msgstr "смеће на крају #pragma ghs endzda"
+
+#: config/v850/v850.c:172
+#, gcc-internal-format
+msgid "value passed to %<-m%s%> is too large"
+msgstr "вредност прослеђена уз %<-m%s%> превелика"
+
+#: config/v850/v850.c:2147
+#, gcc-internal-format
+msgid "%Jdata area attributes cannot be specified for local variables"
+msgstr "%Jатрибути области података не могу се навести за локалне променљиве"
+
+#: config/v850/v850.c:2158
+#, gcc-internal-format
+msgid "data area of %q+D conflicts with previous declaration"
+msgstr "областа података за %q+D коси се са претходном декларацијом"
+
+#: config/v850/v850.c:2288
+#, gcc-internal-format
+msgid "bogus JR construction: %d"
+msgstr "лоша конструкција JR: %d"
+
+#: config/v850/v850.c:2306 config/v850/v850.c:2415
+#, gcc-internal-format
+msgid "bad amount of stack space removal: %d"
+msgstr "лоша количина уклањања простора на стеку: %d"
+
+#: config/v850/v850.c:2395
+#, gcc-internal-format
+msgid "bogus JARL construction: %d\n"
+msgstr "лоша конструкција JARL: %d\n"
+
+#: config/v850/v850.c:2694
+#, gcc-internal-format
+msgid "bogus DISPOSE construction: %d"
+msgstr "лоша конструкција DISPOSE: %d"
+
+#: config/v850/v850.c:2713
+#, gcc-internal-format
+msgid "too much stack space to dispose of: %d"
+msgstr "превише простора на стеку за бацити: %d"
+
+#: config/v850/v850.c:2815
+#, gcc-internal-format
+msgid "bogus PREPEARE construction: %d"
+msgstr "лоша конструкција PREPARE: %d"
+
+#: config/v850/v850.c:2834
+#, gcc-internal-format
+msgid "too much stack space to prepare: %d"
+msgstr "превише простора на стеку за спремити: %d"
+
+#: config/xtensa/xtensa.c:1505
+#, gcc-internal-format
+msgid "boolean registers required for the floating-point option"
+msgstr "потребни су логички регистри за опцију покретног зареза"
+
+#: config/xtensa/xtensa.c:1551
+#, gcc-internal-format
+msgid "-f%s is not supported with CONST16 instructions"
+msgstr "-f%s није подржано КОНСТ16 инструкцијама"
+
+#: config/xtensa/xtensa.c:1556
+#, gcc-internal-format
+msgid "PIC is required but not supported with CONST16 instructions"
+msgstr "ПИЦ је потребан али није подржан КОНСТ16 инструкцијама"
+
+#: config/xtensa/xtensa.c:2414
+#, gcc-internal-format
+msgid "only uninitialized variables can be placed in a .bss section"
+msgstr "само неуспостављене променљиве могу бити смештене у одељак .bss"
+
+#: ada/misc.c:262
+#, gcc-internal-format
+msgid "missing argument to \"-%s\""
+msgstr "недостаје аргумент за -%s"
+
+#: ada/misc.c:303
+#, gcc-internal-format
+msgid "%<-gnat%> misspelled as %<-gant%>"
+msgstr "%<-gnat%> погрешно уписано као %<-gant%>"
+
+#: cp/call.c:286
+#, gcc-internal-format
+msgid "unable to call pointer to member function here"
+msgstr "не могу овде позвати показивач на чланску функцију"
+
+#: cp/call.c:2389
+#, gcc-internal-format
+msgid "%s %D(%T, %T, %T) <built-in>"
+msgstr "%s %D(%T, %T, %T) <уграђено>"
+
+#: cp/call.c:2394
+#, gcc-internal-format
+msgid "%s %D(%T, %T) <built-in>"
+msgstr "%s %D(%T, %T) <уграђено>"
+
+#: cp/call.c:2398
+#, gcc-internal-format
+msgid "%s %D(%T) <built-in>"
+msgstr "%s %D(%T) <уграђено>"
+
+#: cp/call.c:2402
+#, gcc-internal-format
+msgid "%s %T <conversion>"
+msgstr "%s %T <претварање>"
+
+#: cp/call.c:2404
+#, gcc-internal-format
+msgid "%s %+#D <near match>"
+msgstr "%s %+#D <приближно поклапање>"
+
+#: cp/call.c:2406 cp/pt.c:1327
+#, gcc-internal-format
+msgid "%s %+#D"
+msgstr "%s %+#D"
+
+#: cp/call.c:2628
+#, gcc-internal-format
+msgid "conversion from %qT to %qT is ambiguous"
+msgstr "двосмислено претварање из %qT у %qT"
+
+#: cp/call.c:2779 cp/call.c:2797 cp/call.c:2855
+#, gcc-internal-format
+msgid "no matching function for call to %<%D(%A)%>"
+msgstr "нема одговарајуће функције за позив %<%D(%A)%>"
+
+#: cp/call.c:2800 cp/call.c:2858
+#, gcc-internal-format
+msgid "call of overloaded %<%D(%A)%> is ambiguous"
+msgstr "двосмислен позив препуњене %<%D(%A)%> "
+
+#. It's no good looking for an overloaded operator() on a
+#. pointer-to-member-function.
+#: cp/call.c:2926
+#, gcc-internal-format
+msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
+msgstr "показивач на чланску функцију %E не може бити позван без објекта; покушајте помоћу .* или ->*"
+
+#: cp/call.c:3000
+#, gcc-internal-format
+msgid "no match for call to %<(%T) (%A)%>"
+msgstr "нема поклапања за позив %<(%T) (%A)%>"
+
+#: cp/call.c:3009
+#, gcc-internal-format
+msgid "call of %<(%T) (%A)%> is ambiguous"
+msgstr "двосмислен позив %<(%T) (%A)%>"
+
+#: cp/call.c:3047
+#, gcc-internal-format
+msgid "%s for ternary %<operator?:%> in %<%E ? %E : %E%>"
+msgstr "%s за тернарно %<operator?:%> у %<%E ? %E : %E%>"
+
+#: cp/call.c:3053
+#, gcc-internal-format
+msgid "%s for %<operator%s%> in %<%E%s%>"
+msgstr "%s за %<operator%s%> у %<%E%s%>"
+
+#: cp/call.c:3057
+#, gcc-internal-format
+msgid "%s for %<operator[]%> in %<%E[%E]%>"
+msgstr "%s за %<operator[]%> у %<%E[%E]%>"
+
+#: cp/call.c:3062
+#, gcc-internal-format
+msgid "%s for %qs in %<%s %E%>"
+msgstr "%s за %qs у %<%s %E%>"
+
+#: cp/call.c:3067
+#, gcc-internal-format
+msgid "%s for %<operator%s%> in %<%E %s %E%>"
+msgstr "%s за %<operator%s%> у %<%E %s %E%>"
+
+#: cp/call.c:3070
+#, gcc-internal-format
+msgid "%s for %<operator%s%> in %<%s%E%>"
+msgstr "%s за %<operator%s%> у %<%s%E%>"
+
+#: cp/call.c:3162
+#, gcc-internal-format
+msgid "ISO C++ forbids omitting the middle term of a ?: expression"
+msgstr "ИСО Ц++ забрањује изостављање средњег члана израза ?:"
+
+#: cp/call.c:3239
+#, gcc-internal-format
+msgid "%qE has type %<void%> and is not a throw-expression"
+msgstr "%qE је типа %<void%> и није израз у бацању"
+
+#: cp/call.c:3278 cp/call.c:3488
+#, gcc-internal-format
+msgid "operands to ?: have different types"
+msgstr "операнди у ?: различитих су типова"
+
+#: cp/call.c:3442
+#, gcc-internal-format
+msgid "enumeral mismatch in conditional expression: %qT vs %qT"
+msgstr "неслагање набројивих у условном изразу: %qT пр. %qT"
+
+#: cp/call.c:3449
+#, gcc-internal-format
+msgid "enumeral and non-enumeral type in conditional expression"
+msgstr "набројиви и ненабројиви тип у условном изразу"
+
+#: cp/call.c:3743
+#, gcc-internal-format
+msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
+msgstr "%<%D(int)%> није декларисано за постфиксно %qs, покушавам смену префиксним оператором"
+
+#: cp/call.c:3816
+#, gcc-internal-format
+msgid "comparison between %q#T and %q#T"
+msgstr "поређење између %q#T и %q#T"
+
+#: cp/call.c:4075
+#, gcc-internal-format
+msgid "no suitable %<operator %s%> for %qT"
+msgstr "нема погодног %<operator %s%> за %qT"
+
+#: cp/call.c:4092
+#, gcc-internal-format
+msgid "%q+#D is private"
+msgstr "%q+#D је приватно"
+
+#: cp/call.c:4094
+#, gcc-internal-format
+msgid "%q+#D is protected"
+msgstr "%q+#D је заштићено"
+
+#: cp/call.c:4096
+#, gcc-internal-format
+msgid "%q+#D is inaccessible"
+msgstr "%q+#D није приступно"
+
+#: cp/call.c:4097
+#, gcc-internal-format
+msgid "within this context"
+msgstr "у овом контексту"
+
+#: cp/call.c:4186 cp/cvt.c:264
+#, gcc-internal-format
+msgid "invalid conversion from %qT to %qT"
+msgstr "неисправно претварање из %qT у %qT"
+
+#: cp/call.c:4188
+#, gcc-internal-format
+msgid " initializing argument %P of %qD"
+msgstr " успостављање аргумента %P од %qD"
+
+#: cp/call.c:4200
+#, gcc-internal-format
+msgid "passing NULL to non-pointer argument %P of %qD"
+msgstr "прослеђивање NULL непоказивачком аргументу %P од %qD"
+
+#: cp/call.c:4203
+#, gcc-internal-format
+msgid "converting to non-pointer type %qT from NULL"
+msgstr "претварање у непоказивачки тип %qT из NULL"
+
+#: cp/call.c:4211
+#, gcc-internal-format
+msgid "passing %qT for argument %P to %qD"
+msgstr "прослеђивање %qT као аргумента %P од %qD"
+
+#: cp/call.c:4214
+#, gcc-internal-format
+msgid "converting to %qT from %qT"
+msgstr "претварање у %qT из %qT"
+
+#: cp/call.c:4353
+#, gcc-internal-format
+msgid "cannot bind bitfield %qE to %qT"
+msgstr "не може се повезати битско поље %qE са %qT"
+
+#: cp/call.c:4356 cp/call.c:4372
+#, gcc-internal-format
+msgid "cannot bind packed field %qE to %qT"
+msgstr "не може се повезати паковано поље %qE са %qT"
+
+#: cp/call.c:4359
+#, gcc-internal-format
+msgid "cannot bind rvalue %qE to %qT"
+msgstr "не може се повезати д-вредност %qE са %qT"
+
+#: cp/call.c:4473
+#, gcc-internal-format
+msgid "cannot pass objects of non-POD type %q#T through %<...%>; call will abort at runtime"
+msgstr "не могу се проследити објекти не-ПОД типа %q#T кроз %<...%>; позив ће искочити при извршавању"
+
+#. Undefined behavior [expr.call] 5.2.2/7.
+#: cp/call.c:4499
+#, gcc-internal-format
+msgid "cannot receive objects of non-POD type %q#T through %<...%>; call will abort at runtime"
+msgstr "не могу се примати објекти не-ПОД типа %q#T кроз %<...%>; позив ће искочити при извршавању"
+
+#: cp/call.c:4542
+#, gcc-internal-format
+msgid "the default argument for parameter %d of %qD has not yet been parsed"
+msgstr "подразумевани аргумент за параметер %d у %qD још увек није рашчлањен"
+
+#: cp/call.c:4621
+#, gcc-internal-format
+msgid "argument of function call might be a candidate for a format attribute"
+msgstr "аргумент позива функције може бити кандидат за форматски атрибут"
+
+#: cp/call.c:4758
+#, gcc-internal-format
+msgid "passing %qT as %<this%> argument of %q#D discards qualifiers"
+msgstr "прослеђивање %qT као аргумента %<this%> у %q#D одбацује одредбе"
+
+#: cp/call.c:4777
+#, gcc-internal-format
+msgid "%qT is not an accessible base of %qT"
+msgstr "%qT није приступна основа од %qT"
+
+#: cp/call.c:5027
+#, gcc-internal-format
+msgid "could not find class$ field in java interface type %qT"
+msgstr "не могу да нађем поље class$ у јаванском типу сучеља %qT"
+
+#: cp/call.c:5264
+#, gcc-internal-format
+msgid "call to non-function %qD"
+msgstr "позив не-функције %qD"
+
+#: cp/call.c:5386
+#, gcc-internal-format
+msgid "no matching function for call to %<%T::%s(%A)%#V%>"
+msgstr "нема одговарајуће функције за позив %<%T::%s(%A)%#V%>"
+
+#: cp/call.c:5404
+#, gcc-internal-format
+msgid "call of overloaded %<%s(%A)%> is ambiguous"
+msgstr "двосмислен позив препуњене %<%s(%A)%>"
+
+#: cp/call.c:5428
+#, gcc-internal-format
+msgid "cannot call member function %qD without object"
+msgstr "чланска функција %qD не може се позвати без објекта"
+
+#: cp/call.c:6033
+#, gcc-internal-format
+msgid "passing %qT chooses %qT over %qT"
+msgstr "прослеђивање %qT бира %qT пре него %qT"
+
+#: cp/call.c:6035 cp/name-lookup.c:4257
+#, gcc-internal-format
+msgid " in call to %qD"
+msgstr " у позиву %qD"
+
+#: cp/call.c:6092
+#, gcc-internal-format
+msgid "choosing %qD over %qD"
+msgstr "бирам %qD пре него %qD"
+
+#: cp/call.c:6093
+#, gcc-internal-format
+msgid " for conversion from %qT to %qT"
+msgstr " за претварање из %qT у %qT"
+
+#: cp/call.c:6095
+#, gcc-internal-format
+msgid " because conversion sequence for the argument is better"
+msgstr " зато што је низ претварања за аргумент бољи"
+
+#: cp/call.c:6209
+#, gcc-internal-format
+msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
+msgstr "ИСО Ц++ каже да је ово двосмислено, чак иако је најгоре претварање првог боље од најгорег претварања другог:"
+
+#: cp/call.c:6353
+#, gcc-internal-format
+msgid "could not convert %qE to %qT"
+msgstr "не могу да претворим %qE у %qT"
+
+#: cp/call.c:6478
+#, gcc-internal-format
+msgid "invalid initialization of non-const reference of type %qT from a temporary of type %qT"
+msgstr "неисправно успостављање неконстантног упућивача типа %qT привременим типа %qT"
+
+#: cp/call.c:6482
+#, gcc-internal-format
+msgid "invalid initialization of reference of type %qT from expression of type %qT"
+msgstr "неисправно успостављање упућивача типа %qT изразом типа %qT"
+
+#: cp/class.c:281
+#, gcc-internal-format
+msgid "cannot convert from base %qT to derived type %qT via virtual base %qT"
+msgstr "не може се претворити из основе %qT у изведени тип %qT преко виртуелне основе %qT"
+
+#: cp/class.c:945
+#, gcc-internal-format
+msgid "Java class %qT cannot have a destructor"
+msgstr "јаванска класа %qT не може имати деструктор"
+
+#: cp/class.c:947
+#, gcc-internal-format
+msgid "Java class %qT cannot have an implicit non-trivial destructor"
+msgstr "јаванска класа %qT не може имати имплицитни нетривијални деструктор"
+
+#: cp/class.c:1054
+#, gcc-internal-format
+msgid "repeated using declaration %q+D"
+msgstr "поновљена декларација коришћења %q+D"
+
+#: cp/class.c:1056
+#, gcc-internal-format
+msgid "using declaration %q+D conflicts with a previous using declaration"
+msgstr "декларација коришћења %q+D коси се са претходном декларацијом коришћења"
+
+#: cp/class.c:1061
+#, gcc-internal-format
+msgid "%q+#D cannot be overloaded"
+msgstr "%q+#D не може бити препуњено"
+
+#: cp/class.c:1062
+#, gcc-internal-format
+msgid "with %q+#D"
+msgstr "са %q+#D"
+
+#: cp/class.c:1124
+#, gcc-internal-format
+msgid "conflicting access specifications for method %q+D, ignored"
+msgstr "сукобљене одреднице приступа за метод %q+D, игноришем"
+
+#: cp/class.c:1127
+#, gcc-internal-format
+msgid "conflicting access specifications for field %qE, ignored"
+msgstr "сукобљене одреднице приступа за поље %qE, игноришем"
+
+#: cp/class.c:1188 cp/class.c:1196
+#, gcc-internal-format
+msgid "%q+D invalid in %q#T"
+msgstr "%q+D неисправно у %q#T"
+
+#: cp/class.c:1189
+#, gcc-internal-format
+msgid " because of local method %q+#D with same name"
+msgstr " због истоименог локалног метода %q+#D"
+
+#: cp/class.c:1197
+#, gcc-internal-format
+msgid " because of local member %q+#D with same name"
+msgstr " због истоименог локалног члана %q+#D"
+
+#: cp/class.c:1239
+#, gcc-internal-format
+msgid "base class %q#T has a non-virtual destructor"
+msgstr "основна класа %q#T има не-виртуелни деструктор"
+
+#: cp/class.c:1553
+#, gcc-internal-format
+msgid "all member functions in class %qT are private"
+msgstr "све чланске функције у класи %qT су приватне"
+
+#: cp/class.c:1564
+#, gcc-internal-format
+msgid "%q#T only defines a private destructor and has no friends"
+msgstr "%q#T дефинише само приватни деструктор и нема пријатељâ"
+
+#: cp/class.c:1607
+#, gcc-internal-format
+msgid "%q#T only defines private constructors and has no friends"
+msgstr "%q#T дефинише само приватне конструкторе и нема пријатељâ"
+
+#: cp/class.c:2000
+#, gcc-internal-format
+msgid "no unique final overrider for %qD in %qT"
+msgstr "нема јединственог коначног потискивача за %qD у %qT"
+
+#. Here we know it is a hider, and no overrider exists.
+#: cp/class.c:2419
+#, gcc-internal-format
+msgid "%q+D was hidden"
+msgstr "%q+D је сакривено"
+
+#: cp/class.c:2420
+#, gcc-internal-format
+msgid " by %q+D"
+msgstr " овим %q+D"
+
+#: cp/class.c:2461 cp/decl2.c:1072
+#, gcc-internal-format
+msgid "%q+#D invalid; an anonymous union can only have non-static data members"
+msgstr "%q+#D није исправно; анонимна унија може имати само нестатичке чланске податке"
+
+#: cp/class.c:2467 cp/decl2.c:1078
+#, gcc-internal-format
+msgid "private member %q+#D in anonymous union"
+msgstr "приватни члан %q+#D у анонимној унији"
+
+#: cp/class.c:2469 cp/decl2.c:1080
+#, gcc-internal-format
+msgid "protected member %q+#D in anonymous union"
+msgstr "заштићени члан %q+#D у анонимној унији"
+
+#: cp/class.c:2635
+#, gcc-internal-format
+msgid "bit-field %q+#D with non-integral type"
+msgstr "битско поље %q+#D неинтегралног типа"
+
+#: cp/class.c:2652
+#, gcc-internal-format
+msgid "bit-field %q+D width not an integer constant"
+msgstr "ширина битског поља %q+D није целобројна константа"
+
+#: cp/class.c:2657
+#, gcc-internal-format
+msgid "negative width in bit-field %q+D"
+msgstr "негативна ширина у бистком пољу %q+D"
+
+#: cp/class.c:2662
+#, gcc-internal-format
+msgid "zero width for bit-field %q+D"
+msgstr "нулта ширина за битско поље %q+D"
+
+#: cp/class.c:2668
+#, gcc-internal-format
+msgid "width of %q+D exceeds its type"
+msgstr "ширина %q+D премашује свој тип"
+
+#: cp/class.c:2677
+#, gcc-internal-format
+msgid "%q+D is too small to hold all values of %q#T"
+msgstr "%q+D је премало да садржи све вредности за %q#T"
+
+#: cp/class.c:2736
+#, gcc-internal-format
+msgid "member %q+#D with constructor not allowed in union"
+msgstr "члан %q+#D са конструктором није дозвољен у унији"
+
+#: cp/class.c:2739
+#, gcc-internal-format
+msgid "member %q+#D with destructor not allowed in union"
+msgstr "члан %q+#D са деструктором није дозвољен у унији"
+
+#: cp/class.c:2741
+#, gcc-internal-format
+msgid "member %q+#D with copy assignment operator not allowed in union"
+msgstr "члан %q+#D са оператором копирања-доделе није дозвољен у унији"
+
+#: cp/class.c:2764
+#, gcc-internal-format
+msgid "multiple fields in union %qT initialized"
+msgstr "успостављена вишеструка поља у унији %qT"
+
+#: cp/class.c:2826
+#, gcc-internal-format
+msgid "ignoring packed attribute on unpacked non-POD field %q+#D"
+msgstr "игноришем атрибут паковања на непакованом не-ПОД пољу %q+#D"
+
+#: cp/class.c:2886
+#, gcc-internal-format
+msgid "%q+D may not be static because it is a member of a union"
+msgstr "%q+D не може бити статичко зато што је члан уније"
+
+#: cp/class.c:2891
+#, gcc-internal-format
+msgid "%q+D may not have reference type %qT because it is a member of a union"
+msgstr "%q+D не може имати тип упућивача %qT зато што је члан уније"
+
+#: cp/class.c:2900
+#, gcc-internal-format
+msgid "field %q+D in local class cannot be static"
+msgstr "поље %q+D у локалној класи не може бити статичко"
+
+#: cp/class.c:2906
+#, gcc-internal-format
+msgid "field %q+D invalidly declared function type"
+msgstr "поље %q+D неисправно декларисан функцијски тип"
+
+#: cp/class.c:2912
+#, gcc-internal-format
+msgid "field %q+D invalidly declared method type"
+msgstr "поље %q+D неисправно декларисан методски тип"
+
+#: cp/class.c:2944
+#, gcc-internal-format
+msgid "non-static reference %q+#D in class without a constructor"
+msgstr "нестатички упућивач %q+#D у класи без конструктора"
+
+#: cp/class.c:2991
+#, gcc-internal-format
+msgid "non-static const member %q+#D in class without a constructor"
+msgstr "нестатчики константни члан %q+#D у класи без конструктора"
+
+#: cp/class.c:3006
+#, gcc-internal-format
+msgid "field %q+#D with same name as class"
+msgstr "поље %q+#D истог имена као и класа"
+
+#: cp/class.c:3039
+#, gcc-internal-format
+msgid "%q#T has pointer data members"
+msgstr "%q#T има показивачке чланске податке"
+
+#: cp/class.c:3043
+#, gcc-internal-format
+msgid " but does not override %<%T(const %T&)%>"
+msgstr " али не потискује %<%T(const %T&)%>"
+
+#: cp/class.c:3045
+#, gcc-internal-format
+msgid " or %<operator=(const %T&)%>"
+msgstr " или %<operator=(const %T&)%>"
+
+#: cp/class.c:3048
+#, gcc-internal-format
+msgid " but does not override %<operator=(const %T&)%>"
+msgstr " али не потискује %<operator=(const %T&)%>"
+
+#: cp/class.c:3504
+#, gcc-internal-format
+msgid "offset of empty base %qT may not be ABI-compliant and maychange in a future version of GCC"
+msgstr "помак празне основе %qT можда не поштује АБИ и може се изменити у будућим верзијама ГЦЦа"
+
+#: cp/class.c:3616
+#, gcc-internal-format
+msgid "class %qT will be considered nearly empty in a future version of GCC"
+msgstr "класа %qT ће бити сматрана скоро празном у будућим верзијама ГЦЦа"
+
+#: cp/class.c:3698
+#, gcc-internal-format
+msgid "initializer specified for non-virtual method %q+D"
+msgstr "успостављач наведен за невиртуелни метод %q+D"
+
+#: cp/class.c:4360
+#, gcc-internal-format
+msgid "offset of virtual base %qT is not ABI-compliant and may change in a future version of GCC"
+msgstr "помак виртуелне основе %qT не поштује АБИ и може се изменити у будућим верзијама ГЦЦа"
+
+#: cp/class.c:4459
+#, gcc-internal-format
+msgid "direct base %qT inaccessible in %qT due to ambiguity"
+msgstr "непосредна основа %qT није доступна у %qT услед двосмислености"
+
+#: cp/class.c:4471
+#, gcc-internal-format
+msgid "virtual base %qT inaccessible in %qT due to ambiguity"
+msgstr "виртуелна основа %qT није доступна у %qT услед двосмислености"
+
+#: cp/class.c:4648
+#, gcc-internal-format
+msgid "size assigned to %qT may not be ABI-compliant and may change in a future version of GCC"
+msgstr "величина додељена %qT можда не поштује АБИ и може се изменити у будућим верзијама ГЦЦа"
+
+#. Versions of G++ before G++ 3.4 did not reset the
+#. DECL_MODE.
+#: cp/class.c:4687
+#, gcc-internal-format
+msgid "the offset of %qD may not be ABI-compliant and may change in a future version of GCC"
+msgstr "помак за %qD можда не поштује АБИ и може се изменити у будућим верзијама ГЦЦа"
+
+#: cp/class.c:4715
+#, gcc-internal-format
+msgid "offset of %q+D is not ABI-compliant and may change in a future version of GCC"
+msgstr "помак за %q+D можда не поштује АБИ и може се изменити у будућим верзијама ГЦЦа"
+
+#: cp/class.c:4724
+#, gcc-internal-format
+msgid "%q+D contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
+msgstr "%q+D садржи празне класе које могу довести до смештања основних класа на различитој локацији у будућим верзијама ГЦЦа"
+
+#: cp/class.c:4783
+#, gcc-internal-format
+msgid "layout of classes derived from empty class %qT may change in a future version of GCC"
+msgstr "распоред класа изведених из празне класе %qT може бити промењен у будућим верзијама ГЦЦа"
+
+#: cp/class.c:4929 cp/parser.c:13263
+#, gcc-internal-format
+msgid "redefinition of %q#T"
+msgstr "поновна дефиниција %q#T"
+
+#: cp/class.c:5079
+#, gcc-internal-format
+msgid "%q#T has virtual functions but non-virtual destructor"
+msgstr "%q#T има виртуелне функције, али невиртуелни деструктор"
+
+#: cp/class.c:5181
+#, gcc-internal-format
+msgid "trying to finish struct, but kicked out due to previous parse errors"
+msgstr "у покушају да довршим структуру, али избачен услед претходних грешака у рашчлањивању"
+
+#: cp/class.c:5628
+#, gcc-internal-format
+msgid "language string %<\"%E\"%> not recognized"
+msgstr "језичка ниска %<\"%E\"%> није препозната"
+
+#: cp/class.c:5714
+#, gcc-internal-format
+msgid "cannot resolve overloaded function %qD based on conversion to type %qT"
+msgstr "не могу да разрешим препуњену функцију %qD на основу претварања у тип %qT"
+
+#: cp/class.c:5841
+#, gcc-internal-format
+msgid "no matches converting function %qD to type %q#T"
+msgstr "нема поклапања за претварање функције %qD у тип %q#T"
+
+#: cp/class.c:5864
+#, gcc-internal-format
+msgid "converting overloaded function %qD to type %q#T is ambiguous"
+msgstr "двосмислено претварање препуњене функције %qD у тип %q#T"
+
+#: cp/class.c:5890
+#, gcc-internal-format
+msgid "assuming pointer to member %qD"
+msgstr "претпостављам показивач на члан %qD"
+
+#: cp/class.c:5893
+#, gcc-internal-format
+msgid "(a pointer to member can only be formed with %<&%E%>)"
+msgstr "(показивач на члан може бити формиран само помоћу %<&%E%>)"
+
+#: cp/class.c:5938 cp/class.c:5969 cp/class.c:6121 cp/class.c:6128
+#, gcc-internal-format
+msgid "not enough type information"
+msgstr "нема довољно података о типу"
+
+#: cp/class.c:5955
+#, gcc-internal-format
+msgid "argument of type %qT does not match %qT"
+msgstr "аргумент типа %qT не поклапа се са %qT"
+
+#: cp/class.c:6105
+#, gcc-internal-format
+msgid "invalid operation on uninstantiated type"
+msgstr "неисправна радња на неизведеном типу"
+
+#. [basic.scope.class]
+#.
+#. A name N used in a class S shall refer to the same declaration
+#. in its context and when re-evaluated in the completed scope of
+#. S.
+#: cp/class.c:6342 cp/decl.c:1133 cp/name-lookup.c:508
+#, gcc-internal-format
+msgid "declaration of %q#D"
+msgstr "декларација %q#D"
+
+#: cp/class.c:6343
+#, gcc-internal-format
+msgid "changes meaning of %qD from %q+#D"
+msgstr "мења значење за %qD са %q+#D"
+
+#: cp/cp-gimplify.c:120
+#, gcc-internal-format
+msgid "continue statement not within loop or switch"
+msgstr "наредба настављања није у оквиру петље или прекидача"
+
+#: cp/cp-gimplify.c:365
+#, gcc-internal-format
+msgid "statement with no effect"
+msgstr "наредба без ефекта"
+
+#: cp/cvt.c:91
+#, gcc-internal-format
+msgid "can't convert from incomplete type %qT to %qT"
+msgstr "не може се претворити из непотпуног типа %qT у %qT"
+
+#: cp/cvt.c:100
+#, gcc-internal-format
+msgid "conversion of %qE from %qT to %qT is ambiguous"
+msgstr "двосмислено претварање %qE из %qT у %qT"
+
+#: cp/cvt.c:169 cp/cvt.c:238 cp/cvt.c:285
+#, gcc-internal-format
+msgid "cannot convert %qE from type %qT to type %qT"
+msgstr "не може се претворити %qE из типа %qT у тип %qT"
+
+#: cp/cvt.c:198 cp/cvt.c:202
+#, gcc-internal-format
+msgid "pointer to member cast from %qT to %qT is via virtual base"
+msgstr "показивач на члан претопљен из %qT у %qT је преко виртуелне основе"
+
+#: cp/cvt.c:499
+#, gcc-internal-format
+msgid "conversion from %qT to %qT discards qualifiers"
+msgstr "претварање из %qT у %qT одбацује одредбе"
+
+#: cp/cvt.c:517 cp/typeck.c:4977
+#, gcc-internal-format
+msgid "casting %qT to %qT does not dereference pointer"
+msgstr "претапање %qT у %qT не разрешава показивач"
+
+#: cp/cvt.c:544
+#, gcc-internal-format
+msgid "cannot convert type %qT to type %qT"
+msgstr "не може се претворити из типа %qT у %qT"
+
+#: cp/cvt.c:680
+#, gcc-internal-format
+msgid "conversion from %q#T to %q#T"
+msgstr "претварање из %q#T у %q#T"
+
+#: cp/cvt.c:692 cp/cvt.c:712
+#, gcc-internal-format
+msgid "%q#T used where a %qT was expected"
+msgstr "%q#T употребљено где је %qT очекивано"
+
+#: cp/cvt.c:727
+#, gcc-internal-format
+msgid "%q#T used where a floating point value was expected"
+msgstr "%q#T употребљено где је очекивана вредност у покретном зарезу"
+
+#: cp/cvt.c:774
+#, gcc-internal-format
+msgid "conversion from %qT to non-scalar type %qT requested"
+msgstr "захтевано претварање из %qT у нескаларни тип %qT"
+
+#: cp/cvt.c:808
+#, gcc-internal-format
+msgid "pseudo-destructor is not called"
+msgstr "псеудодеструктор се не позива"
+
+#: cp/cvt.c:867
+#, gcc-internal-format
+msgid "object of incomplete type %qT will not be accessed in %s"
+msgstr "објекту непотпуног типа %qT неће се приступити у %s"
+
+#: cp/cvt.c:870
+#, gcc-internal-format
+msgid "object of type %qT will not be accessed in %s"
+msgstr "објекту типа %qT неће се приступити у %s"
+
+#: cp/cvt.c:886
+#, gcc-internal-format
+msgid "object %qE of incomplete type %qT will not be accessed in %s"
+msgstr "објекту %qE непотпуног типа %qT неће се приступити у %s"
+
+#. [over.over] enumerates the places where we can take the address
+#. of an overloaded function, and this is not one of them.
+#: cp/cvt.c:902
+#, gcc-internal-format
+msgid "%s cannot resolve address of overloaded function"
+msgstr "%s не може да разреши адресу препуњене функције"
+
+#. Only warn when there is no &.
+#: cp/cvt.c:908
+#, gcc-internal-format
+msgid "%s is a reference, not call, to function %qE"
+msgstr "%s је упућивач, а не позив, за функцију %qE"
+
+#: cp/cvt.c:922
+#, gcc-internal-format
+msgid "%s has no effect"
+msgstr "%s нема ефекта"
+
+#: cp/cvt.c:954
+#, gcc-internal-format
+msgid "value computed is not used"
+msgstr "израчуната вредност се не користи"
+
+#: cp/cvt.c:1062
+#, gcc-internal-format
+msgid "converting NULL to non-pointer type"
+msgstr "претварање NULL у непоказивачки тип"
+
+#: cp/cvt.c:1135
+#, gcc-internal-format
+msgid "ambiguous default type conversion from %qT"
+msgstr "двосмислено подразумевано претварање типа из %qT"
+
+#: cp/cvt.c:1137
+#, gcc-internal-format
+msgid " candidate conversions include %qD and %qD"
+msgstr " могућа претварања укључују %qD и %qD"
+
+#: cp/decl.c:999
+#, gcc-internal-format
+msgid "%qD was declared %<extern%> and later %<static%>"
+msgstr "%qD је прво декларисано као %<extern%> а касније %<static%>"
+
+#: cp/decl.c:1000 cp/decl.c:1505 objc/objc-act.c:2920 objc/objc-act.c:7490
+#, gcc-internal-format
+msgid "previous declaration of %q+D"
+msgstr "претходна декларација %q+D"
+
+#: cp/decl.c:1033
+#, gcc-internal-format
+msgid "declaration of %qF throws different exceptions"
+msgstr "декларација %qF баца различите изузетке"
+
+#: cp/decl.c:1034
+#, gcc-internal-format
+msgid "from previous declaration %q+F"
+msgstr "од претходне декларације %q+F"
+
+#: cp/decl.c:1086
+#, gcc-internal-format
+msgid "function %q+D redeclared as inline"
+msgstr "функција %q+D поново декларисана као уткана"
+
+#: cp/decl.c:1088
+#, gcc-internal-format
+msgid "previous declaration of %q+D with attribute noinline"
+msgstr "претходна декларација %q+D са атрибутом неуткане"
+
+#: cp/decl.c:1095
+#, gcc-internal-format
+msgid "function %q+D redeclared with attribute noinline"
+msgstr "функција %q+D поново декларисана са атрибутом неуткане"
+
+#: cp/decl.c:1097
+#, gcc-internal-format
+msgid "previous declaration of %q+D was inline"
+msgstr "претходна декларација %q+D била је уткано"
+
+#: cp/decl.c:1120 cp/decl.c:1193
+#, gcc-internal-format
+msgid "shadowing %s function %q#D"
+msgstr "заклањање %s функције %q#D"
+
+#: cp/decl.c:1129
+#, gcc-internal-format
+msgid "library function %q#D redeclared as non-function %q#D"
+msgstr "библиотечка функција %q#D поново декларисана као не-функција %q#D"
+
+#: cp/decl.c:1134
+#, gcc-internal-format
+msgid "conflicts with built-in declaration %q#D"
+msgstr "коси се са декларацијом уграђеног %q#D"
+
+#: cp/decl.c:1188 cp/decl.c:1297 cp/decl.c:1313
+#, gcc-internal-format
+msgid "new declaration %q#D"
+msgstr "нова декларација %q#D"
+
+#: cp/decl.c:1189
+#, gcc-internal-format
+msgid "ambiguates built-in declaration %q#D"
+msgstr "чини декларацију уграђеног %q#D двосмисленом"
+
+#: cp/decl.c:1261
+#, gcc-internal-format
+msgid "%q#D redeclared as different kind of symbol"
+msgstr "%q#D поново декларисано као другачија врста симбола"
+
+#: cp/decl.c:1264
+#, gcc-internal-format
+msgid "previous declaration of %q+#D"
+msgstr "претходна декларација %q+#D"
+
+#: cp/decl.c:1283
+#, gcc-internal-format
+msgid "declaration of template %q#D"
+msgstr "декларација шаблона %q#D"
+
+#: cp/decl.c:1284 cp/name-lookup.c:509
+#, gcc-internal-format
+msgid "conflicts with previous declaration %q+#D"
+msgstr "коси се са претходном декларацијом %q+#D"
+
+#: cp/decl.c:1298 cp/decl.c:1314
+#, gcc-internal-format
+msgid "ambiguates old declaration %q+#D"
+msgstr "чини стару декларацију %q+#D двосмисленом"
+
+#: cp/decl.c:1306
+#, gcc-internal-format
+msgid "declaration of C function %q#D conflicts with"
+msgstr "декларација Ц функције %q#D коси се са"
+
+#: cp/decl.c:1308
+#, gcc-internal-format
+msgid "previous declaration %q+#D here"
+msgstr "претходном декларацијом %q+#D овде"
+
+#: cp/decl.c:1321
+#, gcc-internal-format
+msgid "conflicting declaration %q#D"
+msgstr "сукобљена декларација %q#D"
+
+#: cp/decl.c:1322
+#, gcc-internal-format
+msgid "%q+D has a previous declaration as %q#D"
+msgstr "%q+D има претходну декларацију као %q#D"
+
+#. [namespace.alias]
+#.
+#. A namespace-name or namespace-alias shall not be declared as
+#. the name of any other entity in the same declarative region.
+#. A namespace-name defined at global scope shall not be
+#. declared as the name of any other entity in any global scope
+#. of the program.
+#: cp/decl.c:1374
+#, gcc-internal-format
+msgid "declaration of namespace %qD conflicts with"
+msgstr "декларација именског простора %qD коси се са"
+
+#: cp/decl.c:1375
+#, gcc-internal-format
+msgid "previous declaration of namespace %q+D here"
+msgstr "претходном декларацијом именског простора %q+D овде"
+
+#: cp/decl.c:1386
+#, gcc-internal-format
+msgid "%q+#D previously defined here"
+msgstr "%q+#D претходно дефинисано овде"
+
+#: cp/decl.c:1387
+#, gcc-internal-format
+msgid "%q+#D previously declared here"
+msgstr "%q+#D претходно декларисано овде"
+
+#. Prototype decl follows defn w/o prototype.
+#: cp/decl.c:1396
+#, gcc-internal-format
+msgid "prototype for %q+#D"
+msgstr "прототип за %q+#D"
+
+#: cp/decl.c:1397
+#, gcc-internal-format
+msgid "%Jfollows non-prototype definition here"
+msgstr "%Jпрати не-прототипску дефиницију овде"
+
+#: cp/decl.c:1409
+#, gcc-internal-format
+msgid "previous declaration of %q+#D with %qL linkage"
+msgstr "претходна декларација %q+#D са повезивошћу %qL"
+
+#: cp/decl.c:1411
+#, gcc-internal-format
+msgid "conflicts with new declaration with %qL linkage"
+msgstr "коси се са новом декларацијом са повезивошћу %qL"
+
+#: cp/decl.c:1434 cp/decl.c:1440
+#, gcc-internal-format
+msgid "default argument given for parameter %d of %q#D"
+msgstr "подразумевани аргумент дат за параметар %d у %q#D"
+
+#: cp/decl.c:1436 cp/decl.c:1442
+#, gcc-internal-format
+msgid "after previous specification in %q+#D"
+msgstr "после претходног навода у %q+#D"
+
+#: cp/decl.c:1451
+#, gcc-internal-format
+msgid "%q#D was used before it was declared inline"
+msgstr "%q#D је употребљено пре него што је декларисано уткано"
+
+#: cp/decl.c:1452
+#, gcc-internal-format
+msgid "%Jprevious non-inline declaration here"
+msgstr "%Jпретходна неуткана декларација овде"
+
+#: cp/decl.c:1504
+#, gcc-internal-format
+msgid "redundant redeclaration of %qD in same scope"
+msgstr "сувишна поновна декларација %qD у истом досегу"
+
+#. From [temp.expl.spec]:
+#.
+#. If a template, a member template or the member of a class
+#. template is explicitly specialized then that
+#. specialization shall be declared before the first use of
+#. that specialization that would cause an implicit
+#. instantiation to take place, in every translation unit in
+#. which such a use occurs.
+#: cp/decl.c:1756
+#, gcc-internal-format
+msgid "explicit specialization of %qD after first use"
+msgstr "експлицитна специјализација %qD после прве употребе"
+
+#: cp/decl.c:1835
+#, gcc-internal-format
+msgid "%q+D: visibility attribute ignored because it"
+msgstr "%q+D: атрибут видљивости игнорисан зато што"
+
+#: cp/decl.c:1837
+#, gcc-internal-format
+msgid "%Jconflicts with previous declaration here"
+msgstr "%Jсе коси са претходном декларацијом овде"
+
+#: cp/decl.c:2227 cp/decl.c:2249
+#, gcc-internal-format
+msgid "jump to label %qD"
+msgstr "скок на етикету %qD"
+
+#: cp/decl.c:2229 cp/decl.c:2251
+#, gcc-internal-format
+msgid "jump to case label"
+msgstr "скок на етикету случаја"
+
+#: cp/decl.c:2232 cp/decl.c:2254
+#, gcc-internal-format
+msgid "%H from here"
+msgstr "%H одавде"
+
+#: cp/decl.c:2237
+#, gcc-internal-format
+msgid " crosses initialization of %q+#D"
+msgstr " пресеца успостављање %q+#D"
+
+#: cp/decl.c:2239 cp/decl.c:2353
+#, gcc-internal-format
+msgid " enters scope of non-POD %q+#D"
+msgstr " улази у досег не-ПОД %q+#D"
+
+#: cp/decl.c:2258 cp/decl.c:2357
+#, gcc-internal-format
+msgid " enters try block"
+msgstr " улази у блок покушаја"
+
+#: cp/decl.c:2260 cp/decl.c:2359
+#, gcc-internal-format
+msgid " enters catch block"
+msgstr " улази у блок хватања"
+
+#: cp/decl.c:2337
+#, gcc-internal-format
+msgid "jump to label %q+D"
+msgstr "скок на етикету %q+D"
+
+#: cp/decl.c:2338
+#, gcc-internal-format
+msgid " from here"
+msgstr " одавде"
+
+#. Can't skip init of __exception_info.
+#: cp/decl.c:2349
+#, gcc-internal-format
+msgid "%J enters catch block"
+msgstr "%J улази у блок хватања"
+
+#: cp/decl.c:2351
+#, gcc-internal-format
+msgid " skips initialization of %q+#D"
+msgstr " прескаче успостављање %q+#D"
+
+#: cp/decl.c:2385
+#, gcc-internal-format
+msgid "label named wchar_t"
+msgstr "етикета по имену wchar_t"
+
+#: cp/decl.c:2388
+#, gcc-internal-format
+msgid "duplicate label %qD"
+msgstr "удвостручена етикета %qD"
+
+#: cp/decl.c:2644 cp/parser.c:3654
+#, gcc-internal-format
+msgid "%qD used without template parameters"
+msgstr "%qD употребљено без параметара шаблона"
+
+#: cp/decl.c:2661 cp/decl.c:2752
+#, gcc-internal-format
+msgid "no class template named %q#T in %q#T"
+msgstr "нема шаблона класе по имену %q#T у %q#T"
+
+#: cp/decl.c:2682 cp/decl.c:2692 cp/decl.c:2712
+#, gcc-internal-format
+msgid "no type named %q#T in %q#T"
+msgstr "нема типа по имену %q#T у %q#T"
+
+#: cp/decl.c:2761
+#, gcc-internal-format
+msgid "template parameters do not match template"
+msgstr "параметри шаблона се не поклапају са шаблоном"
+
+#: cp/decl.c:2762 cp/friend.c:317 cp/friend.c:325
+#, gcc-internal-format
+msgid "%q+D declared here"
+msgstr "%q+D декларисано овде"
+
+#: cp/decl.c:3433
+#, gcc-internal-format
+msgid "%Jan anonymous union cannot have function members"
+msgstr "%Jанонимна унија не може имати чланске функције"
+
+#: cp/decl.c:3451
+#, gcc-internal-format
+msgid "member %q+#D with constructor not allowed in anonymous aggregate"
+msgstr "члан %q+#D са конструктором није дозвољен у анонимној скупини"
+
+#: cp/decl.c:3454
+#, gcc-internal-format
+msgid "member %q+#D with destructor not allowed in anonymous aggregate"
+msgstr "члан %q+#D са деструктором није дозвољен у анонимној скупини"
+
+#: cp/decl.c:3457
+#, gcc-internal-format
+msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
+msgstr "члан %q+#D са оператором копирања-доделе није дозвољен у анонимној скупини"
+
+#: cp/decl.c:3482
+#, gcc-internal-format
+msgid "multiple types in one declaration"
+msgstr "вишеструки типови у једној декларацији"
+
+#: cp/decl.c:3486
+#, gcc-internal-format
+msgid "redeclaration of C++ built-in type %qT"
+msgstr "поновљена декларација Ц++ уграђеног типа %qT"
+
+#: cp/decl.c:3523
+#, gcc-internal-format
+msgid "missing type-name in typedef-declaration"
+msgstr "недостаје име типа у наредби typedef"
+
+#: cp/decl.c:3531
+#, gcc-internal-format
+msgid "ISO C++ prohibits anonymous structs"
+msgstr "ИСО Ц++ забрањује анонимне структуре"
+
+#: cp/decl.c:3538
+#, gcc-internal-format
+msgid "%qs can only be specified for functions"
+msgstr "%qs може бити наведено само за функције"
+
+#: cp/decl.c:3544
+#, gcc-internal-format
+msgid "%<friend%> can only be specified inside a class"
+msgstr "%<friend%> може бити наведено само унутар класе"
+
+#: cp/decl.c:3546
+#, gcc-internal-format
+msgid "%<explicit%> can only be specified for constructors"
+msgstr "%<explicit%> може бити наведено само за конструкторе"
+
+#: cp/decl.c:3548
+#, gcc-internal-format
+msgid "a storage class can only be specified for objects and functions"
+msgstr "складишна класа може бити наведена само за објекте и функције"
+
+#: cp/decl.c:3554
+#, gcc-internal-format
+msgid "qualifiers can only be specified for objects and functions"
+msgstr "одредбе могу бити наведене само за објекте и функције"
+
+#: cp/decl.c:3584
+#, gcc-internal-format
+msgid "attribute ignored in declaration of %q+#T"
+msgstr "атрибут игнорисан у декларацији %q+#T"
+
+#: cp/decl.c:3585
+#, gcc-internal-format
+msgid "attribute for %q+#T must follow the %qs keyword"
+msgstr "атрибут за %q+#T мора пратити кључну реч %qs"
+
+#: cp/decl.c:3705
+#, gcc-internal-format
+msgid "function %q#D is initialized like a variable"
+msgstr "функција %q#D успостављена као променљива"
+
+#: cp/decl.c:3717
+#, gcc-internal-format
+msgid "declaration of %q#D has %<extern%> and is initialized"
+msgstr "декларација %q#D има %<extern%> и ипак је успостављена"
+
+#: cp/decl.c:3747
+#, gcc-internal-format
+msgid "%q#D is not a static member of %q#T"
+msgstr "%q#D није статички члан у %q#T"
+
+#: cp/decl.c:3753
+#, gcc-internal-format
+msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
+msgstr "ИСО Ц++ не дозвољава да %<%T::%D%> буде дефинисано као %<%T::%D%>"
+
+#: cp/decl.c:3762
+#, gcc-internal-format
+msgid "template header not allowed in member definition of explicitly specialized class"
+msgstr "заглавље шаблона није дозвољено у дефиницији члана експлицитно специјализоване класе"
+
+#: cp/decl.c:3771
+#, gcc-internal-format
+msgid "duplicate initialization of %qD"
+msgstr "двоструко успостављање %qD"
+
+#: cp/decl.c:3810
+#, gcc-internal-format
+msgid "declaration of %q#D outside of class is not definition"
+msgstr "декларација %q#D изван класе није дефиниција"
+
+#: cp/decl.c:3859
+#, gcc-internal-format
+msgid "variable %q#D has initializer but incomplete type"
+msgstr "променљива %q#D има успостављач али је непотпуног типа"
+
+#: cp/decl.c:3866 cp/decl.c:4564
+#, gcc-internal-format
+msgid "elements of array %q#D have incomplete type"
+msgstr "елементи низа %q#D имају непотпун тип"
+
+#: cp/decl.c:3882
+#, gcc-internal-format
+msgid "aggregate %q#D has incomplete type and cannot be defined"
+msgstr "скупина %q#D има непотпун тип и не може се дефинисати"
+
+#: cp/decl.c:3932
+#, gcc-internal-format
+msgid "%qD declared as reference but not initialized"
+msgstr "%qD декларисано као упућивач али није успостављено"
+
+#: cp/decl.c:3938
+#, gcc-internal-format
+msgid "ISO C++ forbids use of initializer list to initialize reference %qD"
+msgstr "ИСО Ц++ забрањује употребу листе успостављача за успостављање упућивача %qD"
+
+#: cp/decl.c:3964
+#, gcc-internal-format
+msgid "cannot initialize %qT from %qT"
+msgstr "%qT се не може успоставити из %qT"
+
+#: cp/decl.c:3997
+#, gcc-internal-format
+msgid "initializer fails to determine size of %qD"
+msgstr "успостављач не одређује величину %qD"
+
+#: cp/decl.c:4002
+#, gcc-internal-format
+msgid "array size missing in %qD"
+msgstr "недостаје величина низа у %qD"
+
+#: cp/decl.c:4012
+#, gcc-internal-format
+msgid "zero-size array %qD"
+msgstr "низ %qD нулте величине"
+
+#. An automatic variable with an incomplete type: that is an error.
+#. Don't talk about array types here, since we took care of that
+#. message in grokdeclarator.
+#: cp/decl.c:4048
+#, gcc-internal-format
+msgid "storage size of %qD isn't known"
+msgstr "величина складиштења за %qD није позната"
+
+#: cp/decl.c:4070
+#, gcc-internal-format
+msgid "storage size of %qD isn't constant"
+msgstr "величина складиштења за %qD није константа"
+
+#: cp/decl.c:4125
+#, gcc-internal-format
+msgid "sorry: semantics of inline function static data %q+#D are wrong (you'll wind up with multiple copies)"
+msgstr "извините: семантика статичких података уткане функције %q+#D је погрешна (доћи ће до вишеструких копија)"
+
+#: cp/decl.c:4128
+#, gcc-internal-format
+msgid "%J you can work around this by removing the initializer"
+msgstr "%J можете ово заобићи уклањањем успостављача"
+
+#: cp/decl.c:4155
+#, gcc-internal-format
+msgid "uninitialized const %qD"
+msgstr "неуспостављена константа %qD"
+
+#: cp/decl.c:4230
+#, gcc-internal-format
+msgid "name %qD used in a GNU-style designated initializer for an array"
+msgstr "име %qD употребљено у успостављачу низа утврђеном као Гну-стил"
+
+#: cp/decl.c:4276
+#, gcc-internal-format
+msgid "invalid type %qT as initializer for a vector of type %qT"
+msgstr "неисправан тип %qT као успостављач за вектор типа %qT"
+
+#: cp/decl.c:4318
+#, gcc-internal-format
+msgid "initializer for %qT must be brace-enclosed"
+msgstr "успостављач за %qT мора бити у витичастим заградама"
+
+#: cp/decl.c:4333
+#, gcc-internal-format
+msgid "ISO C++ does not allow designated initializers"
+msgstr "ИСО Ц++ не дозвољава утврђене успостављаче"
+
+#: cp/decl.c:4338
+#, gcc-internal-format
+msgid "%qT has no non-static data member named %qD"
+msgstr "%qT нема нестатички члански податак по имену %qD"
+
+#: cp/decl.c:4387
+#, gcc-internal-format
+msgid "braces around scalar initializer for type %qT"
+msgstr "витичасте заграде око скаларног успостављача за тип %qT"
+
+#: cp/decl.c:4465
+#, gcc-internal-format
+msgid "missing braces around initializer for %qT"
+msgstr "недостају витичасте заграде око успостављача за %qT"
+
+#: cp/decl.c:4520
+#, gcc-internal-format
+msgid "too many initializers for %qT"
+msgstr "превише успостављача за %qT"
+
+#: cp/decl.c:4558
+#, gcc-internal-format
+msgid "variable-sized object %qD may not be initialized"
+msgstr "објекат %qD променљиве величине не може се успостављати"
+
+#: cp/decl.c:4569
+#, gcc-internal-format
+msgid "%qD has incomplete type"
+msgstr "%qD има непотпун тип"
+
+#: cp/decl.c:4615
+#, gcc-internal-format
+msgid "%qD must be initialized by constructor, not by %<{...}%>"
+msgstr "%qD мора бити успостављен конструктором, не помоћу %<{...}%>"
+
+#: cp/decl.c:4651
+#, gcc-internal-format
+msgid "array %qD initialized by parenthesized string literal %qE"
+msgstr "низ %qD успостављен заграђеном константном ниском %qE"
+
+#: cp/decl.c:4666
+#, gcc-internal-format
+msgid "structure %qD with uninitialized const members"
+msgstr "структура %qD са неуспостављеним константним члановима"
+
+#: cp/decl.c:4668
+#, gcc-internal-format
+msgid "structure %qD with uninitialized reference members"
+msgstr "структура %qD са неуспостављеним упућивачким члановима"
+
+#: cp/decl.c:4875
+#, gcc-internal-format
+msgid "assignment (not initialization) in declaration"
+msgstr "додела (не успостављање) у декларацији"
+
+#: cp/decl.c:4892
+#, gcc-internal-format
+msgid "cannot initialize %qD to namespace %qD"
+msgstr "%qD се не може успостављати именским простором %qD"
+
+#: cp/decl.c:4942
+#, gcc-internal-format
+msgid "shadowing previous type declaration of %q#D"
+msgstr "заклањање претходне декларације типа за %q#D"
+
+#: cp/decl.c:4972
+#, gcc-internal-format
+msgid "%qD cannot be thread-local because it has non-POD type %qT"
+msgstr "%qD не може бити нитно-локално зато што је не-ПОД типа %qT"
+
+#: cp/decl.c:4997
+#, gcc-internal-format
+msgid "%qD is thread-local and so cannot be dynamically initialized"
+msgstr "%qD је нитно-локално и стога се не може динамички успостављати"
+
+#: cp/decl.c:5015
+#, gcc-internal-format
+msgid "%qD cannot be initialized by a non-constant expression when being declared"
+msgstr "%qD се не може успостављати не-константним изразом када се декларише"
+
+#: cp/decl.c:5605
+#, gcc-internal-format
+msgid "destructor for alien class %qT cannot be a member"
+msgstr "деструктор за туђинску класу %qT не може бити члан"
+
+#: cp/decl.c:5607
+#, gcc-internal-format
+msgid "constructor for alien class %qT cannot be a member"
+msgstr "конструктор за туђинску класу %qT не може бити члан"
+
+#: cp/decl.c:5628
+#, gcc-internal-format
+msgid "%qD declared as a %<virtual%> %s"
+msgstr "%qD декларисано као %<virtual%> %s"
+
+#: cp/decl.c:5630
+#, gcc-internal-format
+msgid "%qD declared as an %<inline%> %s"
+msgstr "%qD декларисано као %<inline%> %s"
+
+#: cp/decl.c:5632
+#, gcc-internal-format
+msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s declaration"
+msgstr "наводиоци функције %<const%> и %<volatile%> за %qD нису исправни у декларацији %s"
+
+#: cp/decl.c:5636
+#, gcc-internal-format
+msgid "%q+D declared as a friend"
+msgstr "%q+D декларисано као пријатељ"
+
+#: cp/decl.c:5642
+#, gcc-internal-format
+msgid "%q+D declared with an exception specification"
+msgstr "%q+D декларисано са одредницом изузетака"
+
+#: cp/decl.c:5676
+#, gcc-internal-format
+msgid "definition of %qD is not in namespace enclosing %qT"
+msgstr "дефиниција %qD није у именском простору који обухвата %qT"
+
+#: cp/decl.c:5736
+#, gcc-internal-format
+msgid "defining explicit specialization %qD in friend declaration"
+msgstr "дефиниција експлицитне специјализације %qD у декларацији пријатеља"
+
+#. Something like `template <class T> friend void f<T>()'.
+#: cp/decl.c:5746
+#, gcc-internal-format
+msgid "invalid use of template-id %qD in declaration of primary template"
+msgstr "неисправна употреба ид. шаблона %qD у декларацији примарног шаблона"
+
+#: cp/decl.c:5776
+#, gcc-internal-format
+msgid "default arguments are not allowed in declaration of friend template specialization %qD"
+msgstr "подразумевани аргументи нису дозвољени у декларацији пријатељске специјализације шаблона %qD"
+
+#: cp/decl.c:5784
+#, gcc-internal-format
+msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
+msgstr "%<inline%> није дозвољено у декларацији пријатељске специјализације шаблона %qD"
+
+#: cp/decl.c:5827
+#, gcc-internal-format
+msgid "cannot declare %<::main%> to be a template"
+msgstr "%<::main%> се не може декларисати као шаблон"
+
+#: cp/decl.c:5829
+#, gcc-internal-format
+msgid "cannot declare %<::main%> to be inline"
+msgstr "%<::main%> се не може декларисати као уткано"
+
+#: cp/decl.c:5831
+#, gcc-internal-format
+msgid "cannot declare %<::main%> to be static"
+msgstr "%<::main%> се не може декларисати као статичко"
+
+#: cp/decl.c:5837
+#, gcc-internal-format
+msgid "%<::main%> must return %<int%>"
+msgstr "%<::main%> мора враћати %<int%>"
+
+#: cp/decl.c:5869
+#, gcc-internal-format
+msgid "non-local function %q#D uses anonymous type"
+msgstr "не-локална функција %q#D користи анониман тип"
+
+#: cp/decl.c:5872 cp/decl.c:6142
+#, gcc-internal-format
+msgid "%q+#D does not refer to the unqualified type, so it is not used for linkage"
+msgstr "%q+#D не упућује на неодређени тип, тако да се не користи за повезивост"
+
+#: cp/decl.c:5878
+#, gcc-internal-format
+msgid "non-local function %q#D uses local type %qT"
+msgstr "не-локална функција %q#D користи локални тип %qT"
+
+#: cp/decl.c:5901
+#, gcc-internal-format
+msgid "%smember function %qD cannot have cv-qualifier"
+msgstr "%sчланска функција %qD не може имати кн-одредбу"
+
+#: cp/decl.c:5970
+#, gcc-internal-format
+msgid "definition of implicitly-declared %qD"
+msgstr "дефиниција имплицитно декларисаног %qD"
+
+#: cp/decl.c:5990 cp/decl2.c:704
+#, gcc-internal-format
+msgid "no %q#D member function declared in class %qT"
+msgstr "чланска функција %q#D није декларисана у класи %qT"
+
+#. DRs 132, 319 and 389 seem to indicate types with
+#. no linkage can only be used to declare extern "C"
+#. entities. Since it's not always an error in the
+#. ISO C++ 90 Standard, we only issue a warning.
+#: cp/decl.c:6139
+#, gcc-internal-format
+msgid "non-local variable %q#D uses anonymous type"
+msgstr "не-локална променљива %q#D користи анониман тип"
+
+#: cp/decl.c:6148
+#, gcc-internal-format
+msgid "non-local variable %q#D uses local type %qT"
+msgstr "не-локална променљива %q#D користи локални тип %qT"
+
+#: cp/decl.c:6265
+#, gcc-internal-format
+msgid "invalid in-class initialization of static data member of non-integral type %qT"
+msgstr "неисправно успостављање унутар класе статичког чланског податка неинтегралног типа %qT"
+
+#: cp/decl.c:6275
+#, gcc-internal-format
+msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
+msgstr "ИСО Ц++ забрањује успостављање унутар класе неконстантног статичког члана %qD"
+
+#: cp/decl.c:6279
+#, gcc-internal-format
+msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
+msgstr "ИСО Ц++ забрањује успостављање чланске константе %qD неинтегралног типа %qT"
+
+#: cp/decl.c:6303
+#, gcc-internal-format
+msgid "size of array %qD has non-integral type %qT"
+msgstr "величина низа %qD има неинтегрални тип %qT"
+
+#: cp/decl.c:6305
+#, gcc-internal-format
+msgid "size of array has non-integral type %qT"
+msgstr "величина низа има неинтегрални тип %qT"
+
+#: cp/decl.c:6341
+#, gcc-internal-format
+msgid "size of array %qD is negative"
+msgstr "негативна величина низа %qD"
+
+#: cp/decl.c:6343
+#, gcc-internal-format
+msgid "size of array is negative"
+msgstr "негативна величина низа"
+
+#: cp/decl.c:6351
+#, gcc-internal-format
+msgid "ISO C++ forbids zero-size array %qD"
+msgstr "ИСО Ц++ забрањује низ нулте величине %qD"
+
+#: cp/decl.c:6353
+#, gcc-internal-format
+msgid "ISO C++ forbids zero-size array"
+msgstr "ИСО Ц++ забрањује низ нулте величине"
+
+#: cp/decl.c:6360
+#, gcc-internal-format
+msgid "size of array %qD is not an integral constant-expression"
+msgstr "величина низа %qD није интегралан констатан израз"
+
+#: cp/decl.c:6363
+#, gcc-internal-format
+msgid "size of array is not an integral constant-expression"
+msgstr "величина низа није интегралан констатан израз"
+
+#: cp/decl.c:6369
+#, gcc-internal-format
+msgid "ISO C++ forbids variable-size array %qD"
+msgstr "ИСО Ц++ забрањује низ променљиве величине %qD"
+
+#: cp/decl.c:6371
+#, gcc-internal-format
+msgid "ISO C++ forbids variable-size array"
+msgstr "ИСО Ц++ забрањује низ променљиве величине"
+
+#: cp/decl.c:6401
+#, gcc-internal-format
+msgid "overflow in array dimension"
+msgstr "преливање у димензији низа"
+
+#: cp/decl.c:6475
+#, gcc-internal-format
+msgid "declaration of %qD as %s"
+msgstr "декларација %qD као %s"
+
+#: cp/decl.c:6477
+#, gcc-internal-format
+msgid "creating %s"
+msgstr "прави %s"
+
+#: cp/decl.c:6489
+#, gcc-internal-format
+msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
+msgstr "декларација %qD као вишедимензионог низа мора имати границе за све димензије осим прве"
+
+#: cp/decl.c:6493
+#, gcc-internal-format
+msgid "multidimensional array must have bounds for all dimensions except the first"
+msgstr "вишедимензиони низ мора имати границе за све димензије осим прве"
+
+#: cp/decl.c:6528
+#, gcc-internal-format
+msgid "return type specification for constructor invalid"
+msgstr "навод повратног типа за конструктор није исправан"
+
+#: cp/decl.c:6538
+#, gcc-internal-format
+msgid "return type specification for destructor invalid"
+msgstr "навод повратног типа за деструктор није исправан"
+
+#: cp/decl.c:6551
+#, gcc-internal-format
+msgid "operator %qT declared to return %qT"
+msgstr "оператор %qT декларисан да враћа %qT"
+
+#: cp/decl.c:6553
+#, gcc-internal-format
+msgid "return type specified for %<operator %T%>"
+msgstr "наведен повратни тип за %<operator %T%>"
+
+#: cp/decl.c:6575
+#, gcc-internal-format
+msgid "unnamed variable or field declared void"
+msgstr "неименована променљива или поље декларисано празним"
+
+#: cp/decl.c:6579
+#, gcc-internal-format
+msgid "variable or field %qE declared void"
+msgstr "променљива или поље %qE декларисано празним"
+
+#: cp/decl.c:6582
+#, gcc-internal-format
+msgid "variable or field declared void"
+msgstr "променљива или поље декларисано празним"
+
+#: cp/decl.c:6737
+#, gcc-internal-format
+msgid "type %qT is not derived from type %qT"
+msgstr "тип %qT није изведен из типа %qT"
+
+#: cp/decl.c:6753 cp/decl.c:6841 cp/decl.c:7929
+#, gcc-internal-format
+msgid "declaration of %qD as non-function"
+msgstr "декларација %qD као не-функције"
+
+#: cp/decl.c:6759
+#, gcc-internal-format
+msgid "declaration of %qD as non-member"
+msgstr "декларација %qD као не-члана"
+
+#: cp/decl.c:6790
+#, gcc-internal-format
+msgid "declarator-id missing; using reserved word %qD"
+msgstr "недостаје ид. декларатора; користи се резервисана реч %qD"
+
+#: cp/decl.c:6874
+#, gcc-internal-format
+msgid "two or more data types in declaration of %qs"
+msgstr "два или више типова података у декларацији %qs"
+
+#: cp/decl.c:6938 cp/decl.c:6940
+#, gcc-internal-format
+msgid "ISO C++ forbids declaration of %qs with no type"
+msgstr "ИСО Ц++ забрањује декларацију %qs без типа"
+
+#: cp/decl.c:6965
+#, gcc-internal-format
+msgid "short, signed or unsigned invalid for %qs"
+msgstr "short, signed или unsigned неисправни за %qs"
+
+#: cp/decl.c:6967
+#, gcc-internal-format
+msgid "long, short, signed or unsigned invalid for %qs"
+msgstr "long, short, signed или unsigned неисправни за %qs"
+
+#: cp/decl.c:6969
+#, gcc-internal-format
+msgid "long and short specified together for %qs"
+msgstr "long и short наведени заједно за %qs"
+
+#: cp/decl.c:6971
+#, gcc-internal-format
+msgid "long or short specified with char for %qs"
+msgstr "long или short наведено уз char за %qs"
+
+#: cp/decl.c:6973
+#, gcc-internal-format
+msgid "long or short specified with floating type for %qs"
+msgstr "long или short наведени са реалним типом за %qs"
+
+#: cp/decl.c:6975
+#, gcc-internal-format
+msgid "signed and unsigned given together for %qs"
+msgstr "signed и unsigned дати заједно за %qs"
+
+#: cp/decl.c:6981
+#, gcc-internal-format
+msgid "long, short, signed or unsigned used invalidly for %qs"
+msgstr "long, short, signed или unsigned употребљени неисправно за %qs"
+
+#: cp/decl.c:7046
+#, gcc-internal-format
+msgid "complex invalid for %qs"
+msgstr "complex неисправно за %qs"
+
+#: cp/decl.c:7075
+#, gcc-internal-format
+msgid "qualifiers are not allowed on declaration of %<operator %T%>"
+msgstr "одредбе нису дозвољене уз декларацију %<operator %T%>"
+
+#: cp/decl.c:7087 cp/typeck.c:6633
+#, gcc-internal-format
+msgid "ignoring %qV qualifiers added to function type %qT"
+msgstr "игнорисање %qV одредбе додате функцијском типу %qT"
+
+#: cp/decl.c:7110
+#, gcc-internal-format
+msgid "member %qD cannot be declared both virtual and static"
+msgstr "члан %qD не може бити декларисан и као виртуелни и као статички"
+
+#: cp/decl.c:7118
+#, gcc-internal-format
+msgid "%<%T::%D%> is not a valid declarator"
+msgstr "%<%T::%D%> није исправан декларатор"
+
+#: cp/decl.c:7126
+#, gcc-internal-format
+msgid "typedef declaration invalid in parameter declaration"
+msgstr "декларација typedef није исправна у декларацији параметра"
+
+#: cp/decl.c:7130
+#, gcc-internal-format
+msgid "storage class specifiers invalid in parameter declarations"
+msgstr "наводиоци складишне класе нису исправни у декларацијама параметара"
+
+#: cp/decl.c:7137
+#, gcc-internal-format
+msgid "virtual outside class declaration"
+msgstr "virtual изван декларације класе"
+
+#: cp/decl.c:7151 cp/decl.c:7160
+#, gcc-internal-format
+msgid "multiple storage classes in declaration of %qs"
+msgstr "вишеструке складишне класе у декларацији %qs"
+
+#: cp/decl.c:7183
+#, gcc-internal-format
+msgid "storage class specified for %qs"
+msgstr "складишна класа наведена за %qs"
+
+#: cp/decl.c:7217
+#, gcc-internal-format
+msgid "top-level declaration of %qs specifies %<auto%>"
+msgstr "декларација %qs на највишем нивоу наводи %<auto%>"
+
+#: cp/decl.c:7229
+#, gcc-internal-format
+msgid "storage class specifiers invalid in friend function declarations"
+msgstr "наводиоци складишне класе нису исправни у декларацијама пријатељских функција"
+
+#: cp/decl.c:7346
+#, gcc-internal-format
+msgid "destructor cannot be static member function"
+msgstr "деструктор не може бити статичка чланска функција"
+
+#: cp/decl.c:7349
+#, gcc-internal-format
+msgid "destructors may not be cv-qualified"
+msgstr "деструктори не могу бити кн-одређени"
+
+#: cp/decl.c:7369
+#, gcc-internal-format
+msgid "constructor cannot be static member function"
+msgstr "конструктор не може бити статичка чланска функција"
+
+#: cp/decl.c:7372
+#, gcc-internal-format
+msgid "constructors cannot be declared virtual"
+msgstr "конструктор не може бити виртуелан"
+
+#: cp/decl.c:7377
+#, gcc-internal-format
+msgid "constructors may not be cv-qualified"
+msgstr "конструктори не могу бити кн-одређени"
+
+#: cp/decl.c:7397
+#, gcc-internal-format
+msgid "can't initialize friend function %qs"
+msgstr "не може се успостављати пријатељска функција %qs"
+
+#. Cannot be both friend and virtual.
+#: cp/decl.c:7401
+#, gcc-internal-format
+msgid "virtual functions cannot be friends"
+msgstr "виртуелне функције не могу бити пријатељи"
+
+#: cp/decl.c:7405
+#, gcc-internal-format
+msgid "friend declaration not in class definition"
+msgstr "декларација пријатеља није у дефиницији класе"
+
+#: cp/decl.c:7407
+#, gcc-internal-format
+msgid "can't define friend function %qs in a local class definition"
+msgstr "не може се дефинисати пријатељска функција %qs у дефиницији локалне класе"
+
+#: cp/decl.c:7420
+#, gcc-internal-format
+msgid "destructors may not have parameters"
+msgstr "деструктори не могу имати параметре"
+
+#: cp/decl.c:7439 cp/decl.c:7446
+#, gcc-internal-format
+msgid "cannot declare reference to %q#T"
+msgstr "не може се декларисати упућивач на %q#T"
+
+#: cp/decl.c:7440
+#, gcc-internal-format
+msgid "cannot declare pointer to %q#T"
+msgstr "не може се декларисати показивач на %q#T"
+
+#: cp/decl.c:7448
+#, gcc-internal-format
+msgid "cannot declare pointer to %q#T member"
+msgstr "не може се декларисати показивач на члан %q#T"
+
+#: cp/decl.c:7487 cp/parser.c:11686
+#, gcc-internal-format
+msgid "%qD is a namespace"
+msgstr "%qD је именски простор"
+
+#: cp/decl.c:7526
+#, gcc-internal-format
+msgid "template-id %qD used as a declarator"
+msgstr "ид. шаблона %qD употребљен као декларатор"
+
+#: cp/decl.c:7576
+#, gcc-internal-format
+msgid "member functions are implicitly friends of their class"
+msgstr "чланске функције су имплицитно пријатељи својих класа"
+
+#: cp/decl.c:7578
+#, gcc-internal-format
+msgid "extra qualification %<%T::%> on member %qs"
+msgstr "сувишна одредба %<%T::%> на члану %qs"
+
+#: cp/decl.c:7589
+#, gcc-internal-format
+msgid "cannot define member function %<%T::%s%> within %<%T%>"
+msgstr "не може се дефинисати чланска функција %<%T::%s%> унутар %<%T%>"
+
+#: cp/decl.c:7590
+#, gcc-internal-format
+msgid "cannot declare member function %<%T::%s%> within %<%T%>"
+msgstr "не може се декларисати функција %<%T::%s%> унутар %<%T%>"
+
+#: cp/decl.c:7617
+#, gcc-internal-format
+msgid "cannot declare member %<%T::%s%> within %qT"
+msgstr "не може се декларисати члан %<%T::%s%> унутар %qT"
+
+#: cp/decl.c:7657
+#, gcc-internal-format
+msgid "data member may not have variably modified type %qT"
+msgstr "члански податак не може имати променљиво измењив тип %qT"
+
+#: cp/decl.c:7659
+#, gcc-internal-format
+msgid "parameter may not have variably modified type %qT"
+msgstr "параметар не може имати променљиво измењив тип %qT"
+
+#. [dcl.fct.spec] The explicit specifier shall only be used in
+#. declarations of constructors within a class definition.
+#: cp/decl.c:7667
+#, gcc-internal-format
+msgid "only declarations of constructors can be %<explicit%>"
+msgstr "само декларације конструктора могу имати %<explicit%>"
+
+#: cp/decl.c:7675
+#, gcc-internal-format
+msgid "non-member %qs cannot be declared %<mutable%>"
+msgstr "не-члан %qs не може бити декларисан %<mutable%>"
+
+#: cp/decl.c:7680
+#, gcc-internal-format
+msgid "non-object member %qs cannot be declared %<mutable%>"
+msgstr "не-објектни члан %qs не може бити декларисан %<mutable%>"
+
+#: cp/decl.c:7686
+#, gcc-internal-format
+msgid "function %qs cannot be declared %<mutable%>"
+msgstr "функција %qs не може бити декларисана %<mutable%>"
+
+#: cp/decl.c:7691
+#, gcc-internal-format
+msgid "static %qs cannot be declared %<mutable%>"
+msgstr "статичко %qs не може бити декларисано %<mutable%>"
+
+#: cp/decl.c:7696
+#, gcc-internal-format
+msgid "const %qs cannot be declared %<mutable%>"
+msgstr "константно %qs не може бити декларисано %<mutable%>"
+
+#: cp/decl.c:7716
+#, gcc-internal-format
+msgid "%Jtypedef name may not be a nested-name-specifier"
+msgstr "%Jиме за дефиницију типа не може бити угњеждени-именски-наводилац"
+
+#: cp/decl.c:7732
+#, gcc-internal-format
+msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
+msgstr "ИСО Ц++ забрањује угњеждени тип %qD истог имена као и обухватна класа"
+
+#: cp/decl.c:7831
+#, gcc-internal-format
+msgid "qualified function types cannot be used to declare %s functions"
+msgstr "одређени функцијски типови не могу бити коришћени за декларацију %s функција"
+
+#: cp/decl.c:7857
+#, gcc-internal-format
+msgid "type qualifiers specified for friend class declaration"
+msgstr "одредбе типа наведене уз декларацију пријатељске класе"
+
+#: cp/decl.c:7862
+#, gcc-internal-format
+msgid "%<inline%> specified for friend class declaration"
+msgstr "%<inline%> наведено уз декларацију пријатељске класе"
+
+#: cp/decl.c:7870
+#, gcc-internal-format
+msgid "template parameters cannot be friends"
+msgstr "шаблонски параметри не могу бити пријатељи"
+
+#: cp/decl.c:7872
+#, gcc-internal-format
+msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
+msgstr "декларација пријатеља захтева реч class, тј. %<friend class %T::%D%>"
+
+#: cp/decl.c:7876
+#, gcc-internal-format
+msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
+msgstr "декларација пријатеља захтева реч class, тј. %<friend %#T%>"
+
+#: cp/decl.c:7889
+#, gcc-internal-format
+msgid "trying to make class %qT a friend of global scope"
+msgstr "покушај да се класа %qT учини пријатељем глобалног досега"
+
+#: cp/decl.c:7900
+#, gcc-internal-format
+msgid "invalid qualifiers on non-member function type"
+msgstr "неисправне одредбе уз тип не-чланске функције"
+
+#: cp/decl.c:7919
+#, gcc-internal-format
+msgid "abstract declarator %qT used as declaration"
+msgstr "апстрактни декларатор %qT употребљен као декларација"
+
+#: cp/decl.c:7944
+#, gcc-internal-format
+msgid "cannot use %<::%> in parameter declaration"
+msgstr "не може се користити %<::%> у декларацији параметра"
+
+#. Something like struct S { int N::j; };
+#: cp/decl.c:7989
+#, gcc-internal-format
+msgid "invalid use of %<::%>"
+msgstr "неисправна употреба %<::%>"
+
+#: cp/decl.c:8004
+#, gcc-internal-format
+msgid "can't make %qD into a method -- not in a class"
+msgstr "%qD се не може направити методом — није у класи"
+
+#: cp/decl.c:8013
+#, gcc-internal-format
+msgid "function %qD declared virtual inside a union"
+msgstr "функција %qD декларисана виртуелном унутар уније"
+
+#: cp/decl.c:8022
+#, gcc-internal-format
+msgid "%qD cannot be declared virtual, since it is always static"
+msgstr "%qD не може бити декларисана виртуелном, јер је увек статичка"
+
+#: cp/decl.c:8040
+#, gcc-internal-format
+msgid "expected qualified name in friend declaration for destructor %qD"
+msgstr "очекивано одређено име у декларацији пријатеља за деструктор %qD"
+
+#: cp/decl.c:8050
+#, gcc-internal-format
+msgid "declaration of %qD as member of %qT"
+msgstr "декларација %qD као члана %qT"
+
+#: cp/decl.c:8126
+#, gcc-internal-format
+msgid "field %qD has incomplete type"
+msgstr "поље %qD има непотпун тип"
+
+#: cp/decl.c:8128
+#, gcc-internal-format
+msgid "name %qT has incomplete type"
+msgstr "име %qT има непотпун тип"
+
+#: cp/decl.c:8137
+#, gcc-internal-format
+msgid " in instantiation of template %qT"
+msgstr " у извођењу шаблона %qT"
+
+#: cp/decl.c:8147
+#, gcc-internal-format
+msgid "%qE is neither function nor member function; cannot be declared friend"
+msgstr "%qE није ни функција ни чланска функција; не може се декларисати пријатељем"
+
+#. An attempt is being made to initialize a non-static
+#. member. But, from [class.mem]:
+#.
+#. 4 A member-declarator can contain a
+#. constant-initializer only if it declares a static
+#. member (_class.static_) of integral or enumeration
+#. type, see _class.static.data_.
+#.
+#. This used to be relatively common practice, but
+#. the rest of the compiler does not correctly
+#. handle the initialization unless the member is
+#. static so we make it static below.
+#: cp/decl.c:8198
+#, gcc-internal-format
+msgid "ISO C++ forbids initialization of member %qD"
+msgstr "ИСО Ц++ забрањује успостављање члана %qD"
+
+#: cp/decl.c:8200
+#, gcc-internal-format
+msgid "making %qD static"
+msgstr "чини %qD статичним"
+
+#: cp/decl.c:8269
+#, gcc-internal-format
+msgid "storage class %<auto%> invalid for function %qs"
+msgstr "складишна класа %<auto%> неисправна за функцију %qs"
+
+#: cp/decl.c:8271
+#, gcc-internal-format
+msgid "storage class %<register%> invalid for function %qs"
+msgstr "складишна класа %<register%> неисправна за функцију %qs"
+
+#: cp/decl.c:8273
+#, gcc-internal-format
+msgid "storage class %<__thread%> invalid for function %qs"
+msgstr "складишна класа %<__thread%> неисправна за функцију %qs"
+
+#: cp/decl.c:8284
+#, gcc-internal-format
+msgid "%<static%> specified invalid for function %qs declared out of global scope"
+msgstr "%<static%> неисправно наведено за функцију %qs декларисану изван глобалног досега"
+
+#: cp/decl.c:8287
+#, gcc-internal-format
+msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
+msgstr "наводилац %<inline%> није исправан за функцију %qs декларисану изван глобалног досега"
+
+#: cp/decl.c:8295
+#, gcc-internal-format
+msgid "virtual non-class function %qs"
+msgstr "виртуелна не-класна функција %qs"
+
+#: cp/decl.c:8326
+#, gcc-internal-format
+msgid "cannot declare member function %qD to have static linkage"
+msgstr "не може се декларисати статичка повезивост за чланску функцију %qD"
+
+#. FIXME need arm citation
+#: cp/decl.c:8333
+#, gcc-internal-format
+msgid "cannot declare static function inside another function"
+msgstr "не може се декларисати статичка функција унутар друге функције"
+
+#: cp/decl.c:8362
+#, gcc-internal-format
+msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
+msgstr "%<static%> не може бити употребљено при дефинисању (насупрот декларисања) статичког чланског податка"
+
+#: cp/decl.c:8369
+#, gcc-internal-format
+msgid "static member %qD declared %<register%>"
+msgstr "статички члан %qD декларисан као %<register%>"
+
+#: cp/decl.c:8374
+#, gcc-internal-format
+msgid "cannot explicitly declare member %q#D to have extern linkage"
+msgstr "не може се експлицитно декларисати спољашња повезивост за члан %q#D"
+
+#: cp/decl.c:8512
+#, gcc-internal-format
+msgid "default argument for %q#D has type %qT"
+msgstr "подразумевани аргумент за %q#D има тип %qT"
+
+#: cp/decl.c:8515
+#, gcc-internal-format
+msgid "default argument for parameter of type %qT has type %qT"
+msgstr "подразумевани аргумент за параметар типа %qT има тип %qT"
+
+#: cp/decl.c:8532
+#, gcc-internal-format
+msgid "default argument %qE uses local variable %qD"
+msgstr "подразумевани аргумент %qE користи локалну променљиву %qD"
+
+#: cp/decl.c:8600
+#, gcc-internal-format
+msgid "parameter %qD invalidly declared method type"
+msgstr "параметар %qD неисправно декларише тип метода"
+
+#: cp/decl.c:8624
+#, gcc-internal-format
+msgid "parameter %qD includes %s to array of unknown bound %qT"
+msgstr "параметар %qD укључује %s у низ непознатих граница %qT"
+
+#. [class.copy]
+#.
+#. A declaration of a constructor for a class X is ill-formed if
+#. its first parameter is of type (optionally cv-qualified) X
+#. and either there are no other parameters or else all other
+#. parameters have default arguments.
+#.
+#. We *don't* complain about member template instantiations that
+#. have this form, though; they can occur as we try to decide
+#. what constructor to use during overload resolution. Since
+#. overload resolution will never prefer such a constructor to
+#. the non-template copy constructor (which is either explicitly
+#. or implicitly defined), there's no need to worry about their
+#. existence. Theoretically, they should never even be
+#. instantiated, but that's hard to forestall.
+#: cp/decl.c:8787
+#, gcc-internal-format
+msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
+msgstr "неисправан конструктор; вероватно сте мислили %<%T (const %T&)%>"
+
+#: cp/decl.c:8908
+#, gcc-internal-format
+msgid "%qD may not be declared within a namespace"
+msgstr "%qD не може бити декларисано унутар именског простора"
+
+#: cp/decl.c:8910
+#, gcc-internal-format
+msgid "%qD may not be declared as static"
+msgstr "%qD не може бити декларисано статичко"
+
+#: cp/decl.c:8931
+#, gcc-internal-format
+msgid "%qD must be a nonstatic member function"
+msgstr "%qD мора бити нестатичка чланска функција"
+
+#: cp/decl.c:8940
+#, gcc-internal-format
+msgid "%qD must be either a non-static member function or a non-member function"
+msgstr "%qD мора бити или нестатичка чланска функција или не-чланска функција"
+
+#: cp/decl.c:8963
+#, gcc-internal-format
+msgid "%qD must have an argument of class or enumerated type"
+msgstr "%qD мора имати аргумент класног или набројивог типа"
+
+#: cp/decl.c:9004
+#, gcc-internal-format
+msgid "conversion to %s%s will never use a type conversion operator"
+msgstr "претварање у %s%s никад неће користити оператор претварања типа"
+
+#. 13.4.0.3
+#: cp/decl.c:9012
+#, gcc-internal-format
+msgid "ISO C++ prohibits overloading operator ?:"
+msgstr "ИСО Ц++ забрањује препуњавање оператора ?:"
+
+#: cp/decl.c:9015
+#, gcc-internal-format
+msgid "%qD must not have variable number of arguments"
+msgstr "%qD не може имати променљив број аргумената"
+
+#: cp/decl.c:9064
+#, gcc-internal-format
+msgid "postfix %qD must take %<int%> as its argument"
+msgstr "постфиксно %qD мора узимати %<int%> као аргумент"
+
+#: cp/decl.c:9068
+#, gcc-internal-format
+msgid "postfix %qD must take %<int%> as its second argument"
+msgstr "постфиксно %qD мора узимати %<int%> као други аргумент"
+
+#: cp/decl.c:9075
+#, gcc-internal-format
+msgid "%qD must take either zero or one argument"
+msgstr "%qD мора узимати ниједан или један аргумент"
+
+#: cp/decl.c:9077
+#, gcc-internal-format
+msgid "%qD must take either one or two arguments"
+msgstr "%qD мора узимати један или два аргумента"
+
+#: cp/decl.c:9098
+#, gcc-internal-format
+msgid "prefix %qD should return %qT"
+msgstr "префиксно %qD треба да враћа %qT"
+
+#: cp/decl.c:9104
+#, gcc-internal-format
+msgid "postfix %qD should return %qT"
+msgstr "постфиксно %qD треба да враћа %qT"
+
+#: cp/decl.c:9113
+#, gcc-internal-format
+msgid "%qD must take %<void%>"
+msgstr "%qD мора узимати %<void%>"
+
+#: cp/decl.c:9115 cp/decl.c:9123
+#, gcc-internal-format
+msgid "%qD must take exactly one argument"
+msgstr "%qD мора узимати тачно један аргумент"
+
+#: cp/decl.c:9125
+#, gcc-internal-format
+msgid "%qD must take exactly two arguments"
+msgstr "%qD мора узимати тачно два аргумента"
+
+#: cp/decl.c:9133
+#, gcc-internal-format
+msgid "user-defined %qD always evaluates both arguments"
+msgstr "кориснички дефинисано %qD увек израчунава оба аргумента"
+
+#: cp/decl.c:9147
+#, gcc-internal-format
+msgid "%qD should return by value"
+msgstr "%qD треба да враћа по вредност"
+
+#: cp/decl.c:9159 cp/decl.c:9162
+#, gcc-internal-format
+msgid "%qD cannot have default arguments"
+msgstr "%qD не може имати подразумеване аргументе"
+
+#: cp/decl.c:9219
+#, gcc-internal-format
+msgid "using template type parameter %qT after %qs"
+msgstr "употреба параметра шаблонског типа %qT после %qs"
+
+#: cp/decl.c:9234
+#, gcc-internal-format
+msgid "using typedef-name %qD after %qs"
+msgstr "употреба typedef-имена %qD после %qs"
+
+#: cp/decl.c:9235
+#, gcc-internal-format
+msgid "%q+D has a previous declaration here"
+msgstr "%q+D има претходну декларацију овде"
+
+#: cp/decl.c:9243
+#, gcc-internal-format
+msgid "%qT referred to as %qs"
+msgstr "%qT се помиње као %qs"
+
+#: cp/decl.c:9244 cp/decl.c:9251
+#, gcc-internal-format
+msgid "%q+T has a previous declaration here"
+msgstr "%q+T има претходну декларацију овде"
+
+#: cp/decl.c:9250
+#, gcc-internal-format
+msgid "%qT referred to as enum"
+msgstr "%qT се помиње као набрајање"
+
+#. If a class template appears as elaborated type specifier
+#. without a template header such as:
+#.
+#. template <class T> class C {};
+#. void f(class C); // No template header here
+#.
+#. then the required template argument is missing.
+#: cp/decl.c:9265
+#, gcc-internal-format
+msgid "template argument required for %<%s %T%>"
+msgstr "потребан шаблонски аргумент за %<%s %T%>"
+
+#: cp/decl.c:9313 cp/name-lookup.c:2627
+#, gcc-internal-format
+msgid "%qD has the same name as the class in which it is declared"
+msgstr "%qD има исто име као и класа у којој је декларисано"
+
+#: cp/decl.c:9451
+#, gcc-internal-format
+msgid "use of enum %q#D without previous declaration"
+msgstr "употреба набрајања %q#D без претходне декларације"
+
+#: cp/decl.c:9469
+#, gcc-internal-format
+msgid "redeclaration of %qT as a non-template"
+msgstr "поновљена декларација %qT као не-шаблона"
+
+#: cp/decl.c:9576
+#, gcc-internal-format
+msgid "derived union %qT invalid"
+msgstr "неисправна изведена унија %qT"
+
+#: cp/decl.c:9582
+#, gcc-internal-format
+msgid "Java class %qT cannot have multiple bases"
+msgstr "јаванска класа %qT не може имати вишеструке основе"
+
+#: cp/decl.c:9590
+#, gcc-internal-format
+msgid "Java class %qT cannot have virtual bases"
+msgstr "јаванска класа %qT не може имати виртуелне основе"
+
+#: cp/decl.c:9609
+#, gcc-internal-format
+msgid "base type %qT fails to be a struct or class type"
+msgstr "тип основе %qT није класа или структура"
+
+#: cp/decl.c:9642
+#, gcc-internal-format
+msgid "recursive type %qT undefined"
+msgstr "недефинисан рекурзивни тип %qT"
+
+#: cp/decl.c:9644
+#, gcc-internal-format
+msgid "duplicate base type %qT invalid"
+msgstr "неисправан удвостручен тип основе %qT"
+
+#: cp/decl.c:9714
+#, gcc-internal-format
+msgid "multiple definition of %q#T"
+msgstr "вишеструке дефиниције %q#T"
+
+#: cp/decl.c:9715
+#, gcc-internal-format
+msgid "%Jprevious definition here"
+msgstr "%Jпретходна дефиниција је овде"
+
+#. DR 377
+#.
+#. IF no integral type can represent all the enumerator values, the
+#. enumeration is ill-formed.
+#: cp/decl.c:9854
+#, gcc-internal-format
+msgid "no integral type can represent all of the enumerator values for %qT"
+msgstr "ниједан интегрални тип не може представљати све вредности набрајача за %qT"
+
+#: cp/decl.c:9965
+#, gcc-internal-format
+msgid "enumerator value for %qD not integer constant"
+msgstr "вредност набрајача за %qD није целобројна константа"
+
+#: cp/decl.c:9993
+#, gcc-internal-format
+msgid "overflow in enumeration values at %qD"
+msgstr "преливање у вредностима набрајача код %qD"
+
+#: cp/decl.c:10068
+#, gcc-internal-format
+msgid "return type %q#T is incomplete"
+msgstr "повратни тип %q#T није потпун"
+
+#: cp/decl.c:10178 cp/typeck.c:6380
+#, gcc-internal-format
+msgid "%<operator=%> should return a reference to %<*this%>"
+msgstr "%<operator=%> треба да враћа упућивач на %<*this%>"
+
+#: cp/decl.c:10544
+#, gcc-internal-format
+msgid "parameter %qD declared void"
+msgstr "параметар %qD декларисан празним"
+
+#: cp/decl.c:11050
+#, gcc-internal-format
+msgid "invalid member function declaration"
+msgstr "неисправна декларација чланске функције"
+
+#: cp/decl.c:11065
+#, gcc-internal-format
+msgid "%qD is already defined in class %qT"
+msgstr "%qD је већ дефинисано у класи %qT"
+
+#: cp/decl.c:11275
+#, gcc-internal-format
+msgid "static member function %q#D declared with type qualifiers"
+msgstr "статичка чланска функција %q#D декларисана са одредбама типа"
+
+#: cp/decl2.c:271
+#, gcc-internal-format
+msgid "name missing for member function"
+msgstr "недостаје име за чланску функцију"
+
+#: cp/decl2.c:364 cp/decl2.c:378
+#, gcc-internal-format
+msgid "ambiguous conversion for array subscript"
+msgstr "двосмислено претварање за индекс низа"
+
+#: cp/decl2.c:372
+#, gcc-internal-format
+msgid "invalid types %<%T[%T]%> for array subscript"
+msgstr "неисправни типови %<%T[%T]%> за индекс низа"
+
+#: cp/decl2.c:415
+#, gcc-internal-format
+msgid "deleting array %q#D"
+msgstr "брише низ %q#D"
+
+#: cp/decl2.c:421
+#, gcc-internal-format
+msgid "type %q#T argument given to %<delete%>, expected pointer"
+msgstr "аргумент типа %q#T дат наредби %<delete%>, очекиван је показивач"
+
+#: cp/decl2.c:433
+#, gcc-internal-format
+msgid "cannot delete a function. Only pointer-to-objects are valid arguments to %<delete%>"
+msgstr "не може се обрисати функција. Само показивачи на објекте су исправни аргументи за %<delete%>"
+
+#: cp/decl2.c:441
+#, gcc-internal-format
+msgid "deleting %qT is undefined"
+msgstr "брисање %qT није дефинисано"
+
+#. 14.5.2.2 [temp.mem]
+#.
+#. A local class shall not have member templates.
+#: cp/decl2.c:477
+#, gcc-internal-format
+msgid "invalid declaration of member template %q#D in local class"
+msgstr "неисправна декларација чланског шаблона %q#D у локалној класи"
+
+#: cp/decl2.c:486
+#, gcc-internal-format
+msgid "invalid use of %<virtual%> in template declaration of %q#D"
+msgstr "неисправна употреба %<virtual%> у декларацији шаблона %q#D"
+
+#: cp/decl2.c:496 cp/pt.c:3024
+#, gcc-internal-format
+msgid "template declaration of %q#D"
+msgstr "декларација шаблона %q#D"
+
+#: cp/decl2.c:545
+#, gcc-internal-format
+msgid "Java method %qD has non-Java return type %qT"
+msgstr "јавански метод %qD има не-јавански повратни тип %qT"
+
+#: cp/decl2.c:561
+#, gcc-internal-format
+msgid "Java method %qD has non-Java parameter type %qT"
+msgstr "јавански метод %qD има не-јавански параметарски тип %qT"
+
+#: cp/decl2.c:666
+#, gcc-internal-format
+msgid "prototype for %q#D does not match any in class %qT"
+msgstr "прототип за %q#D не одговара ниједном у класи %qT"
+
+#: cp/decl2.c:763
+#, gcc-internal-format
+msgid "local class %q#T shall not have static data member %q#D"
+msgstr "локална класа %q#T неће имати статички члански податак %q#D"
+
+#: cp/decl2.c:771
+#, gcc-internal-format
+msgid "initializer invalid for static member with constructor"
+msgstr "успостављач неисправан за статички члан са конструктором"
+
+#: cp/decl2.c:774
+#, gcc-internal-format
+msgid "(an out of class initialization is required)"
+msgstr "(потребно је успостављање изван класе)"
+
+#: cp/decl2.c:842
+#, gcc-internal-format
+msgid "member %qD conflicts with virtual function table field name"
+msgstr "члан %qD коси се са именом поља у табели виртуелних функција"
+
+#: cp/decl2.c:861
+#, gcc-internal-format
+msgid "applying attributes to template parameters is not implemented"
+msgstr "примењивање атрибута на шаблонске параметре није имплементирано"
+
+#: cp/decl2.c:871
+#, gcc-internal-format
+msgid "%qD is already defined in %qT"
+msgstr "%qD је већ дефинисано у %qT"
+
+#: cp/decl2.c:892
+#, gcc-internal-format
+msgid "initializer specified for static member function %qD"
+msgstr "наведен успостављач за статичку чланску функцију %qD"
+
+#: cp/decl2.c:915
+#, gcc-internal-format
+msgid "field initializer is not constant"
+msgstr "успостављач поља није константа"
+
+#: cp/decl2.c:942
+#, gcc-internal-format
+msgid "%<asm%> specifiers are not permitted on non-static data members"
+msgstr "наводилац %<asm%> није дозвољен за нестатичке чланске податке"
+
+#: cp/decl2.c:990
+#, gcc-internal-format
+msgid "cannot declare %qD to be a bit-field type"
+msgstr "%qD се не може декларисати као тип битског поља"
+
+#: cp/decl2.c:1000
+#, gcc-internal-format
+msgid "cannot declare bit-field %qD with function type"
+msgstr "не може се декларисати битско поље %qD са функцијским типом"
+
+#: cp/decl2.c:1007
+#, gcc-internal-format
+msgid "%qD is already defined in the class %qT"
+msgstr "%qD је већ дефинисано у класи %qT"
+
+#: cp/decl2.c:1014
+#, gcc-internal-format
+msgid "static member %qD cannot be a bit-field"
+msgstr "статички члан %qD не може бити битско поље"
+
+#: cp/decl2.c:1059
+#, gcc-internal-format
+msgid "anonymous struct not inside named type"
+msgstr "анонимна структура није унутар именованог типа"
+
+#: cp/decl2.c:1142
+#, gcc-internal-format
+msgid "namespace-scope anonymous aggregates must be static"
+msgstr "анонимне скупине у досегу именског простора морају бити статичке"
+
+#: cp/decl2.c:1149
+#, gcc-internal-format
+msgid "anonymous union with no members"
+msgstr "анонимна унија без чланова"
+
+#: cp/decl2.c:1185
+#, gcc-internal-format
+msgid "%<operator new%> must return type %qT"
+msgstr "%<operator new%> мора враћати тип %qT"
+
+#: cp/decl2.c:1194
+#, gcc-internal-format
+msgid "%<operator new%> takes type %<size_t%> (%qT) as first parameter"
+msgstr "%<operator new%> узима тип %<size_t%> (%qT) као први параметар"
+
+#: cp/decl2.c:1223
+#, gcc-internal-format
+msgid "%<operator delete%> must return type %qT"
+msgstr "%<operator delete%> мора враћати тип %qT"
+
+#: cp/decl2.c:1232
+#, gcc-internal-format
+msgid "%<operator delete%> takes type %qT as first parameter"
+msgstr "%<operator delete%> узима тип %<size_t%> (%qT) као први параметар"
+
+#: cp/decl2.c:3065
+#, gcc-internal-format
+msgid "inline function %q+D used but never defined"
+msgstr "уткана функција %q+D употребљена али недефинисана"
+
+#: cp/decl2.c:3219
+#, gcc-internal-format
+msgid "default argument missing for parameter %P of %q+#D"
+msgstr "недостаје подразумевани аргумент за параметар %P од %q+#D"
+
+#. Can't throw a reference.
+#: cp/except.c:267
+#, gcc-internal-format
+msgid "type %qT is disallowed in Java %<throw%> or %<catch%>"
+msgstr "тип %qT је забрањен у јаванским %<throw%> и %<catch%>"
+
+#: cp/except.c:278
+#, gcc-internal-format
+msgid "call to Java %<catch%> or %<throw%> with %<jthrowable%> undefined"
+msgstr "позив јаванског %<catch%> или %<throw%> без дефинисаног %<jthrowable%>"
+
+#. Thrown object must be a Throwable.
+#: cp/except.c:285
+#, gcc-internal-format
+msgid "type %qT is not derived from %<java::lang::Throwable%>"
+msgstr "тип %qT није изведен из %<java::lang::Throwable%>"
+
+#: cp/except.c:348
+#, gcc-internal-format
+msgid "mixing C++ and Java catches in a single translation unit"
+msgstr "мешање Ц++ и јаванских хватања у једној истој преводилачкој јединици"
+
+#: cp/except.c:608
+#, gcc-internal-format
+msgid "throwing NULL, which has integral, not pointer type"
+msgstr "баца се NULL, које има интегрални, а не показивачки тип"
+
+#: cp/except.c:631 cp/init.c:1929
+#, gcc-internal-format
+msgid "%qD should never be overloaded"
+msgstr "%qD не треба никада препуњавати"
+
+#: cp/except.c:698
+#, gcc-internal-format
+msgid " in thrown expression"
+msgstr " у баченом изразу"
+
+#: cp/except.c:846
+#, gcc-internal-format
+msgid "expression %qE of abstract class type %qT cannot be used in throw-expression"
+msgstr "израз %qE апстрактног класног типа %qT не може се употребити у изразу за бацање"
+
+#: cp/except.c:931
+#, gcc-internal-format
+msgid "%Hexception of type %qT will be caught"
+msgstr "%Hбиће ухваћен изузетак типа %qT"
+
+#: cp/except.c:933
+#, gcc-internal-format
+msgid "%H by earlier handler for %qT"
+msgstr "%H дејством ранијег руковаоца за %qT"
+
+#: cp/except.c:963
+#, gcc-internal-format
+msgid "%H%<...%> handler must be the last handler for its try block"
+msgstr "%Hруковалац %<...%> мора бити последњи у свом блоку покушаја"
+
+#: cp/friend.c:152
+#, gcc-internal-format
+msgid "%qD is already a friend of class %qT"
+msgstr "%qD је већ пријатељска класи %qT"
+
+#: cp/friend.c:228
+#, gcc-internal-format
+msgid "invalid type %qT declared %<friend%>"
+msgstr "неисправан тип %qT декларисан пријатељским"
+
+#. [temp.friend]
+#. Friend declarations shall not declare partial
+#. specializations.
+#. template <class U> friend class T::X<U>;
+#. [temp.friend]
+#. Friend declarations shall not declare partial
+#. specializations.
+#: cp/friend.c:244 cp/friend.c:274
+#, gcc-internal-format
+msgid "partial specialization %qT declared %<friend%>"
+msgstr "делимична специјализација %qT декларисана пријатељском"
+
+#: cp/friend.c:252
+#, gcc-internal-format
+msgid "class %qT is implicitly friends with itself"
+msgstr "класа %qT је имплицитно сама себи пријатељска"
+
+#: cp/friend.c:310
+#, gcc-internal-format
+msgid "%qT is not a member of %qT"
+msgstr "%qT није члан из %qT"
+
+#: cp/friend.c:315
+#, gcc-internal-format
+msgid "%qT is not a member class template of %qT"
+msgstr "%qT није члански шаблон класе из %qT"
+
+#: cp/friend.c:323
+#, gcc-internal-format
+msgid "%qT is not a nested class of %qT"
+msgstr "%qT није угњеждена класа у %qT"
+
+#. template <class T> friend class T;
+#: cp/friend.c:336
+#, gcc-internal-format
+msgid "template parameter type %qT declared %<friend%>"
+msgstr "шаблонски параметарски тип %qT декларисан пријатељским"
+
+#. template <class T> friend class A; where A is not a template
+#: cp/friend.c:342
+#, gcc-internal-format
+msgid "%q#T is not a template"
+msgstr "%q#T није шаблон"
+
+#: cp/friend.c:364
+#, gcc-internal-format
+msgid "%qD is already a friend of %qT"
+msgstr "%qD је већ пријатељ од %qT"
+
+#: cp/friend.c:373
+#, gcc-internal-format
+msgid "%qT is already a friend of %qT"
+msgstr "%qT је већ пријатељ од %qT"
+
+#: cp/friend.c:497
+#, gcc-internal-format
+msgid "member %qD declared as friend before type %qT defined"
+msgstr "члан %qD декларисан као пријатељ пре него што је тип %qT дефинисан"
+
+#: cp/friend.c:553
+#, gcc-internal-format
+msgid "friend declaration %q#D declares a non-template function"
+msgstr "декларација пријатеља %q#D декларише нешаблонску функцију"
+
+#: cp/friend.c:557
+#, gcc-internal-format
+msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning"
+msgstr "(ако нисте ово намеравали, проверите да ли је шаблон функције већ декларисан, и додајте овде <> после имена функције) -Wno-non-template-friend искључује ово упозорење"
+
+#: cp/init.c:327
+#, gcc-internal-format
+msgid "%J%qD should be initialized in the member initialization list"
+msgstr "%J%qD треба да се успостави у листи успостављања чланова"
+
+#: cp/init.c:375
+#, gcc-internal-format
+msgid "%Jdefault-initialization of %q#D, which has reference type"
+msgstr "%Jподразумевано успостављање %q#D, које је упућивачког типа"
+
+#: cp/init.c:381
+#, gcc-internal-format
+msgid "%Juninitialized reference member %qD"
+msgstr "%Jнеуспостављени упућивачки члан %qD"
+
+#: cp/init.c:384
+#, gcc-internal-format
+msgid "%Juninitialized member %qD with %<const%> type %qT"
+msgstr "%Jнеуспостављени члан %qD са %<const%> типом %qT"
+
+#: cp/init.c:527
+#, gcc-internal-format
+msgid "%q+D will be initialized after"
+msgstr "%q+D ће бити успостављено после"
+
+#: cp/init.c:530
+#, gcc-internal-format
+msgid "base %qT will be initialized after"
+msgstr "основно %qT ће бити успостављено после"
+
+#: cp/init.c:533
+#, gcc-internal-format
+msgid " %q+#D"
+msgstr " %q+#D"
+
+#: cp/init.c:535
+#, gcc-internal-format
+msgid " base %qT"
+msgstr " основног %qT"
+
+#: cp/init.c:536
+#, gcc-internal-format
+msgid "%J when initialized here"
+msgstr "%J када се успостави овде"
+
+#: cp/init.c:552
+#, gcc-internal-format
+msgid "%Jmultiple initializations given for %qD"
+msgstr "%Jвишеструка успостављања дата за %qD"
+
+#: cp/init.c:555
+#, gcc-internal-format
+msgid "%Jmultiple initializations given for base %qT"
+msgstr "%Jвишеструка успостављања дата за основно %qT"
+
+#: cp/init.c:622
+#, gcc-internal-format
+msgid "%Jinitializations for multiple members of %qT"
+msgstr "%Jуспостављања за више чланова из %qT"
+
+#: cp/init.c:684
+#, gcc-internal-format
+msgid "%Jbase class %q#T should be explicitly initialized in the copy constructor"
+msgstr "%Jосновна класа %q#T треба да се експлицитно успостави у копи-конструктору"
+
+#: cp/init.c:908 cp/init.c:927
+#, gcc-internal-format
+msgid "class %qT does not have any field named %qD"
+msgstr "класа %qT нема поље по имену %qD"
+
+#: cp/init.c:914
+#, gcc-internal-format
+msgid "%q#D is a static data member; it can only be initialized at its definition"
+msgstr "%q#D је статички члански податак; може се успостављати само при дефинисању"
+
+#: cp/init.c:921
+#, gcc-internal-format
+msgid "%q#D is not a non-static data member of %qT"
+msgstr "%q#D је нестатички члански податак у %qT"
+
+#: cp/init.c:960
+#, gcc-internal-format
+msgid "unnamed initializer for %qT, which has no base classes"
+msgstr "неименовани успостављач за %qT, која нема основних класа"
+
+#: cp/init.c:968
+#, gcc-internal-format
+msgid "unnamed initializer for %qT, which uses multiple inheritance"
+msgstr "неименовани успостављач за %qT, која користи вишеструко наслеђивање"
+
+#: cp/init.c:1014
+#, gcc-internal-format
+msgid "%qD is both a direct base and an indirect virtual base"
+msgstr "%qD је и непосредна основа и посредна виртуелна основа"
+
+#: cp/init.c:1022
+#, gcc-internal-format
+msgid "type %qT is not a direct or virtual base of %qT"
+msgstr "тип %qT није непосредна или виртуелна основа од %qT"
+
+#: cp/init.c:1025
+#, gcc-internal-format
+msgid "type %qT is not a direct base of %qT"
+msgstr "тип %qT није непосредна основа од %qT"
+
+#: cp/init.c:1105
+#, gcc-internal-format
+msgid "bad array initializer"
+msgstr "лош успостављач низа"
+
+#: cp/init.c:1304
+#, gcc-internal-format
+msgid "%qT is not an aggregate type"
+msgstr "%qT није скупински тип"
+
+#: cp/init.c:1398
+#, gcc-internal-format
+msgid "qualified type %qT does not match destructor name %<~%T%>"
+msgstr "одређени тип %qT не одговара имену деструктора %<~%T%>"
+
+#: cp/init.c:1406
+#, gcc-internal-format
+msgid "incomplete type %qT does not have member %qD"
+msgstr "непотпун тип %qT нема члан %qD"
+
+#: cp/init.c:1425
+#, gcc-internal-format
+msgid "%qD is not a member of type %qT"
+msgstr "%qD није члан типа %qT"
+
+#: cp/init.c:1444
+#, gcc-internal-format
+msgid "invalid pointer to bit-field %qD"
+msgstr "неисправан показивач на битско поље %qD"
+
+#: cp/init.c:1546
+#, gcc-internal-format
+msgid "invalid use of non-static member function %qD"
+msgstr "неисправна употреба нестатичке чланске функције %qD"
+
+#: cp/init.c:1552
+#, gcc-internal-format
+msgid "invalid use of non-static data member %qD"
+msgstr "неисправна употреба нестатичког чланског податка %qD"
+
+#: cp/init.c:1687
+#, gcc-internal-format
+msgid "size in array new must have integral type"
+msgstr "величина у низовном new мора бити интегралног типа"
+
+#: cp/init.c:1690
+#, gcc-internal-format
+msgid "zero size array reserves no space"
+msgstr "низ нулте величине не резервише простор"
+
+#: cp/init.c:1698
+#, gcc-internal-format
+msgid "new cannot be applied to a reference type"
+msgstr "new се не може применити на упућивачки тип"
+
+#: cp/init.c:1704
+#, gcc-internal-format
+msgid "new cannot be applied to a function type"
+msgstr "new се не може применити на функцијиски тип"
+
+#: cp/init.c:1736
+#, gcc-internal-format
+msgid "call to Java constructor, while %<jclass%> undefined"
+msgstr "позив јаванском конструктору док је %<jclass%> недефинисано"
+
+#: cp/init.c:1752
+#, gcc-internal-format
+msgid "can't find class$"
+msgstr "не могу да нађем class$"
+
+#: cp/init.c:1880
+#, gcc-internal-format
+msgid "invalid type %<void%> for new"
+msgstr "неисправан тип %<void%> за new"
+
+#: cp/init.c:1890
+#, gcc-internal-format
+msgid "uninitialized const in %<new%> of %q#T"
+msgstr "неуспостављена константа у %<new%> за %q#T"
+
+#: cp/init.c:1924
+#, gcc-internal-format
+msgid "call to Java constructor with %qs undefined"
+msgstr "позив јаванском конструктору док је %qs недефинисано"
+
+#: cp/init.c:1964
+#, gcc-internal-format
+msgid "no suitable %qD found in class %qT"
+msgstr "ниједно погодно %qD није нађено у класи %qT"
+
+#: cp/init.c:1969
+#, gcc-internal-format
+msgid "request for member %qD is ambiguous"
+msgstr "двосмислен захтев за чланом %qD"
+
+#: cp/init.c:2109
+#, gcc-internal-format
+msgid "ISO C++ forbids initialization in array new"
+msgstr "ИСО Ц++ забрањује успостављање у низовном new"
+
+#: cp/init.c:2597
+#, gcc-internal-format
+msgid "initializer ends prematurely"
+msgstr "успостављач се прерано окончава"
+
+#: cp/init.c:2652
+#, gcc-internal-format
+msgid "cannot initialize multi-dimensional array with initializer"
+msgstr "у успостављачу се не могу успостављати вишедимензиони низови"
+
+#: cp/init.c:2813
+#, gcc-internal-format
+msgid "possible problem detected in invocation of delete operator:"
+msgstr "откривен могућ проблем у позиву оператора delete:"
+
+#: cp/init.c:2816
+#, gcc-internal-format
+msgid "neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined."
+msgstr "ни деструктор, ни класи посебан оператор delete неће бити позван, чак и ако су декларисани када се класа дефинише."
+
+#: cp/init.c:2837
+#, gcc-internal-format
+msgid "unknown array size in delete"
+msgstr "непозната величина низа за delete"
+
+#: cp/init.c:3070
+#, gcc-internal-format
+msgid "type to vector delete is neither pointer or array type"
+msgstr "тип уз векторско delete није ни показивачки ни низовни"
+
+#: cp/lex.c:468
+#, gcc-internal-format
+msgid "junk at end of #pragma %s"
+msgstr "смеће на крају #pragma %s"
+
+#: cp/lex.c:475
+#, gcc-internal-format
+msgid "invalid #pragma %s"
+msgstr "неисправна #pragma %s"
+
+#: cp/lex.c:483
+#, gcc-internal-format
+msgid "#pragma vtable no longer supported"
+msgstr "#pragma vtable више није подржано"
+
+#: cp/lex.c:562
+#, gcc-internal-format
+msgid "#pragma implementation for %qs appears after file is included"
+msgstr "#pragma implementation за %qs појављује се пошто је датотека укључена"
+
+#: cp/lex.c:587
+#, gcc-internal-format
+msgid "junk at end of #pragma GCC java_exceptions"
+msgstr "смеће на крају #pragma GCC java_exceptions"
+
+#: cp/lex.c:601
+#, gcc-internal-format
+msgid "%qD not defined"
+msgstr "%qD није дефинисано"
+
+#: cp/lex.c:605
+#, gcc-internal-format
+msgid "%qD was not declared in this scope"
+msgstr "%qD није декларисано у овом досегу"
+
+#. In a template, it is invalid to write "f()" or "f(3)" if no
+#. declaration of "f" is available. Historically, G++ and most
+#. other compilers accepted that usage since they deferred all name
+#. lookup until instantiation time rather than doing unqualified
+#. name lookup at template definition time; explain to the user what
+#. is going wrong.
+#.
+#. Note that we have the exact wording of the following message in
+#. the manual (trouble.texi, node "Name lookup"), so they need to
+#. be kept in synch.
+#: cp/lex.c:642
+#, gcc-internal-format
+msgid "there are no arguments to %qD that depend on a template parameter, so a declaration of %qD must be available"
+msgstr "%qD нема аргументе који зависе од шаблонског параметра, тако да декларација %qD мора бити доступна"
+
+#: cp/lex.c:651
+#, gcc-internal-format
+msgid "(if you use %<-fpermissive%>, G++ will accept your code, but allowing the use of an undeclared name is deprecated)"
+msgstr "(ако употребите %<-fpermissive%>, Г++ ће прихватити овакав кôд, али дозвољавање недекларисаног имена је превазиђено)"
+
+#: cp/mangle.c:2139
+#, gcc-internal-format
+msgid "call_expr cannot be mangled due to a defect in the C++ ABI"
+msgstr "call_expr не може бити запетљано услед мане у АБИју Ц++а"
+
+#: cp/mangle.c:2147
+#, gcc-internal-format
+msgid "zero-operand casts cannot be mangled due to a defect in the C++ ABI"
+msgstr "претапања без операнада не могу бити запетљана услед мане у АБИју Ц++а"
+
+#: cp/mangle.c:2197
+#, gcc-internal-format
+msgid "omitted middle operand to %<?:%> operand cannot be mangled"
+msgstr "изостављени средњи операнд у %<?:%> не може бити запетљан"
+
+#: cp/mangle.c:2507
+#, gcc-internal-format
+msgid "the mangled name of %qD will change in a future version of GCC"
+msgstr "запетљано име за %qD биће измењено у будућим верзијама ГЦЦа"
+
+#: cp/method.c:457
+#, gcc-internal-format
+msgid "generic thunk code fails for method %q#D which uses %<...%>"
+msgstr "генерички кôд смрза не пролази за метод %q#D који користи %<...%>"
+
+#: cp/method.c:693
+#, gcc-internal-format
+msgid "non-static const member %q#D, can't use default assignment operator"
+msgstr "нестатички константни члан %q#D, не може се користити подразумевани оператор доделе"
+
+#: cp/method.c:699
+#, gcc-internal-format
+msgid "non-static reference member %q#D, can't use default assignment operator"
+msgstr "нестатички упућивачки члан %q#D, не може се користити подразумевани оператор доделе"
+
+#: cp/method.c:811
+#, gcc-internal-format
+msgid "%Hsynthesized method %qD first required here "
+msgstr "%Hсамосачињени метод %qD прво захтеван овде "
+
+#: cp/method.c:1140
+#, gcc-internal-format
+msgid "vtable layout for class %qT may not be ABI-compliantand may change in a future version of GCC due to implicit virtual destructor"
+msgstr "распоред в-табеле за класу %qT можда не поштује АБИ, и може се изменити у будућим верзијама ГЦЦа услед имплицитног виртуелног деструктора"
+
+#: cp/name-lookup.c:697
+#, gcc-internal-format
+msgid "redeclaration of %<wchar_t%> as %qT"
+msgstr "поновљена декларација %<wchar_t%> као %qT"
+
+#. A redeclaration of main, but not a duplicate of the
+#. previous one.
+#.
+#. [basic.start.main]
+#.
+#. This function shall not be overloaded.
+#: cp/name-lookup.c:727
+#, gcc-internal-format
+msgid "invalid redeclaration of %q+D"
+msgstr "неисправна поновљена декларација %q+D"
+
+#: cp/name-lookup.c:728
+#, gcc-internal-format
+msgid "as %qD"
+msgstr "као %qD"
+
+#: cp/name-lookup.c:816
+#, gcc-internal-format
+msgid "type mismatch with previous external decl of %q#D"
+msgstr "неслагање типа са претходном спољашњом декларацијом %q#D"
+
+#: cp/name-lookup.c:817
+#, gcc-internal-format
+msgid "previous external decl of %q+#D"
+msgstr "претходна спољашња декларација %q+#D"
+
+#: cp/name-lookup.c:908
+#, gcc-internal-format
+msgid "extern declaration of %q#D doesn't match"
+msgstr "спољашња декларација %q#D не слаже се"
+
+#: cp/name-lookup.c:909
+#, gcc-internal-format
+msgid "global declaration %q+#D"
+msgstr "глобална декларација %q+#D"
+
+#: cp/name-lookup.c:946 cp/name-lookup.c:953
+#, gcc-internal-format
+msgid "declaration of %q#D shadows a parameter"
+msgstr "декларација %q#D заклања параметар"
+
+#. Location of previous decl is not useful in this case.
+#: cp/name-lookup.c:978
+#, gcc-internal-format
+msgid "declaration of %qD shadows a member of 'this'"
+msgstr "декларација %qD заклања члан у „this“"
+
+#: cp/name-lookup.c:984
+#, gcc-internal-format
+msgid "declaration of %qD shadows a previous local"
+msgstr "декларација %qD заклања претходну локалну"
+
+#: cp/name-lookup.c:991
+#, gcc-internal-format
+msgid "declaration of %qD shadows a global declaration"
+msgstr "декларација %qD заклања глобалну декларацију"
+
+#: cp/name-lookup.c:1114
+#, gcc-internal-format
+msgid "name lookup of %qD changed"
+msgstr "измењена потрага имена за %qD"
+
+#: cp/name-lookup.c:1115
+#, gcc-internal-format
+msgid " matches this %q+D under ISO standard rules"
+msgstr " одговара овом %q+D по правилима ИСО стандарда"
+
+#: cp/name-lookup.c:1117
+#, gcc-internal-format
+msgid " matches this %q+D under old rules"
+msgstr " одговара овом %q+D по старим правилима"
+
+#: cp/name-lookup.c:1135 cp/name-lookup.c:1143
+#, gcc-internal-format
+msgid "name lookup of %qD changed for new ISO %<for%> scoping"
+msgstr "измењена потрага %qD према новом досезању ИСО %<for%>"
+
+#: cp/name-lookup.c:1137
+#, gcc-internal-format
+msgid " cannot use obsolete binding at %q+D because it has a destructor"
+msgstr " не може се користити застарело везивање код %q+D јер има деструктор"
+
+#: cp/name-lookup.c:1145
+#, gcc-internal-format
+msgid " using obsolete binding at %q+D"
+msgstr " користи се застарело везивање код %q+D"
+
+#: cp/name-lookup.c:1198
+#, gcc-internal-format
+msgid "%s %s(%E) %p %d\n"
+msgstr "%s %s(%E) %p %d\n"
+
+#: cp/name-lookup.c:1201
+#, gcc-internal-format
+msgid "%s %s %p %d\n"
+msgstr "%s %s %p %d\n"
+
+#: cp/name-lookup.c:1327
+#, gcc-internal-format
+msgid "XXX is_class_level != (current_scope == class_scope)\n"
+msgstr "XXX is_class_level != (current_scope == class_scope)\n"
+
+#: cp/name-lookup.c:1885
+#, gcc-internal-format
+msgid "%q#D hides constructor for %q#T"
+msgstr "%q#D скрива конструктор за %q#T"
+
+#: cp/name-lookup.c:1901
+#, gcc-internal-format
+msgid "%q#D conflicts with previous using declaration %q#D"
+msgstr "%q#D се коси са претходном декларацијом употребе %q#D"
+
+#: cp/name-lookup.c:1921
+#, gcc-internal-format
+msgid "previous non-function declaration %q+#D"
+msgstr "претходна нефункцијска декларација %q+#D"
+
+#: cp/name-lookup.c:1922
+#, gcc-internal-format
+msgid "conflicts with function declaration %q#D"
+msgstr "коси се са функцијском декларацијом %q#D"
+
+#. It's a nested name with template parameter dependent scope.
+#. This can only be using-declaration for class member.
+#: cp/name-lookup.c:2000 cp/name-lookup.c:2025
+#, gcc-internal-format
+msgid "%qT is not a namespace"
+msgstr "%qT није именски простор"
+
+#. 7.3.3/5
+#. A using-declaration shall not name a template-id.
+#: cp/name-lookup.c:2010
+#, gcc-internal-format
+msgid "a using-declaration cannot specify a template-id. Try %<using %D%>"
+msgstr "декларација употребе не може навести ид. шаблона. Покушајте %<using %D%>"
+
+#: cp/name-lookup.c:2017
+#, gcc-internal-format
+msgid "namespace %qD not allowed in using-declaration"
+msgstr "именски простор %qD није дозвоље у декларацији употребе"
+
+#: cp/name-lookup.c:2053
+#, gcc-internal-format
+msgid "%qD not declared"
+msgstr "%qD није декларисано"
+
+#: cp/name-lookup.c:2074 cp/name-lookup.c:2111 cp/name-lookup.c:2145
+#, gcc-internal-format
+msgid "%qD is already declared in this scope"
+msgstr "%qD је већ декларисано у овом досегу"
+
+#: cp/name-lookup.c:2151
+#, gcc-internal-format
+msgid "using declaration %qD introduced ambiguous type %qT"
+msgstr "декларација употребе %qD уводи двосмислен тип %qT"
+
+#: cp/name-lookup.c:2743
+#, gcc-internal-format
+msgid "using-declaration for non-member at class scope"
+msgstr "декларација употребе за не-члан у досегу класе"
+
+#: cp/name-lookup.c:2750
+#, gcc-internal-format
+msgid "%<%T::%D%> names destructor"
+msgstr "%<%T::%D%> именује деструктор"
+
+#: cp/name-lookup.c:2755
+#, gcc-internal-format
+msgid "%<%T::%D%> names constructor"
+msgstr "%<%T::%D%> именује конструктор"
+
+#: cp/name-lookup.c:2760
+#, gcc-internal-format
+msgid "%<%T::%D%> names constructor in %qT"
+msgstr "%<%T::%D%> именује конструктор у %qT"
+
+#: cp/name-lookup.c:2809
+#, gcc-internal-format
+msgid "no members matching %<%T::%D%> in %q#T"
+msgstr "нема члана који одговара %<%T::%D%> у %q#T"
+
+#: cp/name-lookup.c:2877
+#, gcc-internal-format
+msgid "declaration of %qD not in a namespace surrounding %qD"
+msgstr "декларација %qD није у именском простору који окружује %qD"
+
+#: cp/name-lookup.c:2885
+#, gcc-internal-format
+msgid "explicit qualification in declaration of %qD"
+msgstr "експлицитна одредба у декларацији %qD"
+
+#: cp/name-lookup.c:2925
+#, gcc-internal-format
+msgid "%qD should have been declared inside %qD"
+msgstr "%qD треба да је декларисано унутар %qD"
+
+#: cp/name-lookup.c:2987
+#, gcc-internal-format
+msgid "namespace alias %qD not allowed here, assuming %qD"
+msgstr "алијас именског простора %qD није дозвољен овде, претпостављам %qD"
+
+#: cp/name-lookup.c:3294
+#, gcc-internal-format
+msgid "strong using only meaningful at namespace scope"
+msgstr "јако using има смисла само у досегу именског простора"
+
+#: cp/name-lookup.c:3301
+#, gcc-internal-format
+msgid "%qD attribute directive ignored"
+msgstr "атрибутска директива %qD игнорисана"
+
+#: cp/name-lookup.c:3451
+#, gcc-internal-format
+msgid "%qD denotes an ambiguous type"
+msgstr "%qD означава двосмислен тип"
+
+#: cp/name-lookup.c:3452
+#, gcc-internal-format
+msgid "%J first type here"
+msgstr "%J први тип овде"
+
+#: cp/name-lookup.c:3453
+#, gcc-internal-format
+msgid "%J other type here"
+msgstr "%J други тип овде"
+
+#. This happens for A::B where B is a template, and there are no
+#. template arguments.
+#: cp/name-lookup.c:3563 cp/parser.c:4497 cp/typeck.c:1807
+#, gcc-internal-format
+msgid "invalid use of %qD"
+msgstr "неисправна употреба %qD"
+
+#: cp/name-lookup.c:3603
+#, gcc-internal-format
+msgid "%<%D::%D%> is not a template"
+msgstr "%<%D::%D%> није шаблон"
+
+#: cp/name-lookup.c:3618
+#, gcc-internal-format
+msgid "%qD undeclared in namespace %qD"
+msgstr "%qD није декларисано у именском простору %qD"
+
+#: cp/name-lookup.c:4255
+#, gcc-internal-format
+msgid "%q+D is not a function,"
+msgstr "%q+D није функција,"
+
+#: cp/name-lookup.c:4256
+#, gcc-internal-format
+msgid " conflict with %q+D"
+msgstr " коси се са %q+D"
+
+#: cp/name-lookup.c:5090
+#, gcc-internal-format
+msgid "XXX entering pop_everything ()\n"
+msgstr "XXX entering pop_everything ()\n"
+
+#: cp/name-lookup.c:5099
+#, gcc-internal-format
+msgid "XXX leaving pop_everything ()\n"
+msgstr "XXX leaving pop_everything ()\n"
+
+#: cp/parser.c:1875
+#, gcc-internal-format
+msgid "minimum/maximum operators are deprecated"
+msgstr "оператори минимума/максимума су превазиђени"
+
+#: cp/parser.c:1895
+#, gcc-internal-format
+msgid "%<#pragma%> is not allowed here"
+msgstr "%<#pragma%> није дозвољена овде"
+
+#: cp/parser.c:1924
+#, gcc-internal-format
+msgid "%<%D::%D%> has not been declared"
+msgstr "%<%D::%D%> није декларисано"
+
+#: cp/parser.c:1927 cp/semantics.c:2405
+#, gcc-internal-format
+msgid "%<::%D%> has not been declared"
+msgstr "%<::%D%> није декларисано"
+
+#: cp/parser.c:1930
+#, gcc-internal-format
+msgid "request for member %qD in non-class type %qT"
+msgstr "захтев за члан %qD у некласном типу %qT"
+
+#: cp/parser.c:1933
+#, gcc-internal-format
+msgid "%<%T::%D%> has not been declared"
+msgstr "%<%T::%D%> није декларисано"
+
+#: cp/parser.c:1936
+#, gcc-internal-format
+msgid "%qD has not been declared"
+msgstr "%qD није декларисано"
+
+#: cp/parser.c:1939
+#, gcc-internal-format
+msgid "%<%D::%D%> %s"
+msgstr "%<%D::%D%> %s"
+
+#: cp/parser.c:1941
+#, gcc-internal-format
+msgid "%<::%D%> %s"
+msgstr "%<::%D%> %s"
+
+#: cp/parser.c:1943
+#, gcc-internal-format
+msgid "%qD %s"
+msgstr "%qD %s"
+
+#: cp/parser.c:1995
+#, gcc-internal-format
+msgid "new types may not be defined in a return type"
+msgstr "не могу се дефинисати нови типови у повратном типу"
+
+#: cp/parser.c:1996
+#, gcc-internal-format
+msgid "(perhaps a semicolon is missing after the definition of %qT)"
+msgstr "(можда недостаје тачка-зарез после дефиниције %qT)"
+
+#: cp/parser.c:2015 cp/parser.c:3698 cp/pt.c:4402
+#, gcc-internal-format
+msgid "%qT is not a template"
+msgstr "%qT није шаблон"
+
+#: cp/parser.c:2017
+#, gcc-internal-format
+msgid "%qE is not a template"
+msgstr "%qE није шаблон"
+
+#: cp/parser.c:2019
+#, gcc-internal-format
+msgid "invalid template-id"
+msgstr "неисправан ид. шаблона"
+
+#: cp/parser.c:2048
+#, gcc-internal-format
+msgid "%s cannot appear in a constant-expression"
+msgstr "%s не може да се јави у константном изразу"
+
+#: cp/parser.c:2073
+#, gcc-internal-format
+msgid "invalid use of template-name %qE without an argument list"
+msgstr "неисправна употреба шаблонског имена %qE без листе аргумената"
+
+#. Issue an error message.
+#: cp/parser.c:2078
+#, gcc-internal-format
+msgid "%qE does not name a type"
+msgstr "%qE не именује тип"
+
+#: cp/parser.c:2110
+#, gcc-internal-format
+msgid "(perhaps %<typename %T::%E%> was intended)"
+msgstr "(можда је намера била %<typename %T::%E%>)"
+
+#: cp/parser.c:2125
+#, gcc-internal-format
+msgid "%qE in namespace %qE does not name a type"
+msgstr "%qE у именском простору %qE не именује тип"
+
+#: cp/parser.c:2128
+#, gcc-internal-format
+msgid "%qE in class %qT does not name a type"
+msgstr "%qE у класи %qT не именује тип"
+
+#: cp/parser.c:2848
+#, gcc-internal-format
+msgid "ISO C++ forbids braced-groups within expressions"
+msgstr "ИСО Ц++ забрањује витичасто заграђене групе унутар израза"
+
+#: cp/parser.c:2857
+#, gcc-internal-format
+msgid "statement-expressions are allowed only inside functions"
+msgstr "наредбени изрази дозвољени су само унутар функција"
+
+#: cp/parser.c:2908
+#, gcc-internal-format
+msgid "%<this%> may not be used in this context"
+msgstr "%<this%> се не може употребити у овом контексту"
+
+#: cp/parser.c:3059
+#, gcc-internal-format
+msgid "local variable %qD may not appear in this context"
+msgstr "локална променљива %qD не може се појавити у овом контексту"
+
+#: cp/parser.c:3435
+#, gcc-internal-format
+msgid "declaration of %<~%T%> as member of %qT"
+msgstr "декларација %<~%T%> као члана у %qT"
+
+#: cp/parser.c:3448
+#, gcc-internal-format
+msgid "typedef-name %qD used as destructor declarator"
+msgstr "typedef-име %qD употребљено као декларатор деструктора"
+
+#: cp/parser.c:3657 cp/parser.c:12711 cp/parser.c:14842
+#, gcc-internal-format
+msgid "reference to %qD is ambiguous"
+msgstr "двосмислено упућивање на %qD"
+
+#: cp/parser.c:3699 cp/typeck.c:1878 cp/typeck.c:1898
+#, gcc-internal-format
+msgid "%qD is not a template"
+msgstr "%qD није шаблон"
+
+#: cp/parser.c:4090
+#, gcc-internal-format
+msgid "ISO C++ forbids compound-literals"
+msgstr "ИСО Ц++ забрањује сложене константе"
+
+#: cp/parser.c:4422
+#, gcc-internal-format
+msgid "%qE does not have class type"
+msgstr "%qE нема класни тип"
+
+#: cp/parser.c:5021
+#, gcc-internal-format
+msgid "array bound forbidden after parenthesized type-id"
+msgstr "граница низа забрањена је после заграђеног ид. типа"
+
+#: cp/parser.c:5022
+#, gcc-internal-format
+msgid "try removing the parentheses around the type-id"
+msgstr "покушајте да уклоните заграде око ид. типа"
+
+#: cp/parser.c:5224
+#, gcc-internal-format
+msgid "expression in new-declarator must have integral or enumeration type"
+msgstr "израз у декларатору new мора имати интегрални или набројиви тип"
+
+#: cp/parser.c:5413
+#, gcc-internal-format
+msgid "use of old-style cast"
+msgstr "употреба старовремског претапања"
+
+#: cp/parser.c:6197
+#, gcc-internal-format
+msgid "case label %qE not within a switch statement"
+msgstr "етикета случаја %qE ван наредбе пребацивања"
+
+#: cp/parser.c:6746
+#, gcc-internal-format
+msgid "ISO C++ forbids computed gotos"
+msgstr "ИСО Ц++ забрањује рачунско goto"
+
+#: cp/parser.c:6871
+#, gcc-internal-format
+msgid "extra %<;%>"
+msgstr "сувишно %<;%>"
+
+#: cp/parser.c:7205
+#, gcc-internal-format
+msgid "mixing declarations and function-definitions is forbidden"
+msgstr "забрањено је мешање декларација и дефиниција функција"
+
+#: cp/parser.c:7514
+#, gcc-internal-format
+msgid "ISO C++ does not support %<long long%>"
+msgstr "ИСО Ц++ не подржава %<long long%>"
+
+#: cp/parser.c:7534
+#, gcc-internal-format
+msgid "duplicate %qs"
+msgstr "удвостручено %qs"
+
+#: cp/parser.c:7541
+#, gcc-internal-format
+msgid "class definition may not be declared a friend"
+msgstr "дефиниција класе не може бити декларисана пријатељем"
+
+#: cp/parser.c:7855
+#, gcc-internal-format
+msgid "only constructors take base initializers"
+msgstr "само конструктори узимају успостављаче основе"
+
+#: cp/parser.c:7907
+#, gcc-internal-format
+msgid "anachronistic old-style base class initializer"
+msgstr "анахронистични старовремски успостављач основне класе"
+
+#: cp/parser.c:7951
+#, gcc-internal-format
+msgid "keyword %<typename%> not allowed in this context (a qualified member initializer is implicitly a type)"
+msgstr "кључна реч %<typename%> није дозвољена у овом контексту (успостављач одређеног члана имплицитно је тип)"
+
+#. Warn that we do not support `export'.
+#: cp/parser.c:8317
+#, gcc-internal-format
+msgid "keyword %<export%> not implemented, and will be ignored"
+msgstr "кључна реч %<export%> није имплементирана, игнорише се"
+
+#. Otherwise, emit an error about the invalid digraph, but continue
+#. parsing because we got our argument list.
+#: cp/parser.c:8694
+#, gcc-internal-format
+msgid "%<<::%> cannot begin a template-argument list"
+msgstr "%<<::%> не може започети листу шаблонских аргумената"
+
+#: cp/parser.c:8695
+#, gcc-internal-format
+msgid "%<<:%> is an alternate spelling for %<[%>. Insert whitespace between %<<%> and %<::%>"
+msgstr "%<<:%> је другачије написано %<[%>. Убаците размак између %<<%> и %<::%>"
+
+#: cp/parser.c:8702
+#, gcc-internal-format
+msgid "(if you use -fpermissive G++ will accept your code)"
+msgstr "(Г++ ће прихватити ово ако задате -fpermissive)"
+
+#: cp/parser.c:8766
+#, gcc-internal-format
+msgid "parse error in template argument list"
+msgstr "грешка у рашчлањивању листе шаблонских аргумената"
+
+#. Explain what went wrong.
+#: cp/parser.c:8879
+#, gcc-internal-format
+msgid "non-template %qD used as template"
+msgstr "%qD употребљено као шаблон, а није"
+
+#: cp/parser.c:8880
+#, gcc-internal-format
+msgid "use %<%T::template %D%> to indicate that it is a template"
+msgstr "употребите %<%T::template %D%> да назначите да је шаблон"
+
+#: cp/parser.c:9393
+#, gcc-internal-format
+msgid "template specialization with C linkage"
+msgstr "специјализација шаблона са Ц повезивошћу"
+
+#: cp/parser.c:9500 cp/parser.c:15498
+#, gcc-internal-format
+msgid "template declaration of %qs"
+msgstr "декларација шаблона %qs"
+
+#: cp/parser.c:9973
+#, gcc-internal-format
+msgid "using %<typename%> outside of template"
+msgstr "употреба %<typename%> изван шаблона"
+
+#: cp/parser.c:10170
+#, gcc-internal-format
+msgid "type attributes are honored only at type definition"
+msgstr "атрибути типа поштују се само при дефиницији типа"
+
+#: cp/parser.c:10372
+#, gcc-internal-format
+msgid "%qD is not a namespace-name"
+msgstr "%qD није име именског простора"
+
+#. [namespace.udecl]
+#.
+#. A using declaration shall not name a template-id.
+#: cp/parser.c:10562
+#, gcc-internal-format
+msgid "a template-id may not appear in a using-declaration"
+msgstr "ид. шаблона не може да се јави у декларацији употребе"
+
+#: cp/parser.c:10901
+#, gcc-internal-format
+msgid "an asm-specification is not allowed on a function-definition"
+msgstr "навод asm није дозвољен на дефиницији функције"
+
+#: cp/parser.c:10903
+#, gcc-internal-format
+msgid "attributes are not allowed on a function-definition"
+msgstr "атрибути нису дозвољени на дефиницији функције"
+
+#: cp/parser.c:11050
+#, gcc-internal-format
+msgid "attributes after parenthesized initializer ignored"
+msgstr "игноришу се атрибути после заграђеног успостављача"
+
+#: cp/parser.c:11430
+#, gcc-internal-format
+msgid "array bound is not an integer constant"
+msgstr "граница низа није целобројна константа"
+
+#: cp/parser.c:11501
+#, gcc-internal-format
+msgid "%<%T::%D%> is not a type"
+msgstr "%<%T::%D%> није тип"
+
+#: cp/parser.c:11526
+#, gcc-internal-format
+msgid "invalid use of constructor as a template"
+msgstr "неисправна употреба конструктора као шаблона"
+
+#: cp/parser.c:11527
+#, gcc-internal-format
+msgid "use %<%T::%D%> instead of %<%T::%D%> to name the constructor in a qualified name"
+msgstr "употреба %<%T::%D%> уместо %<%T::%D%> за именовање конструктора у одређеном имену"
+
+#: cp/parser.c:11761
+#, gcc-internal-format
+msgid "duplicate cv-qualifier"
+msgstr "удвостручена кн-одредба"
+
+#: cp/parser.c:12297
+#, gcc-internal-format
+msgid "file ends in default argument"
+msgstr "датотека се завршава подразумеваним аргументом"
+
+#: cp/parser.c:12370
+#, gcc-internal-format
+msgid "deprecated use of default argument for parameter of non-function"
+msgstr "превазиђена употреба подразумеваног аргумента као параметра не-функције"
+
+#: cp/parser.c:12373
+#, gcc-internal-format
+msgid "default arguments are only permitted for function parameters"
+msgstr "подразумевани аргументи су дозвољени само за параметре функција"
+
+#: cp/parser.c:13136
+#, gcc-internal-format
+msgid "invalid class name in declaration of %qD"
+msgstr "неисправно име класе у декларацији %qD"
+
+#: cp/parser.c:13147
+#, gcc-internal-format
+msgid "declaration of %qD in %qD which does not enclose %qD"
+msgstr "декларација %qD у %qD која не обухвата %qD"
+
+#: cp/parser.c:13160
+#, gcc-internal-format
+msgid "extra qualification ignored"
+msgstr "сувишне одредбе се игноришу"
+
+#: cp/parser.c:13171
+#, gcc-internal-format
+msgid "an explicit specialization must be preceded by %<template <>%>"
+msgstr "експлицитној специјализацији мора претходити %<template <>%>"
+
+#: cp/parser.c:13264
+#, gcc-internal-format
+msgid "previous definition of %q+#T"
+msgstr "претходна дефиниција %q+#T"
+
+#: cp/parser.c:13495
+#, gcc-internal-format
+msgid "%Hextra %<;%>"
+msgstr "%Hсувишно %<;%>"
+
+#: cp/parser.c:13513
+#, gcc-internal-format
+msgid "a class-key must be used when declaring a friend"
+msgstr "при декларацији пријатеља мора бити употребљена кључна реч class"
+
+#: cp/parser.c:13527
+#, gcc-internal-format
+msgid "friend declaration does not name a class or function"
+msgstr "декларација пријатеља не именује ни класу ни функцију"
+
+#: cp/parser.c:13705
+#, gcc-internal-format
+msgid "pure-specifier on function-definition"
+msgstr "наводилац pure на дефиницији функције"
+
+#: cp/parser.c:13978
+#, gcc-internal-format
+msgid "keyword %<typename%> not allowed outside of templates"
+msgstr "кључна реч %<typename%> није дозвољена изван шаблона"
+
+#: cp/parser.c:13980
+#, gcc-internal-format
+msgid "keyword %<typename%> not allowed in this context (the base class is implicitly a type)"
+msgstr "кључна реч %<typename%> није дозвољена у овом контексту (основна класа је имплицитно тип)"
+
+#: cp/parser.c:14255
+#, gcc-internal-format
+msgid "invalid catch parameter"
+msgstr "неисправан параметар хватања"
+
+#: cp/parser.c:15011
+#, gcc-internal-format
+msgid "too few template-parameter-lists"
+msgstr "премало листа параметара шаблона"
+
+#. Otherwise, there are too many template parameter lists. We have
+#. something like:
+#.
+#. template <class T> template <class U> void S::f();
+#: cp/parser.c:15026
+#, gcc-internal-format
+msgid "too many template-parameter-lists"
+msgstr "превише листа шаблонских параметера"
+
+#. Skip the entire function.
+#: cp/parser.c:15250
+#, gcc-internal-format
+msgid "invalid function declaration"
+msgstr "неисправна декларација функције"
+
+#. Issue an error message.
+#: cp/parser.c:15287
+#, gcc-internal-format
+msgid "named return values are no longer supported"
+msgstr "именоване повратне вредности нису више подржане"
+
+#: cp/parser.c:15352
+#, gcc-internal-format
+msgid "template with C linkage"
+msgstr "шаблон са Ц повезивошћу"
+
+#: cp/parser.c:15715
+#, gcc-internal-format
+msgid "%H%<>>%> should be %<> >%> within a nested template argument list"
+msgstr "%H%<>>%> треба да је %<> >%> унутар угњеждене листе шаблонских аргумената"
+
+#: cp/parser.c:15730
+#, gcc-internal-format
+msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
+msgstr "сувишно %<>>%>, користите %<>%> за затварање листе шаблонских аргумената"
+
+#: cp/parser.c:16290
+#, gcc-internal-format
+msgid "%qs tag used in naming %q#T"
+msgstr "ознака %qs употребљена при именовању %q#T"
+
+#: cp/parser.c:16311
+#, gcc-internal-format
+msgid "%qD redeclared with different access"
+msgstr "%qD поново декларисано са другачијим приступом"
+
+#: cp/parser.c:16328
+#, gcc-internal-format
+msgid "%<template%> (as a disambiguator) is only allowed within templates"
+msgstr "%<template%> (као разјашњење двосмислености) дозвољено је само унутар шаблона"
+
+#: cp/parser.c:16565 cp/parser.c:17488 cp/parser.c:17619
+#, gcc-internal-format
+msgid "misplaced %<@%D%> Objective-C++ construct"
+msgstr "конструкција %<@%D%> објективног Ц++а на погрешном месту"
+
+#: cp/parser.c:16706
+#, gcc-internal-format
+msgid "%<@encode%> must specify a type as an argument"
+msgstr "%<@encode%> мора навести тип као аргумент"
+
+#: cp/parser.c:17021
+#, gcc-internal-format
+msgid "invalid Objective-C++ selector name"
+msgstr "неисправно име селектора објективног Ц++а"
+
+#: cp/parser.c:17352
+#, gcc-internal-format
+msgid "identifier expected after %<@protocol%>"
+msgstr "очекиван је идентификатор после %<@protocol%>"
+
+#: cp/parser.c:17642
+#, gcc-internal-format
+msgid "inter-module optimizations not implemented for C++"
+msgstr "унутармодулске оптимизације нису имплеметиране за Ц++"
+
+#: cp/pt.c:239
+#, gcc-internal-format
+msgid "data member %qD cannot be a member template"
+msgstr "члански податак %qD не може бити члански шаблон"
+
+#: cp/pt.c:251
+#, gcc-internal-format
+msgid "invalid member template declaration %qD"
+msgstr "неисправна декларација чланског шаблона %qD"
+
+#: cp/pt.c:573
+#, gcc-internal-format
+msgid "explicit specialization in non-namespace scope %qD"
+msgstr "експлицитна специјализација у не-именскопросторном досегу %qD"
+
+#: cp/pt.c:584
+#, gcc-internal-format
+msgid "enclosing class templates are not explicitly specialized"
+msgstr "обухватајући шаблони класа не бивају експлицитно специјализовани"
+
+#: cp/pt.c:668
+#, gcc-internal-format
+msgid "specialization of %qD in different namespace"
+msgstr "специјализација %qD у различитом именском простору"
+
+#: cp/pt.c:669 cp/pt.c:759
+#, gcc-internal-format
+msgid " from definition of %q+#D"
+msgstr " из дефиниције %q+#D"
+
+#: cp/pt.c:686
+#, gcc-internal-format
+msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
+msgstr "експлицитно извођење %qD у именском простору %qD (који не обухвата простор %qD)"
+
+#: cp/pt.c:726
+#, gcc-internal-format
+msgid "specialization of %qT after instantiation"
+msgstr "специјализација %qT после извођења"
+
+#: cp/pt.c:758
+#, gcc-internal-format
+msgid "specializing %q#T in different namespace"
+msgstr "специјализација %q#T у различитом именском простору"
+
+#: cp/pt.c:773
+#, gcc-internal-format
+msgid "specialization %qT after instantiation %qT"
+msgstr "специјализација %qT после извођења %qT"
+
+#: cp/pt.c:785
+#, gcc-internal-format
+msgid "explicit specialization of non-template %qT"
+msgstr "експлицитна специјализација не-шаблонског %qT"
+
+#: cp/pt.c:1179
+#, gcc-internal-format
+msgid "specialization of %qD after instantiation"
+msgstr "специјализација %qD после извођења"
+
+#: cp/pt.c:1383
+#, gcc-internal-format
+msgid "%qD is not a function template"
+msgstr "%qD није шаблон функције"
+
+#: cp/pt.c:1577
+#, gcc-internal-format
+msgid "template-id %qD for %q+D does not match any template declaration"
+msgstr "ид. шаблона %qD за %q+D не одговара ниједној декларацији шаблона"
+
+#: cp/pt.c:1585
+#, gcc-internal-format
+msgid "ambiguous template specialization %qD for %q+D"
+msgstr "двосмислена специјализација шаблона %qD за %q+D"
+
+#. This case handles bogus declarations like template <>
+#. template <class T> void f<int>();
+#: cp/pt.c:1816 cp/pt.c:1870
+#, gcc-internal-format
+msgid "template-id %qD in declaration of primary template"
+msgstr "ид. шаблона %qD у декларацији примарног шаблона"
+
+#: cp/pt.c:1829
+#, gcc-internal-format
+msgid "template parameter list used in explicit instantiation"
+msgstr "листа шаблонских параметара употребљена у експлицитном извођењу"
+
+#: cp/pt.c:1835
+#, gcc-internal-format
+msgid "definition provided for explicit instantiation"
+msgstr "дефиниција дата за експлицитно извођење"
+
+#: cp/pt.c:1843
+#, gcc-internal-format
+msgid "too many template parameter lists in declaration of %qD"
+msgstr "превише листа шаблонских параметара у декларацији %qD"
+
+#: cp/pt.c:1846
+#, gcc-internal-format
+msgid "too few template parameter lists in declaration of %qD"
+msgstr "премало листа шаблонских параметара у декларацији %qD"
+
+#: cp/pt.c:1848
+#, gcc-internal-format
+msgid "explicit specialization of %qD must be introduced by %<template <>%>"
+msgstr "експлицитна специјализација %qD мора бити уведена помоћу %<template <>%>"
+
+#: cp/pt.c:1867
+#, gcc-internal-format
+msgid "function template partial specialization %qD is not allowed"
+msgstr "делимична специјализација шаблона функције %qD није дозвољена"
+
+#: cp/pt.c:1899
+#, gcc-internal-format
+msgid "default argument specified in explicit specialization"
+msgstr "наведен подразумевани аргумент у експлицитној специјализацији"
+
+#: cp/pt.c:1928
+#, gcc-internal-format
+msgid "%qD is not a template function"
+msgstr "%qD није шаблонска функција"
+
+#. From [temp.expl.spec]:
+#.
+#. If such an explicit specialization for the member
+#. of a class template names an implicitly-declared
+#. special member function (clause _special_), the
+#. program is ill-formed.
+#.
+#. Similar language is found in [temp.explicit].
+#: cp/pt.c:1990
+#, gcc-internal-format
+msgid "specialization of implicitly-declared special member function"
+msgstr "специјализација имплицитно декларисане посебне чланске функције"
+
+#: cp/pt.c:2034
+#, gcc-internal-format
+msgid "no member function %qD declared in %qT"
+msgstr "нема чланске функције %qD декларисане у %qT"
+
+#: cp/pt.c:2258
+#, gcc-internal-format
+msgid "declaration of %q+#D"
+msgstr "декларација %q+#D"
+
+#: cp/pt.c:2259
+#, gcc-internal-format
+msgid " shadows template parm %q+#D"
+msgstr " заклања шаблонски параметар %q+#D"
+
+#: cp/pt.c:2662
+#, gcc-internal-format
+msgid "template parameters not used in partial specialization:"
+msgstr "шаблонски параметри неискоришћени у делимичној специјализацији:"
+
+#: cp/pt.c:2666
+#, gcc-internal-format
+msgid " %qD"
+msgstr " %qD"
+
+#: cp/pt.c:2677
+#, gcc-internal-format
+msgid "partial specialization %qT does not specialize any template arguments"
+msgstr "делимична специјализација %qT не специјализује ниједан шаблонски аргумент"
+
+#: cp/pt.c:2702
+#, gcc-internal-format
+msgid "template argument %qE involves template parameter(s)"
+msgstr "шаблонски аргумент %qE уплиће шаблонске параметре"
+
+#: cp/pt.c:2746
+#, gcc-internal-format
+msgid "type %qT of template argument %qE depends on template parameter(s)"
+msgstr "тип %qT шаблонског аргумента %qE зависи од шаблонских параметара"
+
+#: cp/pt.c:2833
+#, gcc-internal-format
+msgid "no default argument for %qD"
+msgstr "нема подразумеваног аргумента за %qD"
+
+#: cp/pt.c:2992
+#, gcc-internal-format
+msgid "template class without a name"
+msgstr "шаблонска класа без имена"
+
+#. [temp.mem]
+#.
+#. A destructor shall not be a member template.
+#: cp/pt.c:3000
+#, gcc-internal-format
+msgid "destructor %qD declared as member template"
+msgstr "деструктор %qD декларисан као члански шаблон"
+
+#. [basic.stc.dynamic.allocation]
+#.
+#. An allocation function can be a function
+#. template. ... Template allocation functions shall
+#. have two or more parameters.
+#: cp/pt.c:3015
+#, gcc-internal-format
+msgid "invalid template declaration of %qD"
+msgstr "неисправна декларација шаблона %qD"
+
+#: cp/pt.c:3095
+#, gcc-internal-format
+msgid "%qD does not declare a template type"
+msgstr "%qD не декларише шаблонски тип"
+
+#: cp/pt.c:3101
+#, gcc-internal-format
+msgid "template definition of non-template %q#D"
+msgstr "шаблонска дефиниција нешаблонског %q#D"
+
+#: cp/pt.c:3144
+#, gcc-internal-format
+msgid "expected %d levels of template parms for %q#D, got %d"
+msgstr "очекивах %d нивоа шаблонских параметара за %q#D, добих %d"
+
+#: cp/pt.c:3156
+#, gcc-internal-format
+msgid "got %d template parameters for %q#D"
+msgstr "добих %d шаблонских параметара за %q#D"
+
+#: cp/pt.c:3159
+#, gcc-internal-format
+msgid "got %d template parameters for %q#T"
+msgstr "добих %d шаблонских параметара за %q#T"
+
+#: cp/pt.c:3161
+#, gcc-internal-format
+msgid " but %d required"
+msgstr " а потребно је %d"
+
+#: cp/pt.c:3258
+#, gcc-internal-format
+msgid "%qT is not a template type"
+msgstr "%qT није шаблонски тип"
+
+#: cp/pt.c:3271
+#, gcc-internal-format
+msgid "template specifiers not specified in declaration of %qD"
+msgstr "наводиоци шаблона нису задати у декларацији %qD"
+
+#: cp/pt.c:3281
+#, gcc-internal-format
+msgid "previous declaration %q+D"
+msgstr "претходна декларација %q+D"
+
+#: cp/pt.c:3282
+#, gcc-internal-format
+msgid "used %d template parameter(s) instead of %d"
+msgstr "употребљено је %d шаблонских параметара уместо %d"
+
+#: cp/pt.c:3301
+#, gcc-internal-format
+msgid "template parameter %q+#D"
+msgstr "шаблонски параметар %q+#D"
+
+#: cp/pt.c:3302
+#, gcc-internal-format
+msgid "redeclared here as %q#D"
+msgstr "поново декларисано овде као %q#D"
+
+#. We have in [temp.param]:
+#.
+#. A template-parameter may not be given default arguments
+#. by two different declarations in the same scope.
+#: cp/pt.c:3312
+#, gcc-internal-format
+msgid "redefinition of default argument for %q#D"
+msgstr "поновљена дефиниција подразумеваног аргумента за %q#D"
+
+#: cp/pt.c:3313
+#, gcc-internal-format
+msgid "%J original definition appeared here"
+msgstr "%J првобитна дефиниција налази се овде"
+
+#: cp/pt.c:3409
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because function %qD has not external linkage"
+msgstr "%qE није исправан шаблонски аргумент за тип %qT јер функција %qD нема спољашњу повезивост"
+
+#: cp/pt.c:3450
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
+msgstr "%qE није исправан шаблонски аргумент за тип %qT јер се константне ниске не могу користити у овом контексту"
+
+#: cp/pt.c:3527
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because it is a non-constant expression"
+msgstr "%qE није исправан шаблонски аргумент за тип %qT јер није константан израз"
+
+#: cp/pt.c:3577
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because it is not a constant pointer"
+msgstr "%qE није исправан шаблонски аргумент за тип %qT јер није константан показивач"
+
+#: cp/pt.c:3597
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
+msgstr "%qE није исправан шаблонски аргумент за тип %qT јер се коси са кн-одредбом"
+
+#: cp/pt.c:3604
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because it is not a lvalue"
+msgstr "%qE није исправан шаблонски аргумент за тип %qT јер није л-вредност"
+
+#: cp/pt.c:3617
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because object %qD has not external linkage"
+msgstr "%qE није исправан шаблонски аргумент за тип %qT јер објекат %qD нема спољашњу повезивост"
+
+#: cp/pt.c:3657
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because it is a pointer"
+msgstr "%qE није исправан шаблонски аргумент за тип %qT јер је показивач"
+
+#: cp/pt.c:3659
+#, gcc-internal-format
+msgid "try using %qE instead"
+msgstr "покушајте са %qE уместо тога"
+
+#: cp/pt.c:3694
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
+msgstr "%qE није исправан шаблонски аргумент за тип %qT јер је типа %qT"
+
+#: cp/pt.c:3697
+#, gcc-internal-format
+msgid "standard conversions are not allowed in this context"
+msgstr "стандардна претварања нису дозвољена у овом контексту"
+
+#: cp/pt.c:3866
+#, gcc-internal-format
+msgid "to refer to a type member of a template parameter, use %<typename %E%>"
+msgstr "да упутите на тип шаблонског параметра, употребите %<typename %E%>"
+
+#: cp/pt.c:3881 cp/pt.c:3900 cp/pt.c:3940
+#, gcc-internal-format
+msgid "type/value mismatch at argument %d in template parameter list for %qD"
+msgstr "неслагање типа/вредности код аргумента %d у листи шаблонских параметара за %qD"
+
+#: cp/pt.c:3885
+#, gcc-internal-format
+msgid " expected a constant of type %qT, got %qT"
+msgstr " очекивах константу типа %qT, добих %qT"
+
+#: cp/pt.c:3889
+#, gcc-internal-format
+msgid " expected a class template, got %qE"
+msgstr " очекивах шаблон класе, добих %qE"
+
+#: cp/pt.c:3891
+#, gcc-internal-format
+msgid " expected a type, got %qE"
+msgstr " очекивах тип, добих %qE"
+
+#: cp/pt.c:3904
+#, gcc-internal-format
+msgid " expected a type, got %qT"
+msgstr " очекивах тип, добих %qT"
+
+#: cp/pt.c:3906
+#, gcc-internal-format
+msgid " expected a class template, got %qT"
+msgstr " очекивах шаблон класе, добих %qT"
+
+#: cp/pt.c:3943
+#, gcc-internal-format
+msgid " expected a template of type %qD, got %qD"
+msgstr " очекивах шаблон типа %qD, добих %qD"
+
+#: cp/pt.c:3986
+#, gcc-internal-format
+msgid "could not convert template argument %qE to %qT"
+msgstr "нисам могао да претворим шаблонски аргумент %qE у %qT"
+
+#: cp/pt.c:4025
+#, gcc-internal-format
+msgid "wrong number of template arguments (%d, should be %d)"
+msgstr "погрешан број шаблонских аргумената ((%d, а треба %d)"
+
+#: cp/pt.c:4029
+#, gcc-internal-format
+msgid "provided for %q+D"
+msgstr "дат за %q+D"
+
+#: cp/pt.c:4059
+#, gcc-internal-format
+msgid "template argument %d is invalid"
+msgstr "неисправан шаблонски аргумент %d"
+
+#: cp/pt.c:4414
+#, gcc-internal-format
+msgid "non-template type %qT used as a template"
+msgstr "нешаблонски тип %qT употребљен као шаблон"
+
+#: cp/pt.c:4416
+#, gcc-internal-format
+msgid "for template declaration %q+D"
+msgstr "за декларацију шаблона %q+D"
+
+#: cp/pt.c:5066
+#, gcc-internal-format
+msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %qD"
+msgstr "дубина извођења шаблона премашује максимум од %d (употребите -ftemplate-depth-NN да повећате дубину) извођења %qD"
+
+#: cp/pt.c:6621
+#, gcc-internal-format
+msgid "instantiation of %q+D as type %qT"
+msgstr "извођење %q+D је типа %qT"
+
+#: cp/pt.c:6800
+#, gcc-internal-format
+msgid "invalid parameter type %qT"
+msgstr "неисправан тип параметра %qT"
+
+#: cp/pt.c:6802
+#, gcc-internal-format
+msgid "in declaration %q+D"
+msgstr "у декларацији %q+D"
+
+#: cp/pt.c:6875
+#, gcc-internal-format
+msgid "function returning an array"
+msgstr "функција враћа низ"
+
+#: cp/pt.c:6877
+#, gcc-internal-format
+msgid "function returning a function"
+msgstr "функција враћа функцију"
+
+#: cp/pt.c:6904
+#, gcc-internal-format
+msgid "creating pointer to member function of non-class type %qT"
+msgstr "стварање показивача на чланску функцију некласног типа %qT"
+
+#: cp/pt.c:7085
+#, gcc-internal-format
+msgid "creating array with negative size (%qE)"
+msgstr "стварање низа негативне величине (%qE)"
+
+#: cp/pt.c:7302
+#, gcc-internal-format
+msgid "forming reference to void"
+msgstr "обликовање упућивача на празно"
+
+#: cp/pt.c:7304
+#, gcc-internal-format
+msgid "forming %s to reference type %qT"
+msgstr "обликовање %s на тип упућивача %qT"
+
+#: cp/pt.c:7341
+#, gcc-internal-format
+msgid "creating pointer to member of non-class type %qT"
+msgstr "стварање показивача на члан некласног типа %qT"
+
+#: cp/pt.c:7347
+#, gcc-internal-format
+msgid "creating pointer to member reference type %qT"
+msgstr "стварање показивача на члан упућивачког типа %qT"
+
+#: cp/pt.c:7353
+#, gcc-internal-format
+msgid "creating pointer to member of type void"
+msgstr "стварање показивача на члан празног типа"
+
+#: cp/pt.c:7420
+#, gcc-internal-format
+msgid "creating array of %qT"
+msgstr "стварање низа типа %qT"
+
+#: cp/pt.c:7426
+#, gcc-internal-format
+msgid "creating array of %qT, which is an abstract class type"
+msgstr "стварање низа типа %qT, који је апстрактна класа"
+
+#: cp/pt.c:7470
+#, gcc-internal-format
+msgid "%qT is not a class, struct, or union type"
+msgstr "%qT није тип класе, структуре, нити уније"
+
+#: cp/pt.c:7505
+#, gcc-internal-format
+msgid "%qT resolves to %qT, which is not an enumeration type"
+msgstr "%qT се разрешава до %qT, што није набројиви тип"
+
+#: cp/pt.c:7508
+#, gcc-internal-format
+msgid "%qT resolves to %qT, which is is not a class type"
+msgstr "%qT се разрешава до %qT, што није класни тип"
+
+#: cp/pt.c:7570
+#, gcc-internal-format
+msgid "use of %qs in template"
+msgstr "употреба %qs у шаблону"
+
+#: cp/pt.c:7702
+#, gcc-internal-format
+msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
+msgstr "зависно име %qE рашчлањује се као не-тип, али извођење производи тип"
+
+#: cp/pt.c:7704
+#, gcc-internal-format
+msgid "say %<typename %E%> if a type is meant"
+msgstr "ставите %<typename %E%> ако мислите на тип"
+
+#: cp/pt.c:7827
+#, gcc-internal-format
+msgid "using invalid field %qD"
+msgstr "употреба неисправног поља %qD"
+
+#: cp/pt.c:8933
+#, gcc-internal-format
+msgid "%qT is not a class or namespace"
+msgstr "%qT није ни класа ни именски простор"
+
+#: cp/pt.c:8936
+#, gcc-internal-format
+msgid "%qD is not a class or namespace"
+msgstr "%qD није ни класа ни именски простор"
+
+#: cp/pt.c:9085
+#, gcc-internal-format
+msgid "%qT is/uses anonymous type"
+msgstr "%qT јесте/користи анонимни тип"
+
+#: cp/pt.c:9087
+#, gcc-internal-format
+msgid "%qT uses local type %qT"
+msgstr "%qT користи локални тип %qT"
+
+#: cp/pt.c:9096
+#, gcc-internal-format
+msgid "%qT is a variably modified type"
+msgstr "%qT је променљиво измењив тип"
+
+#: cp/pt.c:9107
+#, gcc-internal-format
+msgid "integral expression %qE is not constant"
+msgstr "интегрални израз %qE није константа"
+
+#: cp/pt.c:9112
+#, gcc-internal-format
+msgid " trying to instantiate %qD"
+msgstr " покушај извођења %qD"
+
+#: cp/pt.c:11103
+#, gcc-internal-format
+msgid "ambiguous class template instantiation for %q#T"
+msgstr "двосмислено извођење шаблона класе за %q#T"
+
+#: cp/pt.c:11106
+#, gcc-internal-format
+msgid "%s %+#T"
+msgstr "%s %+#T"
+
+#: cp/pt.c:11129 cp/pt.c:11200
+#, gcc-internal-format
+msgid "explicit instantiation of non-template %q#D"
+msgstr "експлицитно извођење не-шаблона %q#D"
+
+#: cp/pt.c:11145 cp/pt.c:11195
+#, gcc-internal-format
+msgid "no matching template for %qD found"
+msgstr "поклапајући шаблон за %qD није нађен"
+
+#: cp/pt.c:11151
+#, gcc-internal-format
+msgid "explicit instantiation of %q#D"
+msgstr "експлицитно извођење %q#D"
+
+#: cp/pt.c:11187
+#, gcc-internal-format
+msgid "duplicate explicit instantiation of %q#D"
+msgstr "удвостручено експлицитно извођење %q#D"
+
+#: cp/pt.c:11209
+#, gcc-internal-format
+msgid "ISO C++ forbids the use of %<extern%> on explicit instantiations"
+msgstr "ИСО Ц++ забрањује употребу %<extern%> на експлицитним извођењима"
+
+#: cp/pt.c:11214 cp/pt.c:11307
+#, gcc-internal-format
+msgid "storage class %qD applied to template instantiation"
+msgstr "складишна класа %qD примењена на извођење шаблона"
+
+#: cp/pt.c:11279
+#, gcc-internal-format
+msgid "explicit instantiation of non-template type %qT"
+msgstr "експлицитно извођење нешаблонског типа %qT"
+
+#: cp/pt.c:11288
+#, gcc-internal-format
+msgid "explicit instantiation of %q#T before definition of template"
+msgstr "експлицитно извођење %q#T пре дефиниције шаблона"
+
+#: cp/pt.c:11296
+#, gcc-internal-format
+msgid "ISO C++ forbids the use of %qE on explicit instantiations"
+msgstr "ИСО Ц++ забрањује употребу %qE на експлицитним извођењима"
+
+#: cp/pt.c:11341
+#, gcc-internal-format
+msgid "duplicate explicit instantiation of %q#T"
+msgstr "удвостручено експлицитно извођење %q#T"
+
+#: cp/pt.c:11754
+#, gcc-internal-format
+msgid "explicit instantiation of %qD but no definition available"
+msgstr "експлицитно извођење %qD али дефиниција није доступна"
+
+#: cp/pt.c:11901
+#, gcc-internal-format
+msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use -ftemplate-depth-NN to increase the maximum)"
+msgstr "дубина извођења шаблона премашује максимум од %d извођења %q+D, могуће услед стварања виртуелних табела (употребите -ftemplate-depth-NN да повећате максимум)"
+
+#: cp/pt.c:12174
+#, gcc-internal-format
+msgid "%q#T is not a valid type for a template constant parameter"
+msgstr "%q#T није исправан тип за шаблонски константан параметар"
+
+#: cp/repo.c:113
+#, gcc-internal-format
+msgid "-frepo must be used with -c"
+msgstr "-frepo мора бити коришћено уз -c"
+
+#: cp/repo.c:201
+#, gcc-internal-format
+msgid "mysterious repository information in %s"
+msgstr "мистериозни подаци складишта у %s"
+
+#: cp/repo.c:215
+#, gcc-internal-format
+msgid "can't create repository information file %qs"
+msgstr "не могу да направим датотеку са подацима складишта %qs"
+
+#: cp/rtti.c:270
+#, gcc-internal-format
+msgid "cannot use typeid with -fno-rtti"
+msgstr "не може се користити ид. типова уз -fno-rtti"
+
+#: cp/rtti.c:276
+#, gcc-internal-format
+msgid "must #include <typeinfo> before using typeid"
+msgstr "пре коришћења ид. типова, мора се #include <typeinfo>"
+
+#: cp/rtti.c:348
+#, gcc-internal-format
+msgid "cannot create type information for type %qT because its size is variable"
+msgstr "не могу се створити подаци о типу за %qT, је му је величина променљива"
+
+#: cp/rtti.c:598 cp/rtti.c:612
+#, gcc-internal-format
+msgid "dynamic_cast of %q#D to %q#T can never succeed"
+msgstr "динамичко претапање из %q#D у %q#T не може никако успети"
+
+#: cp/rtti.c:691
+#, gcc-internal-format
+msgid "cannot dynamic_cast %qE (of type %q#T) to type %q#T (%s)"
+msgstr "не може се динамички претопити %qE (типа %q#T) у тип %q#T (%s)"
+
+#: cp/search.c:257
+#, gcc-internal-format
+msgid "%qT is an ambiguous base of %qT"
+msgstr "%qT је двосмислена основа за %qT"
+
+#: cp/search.c:275
+#, gcc-internal-format
+msgid "%qT is an inaccessible base of %qT"
+msgstr "%qT је неприступачна основа за %qT"
+
+#: cp/search.c:1847
+#, gcc-internal-format
+msgid "deprecated covariant return type for %q+#D"
+msgstr "превазиђен коваријантни повратни тип за %q+#D"
+
+#: cp/search.c:1849 cp/search.c:1864 cp/search.c:1869
+#, gcc-internal-format
+msgid " overriding %q+#D"
+msgstr " потискивање %q+#D"
+
+#: cp/search.c:1863
+#, gcc-internal-format
+msgid "invalid covariant return type for %q+#D"
+msgstr "неисправан коваријантни повратни тип за %q+#D"
+
+#: cp/search.c:1868
+#, gcc-internal-format
+msgid "conflicting return type specified for %q+#D"
+msgstr "сукобљен повратни тип наведен за %q+#D"
+
+#: cp/search.c:1878
+#, gcc-internal-format
+msgid "looser throw specifier for %q+#F"
+msgstr "губитнички наводилац бацања за %q+#F"
+
+#: cp/search.c:1879
+#, gcc-internal-format
+msgid " overriding %q+#F"
+msgstr " потискивање %q+#F"
+
+#. A static member function cannot match an inherited
+#. virtual member function.
+#: cp/search.c:1972
+#, gcc-internal-format
+msgid "%q+#D cannot be declared"
+msgstr "%q+#D се не може декларисати"
+
+#: cp/search.c:1973
+#, gcc-internal-format
+msgid " since %q+#D declared in base class"
+msgstr " пошто је %q+#D декларисано у основној класи"
+
+#: cp/semantics.c:1248
+#, gcc-internal-format
+msgid "type of asm operand %qE could not be determined"
+msgstr "тип asm-операнда %qE не може бити одређен"
+
+#: cp/semantics.c:1367
+#, gcc-internal-format
+msgid "invalid use of member %q+D in static member function"
+msgstr "неисправна употреба члана %q+D у статичкој чланској функцији"
+
+#: cp/semantics.c:1369
+#, gcc-internal-format
+msgid "invalid use of non-static data member %q+D"
+msgstr "неисправна употреба нестатичког чланског податка %q+D"
+
+#: cp/semantics.c:1370 cp/semantics.c:1409
+#, gcc-internal-format
+msgid "from this location"
+msgstr "на овој локацији"
+
+#: cp/semantics.c:1408
+#, gcc-internal-format
+msgid "object missing in reference to %q+D"
+msgstr "недостаје објекат у упућивачу на %q+D"
+
+#: cp/semantics.c:1874
+#, gcc-internal-format
+msgid "arguments to destructor are not allowed"
+msgstr "аргументи нису дозвољени у деструктору"
+
+#: cp/semantics.c:1925
+#, gcc-internal-format
+msgid "%<this%> is unavailable for static member functions"
+msgstr "%<this%> није доступно за статичке чланске функције"
+
+#: cp/semantics.c:1931
+#, gcc-internal-format
+msgid "invalid use of %<this%> in non-member function"
+msgstr "неисправна употреба %<this%> у нечланској функцији"
+
+#: cp/semantics.c:1933
+#, gcc-internal-format
+msgid "invalid use of %<this%> at top level"
+msgstr "неисправна употреба %<this%> на највишем нивоу"
+
+#: cp/semantics.c:1957
+#, gcc-internal-format
+msgid "invalid qualifying scope in pseudo-destructor name"
+msgstr "неисправан одредбени досег у имену псеудодеструктора"
+
+#: cp/semantics.c:1977
+#, gcc-internal-format
+msgid "%qE is not of type %qT"
+msgstr "%qE није типа %qT"
+
+#: cp/semantics.c:2080
+#, gcc-internal-format
+msgid "template type parameters must use the keyword %<class%> or %<typename%>"
+msgstr "типски параметри шаблона морају користити кључну реч %<class%> или %<typename%>"
+
+#: cp/semantics.c:2124
+#, gcc-internal-format
+msgid "invalid use of type %qT as a default value for a template template-parameter"
+msgstr "неисправна употреба типа %qT као подразумеване вредности за шаблонски шаблонски параметар"
+
+#: cp/semantics.c:2127
+#, gcc-internal-format
+msgid "invalid use of %qD as a default value for a template template-parameter"
+msgstr "неисправна употреба %qD као подразумеване вредности за шаблонски шаблонски параметар"
+
+#: cp/semantics.c:2131
+#, gcc-internal-format
+msgid "invalid default argument for a template template parameter"
+msgstr "неисправан подразумевани аргумент за шаблонски шаблонски параметар"
+
+#: cp/semantics.c:2148
+#, gcc-internal-format
+msgid "definition of %q#T inside template parameter list"
+msgstr "дефиниција %q#T унутар листе шаблонских параметара"
+
+#: cp/semantics.c:2159
+#, gcc-internal-format
+msgid "invalid definition of qualified type %qT"
+msgstr "неисправна дефиниција одређеног типа %qT"
+
+#: cp/semantics.c:2362
+#, gcc-internal-format
+msgid "invalid base-class specification"
+msgstr "неисправан навод основне класе"
+
+#: cp/semantics.c:2371
+#, gcc-internal-format
+msgid "base class %qT has cv qualifiers"
+msgstr "основна класа %qT има кн-одредбе"
+
+#: cp/semantics.c:2393
+#, gcc-internal-format
+msgid "incomplete type %qT used in nested name specifier"
+msgstr "непотпун тип %qT употребљен у угњежденом наводиоцу имена"
+
+#: cp/semantics.c:2396
+#, gcc-internal-format
+msgid "reference to %<%T::%D%> is ambiguous"
+msgstr "двосмислено упућивање на %<%T::%D%>"
+
+#: cp/semantics.c:2400 cp/typeck.c:1642
+#, gcc-internal-format
+msgid "%qD is not a member of %qT"
+msgstr "%qD није члан у %qT"
+
+#: cp/semantics.c:2403
+#, gcc-internal-format
+msgid "%qD is not a member of %qD"
+msgstr "%qD није члан у %qD"
+
+#: cp/semantics.c:2517
+#, gcc-internal-format
+msgid "use of %<auto%> variable from containing function"
+msgstr "употреба %<auto%> променљиве из обухватајуће функције"
+
+#: cp/semantics.c:2518
+#, gcc-internal-format
+msgid "use of parameter from containing function"
+msgstr "употреба параметра из обухватајуће вункције"
+
+#: cp/semantics.c:2519
+#, gcc-internal-format
+msgid " %q+#D declared here"
+msgstr " %q+#D декларисано овде"
+
+#: cp/semantics.c:2557
+#, gcc-internal-format
+msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
+msgstr "шаблонски параметар %qD типа %qT није дозвољен у интегралном константном изразу јер није интегралног или набројивог типа"
+
+#: cp/semantics.c:2723
+#, gcc-internal-format
+msgid "%qD cannot appear in a constant-expression"
+msgstr "%qD се не може јавити у константном изразу"
+
+#: cp/semantics.c:2731
+#, gcc-internal-format
+msgid "use of namespace %qD as expression"
+msgstr "употреба именског простора %qD као израза"
+
+#: cp/semantics.c:2736
+#, gcc-internal-format
+msgid "use of class template %qT as expression"
+msgstr "употреба шаблона класе %qT као израза"
+
+#. Ambiguous reference to base members.
+#: cp/semantics.c:2742
+#, gcc-internal-format
+msgid "request for member %qD is ambiguous in multiple inheritance lattice"
+msgstr "захтев за члан %qD двосмислен је у вишеструком снопу наслеђивања"
+
+#: cp/semantics.c:2854
+#, gcc-internal-format
+msgid "type of %qE is unknown"
+msgstr "тип за %qE није познат"
+
+#: cp/tree.c:560
+#, gcc-internal-format
+msgid "%qV qualifiers cannot be applied to %qT"
+msgstr "%qV одредбе не могу се применити на %qT"
+
+#: cp/tree.c:1783
+#, gcc-internal-format
+msgid "%qE attribute can only be applied to Java class definitions"
+msgstr "атрибут %qE може се применити само на јаванске дефиниције класа"
+
+#: cp/tree.c:1812
+#, gcc-internal-format
+msgid "%qE attribute can only be applied to class definitions"
+msgstr "атрибут %qE може се применити само на дефиниције класа"
+
+#: cp/tree.c:1818
+#, gcc-internal-format
+msgid "%qE is obsolete; g++ vtables are now COM-compatible by default"
+msgstr "%qE је застарело; в-табеле су сада подразумевано сагласне са КОМом"
+
+#: cp/tree.c:1842
+#, gcc-internal-format
+msgid "requested init_priority is not an integer constant"
+msgstr "захтевано init_priority није целобројна константа"
+
+#: cp/tree.c:1863
+#, gcc-internal-format
+msgid "can only use %qE attribute on file-scope definitions of objects of class type"
+msgstr "атрибут %qE може се користити само уз дефиниције објеката класног типа у датотечном досегу"
+
+#: cp/tree.c:1871
+#, gcc-internal-format
+msgid "requested init_priority is out of range"
+msgstr "захтевано init_priority је ван опсега"
+
+#: cp/tree.c:1881
+#, gcc-internal-format
+msgid "requested init_priority is reserved for internal use"
+msgstr "захтевано init_priority резервисано је за унутрашњу употребу"
+
+#: cp/tree.c:1892
+#, gcc-internal-format
+msgid "%qE attribute is not supported on this platform"
+msgstr "атрибут %qE није подржан на овој платформи"
+
+#: cp/typeck.c:435 cp/typeck.c:449 cp/typeck.c:549
+#, gcc-internal-format
+msgid "%s between distinct pointer types %qT and %qT lacks a cast"
+msgstr "недостаје претапање за %s између различитих типова показивача %qT и %qT"
+
+#: cp/typeck.c:511
+#, gcc-internal-format
+msgid "ISO C++ forbids %s between pointer of type %<void *%> and pointer-to-function"
+msgstr "ИСО Ц++ забрањује %s између показивача типа %<void *%> и показивача-на-функцију"
+
+#: cp/typeck.c:569
+#, gcc-internal-format
+msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
+msgstr "недостаје претапање за %s између различитих типова показивача-на-члан %qT и %qT"
+
+#: cp/typeck.c:1258
+#, gcc-internal-format
+msgid "invalid application of %qs to a member function"
+msgstr "неисправна примена %qs на чланску функцију"
+
+#: cp/typeck.c:1293
+#, gcc-internal-format
+msgid "invalid application of %qs to a bit-field"
+msgstr "неисправна примена %qs на битско поље"
+
+#: cp/typeck.c:1298
+#, gcc-internal-format
+msgid "ISO C++ forbids applying %qs to an expression of function type"
+msgstr "ИСО Ц++ забрањује примену %qs на израз функцијског типа"
+
+#: cp/typeck.c:1335
+#, gcc-internal-format
+msgid "invalid use of non-static member function"
+msgstr "неисправна употреба нестатичке чланске функције"
+
+#: cp/typeck.c:1502
+#, gcc-internal-format
+msgid "deprecated conversion from string constant to %qT'"
+msgstr "превазиђено претварање из константне ниске у %qT'"
+
+#: cp/typeck.c:1613 cp/typeck.c:1961
+#, gcc-internal-format
+msgid "request for member %qD in %qE, which is of non-class type %qT"
+msgstr "захтев за члан %qD у %qE, које је не-класног типа %qT"
+
+#: cp/typeck.c:1640
+#, gcc-internal-format
+msgid "invalid use of nonstatic data member %qE"
+msgstr "неисправна употреба нестатичког чланског податка %qE"
+
+#: cp/typeck.c:1692 cp/typeck.c:1720
+#, gcc-internal-format
+msgid "invalid access to non-static data member %qD of NULL object"
+msgstr "неисправан приступ нестатичком чланском податку %qD нултог објекта"
+
+#: cp/typeck.c:1695 cp/typeck.c:1722
+#, gcc-internal-format
+msgid "(perhaps the %<offsetof%> macro was used incorrectly)"
+msgstr "(можда је макро %<offsetof%> погрешно употребљен)"
+
+#: cp/typeck.c:1833
+#, gcc-internal-format
+msgid "qualified type %qT does not match destructor name ~%qT"
+msgstr "одређени тип %qT не поклапа се са именом деструктора ~%qT"
+
+#: cp/typeck.c:1839
+#, gcc-internal-format
+msgid "the type being destroyed is %qT, but the destructor refers to %qT"
+msgstr "тип који се уништава је %qT, али деструктор упућује на %qT"
+
+#: cp/typeck.c:1999
+#, gcc-internal-format
+msgid "%<%D::%D%> is not a member of %qT"
+msgstr "%<%D::%D%> није члан у %qT"
+
+#: cp/typeck.c:2014
+#, gcc-internal-format
+msgid "%qT is not a base of %qT"
+msgstr "%qT није основа за %qT"
+
+#: cp/typeck.c:2033
+#, gcc-internal-format
+msgid "%qD has no member named %qE"
+msgstr "%qD нема члан по имену %qE"
+
+#: cp/typeck.c:2048
+#, gcc-internal-format
+msgid "%qD is not a member template function"
+msgstr "%qD није чланска шаблонска функција"
+
+#. A pointer to incomplete type (other than cv void) can be
+#. dereferenced [expr.unary.op]/1
+#: cp/typeck.c:2168
+#, gcc-internal-format
+msgid "%qT is not a pointer-to-object type"
+msgstr "%qT није типа показивач-на-објекат"
+
+#: cp/typeck.c:2193
+#, gcc-internal-format
+msgid "invalid use of %qs on pointer to member"
+msgstr "неисправна употреба %qs на показивачу-на-члан"
+
+#: cp/typeck.c:2199
+#, gcc-internal-format
+msgid "invalid type argument"
+msgstr "неисправан типски аргумент"
+
+#: cp/typeck.c:2222
+#, gcc-internal-format
+msgid "subscript missing in array reference"
+msgstr "недостаје индекс у упућивачу низа"
+
+#: cp/typeck.c:2304
+#, gcc-internal-format
+msgid "ISO C++ forbids subscripting non-lvalue array"
+msgstr "ИСО Ц++ забрањује индексирање не-л-вредносног низа"
+
+#: cp/typeck.c:2315
+#, gcc-internal-format
+msgid "subscripting array declared %<register%>"
+msgstr "индексирање низа декларисаног као %<register%>"
+
+#: cp/typeck.c:2398
+#, gcc-internal-format
+msgid "object missing in use of %qE"
+msgstr "недостаје објекат у употреби %qE"
+
+#: cp/typeck.c:2512
+#, gcc-internal-format
+msgid "ISO C++ forbids calling %<::main%> from within program"
+msgstr "ИСО Ц++ забрањује звање %<::main%> унутар програма"
+
+#: cp/typeck.c:2537
+#, gcc-internal-format
+msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>"
+msgstr "мора се употребити или %<.*%> или %<->*%> за позив показивача на чланску функцију у %<%E (...)%>"
+
+#: cp/typeck.c:2551
+#, gcc-internal-format
+msgid "%qE cannot be used as a function"
+msgstr "%qE не може бити употребљено као функција"
+
+#: cp/typeck.c:2631
+#, gcc-internal-format
+msgid "too many arguments to %s %q+#D"
+msgstr "превише аргумената за %s %q+#D"
+
+#: cp/typeck.c:2632 cp/typeck.c:2734
+#, gcc-internal-format
+msgid "at this point in file"
+msgstr "на овом месту у датотеци"
+
+#: cp/typeck.c:2635
+#, gcc-internal-format
+msgid "too many arguments to function"
+msgstr "превише аргумената за функцију"
+
+#: cp/typeck.c:2669
+#, gcc-internal-format
+msgid "parameter %P of %qD has incomplete type %qT"
+msgstr "параметар %P за %qD непотпуног је типа %qT"
+
+#: cp/typeck.c:2672
+#, gcc-internal-format
+msgid "parameter %P has incomplete type %qT"
+msgstr "параметар %P непотпуног је типа %qT"
+
+#: cp/typeck.c:2733
+#, gcc-internal-format
+msgid "too few arguments to %s %q+#D"
+msgstr "премало аргумената за %s %q+#D"
+
+#: cp/typeck.c:2737
+#, gcc-internal-format
+msgid "too few arguments to function"
+msgstr "превише аргумената за функцију"
+
+#: cp/typeck.c:2885 cp/typeck.c:2895
+#, gcc-internal-format
+msgid "assuming cast to type %qT from overloaded function"
+msgstr "претпоставља се претапање у тип %qT из препуњене функције"
+
+#: cp/typeck.c:2963
+#, gcc-internal-format
+msgid "division by zero in %<%E / 0%>"
+msgstr "дељење нулом у %<%E / 0%>"
+
+#: cp/typeck.c:2965
+#, gcc-internal-format
+msgid "division by zero in %<%E / 0.%>"
+msgstr "дељење нулом у %<%E / 0.%>"
+
+#: cp/typeck.c:3000
+#, gcc-internal-format
+msgid "division by zero in %<%E %% 0%>"
+msgstr "дељење нулом у %<%E %% 0%>"
+
+#: cp/typeck.c:3002
+#, gcc-internal-format
+msgid "division by zero in %<%E %% 0.%>"
+msgstr "дељење нулом у %<%E %% 0.%>"
+
+#: cp/typeck.c:3082
+#, gcc-internal-format
+msgid "%s rotate count is negative"
+msgstr "негативно ротирање %s"
+
+#: cp/typeck.c:3085
+#, gcc-internal-format
+msgid "%s rotate count >= width of type"
+msgstr "ротирање %s >= ширина типа"
+
+#: cp/typeck.c:3119 cp/typeck.c:3124 cp/typeck.c:3220 cp/typeck.c:3225
+#, gcc-internal-format
+msgid "ISO C++ forbids comparison between pointer and integer"
+msgstr "ИСО Ц++ забрањује поређење показивача и целобројног"
+
+#: cp/typeck.c:3239
+#, gcc-internal-format
+msgid "unordered comparison on non-floating point argument"
+msgstr "неуређено поређење са не-реалним аргументом"
+
+#: cp/typeck.c:3277
+#, gcc-internal-format
+msgid "invalid operands of types %qT and %qT to binary %qO"
+msgstr "неисправни операнди типова %qT и %qT за бинарно %qO"
+
+#: cp/typeck.c:3441
+#, gcc-internal-format
+msgid "comparison between types %q#T and %q#T"
+msgstr "поређење између типова %q#T и %q#T"
+
+#: cp/typeck.c:3477
+#, gcc-internal-format
+msgid "comparison between signed and unsigned integer expressions"
+msgstr "поређење означених и неозначених целобројних израза"
+
+#. Some sort of arithmetic operation involving NULL was
+#. performed. Note that pointer-difference and pointer-addition
+#. have already been handled above, and so we don't end up here in
+#. that case.
+#: cp/typeck.c:3556
+#, gcc-internal-format
+msgid "NULL used in arithmetic"
+msgstr "NULL употребљено аритметички"
+
+#: cp/typeck.c:3614
+#, gcc-internal-format
+msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
+msgstr "ИСО Ц++ забрањује употребу показивача типа %<void *%> у одузимању"
+
+#: cp/typeck.c:3616
+#, gcc-internal-format
+msgid "ISO C++ forbids using pointer to a function in subtraction"
+msgstr "ИСО Ц++ забрањује употребу показивача на функцију у одузимању"
+
+#: cp/typeck.c:3618
+#, gcc-internal-format
+msgid "ISO C++ forbids using pointer to a method in subtraction"
+msgstr "ИСО Ц++ забрањује употребу показивача на метод у одузимању"
+
+#: cp/typeck.c:3630
+#, gcc-internal-format
+msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
+msgstr "неисправна употреба показивача на непотпун тип у аритметици са показивачима"
+
+#: cp/typeck.c:3690
+#, gcc-internal-format
+msgid "invalid use of %qE to form a pointer-to-member-function"
+msgstr "неисправна употреба %qE за добијање показивача-на-чланску-функцију"
+
+#: cp/typeck.c:3693
+#, gcc-internal-format
+msgid " a qualified-id is required"
+msgstr " неопходан је одређен ид."
+
+#: cp/typeck.c:3698
+#, gcc-internal-format
+msgid "parenthesis around %qE cannot be used to form a pointer-to-member-function"
+msgstr "заграде око %qE не могу бити коришћене за добијање показивача-на-чланску-функцију"
+
+#: cp/typeck.c:3721
+#, gcc-internal-format
+msgid "taking address of temporary"
+msgstr "узимање адресе привременог"
+
+#: cp/typeck.c:3965
+#, gcc-internal-format
+msgid "ISO C++ forbids %sing an enum"
+msgstr "ИСО Ц++ забрањује %s-вање набрајања"
+
+#: cp/typeck.c:3976
+#, gcc-internal-format
+msgid "cannot %s a pointer to incomplete type %qT"
+msgstr "не може се %s показивач на непотпуни тип %qT"
+
+#: cp/typeck.c:3982
+#, gcc-internal-format
+msgid "ISO C++ forbids %sing a pointer of type %qT"
+msgstr "ИСО Ц++ забрањује %s-вање показивача типа %qT"
+
+#: cp/typeck.c:4007
+#, gcc-internal-format
+msgid "cast to non-reference type used as lvalue"
+msgstr "претапање у не-упућивачки тип употребљено као л-вредност"
+
+#: cp/typeck.c:4042
+#, gcc-internal-format
+msgid "invalid use of %<--%> on bool variable %qD"
+msgstr "неисправна употреба %<--%> на логичкој променљивој %qD"
+
+#. ARM $3.4
+#: cp/typeck.c:4071
+#, gcc-internal-format
+msgid "ISO C++ forbids taking address of function %<::main%>"
+msgstr "ИСО Ц++ забрањује узимање адресе функције %<::main%>"
+
+#. An expression like &memfn.
+#: cp/typeck.c:4125
+#, gcc-internal-format
+msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say %<&%T::%D%>"
+msgstr "ИСО Ц++ забрањује узимање адресе неодређене или заграћене нестатичке чланске функције, за добијање показивача на чланску функцију. Употребите %<&%T::%D%>"
+
+#: cp/typeck.c:4130
+#, gcc-internal-format
+msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say %<&%T::%D%>"
+msgstr "ИСО Ц++ забрањује узимање адресе везане чланске функције за добијање показивача на чланску функцију. Употребите %<&%T::%D%>"
+
+#: cp/typeck.c:4158
+#, gcc-internal-format
+msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
+msgstr "ИСО Ц++ забрањује узимање адресе претапања у не-л-вредносни израз"
+
+#: cp/typeck.c:4178
+#, gcc-internal-format
+msgid "cannot create pointer to reference member %qD"
+msgstr "не може се створити показивач на упућивачки члан %qD"
+
+#: cp/typeck.c:4410
+#, gcc-internal-format
+msgid "cannot take the address of %<this%>, which is an rvalue expression"
+msgstr "не може се узети адреса од %<this%>, јер је д-вредносни израз"
+
+#: cp/typeck.c:4433
+#, gcc-internal-format
+msgid "address of explicit register variable %qD requested"
+msgstr "затражена је адреса експлицитне регистарске променљиве %qD"
+
+#: cp/typeck.c:4438
+#, gcc-internal-format
+msgid "address requested for %qD, which is declared %<register%>"
+msgstr "затражена је адреса од %qD, а декларисано је као %<register%>"
+
+#: cp/typeck.c:4504
+#, gcc-internal-format
+msgid "%s expression list treated as compound expression"
+msgstr "листа израза %s узима се као сложени израз"
+
+#: cp/typeck.c:4898
+#, gcc-internal-format
+msgid "invalid static_cast from type %qT to type %qT"
+msgstr "неисправно статичко претапање из типа %qT у тип %qT"
+
+#: cp/typeck.c:4920
+#, gcc-internal-format
+msgid "converting from %qT to %qT"
+msgstr "претварање из %qT у %qT"
+
+#: cp/typeck.c:4965
+#, gcc-internal-format
+msgid "invalid cast of an rvalue expression of type %qT to type %qT"
+msgstr "неисправно претапање д-вредносног израза типа %qT у тип %qT"
+
+#: cp/typeck.c:5024
+#, gcc-internal-format
+msgid "cast from %qT to %qT loses precision"
+msgstr "претапање из %qT у %qT губи на тачности"
+
+#: cp/typeck.c:5051
+#, gcc-internal-format
+msgid "cast from %qT to %qT increases required alignment of target type"
+msgstr "претапање из %qT у %qT повећава неопходно равнање циљног типа"
+
+#. Only issue a warning, as we have always supported this
+#. where possible, and it is necessary in some cases. DR 195
+#. addresses this issue, but as of 2004/10/26 is still in
+#. drafting.
+#: cp/typeck.c:5070
+#, gcc-internal-format
+msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
+msgstr "ИСО Ц++ забрањује претапање између показивача на функцију и показивача на објекат"
+
+#: cp/typeck.c:5081
+#, gcc-internal-format
+msgid "invalid cast from type %qT to type %qT"
+msgstr "неисправно претапање из типа %qT у тип %qT"
+
+#: cp/typeck.c:5137
+#, gcc-internal-format
+msgid "invalid use of const_cast with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
+msgstr "неисправна употреба константног претапања са типом %qT, који није показивач, нити показивач на члански податак"
+
+#: cp/typeck.c:5146
+#, gcc-internal-format
+msgid "invalid use of const_cast with type %qT, which is a pointer or reference to a function type"
+msgstr "неисправна употреба константног претапања са типом %qT, који је показивач или упућивач на функцијски тип"
+
+#: cp/typeck.c:5168
+#, gcc-internal-format
+msgid "invalid const_cast of an rvalue of type %qT to type %qT"
+msgstr "неисправно константно претапање д-вредности типа %qT у тип %qT"
+
+#: cp/typeck.c:5219
+#, gcc-internal-format
+msgid "invalid const_cast from type %qT to type %qT"
+msgstr "неисправно константно претапање из типа %qT у тип %qT"
+
+#: cp/typeck.c:5287 cp/typeck.c:5292
+#, gcc-internal-format
+msgid "ISO C++ forbids casting to an array type %qT"
+msgstr "ИСО Ц++ забрањује претапање у низовни тип %qT"
+
+#: cp/typeck.c:5300
+#, gcc-internal-format
+msgid "invalid cast to function type %qT"
+msgstr "неисправно претапање у функцијски тип %qT"
+
+#: cp/typeck.c:5516
+#, gcc-internal-format
+msgid " in evaluation of %<%Q(%#T, %#T)%>"
+msgstr " у израчунавању %<%Q(%#T, %#T)%>"
+
+#: cp/typeck.c:5585
+#, gcc-internal-format
+msgid "incompatible types in assignment of %qT to %qT"
+msgstr "несагласни типови у додели %qT у %qT"
+
+#: cp/typeck.c:5592
+#, gcc-internal-format
+msgid "ISO C++ forbids assignment of arrays"
+msgstr "ИСО Ц++ забрањује доделу низова"
+
+#: cp/typeck.c:5716
+#, gcc-internal-format
+msgid " in pointer to member function conversion"
+msgstr " у претварању показивача на чланску функцију"
+
+#: cp/typeck.c:5727 cp/typeck.c:5753
+#, gcc-internal-format
+msgid "pointer to member cast via virtual base %qT"
+msgstr "претапање показивача на члан преко виртуелне основе %qT"
+
+#: cp/typeck.c:5730
+#, gcc-internal-format
+msgid "pointer to member conversion via virtual base %qT"
+msgstr "претварање показивача на члан преко виртуелне основе %qT"
+
+#: cp/typeck.c:5739
+#, gcc-internal-format
+msgid " in pointer to member conversion"
+msgstr " у претварању показивача на члан"
+
+#: cp/typeck.c:5829
+#, gcc-internal-format
+msgid "invalid conversion to type %qT from type %qT"
+msgstr "неисправно претварање у тип %qT из типа %qT"
+
+#: cp/typeck.c:6073
+#, gcc-internal-format
+msgid "cannot convert %qT to %qT for argument %qP to %qD"
+msgstr "не може се претворити %qT у %qT као аргумент %qP за %qD"
+
+#: cp/typeck.c:6076
+#, gcc-internal-format
+msgid "cannot convert %qT to %qT in %s"
+msgstr "не може се претворити %qT у %qT у %s"
+
+#: cp/typeck.c:6087
+#, gcc-internal-format
+msgid "%s might be a candidate for a format attribute"
+msgstr "%s може бити кандидат за форматски атрибут"
+
+#: cp/typeck.c:6160 cp/typeck.c:6162
+#, gcc-internal-format
+msgid "in passing argument %P of %q+D"
+msgstr "у прослеђивању аргумента %P за %q+D"
+
+#: cp/typeck.c:6212
+#, gcc-internal-format
+msgid "returning reference to temporary"
+msgstr "враћање упућивача на привремени"
+
+#: cp/typeck.c:6219
+#, gcc-internal-format
+msgid "reference to non-lvalue returned"
+msgstr "враћање упућивача на не-л-вредност"
+
+#: cp/typeck.c:6231
+#, gcc-internal-format
+msgid "reference to local variable %q+D returned"
+msgstr "враћање упућивача на локалну променљиву %q+D"
+
+#: cp/typeck.c:6234
+#, gcc-internal-format
+msgid "address of local variable %q+D returned"
+msgstr "враћање адресе локалне променљиве %q+D"
+
+#: cp/typeck.c:6268
+#, gcc-internal-format
+msgid "returning a value from a destructor"
+msgstr "враћање вредности из деструктора"
+
+#. If a return statement appears in a handler of the
+#. function-try-block of a constructor, the program is ill-formed.
+#: cp/typeck.c:6276
+#, gcc-internal-format
+msgid "cannot return from a handler of a function-try-block of a constructor"
+msgstr "не може се враћати из руковаоца у блоку покушаја у конструктору"
+
+#. You can't return a value from a constructor.
+#: cp/typeck.c:6279
+#, gcc-internal-format
+msgid "returning a value from a constructor"
+msgstr "враћање вредности из конструктора"
+
+#: cp/typeck.c:6302
+#, gcc-internal-format
+msgid "return-statement with no value, in function returning %qT"
+msgstr "наредба враћања без вредности, у функцији која враћа %qT"
+
+#: cp/typeck.c:6323
+#, gcc-internal-format
+msgid "return-statement with a value, in function returning 'void'"
+msgstr "наредба враћања са вредношћу, у функцији која враћа ‘void’"
+
+#: cp/typeck.c:6354
+#, gcc-internal-format
+msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or -fcheck-new is in effect)"
+msgstr "%<operator new%> не сме вратити NULL, осим ако је декларисан уз %<throw()%> (или је задато -fcheck-new)"
+
+#: cp/typeck2.c:54
+#, gcc-internal-format
+msgid "type %qT is not a base type for type %qT"
+msgstr "тип %qT није основни тип за тип %qT"
+
+#: cp/typeck2.c:294
+#, gcc-internal-format
+msgid "cannot declare variable %q+D to be of abstract type %qT"
+msgstr "не може се декларисати променљива %q+D апстрактног типа %qT"
+
+#: cp/typeck2.c:297
+#, gcc-internal-format
+msgid "cannot declare parameter %q+D to be of abstract type %qT"
+msgstr "не може се декларисати параметар %q+D апстрактног типа %qT"
+
+#: cp/typeck2.c:300
+#, gcc-internal-format
+msgid "cannot declare field %q+D to be of abstract type %qT"
+msgstr "не може се декларисати поље %q+D апстрактног типа %qT"
+
+#: cp/typeck2.c:304
+#, gcc-internal-format
+msgid "invalid abstract return type for member function %q+#D"
+msgstr "неисправан апстрактни повратни тип за чланску функцију %q+#D"
+
+#: cp/typeck2.c:306
+#, gcc-internal-format
+msgid "invalid abstract return type for function %q+#D"
+msgstr "неисправан апстрактни повратни тип за функцију %q+#D"
+
+#. Here we do not have location information.
+#: cp/typeck2.c:309
+#, gcc-internal-format
+msgid "invalid abstract type %qT for %qE"
+msgstr "неисправан апстрактни тип %qT за %qE"
+
+#: cp/typeck2.c:311
+#, gcc-internal-format
+msgid "invalid abstract type for %q+D"
+msgstr "неисправан апстрактни тип за %q+D"
+
+#: cp/typeck2.c:314
+#, gcc-internal-format
+msgid "cannot allocate an object of abstract type %qT"
+msgstr "не може се резервисати објекат апстрактног типа %qT"
+
+#: cp/typeck2.c:322
+#, gcc-internal-format
+msgid "%J because the following virtual functions are pure within %qT:"
+msgstr "%J јер су следеће виртуелне функције чисте у оквиру %qT:"
+
+#: cp/typeck2.c:326
+#, gcc-internal-format
+msgid "\t%+#D"
+msgstr "\t%+#D"
+
+#: cp/typeck2.c:333
+#, gcc-internal-format
+msgid "%J since type %qT has pure virtual functions"
+msgstr "%J пошто тип %qT има чисте виртуелне функције"
+
+#: cp/typeck2.c:588
+#, gcc-internal-format
+msgid "constructor syntax used, but no constructor declared for type %qT"
+msgstr "употребљена синтакса конструктора, али конструктор није декларисан за тип %qT"
+
+#: cp/typeck2.c:602
+#, gcc-internal-format
+msgid "cannot initialize arrays using this syntax"
+msgstr "низ се не може успостављати овом синтаксом"
+
+#: cp/typeck2.c:678
+#, gcc-internal-format
+msgid "int-array initialized from non-wide string"
+msgstr "int-низ успостављен из не-широке ниске"
+
+#: cp/typeck2.c:717
+#, gcc-internal-format
+msgid "cannot initialize aggregate of type %qT with a compound literal"
+msgstr "скупина типа %qT не може се успостављати сложеном константном"
+
+#: cp/typeck2.c:791 cp/typeck2.c:911
+#, gcc-internal-format
+msgid "non-trivial designated initializers not supported"
+msgstr "нетривијални утврђени успостављачи нису подржани"
+
+#: cp/typeck2.c:934 cp/typeck2.c:948
+#, gcc-internal-format
+msgid "missing initializer for member %qD"
+msgstr "недостаје успостављач за члан %qD"
+
+#: cp/typeck2.c:939
+#, gcc-internal-format
+msgid "uninitialized const member %qD"
+msgstr "неуспостављени константни члан %qD"
+
+#: cp/typeck2.c:941
+#, gcc-internal-format
+msgid "member %qD with uninitialized const fields"
+msgstr "члан %qD са неуспостављеним константним пољима"
+
+#: cp/typeck2.c:943
+#, gcc-internal-format
+msgid "member %qD is uninitialized reference"
+msgstr "члан %qD је неуспостављен упућивач"
+
+#: cp/typeck2.c:998
+#, gcc-internal-format
+msgid "no field %qD found in union being initialized"
+msgstr "поље %qD није нађено у унији која се успоставља"
+
+#: cp/typeck2.c:1007
+#, gcc-internal-format
+msgid "index value instead of field name in union initializer"
+msgstr "индексна вредност уместо имена поља у успостављачу уније"
+
+#: cp/typeck2.c:1020
+#, gcc-internal-format
+msgid "union %qT with no named members cannot be initialized"
+msgstr "унија %qT без именованих чланова не може се успостављати"
+
+#: cp/typeck2.c:1167
+#, gcc-internal-format
+msgid "circular pointer delegation detected"
+msgstr "откривено кружно прослеђивање показивача"
+
+#: cp/typeck2.c:1180
+#, gcc-internal-format
+msgid "base operand of %<->%> has non-pointer type %qT"
+msgstr "основни операнд за %<->%> непоказивачког је типа %qT"
+
+#: cp/typeck2.c:1204
+#, gcc-internal-format
+msgid "result of %<operator->()%> yields non-pointer result"
+msgstr "%<operator->()%> производи непоказивачки резултат"
+
+#: cp/typeck2.c:1206
+#, gcc-internal-format
+msgid "base operand of %<->%> is not a pointer"
+msgstr "основни операнд за %<->%> није показивач"
+
+#: cp/typeck2.c:1230
+#, gcc-internal-format
+msgid "%qE cannot be used as a member pointer, since it is of type %qT"
+msgstr "%qE се не може користити као члански показивач, пошто је типа %qT"
+
+#: cp/typeck2.c:1239
+#, gcc-internal-format
+msgid "cannot apply member pointer %qE to %qE, which is of non-aggregate type %qT"
+msgstr "члански показивач %qE не може се применити на %qE, које је нескупинског типа %qT"
+
+#: cp/typeck2.c:1261
+#, gcc-internal-format
+msgid "pointer to member type %qT incompatible with object type %qT"
+msgstr "тип показивача на члан %qT није сагласан са типом објекта %qT"
+
+#: cp/typeck2.c:1484
+#, gcc-internal-format
+msgid "call to function %qD which throws incomplete type %q#T"
+msgstr "позив функције %qD која баца непотпун тип %q#T"
+
+#: cp/typeck2.c:1487
+#, gcc-internal-format
+msgid "call to function which throws incomplete type %q#T"
+msgstr "позив функције која баца непотпун тип %q#T"
+
+#: fortran/f95-lang.c:266
+#, gcc-internal-format
+msgid "Unexpected type in truthvalue_conversion"
+msgstr "Неочекивани тип у претварању истинитосне вредности"
+
+#: fortran/f95-lang.c:319
+#, gcc-internal-format
+msgid "can't open input file: %s"
+msgstr "не могу да отворим улазну датотеку: %s"
+
+#: fortran/f95-lang.c:646
+#, gcc-internal-format
+msgid "global register variable %qs used in nested function"
+msgstr "глобална регистарска променљива %qs употребљена у угњежденој функцији"
+
+#: fortran/f95-lang.c:650
+#, gcc-internal-format
+msgid "register variable %qs used in nested function"
+msgstr "регистарска променљива %qs употребљена у угњежденој функцији"
+
+#: fortran/f95-lang.c:657
+#, gcc-internal-format
+msgid "address of global register variable %qs requested"
+msgstr "затражена адреса глобалне регистарске променљиве %qs"
+
+#: fortran/f95-lang.c:675
+#, gcc-internal-format
+msgid "address of register variable %qs requested"
+msgstr "затражена адреса регистарске променљиве %qs"
+
+#: fortran/trans-array.c:3136
+#, gcc-internal-format
+msgid "Possible frontend bug: array constructor not expanded"
+msgstr "Могућа грешка у прочељу: конструктор низа није проширен"
+
+#: fortran/trans-array.c:4271
+#, gcc-internal-format
+msgid "Possible frontend bug: Deferred array size without pointer or allocatable attribute."
+msgstr "Могућа грешка у прочељу: Низ одложене величине без показивача или атрибута који се може резервисати."
+
+#: fortran/trans-array.c:4722
+#, gcc-internal-format
+msgid "bad expression type during walk (%d)"
+msgstr "лош тип израза током хода (%d)"
+
+#: fortran/trans-const.c:334
+#, gcc-internal-format
+msgid "gfc_conv_constant_to_tree(): invalid type: %s"
+msgstr "gfc_conv_constant_to_tree(): неисправан тип: %s"
+
+#: fortran/trans-decl.c:901
+#, gcc-internal-format
+msgid "intrinsic variable which isn't a procedure"
+msgstr "сопствена променљива која није процедура"
+
+#: fortran/trans-decl.c:2291
+#, gcc-internal-format
+msgid "Function does not return a value"
+msgstr "Функција не враћа вредност"
+
+#. I don't think this should ever happen.
+#: fortran/trans-decl.c:2401
+#, gcc-internal-format
+msgid "module symbol %s in wrong namespace"
+msgstr "модулски симбол %s у погрешном именском простору"
+
+#: fortran/trans-decl.c:2420
+#, gcc-internal-format
+msgid "backend decl for module variable %s already exists"
+msgstr "декларација зачеља за модулску променљиву %s већ постоји"
+
+#: fortran/trans-decl.c:2502
+#, gcc-internal-format
+msgid "unused parameter %qs"
+msgstr "неупотребљен параметар %qs"
+
+#: fortran/trans-decl.c:2507
+#, gcc-internal-format
+msgid "unused variable %qs"
+msgstr "неупотребљена променљива %qs"
+
+#: fortran/trans-decl.c:2727
+#, gcc-internal-format
+msgid "Function return value not set"
+msgstr "Повратна вредност функције није постављена"
+
+#: fortran/trans-expr.c:1052
+#, gcc-internal-format
+msgid "Unknown intrinsic op"
+msgstr "Непознат сопствени оператор"
+
+#: fortran/trans-intrinsic.c:651
+#, gcc-internal-format
+msgid "Intrinsic function %s(%d) not recognized"
+msgstr "Сопствена функција %s(%d) није препозната"
+
+#: fortran/trans-io.c:1738
+#, gcc-internal-format
+msgid "Bad IO basetype (%d)"
+msgstr "Лош У/И основни тип (%d)"
+
+#: fortran/trans-types.c:213
+#, gcc-internal-format
+msgid "integer kind=8 not available for -fdefault-integer-8 option"
+msgstr "целобројна врста =8 није доступна уз опцију -fdefault-integer-8"
+
+#: fortran/trans-types.c:225
+#, gcc-internal-format
+msgid "real kind=8 not available for -fdefault-real-8 option"
+msgstr "реална врста =8 није доступна уз опцију -fdefault-real-8"
+
+#: fortran/trans-types.c:238
+#, gcc-internal-format
+msgid "Use of -fdefault-double-8 requires -fdefault-real-8"
+msgstr "Употреба -fdefault-double-8 захтева и -fdefault-real-8"
+
+#: fortran/trans-types.c:950
+#, gcc-internal-format
+msgid "Array element size too big"
+msgstr "Величина елемента низа превелика"
+
+#: fortran/trans.c:625
+#, gcc-internal-format
+msgid "gfc_trans_code(): Bad statement code"
+msgstr "gfc_trans_code(): лош кôд наредбе"
+
+#. I changed this from sorry(...) because it should not return.
+#. TODO: Remove gfc_todo_error before releasing version 1.0.
+#: fortran/trans.h:590
+#, gcc-internal-format
+msgid "gfc_todo: Not Implemented: "
+msgstr "gfc_todo: није имплементирано: "
+
+#: java/check-init.c:248
+#, gcc-internal-format
+msgid "Can't reassign a value to the final variable %qs"
+msgstr "Не може се поново доделити вредност коначној променљивој %qs"
+
+#: java/check-init.c:518 java/check-init.c:531
+#, gcc-internal-format
+msgid "variable %qD may not have been initialized"
+msgstr "променљива %qD можда није успостављена"
+
+#: java/check-init.c:948
+#, gcc-internal-format
+msgid "internal error in check-init: tree code not implemented: %s"
+msgstr "унутрашња грешка у check-init: кôд стабла није имплементиран: %s"
+
+#: java/check-init.c:1021
+#, gcc-internal-format
+msgid "%Jfinal field %qD may not have been initialized"
+msgstr "%Jконачно поље %qD можда није успостављено"
+
+#: java/class.c:766
+#, gcc-internal-format
+msgid "bad method signature"
+msgstr "лош потпис метода"
+
+#: java/class.c:811
+#, gcc-internal-format
+msgid "misplaced ConstantValue attribute (not in any field)"
+msgstr "атрибут ConstantValue на погрешном месту (ван поља)"
+
+#: java/class.c:814
+#, gcc-internal-format
+msgid "duplicate ConstantValue attribute for field '%s'"
+msgstr "удвостручени атрибут ConstantValue за поље ‘%s’"
+
+#: java/class.c:825
+#, gcc-internal-format
+msgid "ConstantValue attribute of field '%s' has wrong type"
+msgstr "атрибут ConstantValue поља ‘%s’ има погрешан тип"
+
+#: java/class.c:1453
+#, gcc-internal-format
+msgid "%Jabstract method in non-abstract class"
+msgstr "%Jапстрактан метод у не-апстрактној класи"
+
+#: java/class.c:2389
+#, gcc-internal-format
+msgid "non-static method %q+D overrides static method"
+msgstr "нестатички метод %q+D потискује статички метод"
+
+#: java/decl.c:1328
+#, gcc-internal-format
+msgid "%q+D used prior to declaration"
+msgstr "%q+D употребљено пре декларисања"
+
+#: java/decl.c:1369
+#, gcc-internal-format
+msgid "declaration of %qs shadows a parameter"
+msgstr "декларација %qs заклања параметар"
+
+#: java/decl.c:1372
+#, gcc-internal-format
+msgid "declaration of %qs shadows a symbol from the parameter list"
+msgstr "декларација %qs заклања симбол у листи параметара"
+
+#: java/decl.c:1833
+#, gcc-internal-format
+msgid "In %+D: overlapped variable and exception ranges at %d"
+msgstr "У %+D: преклопљена променљива и опсези изузетака код %d"
+
+#: java/decl.c:1896
+#, gcc-internal-format
+msgid "bad type in parameter debug info"
+msgstr "лош тип у исправљачким подацима параметара"
+
+#: java/decl.c:1905
+#, gcc-internal-format
+msgid "bad PC range for debug info for local %q+D"
+msgstr "лош опсег ПЦа за исправљачке податке локалног %q+D"
+
+#: java/expr.c:373
+#, gcc-internal-format
+msgid "need to insert runtime check for %s"
+msgstr "треба убацити проверу при извршавању за %s"
+
+#: java/expr.c:502 java/expr.c:549
+#, gcc-internal-format
+msgid "assert: %s is assign compatible with %s"
+msgstr "тврдња: %s је доделом сагласно са %s"
+
+#: java/expr.c:669
+#, gcc-internal-format
+msgid "stack underflow - dup* operation"
+msgstr "подливање стека - dup* операција"
+
+#: java/expr.c:1655
+#, gcc-internal-format
+msgid "reference %qs is ambiguous: appears in interface %qs and interface %qs"
+msgstr "двосмислен упућивач %qs: појављује се у сучељу %qs и сучељу %qs"
+
+#: java/expr.c:1683
+#, gcc-internal-format
+msgid "field %qs not found"
+msgstr "поље %qs није нађено"
+
+#: java/expr.c:2092
+#, gcc-internal-format
+msgid "method '%s' not found in class"
+msgstr "метод ‘%s’ није нађен у класи"
+
+#: java/expr.c:2297
+#, gcc-internal-format
+msgid "failed to find class '%s'"
+msgstr "класа ‘%s’ није нађена"
+
+#: java/expr.c:2335
+#, gcc-internal-format
+msgid "class '%s' has no method named '%s' matching signature '%s'"
+msgstr "класа ‘%s’ нема метод по имену ‘%s’ који одговара потпису ‘%s’"
+
+#: java/expr.c:2366
+#, gcc-internal-format
+msgid "invokestatic on non static method"
+msgstr "invokestatic на нестатичком методу"
+
+#: java/expr.c:2371
+#, gcc-internal-format
+msgid "invokestatic on abstract method"
+msgstr "invokestatic на апстрактном методу"
+
+#: java/expr.c:2379
+#, gcc-internal-format
+msgid "invoke[non-static] on static method"
+msgstr "invoke[non-static] на статичком методу"
+
+#: java/expr.c:2705
+#, gcc-internal-format
+msgid "missing field '%s' in '%s'"
+msgstr "недостаје поље ‘%s’ у ‘%s’"
+
+#: java/expr.c:2712
+#, gcc-internal-format
+msgid "mismatching signature for field '%s' in '%s'"
+msgstr "неслагање потписа за поље ‘%s’ у ‘%s’"
+
+#: java/expr.c:2735
+#, gcc-internal-format
+msgid "assignment to final field %q+D not in field's class"
+msgstr "додела у коначно поље %q+D није у његовој класи"
+
+#: java/expr.c:2740
+#, gcc-internal-format
+msgid "assignment to final static field %q+D not in class initializer"
+msgstr "додела у коначно статичко поље %q+D није у успостављачу класе"
+
+#: java/expr.c:2749
+#, gcc-internal-format
+msgid "assignment to final field %q+D not in constructor"
+msgstr "додела у коначно поље %q+D није у конструктору"
+
+#: java/expr.c:2939
+#, gcc-internal-format
+msgid "invalid PC in line number table"
+msgstr "неисправан ПЦ у табели бројева линија"
+
+#: java/expr.c:2987
+#, gcc-internal-format
+msgid "unreachable bytecode from %d to before %d"
+msgstr "недостижан бајткод од %d до пре %d"
+
+#: java/expr.c:3029
+#, gcc-internal-format
+msgid "unreachable bytecode from %d to the end of the method"
+msgstr "недостижан бајткод од %d до краја метода"
+
+#. duplicate code from LOAD macro
+#: java/expr.c:3329
+#, gcc-internal-format
+msgid "unrecogized wide sub-instruction"
+msgstr "непрепозната широка подинструкција"
+
+#: java/gjavah.c:718
+#, gcc-internal-format
+msgid "static field has same name as method"
+msgstr "статичко поље истог имена као и метод"
+
+#: java/gjavah.c:1266
+#, gcc-internal-format
+msgid "couldn't find class %s"
+msgstr "не могу да нађем класу %s"
+
+#: java/gjavah.c:1273
+#, gcc-internal-format
+msgid "parse error while reading %s"
+msgstr "грешка у рашчлањивању при читању %s"
+
+#: java/gjavah.c:1499 java/gjavah.c:1601 java/gjavah.c:1676
+#, gcc-internal-format
+msgid "unparseable signature: '%s'"
+msgstr "нерашчлањив потпис: ‘%s’"
+
+#: java/gjavah.c:2066
+#, gcc-internal-format
+msgid "Not a valid Java .class file."
+msgstr "Није исправна јаванска класна датотека."
+
+#: java/gjavah.c:2074 java/jcf-parse.c:756
+#, gcc-internal-format
+msgid "error while parsing constant pool"
+msgstr "грешка при рашчлањивању депоа константи"
+
+#: java/gjavah.c:2080
+#, gcc-internal-format
+msgid "error in constant pool entry #%d"
+msgstr "грешка у ставци #%d у депоу константи"
+
+#: java/gjavah.c:2223
+#, gcc-internal-format
+msgid "class is of array type\n"
+msgstr "класа је низовног типа\n"
+
+#: java/gjavah.c:2231
+#, gcc-internal-format
+msgid "base class is of array type"
+msgstr "основна класа је низовног типа"
+
+#: java/gjavah.c:2429 java/gjavah.c:2556
+#, gcc-internal-format
+msgid "no classes specified"
+msgstr "није наведена ниједна класа"
+
+#: java/gjavah.c:2522
+#, gcc-internal-format
+msgid "'-MG' option is unimplemented"
+msgstr "опција -MG није имплементирана"
+
+#: java/gjavah.c:2564
+#, gcc-internal-format
+msgid "can't specify both -o and -MD"
+msgstr "не може се задати и -o и -MD"
+
+#: java/gjavah.c:2587
+#, gcc-internal-format
+msgid "%s: no such class"
+msgstr "%s: нема такве класе"
+
+#: java/jcf-io.c:550
+#, gcc-internal-format
+msgid "source file for class %qs is newer than its matching class file. Source file %qs used instead"
+msgstr "изворна датотека класе %qs новија је од одговарајуће класне датотеке. Стога се користи изворна датотека %qs"
+
+#: java/jcf-parse.c:372
+#, gcc-internal-format
+msgid "bad string constant"
+msgstr "лоша константна ниска"
+
+#: java/jcf-parse.c:390
+#, gcc-internal-format
+msgid "bad value constant type %d, index %d"
+msgstr "лоша вредност константе типа %d, индекс %d"
+
+#: java/jcf-parse.c:582
+#, gcc-internal-format
+msgid "can't reopen %s: %m"
+msgstr "не могу поново да отворим %s: %m"
+
+#: java/jcf-parse.c:589
+#, gcc-internal-format
+msgid "can't close %s: %m"
+msgstr "не могу да затворим %s: %m"
+
+#: java/jcf-parse.c:724 java/jcf-parse.c:730
+#, gcc-internal-format
+msgid "cannot find file for class %s"
+msgstr "не могу да нађем датотеку за класу %s"
+
+#: java/jcf-parse.c:753
+#, gcc-internal-format
+msgid "not a valid Java .class file"
+msgstr "није исправна јаванска класна датотека"
+
+#. FIXME - where was first time
+#: java/jcf-parse.c:771
+#, gcc-internal-format
+msgid "reading class %s for the second time from %s"
+msgstr "читам класу %s по други пут из %s"
+
+#: java/jcf-parse.c:789
+#, gcc-internal-format
+msgid "error while parsing fields"
+msgstr "грешка при рашчлањивању поља"
+
+#: java/jcf-parse.c:792
+#, gcc-internal-format
+msgid "error while parsing methods"
+msgstr "грешка при рашчлањивању метода"
+
+#: java/jcf-parse.c:795
+#, gcc-internal-format
+msgid "error while parsing final attributes"
+msgstr "грешка при рашчлањивању коначних атрибута"
+
+#: java/jcf-parse.c:812
+#, gcc-internal-format
+msgid "the %<java.lang.Object%> that was found in %qs didn't have the special zero-length %<gnu.gcj.gcj-compiled%> attribute. This generally means that your classpath is incorrectly set. Use %<info gcj \"Input Options\"%> to see the info page describing how to set the classpath"
+msgstr "%<java.lang.Object%> која је нађена у %qs нема посебан атрибут %<gnu.gcj.gcj-compiled%> нулте дужине. Ово обично значи да је вам је класна путања погрешно постављена. Позовите %<info gcj \"Input Options\"%> за информације о постављању класне путање"
+
+#: java/jcf-parse.c:846
+#, gcc-internal-format
+msgid "%Hduplicate class will only be compiled once"
+msgstr "%Hудвостручена класа ће бити компилована само једном"
+
+#: java/jcf-parse.c:900
+#, gcc-internal-format
+msgid "missing Code attribute"
+msgstr "недостаје атрибут Code"
+
+#: java/jcf-parse.c:1182
+#, gcc-internal-format
+msgid "no input file specified"
+msgstr "није наведена ниједна улазна датотека"
+
+#: java/jcf-parse.c:1217
+#, gcc-internal-format
+msgid "can't close input file %s: %m"
+msgstr "не могу да затворим улазну датотеку %s: %m"
+
+#: java/jcf-parse.c:1264
+#, gcc-internal-format
+msgid "bad zip/jar file %s"
+msgstr "лоша ЗИП/ЈАР датотека %s"
+
+#: java/jcf-parse.c:1485
+#, gcc-internal-format
+msgid "error while reading %s from zip file"
+msgstr "грешка при читању %s из ЗИП датотеке"
+
+#: java/jcf-write.c:2668
+#, gcc-internal-format
+msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
+msgstr "унутрашња грешка у generate_bytecode_insn — кôд стабла није имплементиран: %s"
+
+#: java/jcf-write.c:3042
+#, gcc-internal-format
+msgid "field initializer type mismatch"
+msgstr "неслагање типа успостављача поља"
+
+#: java/jcf-write.c:3499
+#, gcc-internal-format
+msgid "can't create directory %s: %m"
+msgstr "не могу да направим директоријум %s: %m"
+
+#: java/jcf-write.c:3532
+#, gcc-internal-format
+msgid "can't open %s for writing: %m"
+msgstr "не могу да отворим %s за писање: %m"
+
+#: java/jcf-write.c:3552
+#, gcc-internal-format
+msgid "can't create %s: %m"
+msgstr "не могу да направим %s: %m"
+
+#: java/jv-scan.c:194
+#, gcc-internal-format
+msgid "only one of '--print-main', '--list-class', and '--complexity' allowed"
+msgstr "дозвољено је само једно од --print-main, --list-class, и --complexity"
+
+#: java/jv-scan.c:197
+#, gcc-internal-format
+msgid "can't open output file '%s'"
+msgstr "не могу да отворим излазну датотеку ‘%s’"
+
+#: java/jv-scan.c:233
+#, gcc-internal-format
+msgid "file not found '%s'"
+msgstr "датотека није нађена ‘%s’"
+
+#: java/jvspec.c:436
+#, gcc-internal-format
+msgid "warning: already-compiled .class files ignored with -C"
+msgstr "упозорење: већ компиловане класне датотеке игноришу се при -C"
+
+#: java/lang.c:626
+#, gcc-internal-format
+msgid "can't do dependency tracking with input from stdin"
+msgstr "не могу се пратити зависности при уносу са стдул"
+
+#: java/lang.c:642
+#, gcc-internal-format
+msgid "couldn't determine target name for dependency tracking"
+msgstr "нисам могао да одредим име циља ради праћења зависности"
+
+#: java/lex.c:260
+#, gcc-internal-format
+msgid ""
+"unknown encoding: %qs\n"
+"This might mean that your locale's encoding is not supported\n"
+"by your system's iconv(3) implementation. If you aren't trying\n"
+"to use a particular encoding for your input file, try the\n"
+"%<--encoding=UTF-8%> option"
+msgstr ""
+"непознато кодирање: %qs\n"
+"Ово може значити да кодирање вашег локалитета није подржано\n"
+"системском имплементацијом iconv(3). Ако не покушавате да\n"
+"користите неко посебно кодирање за улазну датотеку, покушајте\n"
+"са опцијом %<--encoding=UTF-8%>"
+
+#: java/lex.c:631
+#, gcc-internal-format
+msgid "internal error - bad unget"
+msgstr "унутрашња грешка — лоше unget"
+
+#: java/mangle_name.c:140 java/mangle_name.c:210
+#, gcc-internal-format
+msgid "internal error - invalid Utf8 name"
+msgstr "унутрашња грешка - неисправно UTF8-ns име"
+
+#: java/typeck.c:531
+#, gcc-internal-format
+msgid "junk at end of signature string"
+msgstr "смеће на крају ниске потписа"
+
+#: java/verify-glue.c:387
+#, gcc-internal-format
+msgid "verification failed: %s"
+msgstr "овера није успела: %s"
+
+#: java/verify-glue.c:389
+#, gcc-internal-format
+msgid "verification failed at PC=%d: %s"
+msgstr "овера није успела код ПЦ=%d: %s"
+
+#: java/verify-glue.c:473
+#, gcc-internal-format
+msgid "bad pc in exception_table"
+msgstr "лош ПЦ у табели изузетака"
+
+#: java/parse.h:129
+#, gcc-internal-format
+msgid "%s method can't be abstract"
+msgstr "Метод %s не може бити апстрактан"
+
+#: java/parse.h:133
+#, gcc-internal-format
+msgid "Constructor can't be %s"
+msgstr "Конструктор не може бити %s"
+
+#. Standard error messages
+#: java/parse.h:356
+#, gcc-internal-format
+msgid "Incompatible type for %qs. Can't convert %qs to boolean"
+msgstr "Несагласни типови за %qs. Не може се %qs претворити у логичко"
+
+#: java/parse.h:361
+#, gcc-internal-format
+msgid "Incompatible type for %qs. Can't convert %qs to numeric type"
+msgstr "Несагласни типови за %qs. Не може се %qs претворити у бројевни тип"
+
+#: java/parse.h:369
+#, gcc-internal-format
+msgid "Incompatible type for %qs. Explicit cast needed to convert %qs to integral"
+msgstr "Несагласни типови за %qs. За претварање %qs у интегрално, потребно је експлицитно претапање"
+
+#: java/parse.h:374
+#, gcc-internal-format
+msgid "Incompatible type for %qs. Can't convert %qs to integral"
+msgstr "Несагласни типови за %qs. Не може се %qs претворити у интегрално"
+
+#: java/parse.h:381
+#, gcc-internal-format
+msgid "Variable %qs may not have been initialized"
+msgstr "Променљива %qs можда није успостављена"
+
+#: objc/objc-act.c:710
+#, gcc-internal-format
+msgid "%<@end%> must appear in an @implementation context"
+msgstr "%<@end%> се мора јавити у контексту @implementation"
+
+#: objc/objc-act.c:739
+#, gcc-internal-format
+msgid "method declaration not in @interface context"
+msgstr "декларација метода није у контексту @interface"
+
+#: objc/objc-act.c:750
+#, gcc-internal-format
+msgid "method definition not in @implementation context"
+msgstr "дефиниција метода није у контексту @implementation"
+
+#: objc/objc-act.c:1174
+#, gcc-internal-format
+msgid "comparison of distinct Objective-C types lacks a cast"
+msgstr "поређењу различитих типова објективног Ц-а недостаје претапање"
+
+#: objc/objc-act.c:1178
+#, gcc-internal-format
+msgid "initialization from distinct Objective-C type"
+msgstr "успостављање из различитог типа објективног Ц-а"
+
+#: objc/objc-act.c:1182
+#, gcc-internal-format
+msgid "assignment from distinct Objective-C type"
+msgstr "додела из различитог типа објективног Ц-а"
+
+#: objc/objc-act.c:1186
+#, gcc-internal-format
+msgid "distinct Objective-C type in return"
+msgstr "враћање различитог типа објективног Ц-а"
+
+#: objc/objc-act.c:1190
+#, gcc-internal-format
+msgid "passing argument %d of %qE from distinct Objective-C type"
+msgstr "прослеђивање аргумента %d за %qE из различитог типа објективног Ц-а"
+
+#: objc/objc-act.c:1345
+#, gcc-internal-format
+msgid "statically allocated instance of Objective-C class %qs"
+msgstr "статички резервисан примерак класе објективног Ц-а %qs"
+
+#: objc/objc-act.c:1416
+#, gcc-internal-format
+msgid "protocol %qs has circular dependency"
+msgstr "протокол %qs има кружну зависност"
+
+#: objc/objc-act.c:1438 objc/objc-act.c:6571
+#, gcc-internal-format
+msgid "cannot find protocol declaration for %qs"
+msgstr "не могу да нађем декларацију протокола за %qs"
+
+#: objc/objc-act.c:1905 objc/objc-act.c:3339 objc/objc-act.c:7183
+#: objc/objc-act.c:7519 objc/objc-act.c:7573 objc/objc-act.c:7598
+#, gcc-internal-format
+msgid "cannot find interface declaration for %qs"
+msgstr "не могу да нађем декларацију сучеља за %qs"
+
+#: objc/objc-act.c:1909
+#, gcc-internal-format
+msgid "interface %qs does not have valid constant string layout"
+msgstr "сучеље %qs нема исправан распоред константних ниски"
+
+#: objc/objc-act.c:1914
+#, gcc-internal-format
+msgid "cannot find reference tag for class %qs"
+msgstr "не могу да нађем ознаку упућивача за класу %qs"
+
+#: objc/objc-act.c:2539
+#, gcc-internal-format
+msgid "%Hcreating selector for nonexistent method %qE"
+msgstr "%Hправи се селектор за непостојећи метод %qE"
+
+#: objc/objc-act.c:2741
+#, gcc-internal-format
+msgid "%qs is not an Objective-C class name or alias"
+msgstr "%qs није име класе или алијаса објективног Ц-а"
+
+#: objc/objc-act.c:2867 objc/objc-act.c:2898 objc/objc-act.c:7447
+#: objc/objc-act.c:7748 objc/objc-act.c:7778
+#, gcc-internal-format
+msgid "Objective-C declarations may only appear in global scope"
+msgstr "декларације објективног Ц-а могу се јављати само у глобалном досегу"
+
+#: objc/objc-act.c:2872
+#, gcc-internal-format
+msgid "cannot find class %qs"
+msgstr "не могу да нађем класу %qs"
+
+#: objc/objc-act.c:2874
+#, gcc-internal-format
+msgid "class %qs already exists"
+msgstr "класа %qs већ постоји"
+
+#: objc/objc-act.c:2918 objc/objc-act.c:7488
+#, gcc-internal-format
+msgid "%qs redeclared as different kind of symbol"
+msgstr "%qs поново декларисано као различита врста симбола"
+
+#: objc/objc-act.c:3192
+#, gcc-internal-format
+msgid "strong-cast assignment has been intercepted"
+msgstr "пресретнута је додела с јаким претапањем"
+
+#: objc/objc-act.c:3234
+#, gcc-internal-format
+msgid "strong-cast may possibly be needed"
+msgstr "може бити потребно јако претапање"
+
+#: objc/objc-act.c:3244
+#, gcc-internal-format
+msgid "instance variable assignment has been intercepted"
+msgstr "пресретнута је додела променљиве примерка"
+
+#: objc/objc-act.c:3263
+#, gcc-internal-format
+msgid "pointer arithmetic for garbage-collected objects not allowed"
+msgstr "није дозвољена показивачка аритметика за објекте над којима се сакупља смеће"
+
+#: objc/objc-act.c:3269
+#, gcc-internal-format
+msgid "global/static variable assignment has been intercepted"
+msgstr "пресретнута је додела глобалне/статичке променљиве"
+
+#: objc/objc-act.c:3452
+#, gcc-internal-format
+msgid "use %<-fobjc-exceptions%> to enable Objective-C exception syntax"
+msgstr "употребите %<-fobjc-exceptions%> да укључите синтаксу изузетака објективног Ц-а"
+
+#: objc/objc-act.c:3794
+#, gcc-internal-format
+msgid "@catch parameter is not a known Objective-C class type"
+msgstr "параметар уз @catch није познати тип класе објективног Ц-а"
+
+#: objc/objc-act.c:3810
+#, gcc-internal-format
+msgid "exception of type %<%T%> will be caught"
+msgstr "биће ухваћен изузетак типа %<%T%>"
+
+#: objc/objc-act.c:3812
+#, gcc-internal-format
+msgid "%H by earlier handler for %<%T%>"
+msgstr "%H дејством ранијег руковаоца за %<%T%>"
+
+#: objc/objc-act.c:3865
+#, gcc-internal-format
+msgid "%<@try%> without %<@catch%> or %<@finally%>"
+msgstr "%<@try%> без %<@catch%> или %<@finally%>"
+
+#: objc/objc-act.c:3913
+#, gcc-internal-format
+msgid "%<@throw%> (rethrow) used outside of a @catch block"
+msgstr "%<@throw%> (поновно) употребљено изван блока @catch"
+
+#: objc/objc-act.c:4311
+#, gcc-internal-format
+msgid "type %q+D does not have a known size"
+msgstr "тип %q+D нема познату величину"
+
+#: objc/objc-act.c:4944
+#, gcc-internal-format
+msgid "%J%s %qs"
+msgstr "%J%s %qs"
+
+#: objc/objc-act.c:4967 objc/objc-act.c:4986
+#, gcc-internal-format
+msgid "inconsistent instance variable specification"
+msgstr "неусаглашена одредница променљиве примерка"
+
+#: objc/objc-act.c:5843
+#, gcc-internal-format
+msgid "can not use an object as parameter to a method"
+msgstr "не може се користити објекат као параметар за метод"
+
+#: objc/objc-act.c:6066
+#, gcc-internal-format
+msgid "multiple %s named %<%c%s%> found"
+msgstr "нађено више %s по имену %<%c%s%>"
+
+#: objc/objc-act.c:6295
+#, gcc-internal-format
+msgid "no super class declared in @interface for %qs"
+msgstr "надкласа није декларисана у @interface за %qs"
+
+#: objc/objc-act.c:6333
+#, gcc-internal-format
+msgid "found %<-%s%> instead of %<+%s%> in protocol(s)"
+msgstr "у протоколима нађено %<-%s%> уместо %<+%s%>"
+
+#: objc/objc-act.c:6392
+#, gcc-internal-format
+msgid "invalid receiver type %qs"
+msgstr "неисправан тип примаоца %qs"
+
+#: objc/objc-act.c:6407
+#, gcc-internal-format
+msgid "%<%c%s%> not found in protocol(s)"
+msgstr "%<%c%s%> није нађено у протоколима"
+
+#: objc/objc-act.c:6421
+#, gcc-internal-format
+msgid "%qs may not respond to %<%c%s%>"
+msgstr "%qs можда неће одговорити на %<%c%s%>"
+
+#: objc/objc-act.c:6429
+#, gcc-internal-format
+msgid "no %<%c%s%> method found"
+msgstr "метод %<%c%s%> није нађен"
+
+#: objc/objc-act.c:6435
+#, gcc-internal-format
+msgid "(Messages without a matching method signature"
+msgstr "(За поруке без одговарајућег потписа метода"
+
+#: objc/objc-act.c:6436
+#, gcc-internal-format
+msgid "will be assumed to return %<id%> and accept"
+msgstr "биће сматрано да враћају %<id%> и прихватају"
+
+#: objc/objc-act.c:6437
+#, gcc-internal-format
+msgid "%<...%> as arguments.)"
+msgstr "%<...%> за аргументе.)"
+
+#: objc/objc-act.c:6670
+#, gcc-internal-format
+msgid "undeclared selector %qs"
+msgstr "недекларисани селектор %qs"
+
+#. Historically, a class method that produced objects (factory
+#. method) would assign `self' to the instance that it
+#. allocated. This would effectively turn the class method into
+#. an instance method. Following this assignment, the instance
+#. variables could be accessed. That practice, while safe,
+#. violates the simple rule that a class method should not refer
+#. to an instance variable. It's better to catch the cases
+#. where this is done unknowingly than to support the above
+#. paradigm.
+#: objc/objc-act.c:6712
+#, gcc-internal-format
+msgid "instance variable %qs accessed in class method"
+msgstr "променљивој примерка %qs приступљено у методу класе"
+
+#: objc/objc-act.c:6944
+#, gcc-internal-format
+msgid "duplicate declaration of method %<%c%s%>"
+msgstr "удвостручена декларација метода %<%c%s%>"
+
+#: objc/objc-act.c:7005
+#, gcc-internal-format
+msgid "duplicate interface declaration for category %<%s(%s)%>"
+msgstr "удвостручена декларација сучеља за категорију %<%s(%s)%>"
+
+#: objc/objc-act.c:7032
+#, gcc-internal-format
+msgid "illegal reference type specified for instance variable %qs"
+msgstr "недозвољен тип упућивача наведен за променљиву примерка %qs"
+
+#: objc/objc-act.c:7043
+#, gcc-internal-format
+msgid "instance variable %qs has unknown size"
+msgstr "променљива примерка %qs непознате је величине"
+
+#: objc/objc-act.c:7068
+#, gcc-internal-format
+msgid "type %qs has no default constructor to call"
+msgstr "тип %qs нема подразумевани конструктор за позивање"
+
+#: objc/objc-act.c:7074
+#, gcc-internal-format
+msgid "destructor for %qs shall not be run either"
+msgstr "деструктор за %qs исто неће бити извршен"
+
+#. Vtable pointers are Real Bad(tm), since Obj-C cannot
+#. initialize them.
+#: objc/objc-act.c:7086
+#, gcc-internal-format
+msgid "type %qs has virtual member functions"
+msgstr "тип %qs има виртуелне чланске функције"
+
+#: objc/objc-act.c:7087
+#, gcc-internal-format
+msgid "illegal aggregate type %qs specified for instance variable %qs"
+msgstr "недозвољен скупински тип %qs наведен за променљиву примерка %qs"
+
+#: objc/objc-act.c:7097
+#, gcc-internal-format
+msgid "type %qs has a user-defined constructor"
+msgstr "тип %qs има кориснички дефинисан конструктор"
+
+#: objc/objc-act.c:7099
+#, gcc-internal-format
+msgid "type %qs has a user-defined destructor"
+msgstr "тип %qs има кориснички дефинисан деструктор"
+
+#: objc/objc-act.c:7103
+#, gcc-internal-format
+msgid "C++ constructors and destructors will not be invoked for Objective-C fields"
+msgstr "Ц++ конструктори и деструктори неће бити позивани за поља објективног Ц-а"
+
+#: objc/objc-act.c:7212
+#, gcc-internal-format
+msgid "instance variable %qs is declared private"
+msgstr "променљива примерка %qs декларисана је приватном"
+
+#: objc/objc-act.c:7223
+#, gcc-internal-format
+msgid "instance variable %qs is %s; this will be a hard error in the future"
+msgstr "променљива примерка %qs је %s; ово ће у будућности бити тврда грешка"
+
+#: objc/objc-act.c:7230
+#, gcc-internal-format
+msgid "instance variable %qs is declared %s"
+msgstr "променљива примерка %qs декларисана је %s"
+
+#: objc/objc-act.c:7256 objc/objc-act.c:7344
+#, gcc-internal-format
+msgid "incomplete implementation of class %qs"
+msgstr "непотпуна имплементација класе %qs"
+
+#: objc/objc-act.c:7260 objc/objc-act.c:7349
+#, gcc-internal-format
+msgid "incomplete implementation of category %qs"
+msgstr "непотпуна имплементација категорије %qs"
+
+#: objc/objc-act.c:7265 objc/objc-act.c:7354
+#, gcc-internal-format
+msgid "method definition for %<%c%s%> not found"
+msgstr "није нађена дефиниција метода за %<%c%s%>"
+
+#: objc/objc-act.c:7395
+#, gcc-internal-format
+msgid "%s %qs does not fully implement the %qs protocol"
+msgstr "%s %qs не имплементира у потпуности протокол %qs"
+
+#: objc/objc-act.c:7453 objc/objc-act.c:9121
+#, gcc-internal-format
+msgid "%<@end%> missing in implementation context"
+msgstr "недостаје %<@end%> у контексту имплементације"
+
+#: objc/objc-act.c:7472
+#, gcc-internal-format
+msgid "cannot find interface declaration for %qs, superclass of %qs"
+msgstr "не могу да нађем декларацију сучеља за %qs, надкласу класе %qs"
+
+#: objc/objc-act.c:7502
+#, gcc-internal-format
+msgid "reimplementation of class %qs"
+msgstr "поновљена имплементација класе %qs"
+
+#: objc/objc-act.c:7534
+#, gcc-internal-format
+msgid "conflicting super class name %qs"
+msgstr "сукобљено име надкласе %qs"
+
+#: objc/objc-act.c:7536
+#, gcc-internal-format
+msgid "previous declaration of %qs"
+msgstr "претходна декларација %qs"
+
+#: objc/objc-act.c:7550 objc/objc-act.c:7552
+#, gcc-internal-format
+msgid "duplicate interface declaration for class %qs"
+msgstr "удвостручена декларација сучеља за класу %qs"
+
+#: objc/objc-act.c:7806
+#, gcc-internal-format
+msgid "duplicate declaration for protocol %qs"
+msgstr "удвостручена декларација за протокол %qs"
+
+#. Add a readable method name to the warning.
+#: objc/objc-act.c:8364
+#, gcc-internal-format
+msgid "%J%s %<%c%s%>"
+msgstr "%J%s %<%c%s%>"
+
+#: objc/objc-act.c:8694
+#, gcc-internal-format
+msgid "no super class declared in interface for %qs"
+msgstr "није декларисана надкласа у сучељу за %qs"
+
+#: objc/objc-act.c:8743
+#, gcc-internal-format
+msgid "[super ...] must appear in a method context"
+msgstr "[super ...] се мора јавити у контексту метода"
+
+#: objc/objc-act.c:8783
+#, gcc-internal-format
+msgid "method possibly missing a [super dealloc] call"
+msgstr "методу можда недостаје позив [super dealloc]"
+
+#: objc/objc-act.c:9411
+#, gcc-internal-format
+msgid "local declaration of %qs hides instance variable"
+msgstr "локална декларација %qs сакрива променљиву примерка"
+
+#: treelang/tree1.c:278
+#, gcc-internal-format
+msgid "%HDuplicate name %q.*s."
+msgstr "%HУдвостручено име %q.*s."
+
+#: treelang/treetree.c:814
+#, gcc-internal-format
+msgid "Global register variable %qD used in nested function."
+msgstr "Глобална регистарска променљива %qD употребљена у угњежденој функцији."
+
+#: treelang/treetree.c:818
+#, gcc-internal-format
+msgid "Register variable %qD used in nested function."
+msgstr "Регистарска променљива %qD употребљена у угњежденој функцији."
+
+#: treelang/treetree.c:824
+#, gcc-internal-format
+msgid "Address of global register variable %qD requested."
+msgstr "Затражена адреса глобалне регистарске променљиве %qD."
+
+#: treelang/treetree.c:829
+#, gcc-internal-format
+msgid "Address of register variable %qD requested."
+msgstr "Затражена адреса регистарске променљиве %qD."
+
+#: treelang/treetree.c:1214
+#, gcc-internal-format
+msgid "%qD attribute ignored"
+msgstr "атрибут %qD се игнорише"
--
1.5.4
From 0082faeeddddf73e432c77b7f1c32207adc8c994 Mon Sep 17 00:00:00 2001
From: aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 9 Mar 2007 23:30:16 +0000
Subject: gcc/ChangeLog:
PR rtl-optimization/30643
* cse.c (cse_insn): Recompute dest_hash after insert_regs for
dest_addr_elt.
gcc/testsuite/ChangeLog:
PR rtl-optimization/30643
* gcc.dg/pr30643.c: New.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122772 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 36685a9..4cfa310 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-03-09 Alexandre Oliva <aoliva@redhat.com>
+
+ PR rtl-optimization/30643
+ * cse.c (cse_insn): Recompute dest_hash after insert_regs for
+ dest_addr_elt.
+
2007-03-08 Andreas Schwab <schwab@suse.de>
* c-common.c (fold_offsetof_1): Remove extra argument in recursive
diff --git a/gcc/cse.c b/gcc/cse.c
index 8b406e6..70fec9e 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -6016,8 +6016,11 @@ cse_insn (rtx insn, rtx libcall_insn)
{
if (insert_regs (x, NULL, 0))
{
+ rtx dest = SET_DEST (sets[i].rtl);
+
rehash_using_reg (x);
hash = HASH (x, mode);
+ sets[i].dest_hash = HASH (dest, GET_MODE (dest));
}
elt = insert (x, NULL, hash, mode);
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f128682..3ed6f0d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-09 Alexandre Oliva <aoliva@redhat.com>
+
+ PR rtl-optimization/30643
+ * gcc.dg/pr30643.c: New.
+
2007-03-08 Volker Reichelt <reichelt@netcologne.de>
PR c++/30852
diff --git a/gcc/testsuite/gcc.dg/pr30643.c b/gcc/testsuite/gcc.dg/pr30643.c
new file mode 100644
index 0000000..67fe111
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr30643.c
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+/* { dg-final { scan-assembler-not "undefined" } } */
+
+/* Make sure we optimize all calls away. */
+
+extern void undefined (void);
+struct s { int a, b; };
+void bar (struct s *ps, int *p, int *__restrict__ rp, int *__restrict__ rq)
+{
+ ps->a = 0;
+ ps->b = 1;
+ if (ps->a != 0)
+ undefined ();
+ p[0] = 0;
+ p[1] = 1;
+ if (p[0] != 0)
+ undefined ();
+ rp[0] = 0;
+ rq[0] = 1;
+ if (rp[0] != 0)
+ undefined ();
+}
+int main (void) {
+ return 0;
+}
--
1.5.4
From 092d6c273be41f98b3a8e68528c7179178fb0701 Mon Sep 17 00:00:00 2001
From: danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 10 Mar 2007 01:39:48 +0000
Subject: * pa.c (attr_length_call): Revise condition for long pc-relative branch.
(output_call): Use "LONG_PIC_SDIFF" instruction sequence for long local
calls on the SOM target. Don't use "LONG_PIC_PCREL" call sequence on
SOM target.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122786 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4cfa310..a2f2d9f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2007-03-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.c (attr_length_call): Revise condition for long pc-relative branch.
+ (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long local
+ calls on the SOM target. Don't use "LONG_PIC_PCREL" call sequence on
+ SOM target.
+
2007-03-09 Alexandre Oliva <aoliva@redhat.com>
PR rtl-optimization/30643
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index c23df87..36147bf 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -7072,9 +7072,10 @@ attr_length_call (rtx insn, int sibcall)
length += 12;
/* long pc-relative branch sequence. */
- else if ((TARGET_SOM && TARGET_LONG_PIC_SDIFF_CALL)
+ else if ((TARGET_SOM && (TARGET_LONG_PIC_SDIFF_CALL || local_call))
|| (TARGET_64BIT && !TARGET_GAS)
- || (TARGET_GAS && (TARGET_LONG_PIC_PCREL_CALL || local_call)))
+ || (TARGET_GAS && !TARGET_SOM
+ && (TARGET_LONG_PIC_PCREL_CALL || local_call)))
{
length += 20;
@@ -7184,8 +7185,9 @@ output_call (rtx insn, rtx call_dest, int sibcall)
of increasing length and complexity. In most cases,
they don't allow an instruction in the delay slot. */
if (!((TARGET_LONG_ABS_CALL || local_call) && !flag_pic)
- && !(TARGET_SOM && TARGET_LONG_PIC_SDIFF_CALL)
- && !(TARGET_GAS && (TARGET_LONG_PIC_PCREL_CALL || local_call))
+ && !(TARGET_SOM && (TARGET_LONG_PIC_SDIFF_CALL || local_call))
+ && !(TARGET_GAS && !TARGET_SOM
+ && (TARGET_LONG_PIC_PCREL_CALL || local_call))
&& !TARGET_64BIT)
indirect_call = 1;
@@ -7231,7 +7233,7 @@ output_call (rtx insn, rtx call_dest, int sibcall)
}
else
{
- if ((TARGET_SOM && TARGET_LONG_PIC_SDIFF_CALL)
+ if ((TARGET_SOM && (TARGET_LONG_PIC_SDIFF_CALL || local_call))
|| (TARGET_64BIT && !TARGET_GAS))
{
/* The HP assembler and linker can handle relocations
@@ -7245,7 +7247,8 @@ output_call (rtx insn, rtx call_dest, int sibcall)
CODE_LABEL_NUMBER (xoperands[1]));
output_asm_insn ("ldo R'%0-%l1(%%r1),%%r1", xoperands);
}
- else if (TARGET_GAS && (TARGET_LONG_PIC_PCREL_CALL || local_call))
+ else if (TARGET_GAS && !TARGET_SOM
+ && (TARGET_LONG_PIC_PCREL_CALL || local_call))
{
/* GAS currently can't generate the relocations that
are needed for the SOM linker under HP-UX using this
--
1.5.4
From 4b7f52004fefdf9fc7a6454b267e4c15f3d4e72b Mon Sep 17 00:00:00 2001
From: irar <irar@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 12 Mar 2007 06:56:41 +0000
Subject: PR tree-optimization/29925
* tree-data-ref.c (analyze_offset): Add a return value (bool) to
indicate success/failure of the analysis. Add negation to subtrahend
in case of subtraction. Fail if both operands contain constants.
(create_data_ref): Fail if analyze_offset fails.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122833 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a2f2d9f..afc65ea 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2007-03-12 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/29925
+ * tree-data-ref.c (analyze_offset): Add a return value (bool) to
+ indicate success/failure of the analysis. Add negation to subtrahend
+ in case of subtraction. Fail if both operands contain constants.
+ (create_data_ref): Fail if analyze_offset fails.
+
2007-03-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa.c (attr_length_call): Revise condition for long pc-relative branch.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 3ed6f0d..05106a0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-12 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/29925
+ * gcc.dg/vect/fast-math-vect-pr29925.c: New test.
+
2007-03-09 Alexandre Oliva <aoliva@redhat.com>
PR rtl-optimization/30643
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-vect-pr29925.c b/gcc/testsuite/gcc.dg/vect/fast-math-vect-pr29925.c
new file mode 100644
index 0000000..caa6a3c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-vect-pr29925.c
@@ -0,0 +1,39 @@
+/* { dg-require-effective-target vect_float } */
+
+#include <stdlib.h>
+#include "tree-vect.h"
+
+void interp_pitch(float *exc, float *interp, int pitch, int len)
+{
+ int i,k;
+ int maxj;
+
+ maxj=3;
+ for (i=0;i<len;i++)
+ {
+ float tmp = 0;
+ for (k=0;k<7;k++)
+ {
+ tmp += exc[i-pitch+k+maxj-6];
+ }
+ interp[i] = tmp;
+ }
+}
+
+int main()
+{
+ float *exc = calloc(126,sizeof(float));
+ float *interp = calloc(80,sizeof(float));
+ int pitch = -35;
+
+ check_vect ();
+
+ interp_pitch(exc, interp, pitch, 80);
+ free(exc);
+ free(interp);
+ return 0;
+}
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { cleanup-tree-dump "vect" } } */
+
diff --git a/gcc/tree-data-ref.c b/gcc/tree-data-ref.c
index 2128fb9..16e939d 100644
--- a/gcc/tree-data-ref.c
+++ b/gcc/tree-data-ref.c
@@ -1725,7 +1725,7 @@ object_analysis (tree memref, tree stmt, bool is_read,
Extract INVARIANT and CONSTANT parts from OFFSET.
*/
-static void
+static bool
analyze_offset (tree offset, tree *invariant, tree *constant)
{
tree op0, op1, constant_0, constant_1, invariant_0, invariant_1;
@@ -1741,23 +1741,36 @@ analyze_offset (tree offset, tree *invariant, tree *constant)
*constant = offset;
else
*invariant = offset;
- return;
+ return true;
}
op0 = TREE_OPERAND (offset, 0);
op1 = TREE_OPERAND (offset, 1);
/* Recursive call with the operands. */
- analyze_offset (op0, &invariant_0, &constant_0);
- analyze_offset (op1, &invariant_1, &constant_1);
+ if (!analyze_offset (op0, &invariant_0, &constant_0)
+ || !analyze_offset (op1, &invariant_1, &constant_1))
+ return false;
- /* Combine the results. */
+ /* Combine the results. Add negation to the subtrahend in case of
+ subtraction. */
+ if (constant_0 && constant_1)
+ return false;
*constant = constant_0 ? constant_0 : constant_1;
+ if (code == MINUS_EXPR && constant_1)
+ *constant = fold_build1 (NEGATE_EXPR, TREE_TYPE (*constant), *constant);
+
if (invariant_0 && invariant_1)
*invariant =
fold_build2 (code, TREE_TYPE (invariant_0), invariant_0, invariant_1);
else
- *invariant = invariant_0 ? invariant_0 : invariant_1;
+ {
+ *invariant = invariant_0 ? invariant_0 : invariant_1;
+ if (code == MINUS_EXPR && invariant_1)
+ *invariant =
+ fold_build1 (NEGATE_EXPR, TREE_TYPE (*invariant), *invariant);
+ }
+ return true;
}
@@ -1833,7 +1846,17 @@ create_data_ref (tree memref, tree stmt, bool is_read)
/* Extract CONSTANT and INVARIANT from OFFSET, and put them in DR_INIT and
DR_OFFSET fields of DR. */
- analyze_offset (offset, &invariant, &constant);
+ if (!analyze_offset (offset, &invariant, &constant))
+ {
+ if (dump_file && (dump_flags & TDF_DETAILS))
+ {
+ fprintf (dump_file, "\ncreate_data_ref: failed to analyze dr's");
+ fprintf (dump_file, " offset for ");
+ print_generic_expr (dump_file, memref, TDF_SLIM);
+ fprintf (dump_file, "\n");
+ }
+ return NULL;
+ }
if (constant)
{
DR_INIT (dr) = fold_convert (ssizetype, constant);
--
1.5.4
From 3982dfba042b334bf99c38cca8a04251db18f114 Mon Sep 17 00:00:00 2001
From: rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 12 Mar 2007 17:15:44 +0000
Subject: PR target/26090
* config/alpha/alpha.c (alpha_elf_select_section): New.
(alpha_elf_unique_section, alpha_elf_section_type_flags): New.
(alpha_elf_select_rtx_section): Force flag_pic true.
(TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
(TARGET_SECTION_TYPE_FLAGS): New.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122847 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index afc65ea..511d849 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2007-03-12 Richard Henderson <rth@redhat.com>
+
+ PR target/26090
+ * config/alpha/alpha.c (alpha_elf_select_section): New.
+ (alpha_elf_unique_section, alpha_elf_section_type_flags): New.
+ (alpha_elf_select_rtx_section): Force flag_pic true.
+ (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
+ (TARGET_SECTION_TYPE_FLAGS): New.
+
2007-03-12 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/29925
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index d8b0236..b1fdc97 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -9372,6 +9372,20 @@ alpha_file_start (void)
#endif
#ifdef OBJECT_FORMAT_ELF
+/* Since we've no .dynbss section, pretend flag_pic is always set, so that
+ we don't wind up with dynamic relocations in .rodata. */
+
+static void
+alpha_elf_select_section (tree exp, int reloc, unsigned HOST_WIDE_INT align)
+{
+ default_elf_select_section_1 (exp, reloc, align, true);
+}
+
+static void
+alpha_elf_unique_section (tree decl, int reloc)
+{
+ default_unique_section_1 (decl, reloc, true);
+}
/* Switch to the section to which we should output X. The only thing
special we do here is to honor small data. */
@@ -9384,9 +9398,30 @@ alpha_elf_select_rtx_section (enum machine_mode mode, rtx x,
/* ??? Consider using mergeable sdata sections. */
sdata_section ();
else
- default_elf_select_rtx_section (mode, x, align);
+ {
+ int save_pic = flag_pic;
+ flag_pic = 1;
+ default_elf_select_rtx_section (mode, x, align);
+ flag_pic = save_pic;
+ }
}
+static unsigned int
+alpha_elf_section_type_flags (tree decl, const char *name, int reloc)
+{
+ unsigned int flags = 0;
+
+ if (strcmp (name, ".sdata") == 0
+ || strncmp (name, ".sdata.", 7) == 0
+ || strncmp (name, ".gnu.linkonce.s.", 16) == 0
+ || strcmp (name, ".sbss") == 0
+ || strncmp (name, ".sbss.", 6) == 0
+ || strncmp (name, ".gnu.linkonce.sb.", 17) == 0)
+ flags = SECTION_SMALL;
+
+ flags |= default_section_type_flags_1 (decl, name, reloc, true);
+ return flags;
+}
#endif /* OBJECT_FORMAT_ELF */
/* Structure to collect function names for final output in link section. */
@@ -10601,8 +10636,14 @@ alpha_init_libfuncs (void)
#endif
#ifdef OBJECT_FORMAT_ELF
+#undef TARGET_ASM_SELECT_SECTION
+#define TARGET_ASM_SELECT_SECTION alpha_elf_select_section
+#undef TARGET_ASM_UNIQUE_SECTION
+#define TARGET_ASM_UNIQUE_SECTION alpha_elf_unique_section
#undef TARGET_ASM_SELECT_RTX_SECTION
#define TARGET_ASM_SELECT_RTX_SECTION alpha_elf_select_rtx_section
+#undef TARGET_SECTION_TYPE_FLAGS
+#define TARGET_SECTION_TYPE_FLAGS alpha_elf_section_type_flags
#endif
#undef TARGET_ASM_FUNCTION_END_PROLOGUE
--
1.5.4
From 0b0e9b2b253c36c705fe807c98e0783fcd1f6f0c Mon Sep 17 00:00:00 2001
From: sayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 12 Mar 2007 18:40:56 +0000
Subject: 2007-03-12 Roger Sayle <roger@eyesopen.com>
Andrew Pinski <andrew_pinski@playstation.sony.com>
PR middle-end/30433
* fold-const.c (fold_relational_const): Add back compile-time
evaluation of complex constant equality/inequality comparisons.
* gcc.c-torture/compile/pr30433.c: New testcase to check
that complex constant comparisions are folded.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122852 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 511d849..ad67604 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2007-03-12 Roger Sayle <roger@eyesopen.com>
+ Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/30433
+ * fold-const.c (fold_relational_const): Add back compile-time
+ evaluation of complex constant equality/inequality comparisons.
+
2007-03-12 Richard Henderson <rth@redhat.com>
PR target/26090
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 284c429..cc0c995 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -11549,6 +11549,23 @@ fold_relational_const (enum tree_code code, tree type, tree op0, tree op1)
return constant_boolean_node (real_compare (code, c0, c1), type);
}
+ /* Handle equality/inequality of complex constants. */
+ if (TREE_CODE (op0) == COMPLEX_CST && TREE_CODE (op1) == COMPLEX_CST)
+ {
+ tree rcond = fold_relational_const (code, type,
+ TREE_REALPART (op0),
+ TREE_REALPART (op1));
+ tree icond = fold_relational_const (code, type,
+ TREE_IMAGPART (op0),
+ TREE_IMAGPART (op1));
+ if (code == EQ_EXPR)
+ return fold_build2 (TRUTH_ANDIF_EXPR, type, rcond, icond);
+ else if (code == NE_EXPR)
+ return fold_build2 (TRUTH_ORIF_EXPR, type, rcond, icond);
+ else
+ return NULL_TREE;
+ }
+
/* From here on we only handle LT, LE, GT, GE, EQ and NE.
To compute GT, swap the arguments and do LT.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 05106a0..2541a81 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2007-03-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/30433
+ * gcc.c-torture/compile/pr30433.c: New testcase to check
+ that complex constant comparisions are folded.
+
2007-03-12 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/29925
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr30433.c b/gcc/testsuite/gcc.c-torture/compile/pr30433.c
new file mode 100644
index 0000000..1f0edd0
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr30433.c
@@ -0,0 +1,2 @@
+int f = (_Complex float)(0.5) == 0.5;
+
--
1.5.4
From b7136b12a84bf104f54ae157d8da3ddc5fbbf42f Mon Sep 17 00:00:00 2001
From: danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 13 Mar 2007 23:21:40 +0000
Subject: PR target/31123
* pa.md (vdepi_ior): Don't allow zero length deposit. Likewise for
two unamed patterns.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122886 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ad67604..d87d2c8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/31123
+ * pa.md (vdepi_ior): Don't allow zero length deposit. Likewise for
+ two unamed patterns.
+
2007-03-12 Roger Sayle <roger@eyesopen.com>
Andrew Pinski <andrew_pinski@playstation.sony.com>
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index 1f82823..28f398a 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -6549,7 +6549,7 @@
(match_operand:SI 2 "register_operand" "q")))
(match_operand:SI 3 "register_operand" "0")))]
; accept ...0001...1, can this be generalized?
- "exact_log2 (INTVAL (operands[1]) + 1) >= 0"
+ "exact_log2 (INTVAL (operands[1]) + 1) > 0"
"*
{
int x = INTVAL (operands[1]);
@@ -6648,7 +6648,7 @@
(match_operand:DI 2 "register_operand" "q")))
(match_operand:DI 3 "register_operand" "0")))]
; accept ...0001...1, can this be generalized?
- "TARGET_64BIT && exact_log2 (INTVAL (operands[1]) + 1) >= 0"
+ "TARGET_64BIT && exact_log2 (INTVAL (operands[1]) + 1) > 0"
"*
{
int x = INTVAL (operands[1]);
@@ -6844,7 +6844,7 @@
(and:SI (ashift:SI (match_operand:SI 1 "register_operand" "r")
(match_operand:SI 2 "const_int_operand" ""))
(match_operand:SI 3 "const_int_operand" "")))]
- "exact_log2 (1 + (INTVAL (operands[3]) >> (INTVAL (operands[2]) & 31))) >= 0"
+ "exact_log2 (1 + (INTVAL (operands[3]) >> (INTVAL (operands[2]) & 31))) > 0"
"*
{
int cnt = INTVAL (operands[2]) & 31;
--
1.5.4
From 503e5ce35ea9a24a6da88fcda628e58650ca582d Mon Sep 17 00:00:00 2001
From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 14 Mar 2007 12:20:47 +0000
Subject: * module.c (mio_typespec): Don't look at ts->cl if not BT_CHARACTER.
* gfortran.dg/module_implicit_conversion.f90: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122917 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 1c36f16..a1ed327 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,7 @@
+2007-03-14 Jakub Jelinek <jakub@redhat.com>
+
+ * module.c (mio_typespec): Don't look at ts->cl if not BT_CHARACTER.
+
2007-03-05 Brooks Moses <brooks.moses@codesourcery.com>
PR 31050
diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c
index 24c7f99..af06361 100644
--- a/gcc/fortran/module.c
+++ b/gcc/fortran/module.c
@@ -1726,7 +1726,14 @@ mio_typespec (gfc_typespec * ts)
else
mio_symbol_ref (&ts->derived);
- mio_charlen (&ts->cl);
+ if (ts->type != BT_CHARACTER)
+ {
+ /* ts->cl is only valid for BT_CHARACTER. */
+ mio_lparen ();
+ mio_rparen ();
+ }
+ else
+ mio_charlen (&ts->cl);
mio_rparen ();
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2541a81..c69f46a 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2007-03-14 Jakub Jelinek <jakub@redhat.com>
+
+ * gfortran.dg/module_implicit_conversion.f90: New test.
+
2007-03-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR middle-end/30433
diff --git a/gcc/testsuite/gfortran.dg/module_implicit_conversion.f90 b/gcc/testsuite/gfortran.dg/module_implicit_conversion.f90
new file mode 100644
index 0000000..d7835a7
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/module_implicit_conversion.f90
@@ -0,0 +1,9 @@
+! { dg-do compile }
+! { dg-options "-std=gnu" }
+
+module module_implicit_conversion
+ ! double complex :: s = (1.0D0, 0D0)
+ double complex :: s = (1.0, 0D0)
+end module module_implicit_conversion
+
+! { dg-final { cleanup-modules "module_implicit_conversion" } }
--
1.5.4
From 7d4a0d6166248d01965ba0bb3836e5b89c88b51c Mon Sep 17 00:00:00 2001
From: rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 15 Mar 2007 18:09:26 +0000
Subject: 2007-03-15 Richard Guenther <rguenther@suse.de>
Backport from mainline
2007-02-28 Richard Guenther <rguenther@suse.de>
PR middle-end/30364
* fold-const.c (fold_binary): Do not associate expressions
with more than one variable for integer types that do not wrap.
* gcc.dg/torture/pr30364-1.c: New testcase.
* gcc.dg/torture/pr30364-2.c: Likewise.
* gcc.dg/torture/pr30364-3.c: Likewise.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@122956 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d87d2c8..0984012 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2007-03-15 Richard Guenther <rguenther@suse.de>
+
+ Backport from mainline:
+ 2007-02-28 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/30364
+ * fold-const.c (fold_binary): Do not associate expressions
+ with more than one variable for integer types that do not wrap.
+
2007-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR target/31123
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index cc0c995..80e92c6 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -7552,6 +7552,7 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1)
{
tree var0, con0, lit0, minus_lit0;
tree var1, con1, lit1, minus_lit1;
+ bool ok = true;
/* Split both trees into variables, constants, and literals. Then
associate each group together, the constants with literals,
@@ -7562,12 +7563,33 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1)
var1 = split_tree (arg1, code, &con1, &lit1, &minus_lit1,
code == MINUS_EXPR);
+ /* With undefined overflow we can only associate constants
+ with one variable. */
+ if ((POINTER_TYPE_P (type)
+ || (INTEGRAL_TYPE_P (type)
+ && !(TYPE_UNSIGNED (type) || flag_wrapv)))
+ && var0 && var1)
+ {
+ tree tmp0 = var0;
+ tree tmp1 = var1;
+
+ if (TREE_CODE (tmp0) == NEGATE_EXPR)
+ tmp0 = TREE_OPERAND (tmp0, 0);
+ if (TREE_CODE (tmp1) == NEGATE_EXPR)
+ tmp1 = TREE_OPERAND (tmp1, 0);
+ /* The only case we can still associate with two variables
+ is if they are the same, modulo negation. */
+ if (!operand_equal_p (tmp0, tmp1, 0))
+ ok = false;
+ }
+
/* Only do something if we found more than two objects. Otherwise,
nothing has changed and we risk infinite recursion. */
- if (2 < ((var0 != 0) + (var1 != 0)
- + (con0 != 0) + (con1 != 0)
- + (lit0 != 0) + (lit1 != 0)
- + (minus_lit0 != 0) + (minus_lit1 != 0)))
+ if (ok
+ && (2 < ((var0 != 0) + (var1 != 0)
+ + (con0 != 0) + (con1 != 0)
+ + (lit0 != 0) + (lit1 != 0)
+ + (minus_lit0 != 0) + (minus_lit1 != 0))))
{
/* Recombine MINUS_EXPR operands by using PLUS_EXPR. */
if (code == MINUS_EXPR)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c69f46a..c6f7544 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,13 @@
+2007-03-15 Richard Guenther <rguenther@suse.de>
+
+ Backport from mainline:
+ 2007-02-28 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/30364
+ * gcc.dg/torture/pr30364-1.c: New testcase.
+ * gcc.dg/torture/pr30364-2.c: Likewise.
+ * gcc.dg/torture/pr30364-3.c: Likewise.
+
2007-03-14 Jakub Jelinek <jakub@redhat.com>
* gfortran.dg/module_implicit_conversion.f90: New test.
diff --git a/gcc/testsuite/gcc.dg/torture/pr30364-1.c b/gcc/testsuite/gcc.dg/torture/pr30364-1.c
new file mode 100644
index 0000000..09506c2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr30364-1.c
@@ -0,0 +1,19 @@
+/* { dg-do run } */
+
+extern void abort (void);
+
+int f(int a, int b)
+{
+ if (a > 0x7FFFFFF0) return 0;
+ if (b > 0x7FFFFFF0) return 0;
+
+ int c = (a - 20) + (b - 20);
+ return c > 0x7FFFFFF0;
+}
+
+int main()
+{
+ if (f (0x7FFFFFF0, 41) != 1)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/torture/pr30364-2.c b/gcc/testsuite/gcc.dg/torture/pr30364-2.c
new file mode 100644
index 0000000..20450f5
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr30364-2.c
@@ -0,0 +1,19 @@
+/* { dg-do run } */
+
+extern void abort (void);
+
+int f(unsigned int a, unsigned int b)
+{
+ if (a > 0x7FFFFFF0) return 0;
+ if (b > 0x7FFFFFF0) return 0;
+
+ int c = (a - 20) + (b - 20);
+ return c > 0x7FFFFFF0;
+}
+
+int main()
+{
+ if (f (0x7FFFFFF0, 41) != 1)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/torture/pr30364-3.c b/gcc/testsuite/gcc.dg/torture/pr30364-3.c
new file mode 100644
index 0000000..4365679
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr30364-3.c
@@ -0,0 +1,20 @@
+/* { dg-do run } */
+/* { dg-options "-fwrapv" } */
+
+extern void abort (void);
+
+int f(int a, int b)
+{
+ if (a > 0x7FFFFFF0) return 0;
+ if (b > 0x7FFFFFF0) return 0;
+
+ int c = (a - 20) + (b - 20);
+ return c > 0x7FFFFFF0;
+}
+
+int main()
+{
+ if (f (0x7FFFFFF0, 41) != 1)
+ abort ();
+ return 0;
+}
--
1.5.4
From 96d22e67af37a95a8ab67855f3f90ebfad89e79a Mon Sep 17 00:00:00 2001
From: danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 16 Mar 2007 23:18:51 +0000
Subject: * pa.c (attr_length_call): Partially revert change of 2007-03-09.
(output_call): Likewise.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123004 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0984012..d207f26 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.c (attr_length_call): Partially revert change of 2007-03-09.
+ (output_call): Likewise.
+
2007-03-15 Richard Guenther <rguenther@suse.de>
Backport from mainline:
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 36147bf..450e191 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -7072,7 +7072,7 @@ attr_length_call (rtx insn, int sibcall)
length += 12;
/* long pc-relative branch sequence. */
- else if ((TARGET_SOM && (TARGET_LONG_PIC_SDIFF_CALL || local_call))
+ else if ((TARGET_SOM && TARGET_LONG_PIC_SDIFF_CALL)
|| (TARGET_64BIT && !TARGET_GAS)
|| (TARGET_GAS && !TARGET_SOM
&& (TARGET_LONG_PIC_PCREL_CALL || local_call)))
@@ -7185,7 +7185,7 @@ output_call (rtx insn, rtx call_dest, int sibcall)
of increasing length and complexity. In most cases,
they don't allow an instruction in the delay slot. */
if (!((TARGET_LONG_ABS_CALL || local_call) && !flag_pic)
- && !(TARGET_SOM && (TARGET_LONG_PIC_SDIFF_CALL || local_call))
+ && !(TARGET_SOM && TARGET_LONG_PIC_SDIFF_CALL)
&& !(TARGET_GAS && !TARGET_SOM
&& (TARGET_LONG_PIC_PCREL_CALL || local_call))
&& !TARGET_64BIT)
@@ -7233,7 +7233,7 @@ output_call (rtx insn, rtx call_dest, int sibcall)
}
else
{
- if ((TARGET_SOM && (TARGET_LONG_PIC_SDIFF_CALL || local_call))
+ if ((TARGET_SOM && TARGET_LONG_PIC_SDIFF_CALL)
|| (TARGET_64BIT && !TARGET_GAS))
{
/* The HP assembler and linker can handle relocations
--
1.5.4
From ef4b75dcf9927419bd9c6b33f1b8228139a2caa7 Mon Sep 17 00:00:00 2001
From: aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 17 Mar 2007 04:52:44 +0000
Subject: gcc/ChangeLog:
PR debug/29906
* dwarf2out.c (force_type_die): Adjust comment.
(dwarf2out_imported_module_or_decl): Handle base AT_import types.
gcc/testsuite/ChangeLog:
PR debug/29906
* g++.dg/debug/pr29906.C: New
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123011 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d207f26..7e6294e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-03-17 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/29906
+ * dwarf2out.c (force_type_die): Adjust comment.
+ (dwarf2out_imported_module_or_decl): Handle base AT_import types.
+
2007-03-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa.c (attr_length_call): Partially revert change of 2007-03-09.
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 78d80d4..c244d4b 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -12893,7 +12893,8 @@ force_decl_die (tree decl)
return decl_die;
}
-/* Returns the DIE for TYPE. A DIE is always returned. */
+/* Returns the DIE for TYPE, that must not be a base type. A DIE is
+ always returned. */
static dw_die_ref
force_type_die (tree type)
@@ -13244,7 +13245,12 @@ dwarf2out_imported_module_or_decl (tree decl, tree context)
/* For TYPE_DECL or CONST_DECL, lookup TREE_TYPE. */
if (TREE_CODE (decl) == TYPE_DECL || TREE_CODE (decl) == CONST_DECL)
- at_import_die = force_type_die (TREE_TYPE (decl));
+ {
+ if (is_base_type (TREE_TYPE (decl)))
+ at_import_die = base_type_die (TREE_TYPE (decl));
+ else
+ at_import_die = force_type_die (TREE_TYPE (decl));
+ }
else
{
at_import_die = lookup_decl_die (decl);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c6f7544..439d660 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-17 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/29906
+ * g++.dg/debug/pr29906.C: New
+
2007-03-15 Richard Guenther <rguenther@suse.de>
Backport from mainline:
diff --git a/gcc/testsuite/g++.dg/debug/pr29906.C b/gcc/testsuite/g++.dg/debug/pr29906.C
new file mode 100644
index 0000000..d277fb8
--- /dev/null
+++ b/gcc/testsuite/g++.dg/debug/pr29906.C
@@ -0,0 +1,10 @@
+// { dg-do compile }
+// { dg-options "-g" }
+
+struct A{
+ typedef int T;
+ virtual ~A();
+};
+struct B:public A{
+ using A::T;
+};
--
1.5.4
From 252f24e9df0d0b6fdc4dc0f38019742912d8cb36 Mon Sep 17 00:00:00 2001
From: fxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 17 Mar 2007 11:32:56 +0000
Subject: PR fortran/31184
* invoke.texi: Fix typo.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123020 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index a1ed327..0df5548 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-17 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR fortran/31184
+ * invoke.texi: Fix typo.
+
2007-03-14 Jakub Jelinek <jakub@redhat.com>
* module.c (mio_typespec): Don't look at ts->cl if not BT_CHARACTER.
diff --git a/gcc/fortran/invoke.texi b/gcc/fortran/invoke.texi
index ba9867d..283dc40 100644
--- a/gcc/fortran/invoke.texi
+++ b/gcc/fortran/invoke.texi
@@ -196,7 +196,7 @@ older Fortran programs.
@cindex option, -fd-lines-as-comments
@cindex -fd-lines-as-comments, option
@item -fd-lines-as-code
-@item -fd-lines-as-comment
+@item -fd-lines-as-comments
Enables special treating for lines with @samp{d} or @samp{D} in fixed
form sources. If the @option{-fd-lines-as-code} option is given
they are treated as if the first column contained a blank. If the
--
1.5.4
From a6b62da4615812b6c52324d7f684e370cd881720 Mon Sep 17 00:00:00 2001
From: ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 19 Mar 2007 17:59:00 +0000
Subject: gcc/:
* doc/extend.texi: Edit "gnu_inline" documentation.
* doc/invoke.texi: Edit "-fgnu89-inline" documentation.
* c.opt (fgnu89-inline): New option.
* c-opts.c (c_common_post_options): Warn about -fno-gnu89-inline.
* c-common.c (c_common_attributes): Add gnu_inline attribyte.
(handle_gnu_inline_attribute): New static function.
* c-cppbuiltin.c (c_cpp_builtins): Define __GNUC_GNU_INLINE__.
* doc/invoke.texi (Option Summary): Mention -fgnu89-inline.
(C Dialect Options): Document -fgnu89-inline.
* doc/extend.texi (Function Attributes): Document gnu_inline.
(Inline): Mention that C99 inline will be implemented in 4.3.
Refer to ways to get the old handling.
* doc/cpp.texi (Common Predefined Macros): Document
__GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
testsuite/:
* gcc.dg/inline-7.c: Add -fgnu89-inline.
* gcc.dg/inline-17.c: New test.
* gcc.dg/inline-18.c: New test.
* gcc.dg/inline-19.c: New test.
* gcc.dg/inline-21.c: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123066 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7e6294e..bb53e64 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,23 @@
+2007-03-19 Brooks Moses <brooks.moses@codesourcery.com>
+
+ * doc/extend.texi: Edit "gnu_inline" documentation.
+ * doc/invoke.texi: Edit "-fgnu89-inline" documentation.
+
+2007-03-19 Ian Lance Taylor <iant@google.com>
+
+ * c.opt (fgnu89-inline): New option.
+ * c-opts.c (c_common_post_options): Warn about -fno-gnu89-inline.
+ * c-common.c (c_common_attributes): Add gnu_inline attribyte.
+ (handle_gnu_inline_attribute): New static function.
+ * c-cppbuiltin.c (c_cpp_builtins): Define __GNUC_GNU_INLINE__.
+ * doc/invoke.texi (Option Summary): Mention -fgnu89-inline.
+ (C Dialect Options): Document -fgnu89-inline.
+ * doc/extend.texi (Function Attributes): Document gnu_inline.
+ (Inline): Mention that C99 inline will be implemented in 4.3.
+ Refer to ways to get the old handling.
+ * doc/cpp.texi (Common Predefined Macros): Document
+ __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
+
2007-03-17 Alexandre Oliva <aoliva@redhat.com>
PR debug/29906
diff --git a/gcc/c-common.c b/gcc/c-common.c
index 5a2c4fb..03c855f 100644
--- a/gcc/c-common.c
+++ b/gcc/c-common.c
@@ -505,6 +505,8 @@ static tree handle_noreturn_attribute (tree *, tree, tree, int, bool *);
static tree handle_noinline_attribute (tree *, tree, tree, int, bool *);
static tree handle_always_inline_attribute (tree *, tree, tree, int,
bool *);
+static tree handle_gnu_inline_attribute (tree *, tree, tree, int,
+ bool *);
static tree handle_flatten_attribute (tree *, tree, tree, int, bool *);
static tree handle_used_attribute (tree *, tree, tree, int, bool *);
static tree handle_unused_attribute (tree *, tree, tree, int, bool *);
@@ -573,6 +575,8 @@ const struct attribute_spec c_common_attribute_table[] =
handle_noinline_attribute },
{ "always_inline", 0, 0, true, false, false,
handle_always_inline_attribute },
+ { "gnu_inline", 0, 0, true, false, false,
+ handle_gnu_inline_attribute },
{ "flatten", 0, 0, true, false, false,
handle_flatten_attribute },
{ "used", 0, 0, true, false, false,
@@ -4216,6 +4220,29 @@ handle_always_inline_attribute (tree *node, tree name,
return NULL_TREE;
}
+/* Handle a "gnu_inline" attribute; arguments as in
+ struct attribute_spec.handler. */
+
+static tree
+handle_gnu_inline_attribute (tree *node, tree name,
+ tree ARG_UNUSED (args),
+ int ARG_UNUSED (flags),
+ bool *no_add_attrs)
+{
+ if (TREE_CODE (*node) == FUNCTION_DECL && DECL_DECLARED_INLINE_P (*node))
+ {
+ /* Do nothing else, just set the attribute. We'll get at
+ it later with lookup_attribute. */
+ }
+ else
+ {
+ warning (OPT_Wattributes, "%qE attribute ignored", name);
+ *no_add_attrs = true;
+ }
+
+ return NULL_TREE;
+}
+
/* Handle a "flatten" attribute; arguments as in
struct attribute_spec.handler. */
diff --git a/gcc/c-cppbuiltin.c b/gcc/c-cppbuiltin.c
index 9020e0b..2610564 100644
--- a/gcc/c-cppbuiltin.c
+++ b/gcc/c-cppbuiltin.c
@@ -393,6 +393,8 @@ c_cpp_builtins (cpp_reader *pfile)
/* Misc. */
builtin_define_with_value ("__VERSION__", version_string, 1);
+ cpp_define (pfile, "__GNUC_GNU_INLINE__");
+
/* Definitions for LP64 model. */
if (TYPE_PRECISION (long_integer_type_node) == 64
&& POINTER_SIZE == 64
diff --git a/gcc/c-opts.c b/gcc/c-opts.c
index 551893f..4f5f734 100644
--- a/gcc/c-opts.c
+++ b/gcc/c-opts.c
@@ -990,6 +990,12 @@ c_common_post_options (const char **pfilename)
if (flag_inline_functions)
flag_inline_trees = 2;
+ /* We recognize -fgnu89-inline in preparation for 4.3 where the
+ option will be meaningful. Here we just reject
+ -fno-gnu89-inline, since we don't support it. */
+ if (!flag_gnu89_inline)
+ error ("-fno-gnu89-inline is not supported");
+
/* If we are given more than one input file, we must use
unit-at-a-time mode. */
if (num_in_fnames > 1)
diff --git a/gcc/c.opt b/gcc/c.opt
index 2956847..2b9b0a0 100644
--- a/gcc/c.opt
+++ b/gcc/c.opt
@@ -532,6 +532,10 @@ fgnu-runtime
ObjC ObjC++
Generate code for GNU runtime environment
+fgnu89-inline
+C Var(flag_gnu89_inline) Init(-1)
+Use traditional GNU semantics for inline functions
+
fguiding-decls
C++ ObjC++
diff --git a/gcc/doc/cpp.texi b/gcc/doc/cpp.texi
index 671ed14..a4ddec8 100644
--- a/gcc/doc/cpp.texi
+++ b/gcc/doc/cpp.texi
@@ -2019,6 +2019,28 @@ functions. You should not use these macros in any way unless you make
sure that programs will execute with the same effect whether or not they
are defined. If they are defined, their value is 1.
+@item __GNUC_GNU_INLINE__
+GCC defines this macro if functions declared @code{inline} will be
+handled in GCC's traditional gnu89 mode. In this mode an @code{extern
+inline} function will never be compiled as a standalone function, and
+an @code{inline} function which is neither @code{extern} nor
+@code{static} will always be compiled as a standalone function.
+
+@item __GNUC_STDC_INLINE__
+GCC defines this macro if functions declared @code{inline} will be
+handled according to the ISO C99 standard. In this mode an
+@code{extern inline} function will always be compiled as a standalone
+externally visible function, and an @code{inline} function which is
+neither @code{extern} nor @code{static} will never be compiled as a
+standalone function.
+
+If this macro is defined, GCC supports the @code{gnu_inline} function
+attribute as a way to always get the gnu89 behaviour. Support for
+this and @code{__GNUC_GNU_INLINE__} was added in GCC 4.1.3. If
+neither macro is defined, an older version of GCC is being used:
+@code{inline} functions will be compiled in gnu89 mode, and the
+@code{gnu_inline} function attribute will not be recognized.
+
@item __CHAR_UNSIGNED__
GCC defines this macro if and only if the data type @code{char} is
unsigned on the target machine. It exists to cause the standard header
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index bed6e1e..f7b6f4a 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -1527,8 +1527,8 @@ attributes are currently defined for functions on all targets:
@code{format}, @code{format_arg}, @code{no_instrument_function},
@code{section}, @code{constructor}, @code{destructor}, @code{used},
@code{unused}, @code{deprecated}, @code{weak}, @code{malloc},
-@code{alias}, @code{warn_unused_result}, @code{nonnull}
-and @code{externally_visible}. Several other
+@code{alias}, @code{warn_unused_result}, @code{nonnull},
+@code{gnu_inline} and @code{externally_visible}. Several other
attributes are defined for functions on particular target systems. Other
attributes, including @code{section} are supported for variables declarations
(@pxref{Variable Attributes}) and for types (@pxref{Type Attributes}).
@@ -1566,6 +1566,46 @@ Generally, functions are not inlined unless optimization is specified.
For functions declared inline, this attribute inlines the function even
if no optimization level was specified.
+@item gnu_inline
+@cindex @code{gnu_inline} function attribute
+This attribute should be used with a function which is also declared
+with the @code{inline} keyword. It directs GCC to treat the function
+as if it were defined in gnu89 mode even when compiling in C99 or
+gnu99 mode.
+
+If the function is declared @code{extern}, then this definition of the
+function is used only for inlining. In no case is the function
+compiled as a standalone function, not even if you take its address
+explicitly. Such an address becomes an external reference, as if you
+had only declared the function, and had not defined it. This has
+almost the effect of a macro. The way to use this is to put a
+function definition in a header file with this attribute, and put
+another copy of the function, without @code{extern}, in a library
+file. The definition in the header file will cause most calls to the
+function to be inlined. If any uses of the function remain, they will
+refer to the single copy in the library. Note that the two
+definitions of the functions need not be precisely the same, although
+if they do not have the same effect your program may behave oddly.
+
+If the function is neither @code{extern} nor @code{static}, then the
+function is compiled as a standalone function, as well as being
+inlined where possible.
+
+This is how GCC traditionally handled functions declared
+@code{inline}. Since ISO C99 specifies a different semantics for
+@code{inline}, this function attribute is provided as a transition
+measure and as a useful feature in its own right. This attribute is
+available in GCC 4.1.3 and later. It is available if either of the
+preprocessor macros @code{__GNUC_GNU_INLINE__} or
+@code{__GNUC_STDC_INLINE__} are defined. @xref{Inline,,An Inline
+Function is As Fast As a Macro}.
+
+Note that since the first version of GCC to support C99 inline semantics
+is 4.3, earlier versions of GCC which accept this attribute effectively
+assume that it is always present, whether or not it is given explicitly.
+In versions prior to 4.3, the only effect of explicitly including it is
+to disable warnings about using inline functions in C99 mode.
+
@cindex @code{flatten} function attribute
@item flatten
Generally, inlining into a function is limited. For a function marked with
@@ -3518,7 +3558,15 @@ you don't use @option{-O}, no function is really inline.
Inline functions are included in the ISO C99 standard, but there are
currently substantial differences between what GCC implements and what
-the ISO C99 standard requires.
+the ISO C99 standard requires. GCC will fully support C99 inline
+functions in version 4.3. The traditional GCC handling of inline
+functions will still be available with @option{-std=gnu89},
+@option{-fgnu89-inline} or when @code{gnu_inline} attribute is present
+on all inline declarations. The preprocessor macros
+@code{__GNUC_GNU_INLINE__} and @code{__GNUC_STDC_INLINE__} may be used
+to determine the handling of @code{inline} during a particular
+compilation (@pxref{Common Predefined Macros,,,cpp.info,The C
+Preprocessor}).
To declare a function inline, use the @code{inline} keyword in its
declaration, like this:
@@ -3594,12 +3642,15 @@ The definition in the header file will cause most calls to the function
to be inlined. If any uses of the function remain, they will refer to
the single copy in the library.
-Since GCC eventually will implement ISO C99 semantics for
-inline functions, it is best to use @code{static inline} only
+Since GCC 4.3 will implement ISO C99 semantics for
+inline functions, it is simplest to use @code{static inline} only
to guarantee compatibility. (The
existing semantics will remain available when @option{-std=gnu89} is
-specified, but eventually the default will be @option{-std=gnu99} and
-that will implement the C99 semantics, though it does not do so yet.)
+specified, but eventually the default will be @option{-std=gnu99};
+that will implement the C99 semantics, though it does not do so in
+versions of GCC before 4.3. After the default changes, the existing
+semantics will still be available via the @option{-fgnu89-inline}
+option or the @code{gnu_inline} function attribute.)
GCC does not inline any functions when not optimizing unless you specify
the @samp{always_inline} attribute for the function, like this:
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 3f95a3e..bd8ba24 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -160,7 +160,8 @@ in the following sections.
@item C Language Options
@xref{C Dialect Options,,Options Controlling C Dialect}.
-@gccoptlist{-ansi -std=@var{standard} -aux-info @var{filename} @gol
+@gccoptlist{-ansi -std=@var{standard} -fgnu89-inline @gol
+-aux-info @var{filename} @gol
-fno-asm -fno-builtin -fno-builtin-@var{function} @gol
-fhosted -ffreestanding -fms-extensions @gol
-trigraphs -no-integrated-cpp -traditional -traditional-cpp @gol
@@ -1186,6 +1187,28 @@ the @code{inline} keyword in ISO C99) are not disabled.
@xref{Standards,,Language Standards Supported by GCC}, for details of
these standard versions.
+@item -fgnu89-inline
+@opindex fgnu89-inline
+The option @option{-fgnu89-inline} tells GCC to use the traditional
+GNU semantics for @code{inline} functions when in C99 mode.
+@xref{Inline,,An Inline Function is As Fast As a Macro}. Using this
+option is roughly equivalent to adding the @code{gnu_inline} function
+attribute to all inline functions (@pxref{Function Attributes}).
+
+This option is accepted by GCC versions 4.1.3 and up. In GCC versions
+prior to 4.3, C99 inline semantics are not supported, and thus this
+option is effectively assumed to be present regardless of whether or not
+it is specified; the only effect of specifying it explicitly is to
+disable warnings about using inline functions in C99 mode. Likewise,
+the option @option{-fno-gnu89-inline} is not supported in versions of
+GCC before 4.3. It will be supported only in C99 or gnu99 mode, not in
+C89 or gnu89 mode.
+
+The preprocesor macros @code{__GNUC_GNU_INLINE__} and
+@code{__GNUC_STDC_INLINE__} may be used to check which semantics are
+in effect for @code{inline} functions. @xref{Common Predefined
+Macros,,,cpp,The C Preprocessor}.
+
@item -aux-info @var{filename}
@opindex aux-info
Output to the given filename prototyped declarations for all functions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 439d660..46da8dd 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2007-03-19 Ian Lance Taylor <iant@google.com>
+
+ * gcc.dg/inline-7.c: Add -fgnu89-inline.
+ * gcc.dg/inline-17.c: New test.
+ * gcc.dg/inline-18.c: New test.
+ * gcc.dg/inline-19.c: New test.
+ * gcc.dg/inline-21.c: New test.
+
2007-03-17 Alexandre Oliva <aoliva@redhat.com>
PR debug/29906
diff --git a/gcc/testsuite/gcc.dg/inline-17.c b/gcc/testsuite/gcc.dg/inline-17.c
new file mode 100644
index 0000000..235ad8b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/inline-17.c
@@ -0,0 +1,24 @@
+/* Test __attribute__((gnu_inline)). */
+/* { dg-do compile } */
+/* { dg-options "-std=c99" } */
+/* { dg-final { scan-assembler "func1" } } */
+/* { dg-final { scan-assembler-not "func2" } } */
+/* { dg-final { scan-assembler "func3" } } */
+/* { dg-final { scan-assembler "func4" } } */
+
+#if __STDC_VERSION__ >= 199901L
+# define inline __attribute__((gnu_inline)) inline
+#endif
+
+extern inline int func1 (void) { return 0; }
+inline int func1 (void) { return 1; }
+
+extern int func2 (void);
+extern inline int func2 (void) { return 2; }
+
+inline int func3 (void);
+inline int func3 (void) { return 3; }
+
+extern int func4 (void);
+extern inline int func4 (void) { return 4; }
+int func4 (void) { return 5; }
diff --git a/gcc/testsuite/gcc.dg/inline-18.c b/gcc/testsuite/gcc.dg/inline-18.c
new file mode 100644
index 0000000..5a37195
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/inline-18.c
@@ -0,0 +1,28 @@
+/* Test -fgnu89-extern-inline. */
+/* { dg-do compile } */
+/* { dg-options "-std=c99 -fgnu89-inline" } */
+/* { dg-final { scan-assembler "func1" } } */
+/* { dg-final { scan-assembler-not "func2" } } */
+/* { dg-final { scan-assembler "func3" } } */
+/* { dg-final { scan-assembler "func4" } } */
+
+#ifndef __GNUC_GNU_INLINE__
+#error __GNUC_GNU_INLINE__ is not defined
+#endif
+
+#ifdef __GNUC_STDC_INLINE__
+#error __GNUC_STDC_INLINE__ is defined
+#endif
+
+extern inline int func1 (void) { return 0; }
+inline int func1 (void) { return 1; }
+
+extern int func2 (void);
+extern inline int func2 (void) { return 2; }
+
+inline int func3 (void);
+inline int func3 (void) { return 3; }
+
+extern int func4 (void);
+extern inline int func4 (void) { return 4; }
+int func4 (void) { return 5; }
diff --git a/gcc/testsuite/gcc.dg/inline-19.c b/gcc/testsuite/gcc.dg/inline-19.c
new file mode 100644
index 0000000..96dceb4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/inline-19.c
@@ -0,0 +1,28 @@
+/* Test -fgnu89-extern-inline. */
+/* { dg-do compile } */
+/* { dg-options "-fgnu89-inline" } */
+/* { dg-final { scan-assembler "func1" } } */
+/* { dg-final { scan-assembler-not "func2" } } */
+/* { dg-final { scan-assembler "func3" } } */
+/* { dg-final { scan-assembler "func4" } } */
+
+#ifndef __GNUC_GNU_INLINE__
+#error __GNUC_GNU_INLINE__ is not defined
+#endif
+
+#ifdef __GNUC_STDC_INLINE__
+#error __GNUC_STDC_INLINE__ is defined
+#endif
+
+extern inline int func1 (void) { return 0; }
+inline int func1 (void) { return 1; }
+
+extern int func2 (void);
+extern inline int func2 (void) { return 2; }
+
+inline int func3 (void);
+inline int func3 (void) { return 3; }
+
+extern int func4 (void);
+extern inline int func4 (void) { return 4; }
+int func4 (void) { return 5; }
diff --git a/gcc/testsuite/gcc.dg/inline-21.c b/gcc/testsuite/gcc.dg/inline-21.c
new file mode 100644
index 0000000..8961ce4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/inline-21.c
@@ -0,0 +1,4 @@
+/* Test -fno-gnu89-inline. */
+/* { dg-do compile } */
+/* { dg-options "-fno-gnu89-inline" } */
+/* { dg-error "is not supported" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/gcc.dg/inline-7.c b/gcc/testsuite/gcc.dg/inline-7.c
index b239a20..508aaa4 100644
--- a/gcc/testsuite/gcc.dg/inline-7.c
+++ b/gcc/testsuite/gcc.dg/inline-7.c
@@ -1,6 +1,6 @@
/* Test duplicate inline, gnu99 mode. */
/* Origin: Joseph Myers <jsm@polyomino.org.uk> */
/* { dg-do compile } */
-/* { dg-options "-std=gnu99" } */
+/* { dg-options "-std=gnu99 -fgnu89-inline" } */
inline inline void f (void) {}
--
1.5.4
From 923ebf204462802c0f0156ea20b285d81351ce9d Mon Sep 17 00:00:00 2001
From: law <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 19 Mar 2007 20:03:07 +0000
Subject: 2007-03-19 Jeff Law <law@redhat.com>
* tree-cfg.c (find_taken_edge): Tighten conditions for
optimizing computed gotos.
2007-03-19 Jeff Law <law@redhat.com>
* PR tree-optimization/30984
* gcc.c-torture/pr30984.c: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123068 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bb53e64..321d4c2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-19 Jeff Law <law@redhat.com>
+
+ * tree-cfg.c (find_taken_edge): Tighten conditions for
+ optimizing computed gotos.
+
2007-03-19 Brooks Moses <brooks.moses@codesourcery.com>
* doc/extend.texi: Edit "gnu_inline" documentation.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 46da8dd..2edeb49 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-19 Jeff Law <law@redhat.com>
+
+ * PR tree-optimization/30984
+ * gcc.c-torture/pr30984.c: New test.
+
2007-03-19 Ian Lance Taylor <iant@google.com>
* gcc.dg/inline-7.c: Add -fgnu89-inline.
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr30984.c b/gcc/testsuite/gcc.c-torture/compile/pr30984.c
new file mode 100644
index 0000000..265a6f3
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr30984.c
@@ -0,0 +1,7 @@
+int fs_exec(int ino)
+{
+ void *src = 0;
+ if (ino)
+ src = (void*)0xe000;
+ goto *src;
+}
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 462c73d..b17ba4b 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -2115,7 +2115,18 @@ find_taken_edge (basic_block bb, tree val)
return find_taken_edge_switch_expr (bb, val);
if (computed_goto_p (stmt))
- return find_taken_edge_computed_goto (bb, TREE_OPERAND( val, 0));
+ {
+ /* Only optimize if the argument is a label, if the argument is
+ not a label then we can not construct a proper CFG.
+
+ It may be the case that we only need to allow the LABEL_REF to
+ appear inside an ADDR_EXPR, but we also allow the LABEL_REF to
+ appear inside a LABEL_EXPR just to be safe. */
+ if ((TREE_CODE (val) == ADDR_EXPR || TREE_CODE (val) == LABEL_EXPR)
+ && TREE_CODE (TREE_OPERAND (val, 0)) == LABEL_DECL)
+ return find_taken_edge_computed_goto (bb, TREE_OPERAND (val, 0));
+ return NULL;
+ }
gcc_unreachable ();
}
--
1.5.4
From c46121a83671c3d3d017428c3f93d7aeafe06554 Mon Sep 17 00:00:00 2001
From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 19 Mar 2007 23:32:48 +0000
Subject: * io/unix.c (regular_file): For ACTION_UNSPECIFIED retry with
O_RDONLY even if errno is EROFS.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123077 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 4dfe430..641e6e7 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-14 Jakub Jelinek <jakub@redhat.com>
+
+ * io/unix.c (regular_file): For ACTION_UNSPECIFIED retry with
+ O_RDONLY even if errno is EROFS.
+
2007-02-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/30918
diff --git a/libgfortran/io/unix.c b/libgfortran/io/unix.c
index 560047f..4d67e07 100644
--- a/libgfortran/io/unix.c
+++ b/libgfortran/io/unix.c
@@ -1169,7 +1169,7 @@ regular_file (st_parameter_open *opp, unit_flags *flags)
break;
case STATUS_REPLACE:
- crflag = O_CREAT | O_TRUNC;
+ crflag = O_CREAT | O_TRUNC;
break;
default:
@@ -1185,14 +1185,14 @@ regular_file (st_parameter_open *opp, unit_flags *flags)
mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
fd = open (path, rwflag | crflag, mode);
if (flags->action != ACTION_UNSPECIFIED)
- return fd;
+ return fd;
if (fd >= 0)
{
flags->action = ACTION_READWRITE;
return fd;
}
- if (errno != EACCES)
+ if (errno != EACCES && errno != EROFS)
return fd;
/* retry for read-only access */
--
1.5.4
From f136d9dbaf9c6c0662f44cf5961419fea85a432a Mon Sep 17 00:00:00 2001
From: spark <spark@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 20 Mar 2007 04:45:14 +0000
Subject: 2007-03-19 Seongbae Park <seongbae.park@gmail.com>
PR tree-optimization/30590
* tree-nrv.c (tree_nrv): Check for the partial update
of the return value.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123083 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 321d4c2..4293eb4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-03-19 Seongbae Park <seongbae.park@gmail.com>
+
+ PR tree-optimization/30590
+ * tree-nrv.c (tree_nrv): Check for the partial update
+ of the return value.
+
2007-03-19 Jeff Law <law@redhat.com>
* tree-cfg.c (find_taken_edge): Tighten conditions for
diff --git a/gcc/tree-nrv.c b/gcc/tree-nrv.c
index e0b59eb..7265ebc 100644
--- a/gcc/tree-nrv.c
+++ b/gcc/tree-nrv.c
@@ -163,6 +163,14 @@ tree_nrv (void)
result_type))
return;
}
+ else if (TREE_CODE (stmt) == MODIFY_EXPR)
+ {
+ tree addr = get_base_address (TREE_OPERAND (stmt, 0));
+ /* If there's any MODIFY of component of RESULT,
+ then bail out. */
+ if (addr && addr == result)
+ return;
+ }
}
}
--
1.5.4
From 06f2268a02a10aebfc38290a9976639a110fcf33 Mon Sep 17 00:00:00 2001
From: spark <spark@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 20 Mar 2007 16:44:54 +0000
Subject: 2007-03-20 Seongbae Park <seongbae.park@gmail.com>
PR tree-optimization/30590
* g++.dg/opt/pr30590.C: New testcase.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123090 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2edeb49..9485734 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-20 Seongbae Park <seongbae.park@gmail.com>
+
+ PR tree-optimization/30590
+ * g++.dg/opt/pr30590.C: New testcase.
+
2007-03-19 Jeff Law <law@redhat.com>
* PR tree-optimization/30984
diff --git a/gcc/testsuite/g++.dg/opt/pr30590.C b/gcc/testsuite/g++.dg/opt/pr30590.C
new file mode 100644
index 0000000..42ae046
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/pr30590.C
@@ -0,0 +1,40 @@
+/* { dg-do run } */
+/* { dg-options "-O" } */
+struct test
+{
+ int type;
+ char buffer[4242]; /* should trigger pass-by-reference */
+};
+
+int flag = 0;
+
+struct test
+reset (void)
+{
+ struct test retval;
+ retval.type = 1;
+ return retval;
+}
+
+struct test
+test (void)
+{
+ struct test result;
+ result.type = 0;
+
+ for (int i = 0; i < 2; ++i)
+ {
+ struct test candidate = reset ();
+ if (flag)
+ result = candidate;
+ }
+
+ return result;
+}
+
+int
+main (void)
+{
+ struct test result = test ();
+ return result.type;
+}
--
1.5.4
From f4a122ae141413d5651935b34dfc4ec35937893f Mon Sep 17 00:00:00 2001
From: rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 21 Mar 2007 15:46:46 +0000
Subject: PR target/31245
* config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
* config/i386/mmintrin.h (__m64): Likewise.
* config/i386/xmmintrin.h (__m128): Likewise.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123110 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4293eb4..33b5b14 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2007-03-21 Richard Henderson <rth@redhat.com>
+
+ PR target/31245
+ * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
+ * config/i386/mmintrin.h (__m64): Likewise.
+ * config/i386/xmmintrin.h (__m128): Likewise.
+
2007-03-19 Seongbae Park <seongbae.park@gmail.com>
PR tree-optimization/30590
diff --git a/gcc/config/i386/emmintrin.h b/gcc/config/i386/emmintrin.h
index 9ee58b6..4c0da2e 100644
--- a/gcc/config/i386/emmintrin.h
+++ b/gcc/config/i386/emmintrin.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
This file is part of GCC.
@@ -40,8 +40,10 @@ typedef int __v4si __attribute__ ((__vector_size__ (16)));
typedef short __v8hi __attribute__ ((__vector_size__ (16)));
typedef char __v16qi __attribute__ ((__vector_size__ (16)));
-typedef __v2di __m128i;
-typedef __v2df __m128d;
+/* The Intel API is flexible enough that we must allow aliasing with other
+ vector types, and their scalar components. */
+typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__));
+typedef double __m128d __attribute__ ((__vector_size__ (16), __may_alias__));
/* Create a selector for use with the SHUFPD instruction. */
#define _MM_SHUFFLE2(fp1,fp0) \
diff --git a/gcc/config/i386/mmintrin.h b/gcc/config/i386/mmintrin.h
index 252364b..e2cf58e 100644
--- a/gcc/config/i386/mmintrin.h
+++ b/gcc/config/i386/mmintrin.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
This file is part of GCC.
@@ -33,8 +33,9 @@
#ifndef __MMX__
# error "MMX instruction set not enabled"
#else
-/* The data type intended for user use. */
-typedef int __m64 __attribute__ ((__vector_size__ (8)));
+/* The Intel API is flexible enough that we must allow aliasing with other
+ vector types, and their scalar components. */
+typedef int __m64 __attribute__ ((__vector_size__ (8), __may_alias__));
/* Internal data types for implementing the intrinsics. */
typedef int __v2si __attribute__ ((__vector_size__ (8)));
diff --git a/gcc/config/i386/xmmintrin.h b/gcc/config/i386/xmmintrin.h
index b80d6b5..56c15ed 100644
--- a/gcc/config/i386/xmmintrin.h
+++ b/gcc/config/i386/xmmintrin.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
This file is part of GCC.
@@ -40,8 +40,9 @@
/* Get _mm_malloc () and _mm_free (). */
#include <mm_malloc.h>
-/* The data type intended for user use. */
-typedef float __m128 __attribute__ ((__vector_size__ (16)));
+/* The Intel API is flexible enough that we must allow aliasing with other
+ vector types, and their scalar components. */
+typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__));
/* Internal data types for implementing the intrinsics. */
typedef float __v4sf __attribute__ ((__vector_size__ (16)));
--
1.5.4
From 37154a1fd34cdf0a7e6755416fcb867aa0975c7e Mon Sep 17 00:00:00 2001
From: aesok <aesok@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 30 Mar 2007 20:45:29 +0000
Subject: * config/avr/avr.c (avr_override_options): Clear
'flag_delete_null_pointer_checks'.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123369 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 33b5b14..9998a83 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-30 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.c (avr_override_options): Clear
+ 'flag_delete_null_pointer_checks'.
+
2007-03-21 Richard Henderson <rth@redhat.com>
PR target/31245
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index 5367bd1..548610f 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -269,6 +269,8 @@ avr_override_options (void)
const struct mcu_type_s *t;
const struct base_arch_s *base;
+ flag_delete_null_pointer_checks = 0;
+
for (t = avr_mcu_types; t->name; t++)
if (strcmp (t->name, avr_mcu_name) == 0)
break;
--
1.5.4
From db7633081f3a337f465ee1f7d5c3f987c8382c43 Mon Sep 17 00:00:00 2001
From: hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 2 Apr 2007 14:55:17 +0000
Subject: 2007-04-02 H.J. Lu <hongjiu.lu@intel.com>
* Backport from mainline:
2007-03-28 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
PR target/31380
* config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123429 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9998a83..8d56375 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2007-04-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Backport from mainline:
+ 2007-03-28 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
+
+ PR target/31380
+ * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
+
2007-03-30 Anatoly Sokolov <aesok@post.ru>
* config/avr/avr.c (avr_override_options): Clear
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 6535d68..ea7cbc5 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -2887,7 +2887,7 @@
(umin:V16QI (match_operand:V16QI 1 "nonimmediate_operand" "")
(match_operand:V16QI 2 "nonimmediate_operand" "")))]
"TARGET_SSE2"
- "ix86_fixup_binary_operands_no_copy (UMAX, V16QImode, operands);")
+ "ix86_fixup_binary_operands_no_copy (UMIN, V16QImode, operands);")
(define_insn "*uminv16qi3"
[(set (match_operand:V16QI 0 "register_operand" "=x")
--
1.5.4
From e55a47cf17ae24a3fd87b3782fd671d7e99b844c Mon Sep 17 00:00:00 2001
From: aesok <aesok@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 2 Apr 2007 22:00:28 +0000
Subject: PR target/31137
* config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123439 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8d56375..9ef5251 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-02 Anatoly Sokolov <aesok@post.ru>
+
+ PR target/31137
+ * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
+
2007-04-02 H.J. Lu <hongjiu.lu@intel.com>
* Backport from mainline:
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index 548610f..7f859a7 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -5052,6 +5052,7 @@ avr_rtx_costs (rtx x, int code, int outer_code, int *total)
*total = COSTS_N_INSNS (AVR_MEGA ? 2 : 1);
else
return false;
+ break;
case HImode:
if (AVR_ENHANCED)
@@ -5060,6 +5061,7 @@ avr_rtx_costs (rtx x, int code, int outer_code, int *total)
*total = COSTS_N_INSNS (AVR_MEGA ? 2 : 1);
else
return false;
+ break;
default:
return false;
--
1.5.4
From 75fd9db143e318169ba969e0a78456aa5a441a5e Mon Sep 17 00:00:00 2001
From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 3 Apr 2007 09:28:35 +0000
Subject: PR c++/30847
* typeck.c (build_modify_expr): For COND_EXPR on LHS, if RHS has void
type issue error and return early.
* g++.dg/parse/cond3.C: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123462 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 35e4be2..c87cb6d 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2007-04-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/30847
+ * typeck.c (build_modify_expr): For COND_EXPR on LHS, if RHS has void
+ type issue error and return early.
+
2007-03-08 Volker Reichelt <reichelt@netcologne.de>
PR c++/30852
diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c
index fefc119..990f03c 100644
--- a/gcc/cp/typeck.c
+++ b/gcc/cp/typeck.c
@@ -5450,6 +5450,12 @@ build_modify_expr (tree lhs, enum tree_code modifycode, tree rhs)
tree cond;
tree preeval = NULL_TREE;
+ if (VOID_TYPE_P (TREE_TYPE (rhs)))
+ {
+ error ("void value not ignored as it ought to be");
+ return error_mark_node;
+ }
+
rhs = stabilize_expr (rhs, &preeval);
/* Check this here to avoid odd errors when trying to convert
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9485734..be514a4 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/30847
+ * g++.dg/parse/cond3.C: New test.
+
2007-03-20 Seongbae Park <seongbae.park@gmail.com>
PR tree-optimization/30590
diff --git a/gcc/testsuite/g++.dg/parse/cond3.C b/gcc/testsuite/g++.dg/parse/cond3.C
new file mode 100644
index 0000000..96d9c1e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/cond3.C
@@ -0,0 +1,15 @@
+// PR c++/30847
+// { dg-do compile }
+// { dg-options "" }
+
+int j, k, l;
+extern void baz ();
+
+void
+foo (int i)
+{
+ (i ? j : k) = ({ l++; (void) l; }); // { dg-error "void value not ignored" }
+ (i ? j : k) += ({ l++; (void) l; }); // { dg-error "void value not ignored" }
+ (i ? j : k) = baz (); // { dg-error "void value not ignored" }
+ (i ? j : k) *= baz (); // { dg-error "void value not ignored" }
+}
--
1.5.4
From 608908c62c3eab6055ce1e35588cd23e6206729f Mon Sep 17 00:00:00 2001
From: rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 4 Apr 2007 22:11:30 +0000
Subject: PR target/31361
* config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove
v8hi_ftype_v8hi_v2di, v4si_ftype_v4si_v2di. Use like-types for
the variable shift builtins.
(ix86_expand_builtin): Properly expand the variable shift builtins.
* config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
operand 2 be TImode.
* config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32,
_mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16,
_mm_srli_epi32, _mm_srli_epi64): Turn into macros.
(_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
(_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
_mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
two-vector shift builtins.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123504 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9ef5251..3211c87 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,20 @@
+2007-04-04 Richard Henderson <rth@redhat.com>
+
+ PR target/31361
+ * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove
+ v8hi_ftype_v8hi_v2di, v4si_ftype_v4si_v2di. Use like-types for
+ the variable shift builtins.
+ (ix86_expand_builtin): Properly expand the variable shift builtins.
+ * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
+ operand 2 be TImode.
+ * config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32,
+ _mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16,
+ _mm_srli_epi32, _mm_srli_epi64): Turn into macros.
+ (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
+ (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
+ _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
+ two-vector shift builtins.
+
2007-04-02 Anatoly Sokolov <aesok@post.ru>
PR target/31137
diff --git a/gcc/config/i386/emmintrin.h b/gcc/config/i386/emmintrin.h
index 4c0da2e..d421abb 100644
--- a/gcc/config/i386/emmintrin.h
+++ b/gcc/config/i386/emmintrin.h
@@ -1062,6 +1062,7 @@ _mm_mul_epu32 (__m128i __A, __m128i __B)
return (__m128i)__builtin_ia32_pmuludq128 ((__v4si)__A, (__v4si)__B);
}
+#if 0
static __inline __m128i __attribute__((__always_inline__))
_mm_slli_epi16 (__m128i __A, int __B)
{
@@ -1079,7 +1080,16 @@ _mm_slli_epi64 (__m128i __A, int __B)
{
return (__m128i)__builtin_ia32_psllqi128 ((__v2di)__A, __B);
}
+#else
+#define _mm_slli_epi16(__A, __B) \
+ ((__m128i)__builtin_ia32_psllwi128 ((__v8hi)(__A), __B))
+#define _mm_slli_epi32(__A, __B) \
+ ((__m128i)__builtin_ia32_pslldi128 ((__v8hi)(__A), __B))
+#define _mm_slli_epi64(__A, __B) \
+ ((__m128i)__builtin_ia32_psllqi128 ((__v8hi)(__A), __B))
+#endif
+#if 0
static __inline __m128i __attribute__((__always_inline__))
_mm_srai_epi16 (__m128i __A, int __B)
{
@@ -1091,18 +1101,24 @@ _mm_srai_epi32 (__m128i __A, int __B)
{
return (__m128i)__builtin_ia32_psradi128 ((__v4si)__A, __B);
}
+#else
+#define _mm_srai_epi16(__A, __B) \
+ ((__m128i)__builtin_ia32_psrawi128 ((__v8hi)(__A), __B))
+#define _mm_srai_epi32(__A, __B) \
+ ((__m128i)__builtin_ia32_psradi128 ((__v8hi)(__A), __B))
+#endif
#if 0
static __m128i __attribute__((__always_inline__))
-_mm_srli_si128 (__m128i __A, const int __B)
+_mm_srli_si128 (__m128i __A, int __B)
{
- return ((__m128i)__builtin_ia32_psrldqi128 (__A, __B))
+ return ((__m128i)__builtin_ia32_psrldqi128 (__A, __B * 8));
}
static __m128i __attribute__((__always_inline__))
-_mm_srli_si128 (__m128i __A, const int __B)
+_mm_srli_si128 (__m128i __A, int __B)
{
- return ((__m128i)__builtin_ia32_pslldqi128 (__A, __B))
+ return ((__m128i)__builtin_ia32_pslldqi128 (__A, __B * 8));
}
#else
#define _mm_srli_si128(__A, __B) \
@@ -1111,6 +1127,7 @@ _mm_srli_si128 (__m128i __A, const int __B)
((__m128i)__builtin_ia32_pslldqi128 (__A, (__B) * 8))
#endif
+#if 0
static __inline __m128i __attribute__((__always_inline__))
_mm_srli_epi16 (__m128i __A, int __B)
{
@@ -1128,53 +1145,61 @@ _mm_srli_epi64 (__m128i __A, int __B)
{
return (__m128i)__builtin_ia32_psrlqi128 ((__v2di)__A, __B);
}
+#else
+#define _mm_srli_epi16(__A, __B) \
+ ((__m128i)__builtin_ia32_psrlwi128 ((__v8hi)(__A), __B))
+#define _mm_srli_epi32(__A, __B) \
+ ((__m128i)__builtin_ia32_psrldi128 ((__v4si)(__A), __B))
+#define _mm_srli_epi64(__A, __B) \
+ ((__m128i)__builtin_ia32_psrlqi128 ((__v4si)(__A), __B))
+#endif
static __inline __m128i __attribute__((__always_inline__))
_mm_sll_epi16 (__m128i __A, __m128i __B)
{
- return _mm_slli_epi16 (__A, _mm_cvtsi128_si32 (__B));
+ return (__m128i)__builtin_ia32_psllw128((__v8hi)__A, (__v8hi)__B);
}
static __inline __m128i __attribute__((__always_inline__))
_mm_sll_epi32 (__m128i __A, __m128i __B)
{
- return _mm_slli_epi32 (__A, _mm_cvtsi128_si32 (__B));
+ return (__m128i)__builtin_ia32_pslld128((__v4si)__A, (__v4si)__B);
}
static __inline __m128i __attribute__((__always_inline__))
_mm_sll_epi64 (__m128i __A, __m128i __B)
{
- return _mm_slli_epi64 (__A, _mm_cvtsi128_si32 (__B));
+ return (__m128i)__builtin_ia32_psllq128((__v2di)__A, (__v2di)__B);
}
static __inline __m128i __attribute__((__always_inline__))
_mm_sra_epi16 (__m128i __A, __m128i __B)
{
- return _mm_srai_epi16 (__A, _mm_cvtsi128_si32 (__B));
+ return (__m128i)__builtin_ia32_psraw128 ((__v8hi)__A, (__v8hi)__B);
}
static __inline __m128i __attribute__((__always_inline__))
_mm_sra_epi32 (__m128i __A, __m128i __B)
{
- return _mm_srai_epi32 (__A, _mm_cvtsi128_si32 (__B));
+ return (__m128i)__builtin_ia32_psrad128 ((__v4si)__A, (__v4si)__B);
}
static __inline __m128i __attribute__((__always_inline__))
_mm_srl_epi16 (__m128i __A, __m128i __B)
{
- return _mm_srli_epi16 (__A, _mm_cvtsi128_si32 (__B));
+ return (__m128i)__builtin_ia32_psrlw128 ((__v8hi)__A, (__v8hi)__B);
}
static __inline __m128i __attribute__((__always_inline__))
_mm_srl_epi32 (__m128i __A, __m128i __B)
{
- return _mm_srli_epi32 (__A, _mm_cvtsi128_si32 (__B));
+ return (__m128i)__builtin_ia32_psrld128 ((__v4si)__A, (__v4si)__B);
}
static __inline __m128i __attribute__((__always_inline__))
_mm_srl_epi64 (__m128i __A, __m128i __B)
{
- return _mm_srli_epi64 (__A, _mm_cvtsi128_si32 (__B));
+ return (__m128i)__builtin_ia32_psrlq128 ((__v2di)__A, (__v2di)__B);
}
static __inline __m128i __attribute__((__always_inline__))
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 82e5e1b..dadde3f 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -14576,12 +14576,6 @@ ix86_init_mmx_sse_builtins (void)
tree v8hi_ftype_v8hi_int
= build_function_type_list (V8HI_type_node,
V8HI_type_node, integer_type_node, NULL_TREE);
- tree v8hi_ftype_v8hi_v2di
- = build_function_type_list (V8HI_type_node,
- V8HI_type_node, V2DI_type_node, NULL_TREE);
- tree v4si_ftype_v4si_v2di
- = build_function_type_list (V4SI_type_node,
- V4SI_type_node, V2DI_type_node, NULL_TREE);
tree v4si_ftype_v8hi_v8hi
= build_function_type_list (V4SI_type_node,
V8HI_type_node, V8HI_type_node, NULL_TREE);
@@ -14852,16 +14846,16 @@ ix86_init_mmx_sse_builtins (void)
def_builtin (MASK_SSE2, "__builtin_ia32_pmuludq", di_ftype_v2si_v2si, IX86_BUILTIN_PMULUDQ);
def_builtin (MASK_SSE2, "__builtin_ia32_pmuludq128", v2di_ftype_v4si_v4si, IX86_BUILTIN_PMULUDQ128);
- def_builtin (MASK_SSE2, "__builtin_ia32_psllw128", v8hi_ftype_v8hi_v2di, IX86_BUILTIN_PSLLW128);
- def_builtin (MASK_SSE2, "__builtin_ia32_pslld128", v4si_ftype_v4si_v2di, IX86_BUILTIN_PSLLD128);
+ def_builtin (MASK_SSE2, "__builtin_ia32_psllw128", v8hi_ftype_v8hi_v8hi, IX86_BUILTIN_PSLLW128);
+ def_builtin (MASK_SSE2, "__builtin_ia32_pslld128", v4si_ftype_v4si_v4si, IX86_BUILTIN_PSLLD128);
def_builtin (MASK_SSE2, "__builtin_ia32_psllq128", v2di_ftype_v2di_v2di, IX86_BUILTIN_PSLLQ128);
- def_builtin (MASK_SSE2, "__builtin_ia32_psrlw128", v8hi_ftype_v8hi_v2di, IX86_BUILTIN_PSRLW128);
- def_builtin (MASK_SSE2, "__builtin_ia32_psrld128", v4si_ftype_v4si_v2di, IX86_BUILTIN_PSRLD128);
+ def_builtin (MASK_SSE2, "__builtin_ia32_psrlw128", v8hi_ftype_v8hi_v8hi, IX86_BUILTIN_PSRLW128);
+ def_builtin (MASK_SSE2, "__builtin_ia32_psrld128", v4si_ftype_v4si_v4si, IX86_BUILTIN_PSRLD128);
def_builtin (MASK_SSE2, "__builtin_ia32_psrlq128", v2di_ftype_v2di_v2di, IX86_BUILTIN_PSRLQ128);
- def_builtin (MASK_SSE2, "__builtin_ia32_psraw128", v8hi_ftype_v8hi_v2di, IX86_BUILTIN_PSRAW128);
- def_builtin (MASK_SSE2, "__builtin_ia32_psrad128", v4si_ftype_v4si_v2di, IX86_BUILTIN_PSRAD128);
+ def_builtin (MASK_SSE2, "__builtin_ia32_psraw128", v8hi_ftype_v8hi_v8hi, IX86_BUILTIN_PSRAW128);
+ def_builtin (MASK_SSE2, "__builtin_ia32_psrad128", v4si_ftype_v4si_v4si, IX86_BUILTIN_PSRAD128);
def_builtin (MASK_SSE2, "__builtin_ia32_pslldqi128", v2di_ftype_v2di_int, IX86_BUILTIN_PSLLDQI128);
def_builtin (MASK_SSE2, "__builtin_ia32_psllwi128", v8hi_ftype_v8hi_int, IX86_BUILTIN_PSLLWI128);
@@ -15577,9 +15571,106 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED,
emit_insn (pat);
return target;
+ case IX86_BUILTIN_PSLLWI128:
+ icode = CODE_FOR_ashlv8hi3;
+ goto do_pshifti;
+ case IX86_BUILTIN_PSLLDI128:
+ icode = CODE_FOR_ashlv4si3;
+ goto do_pshifti;
+ case IX86_BUILTIN_PSLLQI128:
+ icode = CODE_FOR_ashlv2di3;
+ goto do_pshifti;
+ case IX86_BUILTIN_PSRAWI128:
+ icode = CODE_FOR_ashrv8hi3;
+ goto do_pshifti;
+ case IX86_BUILTIN_PSRADI128:
+ icode = CODE_FOR_ashrv4si3;
+ goto do_pshifti;
+ case IX86_BUILTIN_PSRLWI128:
+ icode = CODE_FOR_lshrv8hi3;
+ goto do_pshifti;
+ case IX86_BUILTIN_PSRLDI128:
+ icode = CODE_FOR_lshrv4si3;
+ goto do_pshifti;
+ case IX86_BUILTIN_PSRLQI128:
+ icode = CODE_FOR_lshrv2di3;
+ goto do_pshifti;
+ do_pshifti:
+ arg0 = TREE_VALUE (arglist);
+ arg1 = TREE_VALUE (TREE_CHAIN (arglist));
+ op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
+ op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0);
+
+ if (GET_CODE (op1) != CONST_INT)
+ {
+ error ("shift must be an immediate");
+ return const0_rtx;
+ }
+ if (INTVAL (op1) < 0 || INTVAL (op1) > 255)
+ op1 = GEN_INT (255);
+
+ tmode = insn_data[icode].operand[0].mode;
+ mode1 = insn_data[icode].operand[1].mode;
+ if (! (*insn_data[icode].operand[1].predicate) (op0, mode1))
+ op0 = copy_to_reg (op0);
+
+ target = gen_reg_rtx (tmode);
+ pat = GEN_FCN (icode) (target, op0, op1);
+ if (!pat)
+ return 0;
+ emit_insn (pat);
+ return target;
+
+ case IX86_BUILTIN_PSLLW128:
+ icode = CODE_FOR_ashlv8hi3;
+ goto do_pshift;
+ case IX86_BUILTIN_PSLLD128:
+ icode = CODE_FOR_ashlv4si3;
+ goto do_pshift;
+ case IX86_BUILTIN_PSLLQ128:
+ icode = CODE_FOR_ashlv2di3;
+ goto do_pshift;
+ case IX86_BUILTIN_PSRAW128:
+ icode = CODE_FOR_ashrv8hi3;
+ goto do_pshift;
+ case IX86_BUILTIN_PSRAD128:
+ icode = CODE_FOR_ashrv4si3;
+ goto do_pshift;
+ case IX86_BUILTIN_PSRLW128:
+ icode = CODE_FOR_lshrv8hi3;
+ goto do_pshift;
+ case IX86_BUILTIN_PSRLD128:
+ icode = CODE_FOR_lshrv4si3;
+ goto do_pshift;
+ case IX86_BUILTIN_PSRLQ128:
+ icode = CODE_FOR_lshrv2di3;
+ goto do_pshift;
+ do_pshift:
+ arg0 = TREE_VALUE (arglist);
+ arg1 = TREE_VALUE (TREE_CHAIN (arglist));
+ op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
+ op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0);
+
+ tmode = insn_data[icode].operand[0].mode;
+ mode1 = insn_data[icode].operand[1].mode;
+
+ if (! (*insn_data[icode].operand[1].predicate) (op0, mode1))
+ op0 = copy_to_reg (op0);
+
+ op1 = simplify_gen_subreg (TImode, op1, GET_MODE (op1), 0);
+ if (! (*insn_data[icode].operand[2].predicate) (op1, TImode))
+ op1 = copy_to_reg (op1);
+
+ target = gen_reg_rtx (tmode);
+ pat = GEN_FCN (icode) (target, op0, op1);
+ if (!pat)
+ return 0;
+ emit_insn (pat);
+ return target;
+
case IX86_BUILTIN_PSLLDQI128:
case IX86_BUILTIN_PSRLDQI128:
- icode = ( fcode == IX86_BUILTIN_PSLLDQI128 ? CODE_FOR_sse2_ashlti3
+ icode = (fcode == IX86_BUILTIN_PSLLDQI128 ? CODE_FOR_sse2_ashlti3
: CODE_FOR_sse2_lshrti3);
arg0 = TREE_VALUE (arglist);
arg1 = TREE_VALUE (TREE_CHAIN (arglist));
@@ -15600,7 +15691,8 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED,
return const0_rtx;
}
target = gen_reg_rtx (V2DImode);
- pat = GEN_FCN (icode) (simplify_gen_subreg (tmode, target, V2DImode, 0), op0, op1);
+ pat = GEN_FCN (icode) (simplify_gen_subreg (tmode, target, V2DImode, 0),
+ op0, op1);
if (! pat)
return 0;
emit_insn (pat);
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index ea7cbc5..8524e70 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -2723,7 +2723,7 @@
[(set (match_operand:SSEMODE24 0 "register_operand" "=x")
(ashiftrt:SSEMODE24
(match_operand:SSEMODE24 1 "register_operand" "0")
- (match_operand:SI 2 "nonmemory_operand" "xi")))]
+ (match_operand:TI 2 "nonmemory_operand" "xn")))]
"TARGET_SSE2"
"psra<ssevecsize>\t{%2, %0|%0, %2}"
[(set_attr "type" "sseishft")
@@ -2733,7 +2733,7 @@
[(set (match_operand:SSEMODE248 0 "register_operand" "=x")
(lshiftrt:SSEMODE248
(match_operand:SSEMODE248 1 "register_operand" "0")
- (match_operand:SI 2 "nonmemory_operand" "xi")))]
+ (match_operand:TI 2 "nonmemory_operand" "xn")))]
"TARGET_SSE2"
"psrl<ssevecsize>\t{%2, %0|%0, %2}"
[(set_attr "type" "sseishft")
@@ -2743,7 +2743,7 @@
[(set (match_operand:SSEMODE248 0 "register_operand" "=x")
(ashift:SSEMODE248
(match_operand:SSEMODE248 1 "register_operand" "0")
- (match_operand:SI 2 "nonmemory_operand" "xi")))]
+ (match_operand:TI 2 "nonmemory_operand" "xn")))]
"TARGET_SSE2"
"psll<ssevecsize>\t{%2, %0|%0, %2}"
[(set_attr "type" "sseishft")
--
1.5.4
From ac58bec5fb24837a97198772b4352987486b517c Mon Sep 17 00:00:00 2001
From: aesok <aesok@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 5 Apr 2007 15:56:43 +0000
Subject: PR target/25448
* config/avr/avr.c (avr_handle_fndecl_attribute): Use the
DECL_ASSEMBLER_NAME, not the DECL_NAME.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123521 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3211c87..98e6bc8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-04-05 Anatoly Sokolov <aesok@post.ru>
+
+ PR target/25448
+ * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
+ DECL_ASSEMBLER_NAME, not the DECL_NAME.
+
2007-04-04 Richard Henderson <rth@redhat.com>
PR target/31361
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index 7f859a7..2a9ab90 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -4681,7 +4681,7 @@ avr_handle_fndecl_attribute (tree *node, tree name,
}
else
{
- const char *func_name = IDENTIFIER_POINTER (DECL_NAME (*node));
+ const char *func_name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (*node));
const char *attr = IDENTIFIER_POINTER (name);
/* If the function has the 'signal' or 'interrupt' attribute, test to
--
1.5.4
From 067a8a924ef4dd19835c05ed76c61ca4f5934deb Mon Sep 17 00:00:00 2001
From: aesok <aesok@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 7 Apr 2007 22:21:01 +0000
Subject: PR target/30289
* config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
earlyclobber.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123649 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 98e6bc8..e8c9fad 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-04-07 Anatoly Sokolov <aesok@post.ru>
+
+ PR target/30289
+ * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
+ earlyclobber.
+
2007-04-05 Anatoly Sokolov <aesok@post.ru>
PR target/25448
diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md
index 59d35f0..c382e82 100644
--- a/gcc/config/avr/avr.md
+++ b/gcc/config/avr/avr.md
@@ -448,7 +448,7 @@
(use (match_operand:QI 1 "register_operand" "r"))
(use (match_operand:QI 2 "const_int_operand" "n"))
(clobber (match_scratch:HI 3 "=0"))
- (clobber (match_scratch:QI 4 "=1"))]
+ (clobber (match_scratch:QI 4 "=&1"))]
""
"st %a0+,__zero_reg__
dec %1
@@ -462,7 +462,7 @@
(use (match_operand:HI 1 "register_operand" "!w,d"))
(use (match_operand:HI 2 "const_int_operand" "n,n"))
(clobber (match_scratch:HI 3 "=0,0"))
- (clobber (match_scratch:HI 4 "=1,1"))]
+ (clobber (match_scratch:HI 4 "=&1,&1"))]
""
"*{
if (which_alternative==0)
--
1.5.4
From aee1fec0ca80d251c022d215d018afb5b14d764f Mon Sep 17 00:00:00 2001
From: mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 10 Apr 2007 05:07:41 +0000
Subject: PR c++/31449
* class.c (build_base_path): Ensure that the converted pointer has
the same cv-qualification as the input.
PR c++/31449
* g++.dg/init/const5.C: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123691 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index c87cb6d..79a02bb 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2007-04-09 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/31449
+ * class.c (build_base_path): Ensure that the converted pointer has
+ the same cv-qualification as the input.
+
2007-04-03 Jakub Jelinek <jakub@redhat.com>
PR c++/30847
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index 8fa46f6..5249c8b 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -303,7 +303,18 @@ build_base_path (enum tree_code code,
field, because other parts of the compiler know that such
expressions are always non-NULL. */
if (!virtual_access && integer_zerop (offset))
- return build_nop (build_pointer_type (target_type), expr);
+ {
+ tree class_type;
+ /* TARGET_TYPE has been extracted from BINFO, and, is
+ therefore always cv-unqualified. Extract the
+ cv-qualifiers from EXPR so that the expression returned
+ matches the input. */
+ class_type = TREE_TYPE (TREE_TYPE (expr));
+ target_type
+ = cp_build_qualified_type (target_type,
+ cp_type_quals (class_type));
+ return build_nop (build_pointer_type (target_type), expr);
+ }
null_test = error_mark_node;
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index be514a4..f462506 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-09 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/31449
+ * g++.dg/init/const5.C: New test.
+
2007-04-03 Jakub Jelinek <jakub@redhat.com>
PR c++/30847
diff --git a/gcc/testsuite/g++.dg/init/const5.C b/gcc/testsuite/g++.dg/init/const5.C
new file mode 100644
index 0000000..fa8d8fc
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/const5.C
@@ -0,0 +1,11 @@
+// PR c++/31449
+
+class Foo {};
+class Bar : public Foo {};
+static const Foo *foo = 0;
+
+static Bar *bar = static_cast<const Bar*>(foo); // { dg-error "conversion" }
+
+void func(const Foo *foo) {
+ Bar *bar = static_cast<const Bar*>(foo); // { dg-error "conversion" }
+}
--
1.5.4
From d979aa64b769c00ce3cd6dfb5354bc9be2645690 Mon Sep 17 00:00:00 2001
From: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 14 Apr 2007 01:27:02 +0000
Subject: PR c++/31074
* call.c (reference_binding): Add c_cast_p parm. If true,
add quals to TO as needed to make it reference-compatible.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123807 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 79a02bb..70b04b3 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2007-04-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/31074
+ * call.c (reference_binding): Add c_cast_p parm. If true,
+ add quals to TO as needed to make it reference-compatible.
+
2007-04-09 Mark Mitchell <mark@codesourcery.com>
PR c++/31449
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index c28ddc3..b9941bc 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -171,7 +171,7 @@ static struct z_candidate *add_function_candidate
(struct z_candidate **, tree, tree, tree, tree, tree, int);
static conversion *implicit_conversion (tree, tree, tree, bool, int);
static conversion *standard_conversion (tree, tree, tree, bool, int);
-static conversion *reference_binding (tree, tree, tree, int);
+static conversion *reference_binding (tree, tree, tree, bool, int);
static conversion *build_conv (conversion_kind, tree, conversion *);
static bool is_subseq (conversion *, conversion *);
static tree maybe_handle_ref_bind (conversion **);
@@ -1072,10 +1072,11 @@ direct_reference_binding (tree type, conversion *conv)
purposes of reference binding. For lvalue binding, either pass a
reference type to FROM or an lvalue expression to EXPR. If the
reference will be bound to a temporary, NEED_TEMPORARY_P is set for
- the conversion returned. */
+ the conversion returned. If C_CAST_P is true, this
+ conversion is coming from a C-style cast. */
static conversion *
-reference_binding (tree rto, tree rfrom, tree expr, int flags)
+reference_binding (tree rto, tree rfrom, tree expr, bool c_cast_p, int flags)
{
conversion *conv = NULL;
tree to = TREE_TYPE (rto);
@@ -1105,6 +1106,11 @@ reference_binding (tree rto, tree rfrom, tree expr, int flags)
reference compatible. We have do do this after stripping
references from FROM. */
related_p = reference_related_p (to, from);
+ /* If this is a C cast, first convert to an appropriately qualified
+ type, so that we can later do a const_cast to the desired type. */
+ if (related_p && c_cast_p
+ && !at_least_as_qualified_p (to, from))
+ to = build_qualified_type (to, cp_type_quals (from));
compatible_p = reference_compatible_p (to, from);
if (lvalue_p && compatible_p)
@@ -1214,7 +1220,7 @@ reference_binding (tree rto, tree rfrom, tree expr, int flags)
if (related_p && !at_least_as_qualified_p (to, from))
return NULL;
- conv = implicit_conversion (to, from, expr, /*c_cast_p=*/false,
+ conv = implicit_conversion (to, from, expr, c_cast_p,
flags);
if (!conv)
return NULL;
@@ -1244,7 +1250,7 @@ implicit_conversion (tree to, tree from, tree expr, bool c_cast_p,
return NULL;
if (TREE_CODE (to) == REFERENCE_TYPE)
- conv = reference_binding (to, from, expr, flags);
+ conv = reference_binding (to, from, expr, c_cast_p, flags);
else
conv = standard_conversion (to, from, expr, c_cast_p, flags);
@@ -6528,7 +6534,8 @@ initialize_reference (tree type, tree expr, tree decl, tree *cleanup)
/* Get the high-water mark for the CONVERSION_OBSTACK. */
p = conversion_obstack_alloc (0);
- conv = reference_binding (type, TREE_TYPE (expr), expr, LOOKUP_NORMAL);
+ conv = reference_binding (type, TREE_TYPE (expr), expr, /*c_cast_p=*/false,
+ LOOKUP_NORMAL);
if (!conv || conv->bad_p)
{
if (!(TYPE_QUALS (TREE_TYPE (type)) & TYPE_QUAL_CONST)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f462506..11437b2 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/31074
+ * conv3.C: New test.
+
2007-04-09 Mark Mitchell <mark@codesourcery.com>
PR c++/31449
diff --git a/gcc/testsuite/g++.dg/inherit/conv3.C b/gcc/testsuite/g++.dg/inherit/conv3.C
new file mode 100644
index 0000000..73d8c20
--- /dev/null
+++ b/gcc/testsuite/g++.dg/inherit/conv3.C
@@ -0,0 +1,31 @@
+// PR 31074
+// Bug: The reference cast wasn't finding the desired static_cast followed by
+// const_cast interpretation.
+
+struct Shape
+{
+ Shape() {}
+ virtual ~Shape() {}
+};
+
+struct Loop
+{
+ Loop() {}
+ virtual ~Loop() {}
+ virtual void func() {}
+};
+
+struct Rect :
+ public Shape,
+ public Loop
+{
+ Rect() {}
+ virtual ~Rect() {}
+};
+
+int main ()
+{
+ const Rect* rect = new Rect();
+ Loop &l = ((Loop&)(*rect));
+ return (&l != (const Loop *)rect);
+}
--
1.5.4
From beecb2c4ec7af0652d6d1182a489015f494e1a01 Mon Sep 17 00:00:00 2001
From: pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun, 15 Apr 2007 01:20:33 +0000
Subject: 2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR c/31520
* c-del.c (finish_decl): Grab the type of the decl after the call
to store_init_value.
2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR C/31520
* testsuite/gcc.dg/gnu89-init-4.c: New testcase.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123838 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e8c9fad..5d69e50 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR c/31520
+ * c-del.c (finish_decl): Grab the type of the decl after the call
+ to store_init_value.
+
2007-04-07 Anatoly Sokolov <aesok@post.ru>
PR target/30289
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index 4ac1031..bb2bbb1 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -3284,7 +3284,7 @@ start_decl (struct c_declarator *declarator, struct c_declspecs *declspecs,
void
finish_decl (tree decl, tree init, tree asmspec_tree)
{
- tree type = TREE_TYPE (decl);
+ tree type;
int was_incomplete = (DECL_SIZE (decl) == 0);
const char *asmspec = 0;
@@ -3311,6 +3311,8 @@ finish_decl (tree decl, tree init, tree asmspec_tree)
|| TREE_CODE (decl) == FIELD_DECL))
objc_check_decl (decl);
+ type = TREE_TYPE (decl);
+
/* Deduce size of array from initialization, if not already known. */
if (TREE_CODE (type) == ARRAY_TYPE
&& TYPE_DOMAIN (type) == 0
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 11437b2..327eebe 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR C/31520
+ * testsuite/gcc.dg/gnu89-init-4.c: New testcase.
+
2007-04-13 Jason Merrill <jason@redhat.com>
PR c++/31074
diff --git a/gcc/testsuite/gcc.dg/gnu89-init-4.c b/gcc/testsuite/gcc.dg/gnu89-init-4.c
new file mode 100644
index 0000000..4ccfbd1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/gnu89-init-4.c
@@ -0,0 +1,12 @@
+/* Test for GNU extensions to compound literals are giving the correct array bounds */
+/* { dg-do run } */
+/* { dg-options "-std=gnu89 -W -Wall -O2" } */
+
+int a[] = (int[4]){1, 1, 2};
+int f(void)
+{
+ int sum = 0; int i;
+ for(i = 0;i<4;i++)
+ sum = a[i];
+ return sum;
+}
--
1.5.4
From 5a2e26a23f2a6ae923e2e91d4b0a6a732fe1c8d0 Mon Sep 17 00:00:00 2001
From: pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun, 15 Apr 2007 01:24:00 +0000
Subject: 2007-04-14 Andrew Pinski <pinskia@gmail.com>
PR C++/30168
* optimize.c (update_cloned_parm): Copy DECL_COMPLEX_GIMPLE_REG_P also.
2007-04-14 Andrew Pinski <pinskia@gmail.com>
PR C++/30168
* g++.dg/opt/complex6.C: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123839 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 70b04b3..34d1c1b 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-14 Andrew Pinski <pinskia@gmail.com>
+
+ PR C++/30168
+ * optimize.c (update_cloned_parm): Copy DECL_COMPLEX_GIMPLE_REG_P also.
+
2007-04-13 Jason Merrill <jason@redhat.com>
PR c++/31074
diff --git a/gcc/cp/optimize.c b/gcc/cp/optimize.c
index 7ac2437..59ae916 100644
--- a/gcc/cp/optimize.c
+++ b/gcc/cp/optimize.c
@@ -69,6 +69,8 @@ update_cloned_parm (tree parm, tree cloned_parm, bool first)
DECL_NAME (cloned_parm) = DECL_NAME (parm);
DECL_SOURCE_LOCATION (cloned_parm) = DECL_SOURCE_LOCATION (parm);
TREE_TYPE (cloned_parm) = TREE_TYPE (parm);
+
+ DECL_COMPLEX_GIMPLE_REG_P (cloned_parm) = DECL_COMPLEX_GIMPLE_REG_P (parm);
}
/* FN is a function that has a complete body. Clone the body as
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 327eebe..6111801 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-14 Andrew Pinski <pinskia@gmail.com>
+
+ PR C++/30168
+ * g++.dg/opt/complex6.C: New test.
+
2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR C/31520
diff --git a/gcc/testsuite/g++.dg/opt/complex6.C b/gcc/testsuite/g++.dg/opt/complex6.C
new file mode 100644
index 0000000..bedb3ed
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/complex6.C
@@ -0,0 +1,14 @@
+// PR 30168
+// { dg-do compile }
+// { dg-options "-O2" }
+
+struct aaa
+{
+ aaa(_Complex float __z) ;
+ _Complex float _M_value;
+};
+aaa::aaa(_Complex float __z)
+{
+ __z*=2.0f;
+ _M_value = __z;
+}
--
1.5.4
From 3fa70127499d841a7d7e01e810b379085e5ff5ad Mon Sep 17 00:00:00 2001
From: pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun, 15 Apr 2007 01:28:09 +0000
Subject: 2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR middle-end/30729
* stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
effects unknown to this function, return early.
2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR middle-end/30729
* gcc.dg/Wunused-value-2.c: New testcase.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123840 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5d69e50..0db5aec 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
+ PR middle-end/30729
+ * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
+ effects unknown to this function, return early.
+
+2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
PR c/31520
* c-del.c (finish_decl): Grab the type of the decl after the call
to store_init_value.
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 7eb77d2..e08eab0 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -1419,6 +1419,7 @@ warn_if_unused_value (tree exp, location_t locus)
case TRY_CATCH_EXPR:
case WITH_CLEANUP_EXPR:
case EXIT_EXPR:
+ case VA_ARG_EXPR:
return 0;
case BIND_EXPR:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 6111801..3a3ce72 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2007-04-14 Andrew Pinski <pinskia@gmail.com>
+ PR middle-end/30729
+ * gcc.dg/Wunused-value-2.c: New testcase.
+
+2007-04-14 Andrew Pinski <pinskia@gmail.com>
+
PR C++/30168
* g++.dg/opt/complex6.C: New test.
diff --git a/gcc/testsuite/gcc.dg/Wunused-value-2.c b/gcc/testsuite/gcc.dg/Wunused-value-2.c
new file mode 100644
index 0000000..4858bfa
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/Wunused-value-2.c
@@ -0,0 +1,18 @@
+/* Test -Wunused-value. Bug 30729. */
+/* { dg-do compile } */
+/* { dg-options "-Wunused-value" } */
+/* Make sure va_arg does not cause a value computed is not used warning
+ because it has side effects. */
+#include <stdarg.h>
+
+int f(int t, ...)
+{
+ va_list a;
+ va_start (a, t);
+ va_arg(a, int);/* { dg-bogus "value computed is not used" } */
+ int t1 = va_arg(a, int);
+ va_end(a);
+ return t1;
+}
+
+
--
1.5.4
From adc5e59f34cbc7647a97425d17d83e04c3583d4e Mon Sep 17 00:00:00 2001
From: pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun, 15 Apr 2007 01:33:02 +0000
Subject: 2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR tree-opt/30045
* tree-vrp.c (nonnull_arg_p): Treat the static decl as always
non null.
2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR tree-opt/30045
* gcc.dg/pr30045.c: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123841 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0db5aec..b1410ad 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
+ PR tree-opt/30045
+ * tree-vrp.c (nonnull_arg_p): Treat the static decl as always
+ non null.
+
+2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
PR middle-end/30729
* stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
effects unknown to this function, return early.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 3a3ce72..94b6c33 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2007-04-14 Andrew Pinski <pinskia@gmail.com>
+ PR tree-opt/30045
+ * gcc.dg/pr30045.c: New test.
+
+2007-04-14 Andrew Pinski <pinskia@gmail.com>
+
PR middle-end/30729
* gcc.dg/Wunused-value-2.c: New testcase.
diff --git a/gcc/testsuite/gcc.dg/pr30045.c b/gcc/testsuite/gcc.dg/pr30045.c
new file mode 100644
index 0000000..6dd22a1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr30045.c
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fno-inline" } */
+int f(int *a)
+{
+ int __attribute__((nonnull(1))) g(int *b)
+ {
+ int **c = &a;
+ if (b)
+ return *a + **c;
+ return *b;
+ }
+ if (a)
+ return g(a);
+ return 1;
+}
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index 7dc4138..9cc021e 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -106,6 +106,10 @@ nonnull_arg_p (tree arg)
gcc_assert (TREE_CODE (arg) == PARM_DECL && POINTER_TYPE_P (TREE_TYPE (arg)));
+ /* The static chain decl is always non null. */
+ if (arg == cfun->static_chain_decl)
+ return true;
+
fntype = TREE_TYPE (current_function_decl);
attrs = lookup_attribute ("nonnull", TYPE_ATTRIBUTES (fntype));
--
1.5.4
From ce57f690b50578b372f63906472a0fd17fee67a9 Mon Sep 17 00:00:00 2001
From: pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun, 15 Apr 2007 21:45:43 +0000
Subject: 2007-04-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR testsuite/31578
* gcc.dg/gnu89-init-4.c: Change to a compile only test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123856 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 94b6c33..2b38763 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,4 +1,9 @@
-2007-04-14 Andrew Pinski <pinskia@gmail.com>
+2007-04-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR testsuite/31578
+ * gcc.dg/gnu89-init-4.c: Change to a compile only test.
+
+2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR tree-opt/30045
* gcc.dg/pr30045.c: New test.
@@ -16,7 +21,7 @@
2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR C/31520
- * testsuite/gcc.dg/gnu89-init-4.c: New testcase.
+ * gcc.dg/gnu89-init-4.c: New testcase.
2007-04-13 Jason Merrill <jason@redhat.com>
diff --git a/gcc/testsuite/gcc.dg/gnu89-init-4.c b/gcc/testsuite/gcc.dg/gnu89-init-4.c
index 4ccfbd1..15e9cdb 100644
--- a/gcc/testsuite/gcc.dg/gnu89-init-4.c
+++ b/gcc/testsuite/gcc.dg/gnu89-init-4.c
@@ -1,5 +1,5 @@
/* Test for GNU extensions to compound literals are giving the correct array bounds */
-/* { dg-do run } */
+/* { dg-do compile } */
/* { dg-options "-std=gnu89 -W -Wall -O2" } */
int a[] = (int[4]){1, 1, 2};
--
1.5.4
From a0cd31c68cae71d83d859437b8ecc39bffc3fd22 Mon Sep 17 00:00:00 2001
From: hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 16 Apr 2007 14:04:30 +0000
Subject: 2007-04-16 H.J. Lu <hongjiu.lu@intel.com>
* Backport from mainline:
2007-04-16 H.J. Lu <hongjiu.lu@intel.com>
PR target/31582
* config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
copy of source, pass it to ix86_expand_vector_set and return
it as target.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123872 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b1410ad..6fe5ede 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2007-04-16 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Backport from mainline:
+ 2007-04-16 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/31582
+ * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
+ copy of source, pass it to ix86_expand_vector_set and return
+ it as target.
+
2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR tree-opt/30045
@@ -13,7 +23,7 @@
2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR c/31520
- * c-del.c (finish_decl): Grab the type of the decl after the call
+ * c-decl.c (finish_decl): Grab the type of the decl after the call
to store_init_value.
2007-04-07 Anatoly Sokolov <aesok@post.ru>
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index dadde3f..469dad3 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -15335,7 +15335,7 @@ ix86_expand_vec_set_builtin (tree arglist)
enum machine_mode tmode, mode1;
tree arg0, arg1, arg2;
int elt;
- rtx op0, op1;
+ rtx op0, op1, target;
arg0 = TREE_VALUE (arglist);
arg1 = TREE_VALUE (TREE_CHAIN (arglist));
@@ -15355,9 +15355,13 @@ ix86_expand_vec_set_builtin (tree arglist)
op0 = force_reg (tmode, op0);
op1 = force_reg (mode1, op1);
- ix86_expand_vector_set (true, op0, op1, elt);
+ /* OP0 is the source of these builtin functions and shouldn't be
+ modified. Create a copy, use it and return it as target. */
+ target = gen_reg_rtx (tmode);
+ emit_move_insn (target, op0);
+ ix86_expand_vector_set (true, target, op1, elt);
- return op0;
+ return target;
}
/* Expand an expression EXP that calls a built-in function,
--
1.5.4
From b2a4bb7ef4833f329eee96951581e33a56bede48 Mon Sep 17 00:00:00 2001
From: doko <doko@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 16 Apr 2007 20:18:20 +0000
Subject: 2007-04-16 Matthias Klose <doko@debian.org>
* gcc/config/alpha/linux.h (CPP_SPEC): Define.
* gcc/config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123893 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6fe5ede..fe8e6d6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-16 Matthias Klose <doko@debian.org>
+
+ * gcc/config/alpha/linux.h (CPP_SPEC): Define.
+ * gcc/config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
+
2007-04-16 H.J. Lu <hongjiu.lu@intel.com>
* Backport from mainline:
diff --git a/gcc/config/alpha/linux.h b/gcc/config/alpha/linux.h
index d082e87..cda7596 100644
--- a/gcc/config/alpha/linux.h
+++ b/gcc/config/alpha/linux.h
@@ -49,6 +49,8 @@ Boston, MA 02110-1301, USA. */
%{shared:-lc} \
%{!shared: %{profile:-lc_p}%{!profile:-lc}}"
+#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
+
/* Show that we need a GP when profiling. */
#undef TARGET_PROFILING_NEEDS_GP
#define TARGET_PROFILING_NEEDS_GP 1
diff --git a/gcc/config/arm/linux-gas.h b/gcc/config/arm/linux-gas.h
index 0544eb0..a04e050 100644
--- a/gcc/config/arm/linux-gas.h
+++ b/gcc/config/arm/linux-gas.h
@@ -28,7 +28,7 @@
#define DEFAULT_SIGNED_CHAR 0
#undef SUBTARGET_CPP_SPEC
-#define SUBTARGET_CPP_SPEC "%{posix:-D_POSIX_SOURCE}"
+#define SUBTARGET_CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
#undef SIZE_TYPE
#define SIZE_TYPE "unsigned int"
--
1.5.4
From 94909c5d6cc74db9bb973bba28a25a915fc03f42 Mon Sep 17 00:00:00 2001
From: aesok <aesok@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 17 Apr 2007 20:19:06 +0000
Subject: PR target/30483
* config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
error().
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123929 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fe8e6d6..a3fa70c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-04-17 Anatoly Sokolov <aesok@post.ru>
+
+ PR target/30483
+ * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
+ error().
+
2007-04-16 Matthias Klose <doko@debian.org>
* gcc/config/alpha/linux.h (CPP_SPEC): Define.
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index 2a9ab90..8091932 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -1,5 +1,5 @@
/* Subroutines for insn-output.c for ATMEL AVR micro controllers
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2007
Free Software Foundation, Inc.
Contributed by Denis Chertykov (denisc@overta.ru)
@@ -1008,7 +1008,7 @@ ptrreg_to_str (int regno)
case REG_Y: return "Y";
case REG_Z: return "Z";
default:
- gcc_unreachable ();
+ error ("address operand requires constraint for X, Y, or Z register");
}
return NULL;
}
--
1.5.4
From 7ab068fe90ded6c021f60a6e4a5f5bb83ab48a1e Mon Sep 17 00:00:00 2001
From: simartin <simartin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 17 Apr 2007 20:46:29 +0000
Subject: 2007-04-17 Simon Martin <simartin@users.sourceforge.net>
PR c++/31517
* pt.c (value_dependent_expression_p): Handle MODOP_EXPRs.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123931 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 34d1c1b..12fe6bc 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-17 Simon Martin <simartin@users.sourceforge.net>
+
+ PR c++/31517
+ * pt.c (value_dependent_expression_p): Handle MODOP_EXPRs.
+
2007-04-14 Andrew Pinski <pinskia@gmail.com>
PR C++/30168
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index c817880..2c91eb0 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -12626,6 +12626,10 @@ value_dependent_expression_p (tree expression)
such calls are value-dependent. */
return true;
+ case MODOP_EXPR:
+ return ((value_dependent_expression_p (TREE_OPERAND (expression, 0)))
+ || (value_dependent_expression_p (TREE_OPERAND (expression, 2))));
+
default:
/* A constant expression is value-dependent if any subexpression is
value-dependent. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2b38763..d9f4fe5 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-17 Simon Martin <simartin@users.sourceforge.net>
+
+ PR c++/31517
+ * g++.dg/template/init7.C: New test.
+
2007-04-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR testsuite/31578
diff --git a/gcc/testsuite/g++.dg/template/init7.C b/gcc/testsuite/g++.dg/template/init7.C
new file mode 100644
index 0000000..e226776
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/init7.C
@@ -0,0 +1,9 @@
+/* PR c++/31517. This used to ICE. */
+/* { dg-do "compile" } */
+
+template<typename> struct A
+{
+ static const int i=0;
+};
+
+template<typename T> const int A<T>::i = 0=0; /* { dg-error "duplicate initialization" } */
--
1.5.4
From f38703c1075eec51ea3ab384ae44ae380bb96d14 Mon Sep 17 00:00:00 2001
From: aesok <aesok@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 18 Apr 2007 16:38:44 +0000
Subject: * config/avr/avr.c (ptrreg_to_str): Replace error() with
output_operand_lossage().
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123951 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a3fa70c..d1231e8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-18 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.c (ptrreg_to_str): Replace error() with
+ output_operand_lossage().
+
2007-04-17 Anatoly Sokolov <aesok@post.ru>
PR target/30483
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index 8091932..054831b 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -1008,7 +1008,7 @@ ptrreg_to_str (int regno)
case REG_Y: return "Y";
case REG_Z: return "Z";
default:
- error ("address operand requires constraint for X, Y, or Z register");
+ output_operand_lossage ("address operand requires constraint for X, Y, or Z register");
}
return NULL;
}
--
1.5.4
From dbff369bb75c1375ef09768c8726828387a4f742 Mon Sep 17 00:00:00 2001
From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 20 Apr 2007 11:49:37 +0000
Subject: PR tree-optimization/31632
* fold-const.c (fold_binary): Use op0 and op1 instead of arg0
and arg1 for optimizations of comparison against min/max values.
Fold arg0 to arg1's type for optimizations of comparison against
min+1 and max-1 values.
* gcc.c-torture/compile/20070419-1.c: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123992 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d1231e8..4095c3b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2007-04-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/31632
+ * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
+ and arg1 for optimizations of comparison against min/max values.
+ Fold arg0 to arg1's type for optimizations of comparison against
+ min+1 and max-1 values.
+
2007-04-18 Anatoly Sokolov <aesok@post.ru>
* config/avr/avr.c (ptrreg_to_str): Replace error() with
@@ -11,8 +19,8 @@
2007-04-16 Matthias Klose <doko@debian.org>
- * gcc/config/alpha/linux.h (CPP_SPEC): Define.
- * gcc/config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
+ * config/alpha/linux.h (CPP_SPEC): Define.
+ * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
2007-04-16 H.J. Lu <hongjiu.lu@intel.com>
@@ -544,7 +552,7 @@
2006-12-17 Matthias Klose <doko@debian.org>
PR libstdc++/11953
- * gcc/config/mips/linux.h (SUBTARGET_CPP_SPEC): Extend.
+ * config/mips/linux.h (SUBTARGET_CPP_SPEC): Extend.
2006-12-16 Joseph Myers <joseph@codesourcery.com>
David Edelsohn <edelsohn@gnu.org>
@@ -995,7 +1003,7 @@
2006-08-23 Stuart Hastings <stuart@apple.com>
PR target/28825
- * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate,
+ * config/i386/i386.c (ix86_expand_vector_init_duplicate,
ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test.
2006-10-16 Richard Guenther <rguenther@suse.de>
@@ -2753,7 +2761,7 @@
2006-03-16 Paul Brook <paul@codesourcery.com>
Backport from mainline.
- * gcc/config/arm/arm.c (minipool_pad): New.
+ * config/arm/arm.c (minipool_pad): New.
(add_minipool_forward_ref): Include pool alignment padding in address
calculation.
(push_minipool_fix): Set minipool_pad.
@@ -3421,14 +3429,14 @@
2006-01-31 Nathan Sidwell <nathan@codesourcery.com>
- * gcc/config/m68k/lb1sf68.asm: Use moveq to load small constants.
+ * config/m68k/lb1sf68.asm: Use moveq to load small constants.
2006-01-31 Richard Guenther <rguenther@suse.de>
Backport
2006-01-03 Adrian Straetling <straetling@de.ibm.com>
- * gcc/builtins.c (get_builtin_sync_mem): New function.
+ * builtins.c (get_builtin_sync_mem): New function.
(expand_builtin_sync_operation, expand_builtin_compare_and_swap,
expand_builtin_lock_test_and_set, expand_builtin_lock_release):
Call get_builtin_sync_mem to generate mem rtx.
@@ -3599,7 +3607,7 @@
2006-01-19 Paul Brook <paul@codesourcery.com>
- * gcc/config/arm/arm.c (arm_compute_func_type): Treat all functions
+ * config/arm/arm.c (arm_compute_func_type): Treat all functions
as nothrow when unwinding tables are disabled.
2006-01-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
@@ -4747,7 +4755,7 @@
(_Unwind_Stop_Fn): New typedef.
(_Unwind_ForcedUnwind): Declare.
(_Unwind_Resume_or_Rethrow): Declare.
- * gcc/config/arm/libunwind.S (UNWIND_WRAPER): Add nargs
+ * config/arm/libunwind.S (UNWIND_WRAPER): Add nargs
argument. Adjust.
(_Unwind_Resume_or_Rethrow, _Unwind_ForcedUnwind): New.
* config/arm/unwind-arm.c (UCB_FORCED_STOP_FN)
@@ -5615,8 +5623,8 @@
2005-11-04 Francois-Xavier Coudert <coudert@clipper.ens.fr>
PR fortran/18452
- * gcc/c.opt: Add a -lang-fortran option.
- * gcc/c-opts.c: Add a lang_fortran flag.
+ * c.opt: Add a -lang-fortran option.
+ * c-opts.c: Add a lang_fortran flag.
(c_common_init_options): Handling the -lang-fortran option.
(c_common_handle_option): Add a case for Fortran options in
preprocessing. Remove cases for -ffixed-form and
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 80e92c6..417231a 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -9359,13 +9359,13 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1)
return omit_one_operand (type, integer_zero_node, arg0);
case GE_EXPR:
- return fold_build2 (EQ_EXPR, type, arg0, arg1);
+ return fold_build2 (EQ_EXPR, type, op0, op1);
case LE_EXPR:
return omit_one_operand (type, integer_one_node, arg0);
case LT_EXPR:
- return fold_build2 (NE_EXPR, type, arg0, arg1);
+ return fold_build2 (NE_EXPR, type, op0, op1);
/* The GE_EXPR and LT_EXPR cases above are not normally
reached because of previous transformations. */
@@ -9380,10 +9380,14 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1)
{
case GT_EXPR:
arg1 = const_binop (PLUS_EXPR, arg1, integer_one_node, 0);
- return fold_build2 (EQ_EXPR, type, arg0, arg1);
+ return fold_build2 (EQ_EXPR, type,
+ fold_convert (TREE_TYPE (arg1), arg0),
+ arg1);
case LE_EXPR:
arg1 = const_binop (PLUS_EXPR, arg1, integer_one_node, 0);
- return fold_build2 (NE_EXPR, type, arg0, arg1);
+ return fold_build2 (NE_EXPR, type,
+ fold_convert (TREE_TYPE (arg1), arg0),
+ arg1);
default:
break;
}
@@ -9396,7 +9400,7 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1)
return omit_one_operand (type, integer_zero_node, arg0);
case LE_EXPR:
- return fold_build2 (EQ_EXPR, type, arg0, arg1);
+ return fold_build2 (EQ_EXPR, type, op0, op1);
case GE_EXPR:
return omit_one_operand (type, integer_one_node, arg0);
@@ -9414,10 +9418,14 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1)
{
case GE_EXPR:
arg1 = const_binop (MINUS_EXPR, arg1, integer_one_node, 0);
- return fold_build2 (NE_EXPR, type, arg0, arg1);
+ return fold_build2 (NE_EXPR, type,
+ fold_convert (TREE_TYPE (arg1), arg0),
+ arg1);
case LT_EXPR:
arg1 = const_binop (MINUS_EXPR, arg1, integer_one_node, 0);
- return fold_build2 (EQ_EXPR, type, arg0, arg1);
+ return fold_build2 (EQ_EXPR, type,
+ fold_convert (TREE_TYPE (arg1), arg0),
+ arg1);
default:
break;
}
@@ -9433,12 +9441,11 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1)
and X >= signed_max+1 because previous transformations. */
if (code == LE_EXPR || code == GT_EXPR)
{
- tree st0, st1;
- st0 = lang_hooks.types.signed_type (TREE_TYPE (arg0));
- st1 = lang_hooks.types.signed_type (TREE_TYPE (arg1));
- return fold_build2 (code == LE_EXPR ? GE_EXPR: LT_EXPR,
- type, fold_convert (st0, arg0),
- build_int_cst (st1, 0));
+ tree st;
+ st = lang_hooks.types.signed_type (TREE_TYPE (arg1));
+ return fold_build2 (code == LE_EXPR ? GE_EXPR : LT_EXPR,
+ type, fold_convert (st, arg0),
+ build_int_cst (st, 0));
}
}
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d9f4fe5..9b977bc 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/31632
+ * gcc.c-torture/compile/20070419-1.c: New test.
+
2007-04-17 Simon Martin <simartin@users.sourceforge.net>
PR c++/31517
diff --git a/gcc/testsuite/gcc.c-torture/compile/20070419-1.c b/gcc/testsuite/gcc.c-torture/compile/20070419-1.c
new file mode 100644
index 0000000..ea23bf8
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20070419-1.c
@@ -0,0 +1,17 @@
+/* PR tree-optimization/31632 */
+
+struct S
+{
+ long int l;
+ void *m;
+};
+
+int
+foo (struct S *x)
+{
+ unsigned long a;
+ a = x->l;
+ if (a <= ((void *) 0))
+ x->m = 0;
+ return 0;
+}
--
1.5.4
From bce0660cd7c8abff0e5cf0d1afdb0fba9a90ae55 Mon Sep 17 00:00:00 2001
From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 20 Apr 2007 11:51:36 +0000
Subject: * config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
for __builtin_ia32_cmpordss.
* gcc.target/i386/ordcmp-1.c: New test.
* gcc.target/i386/unordcmp-1.c: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@123993 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4095c3b..18eba7c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
2007-04-20 Jakub Jelinek <jakub@redhat.com>
+ * config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
+ for __builtin_ia32_cmpordss.
+
PR tree-optimization/31632
* fold-const.c (fold_binary): Use op0 and op1 instead of arg0
and arg1 for optimizations of comparison against min/max values.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 469dad3..646b404 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -14033,7 +14033,7 @@ static const struct builtin_description bdesc_2arg[] =
BUILTIN_DESC_SWAP_OPERANDS },
{ MASK_SSE, CODE_FOR_sse_vmmaskcmpv4sf3, "__builtin_ia32_cmpngess", IX86_BUILTIN_CMPNGESS, UNGT,
BUILTIN_DESC_SWAP_OPERANDS },
- { MASK_SSE, CODE_FOR_sse_vmmaskcmpv4sf3, "__builtin_ia32_cmpordss", IX86_BUILTIN_CMPORDSS, UNORDERED, 0 },
+ { MASK_SSE, CODE_FOR_sse_vmmaskcmpv4sf3, "__builtin_ia32_cmpordss", IX86_BUILTIN_CMPORDSS, ORDERED, 0 },
{ MASK_SSE, CODE_FOR_sminv4sf3, "__builtin_ia32_minps", IX86_BUILTIN_MINPS, 0, 0 },
{ MASK_SSE, CODE_FOR_smaxv4sf3, "__builtin_ia32_maxps", IX86_BUILTIN_MAXPS, 0, 0 },
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9b977bc..34fb91d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,8 @@
2007-04-20 Jakub Jelinek <jakub@redhat.com>
+ * gcc.target/i386/ordcmp-1.c: New test.
+ * gcc.target/i386/unordcmp-1.c: New test.
+
PR tree-optimization/31632
* gcc.c-torture/compile/20070419-1.c: New test.
diff --git a/gcc/testsuite/gcc.target/i386/ordcmp-1.c b/gcc/testsuite/gcc.target/i386/ordcmp-1.c
new file mode 100644
index 0000000..1a70e19
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/ordcmp-1.c
@@ -0,0 +1,36 @@
+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+/* { dg-options "-O2 -msse2" } */
+/* { dg-final { scan-assembler "cmpordss" } } */
+/* { dg-final { scan-assembler "cmpordps" } } */
+/* { dg-final { scan-assembler "cmpordsd" } } */
+/* { dg-final { scan-assembler "cmpordpd" } } */
+/* { dg-final { scan-assembler-not "cmpunordss" } } */
+/* { dg-final { scan-assembler-not "cmpunordps" } } */
+/* { dg-final { scan-assembler-not "cmpunordsd" } } */
+/* { dg-final { scan-assembler-not "cmpunordpd" } } */
+
+#include <emmintrin.h>
+
+__m128
+f1 (__m128 x, __m128 y)
+{
+ return _mm_cmpord_ss (x, y);
+}
+
+__m128
+f2 (__m128 x, __m128 y)
+{
+ return _mm_cmpord_ps (x, y);
+}
+
+__m128d
+f3 (__m128d x, __m128d y)
+{
+ return _mm_cmpord_sd (x, y);
+}
+
+__m128d
+f4 (__m128d x, __m128d y)
+{
+ return _mm_cmpord_pd (x, y);
+}
diff --git a/gcc/testsuite/gcc.target/i386/unordcmp-1.c b/gcc/testsuite/gcc.target/i386/unordcmp-1.c
new file mode 100644
index 0000000..3123fe9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/unordcmp-1.c
@@ -0,0 +1,36 @@
+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+/* { dg-options "-O2 -msse2" } */
+/* { dg-final { scan-assembler "cmpunordss" } } */
+/* { dg-final { scan-assembler "cmpunordps" } } */
+/* { dg-final { scan-assembler "cmpunordsd" } } */
+/* { dg-final { scan-assembler "cmpunordpd" } } */
+/* { dg-final { scan-assembler-not "cmpordss" } } */
+/* { dg-final { scan-assembler-not "cmpordps" } } */
+/* { dg-final { scan-assembler-not "cmpordsd" } } */
+/* { dg-final { scan-assembler-not "cmpordpd" } } */
+
+#include <emmintrin.h>
+
+__m128
+f1 (__m128 x, __m128 y)
+{
+ return _mm_cmpunord_ss (x, y);
+}
+
+__m128
+f2 (__m128 x, __m128 y)
+{
+ return _mm_cmpunord_ps (x, y);
+}
+
+__m128d
+f3 (__m128d x, __m128d y)
+{
+ return _mm_cmpunord_sd (x, y);
+}
+
+__m128d
+f4 (__m128d x, __m128d y)
+{
+ return _mm_cmpunord_pd (x, y);
+}
--
1.5.4
From 6d69caabd2557ae5a780bcdd8e69cbec8103c07a Mon Sep 17 00:00:00 2001
From: rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 20 Apr 2007 19:20:37 +0000
Subject: * config/alpha/linux.h (CPP_SPEC): Undef before redefine.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124000 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 18eba7c..9b64a40 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2007-04-20 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/linux.h (CPP_SPEC): Undef before redefine.
+
2007-04-20 Jakub Jelinek <jakub@redhat.com>
* config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
diff --git a/gcc/config/alpha/linux.h b/gcc/config/alpha/linux.h
index cda7596..d97934b 100644
--- a/gcc/config/alpha/linux.h
+++ b/gcc/config/alpha/linux.h
@@ -49,6 +49,7 @@ Boston, MA 02110-1301, USA. */
%{shared:-lc} \
%{!shared: %{profile:-lc_p}%{!profile:-lc}}"
+#undef CPP_SPEC
#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
/* Show that we need a GP when profiling. */
--
1.5.4
From 16b741ca78dc0a3744e326ca1cb3b539ea6f0946 Mon Sep 17 00:00:00 2001
From: rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 20 Apr 2007 19:51:59 +0000
Subject: * configure.ac (alpha*-*-*): Define HAVE_LONG_DOUBLE.
* configure: Regenerate.
* include/ffi.h.in (ffi_type_longdouble): Define as ffi_type_double
if HAVE_LONG_DOUBLE is false.
* src/alpha/ffi.c (ffi_prep_cif_machdep): Support the 128-bit
long double type.
(ffi_call_osf, ffi_closure_osf): Likewise.
* src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
* src/types.c (ffi_type_longdouble): For alpha, always generate
for the 128-bit long double type.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124003 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/libffi/ChangeLog b/libffi/ChangeLog
index 03ff1b2..460fbd1 100644
--- a/libffi/ChangeLog
+++ b/libffi/ChangeLog
@@ -1,3 +1,16 @@
+2007-04-20 Richard Henderson <rth@redhat.com>
+
+ * configure.ac (alpha*-*-*): Define HAVE_LONG_DOUBLE.
+ * configure: Regenerate.
+ * include/ffi.h.in (ffi_type_longdouble): Define as ffi_type_double
+ if HAVE_LONG_DOUBLE is false.
+ * src/alpha/ffi.c (ffi_prep_cif_machdep): Support the 128-bit
+ long double type.
+ (ffi_call_osf, ffi_closure_osf): Likewise.
+ * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
+ * src/types.c (ffi_type_longdouble): For alpha, always generate
+ for the 128-bit long double type.
+
2007-02-13 Release Manager
* GCC 4.1.2 released.
diff --git a/libffi/configure b/libffi/configure
index a6a6e09..928509e 100755
--- a/libffi/configure
+++ b/libffi/configure
@@ -5393,7 +5393,11 @@ sparc*-sun-*) TARGET=SPARC; TARGETDIR=sparc;;
sparc-*-linux* | sparc-*-netbsdelf* | sparc-*-knetbsd*-gnu) TARGET=SPARC; TARGETDIR=sparc;;
sparc*-*-rtems*) TARGET=SPARC; TARGETDIR=sparc;;
sparc64-*-linux* | sparc64-*-netbsd* | sparc64-*-knetbsd*-gnu) TARGET=SPARC; TARGETDIR=sparc;;
-alpha*-*-linux* | alpha*-*-osf* | alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu | alpha*-*-netbsd* | alpha*-*-knetbsd*-gnu) TARGET=ALPHA; TARGETDIR=alpha;;
+alpha*-*-linux* | alpha*-*-osf* | alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu | alpha*-*-netbsd* | alpha*-*-knetbsd*-gnu)
+ TARGET=ALPHA; TARGETDIR=alpha
+ # Support 128-bit long double, changable via command-line switch.
+ HAVE_LONG_DOUBLE='defined(__LONG_DOUBLE_128__)'
+ ;;
ia64*-*-*) TARGET=IA64; TARGETDIR=ia64;;
m32r*-*-linux* ) TARGET=M32R; TARGETDIR=m32r;;
m68k-*-linux*) TARGET=M68K; TARGETDIR=m68k;;
@@ -7102,15 +7106,17 @@ _ACEOF
# Also AC_SUBST this variable for ffi.h.
-HAVE_LONG_DOUBLE=0
-if test $ac_cv_sizeof_double != $ac_cv_sizeof_long_double; then
- if test $ac_cv_sizeof_long_double != 0; then
- HAVE_LONG_DOUBLE=1
+if test -z "$HAVE_LONG_DOUBLE"; then
+ HAVE_LONG_DOUBLE=0
+ if test $ac_cv_sizeof_double != $ac_cv_sizeof_long_double; then
+ if test $ac_cv_sizeof_long_double != 0; then
+ HAVE_LONG_DOUBLE=1
cat >>confdefs.h <<\_ACEOF
#define HAVE_LONG_DOUBLE 1
_ACEOF
+ fi
fi
fi
diff --git a/libffi/configure.ac b/libffi/configure.ac
index eac8e8f..1052e49 100644
--- a/libffi/configure.ac
+++ b/libffi/configure.ac
@@ -58,7 +58,11 @@ sparc*-sun-*) TARGET=SPARC; TARGETDIR=sparc;;
sparc-*-linux* | sparc-*-netbsdelf* | sparc-*-knetbsd*-gnu) TARGET=SPARC; TARGETDIR=sparc;;
sparc*-*-rtems*) TARGET=SPARC; TARGETDIR=sparc;;
sparc64-*-linux* | sparc64-*-netbsd* | sparc64-*-knetbsd*-gnu) TARGET=SPARC; TARGETDIR=sparc;;
-alpha*-*-linux* | alpha*-*-osf* | alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu | alpha*-*-netbsd* | alpha*-*-knetbsd*-gnu) TARGET=ALPHA; TARGETDIR=alpha;;
+alpha*-*-linux* | alpha*-*-osf* | alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu | alpha*-*-netbsd* | alpha*-*-knetbsd*-gnu)
+ TARGET=ALPHA; TARGETDIR=alpha
+ # Support 128-bit long double, changable via command-line switch.
+ HAVE_LONG_DOUBLE='defined(__LONG_DOUBLE_128__)'
+ ;;
ia64*-*-*) TARGET=IA64; TARGETDIR=ia64;;
m32r*-*-linux* ) TARGET=M32R; TARGETDIR=m32r;;
m68k-*-linux*) TARGET=M68K; TARGETDIR=m68k;;
@@ -126,11 +130,13 @@ AC_CHECK_SIZEOF(double)
AC_CHECK_SIZEOF(long double)
# Also AC_SUBST this variable for ffi.h.
-HAVE_LONG_DOUBLE=0
-if test $ac_cv_sizeof_double != $ac_cv_sizeof_long_double; then
- if test $ac_cv_sizeof_long_double != 0; then
- HAVE_LONG_DOUBLE=1
- AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the long double type and it is bigger than a double])
+if test -z "$HAVE_LONG_DOUBLE"; then
+ HAVE_LONG_DOUBLE=0
+ if test $ac_cv_sizeof_double != $ac_cv_sizeof_long_double; then
+ if test $ac_cv_sizeof_long_double != 0; then
+ HAVE_LONG_DOUBLE=1
+ AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the long double type and it is bigger than a double])
+ fi
fi
fi
AC_SUBST(HAVE_LONG_DOUBLE)
diff --git a/libffi/include/ffi.h.in b/libffi/include/ffi.h.in
index 4260045..dfa153c 100644
--- a/libffi/include/ffi.h.in
+++ b/libffi/include/ffi.h.in
@@ -145,9 +145,13 @@ extern ffi_type ffi_type_uint64;
extern ffi_type ffi_type_sint64;
extern ffi_type ffi_type_float;
extern ffi_type ffi_type_double;
-extern ffi_type ffi_type_longdouble;
extern ffi_type ffi_type_pointer;
+#if @HAVE_LONG_DOUBLE@
+extern ffi_type ffi_type_longdouble;
+#else
+#define ffi_type_longdouble ffi_type_double
+#endif
typedef enum {
FFI_OK = 0,
diff --git a/libffi/src/alpha/ffi.c b/libffi/src/alpha/ffi.c
index 00d3379..b1336c6 100644
--- a/libffi/src/alpha/ffi.c
+++ b/libffi/src/alpha/ffi.c
@@ -25,11 +25,22 @@
#include <ffi.h>
#include <ffi_common.h>
-
#include <stdlib.h>
-extern void ffi_call_osf(void *, unsigned long, unsigned, void *, void (*)());
-extern void ffi_closure_osf(void);
+/* Force FFI_TYPE_LONGDOUBLE to be different than FFI_TYPE_DOUBLE;
+ all further uses in this file will refer to the 128-bit type. */
+#if defined(__LONG_DOUBLE_128__)
+# if FFI_TYPE_LONGDOUBLE != 4
+# error FFI_TYPE_LONGDOUBLE out of date
+# endif
+#else
+# undef FFI_TYPE_LONGDOUBLE
+# define FFI_TYPE_LONGDOUBLE 4
+#endif
+
+extern void ffi_call_osf(void *, unsigned long, unsigned, void *, void (*)())
+ FFI_HIDDEN;
+extern void ffi_closure_osf(void) FFI_HIDDEN;
ffi_status
@@ -49,6 +60,11 @@ ffi_prep_cif_machdep(ffi_cif *cif)
cif->flags = cif->rtype->type;
break;
+ case FFI_TYPE_LONGDOUBLE:
+ /* 128-bit long double is returned in memory, like a struct. */
+ cif->flags = FFI_TYPE_STRUCT;
+ break;
+
default:
cif->flags = FFI_TYPE_INT;
break;
@@ -57,6 +73,7 @@ ffi_prep_cif_machdep(ffi_cif *cif)
return FFI_OK;
}
+
void
ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
{
@@ -64,8 +81,6 @@ ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
long i, avn;
ffi_type **arg_types;
- FFI_ASSERT (cif->abi == FFI_OSF);
-
/* If the return value is a struct and we don't have a return
value address then we need to make one. */
if (rvalue == NULL && cif->flags == FFI_TYPE_STRUCT)
@@ -84,6 +99,8 @@ ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
while (i < avn)
{
+ size_t size = (*arg_types)->size;
+
switch ((*arg_types)->type)
{
case FFI_TYPE_SINT8:
@@ -129,6 +146,12 @@ ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
*(double *) argp = *(double *)(* avalue);
break;
+ case FFI_TYPE_LONGDOUBLE:
+ /* 128-bit long double is passed by reference. */
+ *(long double **) argp = (long double *)(* avalue);
+ size = sizeof (long double *);
+ break;
+
case FFI_TYPE_STRUCT:
memcpy(argp, *avalue, (*arg_types)->size);
break;
@@ -137,7 +160,7 @@ ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
FFI_ASSERT(0);
}
- argp += ALIGN((*arg_types)->size, FFI_SIZEOF_ARG) / FFI_SIZEOF_ARG;
+ argp += ALIGN(size, FFI_SIZEOF_ARG) / FFI_SIZEOF_ARG;
i++, arg_types++, avalue++;
}
@@ -153,8 +176,6 @@ ffi_prep_closure (ffi_closure* closure,
{
unsigned int *tramp;
- FFI_ASSERT (cif->abi == FFI_OSF);
-
tramp = (unsigned int *) &closure->tramp[0];
tramp[0] = 0x47fb0401; /* mov $27,$1 */
tramp[1] = 0xa77b0010; /* ldq $27,16($27) */
@@ -177,7 +198,8 @@ ffi_prep_closure (ffi_closure* closure,
return FFI_OK;
}
-int
+
+long FFI_HIDDEN
ffi_closure_osf_inner(ffi_closure *closure, void *rvalue, unsigned long *argp)
{
ffi_cif *cif;
@@ -205,6 +227,8 @@ ffi_closure_osf_inner(ffi_closure *closure, void *rvalue, unsigned long *argp)
/* Grab the addresses of the arguments from the stack frame. */
while (i < avn)
{
+ size_t size = arg_types[i]->size;
+
switch (arg_types[i]->type)
{
case FFI_TYPE_SINT8:
@@ -236,16 +260,22 @@ ffi_closure_osf_inner(ffi_closure *closure, void *rvalue, unsigned long *argp)
avalue[i] = &argp[argn - (argn < 6 ? 6 : 0)];
break;
+ case FFI_TYPE_LONGDOUBLE:
+ /* 128-bit long double is passed by reference. */
+ avalue[i] = (long double *) argp[argn];
+ size = sizeof (long double *);
+ break;
+
default:
- FFI_ASSERT(0);
+ abort ();
}
- argn += ALIGN(arg_types[i]->size, FFI_SIZEOF_ARG) / FFI_SIZEOF_ARG;
+ argn += ALIGN(size, FFI_SIZEOF_ARG) / FFI_SIZEOF_ARG;
i++;
}
/* Invoke the closure. */
- (closure->fun) (cif, rvalue, avalue, closure->user_data);
+ closure->fun (cif, rvalue, avalue, closure->user_data);
/* Tell ffi_closure_osf how to perform return type promotions. */
return cif->rtype->type;
diff --git a/libffi/src/alpha/osf.S b/libffi/src/alpha/osf.S
index 2f03d62..aba6782 100644
--- a/libffi/src/alpha/osf.S
+++ b/libffi/src/alpha/osf.S
@@ -1,10 +1,8 @@
/* -----------------------------------------------------------------------
- osf.S - Copyright (c) 1998, 2001 Red Hat
+ osf.S - Copyright (c) 1998, 2001, 2007 Red Hat
Alpha/OSF Foreign Function Interface
- $Id: osf.S,v 1.1.1.1 1998/11/29 16:48:16 green Exp $
-
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
``Software''), to deal in the Software without restriction, including
@@ -42,6 +40,8 @@
.align 3
.globl ffi_call_osf
.ent ffi_call_osf
+ FFI_HIDDEN(ffi_call_osf)
+
ffi_call_osf:
.frame $15, 32, $26, 0
.mask 0x4008000, -32
@@ -129,6 +129,8 @@ $LFE1:
.align 3
.globl ffi_closure_osf
.ent ffi_closure_osf
+ FFI_HIDDEN(ffi_closure_osf)
+
ffi_closure_osf:
.frame $30, 16*8, $26, 0
.mask 0x4000000, -16*8
@@ -265,7 +267,7 @@ $load_table:
.gprel32 $load_32 # FFI_TYPE_INT
.gprel32 $load_float # FFI_TYPE_FLOAT
.gprel32 $load_double # FFI_TYPE_DOUBLE
- .gprel32 $load_double # FFI_TYPE_LONGDOUBLE
+ .gprel32 $load_none # FFI_TYPE_LONGDOUBLE
.gprel32 $load_u8 # FFI_TYPE_UINT8
.gprel32 $load_s8 # FFI_TYPE_SINT8
.gprel32 $load_u16 # FFI_TYPE_UINT16
diff --git a/libffi/src/types.c b/libffi/src/types.c
index b657873..ad7ef60 100644
--- a/libffi/src/types.c
+++ b/libffi/src/types.c
@@ -57,4 +57,17 @@ FFI_TYPEDEF(pointer, void*, FFI_TYPE_POINTER);
FFI_TYPEDEF(float, float, FFI_TYPE_FLOAT);
FFI_TYPEDEF(double, double, FFI_TYPE_DOUBLE);
+
+#ifdef __alpha__
+/* Even if we're not configured to default to 128-bit long double,
+ maintain binary compatibility, as -mlong-double-128 can be used
+ at any time. */
+/* Validate the hard-coded number below. */
+# if defined(__LONG_DOUBLE_128__) && FFI_TYPE_LONGDOUBLE != 4
+# error FFI_TYPE_LONGDOUBLE out of date
+# endif
+# undef ffi_type_longdouble
+ffi_type ffi_type_longdouble = { 16, 16, 4, NULL };
+#elif FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE
FFI_TYPEDEF(longdouble, long double, FFI_TYPE_LONGDOUBLE);
+#endif
--
1.5.4
From 5f8bc359584eeb2c6b689493d0c3631ae1488f7d Mon Sep 17 00:00:00 2001
From: jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 21 Apr 2007 12:45:28 +0000
Subject: * sv.po: Update.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124018 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog
index 98a90f8..09c5ae7 100644
--- a/gcc/po/ChangeLog
+++ b/gcc/po/ChangeLog
@@ -1,3 +1,7 @@
+2007-04-21 Joseph S. Myers <joseph@codesourcery.com>
+
+ * sv.po: Update.
+
2007-03-08 Joseph S. Myers <joseph@codesourcery.com>
* sr.po: New.
diff --git a/gcc/po/sv.po b/gcc/po/sv.po
index d531577..4817029 100644
--- a/gcc/po/sv.po
+++ b/gcc/po/sv.po
@@ -1,7 +1,7 @@
# Swedish messages for GCC.
-# Copyright <A9> 2000, 2005, 2006 Free Software Foundation, Inc.
+# Copyright <A9> 2000, 2005, 2006, 2007 Free Software Foundation, Inc.
# Dennis Bj<F6>rklund <db@zigo.dhs.org>, 2000, 2001, 2002.
-# G<F6>ran Uddeborg <goeran@uddeborg.se>, 2005, 2006.
+# G<F6>ran Uddeborg <goeran@uddeborg.se>, 2005, 2006, 2007.
#
# Remember: GCC team does not want RCS keywords in the header!
#
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: gcc 4.1.1\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
"POT-Creation-Date: 2006-05-24 16:19-0700\n"
-"PO-Revision-Date: 2006-12-13 22:05+0100\n"
+"PO-Revision-Date: 2007-04-03 09:58+0200\n"
"Last-Translator: G<F6>ran Uddeborg <goeran@uddeborg.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"MIME-Version: 1.0\n"
@@ -364,7 +364,7 @@ msgstr "klamrar saknas runt initierare"
#: c-typeck.c:5209
msgid "braces around scalar initializer"
-msgstr "klamrar funt skal<E4>r initierare"
+msgstr "klamrar runt skal<E4>r initierare"
#: c-typeck.c:5266
msgid "initialization of flexible array member in a nested context"
@@ -9266,19 +9266,19 @@ msgstr "-private_bundle
#: java/lang.opt:66
msgid "Warn if a deprecated compiler feature, class, method, or field is used"
-msgstr "Varna om en kompilatorfunktion, klass, metod eller f<E4>lt som avr<E5>des ifr<E5>n anv<E4>nds"
+msgstr "Varna f<F6>r en kompilatorfunktion, klass, metod eller f<E4>lt som b<F6>r undvikas anv<E4>nds"
#: java/lang.opt:70
msgid "Warn if deprecated empty statements are found"
-msgstr "Varna om f<F6>r<E5>ldrade tomma satser finns"
+msgstr "Varna f<F6>r tomma satser som b<F6>r undvikas finns"
#: java/lang.opt:74
msgid "Warn if .class files are out of date"
-msgstr "Varna om .class-filer <E4>r inaktuella"
+msgstr "Varna f<F6>r .class-filer <E4>r inaktuella"
#: java/lang.opt:78
msgid "Warn if modifiers are specified when not necessary"
-msgstr "Varna om modifierare anges n<E4>r de inte beh<F6>vs"
+msgstr "Varna f<F6>r modifierare anges n<E4>r de inte beh<F6>vs"
#: java/lang.opt:82
msgid "Deprecated; use --classpath instead"
@@ -9370,23 +9370,23 @@ msgstr "L
#: fortran/lang.opt:42
msgid "Warn about possible aliasing of dummy arguments"
-msgstr "Varna om eventuell aliasning av atrappargument"
+msgstr "Varna f<F6>r eventuell aliasning av atrappargument"
#: fortran/lang.opt:46
msgid "Warn about missing ampersand in continued character literals"
-msgstr "Varna om saknade ampersander i fortsatta teckenliteraler"
+msgstr "Varna f<F6>r saknade ampersander i fortsatta teckenliteraler"
#: fortran/lang.opt:50
msgid "Warn about implicit conversion"
-msgstr "Varna om implicita konverteringar"
+msgstr "Varna f<F6>r implicita konverteringar"
#: fortran/lang.opt:54
msgid "Warn about calls with implicit interface"
-msgstr "Varna om anrop med implicit gr<E4>nssnitt"
+msgstr "Varna f<F6>r anrop med implicit gr<E4>nssnitt"
#: fortran/lang.opt:58
msgid "Warn about truncated source lines"
-msgstr "Varna om avhuggna k<E4>llkodsrader"
+msgstr "Varna f<F6>r avhuggna k<E4>llkodsrader"
#: fortran/lang.opt:62
msgid "Warn about usage of non-standard intrinsics"
@@ -9394,11 +9394,11 @@ msgstr "Varna f
#: fortran/lang.opt:66
msgid "Warn about \"suspicious\" constructs"
-msgstr "Varna om \"misst<E4>nkta\" konstruktioner"
+msgstr "Varna f<F6>r \"misst<E4>nkta\" konstruktioner"
#: fortran/lang.opt:70
msgid "Warn about underflow of numerical constant expressions"
-msgstr "Varna om underspill i numeriska konstantuttryck"
+msgstr "Varna f<F6>r underspill i numeriska konstantuttryck"
#: fortran/lang.opt:74 common.opt:162
msgid "Warn when a label is unused"
@@ -9936,11 +9936,11 @@ msgstr "anv
#: config/s390/s390.opt:92
msgid "Warn if a function uses alloca or creates an array with dynamic size"
-msgstr "Varna om en funktion anv<E4>nder alloca eller skapar en vektor med dynamisk storlek"
+msgstr "Varna f<F6>r en funktion anv<E4>nder alloca eller skapar en vektor med dynamisk storlek"
#: config/s390/s390.opt:96
msgid "Warn if a single function's framesize exceeds the given framesize"
-msgstr "Varna om en enskild funktions ramstorlek <F6>verskrider den angivna ramstorleken"
+msgstr "Varna f<F6>r en enskild funktions ramstorlek <F6>verskrider den angivna ramstorleken"
#: config/s390/s390.opt:100
msgid "z/Architecture"
@@ -10690,7 +10690,7 @@ msgstr "Undvik alla avst
#: config/rs6000/rs6000.opt:215
msgid "Warn about deprecated 'vector long ...' AltiVec type usage"
-msgstr "Varna f<F6>r anv<E4>ndning av AltiVec-typen \"vector long ...\" som avr<E5>des fr<E5>n"
+msgstr "Varna f<F6>r anv<E4>ndning av AltiVec-typen \"vector long ...\" som b<F6>r undvikas"
#: config/rs6000/rs6000.opt:219
msgid "Select GPR floating point method"
@@ -12214,7 +12214,7 @@ msgstr "Avdefiniera <makro>"
#: c.opt:117
msgid "Warn about things that will change when compiling with an ABI-compliant compiler"
-msgstr "Varna om saker som skulle <E4>ndras vid kompilering med en kompilator som f<F6>ljer ABI"
+msgstr "Varna f<F6>r saker som skulle <E4>ndras vid kompilering med en kompilator som f<F6>ljer ABI"
#: c.opt:121
msgid "Enable most warning messages"
@@ -12226,23 +12226,23 @@ msgstr "Varna n
#: c.opt:129
msgid "Warn about casting functions to incompatible types"
-msgstr "Varna om typkonvertering av funktioner till inkompatibla typer"
+msgstr "Varna f<F6>r typkonvertering av funktioner till inkompatibla typer"
#: c.opt:133
msgid "Warn about C constructs that are not in the common subset of C and C++"
-msgstr "Varna om C-konstruktioner som inte <E4>r i den gemensamma delm<E4>ngden av C och C++"
+msgstr "Varna f<F6>r C-konstruktioner som inte <E4>r i den gemensamma delm<E4>ngden av C och C++"
#: c.opt:138
msgid "Warn about casts which discard qualifiers"
-msgstr "Varna om typkonvertering som sl<E4>nger kvalificerare"
+msgstr "Varna f<F6>r typkonvertering som sl<E4>nger kvalificerare"
#: c.opt:142
msgid "Warn about subscripts whose type is \"char\""
-msgstr "Varna om index vars typ <E4>r \"char\""
+msgstr "Varna f<F6>r index vars typ <E4>r \"char\""
#: c.opt:146
msgid "Warn about possibly nested block comments, and C++ comments spanning more than one physical line"
-msgstr "Varna om m<F6>jliga n<E4>stade blockkommentarer, och C++-kommentarer som sp<E4>nner <F6>ver mer <E4>n en fysisk rad"
+msgstr "Varna f<F6>r m<F6>jliga n<E4>stade blockkommentarer, och C++-kommentarer som sp<E4>nner <F6>ver mer <E4>n en fysisk rad"
#: c.opt:150
msgid "Synonym for -Wcomment"
@@ -12250,7 +12250,7 @@ msgstr "Synonym f
#: c.opt:154
msgid "Warn about possibly confusing type conversions"
-msgstr "Varna om eventuellt f<F6>rvirrande typkonverteringar"
+msgstr "Varna f<F6>r eventuellt f<F6>rvirrande typkonverteringar"
#: c.opt:158
msgid "Warn when all constructors and destructors are private"
@@ -12262,19 +12262,19 @@ msgstr "Varna n
#: c.opt:166
msgid "Warn about deprecated compiler features"
-msgstr "Varna om kompilatorfunktioner som undanbedes"
+msgstr "Varna f<F6>r kompilatorfunktioner b<F6>r undvikas"
#: c.opt:170
msgid "Warn about compile-time integer division by zero"
-msgstr "Varna om heltalsdivision med noll vid kompileringstillf<E4>llet"
+msgstr "Varna f<F6>r heltalsdivision med noll vid kompileringstillf<E4>llet"
#: c.opt:174
msgid "Warn about violations of Effective C++ style rules"
-msgstr "Varna om brott mot Effective C++ stilregler"
+msgstr "Varna f<F6>r brott mot stilreglerna i Effective C++"
#: c.opt:178
msgid "Warn about stray tokens after #elif and #endif"
-msgstr "Varna om vilsekomna symboler efter #elif och #endif"
+msgstr "Varna f<F6>r vilsekomna symboler efter #elif och #endif"
#: c.opt:186
msgid "Make implicit function declarations an error"
@@ -12286,35 +12286,35 @@ msgstr "Varna vid test av flyttal p
#: c.opt:194
msgid "Warn about printf/scanf/strftime/strfmon format string anomalies"
-msgstr "Varna om anomalier i formatstr<E4>ngar till printf/scanf/strftime/strfmon"
+msgstr "Varna f<F6>r anomalier i formatstr<E4>ngar till printf/scanf/strftime/strfmon"
#: c.opt:198
msgid "Warn if passing too many arguments to a function for its format string"
-msgstr "Varna om f<F6>r m<E5>nga argument argument till en funktion f<F6>r dess formatstr<E4>ng"
+msgstr "Varna f<F6>r f<F6>r m<E5>nga argument argument till en funktion f<F6>r dess formatstr<E4>ng"
#: c.opt:202
msgid "Warn about format strings that are not literals"
-msgstr "Varna om formatstr<E4>ngar som inte <E4>r literaler"
+msgstr "Varna f<F6>r formatstr<E4>ngar som inte <E4>r literaler"
#: c.opt:206
msgid "Warn about possible security problems with format functions"
-msgstr "Varna om m<F6>jliga s<E4>kerhetsproblem med formatfunktioner"
+msgstr "Varna f<F6>r m<F6>jliga s<E4>kerhetsproblem med formatfunktioner"
#: c.opt:210
msgid "Warn about strftime formats yielding 2-digit years"
-msgstr "Varna om format till strftime som ger 2-siffrigt <E5>rtal"
+msgstr "Varna f<F6>r format till strftime som ger 2-siffrigt <E5>rtal"
#: c.opt:214
msgid "Warn about zero-length formats"
-msgstr "Varna om format med l<E4>ngden noll"
+msgstr "Varna f<F6>r format med l<E4>ngden noll"
#: c.opt:221
msgid "Warn about variables which are initialized to themselves"
-msgstr "Varna om variabler som intieras till sig sj<E4>lva"
+msgstr "Varna f<F6>r variabler som intieras till sig sj<E4>lva"
#: c.opt:228
msgid "Warn about implicit function declarations"
-msgstr "Varna om implicita funktionsdeklarationer"
+msgstr "Varna f<F6>r implicita funktionsdeklarationer"
#: c.opt:232
msgid "Warn when a declaration does not specify a type"
@@ -12326,15 +12326,15 @@ msgstr "Avr
#: c.opt:240
msgid "Warn when there is a cast to a pointer from an integer of a different size"
-msgstr "Varna om typkonverteringar till pekare fr<E5>n ett heltal med annan storlek"
+msgstr "Varna f<F6>r typkonverteringar till pekare fr<E5>n ett heltal med annan storlek"
#: c.opt:244
msgid "Warn about invalid uses of the \"offsetof\" macro"
-msgstr "Varna om ogiltiga anv<E4>ndningar av makrot \"offsetof\""
+msgstr "Varna f<F6>r ogiltiga anv<E4>ndningar av makrot \"offsetof\""
#: c.opt:248
msgid "Warn about PCH files that are found but not used"
-msgstr "Varna om PCH-filer som hittas men inte anv<E4>nds"
+msgstr "Varna f<F6>r PCH-filer som hittas men inte anv<E4>nds"
#: c.opt:252
msgid "Do not warn about using \"long long\" when -pedantic"
@@ -12342,31 +12342,31 @@ msgstr "Varna inte om anv
#: c.opt:256
msgid "Warn about suspicious declarations of \"main\""
-msgstr "Varna om tveksamma deklarationer av \"main\""
+msgstr "Varna f<F6>r tveksamma deklarationer av \"main\""
#: c.opt:260
msgid "Warn about possibly missing braces around initializers"
-msgstr "Varna om eventuellt saknade klamrar runt initierare"
+msgstr "Varna f<F6>r eventuellt saknade klamrar runt initierare"
#: c.opt:264
msgid "Warn about global functions without previous declarations"
-msgstr "Varna om globala globala funktioner utan tidigare deklaration"
+msgstr "Varna f<F6>r globala globala funktioner utan tidigare deklaration"
#: c.opt:268
msgid "Warn about missing fields in struct initializers"
-msgstr "Varna om saknade f<E4>lt i postinitierare"
+msgstr "Varna f<F6>r saknade f<E4>lt i postinitierare"
#: c.opt:272
msgid "Warn about functions which might be candidates for format attributes"
-msgstr "Varna om funktioner som kan vara kandidater f<F6>r formatattribut"
+msgstr "Varna f<F6>r funktioner som kan vara kandidater f<F6>r formatattribut"
#: c.opt:276
msgid "Warn about user-specified include directories that do not exist"
-msgstr "Varna om anv<E4>ndarangivna inkluderingskataloger som inte finns"
+msgstr "Varna f<F6>r anv<E4>ndarangivna inkluderingskataloger som inte finns"
#: c.opt:280
msgid "Warn about global functions without prototypes"
-msgstr "Varna om globala funktioner utan prototyper"
+msgstr "Varna f<F6>r globala funktioner utan prototyper"
#: c.opt:284
msgid "Warn about use of multi-character character constants"
@@ -12374,7 +12374,7 @@ msgstr "Varna vid anv
#: c.opt:288
msgid "Warn about \"extern\" declarations not at file scope"
-msgstr "Varna om \"extern\"-deklaration som inte <E4>r p<E5> filniv<E5>"
+msgstr "Varna f<F6>r \"extern\"-deklaration som inte <E4>r p<E5> filniv<E5>"
#: c.opt:292
msgid "Warn when non-templatized friend functions are declared within a template"
@@ -12382,31 +12382,31 @@ msgstr "Varna n
#: c.opt:296
msgid "Warn about non-virtual destructors"
-msgstr "Varna om ickevirtuella destruerare"
+msgstr "Varna f<F6>r ickevirtuella destruerare"
#: c.opt:300
msgid "Warn about NULL being passed to argument slots marked as requiring non-NULL"
-msgstr "Varna om NULL skickas som argument till fack markerde att de kr<E4>ver icke-NULL"
+msgstr "Varna om NULL skickas som argument som <E4>r markerade att de kr<E4>ver icke-NULL"
#: c.opt:304
msgid "Warn about non-normalised Unicode strings"
-msgstr "Varna om icke normaliserade Unicodestr<E4>ngar"
+msgstr "Varna f<F6>r icke normaliserade Unicodestr<E4>ngar"
#: c.opt:308
msgid "Warn if a C-style cast is used in a program"
-msgstr "Varna om en typkonvertering i C-stil anv<E4>nds i ett program"
+msgstr "Varna f<F6>r en typkonvertering i C-stil anv<E4>nds i ett program"
#: c.opt:312
msgid "Warn if an old-style parameter definition is used"
-msgstr "Varna om en gammaldags parameterdefinition anv<E4>nds"
+msgstr "Varna f<F6>r en gammaldags parameterdefinition anv<E4>nds"
#: c.opt:316
msgid "Warn about overloaded virtual function names"
-msgstr "Varna om <F6>verlastade virtuella funktionsnamn"
+msgstr "Varna f<F6>r <F6>verlagrade virtuella funktionsnamn"
#: c.opt:320
msgid "Warn about possibly missing parentheses"
-msgstr "Varna om eventuellt saknade parenteser"
+msgstr "Varna f<F6>r eventuellt saknade parenteser"
#: c.opt:324
msgid "Warn when converting the type of pointers to member functions"
@@ -12414,7 +12414,7 @@ msgstr "Varna vid typkonvertering av pekare till medlemsfunktioner"
#: c.opt:328
msgid "Warn about function pointer arithmetic"
-msgstr "Varna om aritmetik med funktionspekare"
+msgstr "Varna f<F6>r aritmetik med funktionspekare"
#: c.opt:332
msgid "Warn when a pointer is cast to an integer of a different size"
@@ -12422,15 +12422,15 @@ msgstr "Varna n
#: c.opt:336
msgid "Warn about misuses of pragmas"
-msgstr "Varna om missbruk av pragman"
+msgstr "Varna f<F6>r missbruk av pragman"
#: c.opt:340
msgid "Warn if inherited methods are unimplemented"
-msgstr "Varna om <E4>rvda metoder <E4>r oimplementerade"
+msgstr "Varna f<F6>r <E4>rvda metoder <E4>r oimplementerade"
#: c.opt:344
msgid "Warn about multiple declarations of the same object"
-msgstr "Varna om multipla deklarationer av samma objekt"
+msgstr "Varna f<F6>r multipla deklarationer av samma objekt"
#: c.opt:348
msgid "Warn when the compiler reorders code"
@@ -12442,31 +12442,31 @@ msgstr "Varna n
#: c.opt:356
msgid "Warn if a selector has multiple methods"
-msgstr "Varna om en v<E4>ljare har multipla metoder"
+msgstr "Varna f<F6>r en v<E4>ljare har multipla metoder"
#: c.opt:360
msgid "Warn about possible violations of sequence point rules"
-msgstr "Varna om m<F6>jliga brott mot sekvenspunktregler"
+msgstr "Varna f<F6>r m<F6>jliga brott mot sekvenspunktregler"
#: c.opt:364
msgid "Warn about signed-unsigned comparisons"
-msgstr "Varna om j<E4>mf<F6>relser mellan signed/unsigned"
+msgstr "Varna f<F6>r j<E4>mf<F6>relser mellan signed/unsigned"
#: c.opt:368
msgid "Warn when overload promotes from unsigned to signed"
-msgstr "Varna n<E4>r <F6>verlastning anpassar fr<E5>n teckenl<F6>st till med tecken"
+msgstr "Varna n<E4>r <F6>verlagring anpassar fr<E5>n teckenl<F6>st till med tecken"
#: c.opt:372
msgid "Warn about uncasted NULL used as sentinel"
-msgstr "Varna om ej typkonverterad NULL anv<E4>nds som vaktpost"
+msgstr "Varna f<F6>r ej typkonverterad NULL anv<E4>nds som vaktpost"
#: c.opt:376
msgid "Warn about unprototyped function declarations"
-msgstr "Varna om funktionsdeklarationer utan prototyp"
+msgstr "Varna f<F6>r funktionsdeklarationer utan prototyp"
#: c.opt:380
msgid "Warn if type signatures of candidate methods do not match exactly"
-msgstr "Varna om typsignaturer till kandidatmetoder inte st<E4>mmer exakt"
+msgstr "Varna f<F6>r typsignaturer till kandidatmetoder inte st<E4>mmer exakt"
#: c.opt:384
msgid "Warn when synthesis behavior differs from Cfront"
@@ -12478,27 +12478,27 @@ msgstr "Undertryck inte varningar fr
#: c.opt:392
msgid "Warn about features not present in traditional C"
-msgstr "Varna om funktioner som inte finns i traditionell C"
+msgstr "Varna f<F6>r funktioner som inte finns i traditionell C"
#: c.opt:396
msgid "Warn if trigraphs are encountered that might affect the meaning of the program"
-msgstr "Varna om trigrafer uppt<E4>cks som kan p<E5>verka betydelsen av programmet"
+msgstr "Varna f<F6>r trigrafer uppt<E4>cks som kan p<E5>verka betydelsen av programmet"
#: c.opt:400
msgid "Warn about @selector()s without previously declared methods"
-msgstr "Varna om @selector()er utan tidigare deklarerade metoder"
+msgstr "Varna f<F6>r @selector()er utan tidigare deklarerade metoder"
#: c.opt:404
msgid "Warn if an undefined macro is used in an #if directive"
-msgstr "Varna om ett odefinierat makro anv<E4>nds i ett #if-direktiv"
+msgstr "Varna f<F6>r ett odefinierat makro anv<E4>nds i ett #if-direktiv"
#: c.opt:408
msgid "Warn about unrecognized pragmas"
-msgstr "Varna om ok<E4>nda pragman"
+msgstr "Varna f<F6>r ok<E4>nda pragman"
#: c.opt:412
msgid "Warn about macros defined in the main file that are not used"
-msgstr "Varna om makron definierade i huvudfilen som inte anv<E4>nds"
+msgstr "Varna f<F6>r makron definierade i huvudfilen som inte anv<E4>nds"
#: c.opt:416
msgid "Do not warn about using variadic macros when -pedantic"
@@ -12886,23 +12886,23 @@ msgstr "Optimera f
#: common.opt:54
msgid "This switch is deprecated; use -Wextra instead"
-msgstr "Denna flagga avr<E5>des ifr<E5>n, anv<E4>nd -Wextra ist<E4>llet"
+msgstr "Denna flagga b<F6>r undvikas, anv<E4>nd -Wextra ist<E4>llet"
#: common.opt:58
msgid "Warn about returning structures, unions or arrays"
-msgstr "Varna om retur av poster, unioner eller vektorer"
+msgstr "Varna f<F6>r retur av poster, unioner eller vektorer"
#: common.opt:62
msgid "Warn about inappropriate attribute usage"
-msgstr "Varna om felaktig anv<E4>ndning av attribut"
+msgstr "Varna f<F6>r felaktig anv<E4>ndning av attribut"
#: common.opt:66
msgid "Warn about pointer casts which increase alignment"
-msgstr "Varna om typkonvertering av pekare som <F6>kar justeringen"
+msgstr "Varna f<F6>r typkonvertering av pekare som <F6>kar justeringen"
#: common.opt:70
msgid "Warn about uses of __attribute__((deprecated)) declarations"
-msgstr "Varna om anv<E4>ndning av __attribute__((deprecated))-deklarationer"
+msgstr "Varna f<F6>r anv<E4>ndning av __attribute__((deprecated))-deklarationer"
#: common.opt:74
msgid "Warn when an optimization pass is disabled"
@@ -12926,15 +12926,15 @@ msgstr "Varna n
#: common.opt:94
msgid "Warn if an object is larger than <number> bytes"
-msgstr "Varna om ett objekt <E4>r st<F6>rre <E4>n <antal> byte"
+msgstr "Varna f<F6>r ett objekt <E4>r st<F6>rre <E4>n <antal> byte"
#: common.opt:98
msgid "Warn if the loop cannot be optimized due to nontrivial assumptions."
-msgstr "Varna om slingan inte kan optimeras p<E5> grund av icketriviala antaganden."
+msgstr "Varna f<F6>r slingan inte kan optimeras p<E5> grund av icketriviala antaganden."
#: common.opt:102
msgid "Warn about functions which might be candidates for __attribute__((noreturn))"
-msgstr "Varna om funktioner som <E4>r m<F6>jliga kandidater f<F6>r __attribute__((noreturn))"
+msgstr "Varna f<F6>r funktioner som <E4>r m<F6>jliga kandidater f<F6>r __attribute__((noreturn))"
#: common.opt:106
msgid "Warn when the packed attribute has no effect on struct layout"
@@ -12950,31 +12950,31 @@ msgstr "Varna n
#: common.opt:118
msgid "Warn when not issuing stack smashing protection for some reason"
-msgstr "Varna n<E4>r stackspr<E4>ngningsskydd inte l<E4>ggs ut av n<E5>gon anledning"
+msgstr "Varna n<E4>r stack<F6>verskrivningsskydd inte l<E4>ggs ut av n<E5>gon anledning"
#: common.opt:122 common.opt:126
msgid "Warn about code which might break strict aliasing rules"
-msgstr "Varna om kod som kan bryta strikta aliasregler"
+msgstr "Varna f<F6>r kod som kan bryta strikta aliasregler"
#: common.opt:130
msgid "Warn about enumerated switches, with no default, missing a case"
-msgstr "Varna om uppr<E4>kningshopptabeller, utan standardfall, saknar ett fall"
+msgstr "Varna n<E4>r hopptabeller f<F6>r uppr<E4>kningstyper inte har standardfall och saknar ett fall"
#: common.opt:134
msgid "Warn about enumerated switches missing a \"default:\" statement"
-msgstr "Varna om uppr<E4>kningshopptabeller saknar en \"default:\"-sats"
+msgstr "Varna f<F6>r uppr<E4>kningshopptabeller saknar en \"default:\"-sats"
#: common.opt:138
msgid "Warn about all enumerated switches missing a specific case"
-msgstr "Varna om alla uppr<E4>kningshopptabeller som saknar ett specifikt fall"
+msgstr "Varna f<F6>r alla uppr<E4>kningshopptabeller som saknar ett specifikt fall"
#: common.opt:146
msgid "Warn about uninitialized automatic variables"
-msgstr "Varna om oinitierade automatiska variabler"
+msgstr "Varna f<F6>r oinitierade automatiska variabler"
#: common.opt:150
msgid "Warn about code that will never be executed"
-msgstr "Varna om kod som aldrig kommer k<F6>ras"
+msgstr "Varna f<F6>r kod som aldrig kommer k<F6>ras"
#: common.opt:154
msgid "Enable all -Wunused- warnings"
@@ -13106,7 +13106,7 @@ msgstr "Uteslut intervallreduktionssteget n
#: common.opt:334
msgid "Place data items into their own section"
-msgstr "Placera dataf<F6>rem<E5>l i sin egen sektion"
+msgstr "Placera dataobjekt i sin egen sektion"
#: common.opt:340
msgid "Defer popping functions args from stack until later"
@@ -13118,7 +13118,7 @@ msgstr "F
#: common.opt:348
msgid "Delete useless null pointer checks"
-msgstr "Tag bort oanv<E4>ndbara nollpekarkontroller"
+msgstr "Tag bort on<F6>diga nollpekarkontroller"
#: common.opt:352
msgid "How often to emit source location at the beginning of line-wrapped diagnostics"
@@ -13214,7 +13214,7 @@ msgstr "Hantera #ident-direktiv"
#: common.opt:464
msgid "Perform conversion of conditional jumps to branchless equivalents"
-msgstr "Utv<F6>r konvertering av villkorliga hopp till grenl<F6>sa motsvarigheter"
+msgstr "Utf<F6>r konvertering av villkorliga hopp till grenl<F6>sa motsvarigheter"
#: common.opt:468
msgid "Perform conversion of conditional jumps to conditional execution"
@@ -13730,15 +13730,15 @@ msgstr "Anv
#: common.opt:1034
msgid "Construct webs and split unrelated uses of single variable"
-msgstr "Kostruera n<E4>t och dela orelaterade anv<E4>ndningar av en enskild variabel"
+msgstr "Konstruera n<E4>t och dela orelaterade anv<E4>ndningar av en enskild variabel"
#: common.opt:1038
msgid "Perform whole program optimizations"
-msgstr "Utf<F6>r optimeringav hela program"
+msgstr "Utf<F6>r optimering av hela program"
#: common.opt:1042
msgid "Assume signed arithmetic overflow wraps around"
-msgstr "Anta spill vid teckenaritmetik sl<E5>r runt"
+msgstr "Anta att spill vid teckenaritmetik sl<E5>r runt"
#: common.opt:1046
msgid "Put zero initialized data in the bss section"
@@ -14044,7 +14044,7 @@ msgstr "negativt heltal implicit konverterat till unsigned typ"
#: c-common.c:975
#, gcc-internal-format
msgid "type-punning to incomplete type might break strict-aliasing rules"
-msgstr "typstampning till ofullst<E4>ndiga typ kan bryta strikta aliasregler"
+msgstr "typstampning till ofullst<E4>ndig typ kan bryta strikta aliasregler"
#: c-common.c:983
#, gcc-internal-format
@@ -14059,7 +14059,7 @@ msgstr "dereferering av en typstampad pekare kan bryta strikta aliasregler"
#: c-common.c:1049
#, gcc-internal-format
msgid "overflow in implicit constant conversion"
-msgstr "spill i implicit constant konvertering"
+msgstr "spill i implicit konstant konvertering"
#: c-common.c:1185
#, gcc-internal-format
@@ -14129,12 +14129,12 @@ msgstr "pekare av typen %<void *%> anv
#: c-common.c:2288
#, gcc-internal-format
msgid "pointer to a function used in arithmetic"
-msgstr "pekare till funktion anv<E4>nd med aritmetik"
+msgstr "pekare till funktion anv<E4>nd i aritmetik"
#: c-common.c:2294
#, gcc-internal-format
msgid "pointer to member function used in arithmetic"
-msgstr "pekare till medlemsfunktion anv<E4>nd med aritmetik"
+msgstr "pekare till medlemsfunktion anv<E4>nd i aritmetik"
#. Common Ada/Pascal programmer's mistake. We always warn
#. about this since it is so bad.
@@ -14196,7 +14196,7 @@ msgstr "tomt intervall angivet"
#: c-common.c:3724
#, gcc-internal-format
msgid "duplicate (or overlapping) case value"
-msgstr "dubbla (eller <F6>verlappand) case-v<E4>rden"
+msgstr "dubbla (eller <F6>verlappande) case-v<E4>rden"
#: c-common.c:3725
#, gcc-internal-format
@@ -14236,7 +14236,7 @@ msgstr "%Jcase-v
#: c-common.c:3844
#, gcc-internal-format
msgid "%Hswitch missing default case"
-msgstr "%Hswitch saknare default-fall"
+msgstr "%Hswitch saknar default-fall"
#. Warn if there are enumerators that don't correspond to
#. case expressions.
@@ -14279,7 +14279,7 @@ msgstr "ok
#: c-common.c:4540
#, gcc-internal-format
msgid "specifying vector types with __attribute__ ((mode)) is deprecated"
-msgstr "det avr<E5>des fr<E5>n att ange vektortyper med __attribute__ ((s<E4>tt))"
+msgstr "att ange vektortyper med __attribute__ ((s<E4>tt)) b<F6>r unvikas"
#: c-common.c:4543
#, gcc-internal-format
@@ -14339,7 +14339,7 @@ msgstr "efterfr
#: c-common.c:4708
#, gcc-internal-format
msgid "requested alignment is not a power of 2"
-msgstr "efterr<E5>gad minnesjustering <E4>r inte en potens av 2"
+msgstr "efterf<E5>gad minnesjustering <E4>r inte en potens av 2"
#: c-common.c:4713
#, gcc-internal-format
@@ -19077,7 +19077,7 @@ msgstr "asm-operand %d st
#: stmt.c:910
#, gcc-internal-format
msgid "use of memory input without lvalue in asm operand %d is deprecated"
-msgstr "anv<E4>ndning av minnesindata utan lv<E4>rde i asm-operand %d undanbedes"
+msgstr "anv<E4>ndning av minnesindata utan lv<E4>rde i asm-operand %d b<F6>r undvikas"
#: stmt.c:1057
#, gcc-internal-format
@@ -19234,22 +19234,22 @@ msgstr "%q+D
#: toplev.c:892 toplev.c:916
#, gcc-internal-format
msgid "%qs is deprecated (declared at %s:%d)"
-msgstr "%qs undanbedes (deklarerad vid %s:%d)"
+msgstr "%qs b<F6>r undvikas (deklarerad vid %s:%d)"
#: toplev.c:920
#, gcc-internal-format
msgid "type is deprecated (declared at %s:%d)"
-msgstr "typen undanbedes (deklarerad vid %s:%d)"
+msgstr "typen b<F6>r undvikas (deklarerad vid %s:%d)"
#: toplev.c:926
#, gcc-internal-format
msgid "%qs is deprecated"
-msgstr "%qs undanbedes"
+msgstr "%qs b<F6>r undvikas"
#: toplev.c:928
#, gcc-internal-format
msgid "type is deprecated"
-msgstr "type undanbedes"
+msgstr "typen b<F6>r undvikas"
#: toplev.c:1095
#, gcc-internal-format
@@ -21694,7 +21694,7 @@ msgstr "argument till %qs m
#: config/rs6000/rs6000.c:7259
#, gcc-internal-format
msgid "unresolved overload for Altivec builtin %qF"
-msgstr "ej uppl<F6>st <F6>verlastning f<F6>r inbyggd Altivec %qF"
+msgstr "ej uppl<F6>st <F6>verlagring f<F6>r inbyggd Altivec %qF"
#: config/rs6000/rs6000.c:7341
#, gcc-internal-format
@@ -21729,7 +21729,7 @@ msgstr "anv
#: config/rs6000/rs6000.c:17299
#, gcc-internal-format
msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
-msgstr "anv<E4>ndning av %<long%> i AltiVec-typer undanbedes, anv<E4>nd %<int%>"
+msgstr "anv<E4>ndning av %<long%> i AltiVec-typer b<F6>r undvikas, anv<E4>nd %<int%>"
#: config/rs6000/rs6000.c:17303
#, gcc-internal-format
@@ -22307,7 +22307,7 @@ msgstr "ingen funktion som st
#: cp/call.c:2800 cp/call.c:2858
#, gcc-internal-format
msgid "call of overloaded %<%D(%A)%> is ambiguous"
-msgstr "anrop av <F6>verlastad %<%D(%A)%> <E4>r tvetydigt"
+msgstr "anrop av <F6>verlagrad %<%D(%A)%> <E4>r tvetydigt"
#. It's no good looking for an overloaded operator() on a
#. pointer-to-member-function.
@@ -22522,7 +22522,7 @@ msgstr "ingen matchande funktion f
#: cp/call.c:5404
#, gcc-internal-format
msgid "call of overloaded %<%s(%A)%> is ambiguous"
-msgstr "anrop av <F6>verlastad %<%s(%A)%> <E4>r tvetydigt"
+msgstr "anrop av <F6>verlagrad %<%s(%A)%> <E4>r tvetydigt"
#: cp/call.c:5428
#, gcc-internal-format
@@ -22602,7 +22602,7 @@ msgstr "using-deklaration %q+D st
#: cp/class.c:1061
#, gcc-internal-format
msgid "%q+#D cannot be overloaded"
-msgstr "%q+#D kan inte <F6>verlastas"
+msgstr "%q+#D kan inte <F6>verlagras"
#: cp/class.c:1062
#, gcc-internal-format
@@ -22880,7 +22880,7 @@ msgstr "spr
#: cp/class.c:5714
#, gcc-internal-format
msgid "cannot resolve overloaded function %qD based on conversion to type %qT"
-msgstr "det g<E5>r inte att l<F6>sa upp <F6>verlastad funktion %qD baserat p<E5> konvertering till typ %qT"
+msgstr "det g<E5>r inte att l<F6>sa upp <F6>verlagrad funktion %qD baserat p<E5> konvertering till typ %qT"
#: cp/class.c:5841
#, gcc-internal-format
@@ -22890,7 +22890,7 @@ msgstr "ingen match som konverterar funktionen %qD till typen %q#T"
#: cp/class.c:5864
#, gcc-internal-format
msgid "converting overloaded function %qD to type %q#T is ambiguous"
-msgstr "konvertering av <F6>verlastad funktion %qD till typ %q#T <E4>r tvetydig"
+msgstr "konvertering av <F6>verlagrad funktion %qD till typ %q#T <E4>r tvetydig"
#: cp/class.c:5890
#, gcc-internal-format
@@ -23022,7 +23022,7 @@ msgstr "objekt %qE med ofullst
#: cp/cvt.c:902
#, gcc-internal-format
msgid "%s cannot resolve address of overloaded function"
-msgstr "%s kan inte l<F6>sa upp adress till <F6>verlastad funktion"
+msgstr "%s kan inte l<F6>sa upp adress till <F6>verlagrad funktion"
#. Only warn when there is no &.
#: cp/cvt.c:908
@@ -23565,7 +23565,7 @@ msgstr "%qT har ingen icke-statisk medlem med namnet %qD"
#: cp/decl.c:4387
#, gcc-internal-format
msgid "braces around scalar initializer for type %qT"
-msgstr "klamrar funt skal<E4>r initierare f<F6>r typen %qT"
+msgstr "klamrar runt skal<E4>r initierare f<F6>r typen %qT"
#: cp/decl.c:4465
#, gcc-internal-format
@@ -24427,7 +24427,7 @@ msgstr "konvertering till %s%s kommer aldrig anv
#: cp/decl.c:9012
#, gcc-internal-format
msgid "ISO C++ prohibits overloading operator ?:"
-msgstr "ISO C++ f<F6>rhindrar <F6>verlastning av operatorn ?:"
+msgstr "ISO C++ f<F6>rhindrar <F6>verlagring av operatorn ?:"
#: cp/decl.c:9015
#, gcc-internal-format
@@ -24848,7 +24848,7 @@ msgstr "kastar NULL, som har heltals-, inte pekartyp"
#: cp/except.c:631 cp/init.c:1929
#, gcc-internal-format
msgid "%qD should never be overloaded"
-msgstr "%qD skall aldrig <F6>verlastas"
+msgstr "%qD skall aldrig <F6>verlagras"
#: cp/except.c:698
#, gcc-internal-format
@@ -25242,7 +25242,7 @@ msgstr "det finns inga argument till %qD som beror p
#: cp/lex.c:651
#, gcc-internal-format
msgid "(if you use %<-fpermissive%>, G++ will accept your code, but allowing the use of an undeclared name is deprecated)"
-msgstr "(om du anv<E4>nder %<-fpermissive%>, kommer G++ acceptera din kod, men det avr<E5>des fr<E5>n att till<E5>ta anv<E4>ndning av ett odeklarerat namn)"
+msgstr "(om du anv<E4>nder %<-fpermissive%>, kommer G++ acceptera din kod, men man b<F6>r undvika att till<E5>ta anv<E4>ndning av ett odeklarerat namn)"
#: cp/mangle.c:2139
#, gcc-internal-format
@@ -25562,7 +25562,7 @@ msgstr "XXX l
#: cp/parser.c:1875
#, gcc-internal-format
msgid "minimum/maximum operators are deprecated"
-msgstr "minimum-/maximumoperatorer undanbedes"
+msgstr "minimum-/maximumoperatorer b<F6>r undvikas"
#: cp/parser.c:1895
#, gcc-internal-format
@@ -25905,7 +25905,7 @@ msgstr "filen tar slut i standardargument"
#: cp/parser.c:12370
#, gcc-internal-format
msgid "deprecated use of default argument for parameter of non-function"
-msgstr "undanbedd anv<E4>ndning av standardargument f<F6>r parametrar till annat <E4>n funktioner"
+msgstr "anv<E4>ndning av standardargument f<F6>r parametrar till annat <E4>n funktioner b<F6>r undvikas"
#: cp/parser.c:12373
#, gcc-internal-format
@@ -26728,7 +26728,7 @@ msgstr "%qT
#: cp/search.c:1847
#, gcc-internal-format
msgid "deprecated covariant return type for %q+#D"
-msgstr "undanbedd kovariant returtyp f<F6>r %q+#D"
+msgstr "kovariant returtyp f<F6>r %q+#D b<F6>r undvikas"
#: cp/search.c:1849 cp/search.c:1864 cp/search.c:1869
#, gcc-internal-format
@@ -27013,7 +27013,7 @@ msgstr "ogiltig anv
#: cp/typeck.c:1502
#, gcc-internal-format
msgid "deprecated conversion from string constant to %qT'"
-msgstr "undanbedd konvertering fr<E5>n str<E4>ngkonstant till %qT'"
+msgstr "konvertering fr<E5>n str<E4>ngkonstant till %qT' b<F6>r undvikas"
#: cp/typeck.c:1613 cp/typeck.c:1961
#, gcc-internal-format
@@ -27155,7 +27155,7 @@ msgstr "f
#: cp/typeck.c:2885 cp/typeck.c:2895
#, gcc-internal-format
msgid "assuming cast to type %qT from overloaded function"
-msgstr "antar typkonvertering till %qT fr<E5>n <F6>verlastad funktion"
+msgstr "antar typkonvertering till %qT fr<E5>n <F6>verlagrad funktion"
#: cp/typeck.c:2963
#, gcc-internal-format
--
1.5.4
From e594a3a1e393679bf86e3a569762c7ef3f1590a5 Mon Sep 17 00:00:00 2001
From: rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun, 22 Apr 2007 01:29:05 +0000
Subject: PR target/28623
* config/alpha/alpha.c (get_unaligned_address): Remove extra_offset
argument; update all callers.
(get_unaligned_offset): New.
* config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use
get_unaligned_address, just pass on the address directly.
(unaligned_extendqidi): Use gen_lowpart instead of open-coding
the subreg in the helper patterns.
(unaligned_extendqidi_le): Use get_unaligned_offset.
(unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise.
(unaligned_extendhidi_be): Likewise.
(unaligned_extendhidi): Tidy.
* config/alpha/alpha-protos.h: Update.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124033 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9b64a40..ac1e992 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,21 @@
2007-04-20 Richard Henderson <rth@redhat.com>
+ PR target/28623
+ * config/alpha/alpha.c (get_unaligned_address): Remove extra_offset
+ argument; update all callers.
+ (get_unaligned_offset): New.
+ * config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use
+ get_unaligned_address, just pass on the address directly.
+ (unaligned_extendqidi): Use gen_lowpart instead of open-coding
+ the subreg in the helper patterns.
+ (unaligned_extendqidi_le): Use get_unaligned_offset.
+ (unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise.
+ (unaligned_extendhidi_be): Likewise.
+ (unaligned_extendhidi): Tidy.
+ * config/alpha/alpha-protos.h: Update.
+
+2007-04-20 Richard Henderson <rth@redhat.com>
+
* config/alpha/linux.h (CPP_SPEC): Undef before redefine.
2007-04-20 Jakub Jelinek <jakub@redhat.com>
@@ -71,20 +87,20 @@
2007-04-04 Richard Henderson <rth@redhat.com>
- PR target/31361
- * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove
+ PR target/31361
+ * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove
v8hi_ftype_v8hi_v2di, v4si_ftype_v4si_v2di. Use like-types for
the variable shift builtins.
- (ix86_expand_builtin): Properly expand the variable shift builtins.
- * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
- operand 2 be TImode.
- * config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32,
+ (ix86_expand_builtin): Properly expand the variable shift builtins.
+ * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
+ operand 2 be TImode.
+ * config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32,
_mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16,
_mm_srli_epi32, _mm_srli_epi64): Turn into macros.
- (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
- (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
- _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
- two-vector shift builtins.
+ (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
+ (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
+ _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
+ two-vector shift builtins.
2007-04-02 Anatoly Sokolov <aesok@post.ru>
@@ -177,7 +193,7 @@
2007-03-12 Richard Henderson <rth@redhat.com>
- PR target/26090
+ PR target/26090
* config/alpha/alpha.c (alpha_elf_select_section): New.
(alpha_elf_unique_section, alpha_elf_section_type_flags): New.
(alpha_elf_select_rtx_section): Force flag_pic true.
diff --git a/gcc/config/alpha/alpha-protos.h b/gcc/config/alpha/alpha-protos.h
index 5dd5734..4ead6b3 100644
--- a/gcc/config/alpha/alpha-protos.h
+++ b/gcc/config/alpha/alpha-protos.h
@@ -51,7 +51,8 @@ extern rtx alpha_legitimize_reload_address (rtx, enum machine_mode,
extern rtx split_small_symbolic_operand (rtx);
extern void get_aligned_mem (rtx, rtx *, rtx *);
-extern rtx get_unaligned_address (rtx, int);
+extern rtx get_unaligned_address (rtx);
+extern rtx get_unaligned_offset (rtx, HOST_WIDE_INT);
extern enum reg_class alpha_preferred_reload_class (rtx, enum reg_class);
extern enum reg_class secondary_reload_class (enum reg_class,
enum machine_mode, rtx, int);
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index b1fdc97..042bfad 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -1544,7 +1544,7 @@ get_aligned_mem (rtx ref, rtx *paligned_mem, rtx *pbitnum)
Add EXTRA_OFFSET to the address we return. */
rtx
-get_unaligned_address (rtx ref, int extra_offset)
+get_unaligned_address (rtx ref)
{
rtx base;
HOST_WIDE_INT offset = 0;
@@ -1564,7 +1564,23 @@ get_unaligned_address (rtx ref, int extra_offset)
if (GET_CODE (base) == PLUS)
offset += INTVAL (XEXP (base, 1)), base = XEXP (base, 0);
- return plus_constant (base, offset + extra_offset);
+ return plus_constant (base, offset);
+}
+
+/* Compute a value X, such that X & 7 == (ADDR + OFS) & 7.
+ X is always returned in a register. */
+
+rtx
+get_unaligned_offset (rtx addr, HOST_WIDE_INT ofs)
+{
+ if (GET_CODE (addr) == PLUS)
+ {
+ ofs += INTVAL (XEXP (addr, 1));
+ addr = XEXP (addr, 0);
+ }
+
+ return expand_simple_binop (Pmode, PLUS, addr, GEN_INT (ofs & 7),
+ NULL_RTX, 1, OPTAB_LIB_WIDEN);
}
/* On the Alpha, all (non-symbolic) constants except zero go into
@@ -2313,7 +2329,7 @@ alpha_expand_mov_nobwx (enum machine_mode mode, rtx *operands)
seq = ((mode == QImode
? gen_unaligned_loadqi
: gen_unaligned_loadhi)
- (subtarget, get_unaligned_address (operands[1], 0),
+ (subtarget, get_unaligned_address (operands[1]),
temp1, temp2));
alpha_set_memflags (seq, operands[1]);
emit_insn (seq);
@@ -2352,7 +2368,7 @@ alpha_expand_mov_nobwx (enum machine_mode mode, rtx *operands)
rtx seq = ((mode == QImode
? gen_unaligned_storeqi
: gen_unaligned_storehi)
- (get_unaligned_address (operands[0], 0),
+ (get_unaligned_address (operands[0]),
operands[1], temp1, temp2, temp3));
alpha_set_memflags (seq, operands[0]);
diff --git a/gcc/config/alpha/alpha.md b/gcc/config/alpha/alpha.md
index d9f9e09..6cc25e7 100644
--- a/gcc/config/alpha/alpha.md
+++ b/gcc/config/alpha/alpha.md
@@ -1607,10 +1607,7 @@
if (unaligned_memory_operand (operands[1], QImode))
{
- rtx seq
- = gen_unaligned_extendqidi (operands[0],
- get_unaligned_address (operands[1], 1));
-
+ rtx seq = gen_unaligned_extendqidi (operands[0], XEXP (operands[1], 0));
alpha_set_memflags (seq, operands[1]);
emit_insn (seq);
DONE;
@@ -1670,9 +1667,7 @@
if (unaligned_memory_operand (operands[1], HImode))
{
- rtx seq
- = gen_unaligned_extendhidi (operands[0],
- get_unaligned_address (operands[1], 2));
+ rtx seq = gen_unaligned_extendhidi (operands[0], XEXP (operands[1], 0));
alpha_set_memflags (seq, operands[1]);
emit_insn (seq);
@@ -1687,12 +1682,13 @@
;; as a pattern saves one instruction. The code is similar to that for
;; the unaligned loads (see below).
;;
-;; Operand 1 is the address + 1 (+2 for HI), operand 0 is the result.
+;; Operand 1 is the address, operand 0 is the result.
(define_expand "unaligned_extendqidi"
[(use (match_operand:QI 0 "register_operand" ""))
(use (match_operand:DI 1 "address_operand" ""))]
""
{
+ operands[0] = gen_lowpart (DImode, operands[0]);
if (WORDS_BIG_ENDIAN)
emit_insn (gen_unaligned_extendqidi_be (operands[0], operands[1]));
else
@@ -1701,48 +1697,40 @@
})
(define_expand "unaligned_extendqidi_le"
- [(set (match_dup 2) (match_operand:DI 1 "address_operand" ""))
- (set (match_dup 3)
- (mem:DI (and:DI (plus:DI (match_dup 2) (const_int -1))
- (const_int -8))))
+ [(set (match_dup 3)
+ (mem:DI (and:DI (match_operand:DI 1 "" "") (const_int -8))))
(set (match_dup 4)
(ashift:DI (match_dup 3)
(minus:DI (const_int 64)
(ashift:DI
(and:DI (match_dup 2) (const_int 7))
(const_int 3)))))
- (set (subreg:DI (match_operand:QI 0 "register_operand" "") 0)
+ (set (match_operand:DI 0 "register_operand" "")
(ashiftrt:DI (match_dup 4) (const_int 56)))]
"! WORDS_BIG_ENDIAN"
{
- operands[2] = gen_reg_rtx (DImode);
+ operands[2] = get_unaligned_offset (operands[1], 1);
operands[3] = gen_reg_rtx (DImode);
operands[4] = gen_reg_rtx (DImode);
})
(define_expand "unaligned_extendqidi_be"
- [(set (match_dup 2) (match_operand:DI 1 "address_operand" ""))
- (set (match_dup 3) (plus:DI (match_dup 2) (const_int -1)))
+ [(set (match_dup 3)
+ (mem:DI (and:DI (match_operand:DI 1 "" "") (const_int -8))))
(set (match_dup 4)
- (mem:DI (and:DI (match_dup 3)
- (const_int -8))))
- (set (match_dup 5) (plus:DI (match_dup 2) (const_int -2)))
- (set (match_dup 6)
- (ashift:DI (match_dup 4)
+ (ashift:DI (match_dup 3)
(ashift:DI
(and:DI
- (plus:DI (match_dup 5) (const_int 1))
+ (plus:DI (match_dup 2) (const_int 1))
(const_int 7))
(const_int 3))))
- (set (subreg:DI (match_operand:QI 0 "register_operand" "") 0)
- (ashiftrt:DI (match_dup 6) (const_int 56)))]
+ (set (match_operand:DI 0 "register_operand" "")
+ (ashiftrt:DI (match_dup 4) (const_int 56)))]
"WORDS_BIG_ENDIAN"
{
- operands[2] = gen_reg_rtx (DImode);
+ operands[2] = get_unaligned_offset (operands[1], -1);
operands[3] = gen_reg_rtx (DImode);
operands[4] = gen_reg_rtx (DImode);
- operands[5] = gen_reg_rtx (DImode);
- operands[6] = gen_reg_rtx (DImode);
})
(define_expand "unaligned_extendhidi"
@@ -1751,17 +1739,16 @@
""
{
operands[0] = gen_lowpart (DImode, operands[0]);
- emit_insn ((WORDS_BIG_ENDIAN
- ? gen_unaligned_extendhidi_be
- : gen_unaligned_extendhidi_le) (operands[0], operands[1]));
+ if (WORDS_BIG_ENDIAN)
+ emit_insn (gen_unaligned_extendhidi_be (operands[0], operands[1]));
+ else
+ emit_insn (gen_unaligned_extendhidi_le (operands[0], operands[1]));
DONE;
})
(define_expand "unaligned_extendhidi_le"
- [(set (match_dup 2) (match_operand:DI 1 "address_operand" ""))
- (set (match_dup 3)
- (mem:DI (and:DI (plus:DI (match_dup 2) (const_int -2))
- (const_int -8))))
+ [(set (match_dup 3)
+ (mem:DI (and:DI (match_operand:DI 1 "" "") (const_int -8))))
(set (match_dup 4)
(ashift:DI (match_dup 3)
(minus:DI (const_int 64)
@@ -1772,34 +1759,28 @@
(ashiftrt:DI (match_dup 4) (const_int 48)))]
"! WORDS_BIG_ENDIAN"
{
- operands[2] = gen_reg_rtx (DImode);
+ operands[2] = get_unaligned_offset (operands[1], 2);
operands[3] = gen_reg_rtx (DImode);
operands[4] = gen_reg_rtx (DImode);
})
(define_expand "unaligned_extendhidi_be"
- [(set (match_dup 2) (match_operand:DI 1 "address_operand" ""))
- (set (match_dup 3) (plus:DI (match_dup 2) (const_int -2)))
+ [(set (match_dup 3)
+ (mem:DI (and:DI (match_operand:DI 1 "" "") (const_int -8))))
(set (match_dup 4)
- (mem:DI (and:DI (match_dup 3)
- (const_int -8))))
- (set (match_dup 5) (plus:DI (match_dup 2) (const_int -3)))
- (set (match_dup 6)
- (ashift:DI (match_dup 4)
+ (ashift:DI (match_dup 3)
(ashift:DI
(and:DI
- (plus:DI (match_dup 5) (const_int 1))
+ (plus:DI (match_dup 2) (const_int 1))
(const_int 7))
(const_int 3))))
(set (match_operand:DI 0 "register_operand" "")
- (ashiftrt:DI (match_dup 6) (const_int 48)))]
+ (ashiftrt:DI (match_dup 4) (const_int 48)))]
"WORDS_BIG_ENDIAN"
{
- operands[2] = gen_reg_rtx (DImode);
+ operands[2] = get_unaligned_offset (operands[1], -1);
operands[3] = gen_reg_rtx (DImode);
operands[4] = gen_reg_rtx (DImode);
- operands[5] = gen_reg_rtx (DImode);
- operands[6] = gen_reg_rtx (DImode);
})
(define_insn "*extxl_const"
@@ -5997,7 +5978,7 @@
else
scratch = gen_rtx_REG (DImode, REGNO (operands[2]));
- addr = get_unaligned_address (operands[1], 0);
+ addr = get_unaligned_address (operands[1]);
operands[0] = gen_rtx_REG (DImode, REGNO (operands[0]));
seq = gen_unaligned_loadqi (operands[0], addr, scratch, operands[0]);
alpha_set_memflags (seq, operands[1]);
@@ -6031,7 +6012,7 @@
else
scratch = gen_rtx_REG (DImode, REGNO (operands[2]));
- addr = get_unaligned_address (operands[1], 0);
+ addr = get_unaligned_address (operands[1]);
operands[0] = gen_rtx_REG (DImode, REGNO (operands[0]));
seq = gen_unaligned_loadhi (operands[0], addr, scratch, operands[0]);
alpha_set_memflags (seq, operands[1]);
@@ -6055,7 +6036,7 @@
}
else
{
- rtx addr = get_unaligned_address (operands[0], 0);
+ rtx addr = get_unaligned_address (operands[0]);
rtx scratch1 = gen_rtx_REG (DImode, REGNO (operands[2]));
rtx scratch2 = gen_rtx_REG (DImode, REGNO (operands[2]) + 1);
rtx scratch3 = scratch1;
@@ -6087,7 +6068,7 @@
}
else
{
- rtx addr = get_unaligned_address (operands[0], 0);
+ rtx addr = get_unaligned_address (operands[0]);
rtx scratch1 = gen_rtx_REG (DImode, REGNO (operands[2]));
rtx scratch2 = gen_rtx_REG (DImode, REGNO (operands[2]) + 1);
rtx scratch3 = scratch1;
--
1.5.4
From 466eaaf81026bf70f09166fd8ac40dcb70682269 Mon Sep 17 00:00:00 2001
From: pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 23 Apr 2007 01:58:55 +0000
Subject: 2007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR middle-end/31448
* expr.c (reduce_to_bit_field_precision): Handle
CONST_INT rtx's.
2007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR middle-end/31448
* gcc.c-torture/execute/pr31448.c: New testcase.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124056 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ac1e992..ad0f1c5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/31448
+ * expr.c (reduce_to_bit_field_precision): Handle
+ CONST_INT rtx's.
+
2007-04-20 Richard Henderson <rth@redhat.com>
PR target/28623
diff --git a/gcc/expr.c b/gcc/expr.c
index 82df27e..c9e2c95 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -8569,7 +8569,14 @@ reduce_to_bit_field_precision (rtx exp, rtx target, tree type)
HOST_WIDE_INT prec = TYPE_PRECISION (type);
if (target && GET_MODE (target) != GET_MODE (exp))
target = 0;
- if (TYPE_UNSIGNED (type))
+ /* For constant values, reduce using build_int_cst_type. */
+ if (GET_CODE (exp) == CONST_INT)
+ {
+ HOST_WIDE_INT value = INTVAL (exp);
+ tree t = build_int_cst_type (type, value);
+ return expand_expr (t, target, VOIDmode, EXPAND_NORMAL);
+ }
+ else if (TYPE_UNSIGNED (type))
{
rtx mask;
if (prec < HOST_BITS_PER_WIDE_INT)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 34fb91d..183dbf6 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/31448
+ * gcc.c-torture/execute/pr31448.c: New testcase.
+
2007-04-20 Jakub Jelinek <jakub@redhat.com>
* gcc.target/i386/ordcmp-1.c: New test.
diff --git a/gcc/testsuite/g++.old-deja/g++.warn/flow1.C b/gcc/testsuite/g++.old-deja/g++.warn/flow1.C
index 61f6a55..e69de29 100644
--- a/gcc/testsuite/g++.old-deja/g++.warn/flow1.C
+++ b/gcc/testsuite/g++.old-deja/g++.warn/flow1.C
@@ -1,14 +0,0 @@
-// { dg-do assemble }
-// { dg-options "-Wreturn-type" }
-// Test that we don't get a warning about flowing off the end.
-
-struct A {
- ~A ();
-};
-
-int f()
-{
- A a1[2];
- A a2[2];
- return 1234567;
-}
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr31448.c b/gcc/testsuite/gcc.c-torture/execute/pr31448.c
new file mode 100644
index 0000000..720ba92
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr31448.c
@@ -0,0 +1,36 @@
+/* PR middle-end/31448, this used to ICE during expand because
+ reduce_to_bit_field_precision was not ready to handle constants. */
+
+typedef struct _st {
+ int iIndex : 24;
+ int iIndex1 : 24;
+} st;
+st *next;
+void g(void)
+{
+ st *next = 0;
+ int nIndx;
+ const static int constreg[] = { 0,};
+ nIndx = 0;
+ next->iIndex = constreg[nIndx];
+}
+void f(void)
+{
+ int nIndx;
+ const static int constreg[] = { 0xFEFEFEFE,};
+ nIndx = 0;
+ next->iIndex = constreg[nIndx];
+ next->iIndex1 = constreg[nIndx];
+}
+int main(void)
+{
+ st a;
+ next = &a;
+ f();
+ if (next->iIndex != 0xFFFEFEFE)
+ __builtin_abort ();
+ if (next->iIndex1 != 0xFFFEFEFE)
+ __builtin_abort ();
+ return 0;
+}
+
--
1.5.4
From e0ca3d1d8a0251f39fc2d7989b00b2d860c4b955 Mon Sep 17 00:00:00 2001
From: doko <doko@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 23 Apr 2007 11:57:40 +0000
Subject: 2007-04-23 Matthias Klose <doko@debian.org>
Backport from mainline:
2007-02-27 Richard Guenther <rguenther@suse.de>
* acinclude.m4: Adjust regular expression for ld version extraction.
* configure: Regenerate.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124064 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 26b10d4..d1c008a 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,11 @@
+2007-04-23 Matthias Klose <doko@debian.org>
+
+ Backport from mainline:
+ 2007-02-27 Richard Guenther <rguenther@suse.de>
+
+ * acinclude.m4: Adjust regular expression for ld version extraction.
+ * configure: Regenerate.
+
2007-02-21 Mark Mitchell <mark@codesourcery.com>
* testsuite/lib/libstdc++.exp (libstdc++_init): Compile testglue
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index 597270f..3c059d4 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -225,7 +225,7 @@ AC_DEFUN([GLIBCXX_CHECK_LINKER_FEATURES], [
if test x"$with_gnu_ld" = x"yes"; then
changequote(,)
ldver=`$LD --version 2>/dev/null | head -1 | \
- sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'`
+ sed -e 's/GNU ld \(version \)\{0,1\}\(([^)]*) \)\{0,1\}\([0-9.][0-9.]*\).*/\3/'`
changequote([,])
glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) [$]3=0; print ([$]1*100+[$]2)*100+[$]3 }'`
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index 6f205dd..0c0a5d3 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -8281,7 +8281,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test x"$with_gnu_ld" = x"yes"; then
ldver=`$LD --version 2>/dev/null | head -1 | \
- sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'`
+ sed -e 's/GNU ld \(version \)\{0,1\}\(([^)]*) \)\{0,1\}\([0-9.][0-9.]*\).*/\3/'`
glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
@@ -53122,7 +53122,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test x"$with_gnu_ld" = x"yes"; then
ldver=`$LD --version 2>/dev/null | head -1 | \
- sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'`
+ sed -e 's/GNU ld \(version \)\{0,1\}\(([^)]*) \)\{0,1\}\([0-9.][0-9.]*\).*/\3/'`
glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
@@ -74456,7 +74456,7 @@ done
if test x"$with_gnu_ld" = x"yes"; then
ldver=`$LD --version 2>/dev/null | head -1 | \
- sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'`
+ sed -e 's/GNU ld \(version \)\{0,1\}\(([^)]*) \)\{0,1\}\([0-9.][0-9.]*\).*/\3/'`
glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
@@ -75953,7 +75953,7 @@ done
if test x"$with_gnu_ld" = x"yes"; then
ldver=`$LD --version 2>/dev/null | head -1 | \
- sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'`
+ sed -e 's/GNU ld \(version \)\{0,1\}\(([^)]*) \)\{0,1\}\([0-9.][0-9.]*\).*/\3/'`
glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
@@ -77326,7 +77326,7 @@ done
if test x"$with_gnu_ld" = x"yes"; then
ldver=`$LD --version 2>/dev/null | head -1 | \
- sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'`
+ sed -e 's/GNU ld \(version \)\{0,1\}\(([^)]*) \)\{0,1\}\([0-9.][0-9.]*\).*/\3/'`
glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
@@ -79486,7 +79486,7 @@ done
if test x"$with_gnu_ld" = x"yes"; then
ldver=`$LD --version 2>/dev/null | head -1 | \
- sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'`
+ sed -e 's/GNU ld \(version \)\{0,1\}\(([^)]*) \)\{0,1\}\([0-9.][0-9.]*\).*/\3/'`
glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
@@ -80305,7 +80305,7 @@ done
if test x"$with_gnu_ld" = x"yes"; then
ldver=`$LD --version 2>/dev/null | head -1 | \
- sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'`
+ sed -e 's/GNU ld \(version \)\{0,1\}\(([^)]*) \)\{0,1\}\([0-9.][0-9.]*\).*/\3/'`
glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
@@ -81680,7 +81680,7 @@ done
if test x"$with_gnu_ld" = x"yes"; then
ldver=`$LD --version 2>/dev/null | head -1 | \
- sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'`
+ sed -e 's/GNU ld \(version \)\{0,1\}\(([^)]*) \)\{0,1\}\([0-9.][0-9.]*\).*/\3/'`
glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
@@ -83447,7 +83447,7 @@ echo "${ECHO_T}$glibcxx_cv_WRITEV" >&6
if test x"$with_gnu_ld" = x"yes"; then
ldver=`$LD --version 2>/dev/null | head -1 | \
- sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'`
+ sed -e 's/GNU ld \(version \)\{0,1\}\(([^)]*) \)\{0,1\}\([0-9.][0-9.]*\).*/\3/'`
glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
@@ -84664,7 +84664,7 @@ _ACEOF
if test x"$with_gnu_ld" = x"yes"; then
ldver=`$LD --version 2>/dev/null | head -1 | \
- sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'`
+ sed -e 's/GNU ld \(version \)\{0,1\}\(([^)]*) \)\{0,1\}\([0-9.][0-9.]*\).*/\3/'`
glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
@@ -85665,7 +85665,7 @@ done
if test x"$with_gnu_ld" = x"yes"; then
ldver=`$LD --version 2>/dev/null | head -1 | \
- sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'`
+ sed -e 's/GNU ld \(version \)\{0,1\}\(([^)]*) \)\{0,1\}\([0-9.][0-9.]*\).*/\3/'`
glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
--
1.5.4
From 7654ffeaa42b90b14b09b0959e8d3aaa63fc71a8 Mon Sep 17 00:00:00 2001
From: tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 23 Apr 2007 14:26:21 +0000
Subject: PR preprocessor/30468:
* mkdeps.c (apply_vpath): Strip successive '/'s if we stripped
'./'.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124067 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index 3b12358..7bf1838 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -1,3 +1,9 @@
+2007-04-23 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/30468:
+ * mkdeps.c (apply_vpath): Strip successive '/'s if we stripped
+ './'.
+
2007-02-13 Release Manager
* GCC 4.1.2 released.
diff --git a/libcpp/mkdeps.c b/libcpp/mkdeps.c
index 3e2c4d8..8aa96c5 100644
--- a/libcpp/mkdeps.c
+++ b/libcpp/mkdeps.c
@@ -1,5 +1,5 @@
/* Dependency generator for Makefile fragments.
- Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2003, 2007 Free Software Foundation, Inc.
Contributed by Zack Weinberg, Mar 2000
This program is free software; you can redistribute it and/or modify it
@@ -141,7 +141,13 @@ apply_vpath (struct deps *d, const char *t)
/* Remove leading ./ in any case. */
while (t[0] == '.' && IS_DIR_SEPARATOR (t[1]))
- t += 2;
+ {
+ t += 2;
+ /* If we removed a leading ./, then also remove any /s after the
+ first. */
+ while (IS_DIR_SEPARATOR (t[0]))
+ ++t;
+ }
return t;
}
--
1.5.4
From 90acb1b21a4c657c42e4b6167055dd32f237f765 Mon Sep 17 00:00:00 2001
From: krebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 24 Apr 2007 12:15:11 +0000
Subject: 2007-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
PR target/31641
* config/s390/s390.c (s390_expand_setmem): Don't ICE for constant length
argument of 0 for memset.
(s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
unsigned shift instead of the signed variant.
2007-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
PR target/31641
* gcc.c-torture/compile/pr31641.c: New testcase.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124100 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ad0f1c5..869f518 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2007-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ PR target/31641
+ * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant length
+ argument of 0 for memset.
+ (s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
+ unsigned shift instead of the signed variant.
+
2007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR middle-end/31448
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index c898378..290a3d9 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -3540,7 +3540,7 @@ s390_expand_movmem (rtx dst, rtx src, rtx len)
if (temp != count)
emit_move_insn (count, temp);
- temp = expand_binop (mode, ashr_optab, count, GEN_INT (8), blocks, 1, 0);
+ temp = expand_binop (mode, lshr_optab, count, GEN_INT (8), blocks, 1, 0);
if (temp != blocks)
emit_move_insn (blocks, temp);
@@ -3577,10 +3577,12 @@ s390_expand_movmem (rtx dst, rtx src, rtx len)
void
s390_expand_setmem (rtx dst, rtx len, rtx val)
{
- gcc_assert (GET_CODE (len) != CONST_INT || INTVAL (len) > 0);
+ if (GET_CODE (len) == CONST_INT && INTVAL (len) == 0)
+ return;
+
gcc_assert (GET_CODE (val) == CONST_INT || GET_MODE (val) == QImode);
- if (GET_CODE (len) == CONST_INT && INTVAL (len) <= 257)
+ if (GET_CODE (len) == CONST_INT && INTVAL (len) > 0 && INTVAL (len) <= 257)
{
if (val == const0_rtx && INTVAL (len) <= 256)
emit_insn (gen_clrmem_short (dst, GEN_INT (INTVAL (len) - 1)));
@@ -3654,7 +3656,7 @@ s390_expand_setmem (rtx dst, rtx len, rtx val)
if (temp != count)
emit_move_insn (count, temp);
- temp = expand_binop (mode, ashr_optab, count, GEN_INT (8), blocks, 1, 0);
+ temp = expand_binop (mode, lshr_optab, count, GEN_INT (8), blocks, 1, 0);
if (temp != blocks)
emit_move_insn (blocks, temp);
@@ -3746,7 +3748,7 @@ s390_expand_cmpmem (rtx target, rtx op0, rtx op1, rtx len)
if (temp != count)
emit_move_insn (count, temp);
- temp = expand_binop (mode, ashr_optab, count, GEN_INT (8), blocks, 1, 0);
+ temp = expand_binop (mode, lshr_optab, count, GEN_INT (8), blocks, 1, 0);
if (temp != blocks)
emit_move_insn (blocks, temp);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 183dbf6..308c3db 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ PR target/31641
+ * gcc.c-torture/compile/pr31641.c: New testcase.
+
2007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR middle-end/31448
--
1.5.4
From e7f3db5a88be9d94beebb3de7ab50b02f0d0ccd1 Mon Sep 17 00:00:00 2001
From: rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 25 Apr 2007 16:10:31 +0000
Subject: 2007-04-25 Richard Guenther <rguenther@suse.de>
PR tree-optimization/31698
* g++.dg/other/pr31698.C: New testcase.
Backport from mainline:
2006-10-13 Richard Guenther <rguenther@suse.de>
PR tree-optimization/29446
* tree-vrp.c (fix_equivalence_set): Remove.
(extract_range_from_assert): Do not call fix_equivalence_set.
(debug_value_range): Print a newline.
(compare_name_with_value): For equivalence sets with
inconsistent value ranges conservatively bail out.
(compare_names): Likewise.
* gcc.dg/torture/pr29446.c: New testcase.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124158 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 869f518..c8f2c4b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,16 @@
+2007-04-25 Richard Guenther <rguenther@suse.de>
+
+ Backport from mainline:
+ 2006-10-13 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/29446
+ * tree-vrp.c (fix_equivalence_set): Remove.
+ (extract_range_from_assert): Do not call fix_equivalence_set.
+ (debug_value_range): Print a newline.
+ (compare_name_with_value): For equivalence sets with
+ inconsistent value ranges conservatively bail out.
+ (compare_names): Likewise.
+
2007-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
PR target/31641
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 308c3db..6091812 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,14 @@
+2007-04-25 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/31698
+ * g++.dg/other/pr31698.C: New testcase.
+
+ Backport from mainline:
+ 2006-10-13 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/29446
+ * gcc.dg/torture/pr29446.c: New testcase.
+
2007-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
PR target/31641
diff --git a/gcc/testsuite/g++.dg/other/pr31698.C b/gcc/testsuite/g++.dg/other/pr31698.C
new file mode 100644
index 0000000..b231ec0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/pr31698.C
@@ -0,0 +1,47 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+typedef long unsigned int size_t;
+
+template<class X>
+class A {
+public:
+ typedef size_t tySize;
+ inline void ResizeFast(const tySize & nSize) {
+ if((nSize > m_nAllocSize) && (nSize > 0)) {
+ m_nAllocSize = nSize;
+ }
+ }
+ inline void ResizeFast(const int & nSize) {
+ ResizeFast((tySize) nSize);
+ }
+ tySize m_nAllocSize;
+};
+
+class B {
+public:
+ B *GetNext(void) { };
+};
+
+class C {
+public:
+ inline void Resize(void) {
+ array.ResizeFast(0);
+ }
+ A<int> array;
+};
+
+class D {
+private:
+ void Do(B * pB, C * pC);
+};
+
+void D::Do(B * pB, C * pC)
+{
+ pC->Resize();
+ B * pL = 0;
+ for(pL = pB;
+ pL != 0;
+ pL = pL->GetNext());
+}
+
diff --git a/gcc/testsuite/gcc.dg/torture/pr29446.c b/gcc/testsuite/gcc.dg/torture/pr29446.c
new file mode 100644
index 0000000..5571c71
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr29446.c
@@ -0,0 +1,32 @@
+/* { dg-do compile } */
+
+void f(_Bool D917, int j0, int ubound1, int ubound5)
+{
+ int i, j = j0;
+ int (*abc)[3];
+ i = 1;
+ while (1)
+ {
+ if (j <= 3)
+ while (1)
+ {
+ if (i != j)
+ {
+ if (ubound1 <= 0)
+ return;
+ (*abc)[1] = 0;
+ }
+ else
+ {
+ if (j > ubound1)
+ return;
+ if (ubound5 <= 0)
+ return;
+ }
+ j = j + 1;
+ if (D917)
+ break;
+ }
+ i = i + 1;
+ }
+}
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index 9cc021e..37fd274 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -653,81 +653,6 @@ range_includes_zero_p (value_range_t *vr)
}
-/* When extracting ranges from X_i = ASSERT_EXPR <Y_j, pred>, we will
- initially consider X_i and Y_j equivalent, so the equivalence set
- of Y_j is added to the equivalence set of X_i. However, it is
- possible to have a chain of ASSERT_EXPRs whose predicates are
- actually incompatible. This is usually the result of nesting of
- contradictory if-then-else statements. For instance, in PR 24670:
-
- count_4 has range [-INF, 63]
-
- if (count_4 != 0)
- {
- count_19 = ASSERT_EXPR <count_4, count_4 != 0>
- if (count_19 > 63)
- {
- count_18 = ASSERT_EXPR <count_19, count_19 > 63>
- if (count_18 <= 63)
- ...
- }
- }
-
- Notice that 'if (count_19 > 63)' is trivially false and will be
- folded out at the end. However, during propagation, the flowgraph
- is not cleaned up and so, VRP will evaluate predicates more
- predicates than necessary, so it must support these
- inconsistencies. The problem here is that because of the chaining
- of ASSERT_EXPRs, the equivalency set for count_18 includes count_4.
- Since count_4 has an incompatible range, we ICE when evaluating the
- ranges in the equivalency set. So, we need to remove count_4 from
- it. */
-
-static void
-fix_equivalence_set (value_range_t *vr_p)
-{
- bitmap_iterator bi;
- unsigned i;
- bitmap e = vr_p->equiv;
- bitmap to_remove = BITMAP_ALLOC (NULL);
-
- /* Only detect inconsistencies on numeric ranges. */
- if (vr_p->type == VR_VARYING
- || vr_p->type == VR_UNDEFINED
- || symbolic_range_p (vr_p))
- return;
-
- EXECUTE_IF_SET_IN_BITMAP (e, 0, i, bi)
- {
- value_range_t *equiv_vr = vr_value[i];
-
- if (equiv_vr->type == VR_VARYING
- || equiv_vr->type == VR_UNDEFINED
- || symbolic_range_p (equiv_vr))
- continue;
-
- if (equiv_vr->type == VR_RANGE
- && vr_p->type == VR_RANGE
- && !value_ranges_intersect_p (vr_p, equiv_vr))
- bitmap_set_bit (to_remove, i);
- else if ((equiv_vr->type == VR_RANGE && vr_p->type == VR_ANTI_RANGE)
- || (equiv_vr->type == VR_ANTI_RANGE && vr_p->type == VR_RANGE))
- {
- /* A range and an anti-range have an empty intersection if
- their end points are the same. FIXME,
- value_ranges_intersect_p should handle this
- automatically. */
- if (compare_values (equiv_vr->min, vr_p->min) == 0
- && compare_values (equiv_vr->max, vr_p->max) == 0)
- bitmap_set_bit (to_remove, i);
- }
- }
-
- bitmap_and_compl_into (vr_p->equiv, to_remove);
- BITMAP_FREE (to_remove);
-}
-
-
/* Extract value range information from an ASSERT_EXPR EXPR and store
it in *VR_P. */
@@ -1024,7 +949,7 @@ extract_range_from_assert (value_range_t *vr_p, tree expr)
|| var_vr->type == VR_UNDEFINED
|| symbolic_range_p (vr_p)
|| symbolic_range_p (var_vr))
- goto done;
+ return;
if (var_vr->type == VR_RANGE && vr_p->type == VR_RANGE)
{
@@ -1068,11 +993,6 @@ extract_range_from_assert (value_range_t *vr_p, tree expr)
&& compare_values (var_vr->max, vr_p->max) == 0)
set_value_range_to_varying (vr_p);
}
-
- /* Remove names from the equivalence set that have ranges
- incompatible with VR_P. */
-done:
- fix_equivalence_set (vr_p);
}
@@ -2157,6 +2077,7 @@ void
debug_value_range (value_range_t *vr)
{
dump_value_range (stderr, vr);
+ fprintf (stderr, "\n");
}
@@ -3271,8 +3192,16 @@ compare_name_with_value (enum tree_code comp, tree var, tree val)
t = compare_range_with_value (comp, &equiv_vr, val);
if (t)
{
- /* All the ranges should compare the same against VAL. */
- gcc_assert (retval == NULL || t == retval);
+ /* If we get different answers from different members
+ of the equivalence set this check must be in a dead
+ code region. Folding it to a trap representation
+ would be correct here. For now just return don't-know. */
+ if (retval != NULL
+ && t != retval)
+ {
+ retval = NULL_TREE;
+ break;
+ }
retval = t;
}
}
@@ -3354,9 +3283,17 @@ compare_names (enum tree_code comp, tree n1, tree n2)
t = compare_ranges (comp, &vr1, &vr2);
if (t)
{
- /* All the ranges in the equivalent sets should compare
- the same. */
- gcc_assert (retval == NULL || t == retval);
+ /* If we get different answers from different members
+ of the equivalence set this check must be in a dead
+ code region. Folding it to a trap representation
+ would be correct here. For now just return don't-know. */
+ if (retval != NULL
+ && t != retval)
+ {
+ bitmap_clear_bit (e1, SSA_NAME_VERSION (n1));
+ bitmap_clear_bit (e2, SSA_NAME_VERSION (n2));
+ return NULL_TREE;
+ }
retval = t;
}
}
--
1.5.4
From 1d3e2e8c1cf302f074570e27f788a095f54d6763 Mon Sep 17 00:00:00 2001
From: aesok <aesok@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 25 Apr 2007 18:52:21 +0000
Subject: PR target/18989
* config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124162 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c8f2c4b..b10ffc3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-25 Anatoly Sokolov <aesok@post.ru>
+
+ PR target/18989
+ * config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine.
+
2007-04-25 Richard Guenther <rguenther@suse.de>
Backport from mainline:
diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h
index 0c2852d..6975d01 100644
--- a/gcc/config/avr/avr.h
+++ b/gcc/config/avr/avr.h
@@ -690,7 +690,11 @@ sprintf (STRING, "*.%s%lu", PREFIX, (unsigned long)(NUM))
#define ASM_OUTPUT_SKIP(STREAM, N) \
fprintf (STREAM, "\t.skip %lu,0\n", (unsigned long)(N))
-#define ASM_OUTPUT_ALIGN(STREAM, POWER)
+#define ASM_OUTPUT_ALIGN(STREAM, POWER) \
+ do { \
+ if ((POWER) > 1) \
+ fprintf (STREAM, "\t.p2align\t%d\n", POWER); \
+ } while (0)
#define CASE_VECTOR_MODE HImode
--
1.5.4
From be32eb4150aebf114ede22122d3550a84d312c55 Mon Sep 17 00:00:00 2001
From: pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 27 Apr 2007 01:37:42 +0000
Subject: 2007-04-26 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR C++/30016
* typeck.c (build_reinterpret_cast_1): Only allow conversion to
integeral types from vectors types.
2007-04-26 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR C++/30016
* g++.dg/ext/vector6.C: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124210 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 12fe6bc..d6a4024 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2007-04-26 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR C++/30016
+ * typeck.c (build_reinterpret_cast_1): Only allow conversion to
+ integeral types from vectors types.
+
2007-04-17 Simon Martin <simartin@users.sourceforge.net>
PR c++/31517
diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c
index 990f03c..a093527 100644
--- a/gcc/cp/typeck.c
+++ b/gcc/cp/typeck.c
@@ -5094,7 +5094,7 @@ build_reinterpret_cast_1 (tree type, tree expr, bool c_cast_p,
}
else if (TREE_CODE (type) == VECTOR_TYPE)
return fold_if_not_in_template (convert_to_vector (type, expr));
- else if (TREE_CODE (intype) == VECTOR_TYPE)
+ else if (TREE_CODE (intype) == VECTOR_TYPE && INTEGRAL_TYPE_P (type))
return fold_if_not_in_template (convert_to_integer (type, expr));
else
{
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 6091812..18b8712 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-26 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR C++/30016
+ * g++.dg/ext/vector6.C: New test.
+
2007-04-25 Richard Guenther <rguenther@suse.de>
PR tree-optimization/31698
diff --git a/gcc/testsuite/g++.dg/ext/vector6.C b/gcc/testsuite/g++.dg/ext/vector6.C
new file mode 100644
index 0000000..9caf8c2
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/vector6.C
@@ -0,0 +1,12 @@
+// { dg-options "" }
+// { dg-do compile }
+// C++/30016, we were allowing conversion between vector types
+// and union types which is invalid.
+
+typedef float __v_4F __attribute__ ((vector_size (16)));
+typedef union {__v_4F v; float a[4];} __v4F;
+void f(void)
+{
+ __v_4F b;
+ (reinterpret_cast<__v4F>(b).a)[1] = 1; // { dg-error "" }
+}
--
1.5.4
From 14454c199d13c3af27409f107239d44956e09532 Mon Sep 17 00:00:00 2001
From: ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 27 Apr 2007 04:45:53 +0000
Subject: ./:
PR target/28675
* reload.c (find_reloads_subreg_address): If the address was valid
in the original mode but not in the new mode, reload the whole
address.
testsuite/:
PR target/28675
* gcc.c-torture/compile/pr28675.c: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124213 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b10ffc3..ebef74e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2007-04-26 Ian Lance Taylor <iant@google.com>
+
+ PR target/28675
+ * reload.c (find_reloads_subreg_address): If the address was valid
+ in the original mode but not in the new mode, reload the whole
+ address.
+
2007-04-25 Anatoly Sokolov <aesok@post.ru>
PR target/18989
diff --git a/gcc/reload.c b/gcc/reload.c
index 39a2f06..0e6c62b 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -5962,6 +5962,8 @@ find_reloads_subreg_address (rtx x, int force_replace, int opnum,
unsigned outer_size = GET_MODE_SIZE (GET_MODE (x));
unsigned inner_size = GET_MODE_SIZE (GET_MODE (SUBREG_REG (x)));
int offset;
+ enum machine_mode orig_mode = GET_MODE (tem);
+ int reloaded;
/* For big-endian paradoxical subregs, SUBREG_BYTE does not
hold the correct (negative) byte offset. */
@@ -5994,9 +5996,28 @@ find_reloads_subreg_address (rtx x, int force_replace, int opnum,
return x;
}
- find_reloads_address (GET_MODE (tem), &tem, XEXP (tem, 0),
- &XEXP (tem, 0), opnum, type,
- ind_levels, insn);
+ reloaded = find_reloads_address (GET_MODE (tem), &tem,
+ XEXP (tem, 0), &XEXP (tem, 0),
+ opnum, type, ind_levels, insn);
+
+ /* For some processors an address may be valid in the
+ original mode but not in a smaller mode. For
+ example, ARM accepts a scaled index register in
+ SImode but not in HImode. find_reloads_address
+ assumes that we pass it a valid address, and doesn't
+ force a reload. This will probably be fine if
+ find_reloads_address finds some reloads. But if it
+ doesn't find any, then we may have just converted a
+ valid address into an invalid one. Check for that
+ here. */
+ if (reloaded != 1
+ && strict_memory_address_p (orig_mode, XEXP (tem, 0))
+ && !strict_memory_address_p (GET_MODE (tem),
+ XEXP (tem, 0)))
+ push_reload (XEXP (tem, 0), NULL_RTX, &XEXP (tem, 0), (rtx*) 0,
+ MODE_BASE_REG_CLASS (GET_MODE (tem)),
+ GET_MODE (XEXP (tem, 0)), VOIDmode, 0, 0,
+ opnum, type);
/* If this is not a toplevel operand, find_reloads doesn't see
this substitution. We have to emit a USE of the pseudo so
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 18b8712..0d0f20c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-26 Ian Lance Taylor <iant@google.com>
+
+ PR target/28675
+ * gcc.c-torture/compile/pr28675.c: New test.
+
2007-04-26 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR C++/30016
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr28675.c b/gcc/testsuite/gcc.c-torture/compile/pr28675.c
new file mode 100644
index 0000000..0d78353
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr28675.c
@@ -0,0 +1,38 @@
+struct fb_cmap {
+ unsigned int start;
+ unsigned int len;
+ unsigned short *red;
+ unsigned short *green;
+ unsigned short *blue;
+ unsigned short *transp;
+};
+
+typedef struct {
+ int r;
+ int g;
+ int b;
+ int a;
+} rgba_t;
+
+static unsigned int cmap_len;
+
+extern unsigned int red_len, green_len, blue_len, alpha_len;
+extern struct fb_cmap fb_cmap;
+extern rgba_t *clut;
+extern int fb_set_cmap(void);
+
+void directcolor_update_cmap(void)
+{
+ unsigned int i;
+
+ for (i = 0; i < cmap_len; i++) {
+ if (i < red_len)
+ fb_cmap.red[i] = clut[i].r;
+ if (i < green_len)
+ fb_cmap.green[i] = clut[i].g;
+ if (i < blue_len)
+ fb_cmap.blue[i] = clut[i].b;
+ if (fb_cmap.transp && i < alpha_len)
+ fb_cmap.transp[i] = clut[i].a;
+ }
+}
--
1.5.4
From ed868c9387bb418b85f80e23d6a4cc29f90fb37d Mon Sep 17 00:00:00 2001
From: uweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 27 Apr 2007 13:59:21 +0000
Subject: PR middle-end/30761
* reload1.c (eliminate_regs_in_insn): In the single_set special
case, attempt to re-recognize the insn before falling back to
having reload fix it up.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124219 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ebef74e..da01b09 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2007-04-27 Ulrich Weigand <uweigand@de.ibm.com>
+
+ PR middle-end/30761
+ * reload1.c (eliminate_regs_in_insn): In the single_set special
+ case, attempt to re-recognize the insn before falling back to
+ having reload fix it up.
+
2007-04-26 Ian Lance Taylor <iant@google.com>
PR target/28675
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 9ef2f6f..861cbaa 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -3060,35 +3060,15 @@ eliminate_regs_in_insn (rtx insn, int replace)
if (GET_CODE (XEXP (plus_cst_src, 0)) == SUBREG)
to_rtx = gen_lowpart (GET_MODE (XEXP (plus_cst_src, 0)),
to_rtx);
- if (offset == 0)
- {
- int num_clobbers;
- /* We assume here that if we need a PARALLEL with
- CLOBBERs for this assignment, we can do with the
- MATCH_SCRATCHes that add_clobbers allocates.
- There's not much we can do if that doesn't work. */
- PATTERN (insn) = gen_rtx_SET (VOIDmode,
- SET_DEST (old_set),
- to_rtx);
- num_clobbers = 0;
- INSN_CODE (insn) = recog (PATTERN (insn), insn, &num_clobbers);
- if (num_clobbers)
- {
- rtvec vec = rtvec_alloc (num_clobbers + 1);
-
- vec->elem[0] = PATTERN (insn);
- PATTERN (insn) = gen_rtx_PARALLEL (VOIDmode, vec);
- add_clobbers (PATTERN (insn), INSN_CODE (insn));
- }
- gcc_assert (INSN_CODE (insn) >= 0);
- }
/* If we have a nonzero offset, and the source is already
a simple REG, the following transformation would
increase the cost of the insn by replacing a simple REG
with (plus (reg sp) CST). So try only when we already
had a PLUS before. */
- else if (plus_src)
+ if (offset == 0 || plus_src)
{
+ rtx new_src = plus_constant (to_rtx, offset);
+
new_body = old_body;
if (! replace)
{
@@ -3099,8 +3079,20 @@ eliminate_regs_in_insn (rtx insn, int replace)
PATTERN (insn) = new_body;
old_set = single_set (insn);
- XEXP (SET_SRC (old_set), 0) = to_rtx;
- XEXP (SET_SRC (old_set), 1) = GEN_INT (offset);
+ /* First see if this insn remains valid when we make the
+ change. If not, try to replace the whole pattern with
+ a simple set (this may help if the original insn was a
+ PARALLEL that was only recognized as single_set due to
+ REG_UNUSED notes). If this isn't valid either, keep
+ the INSN_CODE the same and let reload fix it up. */
+ if (!validate_change (insn, &SET_SRC (old_set), new_src, 0))
+ {
+ rtx new_pat = gen_rtx_SET (VOIDmode,
+ SET_DEST (old_set), new_src);
+
+ if (!validate_change (insn, &PATTERN (insn), new_pat, 0))
+ SET_SRC (old_set) = new_src;
+ }
}
else
break;
--
1.5.4
From f772e75878d47bfddf0f1610b5ea48ef65c6e815 Mon Sep 17 00:00:00 2001
From: bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 28 Apr 2007 23:59:20 +0000
Subject: * reload.c (combine_reloads): When trying to use a dying register,
check whether it's uninitialized and don't use if so.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124268 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index da01b09..0ef14fa 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * reload.c (combine_reloads): When trying to use a dying register,
+ check whether it's uninitialized and don't use if so.
+
2007-04-27 Ulrich Weigand <uweigand@de.ibm.com>
PR middle-end/30761
diff --git a/gcc/reload.c b/gcc/reload.c
index 0e6c62b..d775259 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -1867,7 +1867,12 @@ combine_reloads (void)
|| ! (TEST_HARD_REG_BIT
(reg_class_contents[(int) rld[secondary_out].class],
REGNO (XEXP (note, 0)))))))
- && ! fixed_regs[REGNO (XEXP (note, 0))])
+ && ! fixed_regs[REGNO (XEXP (note, 0))]
+ /* Check that we don't use a hardreg for an uninitialized
+ pseudo. See also find_dummy_reload(). */
+ && (ORIGINAL_REGNO (XEXP (note, 0)) < FIRST_PSEUDO_REGISTER
+ || ! bitmap_bit_p (ENTRY_BLOCK_PTR->il.rtl->global_live_at_end,
+ ORIGINAL_REGNO (XEXP (note, 0)))))
{
rld[output_reload].reg_rtx
= gen_rtx_REG (rld[output_reload].outmode,
--
1.5.4
From 074f0ce76affed2aaaf2f6788b59e478f49fb73b Mon Sep 17 00:00:00 2001
From: pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun, 29 Apr 2007 06:30:53 +0000
Subject: 2007-04-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR C++/30221
* decl.c (reshape_init_r): Don't reshape the first element if it
is a pointer to member function.
2007-04-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR C++/30221
* g++.dg/init/ptrfn2.C: New test.
* g++.dg/init/ptrfn3.C: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124273 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index d6a4024..c330b42 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2007-04-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR C++/30221
+ * decl.c (reshape_init_r): Don't reshape the first element if it
+ is a pointer to member function.
+
2007-04-26 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR C++/30016
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 857baba..3b9c470 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -4510,19 +4510,24 @@ reshape_init_r (tree type, reshape_iter *d, bool first_initializer_p)
{
if (TREE_CODE (init) == CONSTRUCTOR)
{
+ if (TREE_TYPE (init) && TYPE_PTRMEMFUNC_P (TREE_TYPE (init)))
+ /* There is no need to reshape pointer-to-member function
+ initializers, as they are always constructed correctly
+ by the front end. */
+ ;
+ else if (COMPOUND_LITERAL_P (init))
/* For a nested compound literal, there is no need to reshape since
brace elision is not allowed. Even if we decided to allow it,
we should add a call to reshape_init in finish_compound_literal,
before calling digest_init, so changing this code would still
not be necessary. */
- if (!COMPOUND_LITERAL_P (init))
+ gcc_assert (!BRACE_ENCLOSED_INITIALIZER_P (init));
+ else
{
++d->cur;
gcc_assert (BRACE_ENCLOSED_INITIALIZER_P (init));
return reshape_init (type, init);
}
- else
- gcc_assert (!BRACE_ENCLOSED_INITIALIZER_P (init));
}
warning (OPT_Wmissing_braces, "missing braces around initializer for %qT",
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 0d0f20c..b330ef6 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2007-04-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR C++/30221
+ * g++.dg/init/ptrfn2.C: New test.
+ * g++.dg/init/ptrfn3.C: New test.
+
2007-04-26 Ian Lance Taylor <iant@google.com>
PR target/28675
diff --git a/gcc/testsuite/g++.dg/init/ptrfn2.C b/gcc/testsuite/g++.dg/init/ptrfn2.C
new file mode 100644
index 0000000..0ca922b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/ptrfn2.C
@@ -0,0 +1,14 @@
+// { dg-options "" }
+// { dg-do compile }
+// C++/30221
+// We would ICE while trying to reshape the pointer to
+// member function element which is not needed.
+
+
+class abstract {};
+typedef void (abstract::*fptr1) (short & s ) const;
+struct s {};
+s array[] =
+{
+ (fptr1)0
+};// { dg-error "" }
diff --git a/gcc/testsuite/g++.dg/init/ptrfn3.C b/gcc/testsuite/g++.dg/init/ptrfn3.C
new file mode 100644
index 0000000..9600850
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/ptrfn3.C
@@ -0,0 +1,14 @@
+// { dg-options "" }
+// { dg-do compile }
+// C++/30221
+// We would ICE while trying to reshape the pointer to
+// member function element which is not needed.
+
+
+class abstract {};
+typedef void (abstract::*fptr1) (short & s ) const;
+struct s {fptr1 f;};
+s array[] =
+{
+ (fptr1)0
+};
--
1.5.4
From eff7d6f60f66080cadd8fdc11559467d197edd24 Mon Sep 17 00:00:00 2001
From: ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 4 May 2007 15:05:42 +0000
Subject: * demangle.h: Change license to LGPL + exception.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124426 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/include/ChangeLog b/include/ChangeLog
index 8d17f23..30184c9 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,7 @@
+2007-05-04 Mark Mitchell <mark@codesourcery.com>
+
+ * demangle.h: Change license to LGPL + exception.
+
2007-02-13 Release Manager
* GCC 4.1.2 released.
diff --git a/include/demangle.h b/include/demangle.h
index 304a4c4..c050e1c 100644
--- a/include/demangle.h
+++ b/include/demangle.h
@@ -1,21 +1,30 @@
/* Defs for interface to demanglers.
Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002,
- 2003, 2004 Free Software Foundation, Inc.
+ 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
- This program 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 2, or (at your option)
- any later version.
-
- This program 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 program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street - Fifth Floor,
- Boston, MA 02110-1301, USA. */
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License
+ as published by the Free Software Foundation; either version 2, or
+ (at your option) any later version.
+
+ In addition to the permissions in the GNU Library General Public
+ License, the Free Software Foundation gives you unlimited
+ permission to link the compiled version of this file into
+ combinations with other programs, and to distribute those
+ combinations without any restriction coming from the use of this
+ file. (The Library Public License restrictions do apply in other
+ respects; for example, they cover modification of the file, and
+ distribution when not linked into a combined executable.)
+
+ This program 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+ 02110-1301, USA. */
#if !defined (DEMANGLE_H)
--
1.5.4
From 067ddcbed02da30b54c8da29e7be50049abbd0ed Mon Sep 17 00:00:00 2001
From: krebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 8 May 2007 13:00:35 +0000
Subject: 2007-05-08 Andreas Krebbel <krebbel1@de.ibm.com>
* loop.c (move_movables): Remove REG_EQUAL notes for conditional
invariants as well.
2007-05-08 Andreas Krebbel <krebbel1@de.ibm.com>
* gcc.dg/20070507-1.c: New testcase.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124547 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0ef14fa..da84777 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-05-08 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * loop.c (move_movables): Remove REG_EQUAL notes for conditional
+ invariants as well.
+
2007-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
* reload.c (combine_reloads): When trying to use a dying register,
diff --git a/gcc/loop.c b/gcc/loop.c
index 8974972..43c3d92 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -2561,7 +2561,7 @@ move_movables (struct loop *loop, struct loop_movables *movables,
like this as a result of record_jump_cond. */
if ((temp = find_reg_note (i1, REG_EQUAL, NULL_RTX))
- && ! loop_invariant_p (loop, XEXP (temp, 0)))
+ && loop_invariant_p (loop, XEXP (temp, 0)) != 1)
remove_note (i1, temp);
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b330ef6..54769f3 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2007-05-08 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * gcc.dg/20070507-1.c: New testcase.
+
2007-04-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR C++/30221
diff --git a/gcc/testsuite/gcc.dg/20070507-1.c b/gcc/testsuite/gcc.dg/20070507-1.c
new file mode 100644
index 0000000..5d29d07
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20070507-1.c
@@ -0,0 +1,103 @@
+/* This failed on s390x due to bug in loop.c.
+ loop.c failed to remove a REG_EQUAL note when
+ hoisting an insn from a loop body. */
+
+/* { dg-options "-O3 -fPIC" } */
+/* { dg-do run } */
+
+typedef __SIZE_TYPE__ size_t;
+int memcmp(const void *s1, const void *s2, size_t n);
+
+typedef struct
+{
+ char name[30];
+ int a;
+} LOCAL;
+
+int global = 0;
+int sy = 1;
+int subroutine_offset;
+
+LOCAL local = { "local", 0 };
+LOCAL keywords = { "keywords", 1 };
+int local_table = 0;
+int keywords_table = 0;
+
+void __attribute__((noinline)) bar (char *p_buffer)
+{
+ p_buffer[255] = 1;
+}
+
+int __attribute__((noinline)) foo (char *p_str1)
+{
+ global = 1;
+ return 1;
+}
+
+int __attribute__((noinline)) loop_next (int *p_table, char *p_table_head)
+{
+ static loop_next = 0;
+
+ if (loop_next == 1)
+ return 1;
+
+ loop_next = 1;
+ return 0;
+}
+
+int
+main ()
+{
+ char buffer[256];
+ int ende = 0;
+ int index;
+ int local_base = 2;
+
+ keywords.a = 1;
+ for (sy = 0;; sy++)
+ {
+ for (index = 1;;)
+ {
+ bar (buffer);
+ if (buffer[sy] != 0)
+ {
+ ende = 1;
+ break;
+ };
+ if (foo (buffer))
+ {
+ keywords.a += index - 1;
+ break;
+ }
+ index++;
+ }
+ if (ende)
+ break;
+ }
+
+ subroutine_offset = 0;
+
+ for (;;)
+ {
+ if (loop_next (&keywords_table, (char*)&keywords))
+ break;
+
+ if ((!memcmp (keywords.name, "+++", 3)))
+ local_base = 100;
+ else
+ local_base = 0;
+
+ if ((!memcmp (keywords.name, "+++", 3)))
+ subroutine_offset += local_table;
+
+ for (;;)
+ {
+ if (loop_next (&local_table, (char*)&local))
+ break;;
+ if ((local.a == 0))
+ continue;;
+ foo (local.name);
+ }
+ }
+ return 0;
+}
--
1.5.4
From eff1075ccf3ebf4b60e29c46b12e596c658f9956 Mon Sep 17 00:00:00 2001
From: krebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 10 May 2007 07:56:20 +0000
Subject: 2007-05-10 Andreas Krebbel <krebbel1@de.ibm.com>
* gcc.dg/20070507-1.c: Disable for non-pic targets.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124594 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 54769f3..cc610af 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2007-05-10 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * gcc.dg/20070507-1.c: Disable for non-pic targets.
+
2007-05-08 Andreas Krebbel <krebbel1@de.ibm.com>
* gcc.dg/20070507-1.c: New testcase.
diff --git a/gcc/testsuite/gcc.dg/20070507-1.c b/gcc/testsuite/gcc.dg/20070507-1.c
index 5d29d07..2884d1a 100644
--- a/gcc/testsuite/gcc.dg/20070507-1.c
+++ b/gcc/testsuite/gcc.dg/20070507-1.c
@@ -3,7 +3,7 @@
hoisting an insn from a loop body. */
/* { dg-options "-O3 -fPIC" } */
-/* { dg-do run } */
+/* { dg-do run { target fpic } } */
typedef __SIZE_TYPE__ size_t;
int memcmp(const void *s1, const void *s2, size_t n);
--
1.5.4
From 777d9dc44a96841cd2d0c4204a466f4c0640f2a2 Mon Sep 17 00:00:00 2001
From: jvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 11 May 2007 00:34:41 +0000
Subject: 2007-05-10 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/31880
* io/unix.c (fd_alloc_r_at): Fix calculation of physical offset.
2007-05-10 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/31880
* gfortran.dg/unf_read_corrupted_2.f90: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124609 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index cc610af..29abbd1 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-05-10 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/31880
+ * gfortran.dg/unf_read_corrupted_2.f90: New test.
+
2007-05-10 Andreas Krebbel <krebbel1@de.ibm.com>
* gcc.dg/20070507-1.c: Disable for non-pic targets.
diff --git a/gcc/testsuite/gfortran.dg/unf_read_corrupted_2.f90 b/gcc/testsuite/gfortran.dg/unf_read_corrupted_2.f90
new file mode 100644
index 0000000..1788b45
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/unf_read_corrupted_2.f90
@@ -0,0 +1,27 @@
+! { dg-do run }
+! PR31880 silent data corruption in gfortran read statement
+! Test from PR.
+ program r3
+
+ integer(kind=4) :: a(1025),b(1025),c(1025),d(2048),e(1022)
+
+ a = 5
+ b = 6
+ c = 7
+ e = 8
+
+ do i=1,2048
+ d(i)=i
+ end do
+
+ open (3,form='unformatted', status="scratch")
+ write (3) a,b,c,d,e
+ rewind 3
+ d = 0
+ read (3) a,b,c,d
+ close (3)
+
+ if (d(1).ne.1) call abort
+ if (d(2048).ne.2048) call abort
+
+ end
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 641e6e7..6174425 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,8 @@
+2007-05-10 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/31880
+ * io/unix.c (fd_alloc_r_at): Fix calculation of physical offset.
+
2007-03-14 Jakub Jelinek <jakub@redhat.com>
* io/unix.c (regular_file): For ACTION_UNSPECIFIED retry with
diff --git a/libgfortran/io/unix.c b/libgfortran/io/unix.c
index 4d67e07..7c51caa 100644
--- a/libgfortran/io/unix.c
+++ b/libgfortran/io/unix.c
@@ -465,7 +465,7 @@ fd_alloc_r_at (unix_stream * s, int *len, gfc_offset where)
if (n < 0)
return NULL;
- s->physical_offset = where + n;
+ s->physical_offset = m + n;
s->active += n;
}
else
@@ -476,7 +476,7 @@ fd_alloc_r_at (unix_stream * s, int *len, gfc_offset where)
if (do_read (s, s->buffer + s->active, &n) != 0)
return NULL;
- s->physical_offset = where + n;
+ s->physical_offset = m + n;
s->active += n;
}
--
1.5.4
From 71d4acf5aee826a719f3c6d01f8c33d0cd64ef33 Mon Sep 17 00:00:00 2001
From: kkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 11 May 2007 04:53:19 +0000
Subject: PR target/31876
* config/sh/sh.md (andsi3): Avoid calling gen_lowpart on
a SImode SUBREG of a floating point register.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124611 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index da84777..b469d37 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-05-11 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/31876
+ * config/sh/sh.md (andsi3): Avoid calling gen_lowpart on
+ a SImode SUBREG of a floating point register.
+
2007-05-08 Andreas Krebbel <krebbel1@de.ibm.com>
* loop.c (move_movables): Remove REG_EQUAL notes for conditional
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md
index f4e13c3..2d3f2eb 100644
--- a/gcc/config/sh/sh.md
+++ b/gcc/config/sh/sh.md
@@ -3018,7 +3018,9 @@ label:
"
{
if (TARGET_SH1
- && GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) == 255)
+ && GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) == 255
+ && (GET_CODE (operands[1]) != SUBREG
+ || SCALAR_INT_MODE_P (GET_MODE (XEXP (operands[1], 0)))))
{
emit_insn (gen_zero_extendqisi2 (operands[0],
gen_lowpart (QImode, operands[1])));
--
1.5.4
From 66b8010ae09bd591a973bebf13585d99711a1c6f Mon Sep 17 00:00:00 2001
From: jvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 11 May 2007 05:40:37 +0000
Subject: 2007-05-10 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/31409
* io/transfer.c (read_block_direct): Backport from 4.3 trunk.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124612 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 6174425..705303a 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,5 +1,10 @@
2007-05-10 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ PR libfortran/31409
+ * io/transfer.c (read_block_direct): Backport from 4.3 trunk.
+
+2007-05-10 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
PR libfortran/31880
* io/unix.c (fd_alloc_r_at): Fix calculation of physical offset.
diff --git a/libgfortran/io/transfer.c b/libgfortran/io/transfer.c
index a3b337c..124c33d 100644
--- a/libgfortran/io/transfer.c
+++ b/libgfortran/io/transfer.c
@@ -347,6 +347,8 @@ read_block_direct (st_parameter_dt *dtp, void *buf, size_t *nbytes)
if (short_record)
{
+ dtp->u.p.current_unit->current_record = 0;
+ next_record (dtp, 0);
generate_error (&dtp->common, ERROR_SHORT_RECORD, NULL);
return;
}
--
1.5.4
From 6c788c308020c8ddc7d5398f218a530c3240e242 Mon Sep 17 00:00:00 2001
From: rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 16 May 2007 11:57:09 +0000
Subject: 2007-05-16 Richard Guenther <rguenther@suse.de>
Backport from mainline:
2006-06-09 Richard Guenther <rguenther@suse.de>
PR tree-optimization/26998
* tree-vrp.c (extract_range_from_unary_expr): For NEGATE_EXPR
of signed types, only TYPE_MIN_VALUE is special, but for both,
minimum and maximum value. Likewise VR_ANTI_RANGE is special
in this case, as is -fwrapv.
* gcc.dg/torture/pr26998.c: New testcase.
* gcc.dg/tree-ssa/vrp29.c: New testcase.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124767 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b469d37..d805ede 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2007-05-16 Richard Guenther <rguenther@suse.de>
+
+ Backport from mainline:
+ 2006-06-09 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/26998
+ * tree-vrp.c (extract_range_from_unary_expr): For NEGATE_EXPR
+ of signed types, only TYPE_MIN_VALUE is special, but for both,
+ minimum and maximum value. Likewise VR_ANTI_RANGE is special
+ in this case, as is -fwrapv.
+
2007-05-11 Kaz Kojima <kkojima@gcc.gnu.org>
PR target/31876
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 29abbd1..a5c3530 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2007-05-16 Richard Guenther <rguenther@suse.de>
+
+ Backport from mainline:
+ 2006-06-09 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/26998
+ * gcc.dg/torture/pr26998.c: New testcase.
+ * gcc.dg/tree-ssa/vrp29.c: New testcase.
+
2007-05-10 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/31880
diff --git a/gcc/testsuite/gcc.dg/torture/pr26998.c b/gcc/testsuite/gcc.dg/torture/pr26998.c
new file mode 100644
index 0000000..d50c344
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr26998.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+
+int decCompareOp (int result)
+{
+ if (result != (int)0x80000000)
+ {
+ result = -result;
+ return (result > 0);
+ }
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp29.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp29.c
new file mode 100644
index 0000000..bace4ff
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp29.c
@@ -0,0 +1,20 @@
+/* { dg-do run } */
+/* { dg-options "-O2" } */
+
+extern void abort(void);
+
+void decCompareOp (int result)
+{
+ if (result != (int)0x80000000)
+ {
+ result = -result;
+ if (result != (int)0x80000001)
+ abort ();
+ }
+}
+
+int main()
+{
+ decCompareOp (0x7fffffff);
+ return 0;
+}
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index 37fd274..f5b22ea 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -1517,14 +1517,21 @@ extract_range_from_unary_expr (value_range_t *vr, tree expr)
if (code == NEGATE_EXPR
&& !TYPE_UNSIGNED (TREE_TYPE (expr)))
{
- /* NEGATE_EXPR flips the range around. */
- min = (vr0.max == TYPE_MAX_VALUE (TREE_TYPE (expr)) && !flag_wrapv)
- ? TYPE_MIN_VALUE (TREE_TYPE (expr))
- : fold_unary_to_constant (code, TREE_TYPE (expr), vr0.max);
-
- max = (vr0.min == TYPE_MIN_VALUE (TREE_TYPE (expr)) && !flag_wrapv)
- ? TYPE_MAX_VALUE (TREE_TYPE (expr))
- : fold_unary_to_constant (code, TREE_TYPE (expr), vr0.min);
+ /* NEGATE_EXPR flips the range around. We need to treat
+ TYPE_MIN_VALUE specially dependent on wrapping, range type
+ and if it was used as minimum or maximum value:
+ -~[MIN, MIN] == ~[MIN, MIN]
+ -[MIN, 0] == [0, MAX] for -fno-wrapv
+ -[MIN, 0] == [0, MIN] for -fwrapv (will be set to varying later) */
+ min = vr0.max == TYPE_MIN_VALUE (TREE_TYPE (expr))
+ ? TYPE_MIN_VALUE (TREE_TYPE (expr))
+ : fold_unary_to_constant (code, TREE_TYPE (expr), vr0.max);
+
+ max = vr0.min == TYPE_MIN_VALUE (TREE_TYPE (expr))
+ ? (vr0.type == VR_ANTI_RANGE || flag_wrapv
+ ? TYPE_MIN_VALUE (TREE_TYPE (expr))
+ : TYPE_MAX_VALUE (TREE_TYPE (expr)))
+ : fold_unary_to_constant (code, TREE_TYPE (expr), vr0.min);
}
else if (code == ABS_EXPR
&& !TYPE_UNSIGNED (TREE_TYPE (expr)))
--
1.5.4
From 3eb465a703f209db83759f73635c1b15b379d283 Mon Sep 17 00:00:00 2001
From: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 17 May 2007 13:30:15 +0000
Subject: PR rtl-optimization/31691
* combine.c (simplify_set): Build a new src pattern instead of
substituting its operands in the COMPARE case.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124799 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d805ede..addfa81 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-05-17 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR rtl-optimization/31691
+ * combine.c (simplify_set): Build a new src pattern instead of
+ substituting its operands in the COMPARE case.
+
2007-05-16 Richard Guenther <rguenther@suse.de>
Backport from mainline:
diff --git a/gcc/combine.c b/gcc/combine.c
index 370b89d..8749944 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -5440,14 +5440,14 @@ simplify_set (rtx x)
}
else if (GET_MODE (op0) == compare_mode && op1 == const0_rtx)
{
- SUBST(SET_SRC (x), op0);
+ SUBST (SET_SRC (x), op0);
src = SET_SRC (x);
- }
- else
+ }
+ /* Otherwise, update the COMPARE if needed. */
+ else if (XEXP (src, 0) != op0 || XEXP (src, 1) != op1)
{
- /* Otherwise, update the COMPARE if needed. */
- SUBST (XEXP (src, 0), op0);
- SUBST (XEXP (src, 1), op1);
+ SUBST (SET_SRC (x), gen_rtx_COMPARE (compare_mode, op0, op1));
+ src = SET_SRC (x);
}
}
else
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a5c3530..e71356e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2007-05-17 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.c-torture/execute/20070517-1.c: New test.
+
2007-05-16 Richard Guenther <rguenther@suse.de>
Backport from mainline:
diff --git a/gcc/testsuite/gcc.c-torture/execute/20070517-1.c b/gcc/testsuite/gcc.c-torture/execute/20070517-1.c
new file mode 100644
index 0000000..c81cbc6
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20070517-1.c
@@ -0,0 +1,41 @@
+/* PR rtl-optimization/31691 */
+/* Origin: Chi-Hua Chen <stephaniechc-gccbug@yahoo.com> */
+
+extern void abort (void);
+
+static int get_kind(int) __attribute__ ((noinline));
+
+static int get_kind(int v)
+{
+ volatile int k = v;
+ return k;
+}
+
+static int some_call(void) __attribute__ ((noinline));
+
+static int some_call(void)
+{
+ return 0;
+}
+
+static void example (int arg)
+{
+ int tmp, kind = get_kind (arg);
+
+ if (kind == 9 || kind == 10 || kind == 5)
+ {
+ if (some_call() == 0)
+ {
+ if (kind == 9 || kind == 10)
+ tmp = arg;
+ else
+ abort();
+ }
+ }
+}
+
+int main(void)
+{
+ example(10);
+ return 0;
+}
--
1.5.4
From 0429510480eec262497793d3a9df09ca6255e920 Mon Sep 17 00:00:00 2001
From: kkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun, 20 May 2007 23:54:01 +0000
Subject: PR target/31022
Backport from mainline.
* config/sh/sh.c (sh_adjust_cost): Use the result of single_set
instead of PATTERN.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124883 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index addfa81..ab8d5a7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2007-05-20 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/31022
+ Backport from mainline.
+ * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
+ instead of PATTERN.
+
2007-05-17 Eric Botcazou <ebotcazou@libertysurf.fr>
PR rtl-optimization/31691
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index 216bbab..5b9ab5c 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -8477,7 +8477,7 @@ sh_adjust_cost (rtx insn, rtx link ATTRIBUTE_UNUSED, rtx dep_insn, int cost)
else if (TARGET_SH4
&& get_attr_type (insn) == TYPE_DYN_SHIFT
&& get_attr_any_int_load (dep_insn) == ANY_INT_LOAD_YES
- && reg_overlap_mentioned_p (SET_DEST (PATTERN (dep_insn)),
+ && reg_overlap_mentioned_p (SET_DEST (single_set (dep_insn)),
XEXP (SET_SRC (single_set (insn)),
1)))
cost++;
--
1.5.4
From 163bc3e27b4344454e64bbbd15d939913de34fc6 Mon Sep 17 00:00:00 2001
From: kkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun, 20 May 2007 23:55:48 +0000
Subject: PR target/31480
Backport from mainline.
* config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
is null.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124884 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ab8d5a7..bce0d68 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,12 @@
2007-05-20 Kaz Kojima <kkojima@gcc.gnu.org>
+ PR target/31480
+ Backport from mainline.
+ * config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
+ is null.
+
+2007-05-20 Kaz Kojima <kkojima@gcc.gnu.org>
+
PR target/31022
Backport from mainline.
* config/sh/sh.c (sh_adjust_cost): Use the result of single_set
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md
index 2d3f2eb..13ed384 100644
--- a/gcc/config/sh/sh.md
+++ b/gcc/config/sh/sh.md
@@ -412,10 +412,12 @@
(eq_attr "type" "jump")
(cond [(eq_attr "med_branch_p" "yes")
(const_int 2)
- (and (eq (symbol_ref "GET_CODE (prev_nonnote_insn (insn))")
- (symbol_ref "INSN"))
- (eq (symbol_ref "INSN_CODE (prev_nonnote_insn (insn))")
- (symbol_ref "code_for_indirect_jump_scratch")))
+ (and (ne (symbol_ref "prev_nonnote_insn (insn)")
+ (const_int 0))
+ (and (eq (symbol_ref "GET_CODE (prev_nonnote_insn (insn))")
+ (symbol_ref "INSN"))
+ (eq (symbol_ref "INSN_CODE (prev_nonnote_insn (insn))")
+ (symbol_ref "code_for_indirect_jump_scratch"))))
(cond [(eq_attr "braf_branch_p" "yes")
(const_int 6)
(eq (symbol_ref "flag_pic") (const_int 0))
--
1.5.4
From 34cd8ff74eef6a926c4ef4480da53c4e556e6912 Mon Sep 17 00:00:00 2001
From: kkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun, 20 May 2007 23:57:32 +0000
Subject: PR target/31701
Backport from mainline.
* config/sh/sh.c (output_stack_adjust): Avoid using the frame
register itself to hold the offset constant. Tell flow the use
of r4 and r5 when they are used.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@124885 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bce0d68..2130ea2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,13 @@
2007-05-20 Kaz Kojima <kkojima@gcc.gnu.org>
+ PR target/31701
+ Backport from mainline.
+ * config/sh/sh.c (output_stack_adjust): Avoid using the frame
+ register itself to hold the offset constant. Tell flow the use
+ of r4 and r5 when they are used.
+
+2007-05-20 Kaz Kojima <kkojima@gcc.gnu.org>
+
PR target/31480
Backport from mainline.
* config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index 5b9ab5c..df9e146 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -5154,7 +5154,13 @@ output_stack_adjust (int size, rtx reg, int epilogue_p,
temp = scavenge_reg (&temps);
}
if (temp < 0 && live_regs_mask)
- temp = scavenge_reg (live_regs_mask);
+ {
+ HARD_REG_SET temps;
+
+ COPY_HARD_REG_SET (temps, *live_regs_mask);
+ CLEAR_HARD_REG_BIT (temps, REGNO (reg));
+ temp = scavenge_reg (&temps);
+ }
if (temp < 0)
{
rtx adj_reg, tmp_reg, mem;
@@ -5203,6 +5209,9 @@ output_stack_adjust (int size, rtx reg, int epilogue_p,
emit_move_insn (adj_reg, mem);
mem = gen_tmp_stack_mem (Pmode, gen_rtx_POST_INC (Pmode, reg));
emit_move_insn (tmp_reg, mem);
+ /* Tell flow the insns that pop r4/r5 aren't dead. */
+ emit_insn (gen_rtx_USE (VOIDmode, tmp_reg));
+ emit_insn (gen_rtx_USE (VOIDmode, adj_reg));
return;
}
const_reg = gen_rtx_REG (GET_MODE (reg), temp);
--
1.5.4
From 11992b79cda15f0c22bc04a385dc8f80d1aa94ed Mon Sep 17 00:00:00 2001
From: jvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 24 May 2007 05:53:27 +0000
Subject: 2007-05-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/31964
Backport from trunk.
* intrinsics/ishftc.c (ishftc4, ishftc8, ishftc16): Fix mask to handle
shift of bit-size number of bits.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@125016 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 705303a..a71d215 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,10 @@
+2007-05-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/31964
+ Backport from trunk.
+ * intrinsics/ishftc.c (ishftc4, ishftc8, ishftc16): Fix mask to handle
+ shift of bit-size number of bits.
+
2007-05-10 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/31409
diff --git a/libgfortran/intrinsics/ishftc.c b/libgfortran/intrinsics/ishftc.c
index a147b96..91e0db2 100644
--- a/libgfortran/intrinsics/ishftc.c
+++ b/libgfortran/intrinsics/ishftc.c
@@ -36,8 +36,7 @@ export_proto(ishftc4);
GFC_INTEGER_4
ishftc4 (GFC_INTEGER_4 i, GFC_INTEGER_4 shift, GFC_INTEGER_4 size)
{
- GFC_INTEGER_4 mask;
- GFC_UINTEGER_4 bits;
+ GFC_UINTEGER_4 mask, bits;
if (shift < 0)
shift = shift + size;
@@ -45,9 +44,14 @@ ishftc4 (GFC_INTEGER_4 i, GFC_INTEGER_4 shift, GFC_INTEGER_4 size)
if (shift == 0 || shift == size)
return i;
- mask = (~(GFC_INTEGER_4)0) << size;
- bits = i & ~mask;
- return (i & mask) | (bits >> (size - shift)) | ((i << shift) & ~mask);
+ /* In C, the result of the shift operator is undefined if the right operand
+ is greater than or equal to the number of bits in the left operand. So we
+ have to special case it for fortran. */
+ mask = ~((size == 32) ? 0 : (~0 << size));
+
+ bits = i & mask;
+
+ return (i & ~mask) | ((bits << shift) & mask) | (bits >> (size - shift));
}
extern GFC_INTEGER_8 ishftc8 (GFC_INTEGER_8, GFC_INTEGER_4, GFC_INTEGER_4);
@@ -56,8 +60,7 @@ export_proto(ishftc8);
GFC_INTEGER_8
ishftc8 (GFC_INTEGER_8 i, GFC_INTEGER_4 shift, GFC_INTEGER_4 size)
{
- GFC_INTEGER_8 mask;
- GFC_UINTEGER_8 bits;
+ GFC_UINTEGER_8 mask, bits;
if (shift < 0)
shift = shift + size;
@@ -65,9 +68,14 @@ ishftc8 (GFC_INTEGER_8 i, GFC_INTEGER_4 shift, GFC_INTEGER_4 size)
if (shift == 0 || shift == size)
return i;
- mask = (~(GFC_INTEGER_8)0) << size;
- bits = i & ~mask;
- return (i & mask) | (bits >> (size - shift)) | ((i << shift) & ~mask);
+ /* In C, the result of the shift operator is undefined if the right operand
+ is greater than or equal to the number of bits in the left operand. So we
+ have to special case it for fortran. */
+ mask = ~((size == 64) ? 0 : (~0 << size));
+
+ bits = i & mask;
+
+ return (i & ~mask) | ((bits << shift) & mask) | (bits >> (size - shift));
}
#ifdef HAVE_GFC_INTEGER_16
@@ -77,8 +85,7 @@ export_proto(ishftc16);
GFC_INTEGER_16
ishftc16 (GFC_INTEGER_16 i, GFC_INTEGER_4 shift, GFC_INTEGER_4 size)
{
- GFC_INTEGER_16 mask;
- GFC_UINTEGER_16 bits;
+ GFC_UINTEGER_16 mask, bits;
if (shift < 0)
shift = shift + size;
@@ -86,8 +93,13 @@ ishftc16 (GFC_INTEGER_16 i, GFC_INTEGER_4 shift, GFC_INTEGER_4 size)
if (shift == 0 || shift == size)
return i;
- mask = (~(GFC_INTEGER_16)0) << size;
- bits = i & ~mask;
- return (i & mask) | (bits >> (size - shift)) | ((i << shift) & ~mask);
+ /* In C, the result of the shift operator is undefined if the right operand
+ is greater than or equal to the number of bits in the left operand. So we
+ have to special case it for fortran. */
+ mask = ~((size == 128) ? 0 : (~0 << size));
+
+ bits = i & mask;
+
+ return (i & ~mask) | ((bits << shift) & mask) | (bits >> (size - shift));
}
#endif
--
1.5.4
From 237460f45e5d5e0c699077e161a1ddafc67601e2 Mon Sep 17 00:00:00 2001
From: jvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 24 May 2007 05:57:58 +0000
Subject: 2007-05-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/31964
* gfortran.fortran-torture/execute/intrinsic_bitops.f90: Update.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@125017 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e71356e..4891eb0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-05-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/31964
+ * gfortran.fortran-torture/execute/intrinsic_bitops.f90: Update.
+
2007-05-17 Eric Botcazou <ebotcazou@libertysurf.fr>
* gcc.c-torture/execute/20070517-1.c: New test.
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_bitops.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_bitops.f90
index 95ff44c..7dcda25 100644
--- a/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_bitops.f90
+++ b/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_bitops.f90
@@ -8,7 +8,8 @@ program intrinsic_bitops
i = 2
j = 3
k = 12
-
+ a = 5
+
if (.not. btest (i, o+1)) call abort
if (btest (i, o+2)) call abort
if (iand (i, j) .ne. 2) call abort
@@ -26,4 +27,6 @@ program intrinsic_bitops
if (ishftc (k, o-30) .ne. 48) call abort
if (ishftc (k, o+1, o+3) .ne. 9) call abort
if (not (i) .ne. -3) call abort
+ if (ishftc (a, 1, bit_size(a)) .ne. 10) call abort
+ if (ishftc (1, 1, 32) .ne. 2) call abort
end program
--
1.5.4
From 59a90ad440b94dae7dd3868a5ac7b841a73ed206 Mon Sep 17 00:00:00 2001
From: danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 1 Jun 2007 00:40:16 +0000
Subject: Backport from mainline:
2007-05-05 Aurelien Jarno <aurelien@aurel32.net>
* config/pa/pa.md: Split tgd_load, tld_load and tie_load
into pic and non-pic versions. Mark r19 as used for
tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used
for tgd_load, tld_load and tie_load .
* config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic
version of tgd_load, tld_load and tie_load depending on the
value of flag_pic.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@125251 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2130ea2..8d550ac 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,16 @@
+2007-05-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ Backport from mainline:
+ 2007-05-05 Aurelien Jarno <aurelien@aurel32.net>
+
+ * config/pa/pa.md: Split tgd_load, tld_load and tie_load
+ into pic and non-pic versions. Mark r19 as used for
+ tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used
+ for tgd_load, tld_load and tie_load .
+ * config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic
+ version of tgd_load, tld_load and tie_load depending on the
+ value of flag_pic.
+
2007-05-20 Kaz Kojima <kkojima@gcc.gnu.org>
PR target/31701
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 450e191..37b0513 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -712,7 +712,10 @@ legitimize_tls_address (rtx addr)
{
case TLS_MODEL_GLOBAL_DYNAMIC:
tmp = gen_reg_rtx (Pmode);
- emit_insn (gen_tgd_load (tmp, addr));
+ if (flag_pic)
+ emit_insn (gen_tgd_load_pic (tmp, addr));
+ else
+ emit_insn (gen_tgd_load (tmp, addr));
ret = hppa_tls_call (tmp);
break;
@@ -720,7 +723,10 @@ legitimize_tls_address (rtx addr)
ret = gen_reg_rtx (Pmode);
tmp = gen_reg_rtx (Pmode);
start_sequence ();
- emit_insn (gen_tld_load (tmp, addr));
+ if (flag_pic)
+ emit_insn (gen_tld_load_pic (tmp, addr));
+ else
+ emit_insn (gen_tld_load (tmp, addr));
t1 = hppa_tls_call (tmp);
insn = get_insns ();
end_sequence ();
@@ -736,7 +742,10 @@ legitimize_tls_address (rtx addr)
tmp = gen_reg_rtx (Pmode);
ret = gen_reg_rtx (Pmode);
emit_insn (gen_tp_load (tp));
- emit_insn (gen_tie_load (tmp, addr));
+ if (flag_pic)
+ emit_insn (gen_tie_load_pic (tmp, addr));
+ else
+ emit_insn (gen_tie_load (tmp, addr));
emit_move_insn (ret, gen_rtx_PLUS (Pmode, tp, tmp));
break;
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index 28f398a..9a4bc47 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -39,6 +39,9 @@
(UNSPEC_TLSLDBASE 7)
(UNSPEC_TLSIE 8)
(UNSPEC_TLSLE 9)
+ (UNSPEC_TLSGD_PIC 10)
+ (UNSPEC_TLSLDM_PIC 11)
+ (UNSPEC_TLSIE_PIC 12)
])
;; UNSPEC_VOLATILE:
@@ -9548,14 +9551,25 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
(define_insn "tgd_load"
[(set (match_operand:SI 0 "register_operand" "=r")
(unspec:SI [(match_operand 1 "tgd_symbolic_operand" "")] UNSPEC_TLSGD))
- (clobber (reg:SI 1))]
+ (clobber (reg:SI 1))
+ (use (reg:SI 27))]
""
"*
{
- if (flag_pic)
- return \"addil LT'%1-$tls_gdidx$,%%r19\;ldo RT'%1-$tls_gdidx$(%%r1),%0\";
- else
- return \"addil LR'%1-$tls_gdidx$,%%r27\;ldo RR'%1-$tls_gdidx$(%%r1),%0\";
+ return \"addil LR'%1-$tls_gdidx$,%%r27\;ldo RR'%1-$tls_gdidx$(%%r1),%0\";
+}"
+ [(set_attr "type" "multi")
+ (set_attr "length" "8")])
+
+(define_insn "tgd_load_pic"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (unspec:SI [(match_operand 1 "tgd_symbolic_operand" "")] UNSPEC_TLSGD_PIC))
+ (clobber (reg:SI 1))
+ (use (reg:SI 19))]
+ ""
+ "*
+{
+ return \"addil LT'%1-$tls_gdidx$,%%r19\;ldo RT'%1-$tls_gdidx$(%%r1),%0\";
}"
[(set_attr "type" "multi")
(set_attr "length" "8")])
@@ -9563,14 +9577,25 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
(define_insn "tld_load"
[(set (match_operand:SI 0 "register_operand" "=r")
(unspec:SI [(match_operand 1 "tld_symbolic_operand" "")] UNSPEC_TLSLDM))
- (clobber (reg:SI 1))]
+ (clobber (reg:SI 1))
+ (use (reg:SI 27))]
""
"*
{
- if (flag_pic)
- return \"addil LT'%1-$tls_ldidx$,%%r19\;ldo RT'%1-$tls_ldidx$(%%r1),%0\";
- else
- return \"addil LR'%1-$tls_ldidx$,%%r27\;ldo RR'%1-$tls_ldidx$(%%r1),%0\";
+ return \"addil LR'%1-$tls_ldidx$,%%r27\;ldo RR'%1-$tls_ldidx$(%%r1),%0\";
+}"
+ [(set_attr "type" "multi")
+ (set_attr "length" "8")])
+
+(define_insn "tld_load_pic"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (unspec:SI [(match_operand 1 "tld_symbolic_operand" "")] UNSPEC_TLSLDM_PIC))
+ (clobber (reg:SI 1))
+ (use (reg:SI 19))]
+ ""
+ "*
+{
+ return \"addil LT'%1-$tls_ldidx$,%%r19\;ldo RT'%1-$tls_ldidx$(%%r1),%0\";
}"
[(set_attr "type" "multi")
(set_attr "length" "8")])
@@ -9600,14 +9625,25 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
(define_insn "tie_load"
[(set (match_operand:SI 0 "register_operand" "=r")
(unspec:SI [(match_operand 1 "tie_symbolic_operand" "")] UNSPEC_TLSIE))
- (clobber (reg:SI 1))]
+ (clobber (reg:SI 1))
+ (use (reg:SI 27))]
""
"*
{
- if (flag_pic)
- return \"addil LT'%1-$tls_ieoff$,%%r19\;ldw RT'%1-$tls_ieoff$(%%r1),%0\";
- else
- return \"addil LR'%1-$tls_ieoff$,%%r27\;ldw RR'%1-$tls_ieoff$(%%r1),%0\";
+ return \"addil LR'%1-$tls_ieoff$,%%r27\;ldw RR'%1-$tls_ieoff$(%%r1),%0\";
+}"
+ [(set_attr "type" "multi")
+ (set_attr "length" "8")])
+
+(define_insn "tie_load_pic"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (unspec:SI [(match_operand 1 "tie_symbolic_operand" "")] UNSPEC_TLSIE_PIC))
+ (clobber (reg:SI 1))
+ (use (reg:SI 19))]
+ ""
+ "*
+{
+ return \"addil LT'%1-$tls_ieoff$,%%r19\;ldw RT'%1-$tls_ieoff$(%%r1),%0\";
}"
[(set_attr "type" "multi")
(set_attr "length" "8")])
--
1.5.4
From ae750c2014c2209706b97ffb07573133728bdcf8 Mon Sep 17 00:00:00 2001
From: kkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 8 Jun 2007 05:56:28 +0000
Subject: PR target/32163
Backport from mainline.
* config/sh/sh.md (symGOT_load): Don't schedule insns when
the symbol is generated with the stack protector.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@125559 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8d550ac..c65c72d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2007-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/32163
+ Backport from mainline.
+ * config/sh/sh.md (symGOT_load): Don't schedule insns when
+ the symbol is generated with the stack protector.
+
2007-05-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
Backport from mainline:
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md
index 13ed384..e136761 100644
--- a/gcc/config/sh/sh.md
+++ b/gcc/config/sh/sh.md
@@ -8287,6 +8287,20 @@ label:
operands[2],
gen_rtx_REG (Pmode, PIC_REG)));
+ /* When stack protector inserts codes after the result is set to
+ R0, @(rX, r12) will cause a spill failure for R0. Don't schedule
+ insns to avoid combining (set A (plus rX r12)) and (set op0 (mem A))
+ when rX is a GOT address for the guard symbol. Ugly but doesn't
+ matter because this is a rare situation. */
+ if (!TARGET_SHMEDIA
+ && flag_stack_protect
+ && GET_CODE (operands[1]) == CONST
+ && GET_CODE (XEXP (operands[1], 0)) == UNSPEC
+ && GET_CODE (XVECEXP (XEXP (operands[1], 0), 0, 0)) == SYMBOL_REF
+ && strcmp (XSTR (XVECEXP (XEXP (operands[1], 0), 0, 0), 0),
+ \"__stack_chk_guard\") == 0)
+ emit_insn (gen_blockage ());
+
/* N.B. This is not constant for a GOTPLT relocation. */
mem = gen_rtx_MEM (Pmode, operands[3]);
MEM_NOTRAP_P (mem) = 1;
--
1.5.4
From 23979421617405d79d9cfdaee7793fdfd4d8076c Mon Sep 17 00:00:00 2001
From: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 13 Jun 2007 14:00:51 +0000
Subject: * config/sparc/sparc.c (sparc_override_options): Initialize
fpu mask correctly.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@125676 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c65c72d..a612421 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-06-13 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * config/sparc/sparc.c (sparc_override_options): Initialize
+ fpu mask correctly.
+
2007-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
PR target/32163
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index 201a425..1360594 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -675,7 +675,7 @@ sparc_override_options (void)
error ("-mcmodel= is not supported on 32 bit systems");
}
- fpu = TARGET_FPU; /* save current -mfpu status */
+ fpu = target_flags & MASK_FPU; /* save current -mfpu status */
/* Set the default CPU. */
for (def = &cpu_default[0]; def->name; ++def)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4891eb0..fc58daf 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2007-06-13 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.target/sparc/mfpu.c: New test.
+
2007-05-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/31964
diff --git a/gcc/testsuite/gcc.target/sparc/mfpu.c b/gcc/testsuite/gcc.target/sparc/mfpu.c
new file mode 100644
index 0000000..e95754c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/sparc/mfpu.c
@@ -0,0 +1,11 @@
+/* Reported by Peter A. Krauss <peter.a.krauss@web.de> */
+
+/* { dg-do compile } */
+/* { dg-options "-mfpu" } */
+
+float square(float x)
+{
+ return x * x;
+}
+
+/* { dg-final { scan-assembler "fmuls" } } */
--
1.5.4
From 93e64c073abb7922b1cd02bedfd99e5ca1708b65 Mon Sep 17 00:00:00 2001
From: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun, 17 Jun 2007 11:18:14 +0000
Subject: * gcc.target/sparc/align.c: Use 'unsigned char' as element type.
* gcc.target/sparc/combined-2.c: Likewise.
* gcc.target/sparc/fexpand.c : Likewise.
* gcc.target/sparc/fnot.c: Likewise. Fix a couple of prototypes.
* gcc.target/sparc/fpack16.c : Likewise.
* gcc.target/sparc/fpmerge.c : Likewise.
* gcc.target/sparc/fpmul.c : Likewise.
* gcc.target/sparc/noresult.c : Likewise.
* gcc.target/sparc/pdist.c: Likewise.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@125770 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index fc58daf..e43b6f0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,15 @@
+2007-06-17 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.target/sparc/align.c: Use 'unsigned char' as element type.
+ * gcc.target/sparc/combined-2.c: Likewise.
+ * gcc.target/sparc/fexpand.c : Likewise.
+ * gcc.target/sparc/fnot.c: Likewise. Fix a couple of prototypes.
+ * gcc.target/sparc/fpack16.c : Likewise.
+ * gcc.target/sparc/fpmerge.c : Likewise.
+ * gcc.target/sparc/fpmul.c : Likewise.
+ * gcc.target/sparc/noresult.c : Likewise.
+ * gcc.target/sparc/pdist.c: Likewise.
+
2007-06-13 Eric Botcazou <ebotcazou@libertysurf.fr>
* gcc.target/sparc/mfpu.c: New test.
diff --git a/gcc/testsuite/gcc.target/sparc/align.c b/gcc/testsuite/gcc.target/sparc/align.c
index d9cc162..804ca93 100644
--- a/gcc/testsuite/gcc.target/sparc/align.c
+++ b/gcc/testsuite/gcc.target/sparc/align.c
@@ -1,10 +1,9 @@
/* { dg-do compile } */
/* { dg-options "-mcpu=ultrasparc -mvis" } */
-
typedef long long int64_t;
typedef int vec32 __attribute__((vector_size(8)));
typedef short vec16 __attribute__((vector_size(8)));
-typedef char vec8 __attribute__((vector_size(8)));
+typedef unsigned char vec8 __attribute__((vector_size(8)));
vec16 foo1 (vec16 a, vec16 b) {
return __builtin_vis_faligndatav4hi (a, b);
diff --git a/gcc/testsuite/gcc.target/sparc/combined-2.c b/gcc/testsuite/gcc.target/sparc/combined-2.c
index 016e4fa..c4b70a5 100644
--- a/gcc/testsuite/gcc.target/sparc/combined-2.c
+++ b/gcc/testsuite/gcc.target/sparc/combined-2.c
@@ -1,7 +1,7 @@
/* { dg-do compile } */
/* { dg-options "-O2 -mcpu=ultrasparc -mvis" } */
-typedef char pixel __attribute__((vector_size(4)));
-typedef char vec8 __attribute__((vector_size(8)));
+typedef unsigned char pixel __attribute__((vector_size(4)));
+typedef unsigned char vec8 __attribute__((vector_size(8)));
typedef short vec16 __attribute__((vector_size(8)));
vec16 foo (pixel a, pixel b) {
diff --git a/gcc/testsuite/gcc.target/sparc/fexpand.c b/gcc/testsuite/gcc.target/sparc/fexpand.c
index 2483f4f..21aeaff 100644
--- a/gcc/testsuite/gcc.target/sparc/fexpand.c
+++ b/gcc/testsuite/gcc.target/sparc/fexpand.c
@@ -1,7 +1,7 @@
/* { dg-do compile } */
/* { dg-options "-mcpu=ultrasparc -mvis" } */
typedef short vec16 __attribute__((vector_size(8)));
-typedef char vec8 __attribute__((vector_size(4)));
+typedef unsigned char vec8 __attribute__((vector_size(4)));
vec16 foo (vec8 a) {
return __builtin_vis_fexpand (a);
diff --git a/gcc/testsuite/gcc.target/sparc/fnot.c b/gcc/testsuite/gcc.target/sparc/fnot.c
index e6f98d4..dceee52 100644
--- a/gcc/testsuite/gcc.target/sparc/fnot.c
+++ b/gcc/testsuite/gcc.target/sparc/fnot.c
@@ -1,8 +1,8 @@
/* { dg-do compile } */
/* { dg-options "-O -mcpu=ultrasparc -mvis" } */
-typedef char vec8 __attribute__((vector_size(8)));
+typedef unsigned char vec8 __attribute__((vector_size(8)));
typedef short vec16 __attribute__((vector_size(8)));
-typedef int vec32 __attribute__((vector_size(8)));
+typedef int vec32 __attribute__((vector_size(8)));
extern vec8 foo1_8(void);
extern void foo2_8(vec8);
@@ -21,7 +21,7 @@ vec8 fun8_2(vec8 a)
#endif
extern vec16 foo1_16(void);
-extern void foo2_16(vec8);
+extern void foo2_16(vec16);
vec16 fun16(void)
@@ -38,7 +38,7 @@ vec16 fun16_2(vec16 a)
#endif
extern vec32 foo1_32(void);
-extern void foo2_32(vec8);
+extern void foo2_32(vec32);
vec32 fun32(void)
{
diff --git a/gcc/testsuite/gcc.target/sparc/fpack16.c b/gcc/testsuite/gcc.target/sparc/fpack16.c
index 2f7aac5..79e0c4c 100644
--- a/gcc/testsuite/gcc.target/sparc/fpack16.c
+++ b/gcc/testsuite/gcc.target/sparc/fpack16.c
@@ -1,7 +1,7 @@
/* { dg-do compile } */
/* { dg-options "-mcpu=ultrasparc -mvis" } */
typedef short vec16 __attribute__((vector_size(8)));
-typedef char vec8 __attribute__((vector_size(4)));
+typedef unsigned char vec8 __attribute__((vector_size(4)));
vec8 foo (vec16 a) {
return __builtin_vis_fpack16 (a);
diff --git a/gcc/testsuite/gcc.target/sparc/fpmerge.c b/gcc/testsuite/gcc.target/sparc/fpmerge.c
index 013795c..4d6a9c0 100644
--- a/gcc/testsuite/gcc.target/sparc/fpmerge.c
+++ b/gcc/testsuite/gcc.target/sparc/fpmerge.c
@@ -1,7 +1,7 @@
/* { dg-do compile } */
/* { dg-options "-mcpu=ultrasparc -mvis" } */
-typedef char pixel __attribute__((vector_size(8)));
-typedef char vec8 __attribute__((vector_size(4)));
+typedef unsigned char pixel __attribute__((vector_size(8)));
+typedef unsigned char vec8 __attribute__((vector_size(4)));
pixel foo (vec8 a, vec8 b) {
return __builtin_vis_fpmerge (a, b);
diff --git a/gcc/testsuite/gcc.target/sparc/fpmul.c b/gcc/testsuite/gcc.target/sparc/fpmul.c
index 991cc75..71b3b17 100644
--- a/gcc/testsuite/gcc.target/sparc/fpmul.c
+++ b/gcc/testsuite/gcc.target/sparc/fpmul.c
@@ -2,9 +2,9 @@
/* { dg-options "-mcpu=ultrasparc -mvis" } */
typedef int vec32 __attribute__((vector_size(8)));
typedef short vec16 __attribute__((vector_size(8)));
-typedef char pixel __attribute__((vector_size(4)));
+typedef unsigned char pixel __attribute__((vector_size(4)));
typedef short pixel16 __attribute__((vector_size(4)));
-typedef char vec8 __attribute__((vector_size(8)));
+typedef unsigned char vec8 __attribute__((vector_size(8)));
vec16 foo1 (pixel a, vec16 b) {
return __builtin_vis_fmul8x16 (a, b);
diff --git a/gcc/testsuite/gcc.target/sparc/noresult.c b/gcc/testsuite/gcc.target/sparc/noresult.c
index f32805d..1be7458 100644
--- a/gcc/testsuite/gcc.target/sparc/noresult.c
+++ b/gcc/testsuite/gcc.target/sparc/noresult.c
@@ -1,7 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-mcpu=ultrasparc -mvis" } */
typedef short vec16 __attribute__((vector_size(8)));
-typedef char vec8 __attribute__((vector_size(4)));
void foo (vec16 a) {
__builtin_vis_fpack16 (a);
diff --git a/gcc/testsuite/gcc.target/sparc/pdist.c b/gcc/testsuite/gcc.target/sparc/pdist.c
index 48ca0db..6ecc20a 100644
--- a/gcc/testsuite/gcc.target/sparc/pdist.c
+++ b/gcc/testsuite/gcc.target/sparc/pdist.c
@@ -1,8 +1,7 @@
/* { dg-do compile } */
/* { dg-options "-mcpu=ultrasparc -mvis" } */
-
typedef long long int64_t;
-typedef char vec8 __attribute__((vector_size(8)));
+typedef unsigned char vec8 __attribute__((vector_size(8)));
int64_t foo (vec8 a, vec8 b) {
int64_t d = 0;
--
1.5.4
From eae7e4ee43e17082e1fddb45ca5a1a2587f42ad2 Mon Sep 17 00:00:00 2001
From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 19 Jun 2007 09:18:13 +0000
Subject: PR tree-optimization/32353
* tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
* g++.dg/opt/nrv13.C: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@125843 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a612421..a5521d7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-06-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/32353
+ * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
+
2007-06-13 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sparc.c (sparc_override_options): Initialize
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e43b6f0..97efa9f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-06-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/32353
+ * g++.dg/opt/nrv13.C: New test.
+
2007-06-17 Eric Botcazou <ebotcazou@libertysurf.fr>
* gcc.target/sparc/align.c: Use 'unsigned char' as element type.
diff --git a/gcc/testsuite/g++.dg/opt/nrv13.C b/gcc/testsuite/g++.dg/opt/nrv13.C
new file mode 100644
index 0000000..bb49a3a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/nrv13.C
@@ -0,0 +1,42 @@
+// PR tree-optimization/32353
+// { dg-do run }
+// { dg-options "-O2" }
+
+extern "C" void abort ();
+
+struct A
+{
+ int f;
+ A (int x) : f (x) {}
+};
+
+A
+foo (const A &x, const A &y)
+{
+ A r (0);
+ r = x.f == -111 ? y : (y.f == -111 || x.f > y.f) ? x : y;
+ A s (0);
+ r = r.f == -111 ? s : (r.f > s.f) ? r : s;
+ return r;
+}
+
+int
+main ()
+{
+ if (foo (A (0), A (1)).f != 1)
+ abort ();
+ if (foo (A (1), A (9)).f != 9)
+ abort ();
+ if (foo (A (9), A (1)).f != 9)
+ abort ();
+ if (foo (A (-4), A (-5)).f != 0)
+ abort ();
+ if (foo (A (-111), A (-111)).f != 0)
+ abort ();
+ if (foo (A (2), A (-111)).f != 2)
+ abort ();
+ if (foo (A (-111), A (6)).f != 6)
+ abort ();
+ if (foo (A (-111), A (-4)).f != 0)
+ abort ();
+}
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index 0bc5eca..bcc1dac 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -3405,7 +3405,8 @@ set_uids_in_ptset (bitmap into, bitmap from)
bitmap_set_bit (into, DECL_UID (sv->var));
}
else if (TREE_CODE (vi->decl) == VAR_DECL
- || TREE_CODE (vi->decl) == PARM_DECL)
+ || TREE_CODE (vi->decl) == PARM_DECL
+ || TREE_CODE (vi->decl) == RESULT_DECL)
{
if (found_anyoffset
&& var_can_have_subvars (vi->decl)
--
1.5.4
From d0309bdee69fbfe09020e8b594b766b7e19fbb6b Mon Sep 17 00:00:00 2001
From: kkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 20 Jun 2007 05:52:05 +0000
Subject: PR rtl-optimization/28011
Backport from mainline.
* reload.c (push_reload): Set dont_share if IN appears in OUT
also when IN is a PLUS rtx.
(reg_overlap_mentioned_for_reload_p): Return true if X and IN
are same PLUS rtx.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@125872 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a5521d7..ec0a88f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2007-06-20 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR rtl-optimization/28011
+ Backport from mainline.
+ * reload.c (push_reload): Set dont_share if IN appears in OUT
+ also when IN is a PLUS rtx.
+ (reg_overlap_mentioned_for_reload_p): Return true if X and IN
+ are same PLUS rtx.
+
2007-06-19 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/32353
diff --git a/gcc/reload.c b/gcc/reload.c
index d775259..eea9cc7 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -1210,7 +1210,7 @@ push_reload (rtx in, rtx out, rtx *inloc, rtx *outloc,
/* If IN appears in OUT, we can't share any input-only reload for IN. */
if (in != 0 && out != 0 && MEM_P (out)
- && (REG_P (in) || MEM_P (in))
+ && (REG_P (in) || MEM_P (in) || GET_CODE (in) == PLUS)
&& reg_overlap_mentioned_for_reload_p (in, XEXP (out, 0)))
dont_share = 1;
@@ -6464,7 +6464,8 @@ reg_overlap_mentioned_for_reload_p (rtx x, rtx in)
if (REG_P (in))
return 0;
else if (GET_CODE (in) == PLUS)
- return (reg_overlap_mentioned_for_reload_p (x, XEXP (in, 0))
+ return (rtx_equal_p (x, in)
+ || reg_overlap_mentioned_for_reload_p (x, XEXP (in, 0))
|| reg_overlap_mentioned_for_reload_p (x, XEXP (in, 1)));
else return (reg_overlap_mentioned_for_reload_p (XEXP (x, 0), in)
|| reg_overlap_mentioned_for_reload_p (XEXP (x, 1), in));
--
1.5.4
From 8d7947fd16d6158d523ff5dd0aca8e424fc26643 Mon Sep 17 00:00:00 2001
From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 20 Jun 2007 06:50:23 +0000
Subject: PR middle-end/32285
* calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
if ACCUMULATE_OUTGOING_ARGS.
* gcc.c-torture/execute/20070614-1.c: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@125879 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ec0a88f..15b0e21 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-06-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/32285
+ * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
+ if ACCUMULATE_OUTGOING_ARGS.
+
2007-06-20 Kaz Kojima <kkojima@gcc.gnu.org>
PR rtl-optimization/28011
diff --git a/gcc/calls.c b/gcc/calls.c
index df6699a..45001c0 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -1239,13 +1239,25 @@ precompute_arguments (int flags, int num_actuals, struct arg_data *args)
/* If this is a libcall, then precompute all arguments so that we do not
get extraneous instructions emitted as part of the libcall sequence. */
- if ((flags & ECF_LIBCALL_BLOCK) == 0)
+
+ /* If we preallocated the stack space, and some arguments must be passed
+ on the stack, then we must precompute any parameter which contains a
+ function call which will store arguments on the stack.
+ Otherwise, evaluating the parameter may clobber previous parameters
+ which have already been stored into the stack. (we have code to avoid
+ such case by saving the outgoing stack arguments, but it results in
+ worse code) */
+ if ((flags & ECF_LIBCALL_BLOCK) == 0 && !ACCUMULATE_OUTGOING_ARGS)
return;
for (i = 0; i < num_actuals; i++)
{
enum machine_mode mode;
+ if ((flags & ECF_LIBCALL_BLOCK) == 0
+ && TREE_CODE (args[i].tree_value) != CALL_EXPR)
+ continue;
+
/* If this is an addressable type, we cannot pre-evaluate it. */
gcc_assert (!TREE_ADDRESSABLE (TREE_TYPE (args[i].tree_value)));
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 97efa9f..7310cea 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-06-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/32285
+ * gcc.c-torture/execute/20070614-1.c: New test.
+
2007-06-19 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/32353
diff --git a/gcc/testsuite/gcc.c-torture/execute/20070614-1.c b/gcc/testsuite/gcc.c-torture/execute/20070614-1.c
new file mode 100644
index 0000000..fa44f7f
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20070614-1.c
@@ -0,0 +1,33 @@
+extern void abort (void);
+
+_Complex v = 3.0 + 1.0iF;
+
+void
+foo (_Complex z, int *x)
+{
+ if (z != v)
+ abort ();
+}
+
+_Complex bar (_Complex z) __attribute__ ((pure));
+_Complex
+bar (_Complex z)
+{
+ return v;
+}
+
+int
+baz (void)
+{
+ int a, i;
+ for (i = 0; i < 6; i++)
+ foo (bar (1.0iF * i), &a);
+ return 0;
+}
+
+int
+main ()
+{
+ baz ();
+ return 0;
+}
--
1.5.4
From e68fe8cec392390e4d980309b4ccfb0418ad8fca Mon Sep 17 00:00:00 2001
From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 20 Jun 2007 06:51:47 +0000
Subject: PR inline-asm/32109
* gimplify.c (gimplify_asm_expr): Issue error if type is addressable
and !allows_mem.
* g++.dg/ext/asm10.C: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@125880 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 15b0e21..7073f37 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2007-06-20 Jakub Jelinek <jakub@redhat.com>
+ PR inline-asm/32109
+ * gimplify.c (gimplify_asm_expr): Issue error if type is addressable
+ and !allows_mem.
+
PR middle-end/32285
* calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
if ACCUMULATE_OUTGOING_ARGS.
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index e10b33d..ce1d3b0 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -3790,6 +3790,19 @@ gimplify_asm_expr (tree *expr_p, tree *pre_p, tree *post_p)
parse_input_constraint (&constraint, 0, 0, noutputs, 0,
oconstraints, &allows_mem, &allows_reg);
+ /* If we can't make copies, we can only accept memory. */
+ if (TREE_ADDRESSABLE (TREE_TYPE (TREE_VALUE (link))))
+ {
+ if (allows_mem)
+ allows_reg = 0;
+ else
+ {
+ error ("impossible constraint in %<asm%>");
+ error ("non-memory input %d must stay in memory", i);
+ return GS_ERROR;
+ }
+ }
+
/* If the operand is a memory input, it should be an lvalue. */
if (!allows_reg && allows_mem)
{
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7310cea..7cdf183 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,8 @@
2007-06-20 Jakub Jelinek <jakub@redhat.com>
+ PR inline-asm/32109
+ * g++.dg/ext/asm10.C: New test.
+
PR middle-end/32285
* gcc.c-torture/execute/20070614-1.c: New test.
diff --git a/gcc/testsuite/g++.dg/ext/asm10.C b/gcc/testsuite/g++.dg/ext/asm10.C
new file mode 100644
index 0000000..b95027c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/asm10.C
@@ -0,0 +1,14 @@
+// PR inline-asm/32109
+// { dg-do compile }
+// { dg-options "-O2" }
+
+struct A { int i[3]; ~A (); };
+struct A a;
+struct B { struct A c; int i; B (); } b;
+
+B::B ()
+{
+ __asm ("" : : "r" (a)); // { dg-error "impossible constraint|non-memory input" }
+ __asm ("" : : "r" (b.c)); // { dg-error "impossible constraint|non-memory input" }
+ __asm ("" : : "r" (c)); // { dg-error "impossible constraint|non-memory input" }
+}
--
1.5.4
From 91e37b46d0e3dc438e102261e439fa37557a1863 Mon Sep 17 00:00:00 2001
From: mueller <mueller@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 20 Jun 2007 16:27:23 +0000
Subject: 2007-06-20 Dirk Mueller <dmueller@suse.de>
PR c++/31809
PR c++/31806
Backport from mainline:
2007-05-31 Jakub Jelinek <jakub@redhat.com>
* decl.c (cp_finish_decl): Also clear was_readonly if a static var
needs runtime initialization.
2007-05-30 Jakub Jelinek <jakub@redhat.com>
* decl.c (cp_finish_decl): Clear TREE_READONLY flag on TREE_STATIC
variables that need runtime initialization.
* g++.dg/opt/static5.C: New testcase
* g++.dg/opt/static6.C: Likewise
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@125887 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index c330b42..9cb6d56 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,18 @@
+2007-06-20 Dirk Mueller <dmueller@suse.de>
+
+ PR c++/31809
+ PR c++/31806
+ Backport from mainline:
+ 2007-05-31 Jakub Jelinek <jakub@redhat.com>
+
+ * decl.c (cp_finish_decl): Also clear was_readonly if a static var
+ needs runtime initialization.
+
+ 2007-05-30 Jakub Jelinek <jakub@redhat.com>
+
+ * decl.c (cp_finish_decl): Clear TREE_READONLY flag on TREE_STATIC
+ variables that need runtime initialization.
+
2007-04-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR C++/30221
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 3b9c470..32040ab 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -5240,7 +5240,15 @@ cp_finish_decl (tree decl, tree init, bool init_const_expr_p,
initializer. It is not legal to redeclare a static data
member, so this issue does not arise in that case. */
if (var_definition_p && TREE_STATIC (decl))
- expand_static_init (decl, init);
+ {
+ if (init)
+ {
+ if (TREE_READONLY (decl))
+ TREE_READONLY (decl) = 0;
+ was_readonly = 0;
+ }
+ expand_static_init (decl, init);
+ }
}
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7cdf183..604970b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2007-06-20 Dirk Mueller <dmueller@suse.de>
+
+ PR c++/31806
+ PR c++/31809
+ * g++.dg/opt/static5.C: New test.
+ * g++.dg/opt/static6.C: New test.
+
2007-06-20 Jakub Jelinek <jakub@redhat.com>
PR inline-asm/32109
diff --git a/gcc/testsuite/g++.dg/opt/static5.C b/gcc/testsuite/g++.dg/opt/static5.C
new file mode 100644
index 0000000..1daca6d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/static5.C
@@ -0,0 +1,29 @@
+// PR c++/31809
+// { dg-do run }
+// { dg-options "-O2" }
+
+struct S
+{
+ unsigned v;
+ static inline S f (unsigned a);
+};
+
+inline S
+S::f (unsigned a)
+{
+ static S t = { a };
+ return t;
+}
+
+const static S s = S::f (26);
+
+extern "C" void abort (void);
+
+int
+main ()
+{
+ S t = s;
+ if (t.v != 26)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/opt/static6.C b/gcc/testsuite/g++.dg/opt/static6.C
new file mode 100644
index 0000000..00e76fb
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/static6.C
@@ -0,0 +1,35 @@
+// PR c++/31806
+// { dg-do run }
+// { dg-options "-O2 -fno-inline -fno-threadsafe-statics" }
+
+extern "C" void abort(void);
+
+struct A
+{
+ void *d;
+};
+
+static const A& staticA()
+{
+ static A s_static;
+ return s_static;
+}
+
+void assert_failed()
+{
+ abort();
+}
+
+A testMethod()
+{
+ static const A& s = staticA( );
+ if (&s == 0)
+ assert_failed();
+ return s;
+}
+
+int main()
+{
+ testMethod();
+ return 0;
+}
--
1.5.4
From 8878c940995972ee33a1722d22160f20574d8af3 Mon Sep 17 00:00:00 2001
From: uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 21 Jun 2007 07:13:16 +0000
Subject: PR target/32389
* config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
* config/i386/i386.c (assign_386_stack_local): Assert that
SLOT_VIRTUAL is valid only before virtual regs are instantiated.
(ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
* config/i386/i386.md (truncdfsf2, truncxfsf2, truncxfdf2): Ditto.
testsuite/ChangeLog:
PR target/32389
* gcc.target/i386/pr32389.c New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@125912 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7073f37..493e7a1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2007-06-21 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/32389
+ * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
+ * config/i386/i386.c (assign_386_stack_local): Assert that
+ SLOT_VIRTUAL is valid only before virtual regs are instantiated.
+ (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
+ Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
+ * config/i386/i386.md (truncdfsf2, truncxfsf2, truncxfdf2): Ditto.
+
2007-06-20 Jakub Jelinek <jakub@redhat.com>
PR inline-asm/32109
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 646b404..af43c47 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -12865,6 +12865,9 @@ assign_386_stack_local (enum machine_mode mode, enum ix86_stack_slot n)
gcc_assert (n < MAX_386_STACK_LOCALS);
+ /* Virtual slot is valid only before vregs are instantiated. */
+ gcc_assert ((n == SLOT_VIRTUAL) == !virtuals_instantiated);
+
for (s = ix86_stack_locals; s; s = s->next)
if (s->mode == mode && s->n == n)
return s->rtl;
@@ -15494,13 +15497,13 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED,
case IX86_BUILTIN_LDMXCSR:
op0 = expand_expr (TREE_VALUE (arglist), NULL_RTX, VOIDmode, 0);
- target = assign_386_stack_local (SImode, SLOT_TEMP);
+ target = assign_386_stack_local (SImode, SLOT_VIRTUAL);
emit_move_insn (target, op0);
emit_insn (gen_sse_ldmxcsr (target));
return 0;
case IX86_BUILTIN_STMXCSR:
- target = assign_386_stack_local (SImode, SLOT_TEMP);
+ target = assign_386_stack_local (SImode, SLOT_VIRTUAL);
emit_insn (gen_sse_stmxcsr (target));
return copy_to_mode_reg (SImode, target);
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index 15e3f42..737fae7 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -2206,7 +2206,8 @@ enum ix86_entity
enum ix86_stack_slot
{
- SLOT_TEMP = 0,
+ SLOT_VIRTUAL = 0,
+ SLOT_TEMP,
SLOT_CW_STORED,
SLOT_CW_TRUNC,
SLOT_CW_FLOOR,
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 6350b50..4ba0327 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -3684,7 +3684,7 @@
;
else
{
- rtx temp = assign_386_stack_local (SFmode, SLOT_TEMP);
+ rtx temp = assign_386_stack_local (SFmode, SLOT_VIRTUAL);
emit_insn (gen_truncdfsf2_with_temp (operands[0], operands[1], temp));
DONE;
}
@@ -3836,7 +3836,7 @@
DONE;
}
else
- operands[2] = assign_386_stack_local (SFmode, SLOT_TEMP);
+ operands[2] = assign_386_stack_local (SFmode, SLOT_VIRTUAL);
})
(define_insn "*truncxfsf2_mixed"
@@ -3934,7 +3934,7 @@
DONE;
}
else
- operands[2] = assign_386_stack_local (DFmode, SLOT_TEMP);
+ operands[2] = assign_386_stack_local (DFmode, SLOT_VIRTUAL);
})
(define_insn "*truncxfdf2_mixed"
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 604970b..208e276 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-06-21 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/32389
+ * gcc.target/i386/pr32389.c New test.
+
2007-06-20 Dirk Mueller <dmueller@suse.de>
PR c++/31806
diff --git a/gcc/testsuite/gcc.target/i386/pr32389.c b/gcc/testsuite/gcc.target/i386/pr32389.c
new file mode 100644
index 0000000..3f4cb3e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr32389.c
@@ -0,0 +1,10 @@
+/* Testcase by Mike Frysinger <vapier@gentoo.org> */
+
+/* { dg-do compile { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+/* { dg-options "-msse" } */
+
+double f1();
+int f2() {
+ __builtin_ia32_stmxcsr();
+ return f1();
+}
--
1.5.4
From 3240e3c355618ce662cdd970cb9ea77bf4c2034a Mon Sep 17 00:00:00 2001
From: jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 26 Jun 2007 20:03:16 +0000
Subject: * sv.po: Update.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@126039 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog
index 09c5ae7..d6e711f 100644
--- a/gcc/po/ChangeLog
+++ b/gcc/po/ChangeLog
@@ -1,3 +1,7 @@
+2007-06-26 Joseph S. Myers <joseph@codesourcery.com>
+
+ * sv.po: Update.
+
2007-04-21 Joseph S. Myers <joseph@codesourcery.com>
* sv.po: Update.
diff --git a/gcc/po/sv.po b/gcc/po/sv.po
index 4817029..1987b1f 100644
--- a/gcc/po/sv.po
+++ b/gcc/po/sv.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: gcc 4.1.1\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
"POT-Creation-Date: 2006-05-24 16:19-0700\n"
-"PO-Revision-Date: 2007-04-03 09:58+0200\n"
+"PO-Revision-Date: 2007-04-27 23:54+0200\n"
"Last-Translator: G<F6>ran Uddeborg <goeran@uddeborg.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"MIME-Version: 1.0\n"
@@ -310,11 +310,11 @@ msgstr "vektor initierad fr
#: c-typeck.c:4458 cp/typeck2.c:672
#, gcc-internal-format
msgid "char-array initialized from wide string"
-msgstr "char-vektor initierad fr<E5>n vid str<E4>ng"
+msgstr "char-vektor initierad fr<E5>n bred str<E4>ng"
#: c-typeck.c:4463
msgid "wchar_t-array initialized from non-wide string"
-msgstr "wchar_t-vektor initierad fr<E5>n icke-vid str<E4>ng"
+msgstr "wchar_t-vektor initierad fr<E5>n icke-bred str<E4>ng"
#: c-typeck.c:4481 cp/typeck2.c:692
#, gcc-internal-format
@@ -2177,7 +2177,7 @@ msgstr "Den maximala antalet postf
#: params.def:78
msgid "The threshold ratio between instantiated fields and the total structure size"
-msgstr "Tr<F6>skelf<F6>rh<E5>llandet mellan instantierade f<E4>lt och den totala poststorleken"
+msgstr "Tr<F6>skelf<F6>rh<E5>llandet mellan instansierade f<E4>lt och den totala poststorleken"
#: params.def:95
msgid "The maximum number of instructions in a single function eligible for inlining"
@@ -12606,11 +12606,11 @@ msgstr "Exportera funktioner
#: c.opt:558
msgid "Emit implicit instantiations of inline templates"
-msgstr "Skapa implicita instantieringar av inline:ade mallar"
+msgstr "Skapa implicita instansieringar av inline:ade mallar"
#: c.opt:562
msgid "Emit implicit instantiations of templates"
-msgstr "Skapa implicita instantieringar av mallar"
+msgstr "Skapa implicita instansieringar av mallar"
#: c.opt:566
msgid "Inject friend functions into enclosing namespace"
@@ -12742,7 +12742,7 @@ msgstr "Mata ut common-liknande symboler som svaga symboler"
#: c.opt:730
msgid "Convert all wide strings and character constants to character set <cset>"
-msgstr "Konvertera alla vida str<E4>ngar och teckenkonstanter till teckenupps<E4>ttningen <tknst>"
+msgstr "Konvertera alla breda str<E4>ngar och teckenkonstanter till teckenupps<E4>ttningen <tknst>"
#: c.opt:734
msgid "Generate a #line directive pointing at the current working directory"
@@ -14603,7 +14603,7 @@ msgstr "oanv
#: c-decl.c:816
#, gcc-internal-format
msgid "type of array %q+D completed incompatibly with implicit initialization"
-msgstr "typen p<E5> vektor %q+D kompletterade okompatibelt med implicit initiering"
+msgstr "den kompletterade typen p<E5> vektor %q+D <E4>r okompatibel med implicit initiering"
#: c-decl.c:1050
#, gcc-internal-format
@@ -14635,7 +14635,7 @@ msgstr "prototypen f
#: c-decl.c:1120
#, gcc-internal-format
msgid "prototype for %q+D follows non-prototype definition"
-msgstr "prototyp f<F6>r %q+D f<F6>ljer p<E5> en definition som inte <E4>r en prototyp"
+msgstr "prototyp f<F6>r %q+D f<F6>ljer p<E5> en icke-prototypdefinition"
#: c-decl.c:1135
#, gcc-internal-format
@@ -14764,7 +14764,7 @@ msgstr "%q+D
#: c-decl.c:1537
#, gcc-internal-format
msgid "redefinition of parameter %q+D"
-msgstr "omdefiniering avparametern %q+D"
+msgstr "omdefiniering av parametern %q+D"
#: c-decl.c:1564
#, gcc-internal-format
@@ -14786,7 +14786,7 @@ msgstr "deklaration av %q+D skuggar en parameter"
msgid "declaration of %q+D shadows a global declaration"
msgstr "deklaration av %q+D skuggar en global deklaration"
-# local, det kan troligen vara b<E5>de lokal variabel och lokal funktionsdeklartion
+# local, det kan vara b<E5>de lokal variabel och lokal funktionsdeklartion
#: c-decl.c:1931
#, gcc-internal-format
msgid "declaration of %q+D shadows a previous local"
@@ -14861,7 +14861,7 @@ msgstr "%Jhopp in i satsuttryck"
#: c-decl.c:2564
#, gcc-internal-format
msgid "%Jjump into scope of identifier with variably modified type"
-msgstr "%Jhopp in i r<E4>ckvidd f<F6>r identifierare med variabelt modifierad typ"
+msgstr "%Jhopp in i r<E4>ckvidd f<F6>r identifierare med variabel typ"
#: c-decl.c:2579
#, gcc-internal-format
@@ -14931,7 +14931,7 @@ msgstr "tom deklaration"
#: c-decl.c:3029
#, gcc-internal-format
msgid "ISO C90 does not support %<static%> or type qualifiers in parameter array declarators"
-msgstr "ISO C90 st<F6>djer inte %<static%> eller typkvalificerare i parametervektordelklarerare"
+msgstr "ISO C90 st<F6>djer inte %<static%> eller typkvalificerare i parametervektordeklarerare"
#: c-decl.c:3032
#, gcc-internal-format
@@ -15417,7 +15417,7 @@ msgstr "posten har inga medlemmar"
#: c-decl.c:5392
#, gcc-internal-format
msgid "%Jflexible array member in union"
-msgstr "%Jflexibel vektormedem i union"
+msgstr "%Jflexibel vektormedlem i union"
#: c-decl.c:5397
#, gcc-internal-format
@@ -15628,7 +15628,7 @@ msgstr "argument %qD st
#: c-decl.c:6590 cp/decl.c:10962
#, gcc-internal-format
msgid "no return statement in function returning non-void"
-msgstr "ingen return i funktion som returnerar icke-void"
+msgstr "ingen retursats i funktion som returnerar icke-void"
#: c-decl.c:6599
#, gcc-internal-format
@@ -15641,7 +15641,7 @@ msgstr "denna funktion kan returnera med eller utan ett v
#: c-decl.c:6692
#, gcc-internal-format
msgid "%<for%> loop initial declaration used outside C99 mode"
-msgstr "%<for%>-snurra med startdeklaration anv<E4>nd utanf<F6>r C99-l<E4>ge"
+msgstr "%<for%>-slinga med startdeklaration anv<E4>nd utanf<F6>r C99-l<E4>ge"
#: c-decl.c:6721
#, gcc-internal-format
@@ -15796,7 +15796,7 @@ msgstr "b
#: c-decl.c:7161
#, gcc-internal-format
msgid "ISO C90 does not support complex types"
-msgstr "ISO C90 st<F6>djer inte typen complex"
+msgstr "ISO C90 st<F6>djer inte komplexa typen"
#: c-decl.c:7163 c-decl.c:7204
#, gcc-internal-format
@@ -15871,7 +15871,7 @@ msgstr "%q+F
#: c-format.c:97 c-format.c:206
#, gcc-internal-format
msgid "format string has invalid operand number"
-msgstr "formatstr<E4>ng har ogiltigt operandenummer"
+msgstr "formatstr<E4>ng har ogiltigt operandnummer"
#: c-format.c:114
#, gcc-internal-format
@@ -15971,7 +15971,7 @@ msgstr "%s-formatstr
#: c-format.c:1253
#, gcc-internal-format
msgid "format is a wide character string"
-msgstr "formatet <E4>r en str<E4>ng vida tecken"
+msgstr "formatet <E4>r en str<E4>ng breda tecken"
#: c-format.c:1256
#, gcc-internal-format
@@ -16022,7 +16022,7 @@ msgstr "tom precision i %s-format"
#: c-format.c:1758
#, fuzzy, gcc-internal-format
msgid "%s does not support the %qs %s length modifier"
-msgstr "%s st<F6>djer inte l<E4>ngdmodifieraren %qs %s"
+msgstr "%1$s st<F6>djer inte %3$s-l<E4>ngdmodifieraren %2$qs"
#: c-format.c:1808
#, gcc-internal-format
@@ -16102,7 +16102,7 @@ msgstr "%<%%%c%> ger bara de sista tv
#: c-format.c:1952
#, gcc-internal-format
msgid "no closing %<]%> for %<%%[%> format"
-msgstr "ingen avslutande %<}%> till %<%%[%>-format"
+msgstr "ingen avslutande %<]%> till %<%%[%>-format"
#: c-format.c:1966
#, gcc-internal-format
@@ -16537,7 +16537,7 @@ msgstr "deklarationsspecificerare eller %<...%> f
#: c-parser.c:2587
#, gcc-internal-format
msgid "wide string literal in %<asm%>"
-msgstr "vid str<E4>ngliteral i %<asm%>"
+msgstr "bred str<E4>ngliteral i %<asm%>"
#: c-parser.c:2593
#, gcc-internal-format
@@ -17592,7 +17592,7 @@ msgstr "hopp in i satsuttryck"
#: c-typeck.c:6759
#, gcc-internal-format
msgid "jump into scope of identifier with variably modified type"
-msgstr "hopp in i r<E4>ckvidd f<F6>r identifierare med variabelt modifierad typ"
+msgstr "hopp in i r<E4>ckvidd f<F6>r identifierare med variabel typ"
#: c-typeck.c:6796
#, gcc-internal-format
@@ -17642,12 +17642,12 @@ msgstr "%<default%>-etikett i satsuttryck som inte inneh
#: c-typeck.c:7019
#, gcc-internal-format
msgid "case label in scope of identifier with variably modified type not containing enclosing switch statement"
-msgstr "case-etikett i r<E4>ckvidden f<F6>r en identifierare med variabelt modifierad typ som inte inneh<E5>ller en omslutande switch-sats"
+msgstr "case-etikett i r<E4>ckvidden f<F6>r en identifierare med variabel typ som inte inneh<E5>ller en omslutande switch-sats"
#: c-typeck.c:7022
#, gcc-internal-format
msgid "%<default%> label in scope of identifier with variably modified type not containing enclosing switch statement"
-msgstr "%<default%>-etikett i r<E4>ckvidden f<F6>r en identifierare med variabelt modifierad typ som inte inneh<E5>ller en omslutande switch-sats"
+msgstr "%<default%>-etikett i r<E4>ckvidden f<F6>r en identifierare med variabel typ som inte inneh<E5>ller en omslutande switch-sats"
#: c-typeck.c:7026 cp/parser.c:6207
#, gcc-internal-format
@@ -18287,7 +18287,7 @@ msgstr "pekarv
#: convert.c:748
#, gcc-internal-format
msgid "aggregate value used where a complex was expected"
-msgstr "sammansatt v<E4>rde anv<E4>tn d<E4>r ett komplext v<E4>rde f<F6>rv<E4>ntades"
+msgstr "sammansatt v<E4>rde anv<E4>nt d<E4>r ett komplext v<E4>rde f<F6>rv<E4>ntades"
#: convert.c:770
#, gcc-internal-format
@@ -19032,7 +19032,7 @@ msgstr "indataoperandbegr
#: stmt.c:494
#, gcc-internal-format
msgid "matching constraint references invalid operand number"
-msgstr "matchningsbegr<E4>nsning refererar ogiltigt operandenummer"
+msgstr "matchningsbegr<E4>nsning refererar ogiltigt operandnummer"
#: stmt.c:532
#, gcc-internal-format
@@ -21604,7 +21604,7 @@ msgstr "Anv
#: config/rs6000/rs6000.c:1790
#, gcc-internal-format
msgid "Using old darwin ABI"
-msgstr "anv<E4>nder gammalt ABI darwin"
+msgstr "anv<E4>nder gammalt darwin-ABI"
#: config/rs6000/rs6000.c:1797
#, gcc-internal-format
@@ -22085,7 +22085,7 @@ msgstr "behovet av minne f
#: config/stormy16/stormy16.c:1274
#, gcc-internal-format
msgid "function_profiler support"
-msgstr "st<F6>d fr<F6> function_profiler"
+msgstr "st<F6>d f<F6>r function_profiler"
#: config/stormy16/stormy16.c:1363
#, gcc-internal-format
@@ -22319,7 +22319,7 @@ msgstr "pekar-p
#: cp/call.c:3000
#, gcc-internal-format
msgid "no match for call to %<(%T) (%A)%>"
-msgstr "inge tr<E4>f f<F6>r anrop till %<(%T) (%A)%>"
+msgstr "ingen tr<E4>ff f<F6>r anrop till %<(%T) (%A)%>"
#: cp/call.c:3009
#, gcc-internal-format
@@ -22693,7 +22693,7 @@ msgstr "bitf
#: cp/class.c:2652
#, gcc-internal-format
msgid "bit-field %q+D width not an integer constant"
-msgstr "bredd bitf<E4>ltet %q+D inte en heltalskonstant"
+msgstr "bredd f<F6>r bitf<E4>ltet %q+D inte en heltalskonstant"
#: cp/class.c:2657
#, gcc-internal-format
@@ -23095,8 +23095,8 @@ msgstr "funktionen %q+D omdeklarerad med attributet noinline"
msgid "previous declaration of %q+D was inline"
msgstr "tidigare deklaration av %q+D var inline"
-# F<F6>rsta %s blir "built-in" eller "library". P<E5>minnelse till mig sj<E46C76>
-# om att felrapportera. /G<F6>ran
+# F<F6>rsta %s blir "built-in" eller "library".
+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31665
#: cp/decl.c:1120 cp/decl.c:1193
#, gcc-internal-format
msgid "shadowing %s function %q#D"
@@ -24118,12 +24118,12 @@ msgstr "det g
#: cp/decl.c:7657
#, gcc-internal-format
msgid "data member may not have variably modified type %qT"
-msgstr "datamedlem f<E5>r inte ha variabelt modifierad typ %qT"
+msgstr "datamedlem f<E5>r inte ha variabel typ %qT"
#: cp/decl.c:7659
#, gcc-internal-format
msgid "parameter may not have variably modified type %qT"
-msgstr "parameter f<E5>r inte ha variabelt modifierad typ %qT"
+msgstr "parameter f<E5>r inte ha variabel typ %qT"
#. [dcl.fct.spec] The explicit specifier shall only be used in
#. declarations of constructors within a class definition.
@@ -24263,7 +24263,7 @@ msgstr "namnet %qT har ofullst
#: cp/decl.c:8137
#, gcc-internal-format
msgid " in instantiation of template %qT"
-msgstr " i instantiering av mallen %qT"
+msgstr " i instansiering av mallen %qT"
#: cp/decl.c:8147
#, gcc-internal-format
@@ -25683,7 +25683,7 @@ msgstr "%<this%> kan inte anv
#: cp/parser.c:3059
#, gcc-internal-format
msgid "local variable %qD may not appear in this context"
-msgstr "lokal Variabel %qD kan inte f<F6>rekomma i detta sammanhang"
+msgstr "lokal variabel %qD kan inte f<F6>rekomma i detta sammanhang"
#: cp/parser.c:3435
#, gcc-internal-format
@@ -26086,12 +26086,12 @@ msgstr "
#: cp/pt.c:686
#, gcc-internal-format
msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
-msgstr "explicit instantiering av %qD i namnrymden %qD (som inte omsluter namnrymden %qD)"
+msgstr "explicit instansiering av %qD i namnrymden %qD (som inte omsluter namnrymden %qD)"
#: cp/pt.c:726
#, gcc-internal-format
msgid "specialization of %qT after instantiation"
-msgstr "specialisering av %qT efter instantiering"
+msgstr "specialisering av %qT efter instansiering"
#: cp/pt.c:758
#, gcc-internal-format
@@ -26101,7 +26101,7 @@ msgstr "specialiserar %q#T i en annan namnrymd"
#: cp/pt.c:773
#, gcc-internal-format
msgid "specialization %qT after instantiation %qT"
-msgstr "specialisering %qT efterin instantiering %qT"
+msgstr "specialisering %qT efter instansiering %qT"
#: cp/pt.c:785
#, gcc-internal-format
@@ -26111,7 +26111,7 @@ msgstr "explicit specialisering av icke-mall %qT"
#: cp/pt.c:1179
#, gcc-internal-format
msgid "specialization of %qD after instantiation"
-msgstr "specialisering av %qD efter instantiering"
+msgstr "specialisering av %qD efter instansiering"
#: cp/pt.c:1383
#, gcc-internal-format
@@ -26143,7 +26143,7 @@ msgstr "mallparameterlista anv
#: cp/pt.c:1835
#, gcc-internal-format
msgid "definition provided for explicit instantiation"
-msgstr "definition given f<F6>r explicit instantiering"
+msgstr "definition given f<F6>r explicit instansiering"
#: cp/pt.c:1843
#, gcc-internal-format
@@ -26458,7 +26458,7 @@ msgstr "f
#: cp/pt.c:5066
#, gcc-internal-format
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %qD"
-msgstr "mallinstantieringsdjupet <F6>verskrider maxv<E4>rdet p<E5> %d (anv<E4>nd -ftemplate-depth-NN f<F6>r att <F6>ka maxv<E4>rdet) vid instantiering av %qD"
+msgstr "mallinstansieringsdjupet <F6>verskrider maxv<E4>rdet p<E5> %d (anv<E4>nd -ftemplate-depth-NN f<F6>r att <F6>ka maxv<E4>rdet) vid instansiering av %qD"
#: cp/pt.c:6621
#, gcc-internal-format
@@ -26553,7 +26553,7 @@ msgstr "anv
#: cp/pt.c:7702
#, gcc-internal-format
msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
-msgstr "namnet %qE i den beroende tolkas som n<E5>got annat <E4>n en typ, men instantiering ger en typ"
+msgstr "namnet %qE i den beroende tolkas som n<E5>got annat <E4>n en typ, men instansiering ger en typ"
#: cp/pt.c:7704
#, gcc-internal-format
@@ -26588,7 +26588,7 @@ msgstr "%qT anv
#: cp/pt.c:9096
#, gcc-internal-format
msgid "%qT is a variably modified type"
-msgstr "%qT <E4>r en variabelt modifierad typ"
+msgstr "%qT <E4>r en variabel typ"
#: cp/pt.c:9107
#, gcc-internal-format
@@ -26598,7 +26598,7 @@ msgstr "heltalsuttryck %qE
#: cp/pt.c:9112
#, gcc-internal-format
msgid " trying to instantiate %qD"
-msgstr " f<F6>rs<F6>ker instantiera %qD"
+msgstr " f<F6>rs<F6>ker instansiera %qD"
#: cp/pt.c:11103
#, gcc-internal-format
@@ -26613,7 +26613,7 @@ msgstr "%s %+#T"
#: cp/pt.c:11129 cp/pt.c:11200
#, gcc-internal-format
msgid "explicit instantiation of non-template %q#D"
-msgstr "explicit instantieringar av icke-mall %q#D"
+msgstr "explicit instansieringar av icke-mall %q#D"
#: cp/pt.c:11145 cp/pt.c:11195
#, gcc-internal-format
@@ -26623,17 +26623,17 @@ msgstr "det finns ingen matchande mall f
#: cp/pt.c:11151
#, gcc-internal-format
msgid "explicit instantiation of %q#D"
-msgstr "explicit instantiering av %q#D"
+msgstr "explicit instansiering av %q#D"
#: cp/pt.c:11187
#, gcc-internal-format
msgid "duplicate explicit instantiation of %q#D"
-msgstr "dubblerad explicit instantiering av %q#D"
+msgstr "dubblerad explicit instansiering av %q#D"
#: cp/pt.c:11209
#, gcc-internal-format
msgid "ISO C++ forbids the use of %<extern%> on explicit instantiations"
-msgstr "ISO C++ f<F6>rbjuder anv<E4>ndning av %<extern%> vid explicita instantieringar"
+msgstr "ISO C++ f<F6>rbjuder anv<E4>ndning av %<extern%> vid explicita instansieringar"
#: cp/pt.c:11214 cp/pt.c:11307
#, gcc-internal-format
@@ -26643,32 +26643,32 @@ msgstr "lagringsklass %qD till
#: cp/pt.c:11279
#, gcc-internal-format
msgid "explicit instantiation of non-template type %qT"
-msgstr "explicit instantieringar av icke-malltyp %qT"
+msgstr "explicit instansieringar av icke-malltyp %qT"
#: cp/pt.c:11288
#, gcc-internal-format
msgid "explicit instantiation of %q#T before definition of template"
-msgstr "explicit instantiering av %q#T f<F6>re definitionen av mallen"
+msgstr "explicit instansiering av %q#T f<F6>re definitionen av mallen"
#: cp/pt.c:11296
#, gcc-internal-format
msgid "ISO C++ forbids the use of %qE on explicit instantiations"
-msgstr "ISO C++ f<F6>rbjuder anv<E4>nding av %qE vid explicita instantieringar"
+msgstr "ISO C++ f<F6>rbjuder anv<E4>nding av %qE vid explicita instansieringar"
#: cp/pt.c:11341
#, gcc-internal-format
msgid "duplicate explicit instantiation of %q#T"
-msgstr "duppblerad explicit instantiering av %q#T"
+msgstr "duppblerad explicit instansiering av %q#T"
#: cp/pt.c:11754
#, gcc-internal-format
msgid "explicit instantiation of %qD but no definition available"
-msgstr "explicit instantiering av %qD men ingen definition tillg<E4>nglig"
+msgstr "explicit instansiering av %qD men ingen definition tillg<E4>nglig"
#: cp/pt.c:11901
#, gcc-internal-format
msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use -ftemplate-depth-NN to increase the maximum)"
-msgstr "mallinstantieringsdjupet <F6>verskrider maxv<E4>rdet p<E5> %d vid instantiering av %qD, m<F6>jligen fr<E5>n generering av virtuell tabell (anv<E4>nd -ftemplate-depth-NN f<F6>r att <F6>ka maxv<E4>rdet)"
+msgstr "mallinstansieringsdjupet <F6>verskrider maxv<E4>rdet p<E5> %d vid instansiering av %qD, m<F6>jligen fr<E5>n generering av virtuell tabell (anv<E4>nd -ftemplate-depth-NN f<F6>r att <F6>ka maxv<E4>rdet)"
#: cp/pt.c:12174
#, gcc-internal-format
@@ -27599,7 +27599,7 @@ msgstr "det g
#: cp/typeck2.c:678
#, gcc-internal-format
msgid "int-array initialized from non-wide string"
-msgstr "int-vektor initierad fr<E5>n icke-vid str<E4>ng"
+msgstr "int-vektor initierad fr<E5>n icke-bred str<E4>ng"
#: cp/typeck2.c:717
#, gcc-internal-format
@@ -28003,7 +28003,7 @@ msgstr "on
#: java/expr.c:3329
#, gcc-internal-format
msgid "unrecogized wide sub-instruction"
-msgstr "ok<E4>nd vid underinstruktion"
+msgstr "ok<E4>nd bred underinstruktion"
#: java/gjavah.c:718
#, gcc-internal-format
@@ -28048,7 +28048,7 @@ msgstr "klass
#: java/gjavah.c:2231
#, gcc-internal-format
msgid "base class is of array type"
-msgstr "basklassen har vetktortyp"
+msgstr "basklassen har vektortyp"
#: java/gjavah.c:2429 java/gjavah.c:2556
#, gcc-internal-format
--
1.5.4
From 63041b6209b60a8f4dc9217afd4fe62188e62dc4 Mon Sep 17 00:00:00 2001
From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 28 Jun 2007 11:30:50 +0000
Subject: 2007-06-28 Jakub Jelinek <jakub@redhat.com>
* config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
decl is non-external for AIX ABI.
2007-06-28 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/predicates.md (current_file_function_operand):
Ensure the symbol is non-external for AIX ABI.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@126078 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 493e7a1..158dd6c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2007-06-28 Jakub Jelinek <jakub@redhat.com>
+
+ * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
+ decl is non-external for AIX ABI.
+
+2007-06-28 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/predicates.md (current_file_function_operand):
+ Ensure the symbol is non-external for AIX ABI.
+
2007-06-21 Uros Bizjak <ubizjak@gmail.com>
PR target/32389
diff --git a/gcc/config/rs6000/predicates.md b/gcc/config/rs6000/predicates.md
index 258eccc..0cf3013 100644
--- a/gcc/config/rs6000/predicates.md
+++ b/gcc/config/rs6000/predicates.md
@@ -691,7 +691,9 @@
(define_predicate "current_file_function_operand"
(and (match_code "symbol_ref")
(match_test "(DEFAULT_ABI != ABI_AIX || SYMBOL_REF_FUNCTION_P (op))
- && (SYMBOL_REF_LOCAL_P (op)
+ && ((SYMBOL_REF_LOCAL_P (op)
+ && (DEFAULT_ABI != ABI_AIX
+ || !SYMBOL_REF_EXTERNAL_P (op)))
|| (op == XEXP (DECL_RTL (current_function_decl),
0)))")))
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 0f76f45..c775552 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -13327,7 +13327,8 @@ rs6000_function_ok_for_sibcall (tree decl, tree exp ATTRIBUTE_UNUSED)
}
}
if (DEFAULT_ABI == ABI_DARWIN
- || (*targetm.binds_local_p) (decl))
+ || ((*targetm.binds_local_p) (decl)
+ && (DEFAULT_ABI != ABI_AIX || !DECL_EXTERNAL (decl))))
{
tree attr_list = TYPE_ATTRIBUTES (TREE_TYPE (decl));
--
1.5.4
From eaabf54a7d89b27c462ea11439eaa2abe8e95e6c Mon Sep 17 00:00:00 2001
From: spark <spark@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 28 Jun 2007 20:47:14 +0000
Subject: gcc/ChangeLog:
2007-06-28 Seongbae Park <seongbae.park@gmail.com>
* config/arm/arm.c (arm_get_frame_offsets): Set
offsets->locals_base to avoid negative stack size.
(thumb1_expand_prologue): Assert on negative stack size.
gcc/testsuite/ChangeLog:
2007-06-28 Seongbae Park <seongbae.park@gmail.com>
* gcc.target/arm/stack-corruption.c: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@126094 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 158dd6c..19b527b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-06-28 Seongbae Park <seongbae.park@gmail.com>
+
+ * config/arm/arm.c (arm_get_frame_offsets): Set
+ offsets->locals_base to avoid negative stack size.
+ (thumb1_expand_prologue): Assert on negative stack size.
+
2007-06-28 Jakub Jelinek <jakub@redhat.com>
* config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 355e433..a74d513 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -10453,6 +10453,7 @@ arm_get_frame_offsets (void)
if (leaf && frame_size == 0)
{
offsets->outgoing_args = offsets->soft_frame;
+ offsets->locals_base = offsets->soft_frame;
return offsets;
}
@@ -13782,6 +13783,7 @@ thumb_expand_epilogue (void)
amount = offsets->locals_base - offsets->saved_regs;
}
+ gcc_assert (amount >= 0);
if (amount)
{
if (amount < 512)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 208e276..e540725 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2007-06-28 Seongbae Park <seongbae.park@gmail.com>
+
+ * gcc.target/arm/stack-corruption.c: New test.
+
2007-06-21 Uros Bizjak <ubizjak@gmail.com>
PR target/32389
diff --git a/gcc/testsuite/gcc.target/arm/stack-corruption.c b/gcc/testsuite/gcc.target/arm/stack-corruption.c
new file mode 100644
index 0000000..3a63950
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/stack-corruption.c
@@ -0,0 +1,8 @@
+/* { dg-do compile } */
+/* { dg-options "-O -mthumb -fno-omit-frame-pointer" } */
+
+int main() {
+ return 0;
+}
+
+/* { dg-final { scan-assembler-not "\tadd\tr7, sp, #8\n" } } */
--
1.5.4
From e90defeaa8c1c32b768d02e2561927b6c298181f Mon Sep 17 00:00:00 2001
From: aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 30 Jun 2007 04:54:06 +0000
Subject: gcc/ChangeLog:
* dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
limbo die nodes.
gcc/testsuite/ChangeLog:
* g++.dg/ext/interface4.C, g++.dg/ext/interface4.h: New.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@126139 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 19b527b..9fd3820 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-06-30 Alexandre Oliva <aoliva@redhat.com>
+
+ * dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
+ limbo die nodes.
+
2007-06-28 Seongbae Park <seongbae.park@gmail.com>
* config/arm/arm.c (arm_get_frame_offsets): Set
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index c244d4b..0eaf18d 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -14151,7 +14151,9 @@ dwarf2out_finish (const char *filename)
else if (TYPE_P (node->created_for))
context = TYPE_CONTEXT (node->created_for);
- gcc_assert (context && TREE_CODE (context) == FUNCTION_DECL);
+ gcc_assert (context
+ && (TREE_CODE (context) == FUNCTION_DECL
+ || TREE_CODE (context) == NAMESPACE_DECL));
origin = lookup_decl_die (context);
if (origin)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e540725..dcf606f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2007-06-30 Alexandre Oliva <aoliva@redhat.com>
+
+ * g++.dg/ext/interface4.C, g++.dg/ext/interface4.h: New.
+
2007-06-28 Seongbae Park <seongbae.park@gmail.com>
* gcc.target/arm/stack-corruption.c: New test.
diff --git a/gcc/testsuite/g++.dg/ext/interface4.C b/gcc/testsuite/g++.dg/ext/interface4.C
new file mode 100644
index 0000000..85bb912
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/interface4.C
@@ -0,0 +1,13 @@
+/* https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=227376 */
+
+/* { dg-do compile } */
+/* { dg-options "-g2" } */
+
+/* We used to crash when emitting debug info for type N::A because its
+ context was a namespace, not a function. */
+
+#include "interface4.h"
+
+void f ( ) {
+ g ( );
+}
diff --git a/gcc/testsuite/g++.dg/ext/interface4.h b/gcc/testsuite/g++.dg/ext/interface4.h
new file mode 100644
index 0000000..0971b37
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/interface4.h
@@ -0,0 +1,8 @@
+#pragma interface
+namespace N {
+ typedef int A;
+}
+inline void g ( ) {
+ static N :: A a = 0;
+ a = a;
+}
--
1.5.4
From 809d128d55717ce4a6a23b147774a7efa92ba6e4 Mon Sep 17 00:00:00 2001
From: ro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 2 Jul 2007 15:02:26 +0000
Subject: PR boehm-gc/21940
PR boehm-gc/21942
* configure.ac (GC_SOLARIS_THREADS): Don't define on *-*-solaris*.
Use alternate thread library in /usr/lib/lwp.
* configure: Regenerate.
* dyn_load.c: Use GC_SOLARIS_PTHREADS.
* include/gc_config_macros.h (GC_SOLARIS_THREADS): Don't define.
* include/private/gcconfig.h: Handle 64-bit Solaris 2/x86.
(GC_SOLARIS_THREADS): Don't define.
* include/private/solaris_threads.h: Remove.
* pthread_support.c (GC_thr_init) [GC_SOLARIS_PTHREADS]: Determine
GC_nprocs via sysconf().
* Makefile.am (libgcjgc_la_SOURCES): Remove solaris_pthreads.c and
solaris_threads.c.
(gctest_LDADD): Use THREADLIBS instead of THREADDLLIBS.
* Makefile.in: Regenerate.
* solaris_pthreads.c: Remove.
* solaris_threads.c: Remove.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@126213 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
index c8ddffb..0be3c58 100644
--- a/boehm-gc/ChangeLog
+++ b/boehm-gc/ChangeLog
@@ -1,3 +1,24 @@
+2007-07-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ PR boehm-gc/21940
+ PR boehm-gc/21942
+ * configure.ac (GC_SOLARIS_THREADS): Don't define on *-*-solaris*.
+ Use alternate thread library in /usr/lib/lwp.
+ * configure: Regenerate.
+ * dyn_load.c: Use GC_SOLARIS_PTHREADS.
+ * include/gc_config_macros.h (GC_SOLARIS_THREADS): Don't define.
+ * include/private/gcconfig.h: Handle 64-bit Solaris 2/x86.
+ (GC_SOLARIS_THREADS): Don't define.
+ * include/private/solaris_threads.h: Remove.
+ * pthread_support.c (GC_thr_init) [GC_SOLARIS_PTHREADS]: Determine
+ GC_nprocs via sysconf().
+ * Makefile.am (libgcjgc_la_SOURCES): Remove solaris_pthreads.c and
+ solaris_threads.c.
+ (gctest_LDADD): Use THREADLIBS instead of THREADDLLIBS.
+ * Makefile.in: Regenerate.
+ * solaris_pthreads.c: Remove.
+ * solaris_threads.c: Remove.
+
2007-02-13 Release Manager
* GCC 4.1.2 released.
diff --git a/boehm-gc/Makefile.am b/boehm-gc/Makefile.am
index c87d8c5..83fba10 100644
--- a/boehm-gc/Makefile.am
+++ b/boehm-gc/Makefile.am
@@ -21,7 +21,7 @@ GC_SOURCES = allchblk.c alloc.c blacklst.c checksums.c dbg_mlc.c \
dyn_load.c finalize.c gc_dlopen.c gcj_mlc.c headers.c aix_irix_threads.c \
malloc.c mallocx.c mark.c mark_rts.c misc.c new_hblk.c \
obj_map.c os_dep.c pcr_interface.c ptr_chck.c real_malloc.c reclaim.c \
-solaris_pthreads.c solaris_threads.c specific.c stubborn.c typd_mlc.c \
+specific.c stubborn.c typd_mlc.c \
backgraph.c win32_threads.c \
pthread_support.c pthread_stop_world.c darwin_stop_world.c \
$(asm_libgc_sources)
diff --git a/boehm-gc/Makefile.in b/boehm-gc/Makefile.in
index 6f84220..3b92ce3 100644
--- a/boehm-gc/Makefile.in
+++ b/boehm-gc/Makefile.in
@@ -64,8 +64,7 @@ DIST_COMMON = $(srcdir)/../config.guess $(srcdir)/../config.sub \
$(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
$(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
$(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
- $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
- $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
+ $(srcdir)/../compile $(srcdir)/../compile \
$(srcdir)/../ltmain.sh $(srcdir)/../config.guess \
$(srcdir)/../config.sub
subdir = .
@@ -88,9 +87,9 @@ am__objects_2 = allchblk.lo alloc.lo blacklst.lo checksums.lo \
headers.lo aix_irix_threads.lo malloc.lo mallocx.lo mark.lo \
mark_rts.lo misc.lo new_hblk.lo obj_map.lo os_dep.lo \
pcr_interface.lo ptr_chck.lo real_malloc.lo reclaim.lo \
- solaris_pthreads.lo solaris_threads.lo specific.lo stubborn.lo \
- typd_mlc.lo backgraph.lo win32_threads.lo pthread_support.lo \
- pthread_stop_world.lo darwin_stop_world.lo $(am__objects_1)
+ specific.lo stubborn.lo typd_mlc.lo backgraph.lo \
+ win32_threads.lo pthread_support.lo pthread_stop_world.lo \
+ darwin_stop_world.lo $(am__objects_1)
am_libgcjgc_la_OBJECTS = $(am__objects_2)
libgcjgc_la_OBJECTS = $(am_libgcjgc_la_OBJECTS)
am_libgcjgc_convenience_la_OBJECTS = $(am__objects_2)
@@ -258,7 +257,7 @@ GC_SOURCES = allchblk.c alloc.c blacklst.c checksums.c dbg_mlc.c \
dyn_load.c finalize.c gc_dlopen.c gcj_mlc.c headers.c aix_irix_threads.c \
malloc.c mallocx.c mark.c mark_rts.c misc.c new_hblk.c \
obj_map.c os_dep.c pcr_interface.c ptr_chck.c real_malloc.c reclaim.c \
-solaris_pthreads.c solaris_threads.c specific.c stubborn.c typd_mlc.c \
+specific.c stubborn.c typd_mlc.c \
backgraph.c win32_threads.c \
pthread_support.c pthread_stop_world.c darwin_stop_world.c \
$(asm_libgc_sources)
diff --git a/boehm-gc/configure b/boehm-gc/configure
index d1ba876..5dbc9af 100755
--- a/boehm-gc/configure
+++ b/boehm-gc/configure
@@ -5448,14 +5448,14 @@ _ACEOF
*-*-solaris*)
cat >>confdefs.h <<\_ACEOF
-#define GC_SOLARIS_THREADS 1
-_ACEOF
-
-
-cat >>confdefs.h <<\_ACEOF
#define GC_SOLARIS_PTHREADS 1
_ACEOF
+ # Need to use alternate thread library, otherwise gctest hangs
+ # on Solaris 8.
+ multi_os_directory=`$CC -print-multi-os-directory`
+ THREADLIBS="-L/usr/lib/lwp/$multi_os_directory \
+ -R/usr/lib/lwp/$multi_os_directory -lpthread -lthread -lrt"
;;
*-*-irix*)
diff --git a/boehm-gc/configure.ac b/boehm-gc/configure.ac
index ef1e831..727f2d6 100644
--- a/boehm-gc/configure.ac
+++ b/boehm-gc/configure.ac
@@ -157,8 +157,12 @@ case "$THREADS" in
THREADLIBS=-pthread
;;
*-*-solaris*)
- AC_DEFINE(GC_SOLARIS_THREADS,1,[support for Solaris (thr_) threads])
AC_DEFINE(GC_SOLARIS_PTHREADS,1,[support for Solaris pthreads])
+ # Need to use alternate thread library, otherwise gctest hangs
+ # on Solaris 8.
+ multi_os_directory=`$CC -print-multi-os-directory`
+ THREADLIBS="-L/usr/lib/lwp/$multi_os_directory \
+ -R/usr/lib/lwp/$multi_os_directory -lpthread -lthread -lrt"
;;
*-*-irix*)
AC_DEFINE(GC_IRIX_THREADS,1,[support for Irix pthreads])
diff --git a/boehm-gc/dyn_load.c b/boehm-gc/dyn_load.c
index c5139aa..0ae6e78 100644
--- a/boehm-gc/dyn_load.c
+++ b/boehm-gc/dyn_load.c
@@ -206,7 +206,7 @@ static ptr_t GC_first_common()
# if defined(SUNOS4) || defined(SUNOS5DL)
/* Add dynamic library data sections to the root set. */
-# if !defined(PCR) && !defined(GC_SOLARIS_THREADS) && defined(THREADS)
+# if !defined(PCR) && !defined(GC_SOLARIS_PTHREADS) && defined(THREADS)
# ifndef SRC_M3
--> fix mutual exclusion with dlopen
# endif /* We assume M3 programs don't call dlopen for now */
diff --git a/boehm-gc/include/gc_config_macros.h b/boehm-gc/include/gc_config_macros.h
index 90c574e..07897c8 100644
--- a/boehm-gc/include/gc_config_macros.h
+++ b/boehm-gc/include/gc_config_macros.h
@@ -68,10 +68,6 @@
# define GC_WIN32_THREADS
#endif
-#if defined(GC_SOLARIS_PTHREADS) && !defined(GC_SOLARIS_THREADS)
-# define GC_SOLARIS_THREADS
-#endif
-
# define __GC
# ifndef _WIN32_WCE
# include <stddef.h>
diff --git a/boehm-gc/include/private/gcconfig.h b/boehm-gc/include/private/gcconfig.h
index deed0f5..d1444b7 100644
--- a/boehm-gc/include/private/gcconfig.h
+++ b/boehm-gc/include/private/gcconfig.h
@@ -146,6 +146,11 @@
# define SUNOS5
# define mach_type_known
# endif
+# if defined(sun) && defined(__amd64)
+# define X86_64
+# define SUNOS5
+# define mach_type_known
+# endif
# if (defined(__OS2__) || defined(__EMX__)) && defined(__32BIT__)
# define I386
# define OS2
@@ -1932,6 +1937,36 @@
extern char etext[];
# define SEARCH_FOR_DATA_START
# endif
+# ifdef SUNOS5
+# define ELF_CLASS ELFCLASS64
+# define OS_TYPE "SUNOS5"
+ extern int _etext[], _end[];
+ extern ptr_t GC_SysVGetDataStart();
+# define DATASTART GC_SysVGetDataStart(0x1000, _etext)
+# define DATAEND (_end)
+/* # define STACKBOTTOM ((ptr_t)(_start)) worked through 2.7, */
+/* but reportedly breaks under 2.8. It appears that the stack */
+/* base is a property of the executable, so this should not break */
+/* old executables. */
+/* HEURISTIC2 probably works, but this appears to be preferable. */
+/* # include <sys/vm.h> */
+/* # define STACKBOTTOM USRSTACK */
+# define HEURISTIC2
+# define PROC_VDB
+# define DYNAMIC_LOADING
+# if !defined(USE_MMAP) && defined(REDIRECT_MALLOC)
+# define USE_MMAP
+ /* Otherwise we now use calloc. Mmap may result in the */
+ /* heap interleaved with thread stacks, which can result in */
+ /* excessive blacklisting. Sbrk is unusable since it */
+ /* doesn't interact correctly with the system malloc. */
+# endif
+# ifdef USE_MMAP
+# define HEAP_START (ptr_t)0x40000000
+# else
+# define HEAP_START DATAEND
+# endif
+# endif
# endif
#if defined(LINUX) && defined(USE_MMAP)
@@ -2077,11 +2112,6 @@
((word*)x)[1] = 0;
# endif /* CLEAR_DOUBLE */
- /* Internally we use GC_SOLARIS_THREADS to test for either old or pthreads. */
-# if defined(GC_SOLARIS_PTHREADS) && !defined(GC_SOLARIS_THREADS)
-# define GC_SOLARIS_THREADS
-# endif
-
# if defined(GC_IRIX_THREADS) && !defined(IRIX5)
--> inconsistent configuration
# endif
diff --git a/boehm-gc/include/private/solaris_threads.h b/boehm-gc/include/private/solaris_threads.h
deleted file mode 100644
index b1f6262..0000000
--- a/boehm-gc/include/private/solaris_threads.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifdef GC_SOLARIS_THREADS
-
-/* The set of all known threads. We intercept thread creation and */
-/* joins. We never actually create detached threads. We allocate all */
-/* new thread stacks ourselves. These allow us to maintain this */
-/* data structure. */
-/* Protected by GC_thr_lock. */
-/* Some of this should be declared volatile, but that's incosnsistent */
-/* with some library routine declarations. In particular, the */
-/* definition of cond_t doesn't mention volatile! */
- typedef struct GC_Thread_Rep {
- struct GC_Thread_Rep * next;
- thread_t id;
- word flags;
-# define FINISHED 1 /* Thread has exited. */
-# define DETACHED 2 /* Thread is intended to be detached. */
-# define CLIENT_OWNS_STACK 4
- /* Stack was supplied by client. */
-# define SUSPNDED 8 /* Currently suspended. */
- /* SUSPENDED is used insystem header. */
- ptr_t stack;
- size_t stack_size;
- cond_t join_cv;
- void * status;
- } * GC_thread;
- extern GC_thread GC_new_thread(thread_t id);
-
- extern GC_bool GC_thr_initialized;
- extern volatile GC_thread GC_threads[];
- extern size_t GC_min_stack_sz;
- extern size_t GC_page_sz;
- extern void GC_thr_init(void);
- extern ptr_t GC_stack_alloc(size_t * stack_size);
- extern void GC_stack_free(ptr_t stack, size_t size);
-
-# endif /* GC_SOLARIS_THREADS */
-
diff --git a/boehm-gc/pthread_support.c b/boehm-gc/pthread_support.c
index 4b32afe..73def03 100644
--- a/boehm-gc/pthread_support.c
+++ b/boehm-gc/pthread_support.c
@@ -881,7 +881,7 @@ void GC_thr_init()
# if defined(GC_HPUX_THREADS)
GC_nprocs = pthread_num_processors_np();
# endif
-# if defined(GC_OSF1_THREADS)
+# if defined(GC_OSF1_THREADS) || defined(GC_SOLARIS_PTHREADS)
GC_nprocs = sysconf(_SC_NPROCESSORS_ONLN);
if (GC_nprocs <= 0) GC_nprocs = 1;
# endif
diff --git a/boehm-gc/solaris_pthreads.c b/boehm-gc/solaris_pthreads.c
deleted file mode 100644
index 90f6005..0000000
--- a/boehm-gc/solaris_pthreads.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Copyright (c) 1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/*
- * Support code for Solaris threads. Provides functionality we wish Sun
- * had provided. Relies on some information we probably shouldn't rely on.
- * Modified by Peter C. for Solaris Posix Threads.
- */
-
-#include "private/gc_priv.h"
-
-# if defined(GC_SOLARIS_PTHREADS)
-# include <pthread.h>
-# include <thread.h>
-# include <signal.h>
-# include <fcntl.h>
-# include <sys/types.h>
-# include <sys/mman.h>
-# include <sys/time.h>
-# include <sys/resource.h>
-# include <sys/stat.h>
-# include <sys/syscall.h>
-# include <sys/procfs.h>
-# include <sys/lwp.h>
-# include <sys/reg.h>
-# define _CLASSIC_XOPEN_TYPES
-# include <unistd.h>
-# include <errno.h>
-# include "private/solaris_threads.h"
-# include <stdio.h>
-
-#undef pthread_join
-#undef pthread_create
-
-pthread_cond_t GC_prom_join_cv; /* Broadcast when any thread terminates */
-pthread_cond_t GC_create_cv; /* Signalled when a new undetached */
- /* thread starts. */
-
-extern GC_bool GC_multithreaded;
-
-/* We use the allocation lock to protect thread-related data structures. */
-
-/* We stop the world using /proc primitives. This makes some */
-/* minimal assumptions about the threads implementation. */
-/* We don't play by the rules, since the rules make this */
-/* impossible (as of Solaris 2.3). Also note that as of */
-/* Solaris 2.3 the various thread and lwp suspension */
-/* primitives failed to stop threads by the time the request */
-/* is completed. */
-
-
-
-int GC_pthread_join(pthread_t wait_for, void **status)
-{
- return GC_thr_join((thread_t)wait_for, NULL, status);
-}
-
-
-int
-GC_pthread_create(pthread_t *new_thread,
- const pthread_attr_t *attr_in,
- void * (*thread_execp)(void *), void *arg)
-{
- int result;
- GC_thread t;
- pthread_t my_new_thread;
- pthread_attr_t attr;
- word my_flags = 0;
- int flag;
- void * stack = 0;
- size_t stack_size = 0;
- int n;
- struct sched_param schedparam;
-
- (void)pthread_attr_init(&attr);
- if (attr_in != 0) {
- (void)pthread_attr_getstacksize(attr_in, &stack_size);
- (void)pthread_attr_getstackaddr(attr_in, &stack);
- }
-
- LOCK();
- if (!GC_is_initialized) {
- GC_init_inner();
- }
- GC_multithreaded++;
-
- if (stack == 0) {
- if (stack_size == 0)
- stack_size = 1048576;
- /* ^-- 1 MB (this was GC_min_stack_sz, but that
- * violates the pthread_create documentation which
- * says the default value if none is supplied is
- * 1MB) */
- else
- stack_size += thr_min_stack();
-
- stack = (void *)GC_stack_alloc(&stack_size);
- if (stack == 0) {
- GC_multithreaded--;
- UNLOCK();
- errno = ENOMEM;
- return -1;
- }
- } else {
- my_flags |= CLIENT_OWNS_STACK;
- }
- (void)pthread_attr_setstacksize(&attr, stack_size);
- (void)pthread_attr_setstackaddr(&attr, stack);
- if (attr_in != 0) {
- (void)pthread_attr_getscope(attr_in, &n);
- (void)pthread_attr_setscope(&attr, n);
- (void)pthread_attr_getschedparam(attr_in, &schedparam);
- (void)pthread_attr_setschedparam(&attr, &schedparam);
- (void)pthread_attr_getschedpolicy(attr_in, &n);
- (void)pthread_attr_setschedpolicy(&attr, n);
- (void)pthread_attr_getinheritsched(attr_in, &n);
- (void)pthread_attr_setinheritsched(&attr, n);
-
- (void)pthread_attr_getdetachstate(attr_in, &flag);
- if (flag == PTHREAD_CREATE_DETACHED) {
- my_flags |= DETACHED;
- }
- (void)pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
- }
- /*
- * thr_create can call malloc(), which if redirected will
- * attempt to acquire the allocation lock.
- * Unlock here to prevent deadlock.
- */
-
-
-#if 0
-#ifdef I386
- UNLOCK();
-#endif
-#endif
- result =
- pthread_create(&my_new_thread, &attr, thread_execp, arg);
-#if 0
-#ifdef I386
- LOCK();
-#endif
-#endif
- if (result == 0) {
- t = GC_new_thread(my_new_thread);
- t -> flags = my_flags;
- if (!(my_flags & DETACHED)) cond_init(&(t->join_cv), USYNC_THREAD, 0);
- t -> stack = stack;
- t -> stack_size = stack_size;
- if (new_thread != 0) *new_thread = my_new_thread;
- pthread_cond_signal(&GC_create_cv);
- } else {
- if (!(my_flags & CLIENT_OWNS_STACK)) {
- GC_stack_free(stack, stack_size);
- }
- GC_multithreaded--;
- }
- UNLOCK();
- pthread_attr_destroy(&attr);
- return(result);
-}
-
-# else
-
-#ifndef LINT
- int GC_no_sunOS_pthreads;
-#endif
-
-# endif /* GC_SOLARIS_PTHREADS */
-
diff --git a/boehm-gc/solaris_threads.c b/boehm-gc/solaris_threads.c
deleted file mode 100644
index b599c58..0000000
--- a/boehm-gc/solaris_threads.c
+++ /dev/null
@@ -1,959 +0,0 @@
-/*
- * Copyright (c) 1994 by Xerox Corporation. All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-/*
- * Support code for Solaris threads. Provides functionality we wish Sun
- * had provided. Relies on some information we probably shouldn't rely on.
- */
-/* Boehm, September 14, 1994 4:44 pm PDT */
-
-#include "private/gc_priv.h"
-
-# if defined(GC_SOLARIS_THREADS) || defined(GC_SOLARIS_PTHREADS)
-# include "private/solaris_threads.h"
-# include <thread.h>
-# include <synch.h>
-# include <signal.h>
-# include <fcntl.h>
-# include <sys/types.h>
-# include <sys/mman.h>
-# include <sys/time.h>
-# include <sys/resource.h>
-# include <sys/stat.h>
-# include <sys/syscall.h>
-# include <sys/procfs.h>
-# include <sys/lwp.h>
-# include <sys/reg.h>
-# define _CLASSIC_XOPEN_TYPES
-# include <unistd.h>
-# include <errno.h>
-
-#ifdef HANDLE_FORK
- --> Not yet supported. Try porting the code from linux_threads.c.
-#endif
-
-/*
- * This is the default size of the LWP arrays. If there are more LWPs
- * than this when a stop-the-world GC happens, set_max_lwps will be
- * called to cope.
- * This must be higher than the number of LWPs at startup time.
- * The threads library creates a thread early on, so the min. is 3
- */
-# define DEFAULT_MAX_LWPS 4
-
-#undef thr_join
-#undef thr_create
-#undef thr_suspend
-#undef thr_continue
-
-cond_t GC_prom_join_cv; /* Broadcast when any thread terminates */
-cond_t GC_create_cv; /* Signalled when a new undetached */
- /* thread starts. */
-
-
-#ifdef MMAP_STACKS
-static int GC_zfd;
-#endif /* MMAP_STACKS */
-
-/* We use the allocation lock to protect thread-related data structures. */
-
-/* We stop the world using /proc primitives. This makes some */
-/* minimal assumptions about the threads implementation. */
-/* We don't play by the rules, since the rules make this */
-/* impossible (as of Solaris 2.3). Also note that as of */
-/* Solaris 2.3 the various thread and lwp suspension */
-/* primitives failed to stop threads by the time the request */
-/* is completed. */
-
-
-static sigset_t old_mask;
-
-/* Sleep for n milliseconds, n < 1000 */
-void GC_msec_sleep(int n)
-{
- struct timespec ts;
-
- ts.tv_sec = 0;
- ts.tv_nsec = 1000000*n;
- if (syscall(SYS_nanosleep, &ts, 0) < 0) {
- ABORT("nanosleep failed");
- }
-}
-/* Turn off preemption; gross but effective. */
-/* Caller has allocation lock. */
-/* Actually this is not needed under Solaris 2.3 and */
-/* 2.4, but hopefully that'll change. */
-void preempt_off()
-{
- sigset_t set;
-
- (void)sigfillset(&set);
- sigdelset(&set, SIGABRT);
- syscall(SYS_sigprocmask, SIG_SETMASK, &set, &old_mask);
-}
-
-void preempt_on()
-{
- syscall(SYS_sigprocmask, SIG_SETMASK, &old_mask, NULL);
-}
-
-int GC_main_proc_fd = -1;
-
-
-struct lwp_cache_entry {
- lwpid_t lc_id;
- int lc_descr; /* /proc file descriptor. */
-} GC_lwp_cache_default[DEFAULT_MAX_LWPS];
-
-static int max_lwps = DEFAULT_MAX_LWPS;
-static struct lwp_cache_entry *GC_lwp_cache = GC_lwp_cache_default;
-
-static prgregset_t GC_lwp_registers_default[DEFAULT_MAX_LWPS];
-static prgregset_t *GC_lwp_registers = GC_lwp_registers_default;
-
-/* Return a file descriptor for the /proc entry corresponding */
-/* to the given lwp. The file descriptor may be stale if the */
-/* lwp exited and a new one was forked. */
-static int open_lwp(lwpid_t id)
-{
- int result;
- static int next_victim = 0;
- register int i;
-
- for (i = 0; i < max_lwps; i++) {
- if (GC_lwp_cache[i].lc_id == id) return(GC_lwp_cache[i].lc_descr);
- }
- result = syscall(SYS_ioctl, GC_main_proc_fd, PIOCOPENLWP, &id);
- /*
- * If PIOCOPENLWP fails, try closing fds in the cache until it succeeds.
- */
- if (result < 0 && errno == EMFILE) {
- for (i = 0; i < max_lwps; i++) {
- if (GC_lwp_cache[i].lc_id != 0) {
- (void)syscall(SYS_close, GC_lwp_cache[i].lc_descr);
- result = syscall(SYS_ioctl, GC_main_proc_fd, PIOCOPENLWP, &id);
- if (result >= 0 || (result < 0 && errno != EMFILE))
- break;
- }
- }
- }
- if (result < 0) {
- if (errno == EMFILE) {
- ABORT("Too many open files");
- }
- return(-1) /* exited? */;
- }
- if (GC_lwp_cache[next_victim].lc_id != 0)
- (void)syscall(SYS_close, GC_lwp_cache[next_victim].lc_descr);
- GC_lwp_cache[next_victim].lc_id = id;
- GC_lwp_cache[next_victim].lc_descr = result;
- if (++next_victim >= max_lwps)
- next_victim = 0;
- return(result);
-}
-
-static void uncache_lwp(lwpid_t id)
-{
- register int i;
-
- for (i = 0; i < max_lwps; i++) {
- if (GC_lwp_cache[i].lc_id == id) {
- (void)syscall(SYS_close, GC_lwp_cache[id].lc_descr);
- GC_lwp_cache[i].lc_id = 0;
- break;
- }
- }
-}
- /* Sequence of current lwp ids */
-static lwpid_t GC_current_ids_default[DEFAULT_MAX_LWPS + 1];
-static lwpid_t *GC_current_ids = GC_current_ids_default;
-
- /* Temporary used below (can be big if large number of LWPs) */
-static lwpid_t last_ids_default[DEFAULT_MAX_LWPS + 1];
-static lwpid_t *last_ids = last_ids_default;
-
-
-#define ROUNDUP(n) WORDS_TO_BYTES(ROUNDED_UP_WORDS(n))
-
-static void set_max_lwps(GC_word n)
-{
- char *mem;
- char *oldmem;
- int required_bytes = ROUNDUP(n * sizeof(struct lwp_cache_entry))
- + ROUNDUP(n * sizeof(prgregset_t))
- + ROUNDUP((n + 1) * sizeof(lwpid_t))
- + ROUNDUP((n + 1) * sizeof(lwpid_t));
-
- GC_expand_hp_inner(divHBLKSZ((word)required_bytes));
- oldmem = mem = GC_scratch_alloc(required_bytes);
- if (0 == mem) ABORT("No space for lwp data structures");
-
- /*
- * We can either flush the old lwp cache or copy it over. Do the latter.
- */
- memcpy(mem, GC_lwp_cache, max_lwps * sizeof(struct lwp_cache_entry));
- GC_lwp_cache = (struct lwp_cache_entry*)mem;
- mem += ROUNDUP(n * sizeof(struct lwp_cache_entry));
-
- BZERO(GC_lwp_registers, max_lwps * sizeof(GC_lwp_registers[0]));
- GC_lwp_registers = (prgregset_t *)mem;
- mem += ROUNDUP(n * sizeof(prgregset_t));
-
-
- GC_current_ids = (lwpid_t *)mem;
- mem += ROUNDUP((n + 1) * sizeof(lwpid_t));
-
- last_ids = (lwpid_t *)mem;
- mem += ROUNDUP((n + 1)* sizeof(lwpid_t));
-
- if (mem > oldmem + required_bytes)
- ABORT("set_max_lwps buffer overflow");
-
- max_lwps = n;
-}
-
-
-/* Stop all lwps in process. Assumes preemption is off. */
-/* Caller has allocation lock (and any other locks he may */
-/* need). */
-static void stop_all_lwps()
-{
- int lwp_fd;
- char buf[30];
- prstatus_t status;
- register int i;
- GC_bool changed;
- lwpid_t me = _lwp_self();
-
- if (GC_main_proc_fd == -1) {
- sprintf(buf, "/proc/%d", getpid());
- GC_main_proc_fd = syscall(SYS_open, buf, O_RDONLY);
- if (GC_main_proc_fd < 0) {
- if (errno == EMFILE)
- ABORT("/proc open failed: too many open files");
- GC_printf1("/proc open failed: errno %d", errno);
- abort();
- }
- }
- BZERO(GC_lwp_registers, sizeof (prgregset_t) * max_lwps);
- for (i = 0; i < max_lwps; i++)
- last_ids[i] = 0;
- for (;;) {
- if (syscall(SYS_ioctl, GC_main_proc_fd, PIOCSTATUS, &status) < 0)
- ABORT("Main PIOCSTATUS failed");
- if (status.pr_nlwp < 1)
- ABORT("Invalid number of lwps returned by PIOCSTATUS");
- if (status.pr_nlwp >= max_lwps) {
- set_max_lwps(status.pr_nlwp*2 + 10);
- /*
- * The data in the old GC_current_ids and
- * GC_lwp_registers has been trashed. Cleaning out last_ids
- * will make sure every LWP gets re-examined.
- */
- for (i = 0; i < max_lwps; i++)
- last_ids[i] = 0;
- continue;
- }
- if (syscall(SYS_ioctl, GC_main_proc_fd, PIOCLWPIDS, GC_current_ids) < 0)
- ABORT("PIOCLWPIDS failed");
- changed = FALSE;
- for (i = 0; GC_current_ids[i] != 0 && i < max_lwps; i++) {
- if (GC_current_ids[i] != last_ids[i]) {
- changed = TRUE;
- if (GC_current_ids[i] != me) {
- /* PIOCSTOP doesn't work without a writable */
- /* descriptor. And that makes the process */
- /* undebuggable. */
- if (_lwp_suspend(GC_current_ids[i]) < 0) {
- /* Could happen if the lwp exited */
- uncache_lwp(GC_current_ids[i]);
- GC_current_ids[i] = me; /* ignore */
- }
- }
- }
- }
- /*
- * In the unlikely event something does a fork between the
- * PIOCSTATUS and the PIOCLWPIDS.
- */
- if (i >= max_lwps)
- continue;
- /* All lwps in GC_current_ids != me have been suspended. Note */
- /* that _lwp_suspend is idempotent. */
- for (i = 0; GC_current_ids[i] != 0; i++) {
- if (GC_current_ids[i] != last_ids[i]) {
- if (GC_current_ids[i] != me) {
- lwp_fd = open_lwp(GC_current_ids[i]);
- if (lwp_fd == -1)
- {
- GC_current_ids[i] = me;
- continue;
- }
- /* LWP should be stopped. Empirically it sometimes */
- /* isn't, and more frequently the PR_STOPPED flag */
- /* is not set. Wait for PR_STOPPED. */
- if (syscall(SYS_ioctl, lwp_fd,
- PIOCSTATUS, &status) < 0) {
- /* Possible if the descriptor was stale, or */
- /* we encountered the 2.3 _lwp_suspend bug. */
- uncache_lwp(GC_current_ids[i]);
- GC_current_ids[i] = me; /* handle next time. */
- } else {
- while (!(status.pr_flags & PR_STOPPED)) {
- GC_msec_sleep(1);
- if (syscall(SYS_ioctl, lwp_fd,
- PIOCSTATUS, &status) < 0) {
- ABORT("Repeated PIOCSTATUS failed");
- }
- if (status.pr_flags & PR_STOPPED) break;
-
- GC_msec_sleep(20);
- if (syscall(SYS_ioctl, lwp_fd,
- PIOCSTATUS, &status) < 0) {
- ABORT("Repeated PIOCSTATUS failed");
- }
- }
- if (status.pr_who != GC_current_ids[i]) {
- /* can happen if thread was on death row */
- uncache_lwp(GC_current_ids[i]);
- GC_current_ids[i] = me; /* handle next time. */
- continue;
- }
- /* Save registers where collector can */
- /* find them. */
- BCOPY(status.pr_reg, GC_lwp_registers[i],
- sizeof (prgregset_t));
- }
- }
- }
- }
- if (!changed) break;
- for (i = 0; i < max_lwps; i++) last_ids[i] = GC_current_ids[i];
- }
-}
-
-/* Restart all lwps in process. Assumes preemption is off. */
-static void restart_all_lwps()
-{
- int lwp_fd;
- register int i;
- GC_bool changed;
- lwpid_t me = _lwp_self();
-# define PARANOID
-
- for (i = 0; GC_current_ids[i] != 0; i++) {
-# ifdef PARANOID
- if (GC_current_ids[i] != me) {
- int lwp_fd = open_lwp(GC_current_ids[i]);
- prstatus_t status;
-
- if (lwp_fd < 0) ABORT("open_lwp failed");
- if (syscall(SYS_ioctl, lwp_fd,
- PIOCSTATUS, &status) < 0) {
- ABORT("PIOCSTATUS failed in restart_all_lwps");
- }
- if (memcmp(status.pr_reg, GC_lwp_registers[i],
- sizeof (prgregset_t)) != 0) {
- int j;
-
- for(j = 0; j < NPRGREG; j++)
- {
- GC_printf3("%i: %x -> %x\n", j,
- GC_lwp_registers[i][j],
- status.pr_reg[j]);
- }
- ABORT("Register contents changed");
- }
- if (!status.pr_flags & PR_STOPPED) {
- ABORT("lwp no longer stopped");
- }
-#ifdef SPARC
- {
- gwindows_t windows;
- if (syscall(SYS_ioctl, lwp_fd,
- PIOCGWIN, &windows) < 0) {
- ABORT("PIOCSTATUS failed in restart_all_lwps");
- }
- if (windows.wbcnt > 0) ABORT("unsaved register windows");
- }
-#endif
- }
-# endif /* PARANOID */
- if (GC_current_ids[i] == me) continue;
- if (_lwp_continue(GC_current_ids[i]) < 0) {
- ABORT("Failed to restart lwp");
- }
- }
- if (i >= max_lwps) ABORT("Too many lwps");
-}
-
-GC_bool GC_multithreaded = 0;
-
-void GC_stop_world()
-{
- preempt_off();
- if (GC_multithreaded)
- stop_all_lwps();
-}
-
-void GC_start_world()
-{
- if (GC_multithreaded)
- restart_all_lwps();
- preempt_on();
-}
-
-void GC_thr_init(void);
-
-GC_bool GC_thr_initialized = FALSE;
-
-size_t GC_min_stack_sz;
-
-
-/*
- * stack_head is stored at the top of free stacks
- */
-struct stack_head {
- struct stack_head *next;
- ptr_t base;
- thread_t owner;
-};
-
-# define N_FREE_LISTS 25
-struct stack_head *GC_stack_free_lists[N_FREE_LISTS] = { 0 };
- /* GC_stack_free_lists[i] is free list for stacks of */
- /* size GC_min_stack_sz*2**i. */
- /* Free lists are linked through stack_head stored */ /* at top of stack. */
-
-/* Return a stack of size at least *stack_size. *stack_size is */
-/* replaced by the actual stack size. */
-/* Caller holds allocation lock. */
-ptr_t GC_stack_alloc(size_t * stack_size)
-{
- register size_t requested_sz = *stack_size;
- register size_t search_sz = GC_min_stack_sz;
- register int index = 0; /* = log2(search_sz/GC_min_stack_sz) */
- register ptr_t base;
- register struct stack_head *result;
-
- while (search_sz < requested_sz) {
- search_sz *= 2;
- index++;
- }
- if ((result = GC_stack_free_lists[index]) == 0
- && (result = GC_stack_free_lists[index+1]) != 0) {
- /* Try next size up. */
- search_sz *= 2; index++;
- }
- if (result != 0) {
- base = GC_stack_free_lists[index]->base;
- GC_stack_free_lists[index] = GC_stack_free_lists[index]->next;
- } else {
-#ifdef MMAP_STACKS
- base = (ptr_t)mmap(0, search_sz + GC_page_size,
- PROT_READ|PROT_WRITE, MAP_PRIVATE |MAP_NORESERVE,
- GC_zfd, 0);
- if (base == (ptr_t)-1)
- {
- *stack_size = 0;
- return NULL;
- }
-
- mprotect(base, GC_page_size, PROT_NONE);
- /* Should this use divHBLKSZ(search_sz + GC_page_size) ? -- cf */
- GC_is_fresh((struct hblk *)base, divHBLKSZ(search_sz));
- base += GC_page_size;
-
-#else
- base = (ptr_t) GC_scratch_alloc(search_sz + 2*GC_page_size);
- if (base == NULL)
- {
- *stack_size = 0;
- return NULL;
- }
-
- base = (ptr_t)(((word)base + GC_page_size) & ~(GC_page_size - 1));
- /* Protect hottest page to detect overflow. */
-# ifdef SOLARIS23_MPROTECT_BUG_FIXED
- mprotect(base, GC_page_size, PROT_NONE);
-# endif
- GC_is_fresh((struct hblk *)base, divHBLKSZ(search_sz));
-
- base += GC_page_size;
-#endif
- }
- *stack_size = search_sz;
- return(base);
-}
-
-/* Caller holds allocationlock. */
-void GC_stack_free(ptr_t stack, size_t size)
-{
- register int index = 0;
- register size_t search_sz = GC_min_stack_sz;
- register struct stack_head *head;
-
-#ifdef MMAP_STACKS
- /* Zero pointers */
- mmap(stack, size, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_NORESERVE|MAP_FIXED,
- GC_zfd, 0);
-#endif
- while (search_sz < size) {
- search_sz *= 2;
- index++;
- }
- if (search_sz != size) ABORT("Bad stack size");
-
- head = (struct stack_head *)(stack + search_sz - sizeof(struct stack_head));
- head->next = GC_stack_free_lists[index];
- head->base = stack;
- GC_stack_free_lists[index] = head;
-}
-
-void GC_my_stack_limits();
-
-/* Notify virtual dirty bit implementation that known empty parts of */
-/* stacks do not contain useful data. */
-/* Caller holds allocation lock. */
-void GC_old_stacks_are_fresh()
-{
-/* No point in doing this for MMAP stacks - and pointers are zero'd out */
-/* by the mmap in GC_stack_free */
-#ifndef MMAP_STACKS
- register int i;
- register struct stack_head *s;
- register ptr_t p;
- register size_t sz;
- register struct hblk * h;
- int dummy;
-
- for (i = 0, sz= GC_min_stack_sz; i < N_FREE_LISTS;
- i++, sz *= 2) {
- for (s = GC_stack_free_lists[i]; s != 0; s = s->next) {
- p = s->base;
- h = (struct hblk *)(((word)p + HBLKSIZE-1) & ~(HBLKSIZE-1));
- if ((ptr_t)h == p) {
- GC_is_fresh((struct hblk *)p, divHBLKSZ(sz));
- } else {
- GC_is_fresh((struct hblk *)p, divHBLKSZ(sz) - 1);
- BZERO(p, (ptr_t)h - p);
- }
- }
- }
-#endif /* MMAP_STACKS */
- GC_my_stack_limits();
-}
-
-/* The set of all known threads. We intercept thread creation and */
-/* joins. We never actually create detached threads. We allocate all */
-/* new thread stacks ourselves. These allow us to maintain this */
-/* data structure. */
-
-# define THREAD_TABLE_SZ 128 /* Must be power of 2 */
-volatile GC_thread GC_threads[THREAD_TABLE_SZ];
-
-void GC_push_thread_structures GC_PROTO((void))
-{
- GC_push_all((ptr_t)(GC_threads), (ptr_t)(GC_threads)+sizeof(GC_threads));
-}
-
-/* Add a thread to GC_threads. We assume it wasn't already there. */
-/* Caller holds allocation lock. */
-GC_thread GC_new_thread(thread_t id)
-{
- int hv = ((word)id) % THREAD_TABLE_SZ;
- GC_thread result;
- static struct GC_Thread_Rep first_thread;
- static GC_bool first_thread_used = FALSE;
-
- if (!first_thread_used) {
- result = &first_thread;
- first_thread_used = TRUE;
- /* Dont acquire allocation lock, since we may already hold it. */
- } else {
- result = (struct GC_Thread_Rep *)
- GC_INTERNAL_MALLOC(sizeof(struct GC_Thread_Rep), NORMAL);
- }
- if (result == 0) return(0);
- result -> id = id;
- result -> next = GC_threads[hv];
- GC_threads[hv] = result;
- /* result -> finished = 0; */
- (void) cond_init(&(result->join_cv), USYNC_THREAD, 0);
- return(result);
-}
-
-/* Delete a thread from GC_threads. We assume it is there. */
-/* (The code intentionally traps if it wasn't.) */
-/* Caller holds allocation lock. */
-void GC_delete_thread(thread_t id)
-{
- int hv = ((word)id) % THREAD_TABLE_SZ;
- register GC_thread p = GC_threads[hv];
- register GC_thread prev = 0;
-
- while (p -> id != id) {
- prev = p;
- p = p -> next;
- }
- if (prev == 0) {
- GC_threads[hv] = p -> next;
- } else {
- prev -> next = p -> next;
- }
-}
-
-/* Return the GC_thread correpsonding to a given thread_t. */
-/* Returns 0 if it's not there. */
-/* Caller holds allocation lock. */
-GC_thread GC_lookup_thread(thread_t id)
-{
- int hv = ((word)id) % THREAD_TABLE_SZ;
- register GC_thread p = GC_threads[hv];
-
- while (p != 0 && p -> id != id) p = p -> next;
- return(p);
-}
-
-/* Solaris 2/Intel uses an initial stack size limit slightly bigger than the
- SPARC default of 8 MB. Account for this to warn only if the user has
- raised the limit beyond the default.
-
- This is identical to DFLSSIZ defined in <sys/vm_machparam.h>. This file
- is installed in /usr/platform/`uname -m`/include, which is not in the
- default include directory list, so copy the definition here. */
-#ifdef I386
-# define MAX_ORIG_STACK_SIZE (8 * 1024 * 1024 + ((USRSTACK) & 0x3FFFFF))
-#else
-# define MAX_ORIG_STACK_SIZE (8 * 1024 * 1024)
-#endif
-
-word GC_get_orig_stack_size() {
- struct rlimit rl;
- static int warned = 0;
- int result;
-
- if (getrlimit(RLIMIT_STACK, &rl) != 0) ABORT("getrlimit failed");
- result = (word)rl.rlim_cur & ~(HBLKSIZE-1);
- if (result > MAX_ORIG_STACK_SIZE) {
- if (!warned) {
- WARN("Large stack limit(%ld): only scanning 8 MB\n", result);
- warned = 1;
- }
- result = MAX_ORIG_STACK_SIZE;
- }
- return result;
-}
-
-/* Notify dirty bit implementation of unused parts of my stack. */
-/* Caller holds allocation lock. */
-void GC_my_stack_limits()
-{
- int dummy;
- register ptr_t hottest = (ptr_t)((word)(&dummy) & ~(HBLKSIZE-1));
- register GC_thread me = GC_lookup_thread(thr_self());
- register size_t stack_size = me -> stack_size;
- register ptr_t stack;
-
- if (stack_size == 0) {
- /* original thread */
- /* Empirically, what should be the stack page with lowest */
- /* address is actually inaccessible. */
- stack_size = GC_get_orig_stack_size() - GC_page_size;
- stack = GC_stackbottom - stack_size + GC_page_size;
- } else {
- stack = me -> stack;
- }
- if (stack > hottest || stack + stack_size < hottest) {
- ABORT("sp out of bounds");
- }
- GC_is_fresh((struct hblk *)stack, divHBLKSZ(hottest - stack));
-}
-
-
-/* We hold allocation lock. Should do exactly the right thing if the */
-/* world is stopped. Should not fail if it isn't. */
-void GC_push_all_stacks()
-{
- register int i;
- register GC_thread p;
- register ptr_t sp = GC_approx_sp();
- register ptr_t bottom, top;
- struct rlimit rl;
-
-# define PUSH(bottom,top) \
- if (GC_dirty_maintained) { \
- GC_push_selected((bottom), (top), GC_page_was_ever_dirty, \
- GC_push_all_stack); \
- } else { \
- GC_push_all_stack((bottom), (top)); \
- }
- GC_push_all_stack((ptr_t)GC_lwp_registers,
- (ptr_t)GC_lwp_registers
- + max_lwps * sizeof(GC_lwp_registers[0]));
- for (i = 0; i < THREAD_TABLE_SZ; i++) {
- for (p = GC_threads[i]; p != 0; p = p -> next) {
- if (p -> stack_size != 0) {
- bottom = p -> stack;
- top = p -> stack + p -> stack_size;
- } else {
- /* The original stack. */
- bottom = GC_stackbottom - GC_get_orig_stack_size() + GC_page_size;
- top = GC_stackbottom;
- }
- if ((word)sp > (word)bottom && (word)sp < (word)top) bottom = sp;
- PUSH(bottom, top);
- }
- }
-}
-
-
-int GC_is_thread_stack(ptr_t addr)
-{
- register int i;
- register GC_thread p;
- register ptr_t bottom, top;
-
- for (i = 0; i < THREAD_TABLE_SZ; i++) {
- for (p = GC_threads[i]; p != 0; p = p -> next) {
- if (p -> stack_size != 0) {
- if (p -> stack <= addr &&
- addr < p -> stack + p -> stack_size)
- return 1;
- }
- }
- }
- return 0;
-}
-
-/* The only thread that ever really performs a thr_join. */
-void * GC_thr_daemon(void * dummy)
-{
- void *status;
- thread_t departed;
- register GC_thread t;
- register int i;
- register int result;
-
- for(;;) {
- start:
- result = thr_join((thread_t)0, &departed, &status);
- LOCK();
- if (result != 0) {
- /* No more threads; wait for create. */
- for (i = 0; i < THREAD_TABLE_SZ; i++) {
- for (t = GC_threads[i]; t != 0; t = t -> next) {
- if (!(t -> flags & (DETACHED | FINISHED))) {
- UNLOCK();
- goto start; /* Thread started just before we */
- /* acquired the lock. */
- }
- }
- }
- cond_wait(&GC_create_cv, &GC_allocate_ml);
- UNLOCK();
- } else {
- t = GC_lookup_thread(departed);
- GC_multithreaded--;
- if (!(t -> flags & CLIENT_OWNS_STACK)) {
- GC_stack_free(t -> stack, t -> stack_size);
- }
- if (t -> flags & DETACHED) {
- GC_delete_thread(departed);
- } else {
- t -> status = status;
- t -> flags |= FINISHED;
- cond_signal(&(t -> join_cv));
- cond_broadcast(&GC_prom_join_cv);
- }
- UNLOCK();
- }
- }
-}
-
-/* We hold the allocation lock, or caller ensures that 2 instances */
-/* cannot be invoked concurrently. */
-void GC_thr_init(void)
-{
- GC_thread t;
- thread_t tid;
- int ret;
-
- if (GC_thr_initialized)
- return;
- GC_thr_initialized = TRUE;
- GC_min_stack_sz = ((thr_min_stack() + 32*1024 + HBLKSIZE-1)
- & ~(HBLKSIZE - 1));
-#ifdef MMAP_STACKS
- GC_zfd = open("/dev/zero", O_RDONLY);
- if (GC_zfd == -1)
- ABORT("Can't open /dev/zero");
-#endif /* MMAP_STACKS */
- cond_init(&GC_prom_join_cv, USYNC_THREAD, 0);
- cond_init(&GC_create_cv, USYNC_THREAD, 0);
- /* Add the initial thread, so we can stop it. */
- t = GC_new_thread(thr_self());
- t -> stack_size = 0;
- t -> flags = DETACHED | CLIENT_OWNS_STACK;
- ret = thr_create(0 /* stack */, 0 /* stack_size */, GC_thr_daemon,
- 0 /* arg */, THR_DETACHED | THR_DAEMON,
- &tid /* thread_id */);
- if (ret != 0) {
- GC_err_printf1("Thr_create returned %ld\n", ret);
- ABORT("Cant fork daemon");
- }
- thr_setprio(tid, 126);
-}
-
-/* We acquire the allocation lock to prevent races with */
-/* stopping/starting world. */
-/* This is no more correct than the underlying Solaris 2.X */
-/* implementation. Under 2.3 THIS IS BROKEN. */
-int GC_thr_suspend(thread_t target_thread)
-{
- GC_thread t;
- int result;
-
- LOCK();
- result = thr_suspend(target_thread);
- if (result == 0) {
- t = GC_lookup_thread(target_thread);
- if (t == 0) ABORT("thread unknown to GC");
- t -> flags |= SUSPNDED;
- }
- UNLOCK();
- return(result);
-}
-
-int GC_thr_continue(thread_t target_thread)
-{
- GC_thread t;
- int result;
-
- LOCK();
- result = thr_continue(target_thread);
- if (result == 0) {
- t = GC_lookup_thread(target_thread);
- if (t == 0) ABORT("thread unknown to GC");
- t -> flags &= ~SUSPNDED;
- }
- UNLOCK();
- return(result);
-}
-
-int GC_thr_join(thread_t wait_for, thread_t *departed, void **status)
-{
- register GC_thread t;
- int result = 0;
-
- LOCK();
- if (wait_for == 0) {
- register int i;
- register GC_bool thread_exists;
-
- for (;;) {
- thread_exists = FALSE;
- for (i = 0; i < THREAD_TABLE_SZ; i++) {
- for (t = GC_threads[i]; t != 0; t = t -> next) {
- if (!(t -> flags & DETACHED)) {
- if (t -> flags & FINISHED) {
- goto found;
- }
- thread_exists = TRUE;
- }
- }
- }
- if (!thread_exists) {
- result = ESRCH;
- goto out;
- }
- cond_wait(&GC_prom_join_cv, &GC_allocate_ml);
- }
- } else {
- t = GC_lookup_thread(wait_for);
- if (t == 0 || t -> flags & DETACHED) {
- result = ESRCH;
- goto out;
- }
- if (wait_for == thr_self()) {
- result = EDEADLK;
- goto out;
- }
- while (!(t -> flags & FINISHED)) {
- cond_wait(&(t -> join_cv), &GC_allocate_ml);
- }
-
- }
- found:
- if (status) *status = t -> status;
- if (departed) *departed = t -> id;
- cond_destroy(&(t -> join_cv));
- GC_delete_thread(t -> id);
- out:
- UNLOCK();
- return(result);
-}
-
-
-int
-GC_thr_create(void *stack_base, size_t stack_size,
- void *(*start_routine)(void *), void *arg, long flags,
- thread_t *new_thread)
-{
- int result;
- GC_thread t;
- thread_t my_new_thread;
- word my_flags = 0;
- void * stack = stack_base;
-
- LOCK();
- if (!GC_is_initialized) GC_init_inner();
- GC_multithreaded++;
- if (stack == 0) {
- if (stack_size == 0) stack_size = 1024*1024;
- stack = (void *)GC_stack_alloc(&stack_size);
- if (stack == 0) {
- GC_multithreaded--;
- UNLOCK();
- return(ENOMEM);
- }
- } else {
- my_flags |= CLIENT_OWNS_STACK;
- }
- if (flags & THR_DETACHED) my_flags |= DETACHED;
- if (flags & THR_SUSPENDED) my_flags |= SUSPNDED;
- result = thr_create(stack, stack_size, start_routine,
- arg, flags & ~THR_DETACHED, &my_new_thread);
- if (result == 0) {
- t = GC_new_thread(my_new_thread);
- t -> flags = my_flags;
- if (!(my_flags & DETACHED)) cond_init(&(t -> join_cv), USYNC_THREAD, 0);
- t -> stack = stack;
- t -> stack_size = stack_size;
- if (new_thread != 0) *new_thread = my_new_thread;
- cond_signal(&GC_create_cv);
- } else {
- GC_multithreaded--;
- if (!(my_flags & CLIENT_OWNS_STACK)) {
- GC_stack_free(stack, stack_size);
- }
- }
- UNLOCK();
- return(result);
-}
-
-# else /* !GC_SOLARIS_THREADS */
-
-#ifndef LINT
- int GC_no_sunOS_threads;
-#endif
-#endif
--
1.5.4
From 6dbab295463461e8c1cf6bb12d08b55d3db35ec5 Mon Sep 17 00:00:00 2001
From: ghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 2 Jul 2007 21:43:50 +0000
Subject: * gcc.dg/c99-math.h: Fix typo.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@126237 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index dcf606f..4136b97 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2007-07-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.dg/c99-math.h: Fix typo.
+
2007-06-30 Alexandre Oliva <aoliva@redhat.com>
* g++.dg/ext/interface4.C, g++.dg/ext/interface4.h: New.
diff --git a/gcc/testsuite/gcc.dg/c99-math.h b/gcc/testsuite/gcc.dg/c99-math.h
index 3f42f67..2f3054d 100644
--- a/gcc/testsuite/gcc.dg/c99-math.h
+++ b/gcc/testsuite/gcc.dg/c99-math.h
@@ -45,7 +45,7 @@ extern void abort(void);
if (!isinf (huge)) \
abort (); \
\
- if (isnan (norm)) \
+ if (isinf (norm)) \
abort (); \
\
if (isinf (zero)) \
--
1.5.4
From 35ad420de967419a8c588a0f1a24c78fc731991e Mon Sep 17 00:00:00 2001
From: ro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 3 Jul 2007 13:45:21 +0000
Subject: PR target/28307
* gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
(__gthrw_pragma): Provide default definition.
(__gthrw2): Use it.
* gthr-posix.c (__gthrw_pragma): Define.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@126255 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9fd3820..5390649 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2007-07-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ PR target/28307
+ * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
+ (__gthrw_pragma): Provide default definition.
+ (__gthrw2): Use it.
+ * gthr-posix.c (__gthrw_pragma): Define.
+
2007-06-30 Alexandre Oliva <aoliva@redhat.com>
* dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
diff --git a/gcc/gthr-posix.c b/gcc/gthr-posix.c
index a8922c0..e2d731a 100644
--- a/gcc/gthr-posix.c
+++ b/gcc/gthr-posix.c
@@ -1,6 +1,6 @@
/* POSIX threads dummy routines for systems without weak definitions. */
/* Compile this one with gcc. */
-/* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
This file is part of GCC.
@@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#include "tconfig.h"
#include "tm.h"
+# define __gthrw_pragma(pragma) _Pragma (#pragma)
/* Define so we provide weak definitions of functions used by libobjc only. */
#define _LIBOBJC_WEAK
#include "gthr.h"
@@ -75,7 +76,7 @@ pthread_create (pthread_t *thread ATTRIBUTE_UNUSED,
}
int
-pthread_cancel(pthread_t thread ATTRIBUTE_UNUSED)
+pthread_cancel (pthread_t thread ATTRIBUTE_UNUSED)
{
return 0;
}
diff --git a/gcc/gthr-posix.h b/gcc/gthr-posix.h
index 5b29519..a092c4b 100644
--- a/gcc/gthr-posix.h
+++ b/gcc/gthr-posix.h
@@ -1,6 +1,6 @@
/* Threads compatibility routines for libgcc2 and libobjc. */
/* Compile this one with gcc. */
-/* Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+/* Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
Free Software Foundation, Inc.
This file is part of GCC.
@@ -59,8 +59,12 @@ typedef pthread_mutex_t __gthread_recursive_mutex_t;
#endif
#if SUPPORTS_WEAK && GTHREAD_USE_WEAK
+# ifndef __gthrw_pragma
+# define __gthrw_pragma(pragma)
+# endif
# define __gthrw2(name,name2,type) \
- extern __typeof(type) name __attribute__ ((__weakref__(#name2)));
+ extern __typeof(type) name __attribute__ ((__weakref__(#name2))); \
+ __gthrw_pragma(weak type)
# define __gthrw_(name) __gthrw_ ## name
#else
# define __gthrw2(name,name2,type)
--
1.5.4
From 2dc54b7b3bb7b42fe351cf702a98b88d30c4ed18 Mon Sep 17 00:00:00 2001
From: kkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 4 Jul 2007 05:18:17 +0000
Subject: PR target/32506
Backport from mainline.
* config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
predicate instead of target_operand.
(divsi3_i1_media, divsi3_media_2): Likewise.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@126300 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5390649..206c58a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2007-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/32506
+ Backport from mainline.
+ * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
+ predicate instead of target_operand.
+ (divsi3_i1_media, divsi3_media_2): Likewise.
+
2007-07-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
PR target/28307
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md
index e136761..17b76e6 100644
--- a/gcc/config/sh/sh.md
+++ b/gcc/config/sh/sh.md
@@ -1677,7 +1677,7 @@
(clobber (reg:DI TR0_REG))
(clobber (reg:DI TR1_REG))
(clobber (reg:DI TR2_REG))
- (use (match_operand 1 "target_operand" "b"))]
+ (use (match_operand 1 "target_reg_operand" "b"))]
"TARGET_SHMEDIA && (! TARGET_SHMEDIA_FPU || ! TARGET_DIVIDE_FP)"
"blink %1, r18"
[(set_attr "type" "sfunc")
@@ -1843,7 +1843,7 @@
(clobber (reg:SI R20_REG))
(clobber (reg:SI R21_REG))
(clobber (reg:SI TR0_REG))
- (use (match_operand 1 "target_operand" "b"))]
+ (use (match_operand 1 "target_reg_operand" "b"))]
"TARGET_SHMEDIA && (! TARGET_SHMEDIA_FPU || ! TARGET_DIVIDE_FP)"
"blink %1, r18"
[(set_attr "type" "sfunc")])
@@ -1857,7 +1857,7 @@
(clobber (reg:SI R21_REG))
(clobber (reg:SI TR0_REG))
(use (reg:SI R20_REG))
- (use (match_operand 1 "target_operand" "b"))]
+ (use (match_operand 1 "target_reg_operand" "b"))]
"TARGET_SHMEDIA && (! TARGET_SHMEDIA_FPU || ! TARGET_DIVIDE_FP)"
"blink %1, r18"
[(set_attr "type" "sfunc")])
--
1.5.4
From ac310292775a766d27d6084474efe004d8bf3ab6 Mon Sep 17 00:00:00 2001
From: uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 4 Jul 2007 05:49:31 +0000
Subject: PR tree-optimization/31966
PR tree-optimization/32533
* tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
"basic_block" description as its third argument. Update function
calls to get destination bb from "edge" argument. Save "cond" into
aux field of the edge. Update prototype for changed arguments.
(if_convertible_loop_p): Clear aux field of incoming edges if bb
contains phi node.
(find_phi_replacement_condition): Operate on incoming edges, not
on predecessor blocks. If there is a condition saved in the
incoming edge aux field, AND it with incoming bb predicate.
Return source bb of the first edge.
(clean_predicate_lists): Clean aux field of outgoing node edges.
(tree_if_conversion): Do not initialize cond variable. Move
variable declaration into the loop.
(replace_phi_with_cond_gimple_modify_stmt): Remove unneded
initializations of new_stmt, arg0 and arg1 variables.
testsuite/ChangeLog:
PR tree-optimization/31966
PR tree-optimization/32533
* gcc.dg/tree-ssa/pr31966.c: New runtime test.
* gfortran.dg/pr32533.f90: Ditto.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@126302 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 206c58a..009ba7e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,23 @@
+2007-07-04 Uros Bizjak <ubizjak@gmail.com>
+
+ PR tree-optimization/31966
+ PR tree-optimization/32533
+ * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
+ "basic_block" description as its third argument. Update function
+ calls to get destination bb from "edge" argument. Save "cond" into
+ aux field of the edge. Update prototype for changed arguments.
+ (if_convertible_loop_p): Clear aux field of incoming edges if bb
+ contains phi node.
+ (find_phi_replacement_condition): Operate on incoming edges, not
+ on predecessor blocks. If there is a condition saved in the
+ incoming edge aux field, AND it with incoming bb predicate.
+ Return source bb of the first edge.
+ (clean_predicate_lists): Clean aux field of outgoing node edges.
+ (tree_if_conversion): Do not initialize cond variable. Move
+ variable declaration into the loop.
+ (replace_phi_with_cond_gimple_modify_stmt): Remove unneded
+ initializations of new_stmt, arg0 and arg1 variables.
+
2007-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
PR target/32506
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4136b97..2181c0f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2007-07-04 Uros Bizjak <ubizjak@gmail.com>
+
+ PR tree-optimization/31966
+ PR tree-optimization/32533
+ * gcc.dg/tree-ssa/pr31966.c: New runtime test.
+ * gfortran.dg/pr32533.f90: Ditto.
+
2007-07-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* gcc.dg/c99-math.h: Fix typo.
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr31966.c b/gcc/testsuite/gcc.dg/tree-ssa/pr31966.c
new file mode 100644
index 0000000..a18f9d0
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr31966.c
@@ -0,0 +1,50 @@
+/* Contributed by Jack Lloyd <lloyd@randombit.net> */
+
+/* { dg-options "-O2 -ftree-vectorize" } */
+/* { dg-options "-O2 -ftree-vectorize -march=nocona" { target { i?86-*-* x86_64-*-* } } } */
+
+typedef unsigned long long word;
+
+const unsigned int MP_WORD_BITS = 64;
+const word MP_WORD_MASK = ~((word)0);
+const word MP_WORD_TOP_BIT = (word)1 << (8*sizeof(word) - 1);
+
+extern void abort (void);
+
+word do_div(word n1, word n0, word d)
+{
+ word high = n1 % d, quotient = 0;
+ unsigned int j;
+
+ for(j = 0; j != MP_WORD_BITS; ++j)
+ {
+ word high_top_bit = (high & MP_WORD_TOP_BIT);
+
+ high <<= 1;
+ high |= (n0 >> (MP_WORD_BITS-1-j)) & 1;
+ quotient <<= 1;
+
+ if(high_top_bit || high >= d)
+ {
+ high -= d;
+ quotient |= 1;
+ }
+ }
+
+ return quotient;
+}
+
+int main()
+{
+ word result;
+
+ result = do_div(0x0000000000200000ll,
+ 0x0000000000000000ll,
+ 0x86E53497CE000000ll);
+
+
+ if (result != 0x3CBA83)
+ abort ();
+
+ return 0;
+}
diff --git a/gcc/testsuite/gfortran.dg/pr32533.f90 b/gcc/testsuite/gfortran.dg/pr32533.f90
new file mode 100644
index 0000000..c312415
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr32533.f90
@@ -0,0 +1,18 @@
+! { dg-do run }
+! { dg-options "-O2 -ftree-vectorize -ffast-math" }
+!
+! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
+!
+SUBROUTINE T(nsubcell,sab_max,subcells)
+ INTEGER, PARAMETER :: dp=KIND(0.0D0)
+ REAL(dp) :: sab_max(3), subcells,nsubcell(3)
+ nsubcell(:) = MIN(MAX(1,NINT(0.5_dp*subcells/sab_max(:))),20)
+END SUBROUTINE T
+
+INTEGER, PARAMETER :: dp=KIND(0.0D0)
+REAL(dp) :: sab_max(3), subcells,nsubcell(3)
+subcells=2.0_dp
+sab_max=0.590060749244805_dp
+CALL T(nsubcell,sab_max,subcells)
+IF (ANY(nsubcell.NE.2.0_dp)) CALL ABORT()
+END
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c
index 6643d5b..77da479 100644
--- a/gcc/tree-if-conv.c
+++ b/gcc/tree-if-conv.c
@@ -113,7 +113,8 @@ static bool if_convertible_stmt_p (struct loop *, basic_block, tree);
static bool if_convertible_bb_p (struct loop *, basic_block, basic_block);
static bool if_convertible_loop_p (struct loop *, bool);
static void add_to_predicate_list (basic_block, tree);
-static tree add_to_dst_predicate_list (struct loop * loop, basic_block, tree, tree,
+static tree add_to_dst_predicate_list (struct loop * loop, edge,
+ tree, tree,
block_stmt_iterator *);
static void clean_predicate_lists (struct loop *loop);
static basic_block find_phi_replacement_condition (struct loop *loop,
@@ -143,7 +144,6 @@ tree_if_conversion (struct loop *loop, bool for_vectorizer)
{
basic_block bb;
block_stmt_iterator itr;
- tree cond;
unsigned int i;
ifc_bbs = NULL;
@@ -163,11 +163,11 @@ tree_if_conversion (struct loop *loop, bool for_vectorizer)
return false;
}
- cond = NULL_TREE;
-
/* Do actual work now. */
for (i = 0; i < loop->num_nodes; i++)
{
+ tree cond;
+
bb = ifc_bbs [i];
/* Update condition using predicate list. */
@@ -191,7 +191,6 @@ tree_if_conversion (struct loop *loop, bool for_vectorizer)
basic_block bb_n = single_succ (bb);
if (cond != NULL_TREE)
add_to_predicate_list (bb_n, cond);
- cond = NULL_TREE;
}
}
@@ -275,12 +274,12 @@ tree_if_convert_cond_expr (struct loop *loop, tree stmt, tree cond,
/* Add new condition into destination's predicate list. */
/* If 'c' is true then TRUE_EDGE is taken. */
- add_to_dst_predicate_list (loop, true_edge->dest, cond,
+ add_to_dst_predicate_list (loop, true_edge, cond,
unshare_expr (c), bsi);
/* If 'c' is false then FALSE_EDGE is taken. */
c2 = invert_truthvalue (unshare_expr (c));
- add_to_dst_predicate_list (loop, false_edge->dest, cond, c2, bsi);
+ add_to_dst_predicate_list (loop, false_edge, cond, c2, bsi);
/* Now this conditional statement is redundant. Remove it.
But, do not remove exit condition! Update exit condition
@@ -565,7 +564,15 @@ if_convertible_loop_p (struct loop *loop, bool for_vectorizer ATTRIBUTE_UNUSED)
/* ??? Check data dependency for vectorizer. */
/* What about phi nodes ? */
- for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
+ phi = phi_nodes (bb);
+
+ /* Clear aux field of incoming edges to a bb with a phi node. */
+ if (phi)
+ FOR_EACH_EDGE (e, ei, bb->preds)
+ e->aux = NULL;
+
+ /* Check statements. */
+ for (; phi; phi = PHI_CHAIN (phi))
if (!if_convertible_phi_p (loop, bb, phi))
return false;
@@ -602,13 +609,13 @@ add_to_predicate_list (basic_block bb, tree new_cond)
existing condition. */
static tree
-add_to_dst_predicate_list (struct loop * loop, basic_block bb,
+add_to_dst_predicate_list (struct loop * loop, edge e,
tree prev_cond, tree cond,
block_stmt_iterator *bsi)
{
tree new_cond = NULL_TREE;
- if (!flow_bb_inside_loop_p (loop, bb))
+ if (!flow_bb_inside_loop_p (loop, e->dest))
return NULL_TREE;
if (prev_cond == boolean_true_node || !prev_cond)
@@ -629,6 +636,11 @@ add_to_dst_predicate_list (struct loop * loop, basic_block bb,
if (tmp_stmts2)
bsi_insert_before (bsi, tmp_stmts2, BSI_SAME_STMT);
+ /* Add the condition to aux field of the edge. In case edge
+ destination is a PHI node, this condition will be ANDed with
+ block predicate to construct complete condition. */
+ e->aux = cond;
+
/* new_cond == prev_cond AND cond */
tmp = build (TRUTH_AND_EXPR, boolean_type_node,
unshare_expr (prev_cond), cond);
@@ -636,22 +648,30 @@ add_to_dst_predicate_list (struct loop * loop, basic_block bb,
bsi_insert_before (bsi, tmp_stmt, BSI_SAME_STMT);
new_cond = TREE_OPERAND (tmp_stmt, 0);
}
- add_to_predicate_list (bb, new_cond);
+ add_to_predicate_list (e->dest, new_cond);
return new_cond;
}
-/* During if-conversion aux field from basic block is used to hold predicate
- list. Clean each basic block's predicate list for the given LOOP. */
+/* During if-conversion aux field from basic block structure is used to hold
+ predicate list. Clean each basic block's predicate list for the given LOOP.
+ Also clean aux field of succesor edges, used to hold true and false
+ condition from conditional expression. */
static void
clean_predicate_lists (struct loop *loop)
{
basic_block *bb;
unsigned int i;
+ edge e;
+ edge_iterator ei;
+
bb = get_loop_body (loop);
for (i = 0; i < loop->num_nodes; i++)
- bb[i]->aux = NULL;
-
+ {
+ bb[i]->aux = NULL;
+ FOR_EACH_EDGE (e, ei, bb[i]->succs)
+ e->aux = NULL;
+ }
free (bb);
}
@@ -664,13 +684,12 @@ find_phi_replacement_condition (struct loop *loop,
basic_block bb, tree *cond,
block_stmt_iterator *bsi)
{
- basic_block first_bb = NULL;
- basic_block second_bb = NULL;
+ edge first_edge, second_edge;
tree tmp_cond, new_stmts;
gcc_assert (EDGE_COUNT (bb->preds) == 2);
- first_bb = (EDGE_PRED (bb, 0))->src;
- second_bb = (EDGE_PRED (bb, 1))->src;
+ first_edge = EDGE_PRED (bb, 0);
+ second_edge = EDGE_PRED (bb, 1);
/* Use condition based on following criteria:
1)
@@ -691,42 +710,55 @@ find_phi_replacement_condition (struct loop *loop,
S3: x = (c == d) ? b : a;
S3 is preferred over S1 and S2*, Make 'b' first_bb and use
- its condition.
+ its condition.
4) If pred B is dominated by pred A then use pred B's condition.
See PR23115. */
/* Select condition that is not TRUTH_NOT_EXPR. */
- tmp_cond = first_bb->aux;
+ tmp_cond = (first_edge->src)->aux;
if (TREE_CODE (tmp_cond) == TRUTH_NOT_EXPR)
{
- basic_block tmp_bb;
- tmp_bb = first_bb;
- first_bb = second_bb;
- second_bb = tmp_bb;
+ edge tmp_edge;
+
+ tmp_edge = first_edge;
+ first_edge = second_edge;
+ second_edge = tmp_edge;
}
/* Check if FIRST_BB is loop header or not and make sure that
FIRST_BB does not dominate SECOND_BB. */
- if (first_bb == loop->header
- || dominated_by_p (CDI_DOMINATORS, second_bb, first_bb))
+ if (first_edge->src == loop->header
+ || dominated_by_p (CDI_DOMINATORS,
+ second_edge->src, first_edge->src))
{
- tmp_cond = second_bb->aux;
- if (TREE_CODE (tmp_cond) == TRUTH_NOT_EXPR)
- {
- /* Select non loop header condition but do not switch basic blocks. */
- *cond = invert_truthvalue (unshare_expr (tmp_cond));
- }
+ *cond = (second_edge->src)->aux;
+
+ /* If there is a condition on an incoming edge,
+ AND it with the incoming bb predicate. */
+ if (second_edge->aux)
+ *cond = build2 (TRUTH_AND_EXPR, boolean_type_node,
+ *cond, first_edge->aux);
+
+ if (TREE_CODE (*cond) == TRUTH_NOT_EXPR)
+ /* We can be smart here and choose inverted
+ condition without switching bbs. */
+ *cond = invert_truthvalue (*cond);
else
- {
- /* Select non loop header condition. */
- first_bb = second_bb;
- *cond = first_bb->aux;
- }
+ /* Select non loop header bb. */
+ first_edge = second_edge;
}
else
- /* FIRST_BB is not loop header */
- *cond = first_bb->aux;
+ {
+ /* FIRST_BB is not loop header */
+ *cond = (first_edge->src)->aux;
+
+ /* If there is a condition on an incoming edge,
+ AND it with the incoming bb predicate. */
+ if (first_edge->aux)
+ *cond = build2 (TRUTH_AND_EXPR, boolean_type_node,
+ *cond, first_edge->aux);
+ }
/* Create temp. for the condition. Vectorizer prefers to have gimple
value as condition. Various targets use different means to communicate
@@ -746,7 +778,7 @@ find_phi_replacement_condition (struct loop *loop,
gcc_assert (*cond);
- return first_bb;
+ return first_edge->src;
}
@@ -777,10 +809,6 @@ replace_phi_with_cond_modify_expr (tree phi, tree cond, basic_block true_bb,
/* Find basic block and initialize iterator. */
bb = bb_for_stmt (phi);
- new_stmt = NULL_TREE;
- arg_0 = NULL_TREE;
- arg_1 = NULL_TREE;
-
/* Use condition that is not TRUTH_NOT_EXPR in conditional modify expr. */
if (EDGE_PRED (bb, 1)->src == true_bb)
{
--
1.5.4
From d2a98eeb253127cecb234b1a72ddb84b975bccb2 Mon Sep 17 00:00:00 2001
From: ro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 5 Jul 2007 18:54:46 +0000
Subject: * MAINTAINERS (OS Port Maintainers): Add myself as IRIX, Tru64 UNIX
maintainer.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@126381 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/ChangeLog b/ChangeLog
index 5eaa4ed..4ce7526 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-07-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * MAINTAINERS (OS Port Maintainers): Add myself as IRIX, Tru64 UNIX
+ maintainer.
+
2007-02-16 Gerald Pfeifer <gerald@pfeifer.com>
* ltconfig (freebsd*): Default to elf.
diff --git a/MAINTAINERS b/MAINTAINERS
index df7499b..4e16683 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -95,6 +95,7 @@ darwin port Mike Stump mrs@apple.com
darwin port Stan Shebs shebs@apple.com
DJGPP DJ Delorie dj@delorie.com
freebsd Loren J. Rittle ljrittle@acm.org
+irix, osf Rainer Orth ro@TechFak.Uni-Bielefeld.DE
netbsd Jason Thorpe thorpej@netbsd.org
sco5, unixware, sco udk Kean Johnston jkj@sco.com
sh-linux-gnu Kaz Kojima kkojima@gcc.gnu.org
@@ -301,7 +302,6 @@ Dan Nicolaescu dann@ics.uci.edu
David O'Brien obrien@FreeBSD.org
Turly O'Connor turly@apple.com
Jeffrey D. Oldham oldham@codesourcery.com
-Rainer Orth ro@TechFak.Uni-Bielefeld.DE
Devang Patel dpatel@apple.com
Graeme Peterson gp@qnx.com
Alexandre Petit-Bianco apbianco@redhat.com
--
1.5.4
From 132f8757544eb47ed4fb9a91455d29f2a7a27990 Mon Sep 17 00:00:00 2001
From: uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 6 Jul 2007 10:54:03 +0000
Subject: PR rtl-optimization/32450
* function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
to ensure that instructions are not moved into the prologue when
profiling is on.
testsuite/ChangeLog:
PR rtl-optimization/32450
* gcc.dg/pr32450.c: New runtime test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@126411 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 009ba7e..3dcb8e9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2007-07-06 Uros Bizjak <ubizjak@gmail.com>
+
+ PR rtl-optimization/32450
+ * function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
+ to ensure that instructions are not moved into the prologue when
+ profiling is on.
+
2007-07-04 Uros Bizjak <ubizjak@gmail.com>
PR tree-optimization/31966
diff --git a/gcc/function.c b/gcc/function.c
index e9fdb66..46408da 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -5103,6 +5103,14 @@ thread_prologue_and_epilogue_insns (rtx f ATTRIBUTE_UNUSED)
/* Retain a map of the prologue insns. */
record_insns (seq, &prologue);
prologue_end = emit_note (NOTE_INSN_PROLOGUE_END);
+
+#ifndef PROFILE_BEFORE_PROLOGUE
+ /* Ensure that instructions are not moved into the prologue when
+ profiling is on. The call to the profiling routine can be
+ emitted within the live range of a call-clobbered register. */
+ if (current_function_profile)
+ emit_insn (gen_rtx_ASM_INPUT (VOIDmode, ""));
+#endif
seq = get_insns ();
end_sequence ();
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2181c0f..9b9c028 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-07-06 Uros Bizjak <ubizjak@gmail.com>
+
+ PR rtl-optimization/32450
+ * gcc.dg/pr32450.c: New runtime test.
+
2007-07-04 Uros Bizjak <ubizjak@gmail.com>
PR tree-optimization/31966
diff --git a/gcc/testsuite/gcc.dg/pr32450.c b/gcc/testsuite/gcc.dg/pr32450.c
new file mode 100644
index 0000000..9b36ce4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr32450.c
@@ -0,0 +1,33 @@
+/* Contributed by Joost VandeVondele <jv244@cam.ac.uk> */
+
+/* { dg-do run } */
+/* { dg-require-profiling "-pg" } */
+/* { dg-options "-O2 -pg" } */
+/* { dg-options "-O2 -pg -static" { target hppa*-*-hpux* } } */
+
+extern void abort (void);
+
+int stack_pointer;
+
+void
+__attribute__((noinline))
+mystop ()
+{
+ abort ();
+}
+
+void
+__attribute__((noinline))
+add ()
+{
+ if (stack_pointer + 1 > 10)
+ mystop ();
+
+ stack_pointer = stack_pointer + 1;
+}
+
+int main ()
+{
+ add ();
+ return stack_pointer - 1;
+}
--
1.5.4
From 5dd1fcfefeff7f10efacb14eba0d9bf71688696e Mon Sep 17 00:00:00 2001
From: bonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 6 Jul 2007 15:12:55 +0000
Subject: 2007-07-06 Paolo Bonzini <bonzini@gnu.org>
PR middle-end/32004
* function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
pass_match_asm_constraints): New.
* passes.c (init_optimization_passes): Add new pass.
* stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
* function.h (struct function): Add has_asm_statement bit.
(current_function_has_asm_statement): New.
* tree-pass.h (pass_match_asm_constraints): New.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@126419 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3dcb8e9..b906995 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2007-07-06 Paolo Bonzini <bonzini@gnu.org>
+
+ PR middle-end/32004
+ * function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
+ pass_match_asm_constraints): New.
+ * passes.c (init_optimization_passes): Add new pass.
+ * stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
+ * function.h (struct function): Add has_asm_statement bit.
+ (current_function_has_asm_statement): New.
+ * tree-pass.h (pass_match_asm_constraints): New.
+
2007-07-06 Uros Bizjak <ubizjak@gmail.com>
PR rtl-optimization/32450
diff --git a/gcc/function.c b/gcc/function.c
index 46408da..9912fa9 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -5597,6 +5597,137 @@ struct tree_opt_pass pass_leaf_regs =
0, /* todo_flags_finish */
0 /* letter */
};
+
+
+/* This mini-pass fixes fall-out from SSA in asm statements that have
+ in-out constraints. Say you start with
+
+ orig = inout;
+ asm ("": "+mr" (inout));
+ use (orig);
+
+ which is transformed very early to use explicit output and match operands:
+
+ orig = inout;
+ asm ("": "=mr" (inout) : "0" (inout));
+ use (orig);
+
+ Or, after SSA and copyprop,
+
+ asm ("": "=mr" (inout_2) : "0" (inout_1));
+ use (inout_1);
+
+ Clearly inout_2 and inout_1 can't be coalesced easily anymore, as
+ they represent two separate values, so they will get different pseudo
+ registers during expansion. Then, since the two operands need to match
+ per the constraints, but use different pseudo registers, reload can
+ only register a reload for these operands. But reloads can only be
+ satisfied by hardregs, not by memory, so we need a register for this
+ reload, just because we are presented with non-matching operands.
+ So, even though we allow memory for this operand, no memory can be
+ used for it, just because the two operands don't match. This can
+ cause reload failures on register-starved targets.
+
+ So it's a symptom of reload not being able to use memory for reloads
+ or, alternatively it's also a symptom of both operands not coming into
+ reload as matching (in which case the pseudo could go to memory just
+ fine, as the alternative allows it, and no reload would be necessary).
+ We fix the latter problem here, by transforming
+
+ asm ("": "=mr" (inout_2) : "0" (inout_1));
+
+ back to
+
+ inout_2 = inout_1;
+ asm ("": "=mr" (inout_2) : "0" (inout_2)); */
+
+static void
+match_asm_constraints_1 (rtx insn, rtx *p_sets, int noutputs)
+{
+ int i;
+ rtx op = SET_SRC (p_sets[0]);
+ int ninputs = ASM_OPERANDS_INPUT_LENGTH (op);
+ rtvec inputs = ASM_OPERANDS_INPUT_VEC (op);
+
+ for (i = 0; i < ninputs; i++)
+ {
+ rtx input, output, insns;
+ const char *constraint = ASM_OPERANDS_INPUT_CONSTRAINT (op, i);
+ char *end;
+ int match;
+
+ match = strtoul (constraint, &end, 10);
+ if (end == constraint)
+ continue;
+
+ gcc_assert (match < noutputs);
+ output = SET_DEST (p_sets[match]);
+ input = RTVEC_ELT (inputs, i);
+ if (rtx_equal_p (output, input)
+ || (GET_MODE (input) != VOIDmode
+ && GET_MODE (input) != GET_MODE (output)))
+ continue;
+
+ start_sequence ();
+ emit_move_insn (copy_rtx (output), input);
+ RTVEC_ELT (inputs, i) = copy_rtx (output);
+ insns = get_insns ();
+ end_sequence ();
+
+ emit_insn_before (insns, insn);
+ }
+}
+
+static void
+rest_of_match_asm_constraints (void)
+{
+ basic_block bb;
+ rtx insn, pat, *p_sets;
+ int noutputs;
+
+ if (!cfun->has_asm_statement)
+ return;
+
+ FOR_EACH_BB (bb)
+ {
+ FOR_BB_INSNS (bb, insn)
+ {
+ if (!INSN_P (insn))
+ continue;
+ pat = PATTERN (insn);
+ if (GET_CODE (pat) == PARALLEL)
+ p_sets = &XVECEXP (pat, 0, 0), noutputs = XVECLEN (pat, 0);
+ else if (GET_CODE (pat) == SET)
+ p_sets = &PATTERN (insn), noutputs = 1;
+ else
+ continue;
+
+ if (GET_CODE (*p_sets) == SET
+ && GET_CODE (SET_SRC (*p_sets)) == ASM_OPERANDS)
+ match_asm_constraints_1 (insn, p_sets, noutputs);
+ }
+ }
+
+ update_life_info_in_dirty_blocks (UPDATE_LIFE_GLOBAL_RM_NOTES,
+ PROP_DEATH_NOTES);
+}
+
+struct tree_opt_pass pass_match_asm_constraints =
+{
+ "asmcons", /* name */
+ NULL, /* gate */
+ rest_of_match_asm_constraints, /* execute */
+ NULL, /* sub */
+ NULL, /* next */
+ 0, /* static_pass_number */
+ 0, /* tv_id */
+ 0, /* properties_required */
+ 0, /* properties_provided */
+ 0, /* properties_destroyed */
+ 0, /* todo_flags_start */
+ TODO_dump_func, /* todo_flags_finish */
+ 0 /* letter */
+};
#include "gt-function.h"
diff --git a/gcc/function.h b/gcc/function.h
index c1482ac..705284a 100644
--- a/gcc/function.h
+++ b/gcc/function.h
@@ -408,6 +408,9 @@ struct function GTY(())
/* Nonzero if function being compiled has nonlocal gotos to parent
function. */
unsigned int has_nonlocal_goto : 1;
+
+ /* Nonzero if function being compiled has an asm statement. */
+ unsigned int has_asm_statement : 1;
/* Nonzero if the current function is a thunk, i.e., a lightweight
function implemented by the output_mi_thunk hook) that just
@@ -506,6 +509,7 @@ extern int trampolines_created;
#define current_function_epilogue_delay_list (cfun->epilogue_delay_list)
#define current_function_has_nonlocal_label (cfun->has_nonlocal_label)
#define current_function_has_nonlocal_goto (cfun->has_nonlocal_goto)
+#define current_function_has_asm_statement (cfun->has_asm_statement)
#define return_label (cfun->x_return_label)
#define naked_return_label (cfun->x_naked_return_label)
diff --git a/gcc/passes.c b/gcc/passes.c
index 8a844a8..51ea9c9 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -639,6 +639,7 @@ init_optimization_passes (void)
NEXT_PASS (pass_split_all_insns);
NEXT_PASS (pass_mode_switching);
NEXT_PASS (pass_recompute_reg_usage);
+ NEXT_PASS (pass_match_asm_constraints);
NEXT_PASS (pass_sms);
NEXT_PASS (pass_sched);
NEXT_PASS (pass_local_alloc);
diff --git a/gcc/stmt.c b/gcc/stmt.c
index e08eab0..7201a9a 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -1079,6 +1079,7 @@ expand_asm_operands (tree string, tree outputs, tree inputs,
if (real_output_rtx[i])
emit_move_insn (real_output_rtx[i], output_rtx[i]);
+ cfun->has_asm_statement = 1;
free_temp_slots ();
}
diff --git a/gcc/testsuite/gcc.target/i386/pr21291.c b/gcc/testsuite/gcc.target/i386/pr21291.c
index acfc43d..b597509 100644
--- a/gcc/testsuite/gcc.target/i386/pr21291.c
+++ b/gcc/testsuite/gcc.target/i386/pr21291.c
@@ -1,3 +1,8 @@
+/* The asm has 2 "r" in/out operands, 1 earlyclobber "r" output, 1 "r"
+ input and 2 fixed "r" clobbers (eax and edx), so there are a total of
+ 6 registers that must not conflict. Add to that the PIC register,
+ the frame pointer, and the stack pointer, and we've run out of
+ registers on 32-bit targets. */
/* { dg-do compile } */
/* { dg-options "-O" } */
diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h
index 1f45ffd..97bfac6 100644
--- a/gcc/tree-pass.h
+++ b/gcc/tree-pass.h
@@ -335,7 +335,7 @@ extern struct tree_opt_pass pass_life;
extern struct tree_opt_pass pass_combine;
extern struct tree_opt_pass pass_if_after_combine;
extern struct tree_opt_pass pass_partition_blocks;
-extern struct tree_opt_pass pass_partition_blocks;
+extern struct tree_opt_pass pass_match_asm_constraints;
extern struct tree_opt_pass pass_regmove;
extern struct tree_opt_pass pass_split_all_insns;
extern struct tree_opt_pass pass_mode_switching;
--
1.5.4
From d6f9b91081d630158071e10254af282cab043d0c Mon Sep 17 00:00:00 2001
From: uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 7 Jul 2007 09:23:04 +0000
Subject: PR target/32660
Backport from mainline.
* config/i386/sse.md (*vec_extractv2di_1_sse2): New.
(*vec_extractv2di_1_sse): New.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@126438 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b906995..f59b49a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2007-07-07 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/32660
+ Backport from mainline.
+ * config/i386/sse.md (*vec_extractv2di_1_sse2): New.
+ (*vec_extractv2di_1_sse): New.
+
2007-07-06 Paolo Bonzini <bonzini@gnu.org>
PR middle-end/32004
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 8524e70..7bd8d46 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -3483,6 +3483,35 @@
operands[1] = gen_rtx_REG (DImode, REGNO (operands[1]));
})
+(define_insn "*vec_extractv2di_1_sse2"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=m,x,x")
+ (vec_select:DI
+ (match_operand:V2DI 1 "nonimmediate_operand" "x,0,o")
+ (parallel [(const_int 1)])))]
+ "TARGET_SSE2 && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
+ "@
+ movhps\t{%1, %0|%0, %1}
+ psrldq\t{$8, %0|%0, 8}
+ movq\t{%H1, %0|%0, %H1}"
+ [(set_attr "type" "ssemov,sseishft,ssemov")
+ (set_attr "memory" "*,none,*")
+ (set_attr "mode" "V2SF,TI,TI")])
+
+;; Not sure this is ever used, but it doesn't hurt to have it. -aoliva
+(define_insn "*vec_extractv2di_1_sse"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=m,x,x")
+ (vec_select:DI
+ (match_operand:V2DI 1 "nonimmediate_operand" "x,x,o")
+ (parallel [(const_int 1)])))]
+ "!TARGET_SSE2 && TARGET_SSE
+ && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
+ "@
+ movhps\t{%1, %0|%0, %1}
+ movhlps\t{%1, %0|%0, %1}
+ movlps\t{%H1, %0|%0, %H1}"
+ [(set_attr "type" "ssemov")
+ (set_attr "mode" "V2SF,V4SF,V2SF")])
+
(define_insn "*vec_dupv4si"
[(set (match_operand:V4SI 0 "register_operand" "=Y,x")
(vec_duplicate:V4SI
--
1.5.4
From 4c058bbc952b0ac7617139a738f12ec14520c839 Mon Sep 17 00:00:00 2001
From: aesok <aesok@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 7 Jul 2007 19:39:36 +0000
Subject: PR target/31331
* config/avr/avr.c (avr_naked_function_p): Handle receiving a type
rather than a decl.
(avr_attribute_table): Make "naked" attribute apply to function types
rather than to decls.
(avr_handle_fntype_attribute): New function.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@126447 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f59b49a..fb4c84f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2007-07-07 Anatoly Sokolov <aesok@post.ru>
+
+ PR target/31331
+ * config/avr/avr.c (avr_naked_function_p): Handle receiving a type
+ rather than a decl.
+ (avr_attribute_table): Make "naked" attribute apply to function types
+ rather than to decls.
+ (avr_handle_fntype_attribute): New function.
+
2007-07-07 Uros Bizjak <ubizjak@gmail.com>
PR target/32660
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index 054831b..6833f35 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -62,6 +62,7 @@ static RTX_CODE compare_condition (rtx insn);
static int compare_sign_p (rtx insn);
static tree avr_handle_progmem_attribute (tree *, tree, tree, int, bool *);
static tree avr_handle_fndecl_attribute (tree *, tree, tree, int, bool *);
+static tree avr_handle_fntype_attribute (tree *, tree, tree, int, bool *);
const struct attribute_spec avr_attribute_table[];
static bool avr_assemble_integer (rtx, unsigned int, int);
static void avr_file_start (void);
@@ -361,7 +362,7 @@ avr_naked_function_p (tree func)
gcc_assert (TREE_CODE (func) == FUNCTION_DECL);
- a = lookup_attribute ("naked", DECL_ATTRIBUTES (func));
+ a = lookup_attribute ("naked", TYPE_ATTRIBUTES (TREE_TYPE (func)));
return a != NULL_TREE;
}
@@ -4617,7 +4618,7 @@ const struct attribute_spec avr_attribute_table[] =
{ "progmem", 0, 0, false, false, false, avr_handle_progmem_attribute },
{ "signal", 0, 0, true, false, false, avr_handle_fndecl_attribute },
{ "interrupt", 0, 0, true, false, false, avr_handle_fndecl_attribute },
- { "naked", 0, 0, true, false, false, avr_handle_fndecl_attribute },
+ { "naked", 0, 0, false, true, true, avr_handle_fntype_attribute },
{ NULL, 0, 0, false, false, false, NULL }
};
@@ -4709,6 +4710,22 @@ avr_handle_fndecl_attribute (tree *node, tree name,
return NULL_TREE;
}
+static tree
+avr_handle_fntype_attribute (tree *node, tree name,
+ tree args ATTRIBUTE_UNUSED,
+ int flags ATTRIBUTE_UNUSED,
+ bool *no_add_attrs)
+{
+ if (TREE_CODE (*node) != FUNCTION_TYPE)
+ {
+ warning (OPT_Wattributes, "%qs attribute only applies to functions",
+ IDENTIFIER_POINTER (name));
+ *no_add_attrs = true;
+ }
+
+ return NULL_TREE;
+}
+
/* Look for attribute `progmem' in DECL
if found return 1, otherwise 0. */
--
1.5.4
From ef7ce7011aeba702559de8764849c35968b9b88b Mon Sep 17 00:00:00 2001
From: ghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun, 8 Jul 2007 20:32:11 +0000
Subject: * gcc.dg/c99-math-double-1.c, gcc.dg/c99-math-float-1.c,
c99-math-long-double-1.c, c99-math.h: Test subnormals.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@126465 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9b9c028..abd5a0c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-07-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.dg/c99-math-double-1.c, gcc.dg/c99-math-float-1.c,
+ c99-math-long-double-1.c, c99-math.h: Test subnormals.
+
2007-07-06 Uros Bizjak <ubizjak@gmail.com>
PR rtl-optimization/32450
diff --git a/gcc/testsuite/gcc.dg/c99-math-double-1.c b/gcc/testsuite/gcc.dg/c99-math-double-1.c
index 54bdf60..ef11d1b 100644
--- a/gcc/testsuite/gcc.dg/c99-math-double-1.c
+++ b/gcc/testsuite/gcc.dg/c99-math-double-1.c
@@ -10,9 +10,10 @@ int main(void)
double inf = INFINITY;
double huge = HUGE_VAL;
double norm = __DBL_MIN__;
+ double sub = __DBL_MIN__ / 2;
double zero = 0.0;
- C99_MATH_TESTS (nan, inf, huge, norm, zero)
+ C99_MATH_TESTS (nan, inf, huge, norm, sub, zero)
return 0;
}
diff --git a/gcc/testsuite/gcc.dg/c99-math-float-1.c b/gcc/testsuite/gcc.dg/c99-math-float-1.c
index ba27a71..f377c1a 100644
--- a/gcc/testsuite/gcc.dg/c99-math-float-1.c
+++ b/gcc/testsuite/gcc.dg/c99-math-float-1.c
@@ -10,9 +10,10 @@ int main(void)
float inf = INFINITY;
float huge = HUGE_VALF;
float norm = __FLT_MIN__;
+ float sub = __FLT_MIN__ / 2;
float zero = 0.0f;
- C99_MATH_TESTS (nan, inf, huge, norm, zero)
+ C99_MATH_TESTS (nan, inf, huge, norm, sub, zero)
return 0;
}
diff --git a/gcc/testsuite/gcc.dg/c99-math-long-double-1.c b/gcc/testsuite/gcc.dg/c99-math-long-double-1.c
index a8fa4d2..5f1cd30 100644
--- a/gcc/testsuite/gcc.dg/c99-math-long-double-1.c
+++ b/gcc/testsuite/gcc.dg/c99-math-long-double-1.c
@@ -10,9 +10,10 @@ int main(void)
long double inf = INFINITY;
long double huge = HUGE_VALL;
long double norm = __LDBL_MIN__;
+ long double sub = __LDBL_MIN__ / 2;
long double zero = 0.0l;
- C99_MATH_TESTS (nan, inf, huge, norm, zero)
+ C99_MATH_TESTS (nan, inf, huge, norm, sub, zero)
return 0;
}
diff --git a/gcc/testsuite/gcc.dg/c99-math.h b/gcc/testsuite/gcc.dg/c99-math.h
index 2f3054d..aff81b3 100644
--- a/gcc/testsuite/gcc.dg/c99-math.h
+++ b/gcc/testsuite/gcc.dg/c99-math.h
@@ -2,7 +2,7 @@
extern void abort(void);
-#define C99_MATH_TESTS(nan, inf, huge, norm, zero) \
+#define C99_MATH_TESTS(nan, inf, huge, norm, sub, zero) \
{ \
if (fpclassify (nan) != FP_NAN) \
abort (); \
@@ -16,6 +16,9 @@ extern void abort(void);
if (fpclassify (norm) != FP_NORMAL) \
abort (); \
\
+ if (fpclassify (sub) != FP_SUBNORMAL) \
+ abort (); \
+ \
if (fpclassify (zero) != FP_ZERO) \
abort (); \
\
@@ -32,6 +35,9 @@ extern void abort(void);
if (isnan (norm)) \
abort (); \
\
+ if (isnan (sub)) \
+ abort (); \
+ \
if (isnan (zero)) \
abort (); \
\
@@ -48,6 +54,9 @@ extern void abort(void);
if (isinf (norm)) \
abort (); \
\
+ if (isinf (sub)) \
+ abort (); \
+ \
if (isinf (zero)) \
abort (); \
\
@@ -64,6 +73,9 @@ extern void abort(void);
if (!isfinite (norm)) \
abort (); \
\
+ if (!isfinite (sub)) \
+ abort (); \
+ \
if (!isfinite (zero)) \
abort (); \
\
@@ -80,6 +92,9 @@ extern void abort(void);
if (!isnormal (norm)) \
abort (); \
\
+ if (isnormal (sub)) \
+ abort (); \
+ \
if (isnormal (zero)) \
abort (); \
\
--
1.5.4
From 8c57619f8f61fc5e3b9202c30ee3926229f0e9c7 Mon Sep 17 00:00:00 2001
From: uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 9 Jul 2007 13:11:22 +0000
Subject: PR tree-optimization/32681
* tree-if-conv.c (find_phi_replacement_condition): Use the condition
saved in second_edge->aux when first_bb is a loop header.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@126483 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fb4c84f..055144d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-07-09 Uros Bizjak <ubizjak@gmail.com>
+
+ PR tree-optimization/32681
+ * tree-if-conv.c (find_phi_replacement_condition): Use the condition
+ saved in second_edge->aux when first_bb is a loop header.
+
2007-07-07 Anatoly Sokolov <aesok@post.ru>
PR target/31331
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c
index 77da479..006d3db 100644
--- a/gcc/tree-if-conv.c
+++ b/gcc/tree-if-conv.c
@@ -738,7 +738,7 @@ find_phi_replacement_condition (struct loop *loop,
AND it with the incoming bb predicate. */
if (second_edge->aux)
*cond = build2 (TRUTH_AND_EXPR, boolean_type_node,
- *cond, first_edge->aux);
+ *cond, second_edge->aux);
if (TREE_CODE (*cond) == TRUTH_NOT_EXPR)
/* We can be smart here and choose inverted
--
1.5.4
From 87e5d013d6b45c10aab6cbb603260a5866baf169 Mon Sep 17 00:00:00 2001
From: bonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 9 Jul 2007 15:37:56 +0000
Subject: 2007-07-09 Paolo Bonzini <bonzini@gnu.org>
PR middle-end/32004
* function.c (rest_of_match_asm_constraints): Pass PROP_REG_INFO.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@126488 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 055144d..a8b8c5e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-07-09 Paolo Bonzini <bonzini@gnu.org>
+
+ PR middle-end/32004
+ * function.c (rest_of_match_asm_constraints): Pass PROP_REG_INFO.
+
2007-07-09 Uros Bizjak <ubizjak@gmail.com>
PR tree-optimization/32681
diff --git a/gcc/function.c b/gcc/function.c
index 9912fa9..87740ea 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -5710,7 +5710,7 @@ rest_of_match_asm_constraints (void)
}
update_life_info_in_dirty_blocks (UPDATE_LIFE_GLOBAL_RM_NOTES,
- PROP_DEATH_NOTES);
+ PROP_DEATH_NOTES | PROP_REG_INFO);
}
struct tree_opt_pass pass_match_asm_constraints =
--
1.5.4
From b7156bacbeb1ceeb1a240e62bca8feffbfd66207 Mon Sep 17 00:00:00 2001
From: bonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 13 Jul 2007 09:28:16 +0000
Subject: 2007-07-13 Paolo Bonzini <bonzini@gnu.org>
Revert these patches:
2007-07-09 Paolo Bonzini <bonzini@gnu.org>
PR middle-end/32004
* function.c (rest_of_match_asm_constraints): Pass PROP_REG_INFO.
2007-07-06 Paolo Bonzini <bonzini@gnu.org>
PR middle-end/32004
* function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
pass_match_asm_constraints): New.
* passes.c (init_optimization_passes): Add new pass.
* stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
* function.h (struct function): Add has_asm_statement bit.
(current_function_has_asm_statement): New.
* tree-pass.h (pass_match_asm_constraints): New.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@126616 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a8b8c5e..1313070 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,23 @@
+2007-07-13 Paolo Bonzini <bonzini@gnu.org>
+
+ Revert these patches:
+
+ 2007-07-09 Paolo Bonzini <bonzini@gnu.org>
+
+ PR middle-end/32004
+ * function.c (rest_of_match_asm_constraints): Pass PROP_REG_INFO.
+
+ 2007-07-06 Paolo Bonzini <bonzini@gnu.org>
+
+ PR middle-end/32004
+ * function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
+ pass_match_asm_constraints): New.
+ * passes.c (init_optimization_passes): Add new pass.
+ * stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
+ * function.h (struct function): Add has_asm_statement bit.
+ (current_function_has_asm_statement): New.
+ * tree-pass.h (pass_match_asm_constraints): New.
+
2007-07-09 Paolo Bonzini <bonzini@gnu.org>
PR middle-end/32004
diff --git a/gcc/function.c b/gcc/function.c
index 87740ea..46408da 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -5597,137 +5597,6 @@ struct tree_opt_pass pass_leaf_regs =
0, /* todo_flags_finish */
0 /* letter */
};
-
-
-/* This mini-pass fixes fall-out from SSA in asm statements that have
- in-out constraints. Say you start with
-
- orig = inout;
- asm ("": "+mr" (inout));
- use (orig);
-
- which is transformed very early to use explicit output and match operands:
-
- orig = inout;
- asm ("": "=mr" (inout) : "0" (inout));
- use (orig);
-
- Or, after SSA and copyprop,
-
- asm ("": "=mr" (inout_2) : "0" (inout_1));
- use (inout_1);
-
- Clearly inout_2 and inout_1 can't be coalesced easily anymore, as
- they represent two separate values, so they will get different pseudo
- registers during expansion. Then, since the two operands need to match
- per the constraints, but use different pseudo registers, reload can
- only register a reload for these operands. But reloads can only be
- satisfied by hardregs, not by memory, so we need a register for this
- reload, just because we are presented with non-matching operands.
- So, even though we allow memory for this operand, no memory can be
- used for it, just because the two operands don't match. This can
- cause reload failures on register-starved targets.
-
- So it's a symptom of reload not being able to use memory for reloads
- or, alternatively it's also a symptom of both operands not coming into
- reload as matching (in which case the pseudo could go to memory just
- fine, as the alternative allows it, and no reload would be necessary).
- We fix the latter problem here, by transforming
-
- asm ("": "=mr" (inout_2) : "0" (inout_1));
-
- back to
-
- inout_2 = inout_1;
- asm ("": "=mr" (inout_2) : "0" (inout_2)); */
-
-static void
-match_asm_constraints_1 (rtx insn, rtx *p_sets, int noutputs)
-{
- int i;
- rtx op = SET_SRC (p_sets[0]);
- int ninputs = ASM_OPERANDS_INPUT_LENGTH (op);
- rtvec inputs = ASM_OPERANDS_INPUT_VEC (op);
-
- for (i = 0; i < ninputs; i++)
- {
- rtx input, output, insns;
- const char *constraint = ASM_OPERANDS_INPUT_CONSTRAINT (op, i);
- char *end;
- int match;
-
- match = strtoul (constraint, &end, 10);
- if (end == constraint)
- continue;
-
- gcc_assert (match < noutputs);
- output = SET_DEST (p_sets[match]);
- input = RTVEC_ELT (inputs, i);
- if (rtx_equal_p (output, input)
- || (GET_MODE (input) != VOIDmode
- && GET_MODE (input) != GET_MODE (output)))
- continue;
-
- start_sequence ();
- emit_move_insn (copy_rtx (output), input);
- RTVEC_ELT (inputs, i) = copy_rtx (output);
- insns = get_insns ();
- end_sequence ();
-
- emit_insn_before (insns, insn);
- }
-}
-
-static void
-rest_of_match_asm_constraints (void)
-{
- basic_block bb;
- rtx insn, pat, *p_sets;
- int noutputs;
-
- if (!cfun->has_asm_statement)
- return;
-
- FOR_EACH_BB (bb)
- {
- FOR_BB_INSNS (bb, insn)
- {
- if (!INSN_P (insn))
- continue;
- pat = PATTERN (insn);
- if (GET_CODE (pat) == PARALLEL)
- p_sets = &XVECEXP (pat, 0, 0), noutputs = XVECLEN (pat, 0);
- else if (GET_CODE (pat) == SET)
- p_sets = &PATTERN (insn), noutputs = 1;
- else
- continue;
-
- if (GET_CODE (*p_sets) == SET
- && GET_CODE (SET_SRC (*p_sets)) == ASM_OPERANDS)
- match_asm_constraints_1 (insn, p_sets, noutputs);
- }
- }
-
- update_life_info_in_dirty_blocks (UPDATE_LIFE_GLOBAL_RM_NOTES,
- PROP_DEATH_NOTES | PROP_REG_INFO);
-}
-
-struct tree_opt_pass pass_match_asm_constraints =
-{
- "asmcons", /* name */
- NULL, /* gate */
- rest_of_match_asm_constraints, /* execute */
- NULL, /* sub */
- NULL, /* next */
- 0, /* static_pass_number */
- 0, /* tv_id */
- 0, /* properties_required */
- 0, /* properties_provided */
- 0, /* properties_destroyed */
- 0, /* todo_flags_start */
- TODO_dump_func, /* todo_flags_finish */
- 0 /* letter */
-};
#include "gt-function.h"
diff --git a/gcc/function.h b/gcc/function.h
index 705284a..c1482ac 100644
--- a/gcc/function.h
+++ b/gcc/function.h
@@ -408,9 +408,6 @@ struct function GTY(())
/* Nonzero if function being compiled has nonlocal gotos to parent
function. */
unsigned int has_nonlocal_goto : 1;
-
- /* Nonzero if function being compiled has an asm statement. */
- unsigned int has_asm_statement : 1;
/* Nonzero if the current function is a thunk, i.e., a lightweight
function implemented by the output_mi_thunk hook) that just
@@ -509,7 +506,6 @@ extern int trampolines_created;
#define current_function_epilogue_delay_list (cfun->epilogue_delay_list)
#define current_function_has_nonlocal_label (cfun->has_nonlocal_label)
#define current_function_has_nonlocal_goto (cfun->has_nonlocal_goto)
-#define current_function_has_asm_statement (cfun->has_asm_statement)
#define return_label (cfun->x_return_label)
#define naked_return_label (cfun->x_naked_return_label)
diff --git a/gcc/passes.c b/gcc/passes.c
index 51ea9c9..8a844a8 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -639,7 +639,6 @@ init_optimization_passes (void)
NEXT_PASS (pass_split_all_insns);
NEXT_PASS (pass_mode_switching);
NEXT_PASS (pass_recompute_reg_usage);
- NEXT_PASS (pass_match_asm_constraints);
NEXT_PASS (pass_sms);
NEXT_PASS (pass_sched);
NEXT_PASS (pass_local_alloc);
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 7201a9a..e08eab0 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -1079,7 +1079,6 @@ expand_asm_operands (tree string, tree outputs, tree inputs,
if (real_output_rtx[i])
emit_move_insn (real_output_rtx[i], output_rtx[i]);
- cfun->has_asm_statement = 1;
free_temp_slots ();
}
diff --git a/gcc/testsuite/gcc.target/i386/pr21291.c b/gcc/testsuite/gcc.target/i386/pr21291.c
index b597509..acfc43d 100644
--- a/gcc/testsuite/gcc.target/i386/pr21291.c
+++ b/gcc/testsuite/gcc.target/i386/pr21291.c
@@ -1,8 +1,3 @@
-/* The asm has 2 "r" in/out operands, 1 earlyclobber "r" output, 1 "r"
- input and 2 fixed "r" clobbers (eax and edx), so there are a total of
- 6 registers that must not conflict. Add to that the PIC register,
- the frame pointer, and the stack pointer, and we've run out of
- registers on 32-bit targets. */
/* { dg-do compile } */
/* { dg-options "-O" } */
diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h
index 97bfac6..3478d1a 100644
--- a/gcc/tree-pass.h
+++ b/gcc/tree-pass.h
@@ -335,7 +335,6 @@ extern struct tree_opt_pass pass_life;
extern struct tree_opt_pass pass_combine;
extern struct tree_opt_pass pass_if_after_combine;
extern struct tree_opt_pass pass_partition_blocks;
-extern struct tree_opt_pass pass_match_asm_constraints;
extern struct tree_opt_pass pass_regmove;
extern struct tree_opt_pass pass_split_all_insns;
extern struct tree_opt_pass pass_mode_switching;
--
1.5.4
From 66eadc8260e87b78ebdff74bf1a5e49799d25d06 Mon Sep 17 00:00:00 2001
From: uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 16 Jul 2007 19:55:17 +0000
Subject: * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond"
before forcing it to gimple operand.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@126690 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1313070..1c8fb22 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-07-16 Richard Guenther <rguenther@suse.de>
+ Uros Bizjak <ubizjak@gmail.com>
+
+ * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond"
+ before forcing it to gimple operand.
+
2007-07-13 Paolo Bonzini <bonzini@gnu.org>
Revert these patches:
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c
index 006d3db..18e6de5 100644
--- a/gcc/tree-if-conv.c
+++ b/gcc/tree-if-conv.c
@@ -743,7 +743,7 @@ find_phi_replacement_condition (struct loop *loop,
if (TREE_CODE (*cond) == TRUTH_NOT_EXPR)
/* We can be smart here and choose inverted
condition without switching bbs. */
- *cond = invert_truthvalue (*cond);
+ *cond = invert_truthvalue (*cond);
else
/* Select non loop header bb. */
first_edge = second_edge;
@@ -762,9 +762,11 @@ find_phi_replacement_condition (struct loop *loop,
/* Create temp. for the condition. Vectorizer prefers to have gimple
value as condition. Various targets use different means to communicate
- condition in vector compare operation. Using gimple value allows compiler
- to emit vector compare and select RTL without exposing compare's result. */
- *cond = force_gimple_operand (*cond, &new_stmts, false, NULL_TREE);
+ condition in vector compare operation. Using gimple value allows
+ compiler to emit vector compare and select RTL without exposing
+ compare's result. */
+ *cond = force_gimple_operand (unshare_expr (*cond), &new_stmts,
+ false, NULL_TREE);
if (new_stmts)
bsi_insert_before (bsi, new_stmts, BSI_SAME_STMT);
if (!is_gimple_reg (*cond) && !is_gimple_condexpr (*cond))
--
1.5.4
From b442d9a1227adb37833b20626ab7243d08af61ce Mon Sep 17 00:00:00 2001
From: ghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 21 Jul 2007 22:10:40 +0000
Subject: fixincludes:
PR target/32641
* inclhack.def (solaris_math_4, solaris_math_5, solaris_math_6,
solaris_math_7): Constify and make FP exception-safe.
* tests/base/iso/math_c99.h: Update.
* fixincl.x: Regenerate.
gcc/testsuite:
* gcc.dg/c99-math-double-1.c: Mark test variables as volatile.
Test negative numbers also.
* gcc.dg/c99-math-float-1.c: Likewise.
* gcc.dg/c99-math-long-double-1.c: Likewise.
* gcc.dg/c99-math.h: Check for FP exceptions. Update for negative
test inputs.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@126816 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/fixincludes/ChangeLog b/fixincludes/ChangeLog
index 42eaa1e..a64cf1c 100644
--- a/fixincludes/ChangeLog
+++ b/fixincludes/ChangeLog
@@ -1,3 +1,13 @@
+2007-07-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR target/32641
+
+ * inclhack.def (solaris_math_4, solaris_math_5, solaris_math_6,
+ solaris_math_7): Constify and make FP exception-safe.
+ * tests/base/iso/math_c99.h: Update.
+
+ * fixincl.x: Regenerate.
+
2007-02-13 Release Manager
* GCC 4.1.2 released.
diff --git a/fixincludes/fixincl.x b/fixincludes/fixincl.x
index ef4fb90..5eaad7e 100644
--- a/fixincludes/fixincl.x
+++ b/fixincludes/fixincl.x
@@ -2,11 +2,11 @@
*
* DO NOT EDIT THIS FILE (fixincl.x)
*
- * It has been AutoGen-ed Thursday November 2, 2006 at 04:07:02 PM PST
+ * It has been AutoGen-ed Thursday July 5, 2007 at 01:42:35 PM EDT
* From the definitions inclhack.def
* and the template file fixincl
*/
-/* DO NOT CVS-MERGE THIS FILE, EITHER Thu Nov 2 16:07:02 PST 2006
+/* DO NOT CVS-MERGE THIS FILE, EITHER Thu Jul 5 13:42:35 EDT 2007
*
* You must regenerate it. Use the ./genfixes script.
*
@@ -5289,7 +5289,7 @@ static tTestDesc aSolaris_Math_4Tests[] = {
static const char* apzSolaris_Math_4Patch[] = {
"format",
"#define\tfpclassify(x) \\\n\
- __extension__ ({ __typeof(x) __x_fp = (x); \\\n\
+ __extension__ ({ const __typeof(x) __x_fp = (x); \\\n\
\t\t isnan(__x_fp) \\\n\
\t\t ? FP_NAN \\\n\
\t\t : isinf(__x_fp) \\\n\
@@ -5342,8 +5342,12 @@ static tTestDesc aSolaris_Math_5Tests[] = {
static const char* apzSolaris_Math_5Patch[] = {
"format",
"#define\tisfinite(x) \\\n\
- __extension__ ({ __typeof (x) __x_f = (x); \\\n\
-\t\t __builtin_expect(!isnan(__x_f - __x_f), 1); })",
+ __extension__ ({ const __typeof (x) __x_f = (x); \\\n\
+\t\t __builtin_expect(sizeof(__x_f) == sizeof(float) \\\n\
+\t\t\t ? islessequal(__builtin_fabsf(__x_f),__FLT_MAX__) \\\n\
+\t\t\t : sizeof(__x_f) == sizeof(long double) \\\n\
+\t\t\t ? islessequal(__builtin_fabsl(__x_f),__LDBL_MAX__) \\\n\
+\t\t\t : islessequal(__builtin_fabs(__x_f),__DBL_MAX__), 1); })",
"^#define[ \t]+isfinite\\(x\\)[ \t]+__builtin_isfinite\\(x\\)",
(char*)NULL };
@@ -5387,8 +5391,12 @@ static tTestDesc aSolaris_Math_6Tests[] = {
static const char* apzSolaris_Math_6Patch[] = {
"format",
"#define\tisinf(x) \\\n\
- __extension__ ({ __typeof (x) __x_i = (x); \\\n\
-\t\t __builtin_expect(!isnan(__x_i) && !isfinite(__x_i), 0); })",
+ __extension__ ({ const __typeof (x) __x_i = (x); \\\n\
+\t\t __builtin_expect(sizeof(__x_i) == sizeof(float) \\\n\
+\t\t\t ? isgreater(__builtin_fabsf(__x_i),__FLT_MAX__) \\\n\
+\t\t\t : sizeof(__x_i) == sizeof(long double) \\\n\
+\t\t\t ? isgreater(__builtin_fabsl(__x_i),__LDBL_MAX__) \\\n\
+\t\t\t : isgreater(__builtin_fabs(__x_i),__DBL_MAX__), 0); })",
"^#define[ \t]+isinf\\(x\\)[ \t]+__builtin_isinf\\(x\\)",
(char*)NULL };
@@ -5432,14 +5440,13 @@ static tTestDesc aSolaris_Math_7Tests[] = {
static const char* apzSolaris_Math_7Patch[] = {
"format",
"#define\tisnormal(x) \\\n\
- __extension__ ({ __typeof(x) __x_n = (x); \\\n\
-\t\t if (__x_n < 0.0) __x_n = -__x_n; \\\n\
+ __extension__ ({ const __typeof(x) __x_n = (x); \\\n\
\t\t __builtin_expect(isfinite(__x_n) \\\n\
\t\t\t\t && (sizeof(__x_n) == sizeof(float) \\\n\
-\t\t\t\t\t ? __x_n >= __FLT_MIN__ \\\n\
+\t\t\t\t\t ? isgreaterequal(__builtin_fabsf(__x_n),__FLT_MIN__) \\\n\
\t\t\t\t\t : sizeof(__x_n) == sizeof(long double) \\\n\
-\t\t\t\t\t ? __x_n >= __LDBL_MIN__ \\\n\
-\t\t\t\t\t : __x_n >= __DBL_MIN__), 1); })",
+\t\t\t\t\t ? isgreaterequal(__builtin_fabsl(__x_n),__LDBL_MIN__) \\\n\
+\t\t\t\t\t : isgreaterequal(__builtin_fabs(__x_n),__DBL_MIN__)), 1); })",
"^#define[ \t]+isnormal\\(x\\)[ \t]+__builtin_isnormal\\(x\\)",
(char*)NULL };
diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
index adafcbb..fec214e 100644
--- a/fixincludes/inclhack.def
+++ b/fixincludes/inclhack.def
@@ -2932,7 +2932,7 @@ fix = {
files = iso/math_c99.h;
c_fix = format;
c_fix_arg = "#define\tfpclassify(x) \\\n"
- " __extension__ ({ __typeof(x) __x_fp = (x); \\\n"
+ " __extension__ ({ const __typeof(x) __x_fp = (x); \\\n"
"\t\t isnan(__x_fp) \\\n"
"\t\t ? FP_NAN \\\n"
"\t\t : isinf(__x_fp) \\\n"
@@ -2956,8 +2956,12 @@ fix = {
files = iso/math_c99.h;
c_fix = format;
c_fix_arg = "#define\tisfinite(x) \\\n"
- " __extension__ ({ __typeof (x) __x_f = (x); \\\n"
- "\t\t __builtin_expect(!isnan(__x_f - __x_f), 1); })";
+ " __extension__ ({ const __typeof (x) __x_f = (x); \\\n"
+ "\t\t __builtin_expect(sizeof(__x_f) == sizeof(float) \\\n"
+ "\t\t\t ? islessequal(__builtin_fabsf(__x_f),__FLT_MAX__) \\\n"
+ "\t\t\t : sizeof(__x_f) == sizeof(long double) \\\n"
+ "\t\t\t ? islessequal(__builtin_fabsl(__x_f),__LDBL_MAX__) \\\n"
+ "\t\t\t : islessequal(__builtin_fabs(__x_f),__DBL_MAX__), 1); })";
c_fix_arg = "^#define[ \t]+isfinite\\(x\\)[ \t]+__builtin_isfinite\\(x\\)";
test_text =
'#ident "@(#)math_c99.h 1.9 04/11/01 SMI"'"\n"
@@ -2972,8 +2976,12 @@ fix = {
files = iso/math_c99.h;
c_fix = format;
c_fix_arg = "#define\tisinf(x) \\\n"
- " __extension__ ({ __typeof (x) __x_i = (x); \\\n"
- "\t\t __builtin_expect(!isnan(__x_i) && !isfinite(__x_i), 0); })";
+ " __extension__ ({ const __typeof (x) __x_i = (x); \\\n"
+ "\t\t __builtin_expect(sizeof(__x_i) == sizeof(float) \\\n"
+ "\t\t\t ? isgreater(__builtin_fabsf(__x_i),__FLT_MAX__) \\\n"
+ "\t\t\t : sizeof(__x_i) == sizeof(long double) \\\n"
+ "\t\t\t ? isgreater(__builtin_fabsl(__x_i),__LDBL_MAX__) \\\n"
+ "\t\t\t : isgreater(__builtin_fabs(__x_i),__DBL_MAX__), 0); })";
c_fix_arg = "^#define[ \t]+isinf\\(x\\)[ \t]+__builtin_isinf\\(x\\)";
test_text =
'#ident "@(#)math_c99.h 1.9 04/11/01 SMI"'"\n"
@@ -2988,14 +2996,13 @@ fix = {
files = iso/math_c99.h;
c_fix = format;
c_fix_arg = "#define\tisnormal(x) \\\n"
- " __extension__ ({ __typeof(x) __x_n = (x); \\\n"
- "\t\t if (__x_n < 0.0) __x_n = -__x_n; \\\n"
+ " __extension__ ({ const __typeof(x) __x_n = (x); \\\n"
"\t\t __builtin_expect(isfinite(__x_n) \\\n"
"\t\t\t\t && (sizeof(__x_n) == sizeof(float) \\\n"
- "\t\t\t\t\t ? __x_n >= __FLT_MIN__ \\\n"
+ "\t\t\t\t\t ? isgreaterequal(__builtin_fabsf(__x_n),__FLT_MIN__) \\\n"
"\t\t\t\t\t : sizeof(__x_n) == sizeof(long double) \\\n"
- "\t\t\t\t\t ? __x_n >= __LDBL_MIN__ \\\n"
- "\t\t\t\t\t : __x_n >= __DBL_MIN__), 1); })";
+ "\t\t\t\t\t ? isgreaterequal(__builtin_fabsl(__x_n),__LDBL_MIN__) \\\n"
+ "\t\t\t\t\t : isgreaterequal(__builtin_fabs(__x_n),__DBL_MIN__)), 1); })";
c_fix_arg = "^#define[ \t]+isnormal\\(x\\)[ \t]+__builtin_isnormal\\(x\\)";
test_text =
'#ident "@(#)math_c99.h 1.9 04/11/01 SMI"'"\n"
diff --git a/fixincludes/tests/base/iso/math_c99.h b/fixincludes/tests/base/iso/math_c99.h
index 86b6c20..bc2b653 100644
--- a/fixincludes/tests/base/iso/math_c99.h
+++ b/fixincludes/tests/base/iso/math_c99.h
@@ -38,7 +38,7 @@
#ident "@(#)math_c99.h 1.9 04/11/01 SMI"
#undef fpclassify
#define fpclassify(x) \
- __extension__ ({ __typeof(x) __x_fp = (x); \
+ __extension__ ({ const __typeof(x) __x_fp = (x); \
isnan(__x_fp) \
? FP_NAN \
: isinf(__x_fp) \
@@ -55,8 +55,12 @@
#ident "@(#)math_c99.h 1.9 04/11/01 SMI"
#undef isfinite
#define isfinite(x) \
- __extension__ ({ __typeof (x) __x_f = (x); \
- __builtin_expect(!isnan(__x_f - __x_f), 1); })
+ __extension__ ({ const __typeof (x) __x_f = (x); \
+ __builtin_expect(sizeof(__x_f) == sizeof(float) \
+ ? islessequal(__builtin_fabsf(__x_f),__FLT_MAX__) \
+ : sizeof(__x_f) == sizeof(long double) \
+ ? islessequal(__builtin_fabsl(__x_f),__LDBL_MAX__) \
+ : islessequal(__builtin_fabs(__x_f),__DBL_MAX__), 1); })
#endif /* SOLARIS_MATH_5_CHECK */
@@ -64,8 +68,12 @@
#ident "@(#)math_c99.h 1.9 04/11/01 SMI"
#undef isinf
#define isinf(x) \
- __extension__ ({ __typeof (x) __x_i = (x); \
- __builtin_expect(!isnan(__x_i) && !isfinite(__x_i), 0); })
+ __extension__ ({ const __typeof (x) __x_i = (x); \
+ __builtin_expect(sizeof(__x_i) == sizeof(float) \
+ ? isgreater(__builtin_fabsf(__x_i),__FLT_MAX__) \
+ : sizeof(__x_i) == sizeof(long double) \
+ ? isgreater(__builtin_fabsl(__x_i),__LDBL_MAX__) \
+ : isgreater(__builtin_fabs(__x_i),__DBL_MAX__), 0); })
#endif /* SOLARIS_MATH_6_CHECK */
@@ -73,14 +81,13 @@
#ident "@(#)math_c99.h 1.9 04/11/01 SMI"
#undef isnormal
#define isnormal(x) \
- __extension__ ({ __typeof(x) __x_n = (x); \
- if (__x_n < 0.0) __x_n = -__x_n; \
+ __extension__ ({ const __typeof(x) __x_n = (x); \
__builtin_expect(isfinite(__x_n) \
&& (sizeof(__x_n) == sizeof(float) \
- ? __x_n >= __FLT_MIN__ \
+ ? isgreaterequal(__builtin_fabsf(__x_n),__FLT_MIN__) \
: sizeof(__x_n) == sizeof(long double) \
- ? __x_n >= __LDBL_MIN__ \
- : __x_n >= __DBL_MIN__), 1); })
+ ? isgreaterequal(__builtin_fabsl(__x_n),__LDBL_MIN__) \
+ : isgreaterequal(__builtin_fabs(__x_n),__DBL_MIN__)), 1); })
#endif /* SOLARIS_MATH_7_CHECK */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index abd5a0c..ad80215 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2007-07-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.dg/c99-math-double-1.c: Mark test variables as volatile.
+ Test negative numbers also.
+ * gcc.dg/c99-math-float-1.c: Likewise.
+ * gcc.dg/c99-math-long-double-1.c: Likewise.
+ * gcc.dg/c99-math.h: Check for FP exceptions. Update for negative
+ test inputs.
+
2007-07-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* gcc.dg/c99-math-double-1.c, gcc.dg/c99-math-float-1.c,
diff --git a/gcc/testsuite/gcc.dg/c99-math-double-1.c b/gcc/testsuite/gcc.dg/c99-math-double-1.c
index ef11d1b..6441a59 100644
--- a/gcc/testsuite/gcc.dg/c99-math-double-1.c
+++ b/gcc/testsuite/gcc.dg/c99-math-double-1.c
@@ -6,14 +6,17 @@
int main(void)
{
- double nan = NAN;
- double inf = INFINITY;
- double huge = HUGE_VAL;
- double norm = __DBL_MIN__;
- double sub = __DBL_MIN__ / 2;
- double zero = 0.0;
+ volatile double nan = NAN;
+ volatile double inf = INFINITY;
+ volatile double huge = HUGE_VAL;
+ volatile double norm1 = __DBL_MIN__;
+ volatile double norm2 = 1;
+ volatile double norm3 = __DBL_MAX__;
+ volatile double sub = __DBL_MIN__ / 2;
+ volatile double zero = 0.0;
- C99_MATH_TESTS (nan, inf, huge, norm, sub, zero)
+ C99_MATH_TESTS (nan, inf, huge, norm1, norm2, norm3, sub, zero, /*neg=*/0)
+ C99_MATH_TESTS (-nan, -inf, -huge, -norm1, -norm2, -norm3, -sub, -zero, /*neg=*/1)
return 0;
}
diff --git a/gcc/testsuite/gcc.dg/c99-math-float-1.c b/gcc/testsuite/gcc.dg/c99-math-float-1.c
index f377c1a..36a7396 100644
--- a/gcc/testsuite/gcc.dg/c99-math-float-1.c
+++ b/gcc/testsuite/gcc.dg/c99-math-float-1.c
@@ -6,14 +6,17 @@
int main(void)
{
- float nan = NAN;
- float inf = INFINITY;
- float huge = HUGE_VALF;
- float norm = __FLT_MIN__;
- float sub = __FLT_MIN__ / 2;
- float zero = 0.0f;
+ volatile float nan = NAN;
+ volatile float inf = INFINITY;
+ volatile float huge = HUGE_VALF;
+ volatile float norm1 = __FLT_MIN__;
+ volatile float norm2 = 1;
+ volatile float norm3 = __FLT_MAX__;
+ volatile float sub = __FLT_MIN__ / 2;
+ volatile float zero = 0.0f;
- C99_MATH_TESTS (nan, inf, huge, norm, sub, zero)
+ C99_MATH_TESTS (nan, inf, huge, norm1, norm2, norm3, sub, zero, /*neg=*/0)
+ C99_MATH_TESTS (-nan, -inf, -huge, -norm1, -norm2, -norm3, -sub, -zero, /*neg=*/1)
return 0;
}
diff --git a/gcc/testsuite/gcc.dg/c99-math-long-double-1.c b/gcc/testsuite/gcc.dg/c99-math-long-double-1.c
index 5f1cd30..d8146c2 100644
--- a/gcc/testsuite/gcc.dg/c99-math-long-double-1.c
+++ b/gcc/testsuite/gcc.dg/c99-math-long-double-1.c
@@ -6,14 +6,17 @@
int main(void)
{
- long double nan = NAN;
- long double inf = INFINITY;
- long double huge = HUGE_VALL;
- long double norm = __LDBL_MIN__;
- long double sub = __LDBL_MIN__ / 2;
- long double zero = 0.0l;
+ volatile long double nan = NAN;
+ volatile long double inf = INFINITY;
+ volatile long double huge = HUGE_VALL;
+ volatile long double norm1 = __LDBL_MIN__;
+ volatile long double norm2 = 1;
+ volatile long double norm3 = __LDBL_MAX__;
+ volatile long double sub = __LDBL_MIN__ / 2;
+ volatile long double zero = 0.0l;
- C99_MATH_TESTS (nan, inf, huge, norm, sub, zero)
+ C99_MATH_TESTS (nan, inf, huge, norm1, norm2, norm3, sub, zero, /*neg=*/0)
+ C99_MATH_TESTS (-nan, -inf, -huge, -norm1, -norm2, -norm3, -sub, -zero, /*neg=*/1)
return 0;
}
diff --git a/gcc/testsuite/gcc.dg/c99-math.h b/gcc/testsuite/gcc.dg/c99-math.h
index aff81b3..81f2e6d 100644
--- a/gcc/testsuite/gcc.dg/c99-math.h
+++ b/gcc/testsuite/gcc.dg/c99-math.h
@@ -1,9 +1,14 @@
#include <math.h>
+#include <fenv.h>
extern void abort(void);
-#define C99_MATH_TESTS(nan, inf, huge, norm, sub, zero) \
+#define C99_MATH_TESTS(nan, inf, huge, norm1, norm2, norm3, sub, zero, neg) \
{ \
+ if (feclearexcept (FE_ALL_EXCEPT) != 0) \
+ abort(); \
+ \
+ \
if (fpclassify (nan) != FP_NAN) \
abort (); \
\
@@ -13,7 +18,13 @@ extern void abort(void);
if (fpclassify (huge) != FP_INFINITE) \
abort (); \
\
- if (fpclassify (norm) != FP_NORMAL) \
+ if (fpclassify (norm1) != FP_NORMAL) \
+ abort (); \
+ \
+ if (fpclassify (norm2) != FP_NORMAL) \
+ abort (); \
+ \
+ if (fpclassify (norm3) != FP_NORMAL) \
abort (); \
\
if (fpclassify (sub) != FP_SUBNORMAL) \
@@ -32,7 +43,13 @@ extern void abort(void);
if (isnan (huge)) \
abort (); \
\
- if (isnan (norm)) \
+ if (isnan (norm1)) \
+ abort (); \
+ \
+ if (isnan (norm2)) \
+ abort (); \
+ \
+ if (isnan (norm3)) \
abort (); \
\
if (isnan (sub)) \
@@ -51,7 +68,13 @@ extern void abort(void);
if (!isinf (huge)) \
abort (); \
\
- if (isinf (norm)) \
+ if (isinf (norm1)) \
+ abort (); \
+ \
+ if (isinf (norm2)) \
+ abort (); \
+ \
+ if (isinf (norm3)) \
abort (); \
\
if (isinf (sub)) \
@@ -70,7 +93,13 @@ extern void abort(void);
if (isfinite (huge)) \
abort (); \
\
- if (!isfinite (norm)) \
+ if (!isfinite (norm1)) \
+ abort (); \
+ \
+ if (!isfinite (norm2)) \
+ abort (); \
+ \
+ if (!isfinite (norm3)) \
abort (); \
\
if (!isfinite (sub)) \
@@ -89,7 +118,13 @@ extern void abort(void);
if (isnormal (huge)) \
abort (); \
\
- if (!isnormal (norm)) \
+ if (!isnormal (norm1)) \
+ abort (); \
+ \
+ if (!isnormal (norm2)) \
+ abort (); \
+ \
+ if (!isnormal (norm3)) \
abort (); \
\
if (isnormal (sub)) \
@@ -99,28 +134,103 @@ extern void abort(void);
abort (); \
\
\
- if (signbit (norm)) \
+ if (!!signbit (nan) != neg) \
abort (); \
\
- if (!signbit (-(norm))) \
+ if (!!signbit (inf) != neg) \
abort (); \
\
+ if (!!signbit (huge) != neg) \
+ abort (); \
\
- if (!isgreater ((inf), (norm))) \
+ if (!!signbit (norm1) != neg) \
abort (); \
\
- if (!isgreaterequal ((inf), (huge))) \
+ if (!!signbit (norm2) != neg) \
abort (); \
\
- if (!isless ((norm), (inf))) \
+ if (!!signbit (norm3) != neg) \
abort (); \
\
- if (!islessequal ((huge), (inf))) \
+ if (!!signbit (sub) != neg) \
abort (); \
\
- if (!islessgreater ((inf), (norm))) \
+ if (!!signbit (zero) != neg) \
abort (); \
\
- if (!isunordered ((nan), (norm))) \
+ \
+ if (neg) \
+ { \
+ if (!isless ((inf), (norm1))) \
+ abort (); \
+ \
+ if (!isless ((inf), (norm2))) \
+ abort (); \
+ \
+ if (!isless ((inf), (norm3))) \
+ abort (); \
+ \
+ if (!islessequal ((inf), (huge))) \
+ abort (); \
+ \
+ if (!isgreater ((norm1), (inf))) \
+ abort (); \
+ \
+ if (!isgreater ((norm2), (inf))) \
+ abort (); \
+ \
+ if (!isgreater ((norm3), (inf))) \
+ abort (); \
+ \
+ if (!isgreaterequal ((huge), (inf))) \
+ abort (); \
+ } \
+ else \
+ { \
+ if (!isgreater ((inf), (norm1))) \
+ abort (); \
+ \
+ if (!isgreater ((inf), (norm2))) \
+ abort (); \
+ \
+ if (!isgreater ((inf), (norm3))) \
+ abort (); \
+ \
+ if (!isgreaterequal ((inf), (huge))) \
+ abort (); \
+ \
+ if (!isless ((norm1), (inf))) \
+ abort (); \
+ \
+ if (!isless ((norm2), (inf))) \
+ abort (); \
+ \
+ if (!isless ((norm3), (inf))) \
+ abort (); \
+ \
+ if (!islessequal ((huge), (inf))) \
+ abort (); \
+ } \
+ \
+ if (!islessgreater ((inf), (norm1))) \
abort (); \
+ \
+ if (!islessgreater ((inf), (norm2))) \
+ abort (); \
+ \
+ if (!islessgreater ((inf), (norm3))) \
+ abort (); \
+ \
+ if (!isunordered ((nan), (norm1))) \
+ abort (); \
+ \
+ if (!isunordered ((nan), (norm2))) \
+ abort (); \
+ \
+ if (!isunordered ((nan), (norm3))) \
+ abort (); \
+ \
+ \
+ if (fetestexcept (FE_ALL_EXCEPT) != 0) \
+ abort(); \
}
--
1.5.4
From 59fc40886f8ef2365bb592126c032d99736cca1b Mon Sep 17 00:00:00 2001
From: krebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 1 Aug 2007 08:47:17 +0000
Subject: 2007-08-01 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.md (TF in GPR splitter): Change operand_subword
parameter to TFmode.
2007-08-01 Andreas Krebbel <krebbel1@de.ibm.com>
* gcc.dg/20070801-1.c: New testcase.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@127116 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1c8fb22..3b62a48 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-08-01 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.md (TF in GPR splitter): Change operand_subword
+ parameter to TFmode.
+
2007-07-16 Richard Guenther <rguenther@suse.de>
Uros Bizjak <ubizjak@gmail.com>
diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md
index 6d994c8..d2c1033 100644
--- a/gcc/config/s390/s390.md
+++ b/gcc/config/s390/s390.md
@@ -1578,7 +1578,7 @@
&& !s_operand (operands[1], VOIDmode)"
[(set (match_dup 0) (match_dup 1))]
{
- rtx addr = operand_subword (operands[0], 1, 0, DFmode);
+ rtx addr = operand_subword (operands[0], 1, 0, TFmode);
s390_load_address (addr, XEXP (operands[1], 0));
operands[1] = replace_equiv_address (operands[1], addr);
})
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ad80215..a292d2f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2007-08-01 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * gcc.dg/20070801-1.c: New testcase.
+
2007-07-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* gcc.dg/c99-math-double-1.c: Mark test variables as volatile.
diff --git a/gcc/testsuite/gcc.dg/20070801-1.c b/gcc/testsuite/gcc.dg/20070801-1.c
new file mode 100644
index 0000000..d6a034c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20070801-1.c
@@ -0,0 +1,62 @@
+/* This failed on s390x due to a back end bug. */
+
+/* { dg-do compile { target fpic } } */
+/* { dg-options "-O2 -fpic" } */
+
+typedef long unsigned int size_t;
+typedef enum
+{
+ TYPE_SCHAR, TYPE_LONGDOUBLE
+}
+arg_type;
+
+typedef struct
+{
+ arg_type type;
+ union
+ {
+ signed char a_schar;
+ long double a_longdouble;
+ }
+ a;
+}
+argument;
+
+typedef struct
+{
+ argument *arg;
+}
+arguments;
+
+int ind;
+
+extern void foo (arguments *a);
+
+void
+bar ()
+{
+ arguments a;
+ char *buf;
+ char *result;
+ int uninitialized;
+ int count, i;
+ int retcount;
+
+ foo (&a);
+
+ switch (a.arg[ind].type)
+ {
+ case TYPE_SCHAR:
+ {
+ if (uninitialized == 0)
+ __builtin___snprintf_chk (result, 10, 1, 10, buf, 1, &count);
+ }
+ case TYPE_LONGDOUBLE:
+ {
+ long double arg = a.arg[ind].a.a_longdouble;
+
+ if (uninitialized == 0)
+ __builtin___snprintf_chk (result, 10, 1, 10, buf, arg, &count);
+ }
+ }
+}
--
1.5.4
From 1f6c0b294dd4bd22ab074be5a887a786b699c5f6 Mon Sep 17 00:00:00 2001
From: krebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 2 Aug 2007 08:11:18 +0000
Subject: 2007-08-02 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.md ("*xordi3_cconly"): Change xr to xg.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@127149 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3b62a48..1c1f568 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2007-08-02 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.md ("*xordi3_cconly"): Change xr to xg.
+
2007-08-01 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.md (TF in GPR splitter): Change operand_subword
diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md
index d2c1033..910fd2b 100644
--- a/gcc/config/s390/s390.md
+++ b/gcc/config/s390/s390.md
@@ -5902,7 +5902,7 @@
"s390_match_ccmode(insn, CCTmode) && TARGET_64BIT"
"@
xgr\t%0,%2
- xr\t%0,%2"
+ xg\t%0,%2"
[(set_attr "op_type" "RRE,RXY")])
(define_insn "*xordi3_extimm"
--
1.5.4
From 9f40ae71766bfb40078a633ce24dbe6c6e889d10 Mon Sep 17 00:00:00 2001
From: paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 10 Aug 2007 18:05:07 +0000
Subject: /cp
2007-08-10 Paolo Carlini <pcarlini@suse.de>
PR c++/17763
* error.c (dump_expr): Consistently use the *_cxx_*
variants of the pretty-print functions.
/testsuite
2007-08-10 Paolo Carlini <pcarlini@suse.de>
PR c++/17763
* g++.dg/other/error16.C: New.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@127346 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 9cb6d56..126b3f6 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2007-08-10 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/17763
+ * error.c (dump_expr): Consistently use the *_cxx_*
+ variants of the pretty-print functions.
+
2007-06-20 Dirk Mueller <dmueller@suse.de>
PR c++/31809
diff --git a/gcc/cp/error.c b/gcc/cp/error.c
index be45632..e1cdfcd 100644
--- a/gcc/cp/error.c
+++ b/gcc/cp/error.c
@@ -1413,13 +1413,13 @@ dump_expr (tree t, int flags)
if (TREE_CODE (ob) == ADDR_EXPR)
{
dump_expr (TREE_OPERAND (ob, 0), flags | TFF_EXPR_IN_PARENS);
- pp_dot (cxx_pp);
+ pp_cxx_dot (cxx_pp);
}
else if (TREE_CODE (ob) != PARM_DECL
|| strcmp (IDENTIFIER_POINTER (DECL_NAME (ob)), "this"))
{
dump_expr (ob, flags | TFF_EXPR_IN_PARENS);
- pp_arrow (cxx_pp);
+ pp_cxx_arrow (cxx_pp);
}
args = TREE_CHAIN (args);
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a292d2f..035e3ef 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-08-10 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/17763
+ * g++.dg/other/error16.C: New.
+
2007-08-01 Andreas Krebbel <krebbel1@de.ibm.com>
* gcc.dg/20070801-1.c: New testcase.
diff --git a/gcc/testsuite/g++.dg/other/error16.C b/gcc/testsuite/g++.dg/other/error16.C
new file mode 100644
index 0000000..1e34647
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/error16.C
@@ -0,0 +1,14 @@
+// PR c++/17763
+
+template <typename U> struct Outer {
+ struct Inner {};
+ Inner foo();
+};
+
+typedef int X;
+typedef Outer<X> XOuter;
+
+int main() {
+ Outer<int> ab;
+ ab.foo() == 1; // { dg-error "ab.Outer" }
+}
--
1.5.4
From 4358c502817dd4d194d3acd906677ff838f361f7 Mon Sep 17 00:00:00 2001
From: paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 18 Aug 2007 10:08:03 +0000
Subject: /cp
2007-08-18 Paolo Carlini <pcarlini@suse.de>
PR c++/32112
* error.c (dump_decl): Deal with UNBOUND_CLASS_TEMPLATE.
* cxx-pretty-print.c (pp_cxx_unqualified_id): Likewise.
/testsuite
2007-08-18 Paolo Carlini <pcarlini@suse.de>
PR c++/32112
* g++.dg/template/error26.C: New.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@127610 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 126b3f6..dcbef47 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2007-08-18 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/32112
+ * error.c (dump_decl): Deal with UNBOUND_CLASS_TEMPLATE.
+ * cxx-pretty-print.c (pp_cxx_unqualified_id): Likewise.
+
2007-08-10 Paolo Carlini <pcarlini@suse.de>
PR c++/17763
diff --git a/gcc/cp/cxx-pretty-print.c b/gcc/cp/cxx-pretty-print.c
index cdaf470..43cf581 100644
--- a/gcc/cp/cxx-pretty-print.c
+++ b/gcc/cp/cxx-pretty-print.c
@@ -204,6 +204,10 @@ pp_cxx_unqualified_id (cxx_pretty_printer *pp, tree t)
pp_cxx_unqualified_id (pp, TEMPLATE_PARM_DECL (t));
break;
+ case UNBOUND_CLASS_TEMPLATE:
+ pp_cxx_unqualified_id (pp, TYPE_NAME (t));
+ break;
+
default:
pp_unsupported_tree (pp, t);
break;
diff --git a/gcc/cp/error.c b/gcc/cp/error.c
index e1cdfcd..58ebe42 100644
--- a/gcc/cp/error.c
+++ b/gcc/cp/error.c
@@ -895,6 +895,10 @@ dump_decl (tree t, int flags)
pp_type_id (cxx_pp, t);
break;
+ case UNBOUND_CLASS_TEMPLATE:
+ dump_type (t, flags);
+ break;
+
default:
pp_unsupported_tree (cxx_pp, t);
/* Fall through to error. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 035e3ef..1776402 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-08-18 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/32112
+ * g++.dg/template/error26.C: New.
+
2007-08-10 Paolo Carlini <pcarlini@suse.de>
PR c++/17763
diff --git a/gcc/testsuite/g++.dg/template/error26.C b/gcc/testsuite/g++.dg/template/error26.C
new file mode 100644
index 0000000..7545762
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/error26.C
@@ -0,0 +1,5 @@
+// PR c++/32112
+
+template<typename> struct A;
+
+template<typename T> void foo (A<&T::template i>); // { dg-error "T::template i|mismatch|& T::i" }
--
1.5.4
From 7e02f9dabb89abecf5cdc302bd266ec4fc09fd9e Mon Sep 17 00:00:00 2001
From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 20 Aug 2007 08:17:21 +0000
Subject: PR c++/32992
* typeck.c (check_return_expr): Don't NRV optimize vars in
anonymous unions.
* decl.c (finish_function): Comment fix.
* g++.dg/opt/nrv14.C: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@127641 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index dcbef47..3d66b0e 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,10 @@
+2007-08-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/32992
+ * typeck.c (check_return_expr): Don't NRV optimize vars in
+ anonymous unions.
+ * decl.c (finish_function): Comment fix.
+
2007-08-18 Paolo Carlini <pcarlini@suse.de>
PR c++/32112
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 32040ab..4aac4ee 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -11058,7 +11058,7 @@ finish_function (int flags)
gcc_assert (stmts_are_full_exprs_p ());
/* Set up the named return value optimization, if we can. Candidate
- variables are selected in check_return_value. */
+ variables are selected in check_return_expr. */
if (current_function_return_value)
{
tree r = current_function_return_value;
diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c
index a093527..07fc476 100644
--- a/gcc/cp/typeck.c
+++ b/gcc/cp/typeck.c
@@ -6439,6 +6439,7 @@ check_return_expr (tree retval, bool *no_warning)
&& TREE_CODE (retval) == VAR_DECL
&& DECL_CONTEXT (retval) == current_function_decl
&& ! TREE_STATIC (retval)
+ && ! DECL_HAS_VALUE_EXPR_P (retval)
&& (DECL_ALIGN (retval)
>= DECL_ALIGN (DECL_RESULT (current_function_decl)))
&& same_type_p ((TYPE_MAIN_VARIANT
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 1776402..a3c554d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-08-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/32992
+ * g++.dg/opt/nrv14.C: New test.
+
2007-08-18 Paolo Carlini <pcarlini@suse.de>
PR c++/32112
diff --git a/gcc/testsuite/g++.dg/opt/nrv14.C b/gcc/testsuite/g++.dg/opt/nrv14.C
new file mode 100644
index 0000000..22526d6
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/nrv14.C
@@ -0,0 +1,39 @@
+// PR c++/32992
+// { dg-do run }
+// { dg-options "-O2" }
+
+extern "C" void abort (void);
+
+struct A
+{
+ long int a1;
+ long int a2;
+ long int a3;
+};
+
+struct B
+{
+ long int f[3];
+ operator A ()
+ {
+ union
+ {
+ long int t[3];
+ A a;
+ };
+ for (int i = 0; i < 3; i++)
+ t[i] = f[i];
+ return a;
+ }
+};
+
+int
+main ()
+{
+ B b = { {1, 3, 5} };
+ A a = b;
+
+ if (a.a1 != b.f[0] || a.a2 != b.f[1] || a.a3 != b.f[2])
+ abort ();
+ return 0;
+}
--
1.5.4
From 8dbcb8dfb126973a641ed7039e45655a569eaa6b Mon Sep 17 00:00:00 2001
From: nemet <nemet@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 21 Aug 2007 18:08:52 +0000
Subject: * config/mips/predicates.md (const_call_insn_operand): Invoke
SYMBOL_REF_LONG_CALL_P only on SYMBOL_REFs.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@127672 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1c1f568..3e88cb6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-08-21 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/predicates.md (const_call_insn_operand): Invoke
+ SYMBOL_REF_LONG_CALL_P only on SYMBOL_REFs.
+
2007-08-02 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.md ("*xordi3_cconly"): Change xr to xg.
diff --git a/gcc/config/mips/predicates.md b/gcc/config/mips/predicates.md
index a96e017..509657e 100644
--- a/gcc/config/mips/predicates.md
+++ b/gcc/config/mips/predicates.md
@@ -106,7 +106,9 @@
/* If -mlong-calls, force all calls to use register addressing. Also,
if this function has the long_call attribute, we must use register
addressing. */
- return !TARGET_LONG_CALLS && !SYMBOL_REF_LONG_CALL_P (op);
+ return (!TARGET_LONG_CALLS
+ && !(GET_CODE (op) == SYMBOL_REF
+ && SYMBOL_REF_LONG_CALL_P (op)));
case SYMBOL_GOT_GLOBAL:
/* Without explicit relocs, there is no special syntax for
--
1.5.4
From 78c23d6faab7ebb730d1cd761b0597883b5881f7 Mon Sep 17 00:00:00 2001
From: rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 22 Aug 2007 08:43:53 +0000
Subject: 2007-08-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/33142
* tree-vrp.c (extract_range_from_unary_expr): Compare with
TYPE_MIN/MAX_VALUE using tree_int_cst_equal.
* gcc.c-torture/execute/pr33142.c: New testcase.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@127691 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3e88cb6..33f0853 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-08-22 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/33142
+ * tree-vrp.c (extract_range_from_unary_expr): Compare with
+ TYPE_MIN/MAX_VALUE using tree_int_cst_equal.
+
2007-08-21 Adam Nemet <anemet@caviumnetworks.com>
* config/mips/predicates.md (const_call_insn_operand): Invoke
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a3c554d..68aec99 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-08-22 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/33142
+ * gcc.c-torture/execute/pr33142.c: New testcase.
+
2007-08-20 Jakub Jelinek <jakub@redhat.com>
PR c++/32992
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr33142.c b/gcc/testsuite/gcc.c-torture/execute/pr33142.c
new file mode 100644
index 0000000..7bfc5b5
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr33142.c
@@ -0,0 +1,16 @@
+int abs(int j);
+extern void abort(void);
+
+__attribute__((noinline)) int lisp_atan2(long dy, long dx) {
+ if (dx <= 0)
+ if (dy > 0)
+ return abs(dx) <= abs(dy);
+ return 0;
+}
+
+int main() {
+ volatile long dy = 63, dx = -77;
+ if (lisp_atan2(dy, dx))
+ abort();
+ return 0;
+}
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index f5b22ea..8d479c1 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -1523,11 +1523,11 @@ extract_range_from_unary_expr (value_range_t *vr, tree expr)
-~[MIN, MIN] == ~[MIN, MIN]
-[MIN, 0] == [0, MAX] for -fno-wrapv
-[MIN, 0] == [0, MIN] for -fwrapv (will be set to varying later) */
- min = vr0.max == TYPE_MIN_VALUE (TREE_TYPE (expr))
+ min = tree_int_cst_equal (vr0.max, TYPE_MIN_VALUE (TREE_TYPE (expr)))
? TYPE_MIN_VALUE (TREE_TYPE (expr))
: fold_unary_to_constant (code, TREE_TYPE (expr), vr0.max);
- max = vr0.min == TYPE_MIN_VALUE (TREE_TYPE (expr))
+ max = tree_int_cst_equal (vr0.min, TYPE_MIN_VALUE (TREE_TYPE (expr)))
? (vr0.type == VR_ANTI_RANGE || flag_wrapv
? TYPE_MIN_VALUE (TREE_TYPE (expr))
: TYPE_MAX_VALUE (TREE_TYPE (expr)))
@@ -1540,9 +1540,9 @@ extract_range_from_unary_expr (value_range_t *vr, tree expr)
useful range. */
if (flag_wrapv
&& ((vr0.type == VR_RANGE
- && vr0.min == TYPE_MIN_VALUE (TREE_TYPE (expr)))
+ && tree_int_cst_equal (vr0.min, TYPE_MIN_VALUE (TREE_TYPE (expr))))
|| (vr0.type == VR_ANTI_RANGE
- && vr0.min != TYPE_MIN_VALUE (TREE_TYPE (expr))
+ && !tree_int_cst_equal (vr0.min, TYPE_MIN_VALUE (TREE_TYPE (expr)))
&& !range_includes_zero_p (&vr0))))
{
set_value_range_to_varying (vr);
@@ -1551,7 +1551,7 @@ extract_range_from_unary_expr (value_range_t *vr, tree expr)
/* ABS_EXPR may flip the range around, if the original range
included negative values. */
- min = (vr0.min == TYPE_MIN_VALUE (TREE_TYPE (expr)))
+ min = (tree_int_cst_equal (vr0.min, TYPE_MIN_VALUE (TREE_TYPE (expr))))
? TYPE_MAX_VALUE (TREE_TYPE (expr))
: fold_unary_to_constant (code, TREE_TYPE (expr), vr0.min);
@@ -1575,7 +1575,7 @@ extract_range_from_unary_expr (value_range_t *vr, tree expr)
or ~[-INF + 1, min (abs(MIN), abs(MAX))] when
flag_wrapv is set and the original anti-range doesn't include
TYPE_MIN_VALUE, remember -TYPE_MIN_VALUE = TYPE_MIN_VALUE. */
- min = (flag_wrapv && vr0.min != type_min_value
+ min = (flag_wrapv && !tree_int_cst_equal (vr0.min, type_min_value)
? int_const_binop (PLUS_EXPR,
type_min_value,
integer_one_node, 0)
--
1.5.4
From a0cfbf3ba632d52f1466e722c7e303fa26510415 Mon Sep 17 00:00:00 2001
From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 24 Aug 2007 17:21:42 +0000
Subject: PR middle-end/32912
* fold-const.c (fold_binary): Only optimize X | ~X and X ^ ~X for
integral types.
* gcc.dg/pr32912-1.c: New test.
* gcc.dg/pr32912-2.c: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@127781 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 3d66b0e..3285436 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2007-08-24 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/31941
+ * error.c (resolve_virtual_fun_from_obj_type_ref): Handle
+ TARGET_VTABLE_USES_DESCRIPTORS targets properly.
+
2007-08-20 Jakub Jelinek <jakub@redhat.com>
PR c++/32992
diff --git a/gcc/cp/error.c b/gcc/cp/error.c
index 58ebe42..1953d7d 100644
--- a/gcc/cp/error.c
+++ b/gcc/cp/error.c
@@ -1291,10 +1291,14 @@ static tree
resolve_virtual_fun_from_obj_type_ref (tree ref)
{
tree obj_type = TREE_TYPE (OBJ_TYPE_REF_OBJECT (ref));
- int index = tree_low_cst (OBJ_TYPE_REF_TOKEN (ref), 1);
+ HOST_WIDE_INT index = tree_low_cst (OBJ_TYPE_REF_TOKEN (ref), 1);
tree fun = BINFO_VIRTUALS (TYPE_BINFO (TREE_TYPE (obj_type)));
- while (index--)
+ while (index)
+ {
fun = TREE_CHAIN (fun);
+ index -= (TARGET_VTABLE_USES_DESCRIPTORS
+ ? TARGET_VTABLE_USES_DESCRIPTORS : 1);
+ }
return BV_FN (fun);
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 68aec99..a9651e6 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-08-24 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/31941
+ * g++.dg/parse/crash37.C: New test.
+
2007-08-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/33142
diff --git a/gcc/testsuite/g++.dg/parse/crash37.C b/gcc/testsuite/g++.dg/parse/crash37.C
new file mode 100644
index 0000000..8320dfa
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/crash37.C
@@ -0,0 +1,15 @@
+// PR c++/31941
+// { dg-do compile }
+
+struct S
+{
+ S() throw () { }
+ virtual ~S () throw ();
+ virtual const char* what () const throw ();
+};
+
+const char *
+foo (S &e)
+{
+ return e.what ().c_str (); // { dg-error "c_str.*S::what.*which is of non-class type" }
+}
--
1.5.4
From 3af259b3812bd22c83febd293cd0a4dbeb7f341f Mon Sep 17 00:00:00 2001
From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 24 Aug 2007 17:23:43 +0000
Subject: PR middle-end/32912
* fold-const.c (fold_binary): Only optimize X | ~X and X ^ ~X for
integral types.
* gcc.dg/pr32912-1.c: New test.
* gcc.dg/pr32912-2.c: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@127783 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 33f0853..84689ca 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-08-24 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/32912
+ * fold-const.c (fold_binary): Only optimize X | ~X and X ^ ~X for
+ integral types.
+
2007-08-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/33142
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 417231a..ec9ab94 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -8075,6 +8075,7 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1)
/* ~X | X is -1. */
if (TREE_CODE (arg0) == BIT_NOT_EXPR
+ && INTEGRAL_TYPE_P (TREE_TYPE (arg1))
&& operand_equal_p (TREE_OPERAND (arg0, 0), arg1, 0))
{
t1 = build_int_cst (type, -1);
@@ -8084,6 +8085,7 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1)
/* X | ~X is -1. */
if (TREE_CODE (arg1) == BIT_NOT_EXPR
+ && INTEGRAL_TYPE_P (TREE_TYPE (arg0))
&& operand_equal_p (arg0, TREE_OPERAND (arg1, 0), 0))
{
t1 = build_int_cst (type, -1);
@@ -8171,6 +8173,7 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1)
/* ~X ^ X is -1. */
if (TREE_CODE (arg0) == BIT_NOT_EXPR
+ && INTEGRAL_TYPE_P (TREE_TYPE (arg1))
&& operand_equal_p (TREE_OPERAND (arg0, 0), arg1, 0))
{
t1 = build_int_cst (type, -1);
@@ -8180,6 +8183,7 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1)
/* X ^ ~X is -1. */
if (TREE_CODE (arg1) == BIT_NOT_EXPR
+ && INTEGRAL_TYPE_P (TREE_TYPE (arg0))
&& operand_equal_p (arg0, TREE_OPERAND (arg1, 0), 0))
{
t1 = build_int_cst (type, -1);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a9651e6..a4cbd97 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,9 @@
2007-08-24 Jakub Jelinek <jakub@redhat.com>
+ PR middle-end/32912
+ * gcc.dg/pr32912-1.c: New test.
+ * gcc.dg/pr32912-2.c: New test.
+
PR c++/31941
* g++.dg/parse/crash37.C: New test.
diff --git a/gcc/testsuite/gcc.dg/pr32912-1.c b/gcc/testsuite/gcc.dg/pr32912-1.c
new file mode 100644
index 0000000..2f9e859
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr32912-1.c
@@ -0,0 +1,44 @@
+/* PR middle-end/32912 */
+/* { dg-do run } */
+/* { dg-options "-O2 -w" } */
+
+extern void abort (void);
+
+typedef int __m128i __attribute__ ((__vector_size__ (16)));
+
+__m128i a, b, c, d, e, f;
+
+void
+foo (__m128i x)
+{
+ a = x ^ ~x;
+ b = ~x ^ x;
+ c = x | ~x;
+ d = ~x | x;
+ e = x & ~x;
+ f = ~x & x;
+}
+
+int
+main (void)
+{
+ union { __m128i v; int i[sizeof (__m128i) / sizeof (int)]; } u;
+ int i;
+
+ for (i = 0; i < sizeof (u.i) / sizeof (u.i[0]); i++)
+ u.i[i] = i * 49 - 36;
+ foo (u.v);
+#define check(x, val) \
+ u.v = (x); \
+ for (i = 0; i < sizeof (u.i) / sizeof (u.i[0]); i++) \
+ if (u.i[i] != (val)) \
+ abort ()
+
+ check (a, ~0);
+ check (b, ~0);
+ check (c, ~0);
+ check (d, ~0);
+ check (e, 0);
+ check (f, 0);
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/pr32912-2.c b/gcc/testsuite/gcc.dg/pr32912-2.c
new file mode 100644
index 0000000..3ea81da
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr32912-2.c
@@ -0,0 +1,45 @@
+/* { dg-do run } */
+/* { dg-options "-O2 -w" } */
+
+extern void abort (void);
+
+typedef int __m128i __attribute__ ((__vector_size__ (16)));
+
+__m128i a, b, c, d, e, f;
+
+__m128i
+foo (void)
+{
+ __m128i x = { 0x11111111, 0x22222222, 0x44444444 };
+ return x;
+}
+
+__m128i
+bar (void)
+{
+ __m128i x = { 0x11111111, 0x22222222, 0x44444444 };
+ return ~x;
+}
+
+int
+main (void)
+{
+ union { __m128i v; int i[sizeof (__m128i) / sizeof (int)]; } u, v;
+ int i;
+
+ u.v = foo ();
+ v.v = bar ();
+ for (i = 0; i < sizeof (u.i) / sizeof (u.i[0]); i++)
+ {
+ if (u.i[i] != ~v.i[i])
+ abort ();
+ if (i < 3)
+ {
+ if (u.i[i] != (0x11111111 << i))
+ abort ();
+ }
+ else if (u.i[i])
+ abort ();
+ }
+ return 0;
+}
--
1.5.4
From c2a82603877dffadcbab05e645c5a21631b173a6 Mon Sep 17 00:00:00 2001
From: paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 31 Aug 2007 09:55:43 +0000
Subject: /cp
2007-08-31 Paolo Carlini <pcarlini@suse.de>
PR c++/32113
* search.c (lookup_member): Check the name argument for
error_mark_node.
/testsuite
2007-08-31 Paolo Carlini <pcarlini@suse.de>
PR c++/32113
* g++.dg/template/crash70.C: New.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@127965 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 3285436..02af49f 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2007-08-31 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/32113
+ * search.c (lookup_member): Check the name argument for
+ error_mark_node.
+
2007-08-24 Jakub Jelinek <jakub@redhat.com>
PR c++/31941
diff --git a/gcc/cp/search.c b/gcc/cp/search.c
index 0cfd513..259ec66 100644
--- a/gcc/cp/search.c
+++ b/gcc/cp/search.c
@@ -1200,6 +1200,9 @@ lookup_member (tree xbasetype, tree name, int protect, bool want_type)
const char *errstr = 0;
+ if (name == error_mark_node)
+ return NULL_TREE;
+
gcc_assert (TREE_CODE (name) == IDENTIFIER_NODE);
if (TREE_CODE (xbasetype) == TREE_BINFO)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a4cbd97..97e73bd 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-08-31 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/32113
+ * g++.dg/template/crash70.C: New.
+
2007-08-24 Jakub Jelinek <jakub@redhat.com>
PR middle-end/32912
diff --git a/gcc/testsuite/g++.dg/template/crash70.C b/gcc/testsuite/g++.dg/template/crash70.C
new file mode 100644
index 0000000..742f77b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/crash70.C
@@ -0,0 +1,7 @@
+// PR c++/32113
+
+template<int> struct A;
+
+template<typename T> void foo (A<&T::template i>); // { dg-error "not a template" }
+
+template void foo<A<0> > (A<0>); // { dg-error "does not match" }
--
1.5.4
From c710fc1daf5777aed39d9cf2d3d68dec2043a4c5 Mon Sep 17 00:00:00 2001
From: rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 6 Sep 2007 18:06:51 +0000
Subject: gcc/
PR target/33256
* config/mips/mips.c (mips_classify_symbolic_expression): New function.
(mips_classify_address): Use it instead of mips_symbolic_constant_p.
(print_operand_reloc): Likewise.
gcc/testsuite/
200x-xx-xx David Daney <ddaney@avtrex.com>
Richard Sandiford <richard@codesourcery.com>
PR target/33256
* gcc.target/mips/mips.exp (setup_mips_tests): Set mips_forced_le.
(dg-mips-options): Skip -EB and -meb tests when $mips_forced_le.
* gcc.target/mips/pr33256.c: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@128198 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 84689ca..5dd1fda 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2007-09-06 Richard Sandiford <richard@codesourcery.com>
+
+ PR target/33256
+ * config/mips/mips.c (mips_classify_symbolic_expression): New function.
+ (mips_classify_address): Use it instead of mips_symbolic_constant_p.
+ (print_operand_reloc): Likewise.
+
2007-08-24 Jakub Jelinek <jakub@redhat.com>
PR middle-end/32912
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 3355ff6..521afa4 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -1252,6 +1252,20 @@ mips_split_const (rtx x, rtx *base, HOST_WIDE_INT *offset)
*base = x;
}
+/* Classify symbolic expression X, given that it appears in context
+ CONTEXT. */
+
+static enum mips_symbol_type
+mips_classify_symbolic_expression (rtx x)
+{
+ HOST_WIDE_INT offset;
+
+ mips_split_const (x, &x, &offset);
+ if (UNSPEC_ADDRESS_P (x))
+ return UNSPEC_ADDRESS_TYPE (x);
+
+ return mips_classify_symbol (x);
+}
/* Return true if SYMBOL is a SYMBOL_REF and OFFSET + SYMBOL points
to the same object as SYMBOL. */
@@ -1493,8 +1507,17 @@ mips_classify_address (struct mips_address_info *info, rtx x,
info->type = ADDRESS_LO_SUM;
info->reg = XEXP (x, 0);
info->offset = XEXP (x, 1);
+ /* We have to trust the creator of the LO_SUM to do something vaguely
+ sane. Target-independent code that creates a LO_SUM should also
+ create and verify the matching HIGH. Target-independent code that
+ adds an offset to a LO_SUM must prove that the offset will not
+ induce a carry. Failure to do either of these things would be
+ a bug, and we are not required to check for it here. The MIPS
+ backend itself should only create LO_SUMs for valid symbolic
+ constants, with the high part being either a HIGH or a copy
+ of _gp. */
+ info->symbol_type = mips_classify_symbolic_expression (info->offset);
return (mips_valid_base_register_p (info->reg, mode, strict)
- && mips_symbolic_constant_p (info->offset, &info->symbol_type)
&& mips_symbolic_address_p (info->symbol_type, mode)
&& mips_lo_relocs[info->symbol_type] != 0);
@@ -5575,7 +5598,8 @@ print_operand_reloc (FILE *file, rtx op, const char **relocs)
rtx base;
HOST_WIDE_INT offset;
- if (!mips_symbolic_constant_p (op, &symbol_type) || relocs[symbol_type] == 0)
+ symbol_type = mips_classify_symbolic_expression (op);
+ if (relocs[symbol_type] == 0)
fatal_insn ("PRINT_OPERAND, invalid operand for relocation", op);
/* If OP uses an UNSPEC address, we want to print the inner symbol. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 97e73bd..616a84a 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2007-09-06 David Daney <ddaney@avtrex.com>
+ Richard Sandiford <richard@codesourcery.com>
+
+ PR target/33256
+ * gcc.target/mips/mips.exp (setup_mips_tests): Set mips_forced_le.
+ (dg-mips-options): Skip -EB and -meb tests when $mips_forced_le.
+ * gcc.target/mips/pr33256.c: New test.
+
2007-08-31 Paolo Carlini <pcarlini@suse.de>
PR c++/32113
diff --git a/gcc/testsuite/gcc.target/mips/mips.exp b/gcc/testsuite/gcc.target/mips/mips.exp
index d88a867..a00f7b6 100644
--- a/gcc/testsuite/gcc.target/mips/mips.exp
+++ b/gcc/testsuite/gcc.target/mips/mips.exp
@@ -37,6 +37,7 @@ load_lib gcc-dg.exp
# $mips_forced_isa: true if the command line uses -march=* or -mips*
# $mips_forced_abi: true if the command line uses -mabi=* or -mgp*
# $mips_forced_float: true if the command line uses -mhard/soft-float
+# $mips_forced_le true if the command line uses -EL or -mel
proc setup_mips_tests {} {
global mips_isa
global mips_arch
@@ -47,6 +48,7 @@ proc setup_mips_tests {} {
global mips_forced_isa
global mips_forced_abi
global mips_forced_float
+ global mips_forced_le
global compiler_flags
global tool
@@ -81,6 +83,7 @@ proc setup_mips_tests {} {
set mips_forced_isa [regexp -- {(-mips|-march)} $compiler_flags]
set mips_forced_abi [regexp -- {(-mgp|-mabi)} $compiler_flags]
set mips_forced_float [regexp -- {-m(hard|soft)-float} $compiler_flags]
+ set mips_forced_le [regexp -- {-(EL|mel)[[:>:]]} $compiler_flags]
}
# Return true if command-line option FLAG forces 32-bit code.
@@ -116,6 +119,10 @@ proc is_gp32_flag {flag} {
# -mhard-float
# Select the given floating-point mode. Skip the test if the
# multilib flags force a different selection.
+#
+# -EB
+# Select big-endian code. Skip the test if the multilib flags
+# force a little-endian target.
proc dg-mips-options {args} {
upvar dg-extra-tool-flags extra_tool_flags
upvar dg-do-what do_what
@@ -129,6 +136,7 @@ proc dg-mips-options {args} {
global mips_forced_isa
global mips_forced_abi
global mips_forced_float
+ global mips_forced_le
set flags [lindex $args 1]
set matches 1
@@ -170,6 +178,10 @@ proc dg-mips-options {args} {
if {$mips_float != $float && $mips_forced_float} {
set matches 0
}
+ } elseif {[regexp -- {^-(EB|meb)$} $flag]} {
+ if {$mips_forced_le} {
+ set matches 0
+ }
}
}
if {$matches} {
diff --git a/gcc/testsuite/gcc.target/mips/pr33256.c b/gcc/testsuite/gcc.target/mips/pr33256.c
new file mode 100644
index 0000000..d5db110
--- /dev/null
+++ b/gcc/testsuite/gcc.target/mips/pr33256.c
@@ -0,0 +1,11 @@
+/* GCC used to report an ICE for this test because we generated a LO_SUM
+ for an illegitimate constant. */
+/* { dg-mips-options "-mabi=64 -mips3 -msym32 -O2 -EB -mno-abicalls" } */
+extern unsigned long a[];
+int b (int);
+
+int
+c (void)
+{
+ return b (a[0]);
+}
--
1.5.4
From 77e6c6aca2c9771b38c241c1988192ece2231d66 Mon Sep 17 00:00:00 2001
From: rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun, 9 Sep 2007 20:12:56 +0000
Subject: 2007-09-09 Richard Guenther <rguenther@suse.de>
Backport from mainline:
2007-05-07 Ian Lance Taylor <iant@google.com>
PR java/31842
* java/lang/natString.cc (_Jv_FormatInt): Avoid undefined signed
overflow.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@128306 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 5fb6562..e0162ca 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,12 @@
+2007-09-09 Richard Guenther <rguenther@suse.de>
+
+ Backport from mainline:
+ 2007-05-07 Ian Lance Taylor <iant@google.com>
+
+ PR java/31842
+ * java/lang/natString.cc (_Jv_FormatInt): Avoid undefined signed
+ overflow.
+
2007-02-13 Release Manager
* GCC 4.1.2 released.
diff --git a/libjava/java/lang/natString.cc b/libjava/java/lang/natString.cc
index 3f63081..3cca517 100644
--- a/libjava/java/lang/natString.cc
+++ b/libjava/java/lang/natString.cc
@@ -371,11 +371,11 @@ _Jv_FormatInt (jchar* bufend, jint num)
if (num < 0)
{
isNeg = true;
- num = -(num);
- if (num < 0)
+ if (num != (jint) -2147483648U)
+ num = -(num);
+ else
{
- // Must be MIN_VALUE, so handle this special case.
- // FIXME use 'unsigned jint' for num.
+ // Handle special case of MIN_VALUE.
*--ptr = '8';
num = 214748364;
}
--
1.5.4
From 52610e981c6c066fe8c498b0310cc8a85f019c7f Mon Sep 17 00:00:00 2001
From: hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 13 Sep 2007 14:13:49 +0000
Subject: 2007-09-13 H.J. Lu <hongjiu.lu@intel.com>
PR bootstrap/33418
* configure.ac (ld_vers): Support Linux linker.
* configure: Regenerated.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@128466 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5dd1fda..2123483 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-09-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR bootstrap/33418
+ * configure.ac (ld_vers): Support Linux linker.
+ * configure: Regenerated.
+
2007-09-06 Richard Sandiford <richard@codesourcery.com>
PR target/33256
diff --git a/gcc/configure b/gcc/configure
index 550a7c5..5dce3f1 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -14141,6 +14141,7 @@ else
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
+ -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \
diff --git a/gcc/configure.ac b/gcc/configure.ac
index da97fca..e6bdbf0 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -1997,6 +1997,7 @@ changequote(,)dnl
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
+ -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \
--
1.5.4
From 6193994cac6a62d487f36d56ba0a0e2e998908af Mon Sep 17 00:00:00 2001
From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun, 23 Sep 2007 17:49:08 +0000
Subject: 2007-09-23 Jakub Jelinek <jakub@redhat.com>
* configure.ac (MAKEINFO): Handle makeinfo version 4.10 and above.
* configure: Regenerated.
2007-09-15 Alan Modra <amodra@bigpond.net.au>
* configure.in: Correct makeinfo version check.
* configure: Regenerate.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@128695 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/ChangeLog b/ChangeLog
index 4ce7526..25ed362 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-09-15 Alan Modra <amodra@bigpond.net.au>
+
+ * configure.in: Correct makeinfo version check.
+ * configure: Regenerate.
+
2007-07-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* MAINTAINERS (OS Port Maintainers): Add myself as IRIX, Tru64 UNIX
diff --git a/configure b/configure
index 1afdeb4..72eb111 100755
--- a/configure
+++ b/configure
@@ -3549,7 +3549,7 @@ case " $build_configdirs " in
# For an installed makeinfo, we require it to be from texinfo 4.2 or
# higher, else we use the "missing" dummy.
if ${MAKEINFO} --version \
- | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[2-9]|[5-9])' >/dev/null 2>&1; then
+ | egrep 'texinfo[^0-9]*(4\.([2-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
:
else
MAKEINFO="$MISSING makeinfo"
diff --git a/configure.in b/configure.in
index 7e77b86..6179fb7 100644
--- a/configure.in
+++ b/configure.in
@@ -2134,7 +2134,7 @@ changequote(,)
# For an installed makeinfo, we require it to be from texinfo 4.2 or
# higher, else we use the "missing" dummy.
if ${MAKEINFO} --version \
- | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[2-9]|[5-9])' >/dev/null 2>&1; then
+ | egrep 'texinfo[^0-9]*(4\.([2-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
:
else
MAKEINFO="$MISSING makeinfo"
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2123483..78f2b48 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-09-23 Jakub Jelinek <jakub@redhat.com>
+
+ * configure.ac (MAKEINFO): Handle makeinfo version 4.10 and above.
+ * configure: Regenerated.
+
2007-09-13 H.J. Lu <hongjiu.lu@intel.com>
PR bootstrap/33418
diff --git a/gcc/configure b/gcc/configure
index 5dce3f1..dfe079c 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -7495,7 +7495,7 @@ else
echo "configure:7495: version of makeinfo is $ac_prog_version" >&5
case $ac_prog_version in
'') gcc_cv_prog_makeinfo_modern=no;;
- 4.[2-9]*)
+ 4.[2-9]*|4.[1-9][0-9]*|[5-9]*|[1-9][0-9]*)
gcc_cv_prog_makeinfo_modern=yes;;
*) gcc_cv_prog_makeinfo_modern=no;;
esac
diff --git a/gcc/configure.ac b/gcc/configure.ac
index e6bdbf0..5f78097 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -833,7 +833,7 @@ MISSING="${CONFIG_SHELL-/bin/sh} $srcdir/../missing"
# that we can use it.
gcc_AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
[GNU texinfo.* \([0-9][0-9.]*\)],
- [4.[2-9]*])
+ [4.[2-9]*|4.[1-9][0-9]*|[5-9]*|[1-9][0-9]*])
if test $gcc_cv_prog_makeinfo_modern = no; then
MAKEINFO="$MISSING makeinfo"
AC_MSG_WARN([
--
1.5.4
From 44e0dc11a151e7eaaf59c11aa1f8d446f2955837 Mon Sep 17 00:00:00 2001
From: hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun, 23 Sep 2007 21:08:43 +0000
Subject: 2007-09-23 H.J. Lu <hongjiu.lu@intel.com>
* configure.ac (ld_vers): Support GNU linker version xx.xx.*
* configure: Regenerated.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@128704 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 78f2b48..10d4146 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-09-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ * configure.ac (ld_vers): Support GNU linker version xx.xx.*
+ * configure: Regenerated.
+
2007-09-23 Jakub Jelinek <jakub@redhat.com>
* configure.ac (MAKEINFO): Handle makeinfo version 4.10 and above.
diff --git a/gcc/configure b/gcc/configure
index dfe079c..ed2eb50 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -14138,10 +14138,7 @@ else
ld_ver=`$gcc_cv_ld --version 2>/dev/null | sed 1q`
if echo "$ld_ver" | grep GNU > /dev/null; then
ld_vers=`echo $ld_ver | sed -n \
- -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
- -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
- -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
- -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
+ -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*.*\)$,\1,p' \
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 5f78097..709130f 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -1994,10 +1994,7 @@ else
if echo "$ld_ver" | grep GNU > /dev/null; then
changequote(,)dnl
ld_vers=`echo $ld_ver | sed -n \
- -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
- -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
- -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
- -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
+ -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*.*\)$,\1,p' \
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \
--
1.5.4
From 1cb6ecf09c3808956970ee4191792209d1c412ed Mon Sep 17 00:00:00 2001
From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 22 Oct 2007 02:00:06 +0000
Subject: * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Point
saved CR2 offset to low 32 bits of regs->ccr rather than the whole
64-bit register in 64-bit libgcc.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@129547 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 10d4146..e485b47 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-10-20 Jakub Jelinek <jakub@redhat.com>
+
+ * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Point
+ saved CR2 offset to low 32 bits of regs->ccr rather than the whole
+ 64-bit register in 64-bit libgcc.
+
2007-09-23 H.J. Lu <hongjiu.lu@intel.com>
* configure.ac (ld_vers): Support GNU linker version xx.xx.*
diff --git a/gcc/config/rs6000/linux-unwind.h b/gcc/config/rs6000/linux-unwind.h
index 6e822bd..3e93103 100644
--- a/gcc/config/rs6000/linux-unwind.h
+++ b/gcc/config/rs6000/linux-unwind.h
@@ -264,7 +264,10 @@ ppc_fallback_frame_state (struct _Unwind_Context *context,
}
fs->regs.reg[CR2_REGNO].how = REG_SAVED_OFFSET;
- fs->regs.reg[CR2_REGNO].loc.offset = (long) &regs->ccr - new_cfa;
+ /* CR? regs are always 32-bit and PPC is big-endian, so in 64-bit
+ libgcc loc.offset needs to point to the low 32 bits of regs->ccr. */
+ fs->regs.reg[CR2_REGNO].loc.offset = (long) &regs->ccr - new_cfa
+ + sizeof (long) - 4;
fs->regs.reg[LINK_REGISTER_REGNUM].how = REG_SAVED_OFFSET;
fs->regs.reg[LINK_REGISTER_REGNUM].loc.offset = (long) &regs->link - new_cfa;
--
1.5.4
From 74ee6f8e7b91221158a64f10874802bd5145e7f0 Mon Sep 17 00:00:00 2001
From: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 23 Oct 2007 19:25:45 +0000
Subject: * doc/rtl.texi (Flags): Fix MEM_SCALAR_P entry.
Document MEM_POINTER. Replace mentions of "integrated"
field with "return_val". Delete outdated stuff.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@129586 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e485b47..c350186 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-10-23 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * doc/rtl.texi (Flags): Fix MEM_SCALAR_P entry.
+ Document MEM_POINTER. Replace mentions of "integrated"
+ field with "return_val". Delete outdated stuff.
+
2007-10-20 Jakub Jelinek <jakub@redhat.com>
* config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Point
diff --git a/gcc/doc/rtl.texi b/gcc/doc/rtl.texi
index ea4ded7..5fc134d 100644
--- a/gcc/doc/rtl.texi
+++ b/gcc/doc/rtl.texi
@@ -616,8 +616,8 @@ are already in a non-addressable component of an aggregate.
Stored in the @code{jump} field and printed as @samp{/j}.
@findex MEM_SCALAR_P
-@cindex @code{mem} and @samp{/f}
-@cindex @code{frame_related}, in @code{mem}
+@cindex @code{mem} and @samp{/i}
+@cindex @code{return_val}, in @code{mem}
@item MEM_SCALAR_P (@var{x})
In @code{mem} expressions, nonzero for reference to a scalar known not
to be a member of a structure, union, or array. Zero for such
@@ -625,7 +625,7 @@ references and for indirections through pointers, even pointers pointing
to scalar types. If both this flag and @code{MEM_IN_STRUCT_P} are clear,
then we don't know whether this @code{mem} is in a structure or not.
Both flags should never be simultaneously set.
-Stored in the @code{frame_related} field and printed as @samp{/f}.
+Stored in the @code{return_val} field and printed as @samp{/i}.
@findex MEM_VOLATILE_P
@cindex @code{mem} and @samp{/v}
@@ -644,13 +644,20 @@ Stored in the @code{volatil} field and printed as @samp{/v}.
In @code{mem}, nonzero for memory references that will not trap.
Stored in the @code{call} field and printed as @samp{/c}.
+@findex MEM_POINTER
+@cindex @code{mem} and @samp{/f}
+@cindex @code{frame_related}, in @code{mem}
+@item MEM_POINTER (@var{x})
+Nonzero in a @code{mem} if the memory reference holds a pointer.
+Stored in the @code{frame_related} field and printed as @samp{/f}.
+
@findex REG_FUNCTION_VALUE_P
@cindex @code{reg} and @samp{/i}
-@cindex @code{integrated}, in @code{reg}
+@cindex @code{return_val}, in @code{reg}
@item REG_FUNCTION_VALUE_P (@var{x})
Nonzero in a @code{reg} if it is the place in which this function's
value is going to be returned. (This happens only in a hard
-register.) Stored in the @code{integrated} field and printed as
+register.) Stored in the @code{return_val} field and printed as
@samp{/i}.
@findex REG_POINTER
@@ -707,19 +714,6 @@ computation performed by this instruction, i.e., one that
This flag is required for exception handling support on targets with RTL
prologues.
-@cindex @code{insn} and @samp{/i}
-@cindex @code{call_insn} and @samp{/i}
-@cindex @code{jump_insn} and @samp{/i}
-@cindex @code{barrier} and @samp{/i}
-@cindex @code{code_label} and @samp{/i}
-@cindex @code{insn_list} and @samp{/i}
-@cindex @code{const} and @samp{/i}
-@cindex @code{note} and @samp{/i}
-@cindex @code{integrated}, in @code{insn}, @code{call_insn}, @code{jump_insn}, @code{barrier}, @code{code_label}, @code{insn_list}, @code{const}, and @code{note}
-@code{code_label}, @code{insn_list}, @code{const}, or @code{note} if it
-resulted from an in-line function call.
-Stored in the @code{integrated} field and printed as @samp{/i}.
-
@findex MEM_READONLY_P
@cindex @code{mem} and @samp{/u}
@cindex @code{unchanging}, in @code{mem}
@@ -818,10 +812,10 @@ once. Stored in the @code{used} field.
@findex SYMBOL_REF_WEAK
@cindex @code{symbol_ref} and @samp{/i}
-@cindex @code{integrated}, in @code{symbol_ref}
+@cindex @code{return_val}, in @code{symbol_ref}
@item SYMBOL_REF_WEAK (@var{x})
In a @code{symbol_ref}, indicates that @var{x} has been declared weak.
-Stored in the @code{integrated} field and printed as @samp{/i}.
+Stored in the @code{return_val} field and printed as @samp{/i}.
@findex SYMBOL_REF_FLAG
@cindex @code{symbol_ref} and @samp{/v}
@@ -855,11 +849,11 @@ frame pointer.
In @code{reg} expressions, 1 means that the register holds a pointer.
+In @code{mem} expressions, 1 means that the memory reference holds a pointer.
+
In @code{symbol_ref} expressions, 1 means that the reference addresses
this function's string constant pool.
-In @code{mem} expressions, 1 means that the reference is to a scalar.
-
In an RTL dump, this flag is represented as @samp{/f}.
@findex in_struct
@@ -898,18 +892,18 @@ must be scheduled as part of a group together with the previous insn.
In an RTL dump, this flag is represented as @samp{/s}.
-@findex integrated
+@findex return_val
@cindex @samp{/i} in RTL dump
-@item integrated
-In an @code{insn}, @code{insn_list}, or @code{const}, 1 means the RTL was
-produced by procedure integration.
-
+@item return_val
In @code{reg} expressions, 1 means the register contains
the value to be returned by the current function. On
machines that pass parameters in registers, the same register number
may be used for parameters as well, but this flag is not set on such
uses.
+In @code{mem} expressions, 1 means the memory reference is to a scalar
+known not to be a member of a structure, union, or array.
+
In @code{symbol_ref} expressions, 1 means the referenced symbol is weak.
In an RTL dump, this flag is represented as @samp{/i}.
--
1.5.4
From be58ed052f01435d4c17a072c5b91bb4a148a645 Mon Sep 17 00:00:00 2001
From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 26 Oct 2007 12:06:31 +0000
Subject: PR c++/33744
* parser.c (cp_parser_parenthesized_expression_list): Set
greater_than_is_operator_p to true in between the parens.
* g++.dg/template/arg6.C: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@129650 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 02af49f..85e439b 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2007-10-26 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/33744
+ * parser.c (cp_parser_parenthesized_expression_list): Set
+ greater_than_is_operator_p to true in between the parens.
+
2007-08-31 Paolo Carlini <pcarlini@suse.de>
PR c++/32113
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index fdc6034..63566c0 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -4700,6 +4700,7 @@ cp_parser_parenthesized_expression_list (cp_parser* parser,
tree expression_list = NULL_TREE;
bool fold_expr_p = is_attribute_list;
tree identifier = NULL_TREE;
+ bool saved_greater_than_is_operator_p;
/* Assume all the expressions will be constant. */
if (non_constant_p)
@@ -4708,6 +4709,12 @@ cp_parser_parenthesized_expression_list (cp_parser* parser,
if (!cp_parser_require (parser, CPP_OPEN_PAREN, "`('"))
return error_mark_node;
+ /* Within a parenthesized expression, a `>' token is always
+ the greater-than operator. */
+ saved_greater_than_is_operator_p
+ = parser->greater_than_is_operator_p;
+ parser->greater_than_is_operator_p = true;
+
/* Consume expressions until there are no more. */
if (cp_lexer_next_token_is_not (parser->lexer, CPP_CLOSE_PAREN))
while (true)
@@ -4781,9 +4788,16 @@ cp_parser_parenthesized_expression_list (cp_parser* parser,
if (ending < 0)
goto get_comma;
if (!ending)
- return error_mark_node;
+ {
+ parser->greater_than_is_operator_p
+ = saved_greater_than_is_operator_p;
+ return error_mark_node;
+ }
}
+ parser->greater_than_is_operator_p
+ = saved_greater_than_is_operator_p;
+
/* We built up the list in reverse order so we must reverse it now. */
expression_list = nreverse (expression_list);
if (identifier)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 616a84a..3cfa69e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-10-26 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/33744
+ * g++.dg/template/arg6.C: New test.
+
2007-09-06 David Daney <ddaney@avtrex.com>
Richard Sandiford <richard@codesourcery.com>
diff --git a/gcc/testsuite/g++.dg/template/arg6.C b/gcc/testsuite/g++.dg/template/arg6.C
new file mode 100644
index 0000000..ef05aba
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/arg6.C
@@ -0,0 +1,15 @@
+// PR c++/33744
+// { dg-do run }
+
+template <bool B> struct A { bool b; A() : b(B) {}; };
+A<bool(1)> a;
+A<bool(1<2)> b;
+A<(bool)(2>1)> c;
+A<bool((2>1))> d;
+A<bool(2>1)> e;
+
+int
+main ()
+{
+ return (a.b && b.b && c.b && d.b && e.b) ? 0 : 1;
+}
--
1.5.4
From 153704cd550deba8ad2f393591c81a22e6969f6e Mon Sep 17 00:00:00 2001
From: janis <janis@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 29 Oct 2007 16:59:41 +0000
Subject: * doc/invoke.texi (Option Summary, optimizations): Remove
-fbounds-check. Show that the value for options -falign-jumps,
-falign-labels, -falign-loops, -falign-functions,
-fsched-stalled-insns, and -fsched-stalled-insns-dep is optional.
Break up a long line. Add -ftree-vrp and -funit-at-a-time.
(Option Summary, code gen options) Add -fno-stack-limit.
* doc/invoke.texi (Option Summary, optimizations):
(Optimization Options): Remove -fbounds-check, which is also
documented under Code Generation Options. In the descriptions for
-fsched-stalled-insns and -fsched-stalled-insns-dep, show the
options with and without values. Change -fno-cprop-registers
to -fcprop-registers to match other options, and say when it is
enabled rather than disabled. Remove extra index entry for
-fno-cx-limited-range. Add opindex for several optimization
options, and fix typos in the opindex commands for several others.
(Code Gen Options): Add index entry for -ftls-model.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@129725 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c350186..d1efa77 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,22 @@
+2007-10-29 Janis Johnson <janis187@us.ibm.com>
+
+ * doc/invoke.texi (Option Summary, optimizations): Remove
+ -fbounds-check. Show that the value for options -falign-jumps,
+ -falign-labels, -falign-loops, -falign-functions,
+ -fsched-stalled-insns, and -fsched-stalled-insns-dep is optional.
+ Break up a long line. Add -ftree-vrp and -funit-at-a-time.
+ (Option Summary, code gen options) Add -fno-stack-limit.
+ * doc/invoke.texi (Option Summary, optimizations):
+ (Optimization Options): Remove -fbounds-check, which is also
+ documented under Code Generation Options. In the descriptions for
+ -fsched-stalled-insns and -fsched-stalled-insns-dep, show the
+ options with and without values. Change -fno-cprop-registers
+ to -fcprop-registers to match other options, and say when it is
+ enabled rather than disabled. Remove extra index entry for
+ -fno-cx-limited-range. Add opindex for several optimization
+ options, and fix typos in the opindex commands for several others.
+ (Code Gen Options): Add index entry for -ftls-model.
+
2007-10-23 Eric Botcazou <ebotcazou@libertysurf.fr>
* doc/rtl.texi (Flags): Fix MEM_SCALAR_P entry.
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index bd8ba24..f8f3898 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -295,10 +295,11 @@ Objective-C and Objective-C++ Dialects}.
@item Optimization Options
@xref{Optimize Options,,Options that Control Optimization}.
-@gccoptlist{-falign-functions=@var{n} -falign-jumps=@var{n} @gol
--falign-labels=@var{n} -falign-loops=@var{n} @gol
--fbounds-check -fmudflap -fmudflapth -fmudflapir @gol
--fbranch-probabilities -fprofile-values -fvpt -fbranch-target-load-optimize @gol
+@gccoptlist{-falign-functions[=@var{n}] -falign-jumps[=@var{n}] @gol
+-falign-labels[=@var{n}] -falign-loops[=@var{n}] @gol
+-fmudflap -fmudflapth -fmudflapir @gol
+-fbranch-probabilities -fprofile-values -fvpt @gol
+-fbranch-target-load-optimize @gol
-fbranch-target-load-optimize2 -fbtr-bb-exclusive @gol
-fcaller-saves -fcprop-registers -fcse-follow-jumps @gol
-fcse-skip-blocks -fcx-limited-range -fdata-sections @gol
@@ -325,7 +326,7 @@ Objective-C and Objective-C++ Dialects}.
-frounding-math -fschedule-insns -fschedule-insns2 @gol
-fno-sched-interblock -fno-sched-spec -fsched-spec-load @gol
-fsched-spec-load-dangerous @gol
--fsched-stalled-insns=@var{n} -fsched-stalled-insns-dep=@var{n} @gol
+-fsched-stalled-insns[=@var{n}] -fsched-stalled-insns-dep[=@var{n}] @gol
-fsched2-use-superblocks @gol
-fsched2-use-traces -freschedule-modulo-scheduled-loops @gol
-fsignaling-nans -fsingle-precision-constant @gol
@@ -339,7 +340,8 @@ Objective-C and Objective-C++ Dialects}.
-ftree-dominator-opts -ftree-dse -ftree-copyrename -ftree-sink @gol
-ftree-ch -ftree-sra -ftree-ter -ftree-lrs -ftree-fre -ftree-vectorize @gol
-ftree-vect-loop-version -ftree-salias -fweb @gol
--ftree-copy-prop -ftree-store-ccp -ftree-store-copy-prop -fwhole-program @gol
+-ftree-copy-prop -ftree-store-ccp -ftree-store-copy-prop -ftree-vrp @gol
+-funit-at-a-time -fwhole-program @gol
--param @var{name}=@var{value}
-O -O0 -O1 -O2 -O3 -Os}
@@ -755,7 +757,7 @@ See S/390 and zSeries Options.
-fshort-double -fshort-wchar @gol
-fverbose-asm -fpack-struct[=@var{n}] -fstack-check @gol
-fstack-limit-register=@var{reg} -fstack-limit-symbol=@var{sym} @gol
--fargument-alias -fargument-noalias @gol
+-fno-stack-limit -fargument-alias -fargument-noalias @gol
-fargument-noalias-global -fleading-underscore @gol
-ftls-model=@var{model} @gol
-ftrapv -fwrapv -fbounds-check @gol
@@ -4610,6 +4612,7 @@ check if the variable was referenced, regardless of whether or not
optimization is turned on, use the @option{-fno-keep-static-consts} option.
@item -fmerge-constants
+@opindex fmerge-constants
Attempt to merge identical constants (string constants and floating point
constants) across compilation units.
@@ -4620,6 +4623,7 @@ behavior.
Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
@item -fmerge-all-constants
+@opindex fmerge-all-constants
Attempt to merge identical constants and identical variables.
This option implies @option{-fmerge-constants}. In addition to
@@ -4670,13 +4674,6 @@ assumptions based on that.
The default is @option{-fzero-initialized-in-bss}.
-@item -fbounds-check
-@opindex fbounds-check
-For front-ends that support it, generate additional code to check that
-indices used to access arrays are within the declared range. This is
-currently only supported by the Java and Fortran front-ends, where
-this option defaults to true and false respectively.
-
@item -fmudflap -fmudflapth -fmudflapir
@opindex fmudflap
@opindex fmudflapth
@@ -4821,14 +4818,14 @@ Using @option{-Wunsafe-loop-optimizations}, the compiler will warn you
if it finds this kind of loop.
@item -fcrossjumping
-@opindex crossjumping
+@opindex fcrossjumping
Perform cross-jumping transformation. This transformation unifies equivalent code and save code size. The
resulting code may or may not perform better than without cross-jumping.
Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
@item -fif-conversion
-@opindex if-conversion
+@opindex fif-conversion
Attempt to transform conditional jumps into branch-less equivalents. This
include use of conditional moves, min, max, set flags and abs instructions, and
some tricks doable by standard arithmetics. The use of conditional execution
@@ -4837,7 +4834,7 @@ on chips where it is available is controlled by @code{if-conversion2}.
Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
@item -fif-conversion2
-@opindex if-conversion2
+@opindex fif-conversion2
Use conditional execution (where available) to transform conditional jumps into
branch-less equivalents.
@@ -4928,17 +4925,27 @@ Allow speculative motion of more load instructions. This only makes
sense when scheduling before register allocation, i.e.@: with
@option{-fschedule-insns} or at @option{-O2} or higher.
-@item -fsched-stalled-insns=@var{n}
+@item -fsched-stalled-insns
+@itemx -fsched-stalled-insns=@var{n}
@opindex fsched-stalled-insns
Define how many insns (if any) can be moved prematurely from the queue
of stalled insns into the ready list, during the second scheduling pass.
+@option{-fno-fsched-stalled-insns} and @option{-fsched-stalled-insns=0}
+are equivalent and mean that no insns will be moved prematurely.
+If @var{n} is unspecified then there is no limit on how many queued
+insns can be moved prematurely.
-@item -fsched-stalled-insns-dep=@var{n}
+@item -fsched-stalled-insns-dep
+@itemx -fsched-stalled-insns-dep=@var{n}
@opindex fsched-stalled-insns-dep
Define how many insn groups (cycles) will be examined for a dependency
on a stalled insn that is candidate for premature removal from the queue
-of stalled insns. Has an effect only during the second scheduling pass,
+of stalled insns. This has an effect only during the second scheduling pass,
and only if @option{-fsched-stalled-insns} is used and its value is not zero.
++@option{-fno-sched-stalled-insns-dep} is equivalent to
++@option{-fsched-stalled-insns-dep=0}.
++@option{-fsched-stalled-insns-dep} without a value is equivalent to
++@option{-fsched-stalled-insns-dep=1}.
@item -fsched2-use-superblocks
@opindex fsched2-use-superblocks
@@ -4965,7 +4972,7 @@ sense when scheduling after register allocation, i.e.@: with
@option{-fschedule-insns2} or at @option{-O2} or higher.
@item -freschedule-modulo-scheduled-loops
-@opindex fscheduling-in-modulo-scheduled-loops
+@opindex freschedule-modulo-scheduled-loops
The modulo scheduling comes before the traditional scheduling, if a loop was modulo scheduled
we may want to prevent the later scheduling passes from changing its schedule, we use this
option to control that.
@@ -4983,10 +4990,12 @@ those which have no call-preserved registers to use instead.
Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
@item -ftree-pre
+@opindex ftree-pre
Perform Partial Redundancy Elimination (PRE) on trees. This flag is
enabled by default at @option{-O2} and @option{-O3}.
@item -ftree-fre
+@opindex ftree-fre
Perform Full Redundancy Elimination (FRE) on trees. The difference
between FRE and PRE is that FRE only considers expressions
that are computed on all paths leading to the redundant computation.
@@ -4994,40 +5003,48 @@ This analysis faster than PRE, though it exposes fewer redundancies.
This flag is enabled by default at @option{-O} and higher.
@item -ftree-copy-prop
+@opindex ftree-copy-prop
Perform copy propagation on trees. This pass eliminates unnecessary
copy operations. This flag is enabled by default at @option{-O} and
higher.
@item -ftree-store-copy-prop
+@opindex ftree-store-copy-prop
Perform copy propagation of memory loads and stores. This pass
eliminates unnecessary copy operations in memory references
(structures, global variables, arrays, etc). This flag is enabled by
default at @option{-O2} and higher.
@item -ftree-salias
+@opindex ftree-salias
Perform structural alias analysis on trees. This flag
is enabled by default at @option{-O} and higher.
@item -ftree-sink
+@opindex ftree-sink
Perform forward store motion on trees. This flag is
enabled by default at @option{-O} and higher.
@item -ftree-ccp
+@opindex ftree-ccp
Perform sparse conditional constant propagation (CCP) on trees. This
pass only operates on local scalar variables and is enabled by default
at @option{-O} and higher.
@item -ftree-store-ccp
+@opindex ftree-store-ccp
Perform sparse conditional constant propagation (CCP) on trees. This
pass operates on both local scalar variables and memory stores and
loads (global variables, structures, arrays, etc). This flag is
enabled by default at @option{-O2} and higher.
@item -ftree-dce
+@opindex ftree-dce
Perform dead code elimination (DCE) on trees. This flag is enabled by
default at @option{-O} and higher.
@item -ftree-dominator-opts
+@opindex ftree-dominator-opts
Perform a variety of simple scalar cleanups (constant/copy
propagation, redundancy elimination, range propagation and expression
simplification) based on a dominator tree traversal. This also
@@ -5035,20 +5052,24 @@ performs jump threading (to reduce jumps to jumps). This flag is
enabled by default at @option{-O} and higher.
@item -ftree-ch
+@opindex ftree-ch
Perform loop header copying on trees. This is beneficial since it increases
effectiveness of code motion optimizations. It also saves one jump. This flag
is enabled by default at @option{-O} and higher. It is not enabled
for @option{-Os}, since it usually increases code size.
@item -ftree-loop-optimize
+@opindex ftree-loop-optimize
Perform loop optimizations on trees. This flag is enabled by default
at @option{-O} and higher.
@item -ftree-loop-linear
+@opindex ftree-loop-linear
Perform linear loop transformations on tree. This flag can improve cache
performance and allow further loop optimizations to take place.
@item -ftree-loop-im
+@opindex ftree-loop-im
Perform loop invariant motion on trees. This pass moves only invariants that
would be hard to handle at RTL level (function calls, operations that expand to
nontrivial sequences of insns). With @option{-funswitch-loops} it also moves
@@ -5057,27 +5078,32 @@ just trivial invariantness analysis in loop unswitching. The pass also includes
store motion.
@item -ftree-loop-ivcanon
+@opindex ftree-loop-ivcanon
Create a canonical counter for number of iterations in the loop for that
determining number of iterations requires complicated analysis. Later
optimizations then may determine the number easily. Useful especially
in connection with unrolling.
@item -fivopts
+@opindex fivopts
Perform induction variable optimizations (strength reduction, induction
variable merging and induction variable elimination) on trees.
@item -ftree-sra
+@opindex ftree-sra
Perform scalar replacement of aggregates. This pass replaces structure
references with scalars to prevent committing structures to memory too
early. This flag is enabled by default at @option{-O} and higher.
@item -ftree-copyrename
+@opindex ftree-copyrename
Perform copy renaming on trees. This pass attempts to rename compiler
temporaries to other variables at copy locations, usually resulting in
variable names which more closely resemble the original variables. This flag
is enabled by default at @option{-O} and higher.
@item -ftree-ter
+@opindex ftree-ter
Perform temporary expression replacement during the SSA->normal phase. Single
use/single def temporaries are replaced at their use location with their
defining expression. This results in non-GIMPLE code, but gives the expanders
@@ -5085,11 +5111,13 @@ much more complex trees to work on resulting in better RTL generation. This is
enabled by default at @option{-O} and higher.
@item -ftree-lrs
+@opindex ftree-lrs
Perform live range splitting during the SSA->normal phase. Distinct live
ranges of a variable are split into unique variables, allowing for better
optimization later. This is enabled by default at @option{-O} and higher.
@item -ftree-vectorize
+@opindex ftree-vectorize
Perform loop vectorization on trees.
@item -ftree-vect-loop-version
@@ -5102,6 +5130,7 @@ to control which version is executed. This option is enabled by default
except at level @option{-Os} where it is disabled.
@item -ftree-vrp
+@opindex ftree-vrp
Perform Value Range Propagation on trees. This is similar to the
constant propagation pass, but instead of values, ranges of values are
propagated. This allows the optimizers to remove unnecessary range
@@ -5131,7 +5160,7 @@ the loop is entered. This usually makes programs run more slowly.
@option{-funroll-loops},
@item -fsplit-ivs-in-unroller
-@opindex -fsplit-ivs-in-unroller
+@opindex fsplit-ivs-in-unroller
Enables expressing of values of induction variables in later iterations
of the unrolled loop using the value in the first iteration. This breaks
long dependency chains, thus improving efficiency of the scheduling passes.
@@ -5144,7 +5173,7 @@ on some of the architectures due to restrictions in the CSE pass.
This optimization is enabled by default.
@item -fvariable-expansion-in-unroller
-@opindex -fvariable-expansion-in-unroller
+@opindex fvariable-expansion-in-unroller
With this option, the compiler will create multiple copies of some
local variables when unrolling a loop which can result in superior code.
@@ -5391,13 +5420,13 @@ programs since the functions and variables become local for the whole combined
compilation unit, not for the single source file itself.
-@item -fno-cprop-registers
-@opindex fno-cprop-registers
+@item -fcprop-registers
+@opindex fcprop-registers
After register allocation and post-register allocation instruction splitting,
we perform a copy-propagation pass to try to reduce scheduling dependencies
and occasionally eliminate the copy.
-Disabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
+Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
@item -fprofile-generate
@opindex fprofile-generate
@@ -5554,9 +5583,7 @@ Treat floating point constant as single precision constant instead of
implicitly converting it to double precision constant.
@item -fcx-limited-range
-@itemx -fno-cx-limited-range
@opindex fcx-limited-range
-@opindex fno-cx-limited-range
When enabled, this option states that a range reduction step is not
needed when performing complex division. The default is
@option{-fno-cx-limited-range}, but is enabled by @option{-ffast-math}.
@@ -5716,6 +5743,7 @@ When performing branch target register load optimization, don't reuse
branch target registers in within any basic block.
@item -fstack-protector
+@opindex fstack-protector
Emit extra code to check for buffer overflows, such as stack smashing
attacks. This is done by adding a guard variable to functions with
vulnerable objects. This includes functions that call alloca, and
@@ -5724,6 +5752,7 @@ when a function is entered and then checked when the function exits.
If a guard check fails, an error message is printed and the program exits.
@item -fstack-protector-all
+@opindex fstack-protector-all
Like @option{-fstack-protector} except that all functions are protected.
@item --param @var{name}=@var{value}
@@ -13112,6 +13141,7 @@ switch. Use it to conform to a non-default application binary interface.
Not all targets provide complete support for this switch.
@item -ftls-model=@var{model}
+@opindex ftls-model=@var{model}
Alter the thread-local storage model to be used (@pxref{Thread-Local}).
The @var{model} argument should be one of @code{global-dynamic},
@code{local-dynamic}, @code{initial-exec} or @code{local-exec}.
--
1.5.4
From ee82bc1e30b6dfb91a4a6f2f3f9d1d62893b24dc Mon Sep 17 00:00:00 2001
From: ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 30 Oct 2007 13:28:05 +0000
Subject: * ifcvt.c (noce_can_store_speculate_p): New static function.
(noce_process_if_block): Call it.
(find_if_header): Only call find_if_case_1 and find_if_case_2 if
life_data_ok is set.
(if_convert): Always compute postdominators.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@129771 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d1efa77..ac505b6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2007-10-30 Ian Lance Taylor <iant@google.com>
+
+ * ifcvt.c (noce_can_store_speculate_p): New static function.
+ (noce_process_if_block): Call it.
+ (find_if_header): Only call find_if_case_1 and find_if_case_2 if
+ life_data_ok is set.
+ (if_convert): Always compute postdominators.
+
2007-10-29 Janis Johnson <janis187@us.ibm.com>
* doc/invoke.texi (Option Summary, optimizations): Remove
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
index d6c3dd6..2d5bc66 100644
--- a/gcc/ifcvt.c
+++ b/gcc/ifcvt.c
@@ -2116,6 +2116,46 @@ noce_mem_write_may_trap_or_fault_p (rtx mem)
return false;
}
+/* Return whether we can use store speculation for MEM. TOP_BB is the
+ basic block above the conditional block where we are considering
+ doing the speculative store. We look for whether MEM is set
+ unconditionally later in the function. */
+
+static bool
+noce_can_store_speculate_p (basic_block top_bb, rtx mem)
+{
+ basic_block dominator;
+
+ for (dominator = get_immediate_dominator (CDI_POST_DOMINATORS, top_bb);
+ dominator != NULL && dominator != EXIT_BLOCK_PTR;
+ dominator = get_immediate_dominator (CDI_POST_DOMINATORS, dominator))
+ {
+ rtx insn;
+
+ FOR_BB_INSNS (dominator, insn)
+ {
+ /* If we see something that might be a memory barrier, we
+ have to stop looking. Even if the MEM is set later in
+ the function, we still don't want to set it
+ unconditionally before the barrier. */
+ if (INSN_P (insn)
+ && (volatile_insn_p (PATTERN (insn))
+ || (CALL_P (insn)
+ && (!CONST_OR_PURE_CALL_P (insn)
+ || pure_call_p (insn)))))
+ return false;
+
+ if (memory_modified_in_insn_p (mem, insn))
+ return true;
+ if (modified_in_p (XEXP (mem, 0), insn))
+ return false;
+
+ }
+ }
+
+ return false;
+}
+
/* Given a simple IF-THEN or IF-THEN-ELSE block, attempt to convert it
without using conditional execution. Return TRUE if we were
successful at converting the block. */
@@ -2299,17 +2339,31 @@ noce_process_if_block (struct ce_if_block * ce_info)
goto success;
}
- /* Disallow the "if (...) x = a;" form (with an implicit "else x = x;")
- for optimizations if writing to x may trap or fault, i.e. it's a memory
- other than a static var or a stack slot, is misaligned on strict
- aligned machines or is read-only.
- If x is a read-only memory, then the program is valid only if we
- avoid the store into it. If there are stores on both the THEN and
- ELSE arms, then we can go ahead with the conversion; either the
- program is broken, or the condition is always false such that the
- other memory is selected. */
- if (!set_b && MEM_P (orig_x) && noce_mem_write_may_trap_or_fault_p (orig_x))
- return FALSE;
+ if (!set_b && MEM_P (orig_x))
+ {
+ /* Disallow the "if (...) x = a;" form (implicit "else x = x;")
+ for optimizations if writing to x may trap or fault,
+ i.e. it's a memory other than a static var or a stack slot,
+ is misaligned on strict aligned machines or is read-only. If
+ x is a read-only memory, then the program is valid only if we
+ avoid the store into it. If there are stores on both the
+ THEN and ELSE arms, then we can go ahead with the conversion;
+ either the program is broken, or the condition is always
+ false such that the other memory is selected. */
+ if (noce_mem_write_may_trap_or_fault_p (orig_x))
+ return FALSE;
+
+ /* Avoid store speculation: given "if (...) x = a" where x is a
+ MEM, we only want to do the store if x is always set
+ somewhere in the function. This avoids cases like
+ if (pthread_mutex_trylock(mutex))
+ ++global_variable;
+ where we only want global_variable to be changed if the mutex
+ is held. FIXME: This should ideally be expressed directly in
+ RTL somehow. */
+ if (!noce_can_store_speculate_p (test_bb, orig_x))
+ return FALSE;
+ }
if (noce_try_move (&if_info))
goto success;
@@ -2584,7 +2638,8 @@ find_if_header (basic_block test_bb, int pass)
&& find_cond_trap (test_bb, then_edge, else_edge))
goto success;
- if (dom_computed[CDI_POST_DOMINATORS] >= DOM_NO_FAST_QUERY
+ if (life_data_ok
+ && dom_computed[CDI_POST_DOMINATORS] >= DOM_NO_FAST_QUERY
&& (! HAVE_conditional_execution || reload_completed))
{
if (find_if_case_1 (test_bb, then_edge, else_edge))
@@ -3592,9 +3647,8 @@ if_convert (int x_life_data_ok)
free_dominance_info (CDI_DOMINATORS);
}
- /* Compute postdominators if we think we'll use them. */
- if (HAVE_conditional_execution || life_data_ok)
- calculate_dominance_info (CDI_POST_DOMINATORS);
+ /* Compute postdominators. */
+ calculate_dominance_info (CDI_POST_DOMINATORS);
if (life_data_ok)
clear_bb_flags ();
--
1.5.4
From 28553973198d0d06a010eb4ee9921b2d9c7c8578 Mon Sep 17 00:00:00 2001
From: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 2 Nov 2007 11:57:51 +0000
Subject: PR rtl-optimization/28062
* gcc.c-torture/compile/20071102-1.c: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@129848 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 3cfa69e..0b584fc 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-11-02 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR rtl-optimization/28062
+ * gcc.c-torture/compile/20071102-1.c: New test.
+
2007-10-26 Jakub Jelinek <jakub@redhat.com>
PR c++/33744
diff --git a/gcc/testsuite/gcc.c-torture/compile/20071102-1.c b/gcc/testsuite/gcc.c-torture/compile/20071102-1.c
new file mode 100644
index 0000000..03b0156
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20071102-1.c
@@ -0,0 +1,32 @@
+/* PR rtl-optimization/28062 */
+/* Original testcase by Martin Michlmayr <tbm@cyrius.com> */
+/* C testcase by Andrew Pinski <pinskia@gcc.gnu.org> */
+
+struct _NSPoint
+{
+ float x;
+ float y;
+};
+
+typedef struct _NSPoint NSPoint;
+
+static inline NSPoint
+NSMakePoint (float x, float y)
+{
+ NSPoint point;
+ point.x = x;
+ point.y = y;
+ return point;
+}
+
+static inline NSPoint
+RelativePoint (NSPoint point, NSPoint refPoint)
+{
+ return NSMakePoint (refPoint.x + point.x, refPoint.y + point.y);
+}
+
+NSPoint g(NSPoint refPoint)
+{
+ float pointA, pointB;
+ return RelativePoint (NSMakePoint (0, pointA), refPoint);
+}
--
1.5.4
From 7b6e65a6e2c5d7ab70988bfce9a363a16f7dd224 Mon Sep 17 00:00:00 2001
From: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 2 Nov 2007 12:24:44 +0000
Subject: Backport from mainline:
2006-12-11 Zdenek Dvorak <dvorakz@suse.cz>
PR rtl-optimization/30113
* loop-iv.c (implies_p): Require the mode of the operands to be
scalar.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@129849 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ac505b6..be7be83 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2007-11-02 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ Backport from mainline:
+ 2006-12-11 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR rtl-optimization/30113
+ * loop-iv.c (implies_p): Require the mode of the operands to be
+ scalar.
+
2007-10-30 Ian Lance Taylor <iant@google.com>
* ifcvt.c (noce_can_store_speculate_p): New static function.
diff --git a/gcc/loop-iv.c b/gcc/loop-iv.c
index 8e915a0..675abeb 100644
--- a/gcc/loop-iv.c
+++ b/gcc/loop-iv.c
@@ -1497,7 +1497,7 @@ implies_p (rtx a, rtx b)
mode = VOIDmode;
}
- if (mode != VOIDmode
+ if (SCALAR_INT_MODE_P (mode)
&& rtx_equal_p (op1, opb1)
&& simplify_gen_binary (MINUS, mode, opb0, op0) == const1_rtx)
return true;
--
1.5.4
From cccb64c8297627e1818cdb76057109240d5000eb Mon Sep 17 00:00:00 2001
From: gerald <gerald@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun, 4 Nov 2007 20:09:45 +0000
Subject: * config/freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): Fix
broken else-if chain.
* config.gcc: Proactively add FreeBSD 10 and FreeBSD 11.
* config/freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): Ditto.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@129887 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index be7be83..5a52527 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2007-11-04 Hirohisa Yamaguchi <umq@ueo.co.jp>
+
+ * config/freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): Fix
+ broken else-if chain.
+
+2007-11-04 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * config.gcc: Proactively add FreeBSD 10 and FreeBSD 11.
+ * config/freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): Ditto.
+
2007-11-02 Eric Botcazou <ebotcazou@libertysurf.fr>
Backport from mainline:
diff --git a/gcc/config.gcc b/gcc/config.gcc
index b4c8259..3fdfdf5 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -412,6 +412,10 @@ case ${target} in
tm_defines="${tm_defines} FBSD_MAJOR=8" ;;
*-*-freebsd9 | *-*-freebsd[9].*)
tm_defines="${tm_defines} FBSD_MAJOR=9" ;;
+ *-*-freebsd10 | *-*-freebsd10.*)
+ tm_defines="${tm_defines} FBSD_MAJOR=10" ;;
+ *-*-freebsd11 | *-*-freebsd11.*)
+ tm_defines="${tm_defines} FBSD_MAJOR=11" ;;
*)
echo 'Please update *-*-freebsd* in gcc/config.gcc'
exit 1
diff --git a/gcc/config/freebsd-spec.h b/gcc/config/freebsd-spec.h
index f0e0bcd..e57c2fb 100644
--- a/gcc/config/freebsd-spec.h
+++ b/gcc/config/freebsd-spec.h
@@ -51,11 +51,15 @@ Boston, MA 02110-1301, USA. */
#define FBSD_TARGET_OS_CPP_BUILTINS() \
do \
{ \
- if (FBSD_MAJOR == 9) \
- builtin_define ("__FreeBSD__=9"); \
+ if (FBSD_MAJOR == 11) \
+ builtin_define ("__FreeBSD__=11"); \
+ else if (FBSD_MAJOR == 10) \
+ builtin_define ("__FreeBSD__=10"); \
+ else if (FBSD_MAJOR == 9) \
+ builtin_define ("__FreeBSD__=9"); \
else if (FBSD_MAJOR == 8) \
builtin_define ("__FreeBSD__=8"); \
- if (FBSD_MAJOR == 7) \
+ else if (FBSD_MAJOR == 7) \
builtin_define ("__FreeBSD__=7"); \
else if (FBSD_MAJOR == 6) \
builtin_define ("__FreeBSD__=6"); \
--
1.5.4
From ab4bee3ee344b1440f1a5c0842ce392d1c68b629 Mon Sep 17 00:00:00 2001
From: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 7 Nov 2007 20:49:01 +0000
Subject: PR rtl-optimization/33822
* rtl.h (REG_OFFSET): Fix comment.
* var-tracking.c (INT_MEM_OFFSET): New macro.
(var_mem_set): Use it.
(var_mem_delete_and_set): Likewise.
(var_mem_delete): Likewise.
(vt_get_decl_and_offset): Likewise.
(offset_valid_for_tracked_p): New predicate.
(count_uses): Do not track locations with invalid offsets.
(add_uses): Likewise.
(add_stores): Likewise.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@129972 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5a52527..cdee5c0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,17 @@
+2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR rtl-optimization/33822
+ * rtl.h (REG_OFFSET): Fix comment.
+ * var-tracking.c (INT_MEM_OFFSET): New macro.
+ (var_mem_set): Use it.
+ (var_mem_delete_and_set): Likewise.
+ (var_mem_delete): Likewise.
+ (vt_get_decl_and_offset): Likewise.
+ (offset_valid_for_tracked_p): New predicate.
+ (count_uses): Do not track locations with invalid offsets.
+ (add_uses): Likewise.
+ (add_stores): Likewise.
+
2007-11-04 Hirohisa Yamaguchi <umq@ueo.co.jp>
* config/freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): Fix
diff --git a/gcc/rtl.h b/gcc/rtl.h
index ceb2394..55da672 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -1117,8 +1117,8 @@ do { \
refer to part of a DECL. */
#define REG_EXPR(RTX) (REG_ATTRS (RTX) == 0 ? 0 : REG_ATTRS (RTX)->decl)
-/* For a MEM rtx, the offset from the start of MEM_DECL, if known, as a
- RTX that is always a CONST_INT. */
+/* For a REG rtx, the offset from the start of REG_EXPR, if known, as an
+ HOST_WIDE_INT. */
#define REG_OFFSET(RTX) (REG_ATTRS (RTX) == 0 ? 0 : REG_ATTRS (RTX)->offset)
/* Copy the attributes that apply to memory locations from RHS to LHS. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 0b584fc..4183bad 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/out-of-bounds-1.c: New test.
+
2007-11-02 Eric Botcazou <ebotcazou@libertysurf.fr>
PR rtl-optimization/28062
diff --git a/gcc/testsuite/gcc.dg/out-of-bounds-1.c b/gcc/testsuite/gcc.dg/out-of-bounds-1.c
new file mode 100644
index 0000000..14c4591
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/out-of-bounds-1.c
@@ -0,0 +1,13 @@
+/* PR rtl-optimization/33822 */
+/* Origin: Andrew Pinski <pinskia@gcc.gnu.org> */
+
+/* { dg-do compile } */
+/* { dg-options "-O -g" } */
+/* { dg-options "-O -g -mstrict-align" { target powerpc*-*-* } } */
+
+void ProjectOverlay(const float localTextureAxis[2], char *lump)
+{
+ const void *d = &localTextureAxis;
+ int size = sizeof(float)*8 ;
+ __builtin_memcpy( &lump[ 0 ], d, size );
+}
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
index fb4a181..c94c667 100644
--- a/gcc/var-tracking.c
+++ b/gcc/var-tracking.c
@@ -253,6 +253,9 @@ typedef struct variable_def
/* Pointer to the BB's information specific to variable tracking pass. */
#define VTI(BB) ((variable_tracking_info) (BB)->aux)
+/* Macro to access MEM_OFFSET as an HOST_WIDE_INT. Evaluates MEM twice. */
+#define INT_MEM_OFFSET(mem) (MEM_OFFSET (mem) ? INTVAL (MEM_OFFSET (mem)) : 0)
+
/* Alloc pool for struct attrs_def. */
static alloc_pool attrs_pool;
@@ -866,7 +869,7 @@ static void
var_mem_delete_and_set (dataflow_set *set, rtx loc)
{
tree decl = MEM_EXPR (loc);
- HOST_WIDE_INT offset = MEM_OFFSET (loc) ? INTVAL (MEM_OFFSET (loc)) : 0;
+ HOST_WIDE_INT offset = INT_MEM_OFFSET (loc);
set_variable_part (set, loc, decl, offset);
}
@@ -878,7 +881,7 @@ static void
var_mem_delete (dataflow_set *set, rtx loc)
{
tree decl = MEM_EXPR (loc);
- HOST_WIDE_INT offset = MEM_OFFSET (loc) ? INTVAL (MEM_OFFSET (loc)) : 0;
+ HOST_WIDE_INT offset = INT_MEM_OFFSET (loc);
delete_variable_part (set, loc, decl, offset);
}
@@ -1452,6 +1455,18 @@ track_expr_p (tree expr)
return 1;
}
+/* Return true if OFFSET is a valid offset for a register or memory
+ access we want to track. This is used to reject out-of-bounds
+ accesses that can cause assertions to fail later. Note that we
+ don't reject negative offsets because they can be generated for
+ paradoxical subregs on big-endian architectures. */
+
+static inline bool
+offset_valid_for_tracked_p (HOST_WIDE_INT offset)
+{
+ return (-MAX_VAR_PARTS < offset) && (offset < MAX_VAR_PARTS);
+}
+
/* Count uses (register and memory references) LOC which will be tracked.
INSN is instruction which the LOC is part of. */
@@ -1467,7 +1482,8 @@ count_uses (rtx *loc, void *insn)
}
else if (MEM_P (*loc)
&& MEM_EXPR (*loc)
- && track_expr_p (MEM_EXPR (*loc)))
+ && track_expr_p (MEM_EXPR (*loc))
+ && offset_valid_for_tracked_p (INT_MEM_OFFSET (*loc)))
{
VTI (bb)->n_mos++;
}
@@ -1503,14 +1519,19 @@ add_uses (rtx *loc, void *insn)
basic_block bb = BLOCK_FOR_INSN ((rtx) insn);
micro_operation *mo = VTI (bb)->mos + VTI (bb)->n_mos++;
- mo->type = ((REG_EXPR (*loc) && track_expr_p (REG_EXPR (*loc)))
- ? MO_USE : MO_USE_NO_VAR);
+ if (REG_EXPR (*loc)
+ && track_expr_p (REG_EXPR (*loc))
+ && offset_valid_for_tracked_p (REG_OFFSET (*loc)))
+ mo->type = MO_USE;
+ else
+ mo->type = MO_USE_NO_VAR;
mo->u.loc = *loc;
mo->insn = (rtx) insn;
}
else if (MEM_P (*loc)
&& MEM_EXPR (*loc)
- && track_expr_p (MEM_EXPR (*loc)))
+ && track_expr_p (MEM_EXPR (*loc))
+ && offset_valid_for_tracked_p (INT_MEM_OFFSET (*loc)))
{
basic_block bb = BLOCK_FOR_INSN ((rtx) insn);
micro_operation *mo = VTI (bb)->mos + VTI (bb)->n_mos++;
@@ -1543,15 +1564,20 @@ add_stores (rtx loc, rtx expr, void *insn)
basic_block bb = BLOCK_FOR_INSN ((rtx) insn);
micro_operation *mo = VTI (bb)->mos + VTI (bb)->n_mos++;
- mo->type = ((GET_CODE (expr) != CLOBBER && REG_EXPR (loc)
- && track_expr_p (REG_EXPR (loc)))
- ? MO_SET : MO_CLOBBER);
+ if (GET_CODE (expr) != CLOBBER
+ && REG_EXPR (loc)
+ && track_expr_p (REG_EXPR (loc))
+ && offset_valid_for_tracked_p (REG_OFFSET (loc)))
+ mo->type = MO_SET;
+ else
+ mo->type = MO_CLOBBER;
mo->u.loc = loc;
mo->insn = (rtx) insn;
}
else if (MEM_P (loc)
&& MEM_EXPR (loc)
- && track_expr_p (MEM_EXPR (loc)))
+ && track_expr_p (MEM_EXPR (loc))
+ && offset_valid_for_tracked_p (INT_MEM_OFFSET (loc)))
{
basic_block bb = BLOCK_FOR_INSN ((rtx) insn);
micro_operation *mo = VTI (bb)->mos + VTI (bb)->n_mos++;
@@ -2450,7 +2476,7 @@ vt_get_decl_and_offset (rtx rtl, tree *declp, HOST_WIDE_INT *offsetp)
if (MEM_ATTRS (rtl))
{
*declp = MEM_EXPR (rtl);
- *offsetp = MEM_OFFSET (rtl) ? INTVAL (MEM_OFFSET (rtl)) : 0;
+ *offsetp = INT_MEM_OFFSET (rtl);
return true;
}
}
--
1.5.4
From 7deedfa5b01160ffdf9940d41e92a002f3fcb026 Mon Sep 17 00:00:00 2001
From: rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 16 Nov 2007 21:50:20 +0000
Subject: 2007-11-16 Richard Guenther <rguenther@suse.de>
PR middle-end/34030
* fold-const.c (fold_binary): Use correct types for folding
1 << X & Y to Y >> X & 1.
* gcc.c-torture/compile/pr34030.c: New testcase.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@130242 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index cdee5c0..b0cfbeb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-11-16 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34030
+ * fold-const.c (fold_binary): Use correct types for folding
+ 1 << X & Y to Y >> X & 1.
+
2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr>
PR rtl-optimization/33822
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index ec9ab94..f031825 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -9566,24 +9566,24 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1)
tree arg01 = TREE_OPERAND (arg0, 1);
if (TREE_CODE (arg00) == LSHIFT_EXPR
&& integer_onep (TREE_OPERAND (arg00, 0)))
- return
- fold_build2 (code, type,
- build2 (BIT_AND_EXPR, TREE_TYPE (arg0),
- build2 (RSHIFT_EXPR, TREE_TYPE (arg00),
- arg01, TREE_OPERAND (arg00, 1)),
- fold_convert (TREE_TYPE (arg0),
- integer_one_node)),
- arg1);
- else if (TREE_CODE (TREE_OPERAND (arg0, 1)) == LSHIFT_EXPR
- && integer_onep (TREE_OPERAND (TREE_OPERAND (arg0, 1), 0)))
- return
- fold_build2 (code, type,
- build2 (BIT_AND_EXPR, TREE_TYPE (arg0),
- build2 (RSHIFT_EXPR, TREE_TYPE (arg01),
- arg00, TREE_OPERAND (arg01, 1)),
- fold_convert (TREE_TYPE (arg0),
- integer_one_node)),
- arg1);
+ {
+ tree tem = fold_build2 (RSHIFT_EXPR, TREE_TYPE (arg00),
+ arg01, TREE_OPERAND (arg00, 1));
+ tem = fold_build2 (BIT_AND_EXPR, TREE_TYPE (arg0), tem,
+ build_int_cst (TREE_TYPE (arg0), 1));
+ return fold_build2 (code, type,
+ fold_convert (TREE_TYPE (arg1), tem), arg1);
+ }
+ else if (TREE_CODE (arg01) == LSHIFT_EXPR
+ && integer_onep (TREE_OPERAND (arg01, 0)))
+ {
+ tree tem = fold_build2 (RSHIFT_EXPR, TREE_TYPE (arg01),
+ arg00, TREE_OPERAND (arg01, 1));
+ tem = fold_build2 (BIT_AND_EXPR, TREE_TYPE (arg0), tem,
+ build_int_cst (TREE_TYPE (arg0), 1));
+ return fold_build2 (code, type,
+ fold_convert (TREE_TYPE (arg1), tem), arg1);
+ }
}
/* If this is an NE or EQ comparison of zero against the result of a
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4183bad..7efd5b6 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-11-16 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34030
+ * gcc.c-torture/compile/pr34030.c: New testcase.
+
2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr>
* gcc.dg/out-of-bounds-1.c: New test.
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr34030.c b/gcc/testsuite/gcc.c-torture/compile/pr34030.c
new file mode 100644
index 0000000..f4f9e17
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr34030.c
@@ -0,0 +1,8 @@
+int myvar;
+
+int foo(int mynum)
+{
+ if ((((void *)0) == (myvar & ((1U<<0) << mynum))) && (mynum > 0))
+ return 1;
+ return 0;
+}
--
1.5.4
From 61c905db3fb985f83acb3d506904ab47860762f9 Mon Sep 17 00:00:00 2001
From: doko <doko@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 29 Nov 2007 00:32:58 +0000
Subject: gcc/
2007-11-29 Matthias Klose <doko@ubuntu.com>
Backport from mainline:
2007-11-17 Richard Guenther <rguenther@suse.de>
PR middle-end/34130
* fold-const.c (extract_muldiv_1): Do not move negative
constants inside ABS_EXPR.
gcc/testsuite/
2007-11-29 Matthias Klose <doko@ubuntu.com>
Backport from mainline:
2007-11-17 Richard Guenther <rguenther@suse.de>
PR middle-end/34130
* gcc.c-torture/execute/pr34130.c: New testcase.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@130507 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b0cfbeb..1d49ffc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2007-11-29 Matthias Klose <doko@ubuntu.com>
+
+ Backport from mainline:
+ 2007-11-17 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34130
+ * fold-const.c (extract_muldiv_1): Do not move negative
+ constants inside ABS_EXPR.
+
2007-11-16 Richard Guenther <rguenther@suse.de>
PR middle-end/34030
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index f031825..f9e58d2 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -5340,6 +5340,9 @@ extract_muldiv_1 (tree t, tree c, enum tree_code code, tree wide_type)
}
break;
}
+ /* If the constant is negative, we cannot simplify this. */
+ if (tree_int_cst_sgn (c) == -1)
+ break;
/* FALLTHROUGH */
case NEGATE_EXPR:
if ((t1 = extract_muldiv (op0, c, code, wide_type)) != 0)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7efd5b6..7b78678 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2007-11-29 Matthias Klose <doko@ubuntu.com>
+
+ Backport from mainline:
+ 2007-11-17 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34130
+ * gcc.c-torture/execute/pr34130.c: New testcase.
+
2007-11-16 Richard Guenther <rguenther@suse.de>
PR middle-end/34030
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr34130.c b/gcc/testsuite/gcc.c-torture/execute/pr34130.c
new file mode 100644
index 0000000..b528ff2
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr34130.c
@@ -0,0 +1,12 @@
+extern void abort (void);
+int foo (int i)
+{
+ return -2 * __builtin_abs(i - 2);
+}
+int main()
+{
+ if (foo(1) != -2
+ || foo(3) != -2)
+ abort ();
+ return 0;
+}
--
1.5.4
From bec73fc813092478b382b59378f725f1e5e902df Mon Sep 17 00:00:00 2001
From: rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 19 Dec 2007 10:05:47 +0000
Subject: gcc/
200x-xx-xx Kaz Kylheku <kaz@zeugmasystems.com>
PR rtl-optimization/34456
* resource.c (mark_set_resources): Use regs_invalidated_by_call
rather than call_used_regs and global_regs.
gcc/testsuite/
PR rtl-optimization/34456
* gcc.c-torture/execute/pr34456.c: New test.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@131058 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1d49ffc..2d20095 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-12-19 Kaz Kylheku <kaz@zeugmasystems.com>
+
+ PR rtl-optimization/34456
+ * resource.c (mark_set_resources): Use regs_invalidated_by_call
+ rather than call_used_regs and global_regs.
+
2007-11-29 Matthias Klose <doko@ubuntu.com>
Backport from mainline:
diff --git a/gcc/resource.c b/gcc/resource.c
index 95f1628..4eefab6 100644
--- a/gcc/resource.c
+++ b/gcc/resource.c
@@ -664,9 +664,8 @@ mark_set_resources (rtx x, struct resources *res, int in_dest,
rtx link;
res->cc = res->memory = 1;
- for (r = 0; r < FIRST_PSEUDO_REGISTER; r++)
- if (call_used_regs[r] || global_regs[r])
- SET_HARD_REG_BIT (res->regs, r);
+
+ IOR_HARD_REG_SET (res->regs, regs_invalidated_by_call);
for (link = CALL_INSN_FUNCTION_USAGE (x);
link; link = XEXP (link, 1))
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7b78678..ba211df 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-12-19 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ PR rtl-optimization/34456
+ * gcc.c-torture/execute/pr34456.c: New test.
+
2007-11-29 Matthias Klose <doko@ubuntu.com>
Backport from mainline:
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr34456.c b/gcc/testsuite/gcc.c-torture/execute/pr34456.c
new file mode 100644
index 0000000..526c954
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr34456.c
@@ -0,0 +1,30 @@
+#include <stdlib.h>
+
+int __attribute__ ((noinline)) debug (void) { return 1; }
+int errors;
+
+struct s { int elt; int (*compare) (int); };
+
+static int
+compare (const void *x, const void *y)
+{
+ const struct s *s1 = x, *s2 = y;
+ int (*compare1) (int);
+ int elt2;
+
+ compare1 = s1->compare;
+ elt2 = s2->elt;
+ if (elt2 != 0 && debug () && compare1 (s1->elt) != 0)
+ errors++;
+ return compare1 (elt2);
+}
+
+int bad_compare (int x) { return -x; }
+struct s array[2] = { { 1, bad_compare }, { -1, bad_compare } };
+
+int
+main (void)
+{
+ qsort (array, 2, sizeof (struct s), compare);
+ return errors == 0;
+}
--
1.5.4
From 5c4cb7696cbf70f8913dd8230b07bbc8362a8f54 Mon Sep 17 00:00:00 2001
From: danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 21 Dec 2007 03:05:43 +0000
Subject: PR bootstrap/34003
* c-decl.c (merge_decls): Copy RTL from olddecl to newdecl.
* config/pa/pa.c (pa_encode_section_info): If !first, preserve
SYMBOL_FLAG_REFERENCED flag.
* gcc.dg/pr34003-1.c: New test.
* gcc.dg/pr34003-2.c: New.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@131114 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2d20095..e31de58 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2007-12-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/34003
+ * c-decl.c (merge_decls): Copy RTL from olddecl to newdecl.
+ * config/pa/pa.c (pa_encode_section_info): If !first, preserve
+ SYMBOL_FLAG_REFERENCED flag.
+
2007-12-19 Kaz Kylheku <kaz@zeugmasystems.com>
PR rtl-optimization/34456
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index bb2bbb1..eb69aca 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -1644,6 +1644,9 @@ merge_decls (tree newdecl, tree olddecl, tree newtype, tree oldtype)
}
}
+ /* Keep the old rtl since we can safely use it. */
+ if (HAS_RTL_P (olddecl))
+ COPY_DECL_RTL (olddecl, newdecl);
/* Merge the type qualifiers. */
if (TREE_READONLY (newdecl))
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 37b0513..f31f344 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -7545,6 +7545,12 @@ hppa_encode_label (rtx sym)
static void
pa_encode_section_info (tree decl, rtx rtl, int first)
{
+ int old_referenced = 0;
+
+ if (!first && MEM_P (rtl) && GET_CODE (XEXP (rtl, 0)) == SYMBOL_REF)
+ old_referenced
+ = SYMBOL_REF_FLAGS (XEXP (rtl, 0)) & SYMBOL_FLAG_REFERENCED;
+
default_encode_section_info (decl, rtl, first);
if (first && TEXT_SPACE_P (decl))
@@ -7553,6 +7559,8 @@ pa_encode_section_info (tree decl, rtx rtl, int first)
if (TREE_CODE (decl) == FUNCTION_DECL)
hppa_encode_label (XEXP (rtl, 0));
}
+ else if (old_referenced)
+ SYMBOL_REF_FLAGS (XEXP (rtl, 0)) |= old_referenced;
}
/* This is sort of inverse to pa_encode_section_info. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ba211df..4c617a3 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2007-12-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/34003
+ * gcc.dg/pr34003-1.c: New test.
+ * gcc.dg/pr34003-2.c: New.
+
2007-12-19 Richard Sandiford <rsandifo@nildram.co.uk>
PR rtl-optimization/34456
diff --git a/gcc/testsuite/gcc.dg/pr34003-1.c b/gcc/testsuite/gcc.dg/pr34003-1.c
new file mode 100644
index 0000000..ff97fe6
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr34003-1.c
@@ -0,0 +1,8 @@
+/* PR bootstrap/34003 */
+/* { dg-do link } */
+/* { dg-options "-O0" } */
+/* { dg-additional-sources "pr34003-2.c" } */
+
+extern void foo (void);
+int bar (void) { foo (); return 1; }
+extern void foo (void);
diff --git a/gcc/testsuite/gcc.dg/pr34003-2.c b/gcc/testsuite/gcc.dg/pr34003-2.c
new file mode 100644
index 0000000..a533056
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr34003-2.c
@@ -0,0 +1,20 @@
+/* PR bootstrap/34003 */
+/* { dg-do compile } */
+/* { dg-options "-O0" } */
+
+extern void abort (void);
+
+int seen = 0;
+
+void foo (void)
+{
+ ++seen;
+}
+
+int main (void)
+{
+ extern int bar (void);
+ if (bar () != 1 || seen != 1)
+ abort ();
+ return 0;
+}
--
1.5.4
From 463adb848cfc119cf5eb1d03264338aaa5fd0a09 Mon Sep 17 00:00:00 2001
From: danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 21 Dec 2007 03:21:37 +0000
Subject: Correct entry dates for last commit.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@131115 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e31de58..7e34315 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,4 @@
-2007-12-17 Jakub Jelinek <jakub@redhat.com>
+2007-12-20 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/34003
* c-decl.c (merge_decls): Copy RTL from olddecl to newdecl.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4c617a3..503238c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,4 +1,4 @@
-2007-12-17 Jakub Jelinek <jakub@redhat.com>
+2007-12-20 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/34003
* gcc.dg/pr34003-1.c: New test.
--
1.5.4
From b52a864198d45110816bff6f5865aa62620a810f Mon Sep 17 00:00:00 2001
From: danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 31 Dec 2007 17:10:42 +0000
Subject: PR driver/33772
* collect2.c (SHLIB_SUFFIX): Define if not defined.
(write_c_file_stat): Use SHLIB_SUFFIX.
* som.h (SHLIB_SUFFIX): Define.
* doc/tm.texi (SHLIB_SUFFIX): Document.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@131237 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7e34315..3413c04 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2007-12-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR driver/33772
+ * collect2.c (SHLIB_SUFFIX): Define if not defined.
+ (write_c_file_stat): Use SHLIB_SUFFIX.
+ * som.h (SHLIB_SUFFIX): Define.
+ * doc/tm.texi (SHLIB_SUFFIX): Document.
+
2007-12-20 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/34003
diff --git a/gcc/collect2.c b/gcc/collect2.c
index f4cc46a..b39e61e 100644
--- a/gcc/collect2.c
+++ b/gcc/collect2.c
@@ -130,6 +130,10 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#define SCAN_LIBRARIES
#endif
+#ifndef SHLIB_SUFFIX
+#define SHLIB_SUFFIX ".so"
+#endif
+
#ifdef USE_COLLECT2
int do_collecting = 1;
#else
@@ -1791,9 +1795,9 @@ write_c_file_stat (FILE *stream, const char *name ATTRIBUTE_UNUSED)
}
else
{
- if (strncmp (q, ".so", 3) == 0)
+ if (strncmp (q, SHLIB_SUFFIX, strlen (SHLIB_SUFFIX)) == 0)
{
- q += 3;
+ q += strlen (SHLIB_SUFFIX);
break;
}
else
diff --git a/gcc/config/pa/som.h b/gcc/config/pa/som.h
index e397b9d..9754490 100644
--- a/gcc/config/pa/som.h
+++ b/gcc/config/pa/som.h
@@ -360,3 +360,7 @@ do { \
/* We can't handle weak aliases, and therefore can't support pragma weak.
Suppress the use of pragma weak in gthr-dce.h and gthr-posix.h. */
#define GTHREAD_USE_WEAK 0
+
+/* Shared library suffix. Collect2 strips the version string after
+ this suffix when generating constructor/destructor names. */
+#define SHLIB_SUFFIX ".sl"
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index 07c3ce1..c5a3d24 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -7314,6 +7314,14 @@ code must advance @var{ptr} to the beginning of the filename on that
line. Otherwise, it must set @var{ptr} to @code{NULL}.
@end defmac
+@defmac SHLIB_SUFFIX
+Define this macro to a C string constant containing the default shared
+library extension of the target (e.g., @samp{".so"}). @command{collect2}
+strips version information after this suffix when generating global
+constructor and destructor names. This define is only needed on targets
+that use @command{collect2} to process constructors and destructors.
+@end defmac
+
@node Instruction Output
@subsection Output of Assembler Instructions
--
1.5.4
From 505b222340181bc1e5f67780de98f31d1bf10c10 Mon Sep 17 00:00:00 2001
From: ghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 9 Jan 2008 06:12:26 +0000
Subject: * gcc.c-torture/execute/builtins/chk.h: Don't check !__PIE__.
Also check __pic__.
* lib/target-supports.exp (check_effective_target_nonpic): Likewise.
* gcc.dg/assign-warn-3.c: Use "static inline" instead of "inline".
Backport:
2007-03-21 Richard Sandiford <richard@codesourcery.com>
* gcc.c-torture/execute/builtins/chk.h (LOCAL): Define.
* gcc.c-torture/execute/builtins/sprintf-chk.c (s1): Make LOCAL.
* gcc.c-torture/execute/builtins/stpcpy-chk.c (s1): Likewise.
* gcc.c-torture/execute/builtins/strcpy-chk.c (s1): Likewise.
2007-07-26 Nathan Froyd <froydnj@codesourcery.com>
PR/19232
* gcc.dg/assign-warn-3.c (f0): Declare as inline.
(f1): Likewise.
2007-01-15 Dale Johannesen <dalej@apple.com>
* gcc.dg/tree-ssa/loop-3.c: Disable with -fpic or -fPIC.
2007-03-21 Richard Sandiford <richard@codesourcery.com>
* lib/target-supports.exp (check_effective_target_nonpic): New
procedure.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@131413 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 503238c..e041686 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,30 @@
+2008-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.c-torture/execute/builtins/chk.h: Don't check !__PIE__.
+ Also check __pic__.
+ * lib/target-supports.exp (check_effective_target_nonpic): Likewise.
+ * gcc.dg/assign-warn-3.c: Use "static inline" instead of "inline".
+
+ Backport:
+
+ 2007-03-21 Richard Sandiford <richard@codesourcery.com>
+ * gcc.c-torture/execute/builtins/chk.h (LOCAL): Define.
+ * gcc.c-torture/execute/builtins/sprintf-chk.c (s1): Make LOCAL.
+ * gcc.c-torture/execute/builtins/stpcpy-chk.c (s1): Likewise.
+ * gcc.c-torture/execute/builtins/strcpy-chk.c (s1): Likewise.
+
+ 2007-07-26 Nathan Froyd <froydnj@codesourcery.com>
+ PR/19232
+ * gcc.dg/assign-warn-3.c (f0): Declare as inline.
+ (f1): Likewise.
+
+ 2007-01-15 Dale Johannesen <dalej@apple.com>
+ * gcc.dg/tree-ssa/loop-3.c: Disable with -fpic or -fPIC.
+
+ 2007-03-21 Richard Sandiford <richard@codesourcery.com>
+ * lib/target-supports.exp (check_effective_target_nonpic): New
+ procedure.
+
2007-12-20 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/34003
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/chk.h b/gcc/testsuite/gcc.c-torture/execute/builtins/chk.h
index dfef410..f91ec78 100644
--- a/gcc/testsuite/gcc.c-torture/execute/builtins/chk.h
+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/chk.h
@@ -79,3 +79,11 @@ extern volatile int memset_disallowed, strcpy_disallowed, stpcpy_disallowed;
extern volatile int strncpy_disallowed, strcat_disallowed, strncat_disallowed;
extern volatile int sprintf_disallowed, vsprintf_disallowed;
extern volatile int snprintf_disallowed, vsnprintf_disallowed;
+
+/* A storage class that ensures that declarations bind locally. We want
+ to test non-static declarations where we know it is safe to do so. */
+#if __PIC__ || __pic__
+#define LOCAL static
+#else
+#define LOCAL
+#endif
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/sprintf-chk.c b/gcc/testsuite/gcc.c-torture/execute/builtins/sprintf-chk.c
index 95d2a9d..2862ab6 100644
--- a/gcc/testsuite/gcc.c-torture/execute/builtins/sprintf-chk.c
+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/sprintf-chk.c
@@ -13,7 +13,7 @@ extern int sprintf (char *, const char *, ...);
#include "chk.h"
-const char s1[] = "123";
+LOCAL const char s1[] = "123";
char p[32] = "";
char *s2 = "defg";
char *s3 = "FGH";
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/stpcpy-chk.c b/gcc/testsuite/gcc.c-torture/execute/builtins/stpcpy-chk.c
index b292c0a..6091f12 100644
--- a/gcc/testsuite/gcc.c-torture/execute/builtins/stpcpy-chk.c
+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/stpcpy-chk.c
@@ -11,7 +11,7 @@ extern int memcmp (const void *, const void *, size_t);
#include "chk.h"
-const char s1[] = "123";
+LOCAL const char s1[] = "123";
char p[32] = "";
char *s2 = "defg";
char *s3 = "FGH";
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/strcpy-chk.c b/gcc/testsuite/gcc.c-torture/execute/builtins/strcpy-chk.c
index 002dd19..b3c1a38 100644
--- a/gcc/testsuite/gcc.c-torture/execute/builtins/strcpy-chk.c
+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/strcpy-chk.c
@@ -11,7 +11,7 @@ extern int memcmp (const void *, const void *, size_t);
#include "chk.h"
-const char s1[] = "123";
+LOCAL const char s1[] = "123";
char p[32] = "";
char *s2 = "defg";
char *s3 = "FGH";
diff --git a/gcc/testsuite/gcc.dg/assign-warn-3.c b/gcc/testsuite/gcc.dg/assign-warn-3.c
index 1463fce..4ff7b88 100644
--- a/gcc/testsuite/gcc.dg/assign-warn-3.c
+++ b/gcc/testsuite/gcc.dg/assign-warn-3.c
@@ -5,9 +5,9 @@
/* { dg-options "-O3 -std=c99 -pedantic-errors" } */
/* This is valid to execute, so maybe shouldn't warn at all. */
-void f0(x) signed char *x; { }
+static inline void f0(x) signed char *x; { }
void g0(unsigned char *x) { f0(x); } /* { dg-warning "warning: pointer targets in passing argument 1 of 'f0' differ in signedness" } */
/* This is undefined on execution but still must compile. */
-void f1(x) int *x; { }
+static inline void f1(x) int *x; { }
void g1(unsigned int *x) { f1(x); } /* { dg-warning "warning: pointer targets in passing argument 1 of 'f1' differ in signedness" } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-3.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-3.c
index 82d1d2d..c717914 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/loop-3.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-3.c
@@ -3,7 +3,8 @@
assume something about memory addressing modes. */
/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
-/* { dg-options "-O1 -fdump-tree-vars" } */
+/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-fpic" "-fPIC" } { "" } } */
+/* { dg-options "-O1 -fno-pic -fno-PIC -fdump-tree-vars" } */
int arr_base[100];
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 01120ab..c473826 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -490,6 +490,16 @@ proc check_effective_target_fpic { } {
return 0
}
+# Return 1 if the current multilib does not generate PIC by default.
+
+proc check_effective_target_nonpic { } {
+ return [check_no_compiler_messages nonpic assembly {
+ #if __PIC__ || __pic__
+ #error FOO
+ #endif
+ }]
+}
+
# Return true if iconv is supported on the target. In particular IBM1047.
proc check_iconv_available { test_what } {
--
1.5.4
From 5f4ecb3436cc125b1047ef6e06e8646cb4b433e8 Mon Sep 17 00:00:00 2001
From: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 14 Jan 2008 12:19:58 +0000
Subject: PR rtl-optimization/31944
* cse.c (remove_pseudo_from_table): New function.
(merge_equiv_classes): Use above function to remove pseudo-registers.
(invalidate): Likewise.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@131524 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3413c04..a07135d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2008-01-14 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR rtl-optimization/31944
+ * cse.c (remove_pseudo_from_table): New function.
+ (merge_equiv_classes): Use above function to remove pseudo-registers.
+ (invalidate): Likewise.
+
2007-12-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR driver/33772
diff --git a/gcc/cse.c b/gcc/cse.c
index 70fec9e..a35c41c 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -583,7 +583,8 @@ static void delete_reg_equiv (unsigned int);
static int mention_regs (rtx);
static int insert_regs (rtx, struct table_elt *, int);
static void remove_from_table (struct table_elt *, unsigned);
-static struct table_elt *lookup (rtx, unsigned, enum machine_mode);
+static void remove_pseudo_from_table (rtx, unsigned);
+static struct table_elt *lookup (rtx, unsigned, enum machine_mode);
static struct table_elt *lookup_for_remove (rtx, unsigned, enum machine_mode);
static rtx lookup_as_function (rtx, enum rtx_code);
static struct table_elt *insert (rtx, struct table_elt *, unsigned,
@@ -1382,6 +1383,19 @@ remove_from_table (struct table_elt *elt, unsigned int hash)
table_size--;
}
+/* Same as above, but X is a pseudo-register. */
+
+static void
+remove_pseudo_from_table (rtx x, unsigned int hash)
+{
+ struct table_elt *elt;
+
+ /* Because a pseudo-register can be referenced in more than one
+ mode, we might have to remove more than one table entry. */
+ while ((elt = lookup_for_remove (x, hash, VOIDmode)))
+ remove_from_table (elt, hash);
+}
+
/* Look up X in the hash table and return its table element,
or 0 if X is not in the table.
@@ -1708,7 +1722,10 @@ merge_equiv_classes (struct table_elt *class1, struct table_elt *class2)
delete_reg_equiv (REGNO (exp));
}
- remove_from_table (elt, hash);
+ if (REG_P (exp) && REGNO (exp) >= FIRST_PSEUDO_REGISTER)
+ remove_pseudo_from_table (exp, hash);
+ else
+ remove_from_table (elt, hash);
if (insert_regs (exp, class1, 0) || need_rehash)
{
@@ -1804,14 +1821,7 @@ invalidate (rtx x, enum machine_mode full_mode)
SUBREG_TICKED (regno) = -1;
if (regno >= FIRST_PSEUDO_REGISTER)
- {
- /* Because a register can be referenced in more than one mode,
- we might have to remove more than one table entry. */
- struct table_elt *elt;
-
- while ((elt = lookup_for_remove (x, hash, GET_MODE (x))))
- remove_from_table (elt, hash);
- }
+ remove_pseudo_from_table (x, hash);
else
{
HOST_WIDE_INT in_table
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e041686..99e21bf 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2008-01-14 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.c-torture/compile/20080114-1.c: New test.
+
2008-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* gcc.c-torture/execute/builtins/chk.h: Don't check !__PIE__.
diff --git a/gcc/testsuite/gcc.c-torture/compile/20080114-1.c b/gcc/testsuite/gcc.c-torture/compile/20080114-1.c
new file mode 100644
index 0000000..51affb7
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20080114-1.c
@@ -0,0 +1,14 @@
+/* PR rtl-optimization/31944 */
+/* Origin: Aurelien Jarno <aurelien@aurel32.net> */
+
+int type;
+
+void stuck(int res)
+{
+ if (type == 1) {
+ if (res == 0) asm volatile("nop");
+ }
+ else if (type == 0) {
+ if (res == 0) asm volatile("nop" : : "i" (0));
+ }
+}
--
1.5.4
From c8f47c213a3b750be107c4df98365e64e7492cf8 Mon Sep 17 00:00:00 2001
From: danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 17 Jan 2008 02:59:16 +0000
Subject: PR libgfortran/34699
* pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
static links.
* pa-hpux10.h (LINK_SPEC): Likewise.
* pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@131588 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a07135d..b4ce707 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR libgfortran/34699
+ * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
+ static links.
+ * pa-hpux10.h (LINK_SPEC): Likewise.
+ * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
+
2008-01-14 Eric Botcazou <ebotcazou@adacore.com>
PR rtl-optimization/31944
diff --git a/gcc/config/pa/pa-hpux.h b/gcc/config/pa/pa-hpux.h
index 4b6c910..8c85dc8 100644
--- a/gcc/config/pa/pa-hpux.h
+++ b/gcc/config/pa/pa-hpux.h
@@ -98,7 +98,7 @@ Boston, MA 02110-1301, USA. */
#undef LINK_SPEC
#if ((TARGET_DEFAULT | TARGET_CPU_DEFAULT) & MASK_PA_11)
#define LINK_SPEC \
- "%{!mpa-risc-1-0:%{!march=1.0:%{!shared:-L/lib/pa1.1 -L/usr/lib/pa1.1 }}}%{mlinker-opt:-O} %{!shared:-u main} %{static:-a archive} %{g*:-a archive} %{shared:-b}"
+ "%{!mpa-risc-1-0:%{!march=1.0:%{static:-L/lib/pa1.1 -L/usr/lib/pa1.1 }}}%{mlinker-opt:-O} %{!shared:-u main} %{static:-a archive} %{g*:-a archive} %{shared:-b}"
#else
#define LINK_SPEC \
"%{mlinker-opt:-O} %{!shared:-u main} %{static:-a archive} %{g*:-a archive} %{shared:-b}"
diff --git a/gcc/config/pa/pa-hpux10.h b/gcc/config/pa/pa-hpux10.h
index bc07e5b..94429b3 100644
--- a/gcc/config/pa/pa-hpux10.h
+++ b/gcc/config/pa/pa-hpux10.h
@@ -85,7 +85,7 @@ Boston, MA 02110-1301, USA. */
#undef LINK_SPEC
#if ((TARGET_DEFAULT | TARGET_CPU_DEFAULT) & MASK_PA_11)
#define LINK_SPEC \
- "%{!mpa-risc-1-0:%{!march=1.0:%{!shared:-L/lib/pa1.1 -L/usr/lib/pa1.1 }}}\
+ "%{!mpa-risc-1-0:%{!march=1.0:%{static:-L/lib/pa1.1 -L/usr/lib/pa1.1 }}}\
%{!shared:%{p:-L/lib/libp %{!static:\
%nWarning: consider linking with `-static' as system libraries with\n\
%n profiling support are only provided in archive format}}}\
diff --git a/gcc/config/pa/pa-hpux11.h b/gcc/config/pa/pa-hpux11.h
index ad16bb4..7a783f8 100644
--- a/gcc/config/pa/pa-hpux11.h
+++ b/gcc/config/pa/pa-hpux11.h
@@ -106,18 +106,6 @@ Boston, MA 02110-1301, USA. */
/* We can debug dynamically linked executables on hpux11; we also
want dereferencing of a NULL pointer to cause a SEGV. */
#undef LINK_SPEC
-#if ((TARGET_DEFAULT | TARGET_CPU_DEFAULT) & MASK_PA_11)
-#define LINK_SPEC \
- "%{!mpa-risc-1-0:%{!march=1.0:%{!shared:-L/lib/pa1.1 -L/usr/lib/pa1.1 }}}\
- %{!shared:%{p:-L/lib/libp -L/usr/lib/libp %{!static:\
- %nWarning: consider linking with `-static' as system libraries with\n\
- %n profiling support are only provided in archive format}}}\
- %{!shared:%{pg:-L/lib/libp -L/usr/lib/libp %{!static:\
- %nWarning: consider linking with `-static' as system libraries with\n\
- %n profiling support are only provided in archive format}}}\
- -z %{mlinker-opt:-O} %{!shared:-u main -u __gcc_plt_call}\
- %{static:-a archive} %{shared:-b}"
-#else
#define LINK_SPEC \
"%{!shared:%{p:-L/lib/libp -L/usr/lib/libp %{!static:\
%nWarning: consider linking with `-static' as system libraries with\n\
@@ -127,7 +115,6 @@ Boston, MA 02110-1301, USA. */
%n profiling support are only provided in archive format}}}\
-z %{mlinker-opt:-O} %{!shared:-u main -u __gcc_plt_call}\
%{static:-a archive} %{shared:-b}"
-#endif
/* hpux 11 has posix threads. */
#undef LIB_SPEC
--
1.5.4
From b8befc9beb7872cbed7999b7b1d93f0ad1ac6485 Mon Sep 17 00:00:00 2001
From: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 17 Jan 2008 12:48:45 +0000
Subject: * gcc.c-torture/compile/20080114-1.c: Use empty asm statements.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@131598 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 99e21bf..0e47d83 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2008-01-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.c-torture/compile/20080114-1.c: Use empty asm statements.
+
2008-01-14 Eric Botcazou <ebotcazou@adacore.com>
* gcc.c-torture/compile/20080114-1.c: New test.
diff --git a/gcc/testsuite/gcc.c-torture/compile/20080114-1.c b/gcc/testsuite/gcc.c-torture/compile/20080114-1.c
index 51affb7..f251c22 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20080114-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20080114-1.c
@@ -6,9 +6,9 @@ int type;
void stuck(int res)
{
if (type == 1) {
- if (res == 0) asm volatile("nop");
+ if (res == 0) asm volatile("");
}
else if (type == 0) {
- if (res == 0) asm volatile("nop" : : "i" (0));
+ if (res == 0) asm volatile("" : : "i" (0));
}
}
--
1.5.4
From 7af178a92339ae90e24003f4e807e68119fa7e70 Mon Sep 17 00:00:00 2001
From: ghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 19 Jan 2008 19:06:15 +0000
Subject: Backport:
2007-03-21 Richard Sandiford <richard@codesourcery.com>
* gcc.target/i386/pr21291.c: Require nonpic or ! ilp32.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@131656 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 0e47d83..3663042 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2008-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ Backport:
+ 2007-03-21 Richard Sandiford <richard@codesourcery.com>
+
+ * gcc.target/i386/pr21291.c: Require nonpic or ! ilp32.
+
2008-01-17 Eric Botcazou <ebotcazou@adacore.com>
* gcc.c-torture/compile/20080114-1.c: Use empty asm statements.
diff --git a/gcc/testsuite/gcc.target/i386/pr21291.c b/gcc/testsuite/gcc.target/i386/pr21291.c
index acfc43d..f7348bd 100644
--- a/gcc/testsuite/gcc.target/i386/pr21291.c
+++ b/gcc/testsuite/gcc.target/i386/pr21291.c
@@ -1,4 +1,9 @@
-/* { dg-do compile } */
+/* The asm has 2 "r" in/out operands, 1 earlyclobber "r" output, 1 "r"
+ input and 2 fixed "r" clobbers (eax and edx), so there are a total of
+ 6 registers that must not conflict. Add to that the PIC register,
+ the frame pointer, and the stack pointer, and we've run out of
+ registers on 32-bit targets. */
+/* { dg-do compile { target { { ! ilp32 } || nonpic } } } */
/* { dg-options "-O" } */
typedef unsigned long bngdigit;
--
1.5.4
From 27bc204070924e5003785daede212c53fad3cbd2 Mon Sep 17 00:00:00 2001
From: danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 19 Jan 2008 22:15:22 +0000
Subject: * g++.dg/eh/ia64-2.C: Add "dg-require-weak" statement. Place
"dg-do run" statement before "dg-require-weak" statement.
* g++.dg/eh/weak1.C: Likewise.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@131659 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 3663042..aad5d96 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2008-01-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * g++.dg/eh/ia64-2.C: Add "dg-require-weak" statement. Place
+ "dg-do run" statement before "dg-require-weak" statement.
+ * g++.dg/eh/weak1.C: Likewise.
+
2008-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
Backport:
diff --git a/gcc/testsuite/g++.dg/eh/ia64-2.C b/gcc/testsuite/g++.dg/eh/ia64-2.C
index 0390bc8..aa005d8 100644
--- a/gcc/testsuite/g++.dg/eh/ia64-2.C
+++ b/gcc/testsuite/g++.dg/eh/ia64-2.C
@@ -5,8 +5,9 @@
// But br.call returns to the start of the next bundlem so during
// unwinding the call was considered to be outside of the EH region
// while it should have been inside.
-// { dg-options "-O2" }
// { dg-do run }
+// { dg-require-weak "" }
+// { dg-options "-O2" }
struct A {};
struct B { virtual ~B(); };
diff --git a/gcc/testsuite/g++.dg/eh/weak1.C b/gcc/testsuite/g++.dg/eh/weak1.C
index 09f2fcb..3034e80 100644
--- a/gcc/testsuite/g++.dg/eh/weak1.C
+++ b/gcc/testsuite/g++.dg/eh/weak1.C
@@ -1,6 +1,6 @@
// PR target/29487
-// { dg-require-weak "" }
// { dg-do run { xfail "hppa*-hp-hpux11.*" } }
+// { dg-require-weak "" }
// { dg-additional-sources "weak1-a.cc" }
// { dg-options "-O2" }
--
1.5.4
From 07a141efc17e10cc2121e86891c14459dff74010 Mon Sep 17 00:00:00 2001
From: danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 21 Jan 2008 18:13:04 +0000
Subject: PR libfortran/34699
Backport:
2007-09-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
PR libfortran/26253
* intrinsics/c99_functions.c (scalbn): Use ldexp if appopriate.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@131699 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index a71d215..b60bfe3 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,12 @@
+2008-01-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR libfortran/34699
+ Backport:
+ 2007-09-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR libfortran/26253
+ * intrinsics/c99_functions.c (scalbn): Use ldexp if appopriate.
+
2007-05-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/31964
diff --git a/libgfortran/intrinsics/c99_functions.c b/libgfortran/intrinsics/c99_functions.c
index 3eabd0d..40e0ba7 100644
--- a/libgfortran/intrinsics/c99_functions.c
+++ b/libgfortran/intrinsics/c99_functions.c
@@ -226,7 +226,11 @@ log10f(float x)
double
scalbn(double x, int y)
{
+#if (FLT_RADIX == 2) && defined(HAVE_LDEXP)
+ return ldexp (x, y);
+#else
return x * pow(FLT_RADIX, y);
+#endif
}
#endif
--
1.5.4
From 5d67c8588f215706ad76eda3000f9625ca1fc5d2 Mon Sep 17 00:00:00 2001
From: ghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 22 Jan 2008 19:24:36 +0000
Subject: * gcc.dg/vect/vect-ifcvt-9.c: Use inline.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@131737 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index aad5d96..e23320b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2008-01-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.dg/vect/vect-ifcvt-9.c: Use inline.
+
2008-01-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* g++.dg/eh/ia64-2.C: Add "dg-require-weak" statement. Place
diff --git a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-9.c b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-9.c
index 75941d7..b4a74cf 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-9.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-9.c
@@ -11,7 +11,7 @@ extern void abort(void);
int A[N] = {36,39,42,45,43,32,21,12,23,34,45,56,67,78,89,11};
int B[N] = {0,0,42,42,42,0,0,0,0,0,42,42,42,42,42,0};
-void foo () __attribute__((always_inline));
+inline void foo () __attribute__((always_inline));
void foo ()
{
int i, j;
--
1.5.4
From d9ac9ecaa48f298bac0f43f5b96ebf6ed6687262 Mon Sep 17 00:00:00 2001
From: ghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 24 Jan 2008 20:33:54 +0000
Subject: Backport:
2008-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* gcc.dg/pr33826.c: Require nonpic.
2007-11-07 Kenneth Zadeck <zadeck@naturalbridge.com>
PR middle-end/33826
* ipa-pure-const (static_execute): Added code to keep recursive
functions from being marked as pure or const.
* ipa-utils (searchc): Fixed comment.
2007-11-08 Kenneth Zadeck <zadeck@naturalbridge.com>
PR middle-end/33826
* gcc.dg/pr33826.c: New.
* gcc.dg/tree-ssa/20030714-1.c: Removed two tests that depend on
recursive functions being marked pure or const.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@131807 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b4ce707..a5862e1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2008-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ Backport:
+ 2007-11-07 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ PR middle-end/33826
+ * ipa-pure-const (static_execute): Added code to keep recursive
+ functions from being marked as pure or const.
+ * ipa-utils (searchc): Fixed comment.
+
2008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR libgfortran/34699
diff --git a/gcc/ipa-pure-const.c b/gcc/ipa-pure-const.c
index ae92e7e..ac45705 100644
--- a/gcc/ipa-pure-const.c
+++ b/gcc/ipa-pure-const.c
@@ -639,6 +639,7 @@ static_execute (void)
for (i = 0; i < order_pos; i++ )
{
enum pure_const_state_e pure_const_state = IPA_CONST;
+ int count = 0;
node = order[i];
/* Find the worst state for any node in the cycle. */
@@ -655,11 +656,40 @@ static_execute (void)
if (!w_l->state_set_in_source)
{
struct cgraph_edge *e;
+ count++;
+
+ /* FIXME!!! Because of pr33826, we cannot have either
+ immediate or transitive recursive functions marked as
+ pure or const because dce can delete a function that
+ is in reality an infinite loop. A better solution
+ than just outlawing them is to add another bit the
+ functions to distinguish recursive from non recursive
+ pure and const function. This would allow the
+ recursive ones to be cse'd but not dce'd. In this
+ same vein, we could allow functions with loops to
+ also be cse'd but not dce'd.
+
+ Unfortunately we are late in stage 3, and the fix
+ described above is is not appropriate. */
+ if (count > 1)
+ {
+ pure_const_state = IPA_NEITHER;
+ break;
+ }
+
for (e = w->callees; e; e = e->next_callee)
{
struct cgraph_node *y = e->callee;
/* Only look at the master nodes and skip external nodes. */
y = cgraph_master_clone (y);
+
+ /* Check for immediate recursive functions. See the
+ FIXME above. */
+ if (w == y)
+ {
+ pure_const_state = IPA_NEITHER;
+ break;
+ }
if (y)
{
funct_state y_l = get_function_state (y);
diff --git a/gcc/ipa-utils.c b/gcc/ipa-utils.c
index 76f0f60..cd70745 100644
--- a/gcc/ipa-utils.c
+++ b/gcc/ipa-utils.c
@@ -78,7 +78,7 @@ struct searchc_env {
has been customized for cgraph_nodes. The env parameter is because
it is recursive and there are no nested functions here. This
function should only be called from itself or
- cgraph_reduced_inorder. ENV is a stack env and would be
+ ipa_utils_reduced_inorder. ENV is a stack env and would be
unnecessary if C had nested functions. V is the node to start
searching from. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e23320b..c1886f9 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,17 @@
+2008-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ Backport:
+ 2008-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.dg/pr33826.c: Require nonpic.
+
+ 2007-11-08 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ PR middle-end/33826
+ * gcc.dg/pr33826.c: New.
+ * gcc.dg/tree-ssa/20030714-1.c: Removed two tests that depend on
+ recursive functions being marked pure or const.
+
2008-01-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* gcc.dg/vect/vect-ifcvt-9.c: Use inline.
diff --git a/gcc/testsuite/gcc.dg/pr33826.c b/gcc/testsuite/gcc.dg/pr33826.c
new file mode 100644
index 0000000..3e08b14
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr33826.c
@@ -0,0 +1,41 @@
+/* Regression test for PR middle-end/33826 */
+/* Verify that recursive functions cannot be pure or const. */
+
+/* { dg-do compile } */
+/* { dg-require-effective-target nonpic } */
+/* { dg-options "-O1 -fdump-ipa-pure-const" } */
+
+int recurese1 (int i)
+{
+ return recurse1 (i+1);
+}
+
+int recurse2a (int i)
+{
+ return recurse2b (i+1);
+}
+
+int recurse2b (int i)
+{
+ return recurse2a (i+1);
+}
+
+int norecurse1a (int i)
+{
+ return norecurse1b (i+1);
+}
+
+int norecurse1b (int i)
+{
+ return i+1;
+}
+
+/* { dg-final { scan-ipa-dump "found to be const: norecurse1a" "pure-const" } } */
+/* { dg-final { scan-ipa-dump "found to be const: norecurse1b" "pure-const" } } */
+/* { dg-final { scan-ipa-dump-not "found to be pure: recurse1" "pure-const" } } */
+/* { dg-final { scan-ipa-dump-not "found to be pure: recurse2a" "pure-const" } } */
+/* { dg-final { scan-ipa-dump-not "found to be pure: recurse2b" "pure-const" } } */
+/* { dg-final { scan-ipa-dump-not "found to be const: recurse1" "pure-const" } } */
+/* { dg-final { scan-ipa-dump-not "found to be const: recurse2a" "pure-const" } } */
+/* { dg-final { scan-ipa-dump-not "found to be const: recurse2b" "pure-const" } } */
+/* { dg-final { cleanup-ipa-dump "pure-const" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/20030714-1.c b/gcc/testsuite/gcc.dg/tree-ssa/20030714-1.c
index 34fb266..a48cfdb 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/20030714-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/20030714-1.c
@@ -34,13 +34,6 @@ find_base_value (src)
}
-/* There should be four IF conditionals. */
-/* { dg-final { scan-tree-dump-times "if " 4 "dom3"} } */
-
/* There should be no casts to short unsigned int. */
/* { dg-final { scan-tree-dump-times "\\(short unsigned int\\)" 0 "dom3"} } */
-/* There should be two loads of ->code. */
-/* { dg-final { scan-tree-dump-times "->code" 2 "dom3"} } */
-
-/* { dg-final { cleanup-tree-dump "dom3" } } */
--
1.5.4
From 7b845859ecd12bc91c6675af9b7538e7ce8312fc Mon Sep 17 00:00:00 2001
From: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 28 Jan 2008 16:27:17 +0000
Subject: PR c++/27177
* class.c (build_base_path): Fix previous change.
PR c++/27177
* class.c (build_base_path): Don't mess with virtual access if
skip_evaluation.
* call.c (standard_conversion): Don't check whether source type
is complete.
PR c++/33959
* pt.c (tsubst_aggr_type): Make sure our context is complete.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@131907 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 85e439b..0dd212a 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,17 @@
+2008-01-27 Jason Merrill <jason@redhat.com>
+
+ PR c++/27177
+ * class.c (build_base_path): Fix previous change.
+
+ PR c++/27177
+ * class.c (build_base_path): Don't mess with virtual access if
+ skip_evaluation.
+ * call.c (standard_conversion): Don't check whether source type
+ is complete.
+
+ PR c++/33959
+ * pt.c (tsubst_aggr_type): Make sure our context is complete.
+
2007-10-26 Jakub Jelinek <jakub@redhat.com>
PR c++/33744
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index b9941bc..508982d 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -714,19 +714,7 @@ standard_conversion (tree to, tree from, tree expr, bool c_cast_p,
that necessitates this conversion is ill-formed.
Therefore, we use DERIVED_FROM_P, and do not check
access or uniqueness. */
- && DERIVED_FROM_P (TREE_TYPE (to), TREE_TYPE (from))
- /* If FROM is not yet complete, then we must be parsing
- the body of a class. We know what's derived from
- what, but we can't actually perform a
- derived-to-base conversion. For example, in:
-
- struct D : public B {
- static const int i = sizeof((B*)(D*)0);
- };
-
- the D*-to-B* conversion is a reinterpret_cast, not a
- static_cast. */
- && COMPLETE_TYPE_P (TREE_TYPE (from)))
+ && DERIVED_FROM_P (TREE_TYPE (to), TREE_TYPE (from)))
{
from =
cp_build_qualified_type (TREE_TYPE (to),
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index 5249c8b..9d7dd88 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -294,6 +294,11 @@ build_base_path (enum tree_code code,
/* Do we need to look in the vtable for the real offset? */
virtual_access = (v_binfo && fixed_type_p <= 0);
+ /* Don't bother with the calculations inside sizeof; they'll ICE if the
+ source type is incomplete and the pointer value doesn't matter. */
+ if (skip_evaluation)
+ return build_nop (build_pointer_type (target_type), expr);
+
/* Do we need to check for a null pointer? */
if (want_pointer && !nonnull)
{
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 2c91eb0..e3d5d05 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -6164,8 +6164,14 @@ tsubst_aggr_type (tree t,
up. */
context = TYPE_CONTEXT (t);
if (context)
- context = tsubst_aggr_type (context, args, complain,
- in_decl, /*entering_scope=*/1);
+ {
+ context = tsubst_aggr_type (context, args, complain,
+ in_decl, /*entering_scope=*/1);
+ /* If context is a nested class inside a class template,
+ it may still need to be instantiated (c++/33959). */
+ if (TYPE_P (context))
+ complete_type (context);
+ }
/* Then, figure out what arguments are appropriate for the
type we are trying to find. For example, given:
--
1.5.4
From 94258b93fa8cd3a49cb8539f84ca9f8b90c25fdc Mon Sep 17 00:00:00 2001
From: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 29 Jan 2008 05:52:20 +0000
Subject: PR c++/35007
* class.c (build_base_path): Fix !want_pointer case.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@131933 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 0dd212a..5c8c2a6 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2008-01-28 Jason Merrill <jason@redhat.com>
+
+ PR c++/35007
+ * class.c (build_base_path): Fix !want_pointer case.
+
2008-01-27 Jason Merrill <jason@redhat.com>
PR c++/27177
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index 9d7dd88..6cb040d 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -297,7 +297,12 @@ build_base_path (enum tree_code code,
/* Don't bother with the calculations inside sizeof; they'll ICE if the
source type is incomplete and the pointer value doesn't matter. */
if (skip_evaluation)
- return build_nop (build_pointer_type (target_type), expr);
+ {
+ expr = build_nop (build_pointer_type (target_type), expr);
+ if (!want_pointer)
+ expr = build_indirect_ref (expr, NULL);
+ return expr;
+ }
/* Do we need to check for a null pointer? */
if (want_pointer && !nonnull)
--
1.5.4
From 75d8c2c88b9866ea72fe2f9b2ef1d257f4cac32c Mon Sep 17 00:00:00 2001
From: krebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 31 Jan 2008 12:15:50 +0000
Subject: 2008-01-31 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
the overflow check to make it easier to read.
(__fixtfdi): Change the type of the ll member in union
long_double to UDItype_x.
2008-01-31 Andreas Krebbel <krebbel1@de.ibm.com>
* gcc.dg/tf_to_di-1.c: New testcase.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@131977 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a5862e1..0cc051b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2008-01-31 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
+ the overflow check to make it easier to read.
+ (__fixtfdi): Change the type of the ll member in union
+ long_double to UDItype_x.
+
2008-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
Backport:
diff --git a/gcc/config/s390/fixdfdi.h b/gcc/config/s390/fixdfdi.h
index fd12243..95a5eef 100644
--- a/gcc/config/s390/fixdfdi.h
+++ b/gcc/config/s390/fixdfdi.h
@@ -78,13 +78,15 @@ __fixunstfdi (long double a1)
if ((EXPD(dl1) == 0x7fff) && !FRACD_ZERO_P (dl1))
return 0x0ULL;
- /* If the upper ll part of the mantissa isn't
- zeroed out after shifting the number would be to large. */
- if (exp >= -HIGH_LL_FRAC_BITS)
- return 0xFFFFFFFFFFFFFFFFULL;
-
+ /* One extra bit is needed for the unit bit which is appended by
+ MANTD_HIGH_LL on the left of the matissa. */
exp += HIGH_LL_FRAC_BITS + 1;
+ /* If the result would still need a left shift it will be to large
+ to be represented. */
+ if (exp > 0)
+ return 0xFFFFFFFFFFFFFFFFULL;
+
l = MANTD_LOW_LL (dl1) >> (HIGH_LL_FRAC_BITS + 1)
| MANTD_HIGH_LL (dl1) << (64 - (HIGH_LL_FRAC_BITS + 1));
@@ -118,7 +120,7 @@ union double_long {
struct {
SItype_x i[4]; /* 32 bit parts: 0 upper ... 3 lowest */
} l;
- DItype_x ll[2]; /* 64 bit parts: 0 upper, 1 lower */
+ UDItype_x ll[2]; /* 64 bit parts: 0 upper, 1 lower */
};
DItype_x __fixtfdi (long double a1);
@@ -150,17 +152,21 @@ __fixtfdi (long double a1)
if ((EXPD(dl1) == 0x7fff) && !FRACD_ZERO_P (dl1))
return 0x8000000000000000ULL;
- /* If the upper ll part of the mantissa isn't
- zeroed out after shifting the number would be to large. */
- if (exp >= -HIGH_LL_FRAC_BITS)
+ /* One extra bit is needed for the unit bit which is appended by
+ MANTD_HIGH_LL on the left of the matissa. */
+ exp += HIGH_LL_FRAC_BITS + 1;
+
+ /* If the result would still need a left shift it will be to large
+ to be represented. Compared to the unsigned variant we have to
+ take care that there is still space for the sign bit to be
+ applied. So we can only go on if there is a right-shift by one
+ or more. */
+ if (exp >= 0)
{
- l = (long long)1 << 63; /* long int min */
+ l = (long long)1 << 63; /* long long int min */
return SIGND (dl1) ? l : l - 1;
}
- /* The extra bit is needed for the sign bit. */
- exp += HIGH_LL_FRAC_BITS + 1;
-
l = MANTD_LOW_LL (dl1) >> (HIGH_LL_FRAC_BITS + 1)
| MANTD_HIGH_LL (dl1) << (64 - (HIGH_LL_FRAC_BITS + 1));
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c1886f9..b00692a 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2008-01-31 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * gcc.dg/tf_to_di-1.c: New testcase.
+
2008-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
Backport:
diff --git a/gcc/testsuite/gcc.dg/tf_to_di-1.c b/gcc/testsuite/gcc.dg/tf_to_di-1.c
new file mode 100644
index 0000000..f4f478a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tf_to_di-1.c
@@ -0,0 +1,47 @@
+/* { dg-do run { target s390*-*-* } } */
+/* { dg-options "-O0 -mlong-double-128" } */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+void
+check_ll (long double ld, long long ll)
+{
+ if ((long long)ld != ll)
+ {
+ printf ("ld: %Lf expect: %lld result: %lld\n",
+ ld, ll, (long long)ld);
+ abort ();
+ }
+}
+
+void
+check_ull (long double ld, unsigned long long ull)
+{
+ if ((unsigned long long)ld != ull)
+ {
+ printf ("ld: %Lf expect: %llu result: %llu\n",
+ ld, ull, (unsigned long long)ld);
+ abort ();
+ }
+}
+
+int
+main ()
+{
+ const long long ll_max = (long long)((1ULL << 63) - 1);
+ const long long ll_min = -ll_max - 1;
+
+ check_ll (206.23253, 206LL);
+ check_ull (206.23253, 206ULL);
+ check_ll ((long double)ll_max, ll_max);
+ check_ull ((long double)ll_max, ll_max);
+ check_ll ((long double)ll_min, ll_min);
+ check_ll (0.0, 0);
+ check_ull (0.0, 0);
+ check_ll (-1.0, -1);
+ check_ll ((long double)0xffffffffffffffffULL, ll_max);
+ check_ull ((long double)0xffffffffffffffffULL, 0xffffffffffffffffULL);
+
+ return 0;
+}
--
1.5.4
From 6eb3f49bc2115186c470ea955dfa925571fc3552 Mon Sep 17 00:00:00 2001
From: danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 1 Feb 2008 00:09:28 +0000
Subject: * compile: Make executable.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@131990 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/compile b/compile
old mode 100644
new mode 100755
--
1.5.4
From f7b40843eb58cf2c042c09b9ab2deab927ea5248 Mon Sep 17 00:00:00 2001
From: rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 1 Feb 2008 18:58:21 +0000
Subject: PR c/34993
* tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
for unbounded arrays.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@132049 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0cc051b..ead841e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2008-01-31 Richard Henderson <rth@redhat.com>
+
+ PR c/34993
+ * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
+ for unbounded arrays.
+
2008-01-31 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr34993.c b/gcc/testsuite/gcc.c-torture/compile/pr34993.c
new file mode 100644
index 0000000..ced4d56
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr34993.c
@@ -0,0 +1,5 @@
+/* PR c/34993 */
+
+/* { dg-do compile } */
+
+typedef int x[] __attribute((may_alias));
diff --git a/gcc/tree.c b/gcc/tree.c
index e537e9c..6541344 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -3288,8 +3288,9 @@ build_type_attribute_qual_variant (tree ttype, tree attribute, int quals)
hashcode = type_hash_list (TYPE_ARG_TYPES (ntype), hashcode);
break;
case ARRAY_TYPE:
- hashcode = iterative_hash_object (TYPE_HASH (TYPE_DOMAIN (ntype)),
- hashcode);
+ if (TYPE_DOMAIN (ntype))
+ hashcode = iterative_hash_object (TYPE_HASH (TYPE_DOMAIN (ntype)),
+ hashcode);
break;
case INTEGER_TYPE:
hashcode = iterative_hash_object
--
1.5.4
From 7ffa00e0ad3ebd2be7a836adc198a2fb22fa43eb Mon Sep 17 00:00:00 2001
From: ghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 2 Feb 2008 02:01:46 +0000
Subject: Backport:
2007-08-02 Nathan Froyd <froydnj@codesourcery.com>
PR middle-end/25445
* varasm.c (default_binds_local_p_1): Consult flag_whole_program
if we are compiling with -fPIC.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@132061 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ead841e..8a93fbd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2008-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ Backport:
+ 2007-08-02 Nathan Froyd <froydnj@codesourcery.com>
+
+ PR middle-end/25445
+ * varasm.c (default_binds_local_p_1): Consult flag_whole_program
+ if we are compiling with -fPIC.
+
2008-01-31 Richard Henderson <rth@redhat.com>
PR c/34993
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 3e317e5..007ae85 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -5662,9 +5662,10 @@ default_binds_local_p_1 (tree exp, int shlib)
else if (DECL_VISIBILITY (exp) != VISIBILITY_DEFAULT)
local_p = true;
/* If PIC, then assume that any global name can be overridden by
- symbols resolved from other modules. */
+ symbols resolved from other modules, unless we are compiling with
+ -fwhole-program, which assumes that names are local. */
else if (shlib)
- local_p = false;
+ local_p = flag_whole_program;
/* Uninitialized COMMON variable may be unified with symbols
resolved from other modules. */
else if (DECL_COMMON (exp)
--
1.5.4
From 1cd204403a5a6a5b90cc9fc956fe6eeff48b3eaf Mon Sep 17 00:00:00 2001
From: rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 4 Feb 2008 22:34:21 +0000
Subject: 2008-02-04 Richard Guenther <rguenther@suse.de>
PR middle-end/33631
* expr.c (count_type_elements): Give for unions instead of
guessing.
* gcc.c-torture/execute/pr33631.c: New testcase.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@132101 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8a93fbd..1585f4c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2008-02-04 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/33631
+ * expr.c (count_type_elements): Give for unions instead of
+ guessing.
+
2008-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
Backport:
diff --git a/gcc/expr.c b/gcc/expr.c
index c9e2c95..a32cadd 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -4614,14 +4614,7 @@ count_type_elements (tree type, bool allow_flexarr)
case UNION_TYPE:
case QUAL_UNION_TYPE:
- {
- /* Ho hum. How in the world do we guess here? Clearly it isn't
- right to count the fields. Guess based on the number of words. */
- HOST_WIDE_INT n = int_size_in_bytes (type);
- if (n < 0)
- return -1;
- return n / UNITS_PER_WORD;
- }
+ return -1;
case COMPLEX_TYPE:
return 2;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b00692a..4070878 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2008-02-04 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/33631
+ * gcc.c-torture/execute/pr33631.c: New testcase.
+
2008-01-31 Andreas Krebbel <krebbel1@de.ibm.com>
* gcc.dg/tf_to_di-1.c: New testcase.
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr33631.c b/gcc/testsuite/gcc.c-torture/execute/pr33631.c
new file mode 100644
index 0000000..840fd0d
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr33631.c
@@ -0,0 +1,14 @@
+typedef union
+{
+ int __lock;
+} pthread_mutex_t;
+
+extern void abort (void);
+
+int main()
+{
+ struct { int c; pthread_mutex_t m; } r = { .m = 0 };
+ if (r.c != 0)
+ abort ();
+ return 0;
+}
--
1.5.4
From 2950bd0a1521f3d9482671f1eb9d2e1ebcfca96f Mon Sep 17 00:00:00 2001
From: danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 9 Feb 2008 00:37:00 +0000
Subject: PR middle-end/34627
combine.c (simplify_if_then_else): Make sure the comparison is
against const0_rtx when simplifying to (abs x) or (neg (abs X)).
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@132195 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1585f4c..da1c1cc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2008-02-08 Steven Bosscher <stevenb.gcc@gmail.com>
+
+ PR middle-end/34627
+ combine.c (simplify_if_then_else): Make sure the comparison is
+ against const0_rtx when simplifying to (abs x) or (neg (abs X)).
+
2008-02-04 Richard Guenther <rguenther@suse.de>
PR middle-end/33631
diff --git a/gcc/combine.c b/gcc/combine.c
index 8749944..7a73265 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -5067,9 +5067,10 @@ simplify_if_then_else (rtx x)
/* Look for cases where we have (abs x) or (neg (abs X)). */
if (GET_MODE_CLASS (mode) == MODE_INT
+ && comparison_p
+ && XEXP (cond, 1) == const0_rtx
&& GET_CODE (false_rtx) == NEG
&& rtx_equal_p (true_rtx, XEXP (false_rtx, 0))
- && comparison_p
&& rtx_equal_p (true_rtx, XEXP (cond, 0))
&& ! side_effects_p (true_rtx))
switch (true_code)
--
1.5.4
From f0e7bb94fc97c9725b5633edbe6fa1570fd62f5a Mon Sep 17 00:00:00 2001
From: danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 9 Feb 2008 14:54:30 +0000
Subject: Add missing '*' to log entry.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@132202 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index da1c1cc..b5d8c26 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,7 +1,7 @@
2008-02-08 Steven Bosscher <stevenb.gcc@gmail.com>
PR middle-end/34627
- combine.c (simplify_if_then_else): Make sure the comparison is
+ * combine.c (simplify_if_then_else): Make sure the comparison is
against const0_rtx when simplifying to (abs x) or (neg (abs X)).
2008-02-04 Richard Guenther <rguenther@suse.de>
--
1.5.4
From 19ce4037cb4fabfcff0b2cb4e056d3f127c3a5e6 Mon Sep 17 00:00:00 2001
From: danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 9 Feb 2008 20:46:04 +0000
Subject: PR middle_end/34150
* pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
pic_label_operand source. Similarly, add a REG_LABEL note and
update LABEL_NUSES during and after reload.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@132205 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b5d8c26..39744fe 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2008-02-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR middle_end/34150
+ * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
+ pic_label_operand source. Similarly, add a REG_LABEL note and
+ update LABEL_NUSES during and after reload.
+
2008-02-08 Steven Bosscher <stevenb.gcc@gmail.com>
PR middle-end/34627
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index f31f344..2602c94 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -607,6 +607,8 @@ legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg)
/* Labels need special handling. */
if (pic_label_operand (orig, mode))
{
+ rtx insn;
+
/* We do not want to go through the movXX expanders here since that
would create recursion.
@@ -617,7 +619,24 @@ legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg)
So instead we just emit the raw set, which avoids the movXX
expanders completely. */
mark_reg_pointer (reg, BITS_PER_UNIT);
- emit_insn (gen_rtx_SET (VOIDmode, reg, orig));
+ insn = emit_insn (gen_rtx_SET (VOIDmode, reg, orig));
+
+ /* Put a REG_EQUAL note on this insn, so that it can be optimized. */
+ REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, orig, REG_NOTES (insn));
+
+ /* During and after reload, we need to generate a REG_LABEL note and
+ update LABEL_NUSES because this is not done automatically. */
+ if (reload_in_progress || reload_completed)
+ {
+ /* Extract LABEL_REF. */
+ if (GET_CODE (orig) == CONST)
+ orig = XEXP (XEXP (orig, 0), 0);
+ /* Extract CODE_LABEL. */
+ orig = XEXP (orig, 0);
+ REG_NOTES (insn) = gen_rtx_INSN_LIST (REG_LABEL, orig,
+ REG_NOTES (insn));
+ LABEL_NUSES (orig)++;
+ }
current_function_uses_pic_offset_table = 1;
return reg;
}
--
1.5.4
From 97a656a454f57845d319782b52df830df68d47b2 Mon Sep 17 00:00:00 2001
From: ghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun, 10 Feb 2008 05:42:55 +0000
Subject: PR objc++/27232
Backport:
2006-09-22 Mike Stump <mrs@apple.com>
* obj-c++.dg/encode-3.mm: Fix for 64-bit support.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@132212 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4070878..6dc0c36 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2008-02-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR objc++/27232
+
+ Backport:
+ 2006-09-22 Mike Stump <mrs@apple.com>
+
+ * obj-c++.dg/encode-3.mm: Fix for 64-bit support.
+
2008-02-04 Richard Guenther <rguenther@suse.de>
PR middle-end/33631
diff --git a/gcc/testsuite/obj-c++.dg/encode-3.mm b/gcc/testsuite/obj-c++.dg/encode-3.mm
index c67a972..842a0bf 100644
--- a/gcc/testsuite/obj-c++.dg/encode-3.mm
+++ b/gcc/testsuite/obj-c++.dg/encode-3.mm
@@ -14,16 +14,22 @@ Vec<double> dd;
const char *enc = @encode(Vec<float>);
const char *enc2 = @encode(Vec<double>);
+#ifdef __LP64__
+#define L "q"
+#else
+#define L "l"
+#endif
+
int main(void) {
- char *encode = @encode(long);
+ const char *encode = @encode(long);
- if (strcmp (encode, "l"))
+ if (strcmp (encode, L))
abort();
- if (strcmp (enc, "{Vec<float>=fflq}"))
+ if (strcmp (enc, "{Vec<float>=ff" L "q}"))
abort();
- if (strcmp (enc2, "{Vec<double>=ddlq}"))
+ if (strcmp (enc2, "{Vec<double>=dd" L "q}"))
abort();
return 0;
--
1.5.4
From f29a73a07c2206eb3a420d7e73eee20fb92d7e28 Mon Sep 17 00:00:00 2001
From: davek <davek@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun, 10 Feb 2008 22:04:12 +0000
Subject: =?utf-8?q?2008-02-10=20=20Ismail=20D=C3=B6nmez=20=20<ismail@pardus.org.tr>?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
* inclhack.def: (bsd_stdio_attrs_conflict, freebsd_gcc3_breakage,
freebsd_gcc4_breakage, hpux11_abs, netbsd_extra_semicolon): Add
quotes around mach entries.
* fixincl.x: Regenerate with latest autogen (5.9.4), updating license
to GPLv3.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@132221 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/fixincludes/ChangeLog b/fixincludes/ChangeLog
index a64cf1c..3f0819d 100644
--- a/fixincludes/ChangeLog
+++ b/fixincludes/ChangeLog
@@ -1,3 +1,11 @@
+2008-02-04 Ismail D<F6>nmez <ismail@pardus.org.tr>
+
+ * inclhack.def: (bsd_stdio_attrs_conflict, freebsd_gcc3_breakage,
+ freebsd_gcc4_breakage, hpux11_abs, netbsd_extra_semicolon): Add
+ quotes around mach entries.
+ * fixincl.x: Regenerate with latest autogen (5.9.4), updating license
+ to GPLv3.
+
2007-07-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
PR target/32641
diff --git a/fixincludes/fixincl.x b/fixincludes/fixincl.x
index 5eaad7e..0fd0ebe 100644
--- a/fixincludes/fixincl.x
+++ b/fixincludes/fixincl.x
@@ -2,11 +2,11 @@
*
* DO NOT EDIT THIS FILE (fixincl.x)
*
- * It has been AutoGen-ed Thursday July 5, 2007 at 01:42:35 PM EDT
+ * It has been AutoGen-ed Sunday February 10, 2008 at 01:23:58 PM GMTST
* From the definitions inclhack.def
* and the template file fixincl
*/
-/* DO NOT CVS-MERGE THIS FILE, EITHER Thu Jul 5 13:42:35 EDT 2007
+/* DO NOT CVS-MERGE THIS FILE, EITHER Sun Feb 10 13:23:58 GMTST 2008
*
* You must regenerate it. Use the ./genfixes script.
*
@@ -22,23 +22,18 @@
* inclhack copyright (c) 1998, 1999, 2000, 2001
* The Free Software Foundation, Inc.
*
- * inclhack is free software.
+ * inclhack 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 of the License, or
+ * (at your option) any later version.
*
- * You may redistribute it and/or modify it under the terms of the
- * GNU General Public License, as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * inclhack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * inclhack 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 inclhack. If not, write to:
- * The Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor
- * Boston, MA 02110-1301, USA.
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* * * * * * * * * * * * * * * * * * * * * * * * * *
diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
index fec214e..c72c787 100644
--- a/fixincludes/inclhack.def
+++ b/fixincludes/inclhack.def
@@ -1050,8 +1050,8 @@ fix = {
*/
fix = {
hackname = bsd_stdio_attrs_conflict;
- mach = *-*-*bsd*;
- mach = *-*-*darwin*;
+ mach = "*-*-*bsd*";
+ mach = "*-*-*darwin*";
files = stdio.h;
select = "^#define[ \t]*vfscanf[ \t]*__svfscanf[ \t]*$";
c_fix = format;
@@ -1242,7 +1242,7 @@ fix = {
*/
fix = {
hackname = freebsd_gcc3_breakage;
- mach = *-*-freebsd*;
+ mach = "*-*-freebsd*";
files = sys/cdefs.h;
select = '^#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7$';
bypass = '__GNUC__[ \t]*([>=]=[ \t]*[3-9]|>[ \t]*2)';
@@ -1259,7 +1259,7 @@ fix = {
*/
fix = {
hackname = freebsd_gcc4_breakage;
- mach = *-*-freebsd*;
+ mach = "*-*-freebsd*";
files = sys/cdefs.h;
select = '^#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7 \|\| __GNUC__ == 3$';
c_fix = format;
@@ -1534,7 +1534,7 @@ fix = {
*/
fix = {
hackname = hpux11_abs;
- mach = ia64-hp-hpux11*;
+ mach = "ia64-hp-hpux11*";
files = stdlib.h;
select = "ifndef _MATH_INCLUDED";
c_fix = format;
@@ -2450,7 +2450,7 @@ fix = {
*/
fix = {
hackname = netbsd_extra_semicolon;
- mach = *-*-netbsd*;
+ mach = "*-*-netbsd*";
files = sys/cdefs.h;
select = "#define[ \t]*__END_DECLS[ \t]*};";
--
1.5.4
From 7bb23a754d399adac113b3d5366aab87124c95fa Mon Sep 17 00:00:00 2001
From: ghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 12 Feb 2008 21:44:15 +0000
Subject: PR objc++/34193
* obj-c++.dg/gnu-runtime-2.mm: Fix signature of function main().
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@132273 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 6dc0c36..f2a2069 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2008-02-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR objc++/34193
+ * obj-c++.dg/gnu-runtime-2.mm: Fix signature of function main().
+
2008-02-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
PR objc++/27232
diff --git a/gcc/testsuite/obj-c++.dg/gnu-runtime-2.mm b/gcc/testsuite/obj-c++.dg/gnu-runtime-2.mm
index 2ead288..e6a1d18 100644
--- a/gcc/testsuite/obj-c++.dg/gnu-runtime-2.mm
+++ b/gcc/testsuite/obj-c++.dg/gnu-runtime-2.mm
@@ -22,7 +22,7 @@
-(unsigned int) length { return len; }
@end
-int main(int argc, void **args)
+int main(int argc, const char **args)
{
if (strcmp ([@"this is a string" cString], "this is a string"))
abort ();
--
1.5.4
From 2d14289b932b58461b6f681a7da5cd790ba62f74 Mon Sep 17 00:00:00 2001
From: ghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 12 Feb 2008 21:45:48 +0000
Subject: * obj-c++.dg/bitfield-1.mm: Expect failures.
* obj-c++.dg/bitfield-4.mm: Likewise.
* obj-c++.dg/cxx-ivars-2.mm: Likewise.
* obj-c++.dg/encode-8.mm: Likewise.
* obj-c++.dg/isa-field-1.mm: Likewise.
* obj-c++.dg/layout-1.mm: Likewise.
* obj-c++.dg/lookup-2.mm: Likewise.
* obj-c++.dg/try-catch-2.mm: Likewise.
* obj-c++.dg/try-catch-9.mm: Likewise.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@132274 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f2a2069..e3092fe 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,17 @@
2008-02-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+ * obj-c++.dg/bitfield-1.mm: Expect failures.
+ * obj-c++.dg/bitfield-4.mm: Likewise.
+ * obj-c++.dg/cxx-ivars-2.mm: Likewise.
+ * obj-c++.dg/encode-8.mm: Likewise.
+ * obj-c++.dg/isa-field-1.mm: Likewise.
+ * obj-c++.dg/layout-1.mm: Likewise.
+ * obj-c++.dg/lookup-2.mm: Likewise.
+ * obj-c++.dg/try-catch-2.mm: Likewise.
+ * obj-c++.dg/try-catch-9.mm: Likewise.
+
+2008-02-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
PR objc++/34193
* obj-c++.dg/gnu-runtime-2.mm: Fix signature of function main().
diff --git a/gcc/testsuite/obj-c++.dg/bitfield-1.mm b/gcc/testsuite/obj-c++.dg/bitfield-1.mm
index c792025..8633b85 100644
--- a/gcc/testsuite/obj-c++.dg/bitfield-1.mm
+++ b/gcc/testsuite/obj-c++.dg/bitfield-1.mm
@@ -111,3 +111,13 @@ int main(void)
return 0;
}
+
+/* { dg-bogus "included from <built-in>" "PR23610" { xfail lp64 } 0 } */
+/* { dg-bogus "padding struct to align" "PR23610" { xfail lp64 } 0 } */
+
+/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } 40 } */
+/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } 43 } */
+/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } 57 } */
+/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } 60 } */
+/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } 75 } */
+/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } 76 } */
diff --git a/gcc/testsuite/obj-c++.dg/bitfield-4.mm b/gcc/testsuite/obj-c++.dg/bitfield-4.mm
index d7617bf..ef336f4 100644
--- a/gcc/testsuite/obj-c++.dg/bitfield-4.mm
+++ b/gcc/testsuite/obj-c++.dg/bitfield-4.mm
@@ -48,3 +48,9 @@ int main(void)
return 0;
}
+
+/* { dg-bogus "included from <built-in>" "PR23610" { xfail lp64 } 0 } */
+/* { dg-bogus "padding struct to align" "PR23610" { xfail lp64 } 0 } */
+
+/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } 28 } */
+/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } 34 } */
diff --git a/gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm b/gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm
index bf9ca6a..3a6df79 100644
--- a/gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm
+++ b/gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm
@@ -1,7 +1,7 @@
// Check if the '- .cxx_construct' and '-.cxx_destruct' methods get called
// and if they perform their desired function.
-// { dg-do run }
+// { dg-do run { xfail { "*-*-*" } } } PR27247/PR23681
// { dg-options "-fobjc-call-cxx-cdtors" }
#include <objc/Object.h>
diff --git a/gcc/testsuite/obj-c++.dg/encode-8.mm b/gcc/testsuite/obj-c++.dg/encode-8.mm
index 5f61cb8..bfd3475 100644
--- a/gcc/testsuite/obj-c++.dg/encode-8.mm
+++ b/gcc/testsuite/obj-c++.dg/encode-8.mm
@@ -3,7 +3,7 @@
should be encoded as '*'). */
/* Contributed by Ziemowit Laski <zlaski@apple.com>. */
/* { dg-options "-lobjc" } */
-/* { dg-do run } */
+/* { dg-do run { xfail { "*-*-*" } } } PR27249 */
#include <string.h>
#include <stdlib.h>
diff --git a/gcc/testsuite/obj-c++.dg/isa-field-1.mm b/gcc/testsuite/obj-c++.dg/isa-field-1.mm
index ce1d9ff..f6d3e6a 100644
--- a/gcc/testsuite/obj-c++.dg/isa-field-1.mm
+++ b/gcc/testsuite/obj-c++.dg/isa-field-1.mm
@@ -1,5 +1,6 @@
/* Ensure there are no bizarre difficulties with accessing the 'isa' field of objects. */
/* { dg-do compile } */
+/* { dg-xfail-if "PR23613" { "*-*-*" } { "*" } { "" } } */
#include <objc/Object.h>
diff --git a/gcc/testsuite/obj-c++.dg/layout-1.mm b/gcc/testsuite/obj-c++.dg/layout-1.mm
index fe8ab3d..6972d12 100644
--- a/gcc/testsuite/obj-c++.dg/layout-1.mm
+++ b/gcc/testsuite/obj-c++.dg/layout-1.mm
@@ -13,3 +13,5 @@
- (id) foo;
@end
+/* { dg-bogus "included from <built-in>" "PR23610" { xfail lp64 } 0 } */
+/* { dg-bogus "padding struct to align" "PR23610" { xfail lp64 } 0 } */
diff --git a/gcc/testsuite/obj-c++.dg/lookup-2.mm b/gcc/testsuite/obj-c++.dg/lookup-2.mm
index f694ec9..a14860a 100644
--- a/gcc/testsuite/obj-c++.dg/lookup-2.mm
+++ b/gcc/testsuite/obj-c++.dg/lookup-2.mm
@@ -1,4 +1,5 @@
/* { dg-do run } */
+/* { dg-xfail-if "PR23614" { "*-*-*" } { "*" } { "" } } */
#include <objc/Object.h>
#include <stdlib.h>
diff --git a/gcc/testsuite/obj-c++.dg/try-catch-2.mm b/gcc/testsuite/obj-c++.dg/try-catch-2.mm
index 9352260..7809b89 100644
--- a/gcc/testsuite/obj-c++.dg/try-catch-2.mm
+++ b/gcc/testsuite/obj-c++.dg/try-catch-2.mm
@@ -3,6 +3,7 @@
/* Developed by Ziemowit Laski <zlaski@apple.com>. */
/* { dg-options "-fobjc-exceptions" } */
+/* { dg-xfail-if "PR23616" { "*-*-*" } { "*" } { "" } } */
/* { dg-do run } */
#include <objc/Object.h>
diff --git a/gcc/testsuite/obj-c++.dg/try-catch-9.mm b/gcc/testsuite/obj-c++.dg/try-catch-9.mm
index 18721b4..56bbdd1 100644
--- a/gcc/testsuite/obj-c++.dg/try-catch-9.mm
+++ b/gcc/testsuite/obj-c++.dg/try-catch-9.mm
@@ -3,6 +3,7 @@
/* Developed by Ziemowit Laski <zlaski@apple.com>. */
/* { dg-options "-fobjc-exceptions -O2" } */
+/* { dg-xfail-if "PR23616" { "*-*-*" } { "*" } { "" } } */
/* { dg-do run } */
#include <objc/Object.h>
--
1.5.4
From 2283985471ed778421870e343585d5b3bdb22814 Mon Sep 17 00:00:00 2001
From: ghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 13 Feb 2008 17:04:46 +0000
Subject: Backport:
2005-11-30 Richard Guenther <rguenther@suse.de>
PR tree-optimization/21655
* g++.dg/tree-ssa/pr14814.C: Remove XFAIL.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@132289 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e3092fe..2e831e8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2008-02-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ Backport:
+ 2005-11-30 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/21655
+ * g++.dg/tree-ssa/pr14814.C: Remove XFAIL.
+
2008-02-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* obj-c++.dg/bitfield-1.mm: Expect failures.
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr14814.C b/gcc/testsuite/g++.dg/tree-ssa/pr14814.C
index c793f88..add6e11 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr14814.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr14814.C
@@ -14,7 +14,7 @@ int foo(XX& r) {
if (r.direction().y() < 0.000001) return 0;
return 1; }
-/* { dg-final { scan-tree-dump-times "&this" 0 "forwprop2" { xfail *-*-* } } }*/
+/* { dg-final { scan-tree-dump-times "&this" 0 "forwprop2" } }*/
/* { dg-final { scan-tree-dump-times "&r" 0 "forwprop2" } } */
/* { dg-final { cleanup-tree-dump "forwprop2" } } */
--
1.5.4
From a90bda47957bd9fecb582fd6678ba53fabd28a6c Mon Sep 17 00:00:00 2001
From: amodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 14 Feb 2008 00:17:11 +0000
Subject: PR target/34393
* config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
to a reg.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@132309 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 39744fe..3c7ef54 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2008-02-14 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/34393
+ * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
+ to a reg.
+
2008-02-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR middle_end/34150
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 05c7285..11964dd 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -9545,6 +9545,7 @@
""
"
{
+ operands[1] = force_reg (Pmode, operands[1]);
operands[2] = gen_reg_rtx (Pmode);
operands[3] = gen_frame_mem (Pmode, operands[0]);
operands[4] = gen_frame_mem (Pmode, operands[1]);
--
1.5.4
From a9b6332174c09b0b487c7ef76cbdd45a224d2276 Mon Sep 17 00:00:00 2001
From: ghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 15 Feb 2008 00:22:20 +0000
Subject: * testsuite/27_io/fpos/14320-1.cc: Check for "long long" and
remove XFAIL.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@132330 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index d1c008a..064de49 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,8 @@
+2008-02-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * testsuite/27_io/fpos/14320-1.cc: Check for "long long" and
+ remove XFAIL.
+
2007-04-23 Matthias Klose <doko@debian.org>
Backport from mainline:
diff --git a/libstdc++-v3/testsuite/27_io/fpos/14320-1.cc b/libstdc++-v3/testsuite/27_io/fpos/14320-1.cc
index 85e1d43..1e492d0 100644
--- a/libstdc++-v3/testsuite/27_io/fpos/14320-1.cc
+++ b/libstdc++-v3/testsuite/27_io/fpos/14320-1.cc
@@ -20,7 +20,7 @@
// 27.4.3 fpos
-// { dg-do run { xfail *-*-* } }
+// { dg-do run }
#include <typeinfo>
#include <limits>
@@ -36,6 +36,11 @@ void test01()
typedef istreambuf_iterator<char>::difference_type Distance;
bool found = false;
+ // The C++ standard didn't originally have "long long", however that
+ // type will be in the C++0x standard and testing for it allows
+ // ilp32 targets to pass this test when `Distance' is 64 bits.
+ if (typeid(Distance) == typeid(long long int))
+ found = true;
if (typeid(Distance) == typeid(long int))
found = true;
if (typeid(Distance) == typeid(int))
--
1.5.4
From 94522077f691a55e1339ea237a47c7448d2e4288 Mon Sep 17 00:00:00 2001
From: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 20 Feb 2008 04:47:28 +0000
Subject: PR c++/34950
* pt.c (resolve_overloaded_unification): Set processing_template_decl
while we look for possible bindings.
PR c++/34774
* pt.c (value_dependent_expression_p): Look into DECL_INITIAL
of enumerators, too.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@132469 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 5c8c2a6..e8cd074 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,15 @@
+2008-02-19 Jason Merrill <jason@redhat.com>
+
+ PR c++/34950
+ * pt.c (resolve_overloaded_unification): Set processing_template_decl
+ while we look for possible bindings.
+
+2008-02-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/34774
+ * pt.c (value_dependent_expression_p): Look into DECL_INITIAL
+ of enumerators, too.
+
2008-01-28 Jason Merrill <jason@redhat.com>
PR c++/35007
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index e3d5d05..10517f1 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -9790,6 +9790,7 @@ resolve_overloaded_unification (tree tparms,
if (TREE_CODE (fn) != TEMPLATE_DECL)
continue;
+ ++processing_template_decl;
subargs = get_bindings (fn, DECL_TEMPLATE_RESULT (fn),
expl_subargs, /*check_ret=*/false);
if (subargs)
@@ -9798,6 +9799,7 @@ resolve_overloaded_unification (tree tparms,
good += try_one_overload (tparms, targs, tempargs, parm,
elem, strict, sub_strict, addr_p);
}
+ --processing_template_decl;
}
}
else
@@ -12562,7 +12564,7 @@ value_dependent_expression_p (tree expression)
/* A non-type template parm. */
if (DECL_TEMPLATE_PARM_P (expression))
return true;
- return false;
+ return value_dependent_expression_p (DECL_INITIAL (expression));
case VAR_DECL:
/* A constant with integral or enumeration type and is initialized
--
1.5.4
From 2eb5e5d486e788208664d9a41948a824575cb9ed Mon Sep 17 00:00:00 2001
From: rwild <rwild@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 20 Feb 2008 19:50:39 +0000
Subject: gcc/ada/:
PR documentation/15479
* gnat_ugn.texi: In non-code, avoid space before colon.
(Regular Expressions in gnatfind and gnatxref): Fix indentation.
(Examples of gnatxref Usage): Use @command{vi} instead of
@file{vi}.
(Character Set Control): Do not use @code for UTF-8.
(Validity Checking): Fix typo "NaNs" instead of "NaN's". Do not
use @code for IEEE.
* gnat_rm.texi (Aggregates with static bounds): Fix typo in code
sample.
* gnat_rm.texi, gnat_ugn.texi: Fix typos. Bump copyright years.
git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@132494 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index dad57a4..8fb60d2 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,17 @@
+2008-02-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR documentation/15479
+ * gnat_ugn.texi: In non-code, avoid space before colon.
+ (Regular Expressions in gnatfind and gnatxref): Fix indentation.
+ (Examples of gnatxref Usage): Use @command{vi} instead of
+ @file{vi}.
+ (Character Set Control): Do not use @code for UTF-8.
+ (Validity Checking): Fix typo "NaNs" instead of "NaN's". Do not
+ use @code for IEEE.
+ * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
+ sample.
+ * gnat_rm.texi, gnat_ugn.texi: Fix typos. Bump copyright years.
+
2007-02-20 Eric Botcazou <ebotcazou@adacore.com>
PR ada/30684
diff --git a/gcc/ada/gnat_rm.texi b/gcc/ada/gnat_rm.texi
index 9baa081..73845ed 100644
--- a/gcc/ada/gnat_rm.texi
+++ b/gcc/ada/gnat_rm.texi
@@ -32,7 +32,7 @@
@end direntry
@copying
-Copyright @copyright{} 1995-2004, Free Software Foundation
+Copyright @copyright{} 1995-2004, 2005, 2008 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
@@ -1657,7 +1657,7 @@ region as the function to which they apply.
pragma applies. If more than one function name exists of this name in
the declarative part you must use the @code{Parameter_Types} and
@code{Result_Type} parameters is mandatory to achieve the required
-unique designation. @var{subtype_ mark}s in these parameters must
+unique designation. @var{subtype_mark}s in these parameters must
exactly match the subtypes in the corresponding function specification,
using positional notation to match parameters with subtype marks.
The form with an @code{'Access} attribute can be used to match an
@@ -6750,7 +6750,7 @@ See separate section on source representation.
length. See 2.2(15).
@end cartouche
@noindent
-The maximum line length is 255 characters an the maximum length of a
+The maximum line length is 255 characters and the maximum length of a
lexical element is also 255 characters.
@sp 1
@@ -7854,7 +7854,7 @@ pragma Linker_Options ("-labc" & ASCII.Nul & "-ldef");
causes two separate arguments @code{-labc} and @code{-ldef} to be passed to the
linker. The order of linker options is preserved for a given unit. The final
list of options passed to the linker is in reverse order of the elaboration
-order. For example, linker options fo a body always appear before the options
+order. For example, linker options for a body always appear before the options
from the corresponding package spec.
@sp 1
@@ -14068,7 +14068,7 @@ generate the equivalent of
Cr_Var1 (4) := 11;
for I in Cr_Var2'range loop
- Cr_Var2 (I) := =-1;
+ Cr_Var2 (I) := -1;
end loop;
@end smallexample
diff --git a/gcc/ada/gnat_ugn.texi b/gcc/ada/gnat_ugn.texi
index 4f4e585..68eb567 100644
--- a/gcc/ada/gnat_ugn.texi
+++ b/gcc/ada/gnat_ugn.texi
@@ -111,7 +111,8 @@
@c %**end of header
@copying
-Copyright @copyright{} 1995-2005, Free Software Foundation
+Copyright @copyright{} 1995-2005, 2008 Free Software
+Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
@@ -5190,9 +5191,9 @@ overwriting may occur.
@cindex @option{-gnatVf} (@command{gcc})
In the absence of this switch, validity checking occurs only for discrete
values. If @option{-gnatVf} is specified, then validity checking also applies
-for floating-point values, and NaN's and infinities are considered invalid,
+for floating-point values, and NaNs and infinities are considered invalid,
as well as out of range values for constrained types. Note that this means
-that standard @code{IEEE} infinity mode is not allowed. The exact contexts
+that standard IEEE infinity mode is not allowed. The exact contexts
in which floating-point values are checked depends on the setting of other
options. For example,
@option{^-gnatVif^VALIDITY_CHECKING=(IN_PARAMS,FLOATS)^} or
@@ -6159,7 +6160,7 @@ For full details on the these encoding
methods see @ref{Wide Character Encodings}.
Note that brackets coding is always accepted, even if one of the other
options is specified, so for example @option{-gnatW8} specifies that both
-brackets and @code{UTF-8} encodings will be recognized. The units that are
+brackets and UTF-8 encodings will be recognized. The units that are
with'ed directly or indirectly will be scanned using the specified
representation scheme, and so if one of the non-brackets scheme is
used, it must be used consistently throughout the program. However,
@@ -8787,7 +8788,7 @@ $ gnatmake /SOURCE_SEARCH=@i{[INCLUDE_DIR]}
@item
Using @command{gnatmake} along with the
@option{^-m (minimal recompilation)^/MINIMAL_RECOMPILATION^}
-switch provides a mechanism for avoiding unnecessary rcompilations. Using
+switch provides a mechanism for avoiding unnecessary recompilations. Using
this switch,
you can update the comments/format of your
source files without having to recompile everything. Note, however, that
@@ -11393,7 +11394,7 @@ reserved words currently used in project file syntax are:
@end itemize
@noindent
-Comments in project files have the same syntax as in Ada, two consecutives
+Comments in project files have the same syntax as in Ada, two consecutive
hyphens through the end of the line.
@node Packages
@@ -14049,7 +14050,7 @@ the source path. If you specify directories, no result is produced.
@end table
@noindent
-The switches can be :
+The switches can be:
@table @option
@c !sort!
@item ^-a^/ALL_FILES^
@@ -14418,14 +14419,14 @@ specifies the command used to debug the application
@noindent
As specified in the section about @command{gnatfind}, the pattern can be a
regular expression. Actually, there are to set of regular expressions
-which are recognized by the program :
+which are recognized by the program:
@table @code
@item globbing patterns
These are the most usual regular expression. They are the same that you
generally used in a Unix shell command line, or in a DOS session.
-Here is a more formal grammar :
+Here is a more formal grammar:
@smallexample
@group
@iftex
@@ -14436,7 +14437,7 @@ term ::= elmt -- matches elmt
term ::= elmt elmt -- concatenation (elmt then elmt)
term ::= * -- any string of 0 or more characters
term ::= ? -- matches any character
-term ::= [char @{char@}] -- matches any character listed
+term ::= [char @{char@}] -- matches any character listed
term ::= [char - char] -- matches any character in range
@end group
@end smallexample
@@ -14453,9 +14454,9 @@ reference manual style BNF is as follows
@leftskip=.5cm
@end iftex
@group
-regexp ::= term @{| term@} -- alternation (term or term ...)
+regexp ::= term @{| term@} -- alternation (term or term ...)
-term ::= item @{item@} -- concatenation (item then item)
+term ::= item @{item@} -- concatenation (item then item)
item ::= elmt -- match elmt
item ::= elmt * -- zero or more elmt's
@@ -14476,7 +14477,7 @@ nschar ::= any character except ()[].*+?^^^
@end group
@end smallexample
-Following are a few examples :
+Following are a few examples:
@table @samp
@item abcde|fghi
@@ -14487,7 +14488,7 @@ will match any string like 'abd', 'abcd', 'abccd', 'abcccd', and so on
@item [a-z]+
will match any string which has only lowercase characters in it (and at
-least one character
+least one character.
@end table
@end table
@@ -14498,7 +14499,7 @@ least one character
@subsection General Usage
@noindent
-For the following examples, we will consider the following units :
+For the following examples, we will consider the following units:
@smallexample @c ada
@group
@@ -14594,9 +14595,9 @@ of these.
@subsection Using gnatxref with vi
@code{gnatxref} can generate a tags file output, which can be used
-directly from @file{vi}. Note that the standard version of @file{vi}
+directly from @command{vi}. Note that the standard version of @command{vi}
will not work properly with overloaded symbols. Consider using another
-free implementation of @file{vi}, such as @file{vim}.
+free implementation of @command{vi}, such as @command{vim}.
@smallexample
$ gnatxref -v gnatfind.adb > tags
@@ -14606,7 +14607,7 @@ $ gnatxref -v gnatfind.adb > tags
will generate the tags file for @code{gnatfind} itself (if the sources
are in the search path!).
-From @file{vi}, you can then use the command @samp{:tag @i{entity}}
+From @command{vi}, you can then use the command @samp{:tag @i{entity}}
(replacing @i{entity} by whatever you are looking for), and vi will
display a new file with the corresponding declaration of entity.
@end ifclear
@@ -17880,7 +17881,7 @@ GLIB=...
# The directories for the libraries
# (This macro expands the list of CSC to the list of shared libraries, you
-# could simply use the expanded form :
+# could simply use the expanded form:
# LIB_DIR=aa/lib/libaa.so bb/lib/libbb.so cc/lib/libcc.so
LIB_DIR=$@{foreach dir,$@{CSC_LIST@},$@{dir@}/lib/lib$@{dir@}.so@}
@@ -19051,7 +19052,7 @@ You can pass it as many Ada files as you want. @code{gnathtml} will generate
an html file for every ada file, and a global file called @file{index.htm}.
This file is an index of every identifier defined in the files.
-The available switches are the following ones :
+The available switches are the following ones:
@table @option
@item -83
@@ -19140,7 +19141,7 @@ Operating System via the Internet.
On Unix systems, you may want to modify the first line of the script
@code{gnathtml}, to explicitly tell the Operating system where Perl
-is. The syntax of this line is :
+is. The syntax of this line is:
@smallexample
#!full_path_name_to_perl
@end smallexample
--
1.5.4