OpenSDE Packages Database (without history before r20070)
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�ü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ü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ü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ü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�ü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 © 2000, 2005, 2006 Free Software Foundation, Inc.
+# Copyright © 2000, 2005, 2006, 2007 Free Software Foundation, Inc.
# Dennis Björklund <db@zigo.dhs.org>, 2000, 2001, 2002.
-# Göran Uddeborg <goeran@uddeborg.se>, 2005, 2006.
+# Gö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ö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är initierare"
+msgstr "klamrar runt skalä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ält som avrådes ifrån används"
+msgstr "Varna för en kompilatorfunktion, klass, metod eller fält som bör undvikas används"
#: java/lang.opt:70
msgid "Warn if deprecated empty statements are found"
-msgstr "Varna om föråldrade tomma satser finns"
+msgstr "Varna för tomma satser som bör undvikas finns"
#: java/lang.opt:74
msgid "Warn if .class files are out of date"
-msgstr "Varna om .class-filer är inaktuella"
+msgstr "Varna för .class-filer är inaktuella"
#: java/lang.opt:78
msgid "Warn if modifiers are specified when not necessary"
-msgstr "Varna om modifierare anges när de inte behövs"
+msgstr "Varna för modifierare anges när de inte behö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ö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ör saknade ampersander i fortsatta teckenliteraler"
#: fortran/lang.opt:50
msgid "Warn about implicit conversion"
-msgstr "Varna om implicita konverteringar"
+msgstr "Varna för implicita konverteringar"
#: fortran/lang.opt:54
msgid "Warn about calls with implicit interface"
-msgstr "Varna om anrop med implicit gränssnitt"
+msgstr "Varna för anrop med implicit gränssnitt"
#: fortran/lang.opt:58
msgid "Warn about truncated source lines"
-msgstr "Varna om avhuggna källkodsrader"
+msgstr "Varna för avhuggna kä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änkta\" konstruktioner"
+msgstr "Varna för \"misstänkta\" konstruktioner"
#: fortran/lang.opt:70
msgid "Warn about underflow of numerical constant expressions"
-msgstr "Varna om underspill i numeriska konstantuttryck"
+msgstr "Varna fö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änder alloca eller skapar en vektor med dynamisk storlek"
+msgstr "Varna för en funktion anvä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 överskrider den angivna ramstorleken"
+msgstr "Varna för en enskild funktions ramstorlek ö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ör användning av AltiVec-typen \"vector long ...\" som avrådes från"
+msgstr "Varna för användning av AltiVec-typen \"vector long ...\" som bö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 ändras vid kompilering med en kompilator som följer ABI"
+msgstr "Varna för saker som skulle ändras vid kompilering med en kompilator som fö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ö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 är i den gemensamma delmängden av C och C++"
+msgstr "Varna för C-konstruktioner som inte är i den gemensamma delmängden av C och C++"
#: c.opt:138
msgid "Warn about casts which discard qualifiers"
-msgstr "Varna om typkonvertering som slänger kvalificerare"
+msgstr "Varna för typkonvertering som slänger kvalificerare"
#: c.opt:142
msgid "Warn about subscripts whose type is \"char\""
-msgstr "Varna om index vars typ är \"char\""
+msgstr "Varna för index vars typ ä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öjliga nästade blockkommentarer, och C++-kommentarer som spänner över mer än en fysisk rad"
+msgstr "Varna för möjliga nästade blockkommentarer, och C++-kommentarer som spänner över mer ä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örvirrande typkonverteringar"
+msgstr "Varna för eventuellt fö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ör kompilatorfunktioner bör undvikas"
#: c.opt:170
msgid "Warn about compile-time integer division by zero"
-msgstr "Varna om heltalsdivision med noll vid kompileringstillfället"
+msgstr "Varna för heltalsdivision med noll vid kompileringstillfället"
#: c.opt:174
msgid "Warn about violations of Effective C++ style rules"
-msgstr "Varna om brott mot Effective C++ stilregler"
+msgstr "Varna fö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ö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ängar till printf/scanf/strftime/strfmon"
+msgstr "Varna för anomalier i formatsträ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ör många argument argument till en funktion för dess formatsträng"
+msgstr "Varna för för många argument argument till en funktion för dess formatsträng"
#: c.opt:202
msgid "Warn about format strings that are not literals"
-msgstr "Varna om formatsträngar som inte är literaler"
+msgstr "Varna för formatsträngar som inte är literaler"
#: c.opt:206
msgid "Warn about possible security problems with format functions"
-msgstr "Varna om möjliga säkerhetsproblem med formatfunktioner"
+msgstr "Varna för möjliga sä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 årtal"
+msgstr "Varna för format till strftime som ger 2-siffrigt årtal"
#: c.opt:214
msgid "Warn about zero-length formats"
-msgstr "Varna om format med längden noll"
+msgstr "Varna för format med längden noll"
#: c.opt:221
msgid "Warn about variables which are initialized to themselves"
-msgstr "Varna om variabler som intieras till sig själva"
+msgstr "Varna för variabler som intieras till sig själva"
#: c.opt:228
msgid "Warn about implicit function declarations"
-msgstr "Varna om implicita funktionsdeklarationer"
+msgstr "Varna fö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ån ett heltal med annan storlek"
+msgstr "Varna för typkonverteringar till pekare från ett heltal med annan storlek"
#: c.opt:244
msgid "Warn about invalid uses of the \"offsetof\" macro"
-msgstr "Varna om ogiltiga användningar av makrot \"offsetof\""
+msgstr "Varna för ogiltiga anvä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änds"
+msgstr "Varna för PCH-filer som hittas men inte anvä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ö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ö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ör globala globala funktioner utan tidigare deklaration"
#: c.opt:268
msgid "Warn about missing fields in struct initializers"
-msgstr "Varna om saknade fält i postinitierare"
+msgstr "Varna för saknade fä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ör formatattribut"
+msgstr "Varna för funktioner som kan vara kandidater för formatattribut"
#: c.opt:276
msgid "Warn about user-specified include directories that do not exist"
-msgstr "Varna om användarangivna inkluderingskataloger som inte finns"
+msgstr "Varna för anvä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ö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 är på filnivå"
+msgstr "Varna för \"extern\"-deklaration som inte är på filnivå"
#: 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ö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äver icke-NULL"
+msgstr "Varna om NULL skickas som argument som är markerade att de kräver icke-NULL"
#: c.opt:304
msgid "Warn about non-normalised Unicode strings"
-msgstr "Varna om icke normaliserade Unicodesträngar"
+msgstr "Varna för icke normaliserade Unicodesträ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änds i ett program"
+msgstr "Varna för en typkonvertering i C-stil används i ett program"
#: c.opt:312
msgid "Warn if an old-style parameter definition is used"
-msgstr "Varna om en gammaldags parameterdefinition används"
+msgstr "Varna för en gammaldags parameterdefinition används"
#: c.opt:316
msgid "Warn about overloaded virtual function names"
-msgstr "Varna om överlastade virtuella funktionsnamn"
+msgstr "Varna för överlagrade virtuella funktionsnamn"
#: c.opt:320
msgid "Warn about possibly missing parentheses"
-msgstr "Varna om eventuellt saknade parenteser"
+msgstr "Varna fö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ö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ör missbruk av pragman"
#: c.opt:340
msgid "Warn if inherited methods are unimplemented"
-msgstr "Varna om ärvda metoder är oimplementerade"
+msgstr "Varna för ärvda metoder ä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ö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äljare har multipla metoder"
+msgstr "Varna för en väljare har multipla metoder"
#: c.opt:360
msgid "Warn about possible violations of sequence point rules"
-msgstr "Varna om möjliga brott mot sekvenspunktregler"
+msgstr "Varna för möjliga brott mot sekvenspunktregler"
#: c.opt:364
msgid "Warn about signed-unsigned comparisons"
-msgstr "Varna om jämförelser mellan signed/unsigned"
+msgstr "Varna för jämförelser mellan signed/unsigned"
#: c.opt:368
msgid "Warn when overload promotes from unsigned to signed"
-msgstr "Varna när överlastning anpassar från teckenlöst till med tecken"
+msgstr "Varna när överlagring anpassar från teckenlöst till med tecken"
#: c.opt:372
msgid "Warn about uncasted NULL used as sentinel"
-msgstr "Varna om ej typkonverterad NULL används som vaktpost"
+msgstr "Varna för ej typkonverterad NULL används som vaktpost"
#: c.opt:376
msgid "Warn about unprototyped function declarations"
-msgstr "Varna om funktionsdeklarationer utan prototyp"
+msgstr "Varna fö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ämmer exakt"
+msgstr "Varna för typsignaturer till kandidatmetoder inte stä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ö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äcks som kan påverka betydelsen av programmet"
+msgstr "Varna för trigrafer upptäcks som kan på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ö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änds i ett #if-direktiv"
+msgstr "Varna för ett odefinierat makro används i ett #if-direktiv"
#: c.opt:408
msgid "Warn about unrecognized pragmas"
-msgstr "Varna om okända pragman"
+msgstr "Varna för okä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änds"
+msgstr "Varna för makron definierade i huvudfilen som inte anvä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ådes ifrån, använd -Wextra istället"
+msgstr "Denna flagga bör undvikas, använd -Wextra istället"
#: common.opt:58
msgid "Warn about returning structures, unions or arrays"
-msgstr "Varna om retur av poster, unioner eller vektorer"
+msgstr "Varna för retur av poster, unioner eller vektorer"
#: common.opt:62
msgid "Warn about inappropriate attribute usage"
-msgstr "Varna om felaktig användning av attribut"
+msgstr "Varna för felaktig användning av attribut"
#: common.opt:66
msgid "Warn about pointer casts which increase alignment"
-msgstr "Varna om typkonvertering av pekare som ökar justeringen"
+msgstr "Varna för typkonvertering av pekare som ökar justeringen"
#: common.opt:70
msgid "Warn about uses of __attribute__((deprecated)) declarations"
-msgstr "Varna om användning av __attribute__((deprecated))-deklarationer"
+msgstr "Varna för anvä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 är större än <antal> byte"
+msgstr "Varna för ett objekt är större ä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å grund av icketriviala antaganden."
+msgstr "Varna för slingan inte kan optimeras på grund av icketriviala antaganden."
#: common.opt:102
msgid "Warn about functions which might be candidates for __attribute__((noreturn))"
-msgstr "Varna om funktioner som är möjliga kandidater för __attribute__((noreturn))"
+msgstr "Varna för funktioner som är möjliga kandidater fö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är stacksprängningsskydd inte läggs ut av någon anledning"
+msgstr "Varna när stacköverskrivningsskydd inte läggs ut av nå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ö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äkningshopptabeller, utan standardfall, saknar ett fall"
+msgstr "Varna när hopptabeller för uppräkningstyper inte har standardfall och saknar ett fall"
#: common.opt:134
msgid "Warn about enumerated switches missing a \"default:\" statement"
-msgstr "Varna om uppräkningshopptabeller saknar en \"default:\"-sats"
+msgstr "Varna för uppräkningshopptabeller saknar en \"default:\"-sats"
#: common.opt:138
msgid "Warn about all enumerated switches missing a specific case"
-msgstr "Varna om alla uppräkningshopptabeller som saknar ett specifikt fall"
+msgstr "Varna för alla uppräkningshopptabeller som saknar ett specifikt fall"
#: common.opt:146
msgid "Warn about uninitialized automatic variables"
-msgstr "Varna om oinitierade automatiska variabler"
+msgstr "Varna för oinitierade automatiska variabler"
#: common.opt:150
msgid "Warn about code that will never be executed"
-msgstr "Varna om kod som aldrig kommer köras"
+msgstr "Varna för kod som aldrig kommer kö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öremå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ändbara nollpekarkontroller"
+msgstr "Tag bort onö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ör konvertering av villkorliga hopp till grenlösa motsvarigheter"
+msgstr "Utför konvertering av villkorliga hopp till grenlö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ät och dela orelaterade användningar av en enskild variabel"
+msgstr "Konstruera nät och dela orelaterade användningar av en enskild variabel"
#: common.opt:1038
msgid "Perform whole program optimizations"
-msgstr "Utför optimeringav hela program"
+msgstr "Utför optimering av hela program"
#: common.opt:1042
msgid "Assume signed arithmetic overflow wraps around"
-msgstr "Anta spill vid teckenaritmetik slår runt"
+msgstr "Anta att spill vid teckenaritmetik slå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ändiga typ kan bryta strikta aliasregler"
+msgstr "typstampning till ofullstä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änd med aritmetik"
+msgstr "pekare till funktion använd i aritmetik"
#: c-common.c:2294
#, gcc-internal-format
msgid "pointer to member function used in arithmetic"
-msgstr "pekare till medlemsfunktion använd med aritmetik"
+msgstr "pekare till medlemsfunktion anvä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 överlappand) case-värden"
+msgstr "dubbla (eller överlappande) case-vä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ådes från att ange vektortyper med __attribute__ ((sätt))"
+msgstr "att ange vektortyper med __attribute__ ((sätt)) bö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ågad minnesjustering är inte en potens av 2"
+msgstr "efterfågad minnesjustering ä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ändning av minnesindata utan lvärde i asm-operand %d undanbedes"
+msgstr "användning av minnesindata utan lvärde i asm-operand %d bö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ö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ör undvikas (deklarerad vid %s:%d)"
#: toplev.c:926
#, gcc-internal-format
msgid "%qs is deprecated"
-msgstr "%qs undanbedes"
+msgstr "%qs bör undvikas"
#: toplev.c:928
#, gcc-internal-format
msgid "type is deprecated"
-msgstr "type undanbedes"
+msgstr "typen bö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öst överlastning för inbyggd Altivec %qF"
+msgstr "ej upplöst överlagring fö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ändning av %<long%> i AltiVec-typer undanbedes, använd %<int%>"
+msgstr "användning av %<long%> i AltiVec-typer bör undvikas, anvä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 överlastad %<%D(%A)%> är tvetydigt"
+msgstr "anrop av överlagrad %<%D(%A)%> ä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 överlastad %<%s(%A)%> är tvetydigt"
+msgstr "anrop av överlagrad %<%s(%A)%> ä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 överlastas"
+msgstr "%q+#D kan inte ö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år inte att lösa upp överlastad funktion %qD baserat på konvertering till typ %qT"
+msgstr "det går inte att lösa upp överlagrad funktion %qD baserat på 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 överlastad funktion %qD till typ %q#T är tvetydig"
+msgstr "konvertering av överlagrad funktion %qD till typ %q#T ä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ösa upp adress till överlastad funktion"
+msgstr "%s kan inte lösa upp adress till ö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är initierare för typen %qT"
+msgstr "klamrar runt skalär initierare fö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örhindrar överlastning av operatorn ?:"
+msgstr "ISO C++ förhindrar ö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 överlastas"
+msgstr "%qD skall aldrig ö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änder %<-fpermissive%>, kommer G++ acceptera din kod, men det avrådes från att tillåta användning av ett odeklarerat namn)"
+msgstr "(om du använder %<-fpermissive%>, kommer G++ acceptera din kod, men man bör undvika att tillåta anvä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ö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ändning av standardargument för parametrar till annat än funktioner"
+msgstr "användning av standardargument för parametrar till annat än funktioner bö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ör %q+#D"
+msgstr "kovariant returtyp för %q+#D bö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ån strängkonstant till %qT'"
+msgstr "konvertering från strängkonstant till %qT' bö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ån överlastad funktion"
+msgstr "antar typkonvertering till %qT från ö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ö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ån vid sträng"
+msgstr "char-vektor initierad från bred sträng"
#: c-typeck.c:4463
msgid "wchar_t-array initialized from non-wide string"
-msgstr "wchar_t-vektor initierad från icke-vid sträng"
+msgstr "wchar_t-vektor initierad från icke-bred strä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öskelförhållandet mellan instantierade fält och den totala poststorleken"
+msgstr "Tröskelförhållandet mellan instansierade fä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ängar och teckenkonstanter till teckenuppsättningen <tknst>"
+msgstr "Konvertera alla breda strängar och teckenkonstanter till teckenuppsä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å vektor %q+D kompletterade okompatibelt med implicit initiering"
+msgstr "den kompletterade typen på vektor %q+D ä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ör %q+D följer på en definition som inte är en prototyp"
+msgstr "prototyp för %q+D följer på 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åde lokal variabel och lokal funktionsdeklartion
+# local, det kan vara bå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äckvidd för identifierare med variabelt modifierad typ"
+msgstr "%Jhopp in i räckvidd fö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ödjer inte %<static%> eller typkvalificerare i parametervektordelklarerare"
+msgstr "ISO C90 stö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änd utanför C99-läge"
+msgstr "%<for%>-slinga med startdeklaration använd utanför C99-lä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ödjer inte typen complex"
+msgstr "ISO C90 stö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äng har ogiltigt operandenummer"
+msgstr "formatsträ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 är en sträng vida tecken"
+msgstr "formatet är en strä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ödjer inte längdmodifieraren %qs %s"
+msgstr "%1$s stödjer inte %3$s-lä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ängliteral i %<asm%>"
+msgstr "bred strä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äckvidd för identifierare med variabelt modifierad typ"
+msgstr "hopp in i räckvidd fö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äckvidden för en identifierare med variabelt modifierad typ som inte innehåller en omslutande switch-sats"
+msgstr "case-etikett i räckvidden för en identifierare med variabel typ som inte innehå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äckvidden för en identifierare med variabelt modifierad typ som inte innehåller en omslutande switch-sats"
+msgstr "%<default%>-etikett i räckvidden för en identifierare med variabel typ som inte innehå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ärde anvätn där ett komplext värde förväntades"
+msgstr "sammansatt värde använt där ett komplext värde förvä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änsning refererar ogiltigt operandenummer"
+msgstr "matchningsbegrä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änder gammalt ABI darwin"
+msgstr "anvä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öd frö function_profiler"
+msgstr "stöd fö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äf för anrop till %<(%T) (%A)%>"
+msgstr "ingen träff fö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ältet %q+D inte en heltalskonstant"
+msgstr "bredd för bitfä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örsta %s blir "built-in" eller "library". Påminnelse till mig själv
-# om att felrapportera. /Göran
+# Fö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år inte ha variabelt modifierad typ %qT"
+msgstr "datamedlem få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år inte ha variabelt modifierad typ %qT"
+msgstr "parameter få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örekomma i detta sammanhang"
+msgstr "lokal variabel %qD kan inte fö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ör explicit instantiering"
+msgstr "definition given fö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 överskrider maxvärdet på %d (använd -ftemplate-depth-NN för att öka maxvärdet) vid instantiering av %qD"
+msgstr "mallinstansieringsdjupet överskrider maxvärdet på %d (använd -ftemplate-depth-NN för att öka maxvä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ågot annat än en typ, men instantiering ger en typ"
+msgstr "namnet %qE i den beroende tolkas som något annat ä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 är en variabelt modifierad typ"
+msgstr "%qT ä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örsöker instantiera %qD"
+msgstr " försö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örbjuder användning av %<extern%> vid explicita instantieringar"
+msgstr "ISO C++ förbjuder anvä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öre definitionen av mallen"
+msgstr "explicit instansiering av %q#T fö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örbjuder använding av %qE vid explicita instantieringar"
+msgstr "ISO C++ förbjuder anvä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änglig"
+msgstr "explicit instansiering av %qD men ingen definition tillgä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 överskrider maxvärdet på %d vid instantiering av %qD, möjligen från generering av virtuell tabell (använd -ftemplate-depth-NN för att öka maxvärdet)"
+msgstr "mallinstansieringsdjupet överskrider maxvärdet på %d vid instansiering av %qD, möjligen från generering av virtuell tabell (använd -ftemplate-depth-NN för att öka maxvä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ån icke-vid sträng"
+msgstr "int-vektor initierad från icke-bred strä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änd vid underinstruktion"
+msgstr "okä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ö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