]> git.pld-linux.org Git - packages/crossmingw64-gcc.git/blame - gcc-branch.diff
- updated to 4.7.0+branch.diff, release 0.1 for crt bootstrap...
[packages/crossmingw64-gcc.git] / gcc-branch.diff
CommitLineData
f500de0e
PS
1Index: libitm/ChangeLog
2===================================================================
3--- libitm/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293)
4+++ libitm/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293)
5@@ -1,3 +1,12 @@
6+2012-04-04 H.J. Lu <hongjiu.lu@intel.com>
7+
8+ Backported from mainline
9+ 2012-04-04 H.J. Lu <hongjiu.lu@intel.com>
10+
11+ PR libitm/52854
12+ * config/x86/target.h (gtm_jmpbuf): Replace long with long long
13+ for x86-64.
14+
15 2012-03-22 Release Manager
16
17 * GCC 4.7.0 released.
18Index: libitm/config/x86/target.h
19===================================================================
20--- libitm/config/x86/target.h (.../tags/gcc_4_7_0_release) (wersja 187293)
21+++ libitm/config/x86/target.h (.../branches/gcc-4_7-branch) (wersja 187293)
22@@ -29,13 +29,13 @@
23 typedef struct gtm_jmpbuf
24 {
25 void *cfa;
26- unsigned long rbx;
27- unsigned long rbp;
28- unsigned long r12;
29- unsigned long r13;
30- unsigned long r14;
31- unsigned long r15;
32- unsigned long rip;
33+ unsigned long long rbx;
34+ unsigned long long rbp;
35+ unsigned long long r12;
36+ unsigned long long r13;
37+ unsigned long long r14;
38+ unsigned long long r15;
39+ unsigned long long rip;
40 } gtm_jmpbuf;
41 #else
42 typedef struct gtm_jmpbuf
43Index: libgomp/ChangeLog
44===================================================================
45--- libgomp/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293)
46+++ libgomp/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293)
47@@ -1,3 +1,8 @@
48+2012-03-22 Jakub Jelinek <jakub@redhat.com>
49+
50+ PR middle-end/52547
51+ * testsuite/libgomp.c/pr52547.c: New test.
52+
53 2012-03-22 Release Manager
54
55 * GCC 4.7.0 released.
56Index: libgomp/testsuite/libgomp.c/pr52547.c
57===================================================================
58--- libgomp/testsuite/libgomp.c/pr52547.c (.../tags/gcc_4_7_0_release) (wersja 0)
59+++ libgomp/testsuite/libgomp.c/pr52547.c (.../branches/gcc-4_7-branch) (wersja 187293)
60@@ -0,0 +1,36 @@
61+/* PR middle-end/52547 */
62+/* { dg-do run } */
63+
64+extern void abort (void);
65+
66+__attribute__((noinline, noclone)) int
67+baz (int *x, int (*fn) (int *))
68+{
69+ return fn (x);
70+}
71+
72+__attribute__((noinline, noclone)) int
73+foo (int x, int *y)
74+{
75+ int i, e = 0;
76+#pragma omp parallel for reduction(|:e)
77+ for (i = 0; i < x; ++i)
78+ {
79+ __label__ lab;
80+ int bar (int *z) { return z - y; }
81+ if (baz (&y[i], bar) != i)
82+ e |= 1;
83+ }
84+ return e;
85+}
86+
87+int
88+main ()
89+{
90+ int a[100], i;
91+ for (i = 0; i < 100; i++)
92+ a[i] = i;
93+ if (foo (100, a))
94+ abort ();
95+ return 0;
96+}
97Index: libstdc++-v3/configure
98===================================================================
99--- libstdc++-v3/configure (.../tags/gcc_4_7_0_release) (wersja 187293)
100+++ libstdc++-v3/configure (.../branches/gcc-4_7-branch) (wersja 187293)
101@@ -3025,7 +3025,8 @@
102 target_alias=${target_alias-$host_alias}
103
104 # Handy for debugging:
105-#AC_MSG_NOTICE($build / $host / $target / $host_alias / $target_alias); sleep 5
106+{ $as_echo "$as_me:${as_lineno-$LINENO}: $build / $host / $target / $host_alias / $target_alias" >&5
107+$as_echo "$as_me: $build / $host / $target / $host_alias / $target_alias" >&6;}; sleep 5
108
109 if test "$build" != "$host"; then
110 # We are being configured with some form of cross compiler.
111@@ -11497,7 +11498,7 @@
112 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
113 lt_status=$lt_dlunknown
114 cat > conftest.$ac_ext <<_LT_EOF
115-#line 11500 "configure"
116+#line 11501 "configure"
117 #include "confdefs.h"
118
119 #if HAVE_DLFCN_H
120@@ -11603,7 +11604,7 @@
121 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
122 lt_status=$lt_dlunknown
123 cat > conftest.$ac_ext <<_LT_EOF
124-#line 11606 "configure"
125+#line 11607 "configure"
126 #include "confdefs.h"
127
128 #if HAVE_DLFCN_H
129@@ -14961,7 +14962,7 @@
130 #
131 # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style.
132 cat > conftest.$ac_ext << EOF
133-#line 14964 "configure"
134+#line 14965 "configure"
135 struct S { ~S(); };
136 void bar();
137 void foo()
138@@ -15296,7 +15297,7 @@
139 # Fake what AC_TRY_COMPILE does.
140
141 cat > conftest.$ac_ext << EOF
142-#line 15299 "configure"
143+#line 15300 "configure"
144 int main()
145 {
146 typedef bool atomic_type;
147@@ -15331,7 +15332,7 @@
148 rm -f conftest*
149
150 cat > conftest.$ac_ext << EOF
151-#line 15334 "configure"
152+#line 15335 "configure"
153 int main()
154 {
155 typedef short atomic_type;
156@@ -15366,7 +15367,7 @@
157 rm -f conftest*
158
159 cat > conftest.$ac_ext << EOF
160-#line 15369 "configure"
161+#line 15370 "configure"
162 int main()
163 {
164 // NB: _Atomic_word not necessarily int.
165@@ -15402,7 +15403,7 @@
166 rm -f conftest*
167
168 cat > conftest.$ac_ext << EOF
169-#line 15405 "configure"
170+#line 15406 "configure"
171 int main()
172 {
173 typedef long long atomic_type;
174@@ -15446,11 +15447,10 @@
175 ac_compiler_gnu=$ac_cv_c_compiler_gnu
176
177
178- # Set atomicity_dir to builtins if all of above tests pass.
179+ # Set atomicity_dir to builtins if all but the long long test above passes.
180 if test $glibcxx_cv_atomic_bool = yes \
181 && test $glibcxx_cv_atomic_short = yes \
182- && test $glibcxx_cv_atomic_int = yes \
183- && test $glibcxx_cv_atomic_long_long = yes ; then
184+ && test $glibcxx_cv_atomic_int = yes; then
185
186 $as_echo "#define _GLIBCXX_ATOMIC_BUILTINS 1" >>confdefs.h
187
188Index: libstdc++-v3/src/Makefile.in
189===================================================================
190--- libstdc++-v3/src/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187293)
191+++ libstdc++-v3/src/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187293)
192@@ -88,20 +88,22 @@
193 am__installdirs = "$(DESTDIR)$(toolexeclibdir)"
194 LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
195 am__DEPENDENCIES_1 =
196-am_libstdc___la_OBJECTS =
197+@GLIBCXX_LDBL_COMPAT_TRUE@am__objects_1 = compatibility-ldbl.lo
198+@ENABLE_PARALLEL_TRUE@am__objects_2 = compatibility-parallel_list.lo \
199+@ENABLE_PARALLEL_TRUE@ compatibility-parallel_list-2.lo
200+am__objects_3 = compatibility.lo compatibility-debug_list.lo \
201+ compatibility-debug_list-2.lo compatibility-list.lo \
202+ compatibility-list-2.lo $(am__objects_1) $(am__objects_2)
203+am__objects_4 = compatibility-c++0x.lo compatibility-atomic-c++0x.lo \
204+ compatibility-thread-c++0x.lo
205+am_libstdc___la_OBJECTS = $(am__objects_3) $(am__objects_4)
206 libstdc___la_OBJECTS = $(am_libstdc___la_OBJECTS)
207 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
208 depcomp =
209 am__depfiles_maybe =
210-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
211- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
212-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
213- --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
214- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
215-CCLD = $(CC)
216-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
217- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
218- $(LDFLAGS) -o $@
219+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
220+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
221+CXXLD = $(CXX)
222 SOURCES = $(libstdc___la_SOURCES)
223 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
224 html-recursive info-recursive install-data-recursive \
225@@ -331,7 +333,27 @@
226
227 # Cross compiler support.
228 toolexeclib_LTLIBRARIES = libstdc++.la
229-libstdc___la_SOURCES =
230+@GLIBCXX_LDBL_COMPAT_FALSE@ldbl_compat_sources =
231+@GLIBCXX_LDBL_COMPAT_TRUE@ldbl_compat_sources = compatibility-ldbl.cc
232+@ENABLE_PARALLEL_FALSE@parallel_compat_sources =
233+@ENABLE_PARALLEL_TRUE@parallel_compat_sources = \
234+@ENABLE_PARALLEL_TRUE@ compatibility-parallel_list.cc compatibility-parallel_list-2.cc
235+
236+cxx98_sources = \
237+ compatibility.cc \
238+ compatibility-debug_list.cc \
239+ compatibility-debug_list-2.cc \
240+ compatibility-list.cc \
241+ compatibility-list-2.cc \
242+ ${ldbl_compat_sources} \
243+ ${parallel_compat_sources}
244+
245+cxx11_sources = \
246+ compatibility-c++0x.cc \
247+ compatibility-atomic-c++0x.cc \
248+ compatibility-thread-c++0x.cc
249+
250+libstdc___la_SOURCES = $(cxx98_sources) $(cxx11_sources)
251 libstdc___la_LIBADD = \
252 $(GLIBCXX_LIBS) \
253 $(top_builddir)/libsupc++/libsupc++convenience.la \
254@@ -349,6 +371,9 @@
255
256 libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS)
257
258+# Use special rules for parallel mode compilation.
259+PARALLEL_FLAGS = -fopenmp -D_GLIBCXX_PARALLEL -I$(glibcxx_builddir)/../libgomp
260+
261 # AM_CXXFLAGS needs to be in each subdirectory so that it can be
262 # modified in a per-library or per-sub-library way. Need to manually
263 # set this option because CONFIG_CXXFLAGS has to be after
264@@ -356,12 +381,10 @@
265 # as the occasion calls for it.
266 AM_CXXFLAGS = \
267 $(XTEMPLATE_FLAGS) \
268- $(WARN_CXXFLAGS) \
269- $(OPTIMIZE_CXXFLAGS) \
270- $(CONFIG_CXXFLAGS)
271+ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
272
273
274-# libstdc++ libtool notes
275+# Libtool notes
276
277 # 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
278 # last. (That way, things like -O2 passed down from the toplevel can
279@@ -379,10 +402,11 @@
280 # correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
281 # CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
282 # attempt to infer which configuration to use
283-LTCXXCOMPILE = $(LIBTOOL) --tag CXX \
284- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile \
285- $(CXX) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
286- $(AM_CXXFLAGS) $(CXXFLAGS)
287+LTCXXCOMPILE = \
288+ $(LIBTOOL) --tag CXX \
289+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
290+ --mode=compile $(CXX) $(INCLUDES) \
291+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
292
293 LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
294
295@@ -392,8 +416,11 @@
296 # course is problematic at this point. So, we get the top-level
297 # directory to configure libstdc++-v3 to use gcc as the C++
298 # compilation driver.
299-CXXLINK = $(LIBTOOL) --tag CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
300- $(CXX) $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
301+CXXLINK = \
302+ $(LIBTOOL) --tag CXX \
303+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
304+ --mode=link $(CXX) \
305+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
306
307 @ENABLE_SYMVERS_TRUE@CLEANFILES = libstdc++-symbols.ver $(version_dep)
308 @ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@version_arg = -Wl,-exported_symbols_list,libstdc++-symbols.explist
309@@ -423,6 +450,7 @@
310 all: all-recursive
311
312 .SUFFIXES:
313+.SUFFIXES: .cc .lo .o .obj
314 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/fragment.am $(am__configure_deps)
315 @for dep in $?; do \
316 case '$(am__configure_deps)' in \
317@@ -493,6 +521,15 @@
318 distclean-compile:
319 -rm -f *.tab.c
320
321+.cc.o:
322+ $(CXXCOMPILE) -c -o $@ $<
323+
324+.cc.obj:
325+ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
326+
327+.cc.lo:
328+ $(LTCXXCOMPILE) -c -o $@ $<
329+
330 mostlyclean-libtool:
331 -rm -f *.lo
332
333@@ -757,9 +794,41 @@
334 uninstall-toolexeclibLTLIBRARIES
335
336
337-vpath % $(top_srcdir)/src
338-vpath % $(top_srcdir)
339+vpath % $(top_srcdir)/src/c++98
340+vpath % $(top_srcdir)/src/c++11
341+compatibility-parallel_list.lo: compatibility-parallel_list.cc
342+ $(LTCXXCOMPILE) -c $<
343+compatibility-parallel_list.o: compatibility-parallel_list.cc
344+ $(CXXCOMPILE) -c $<
345
346+compatibility-parallel_list-2.lo: compatibility-parallel_list-2.cc
347+ $(LTCXXCOMPILE) -c $<
348+compatibility-parallel_list-2.o: compatibility-parallel_list-2.cc
349+ $(CXXCOMPILE) -c $<
350+
351+# Use special rules for compatibility-ldbl.cc compilation, as we need to
352+# pass -mlong-double-64.
353+@GLIBCXX_LDBL_COMPAT_TRUE@compatibility-ldbl.lo: compatibility-ldbl.cc
354+@GLIBCXX_LDBL_COMPAT_TRUE@ $(LTCXXCOMPILE) -mlong-double-64 -c $<
355+@GLIBCXX_LDBL_COMPAT_TRUE@compatibility-ldbl.o: compatibility-ldbl.cc
356+@GLIBCXX_LDBL_COMPAT_TRUE@ $(CXXCOMPILE) -mlong-double-64 -c $<
357+
358+# Use special rules for C++11 files/objects.
359+compatibility-c++0x.lo: compatibility-c++0x.cc
360+ $(LTCXXCOMPILE) -std=gnu++11 -c $<
361+compatibility-c++0x.o: compatibility-c++0x.cc
362+ $(CXXCOMPILE) -std=gnu++11 -c $<
363+
364+compatibility-atomic-c++0x.lo: compatibility-atomic-c++0x.cc
365+ $(LTCXXCOMPILE) -std=gnu++11 -c $<
366+compatibility-atomic-c++0x.o: compatibility-atomic-c++0x.cc
367+ $(CXXCOMPILE) -std=gnu++11 -c $<
368+
369+compatibility-thread-c++0x.lo: compatibility-thread-c++0x.cc
370+ $(LTCXXCOMPILE) -std=gnu++11 -c $<
371+compatibility-thread-c++0x.o: compatibility-thread-c++0x.cc
372+ $(CXXCOMPILE) -std=gnu++11 -c $<
373+
374 # Symbol versioning for shared libraries.
375 @ENABLE_SYMVERS_TRUE@libstdc++-symbols.ver: ${glibcxx_srcdir}/$(SYMVER_FILE) \
376 @ENABLE_SYMVERS_TRUE@ $(port_specific_symbol_files)
377@@ -777,7 +846,7 @@
378 @ENABLE_SYMVERS_TRUE@ fi; \
379 @ENABLE_SYMVERS_TRUE@ fi
380 @ENABLE_SYMVERS_TRUE@ $(EGREP) -v '^[ ]*#(#| |$$)' $@.tmp | \
381-@ENABLE_SYMVERS_TRUE@ $(COMPILE) -E -P -include config.h - > $@ || (rm -f $@ ; exit 1)
382+@ENABLE_SYMVERS_TRUE@ $(CC) -E -P -include ../config.h - > $@ || (rm -f $@ ; exit 1)
383 @ENABLE_SYMVERS_TRUE@ rm -f $@.tmp
384 @ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@libstdc++-symbols.ver-sun : libstdc++-symbols.ver \
385 @ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ $(toplevel_srcdir)/contrib/make_sunver.pl \
386@@ -800,7 +869,6 @@
387 @ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ > $@ || (rm -f $@ ; exit 1)
388
389 # Control additional build primary rules.
390-# EXTRA_LTLIBRARIES =
391 all-once: libstdc++convenience.la $(STAMP_DEBUG)
392 install-data-once: $(STAMP_INSTALL_DEBUG)
393
394@@ -846,7 +914,7 @@
395 mv Makefile Makefile.tmp; \
396 sed -e 's,all-local: all-once,all-local:,' \
397 -e 's,install-data-local: install-data-once,install-data-local:,' \
398- -e 's,src/c,src/debug/c,' \
399+ -e '/vpath/!s,src/c,src/debug/c,' \
400 < Makefile.tmp > Makefile ; \
401 $(MAKE) CXXFLAGS='$(DEBUG_FLAGS)' \
402 toolexeclibdir=$(glibcxx_toolexeclibdir)/debug all) ;
403Index: libstdc++-v3/src/Makefile.am
404===================================================================
405--- libstdc++-v3/src/Makefile.am (.../tags/gcc_4_7_0_release) (wersja 187293)
406+++ libstdc++-v3/src/Makefile.am (.../branches/gcc-4_7-branch) (wersja 187293)
407@@ -29,11 +29,38 @@
408 # Cross compiler support.
409 toolexeclib_LTLIBRARIES = libstdc++.la
410
411-vpath % $(top_srcdir)/src
412-vpath % $(top_srcdir)
413+vpath % $(top_srcdir)/src/c++98
414+vpath % $(top_srcdir)/src/c++11
415
416-libstdc___la_SOURCES =
417+if GLIBCXX_LDBL_COMPAT
418+ldbl_compat_sources = compatibility-ldbl.cc
419+else
420+ldbl_compat_sources =
421+endif
422
423+if ENABLE_PARALLEL
424+parallel_compat_sources = \
425+ compatibility-parallel_list.cc compatibility-parallel_list-2.cc
426+else
427+parallel_compat_sources =
428+endif
429+
430+cxx98_sources = \
431+ compatibility.cc \
432+ compatibility-debug_list.cc \
433+ compatibility-debug_list-2.cc \
434+ compatibility-list.cc \
435+ compatibility-list-2.cc \
436+ ${ldbl_compat_sources} \
437+ ${parallel_compat_sources}
438+
439+cxx11_sources = \
440+ compatibility-c++0x.cc \
441+ compatibility-atomic-c++0x.cc \
442+ compatibility-thread-c++0x.cc
443+
444+libstdc___la_SOURCES = $(cxx98_sources) $(cxx11_sources)
445+
446 libstdc___la_LIBADD = \
447 $(GLIBCXX_LIBS) \
448 $(top_builddir)/libsupc++/libsupc++convenience.la \
449@@ -52,6 +79,43 @@
450 libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS)
451
452
453+# Use special rules for parallel mode compilation.
454+PARALLEL_FLAGS = -fopenmp -D_GLIBCXX_PARALLEL -I$(glibcxx_builddir)/../libgomp
455+compatibility-parallel_list.lo: compatibility-parallel_list.cc
456+ $(LTCXXCOMPILE) -c $<
457+compatibility-parallel_list.o: compatibility-parallel_list.cc
458+ $(CXXCOMPILE) -c $<
459+
460+compatibility-parallel_list-2.lo: compatibility-parallel_list-2.cc
461+ $(LTCXXCOMPILE) -c $<
462+compatibility-parallel_list-2.o: compatibility-parallel_list-2.cc
463+ $(CXXCOMPILE) -c $<
464+
465+# Use special rules for compatibility-ldbl.cc compilation, as we need to
466+# pass -mlong-double-64.
467+if GLIBCXX_LDBL_COMPAT
468+compatibility-ldbl.lo: compatibility-ldbl.cc
469+ $(LTCXXCOMPILE) -mlong-double-64 -c $<
470+compatibility-ldbl.o: compatibility-ldbl.cc
471+ $(CXXCOMPILE) -mlong-double-64 -c $<
472+endif
473+
474+# Use special rules for C++11 files/objects.
475+compatibility-c++0x.lo: compatibility-c++0x.cc
476+ $(LTCXXCOMPILE) -std=gnu++11 -c $<
477+compatibility-c++0x.o: compatibility-c++0x.cc
478+ $(CXXCOMPILE) -std=gnu++11 -c $<
479+
480+compatibility-atomic-c++0x.lo: compatibility-atomic-c++0x.cc
481+ $(LTCXXCOMPILE) -std=gnu++11 -c $<
482+compatibility-atomic-c++0x.o: compatibility-atomic-c++0x.cc
483+ $(CXXCOMPILE) -std=gnu++11 -c $<
484+
485+compatibility-thread-c++0x.lo: compatibility-thread-c++0x.cc
486+ $(LTCXXCOMPILE) -std=gnu++11 -c $<
487+compatibility-thread-c++0x.o: compatibility-thread-c++0x.cc
488+ $(CXXCOMPILE) -std=gnu++11 -c $<
489+
490 # AM_CXXFLAGS needs to be in each subdirectory so that it can be
491 # modified in a per-library or per-sub-library way. Need to manually
492 # set this option because CONFIG_CXXFLAGS has to be after
493@@ -59,13 +123,10 @@
494 # as the occasion calls for it.
495 AM_CXXFLAGS = \
496 $(XTEMPLATE_FLAGS) \
497- $(WARN_CXXFLAGS) \
498- $(OPTIMIZE_CXXFLAGS) \
499- $(CONFIG_CXXFLAGS)
500+ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
501
502+# Libtool notes
503
504-# libstdc++ libtool notes
505-
506 # 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
507 # last. (That way, things like -O2 passed down from the toplevel can
508 # be overridden by --enable-debug.)
509@@ -82,10 +143,11 @@
510 # correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
511 # CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
512 # attempt to infer which configuration to use
513-LTCXXCOMPILE = $(LIBTOOL) --tag CXX \
514- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile \
515- $(CXX) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
516- $(AM_CXXFLAGS) $(CXXFLAGS)
517+LTCXXCOMPILE = \
518+ $(LIBTOOL) --tag CXX \
519+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
520+ --mode=compile $(CXX) $(INCLUDES) \
521+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
522
523 LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
524
525@@ -95,9 +157,13 @@
526 # course is problematic at this point. So, we get the top-level
527 # directory to configure libstdc++-v3 to use gcc as the C++
528 # compilation driver.
529-CXXLINK = $(LIBTOOL) --tag CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
530- $(CXX) $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
531+CXXLINK = \
532+ $(LIBTOOL) --tag CXX \
533+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
534+ --mode=link $(CXX) \
535+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
536
537+
538 # Symbol versioning for shared libraries.
539 if ENABLE_SYMVERS
540 libstdc++-symbols.ver: ${glibcxx_srcdir}/$(SYMVER_FILE) \
541@@ -116,7 +182,7 @@
542 fi; \
543 fi
544 $(EGREP) -v '^[ ]*#(#| |$$)' $@.tmp | \
545- $(COMPILE) -E -P -include config.h - > $@ || (rm -f $@ ; exit 1)
546+ $(CC) -E -P -include ../config.h - > $@ || (rm -f $@ ; exit 1)
547 rm -f $@.tmp
548
549 CLEANFILES = libstdc++-symbols.ver
550@@ -165,7 +231,6 @@
551
552
553 # Control additional build primary rules.
554-# EXTRA_LTLIBRARIES =
555 all-once: libstdc++convenience.la $(STAMP_DEBUG)
556 install-data-once: $(STAMP_INSTALL_DEBUG)
557
558@@ -228,7 +293,7 @@
559 mv Makefile Makefile.tmp; \
560 sed -e 's,all-local: all-once,all-local:,' \
561 -e 's,install-data-local: install-data-once,install-data-local:,' \
562- -e 's,src/c,src/debug/c,' \
563+ -e '/vpath/!s,src/c,src/debug/c,' \
564 < Makefile.tmp > Makefile ; \
565 $(MAKE) CXXFLAGS='$(DEBUG_FLAGS)' \
566 toolexeclibdir=$(glibcxx_toolexeclibdir)/debug all) ;
567Index: libstdc++-v3/src/c++98/Makefile.in
568===================================================================
569--- libstdc++-v3/src/c++98/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187293)
570+++ libstdc++-v3/src/c++98/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187293)
571@@ -76,23 +76,18 @@
572 @ENABLE_EXTERN_TEMPLATE_TRUE@ misc-inst.lo ostream-inst.lo \
573 @ENABLE_EXTERN_TEMPLATE_TRUE@ sstream-inst.lo streambuf-inst.lo \
574 @ENABLE_EXTERN_TEMPLATE_TRUE@ wlocale-inst.lo
575-@GLIBCXX_LDBL_COMPAT_TRUE@am__objects_3 = compatibility-ldbl.lo
576-@ENABLE_PARALLEL_TRUE@am__objects_4 = parallel_settings.lo \
577-@ENABLE_PARALLEL_TRUE@ compatibility-parallel_list.lo \
578-@ENABLE_PARALLEL_TRUE@ compatibility-parallel_list-2.lo
579-am__objects_5 = basic_file.lo c++locale.lo $(am__objects_2) \
580- $(am__objects_3) $(am__objects_4)
581-am__objects_6 = bitmap_allocator.lo pool_allocator.lo mt_allocator.lo \
582- codecvt.lo compatibility.lo compatibility-debug_list.lo \
583- compatibility-debug_list-2.lo compatibility-list.lo \
584- compatibility-list-2.lo complex_io.lo ctype.lo globals_io.lo \
585- hash_tr1.lo hashtable_tr1.lo ios.lo ios_failure.lo ios_init.lo \
586+@ENABLE_PARALLEL_TRUE@am__objects_3 = parallel_settings.lo
587+am__objects_4 = basic_file.lo c++locale.lo $(am__objects_2) \
588+ $(am__objects_3)
589+am__objects_5 = bitmap_allocator.lo pool_allocator.lo mt_allocator.lo \
590+ codecvt.lo complex_io.lo ctype.lo globals_io.lo hash_tr1.lo \
591+ hashtable_tr1.lo ios.lo ios_failure.lo ios_init.lo \
592 ios_locale.lo list.lo locale.lo locale_init.lo \
593 locale_facets.lo localename.lo math_stubs_float.lo \
594 math_stubs_long_double.lo stdexcept.lo strstream.lo tree.lo \
595 istream.lo streambuf.lo valarray.lo $(am__objects_1) \
596- $(am__objects_5)
597-am_libc__98convenience_la_OBJECTS = $(am__objects_6)
598+ $(am__objects_4)
599+am_libc__98convenience_la_OBJECTS = $(am__objects_5)
600 libc__98convenience_la_OBJECTS = $(am_libc__98convenience_la_OBJECTS)
601 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
602 depcomp =
603@@ -315,7 +310,7 @@
604 AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
605
606 # Convenience library for C++98 runtime.
607-noinst_LTLIBRARIES = libc++98convenience.la
608+noinst_LTLIBRARIES = libc++98convenience.la
609 headers =
610
611 # Source files linked in via configuration/make substitution for a
612@@ -337,15 +332,10 @@
613 # particular host, but with ad hoc naming rules.
614 host_sources_extra = \
615 basic_file.cc c++locale.cc \
616- ${inst_sources} ${ldbl_compat_sources} ${parallel_sources}
617+ ${inst_sources} ${parallel_sources}
618
619 @ENABLE_PARALLEL_FALSE@parallel_sources =
620-@ENABLE_PARALLEL_TRUE@parallel_sources = parallel_settings.cc \
621-@ENABLE_PARALLEL_TRUE@ compatibility-parallel_list.cc \
622-@ENABLE_PARALLEL_TRUE@ compatibility-parallel_list-2.cc
623-
624-@GLIBCXX_LDBL_COMPAT_FALSE@ldbl_compat_sources =
625-@GLIBCXX_LDBL_COMPAT_TRUE@ldbl_compat_sources = compatibility-ldbl.cc
626+@ENABLE_PARALLEL_TRUE@parallel_sources = parallel_settings.cc
627 @ENABLE_EXTERN_TEMPLATE_FALSE@XTEMPLATE_FLAGS =
628 @ENABLE_EXTERN_TEMPLATE_TRUE@XTEMPLATE_FLAGS = -fno-implicit-templates
629 @ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources =
630@@ -370,11 +360,6 @@
631 pool_allocator.cc \
632 mt_allocator.cc \
633 codecvt.cc \
634- compatibility.cc \
635- compatibility-debug_list.cc \
636- compatibility-debug_list-2.cc \
637- compatibility-list.cc \
638- compatibility-list-2.cc \
639 complex_io.cc \
640 ctype.cc \
641 globals_io.cc \
642@@ -417,9 +402,7 @@
643 AM_CXXFLAGS = \
644 $(PIC_CXXFLAGS) \
645 $(XTEMPLATE_FLAGS) \
646- $(WARN_CXXFLAGS) \
647- $(OPTIMIZE_CXXFLAGS) \
648- $(CONFIG_CXXFLAGS)
649+ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
650
651 AM_MAKEFLAGS = \
652 "gxx_include_dir=$(gxx_include_dir)"
653@@ -445,9 +428,11 @@
654 # attempt to infer which configuration to use.
655 # We have to put --tag disable-shared after --tag CXX lest things
656 # CXX undo the affect of disable-shared.
657-LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
658- --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
659- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
660+LTCXXCOMPILE = \
661+ $(LIBTOOL) --tag CXX --tag disable-shared \
662+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
663+ --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
664+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
665
666 LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
667
668@@ -457,9 +442,11 @@
669 # course is problematic at this point. So, we get the top-level
670 # directory to configure libstdc++-v3 to use gcc as the C++
671 # compilation driver.
672-CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
673- --mode=link $(CXX) \
674- $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
675+CXXLINK = \
676+ $(LIBTOOL) --tag CXX --tag disable-shared \
677+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
678+ --mode=link $(CXX) \
679+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
680
681 all: all-am
682
683@@ -726,7 +713,6 @@
684 $(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_CC) ./$@ || true
685
686 vpath % $(top_srcdir)/src/c++98
687-vpath % $(top_srcdir)
688 strstream.lo: strstream.cc
689 $(LTCXXCOMPILE) -I$(GLIBCXX_INCLUDE_DIR)/backward -Wno-deprecated -c $<
690 strstream.o: strstream.cc
691@@ -744,23 +730,6 @@
692 parallel_settings.o: parallel_settings.cc
693 $(CXXCOMPILE) $(PARALLEL_FLAGS) -c $<
694
695-compatibility-parallel_list.lo: compatibility-parallel_list.cc
696- $(LTCXXCOMPILE) -c $<
697-compatibility-parallel_list.o: compatibility-parallel_list.cc
698- $(CXXCOMPILE) -c $<
699-
700-compatibility-parallel_list-2.lo: compatibility-parallel_list-2.cc
701- $(LTCXXCOMPILE) -c $<
702-compatibility-parallel_list-2.o: compatibility-parallel_list-2.cc
703- $(CXXCOMPILE) -c $<
704-
705-# Use special rules for compatibility-ldbl.cc compilation, as we need to
706-# pass -mlong-double-64.
707-@GLIBCXX_LDBL_COMPAT_TRUE@compatibility-ldbl.lo: compatibility-ldbl.cc
708-@GLIBCXX_LDBL_COMPAT_TRUE@ $(LTCXXCOMPILE) -mlong-double-64 -c $<
709-@GLIBCXX_LDBL_COMPAT_TRUE@compatibility-ldbl.o: compatibility-ldbl.cc
710-@GLIBCXX_LDBL_COMPAT_TRUE@ $(CXXCOMPILE) -mlong-double-64 -c $<
711-
712 # Tell versions [3.59,3.63) of GNU make to not export all variables.
713 # Otherwise a system limit (for SysV at least) may be exceeded.
714 .NOEXPORT:
715Index: libstdc++-v3/src/c++98/compatibility-list.cc
716===================================================================
717--- libstdc++-v3/src/c++98/compatibility-list.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
718+++ libstdc++-v3/src/c++98/compatibility-list.cc (.../branches/gcc-4_7-branch) (wersja 187293)
719@@ -1,6 +1,6 @@
720 // Compatibility symbols for previous versions, list bits -*- C++ -*-
721
722-// Copyright (C) 2010, 2011 Free Software Foundation, Inc.
723+// Copyright (C) 2010, 2011, 2012 Free Software Foundation, Inc.
724 //
725 // This file is part of the GNU ISO C++ Library. This library is free
726 // software; you can redistribute it and/or modify it under the
727Index: libstdc++-v3/src/c++98/compatibility-ldbl.cc
728===================================================================
729--- libstdc++-v3/src/c++98/compatibility-ldbl.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
730+++ libstdc++-v3/src/c++98/compatibility-ldbl.cc (.../branches/gcc-4_7-branch) (wersja 187293)
731@@ -1,6 +1,6 @@
732 // Compatibility symbols for -mlong-double-64 compatibility -*- C++ -*-
733
734-// Copyright (C) 2006, 2008, 2009, 2010, 2011
735+// Copyright (C) 2006, 2008, 2009, 2010, 2011, 2012
736 // Free Software Foundation, Inc.
737 //
738 // This file is part of the GNU ISO C++ Library. This library is free
739Index: libstdc++-v3/src/c++98/compatibility.cc
740===================================================================
741--- libstdc++-v3/src/c++98/compatibility.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
742+++ libstdc++-v3/src/c++98/compatibility.cc (.../branches/gcc-4_7-branch) (wersja 187293)
743@@ -199,7 +199,7 @@
744 #endif
745
746 _GLIBCXX_END_NAMESPACE_VERSION
747-} // namespace
748+} // namespace std
749
750
751 // NB: These symbols renames should go into the shared library only,
752@@ -228,7 +228,7 @@
753 #endif
754
755 _GLIBCXX_END_NAMESPACE_VERSION
756-} // namespace
757+} // namespace std
758
759
760 /* gcc-4.0.0
761@@ -357,7 +357,7 @@
762 #endif
763
764 _GLIBCXX_END_NAMESPACE_VERSION
765-} // namespace
766+} // namespace std
767
768 // The rename syntax for default exported names is
769 // asm (".symver name1,exportedname@GLIBCXX_3.4")
770Index: libstdc++-v3/src/c++98/compatibility-list-2.cc
771===================================================================
772--- libstdc++-v3/src/c++98/compatibility-list-2.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
773+++ libstdc++-v3/src/c++98/compatibility-list-2.cc (.../branches/gcc-4_7-branch) (wersja 187293)
774@@ -1,6 +1,6 @@
775 // Compatibility symbols for previous versions, list bits -*- C++ -*-
776
777-// Copyright (C) 2011 Free Software Foundation, Inc.
778+// Copyright (C) 2011, 2012 Free Software Foundation, Inc.
779 //
780 // This file is part of the GNU ISO C++ Library. This library is free
781 // software; you can redistribute it and/or modify it under the
782@@ -24,6 +24,8 @@
783
784 #include <bits/move.h>
785
786+#ifdef PIC
787+
788 #ifndef _GLIBCXX_BEGIN_NAMESPACE_COMPAT
789 # define _GLIBCXX_BEGIN_NAMESPACE_COMPAT
790 #endif
791@@ -111,3 +113,5 @@
792 _GLIBCXX_END_NAMESPACE_COMPAT
793
794 } // namespace std
795+
796+#endif
797Index: libstdc++-v3/src/c++98/Makefile.am
798===================================================================
799--- libstdc++-v3/src/c++98/Makefile.am (.../tags/gcc_4_7_0_release) (wersja 187293)
800+++ libstdc++-v3/src/c++98/Makefile.am (.../branches/gcc-4_7-branch) (wersja 187293)
801@@ -25,7 +25,7 @@
802 include $(top_srcdir)/fragment.am
803
804 # Convenience library for C++98 runtime.
805-noinst_LTLIBRARIES = libc++98convenience.la
806+noinst_LTLIBRARIES = libc++98convenience.la
807
808 headers =
809
810@@ -74,7 +74,7 @@
811 # particular host, but with ad hoc naming rules.
812 host_sources_extra = \
813 basic_file.cc c++locale.cc \
814- ${inst_sources} ${ldbl_compat_sources} ${parallel_sources}
815+ ${inst_sources} ${parallel_sources}
816
817 c++locale.cc: ${glibcxx_srcdir}/$(CLOCALE_CC)
818 $(LN_S) ${glibcxx_srcdir}/$(CLOCALE_CC) ./$@ || true
819@@ -83,19 +83,11 @@
820 $(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_CC) ./$@ || true
821
822 if ENABLE_PARALLEL
823-parallel_sources = parallel_settings.cc \
824- compatibility-parallel_list.cc \
825- compatibility-parallel_list-2.cc
826+parallel_sources = parallel_settings.cc
827 else
828 parallel_sources =
829 endif
830
831-if GLIBCXX_LDBL_COMPAT
832-ldbl_compat_sources = compatibility-ldbl.cc
833-else
834-ldbl_compat_sources =
835-endif
836-
837 if ENABLE_EXTERN_TEMPLATE
838 XTEMPLATE_FLAGS = -fno-implicit-templates
839 inst_sources = \
840@@ -122,11 +114,6 @@
841 pool_allocator.cc \
842 mt_allocator.cc \
843 codecvt.cc \
844- compatibility.cc \
845- compatibility-debug_list.cc \
846- compatibility-debug_list-2.cc \
847- compatibility-list.cc \
848- compatibility-list-2.cc \
849 complex_io.cc \
850 ctype.cc \
851 globals_io.cc \
852@@ -153,7 +140,6 @@
853 ${host_sources_extra}
854
855 vpath % $(top_srcdir)/src/c++98
856-vpath % $(top_srcdir)
857
858 libc__98convenience_la_SOURCES = $(sources)
859
860@@ -180,25 +166,6 @@
861 parallel_settings.o: parallel_settings.cc
862 $(CXXCOMPILE) $(PARALLEL_FLAGS) -c $<
863
864-compatibility-parallel_list.lo: compatibility-parallel_list.cc
865- $(LTCXXCOMPILE) -c $<
866-compatibility-parallel_list.o: compatibility-parallel_list.cc
867- $(CXXCOMPILE) -c $<
868-
869-compatibility-parallel_list-2.lo: compatibility-parallel_list-2.cc
870- $(LTCXXCOMPILE) -c $<
871-compatibility-parallel_list-2.o: compatibility-parallel_list-2.cc
872- $(CXXCOMPILE) -c $<
873-
874-if GLIBCXX_LDBL_COMPAT
875-# Use special rules for compatibility-ldbl.cc compilation, as we need to
876-# pass -mlong-double-64.
877-compatibility-ldbl.lo: compatibility-ldbl.cc
878- $(LTCXXCOMPILE) -mlong-double-64 -c $<
879-compatibility-ldbl.o: compatibility-ldbl.cc
880- $(CXXCOMPILE) -mlong-double-64 -c $<
881-endif
882-
883 # AM_CXXFLAGS needs to be in each subdirectory so that it can be
884 # modified in a per-library or per-sub-library way. Need to manually
885 # set this option because CONFIG_CXXFLAGS has to be after
886@@ -207,9 +174,7 @@
887 AM_CXXFLAGS = \
888 $(PIC_CXXFLAGS) \
889 $(XTEMPLATE_FLAGS) \
890- $(WARN_CXXFLAGS) \
891- $(OPTIMIZE_CXXFLAGS) \
892- $(CONFIG_CXXFLAGS)
893+ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
894
895 AM_MAKEFLAGS = \
896 "gxx_include_dir=$(gxx_include_dir)"
897@@ -234,9 +199,11 @@
898 # attempt to infer which configuration to use.
899 # We have to put --tag disable-shared after --tag CXX lest things
900 # CXX undo the affect of disable-shared.
901-LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
902- --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
903- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
904+LTCXXCOMPILE = \
905+ $(LIBTOOL) --tag CXX --tag disable-shared \
906+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
907+ --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
908+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
909
910 LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
911
912@@ -246,6 +213,8 @@
913 # course is problematic at this point. So, we get the top-level
914 # directory to configure libstdc++-v3 to use gcc as the C++
915 # compilation driver.
916-CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
917- --mode=link $(CXX) \
918- $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
919+CXXLINK = \
920+ $(LIBTOOL) --tag CXX --tag disable-shared \
921+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
922+ --mode=link $(CXX) \
923+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
924Index: libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc
925===================================================================
926--- libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc (.../tags/gcc_4_7_0_release) (wersja 0)
927+++ libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc (.../branches/gcc-4_7-branch) (wersja 187293)
928@@ -0,0 +1,72 @@
929+// Compatibility symbols for previous versions, C++0x bits -*- C++ -*-
930+
931+// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
932+//
933+// This file is part of the GNU ISO C++ Library. This library is free
934+// software; you can redistribute it and/or modify it under the
935+// terms of the GNU General Public License as published by the
936+// Free Software Foundation; either version 3, or (at your option)
937+// any later version.
938+
939+// This library is distributed in the hope that it will be useful,
940+// but WITHOUT ANY WARRANTY; without even the implied warranty of
941+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
942+// GNU General Public License for more details.
943+
944+// Under Section 7 of GPL version 3, you are granted additional
945+// permissions described in the GCC Runtime Library Exception, version
946+// 3.1, as published by the Free Software Foundation.
947+
948+// You should have received a copy of the GNU General Public License and
949+// a copy of the GCC Runtime Library Exception along with this program;
950+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
951+// <http://www.gnu.org/licenses/>.
952+
953+#include <future>
954+#include <mutex>
955+
956+#ifndef __GXX_EXPERIMENTAL_CXX0X__
957+# error "compatibility-c++0x.cc must be compiled with -std=gnu++0x"
958+#endif
959+
960+#define _GLIBCXX_ASM_SYMVER(cur, old, version) \
961+ asm (".symver " #cur "," #old "@@@" #version);
962+
963+// XXX GLIBCXX_ABI Deprecated
964+// gcc-4.6.0
965+// <future> export changes
966+#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \
967+ && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) \
968+ && defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT)
969+
970+namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
971+{
972+ const std::error_category* future_category = &std::future_category();
973+}
974+
975+_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx15future_categoryE, _ZSt15future_category, GLIBCXX_3.4.14)
976+
977+#endif
978+
979+// XXX GLIBCXX_ABI Deprecated
980+// gcc-4.6.0
981+// <mutex> export changes
982+#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
983+#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \
984+ && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) \
985+ && defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT)
986+
987+namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
988+{
989+ std::defer_lock_t defer_lock;
990+ std::try_to_lock_t try_to_lock;
991+ std::adopt_lock_t adopt_lock;
992+}
993+
994+_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx10adopt_lockE, _ZSt10adopt_lock, GLIBCXX_3.4.11)
995+_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx10defer_lockE, _ZSt10defer_lock, GLIBCXX_3.4.11)
996+_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx11try_to_lockE, _ZSt11try_to_lock, GLIBCXX_3.4.11)
997+
998+
999+#endif
1000+#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1
1001Index: libstdc++-v3/src/c++11/Makefile.in
1002===================================================================
1003--- libstdc++-v3/src/c++11/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187293)
1004+++ libstdc++-v3/src/c++11/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187293)
1005@@ -66,11 +66,10 @@
1006 CONFIG_CLEAN_VPATH_FILES =
1007 LTLIBRARIES = $(noinst_LTLIBRARIES)
1008 libc__11convenience_la_LIBADD =
1009-am__objects_1 = chrono.lo condition_variable.lo compatibility-c++0x.lo \
1010- compatibility-atomic-c++0x.lo debug.lo functexcept.lo \
1011- functional.lo future.lo hash_c++0x.lo hashtable_c++0x.lo \
1012- limits.lo mutex.lo placeholders.lo regex.lo shared_ptr.lo \
1013- system_error.lo thread.lo
1014+am__objects_1 = chrono.lo condition_variable.lo debug.lo \
1015+ functexcept.lo functional.lo future.lo hash_c++0x.lo \
1016+ hashtable_c++0x.lo limits.lo mutex.lo placeholders.lo regex.lo \
1017+ shared_ptr.lo system_error.lo thread.lo
1018 @ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_2 = fstream-inst.lo \
1019 @ENABLE_EXTERN_TEMPLATE_TRUE@ string-inst.lo wstring-inst.lo
1020 am_libc__11convenience_la_OBJECTS = $(am__objects_1) $(am__objects_2)
1021@@ -301,8 +300,6 @@
1022 sources = \
1023 chrono.cc \
1024 condition_variable.cc \
1025- compatibility-c++0x.cc \
1026- compatibility-atomic-c++0x.cc \
1027 debug.cc \
1028 functexcept.cc \
1029 functional.cc \
1030@@ -333,11 +330,10 @@
1031 # OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
1032 # as the occasion calls for it.
1033 AM_CXXFLAGS = \
1034+ -std=gnu++11 \
1035 $(PIC_CXXFLAGS) \
1036 $(XTEMPLATE_FLAGS) \
1037- $(WARN_CXXFLAGS) \
1038- $(OPTIMIZE_CXXFLAGS) \
1039- $(CONFIG_CXXFLAGS) -std=gnu++11
1040+ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
1041
1042 AM_MAKEFLAGS = \
1043 "gxx_include_dir=$(gxx_include_dir)"
1044@@ -363,9 +359,11 @@
1045 # attempt to infer which configuration to use.
1046 # We have to put --tag disable-shared after --tag CXX lest things
1047 # CXX undo the affect of disable-shared.
1048-LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
1049- --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
1050- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
1051+LTCXXCOMPILE = \
1052+ $(LIBTOOL) --tag CXX --tag disable-shared \
1053+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
1054+ --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
1055+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
1056
1057 LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
1058
1059@@ -375,9 +373,11 @@
1060 # course is problematic at this point. So, we get the top-level
1061 # directory to configure libstdc++-v3 to use gcc as the C++
1062 # compilation driver.
1063-CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
1064- --mode=link $(CXX) \
1065- $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
1066+CXXLINK = \
1067+ $(LIBTOOL) --tag CXX --tag disable-shared \
1068+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
1069+ --mode=link $(CXX) \
1070+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
1071
1072 all: all-am
1073
1074@@ -612,7 +612,6 @@
1075
1076
1077 vpath % $(top_srcdir)/src/c++11
1078-vpath % $(top_srcdir)
1079
1080 # Tell versions [3.59,3.63) of GNU make to not export all variables.
1081 # Otherwise a system limit (for SysV at least) may be exceeded.
1082Index: libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc
1083===================================================================
1084--- libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
1085+++ libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc (.../branches/gcc-4_7-branch) (wersja 187293)
1086@@ -1,6 +1,6 @@
1087 // <atomic> compatibility -*- C++ -*-
1088
1089-// Copyright (C) 2008, 2009, 2010, 2011
1090+// Copyright (C) 2008, 2009, 2010, 2011, 2012
1091 // Free Software Foundation, Inc.
1092 //
1093 // This file is part of the GNU ISO C++ Library. This library is free
1094@@ -30,6 +30,8 @@
1095 // XXX GLIBCXX_ABI Deprecated
1096 // gcc-4.7.0
1097
1098+#ifdef PIC
1099+
1100 #define LOGSIZE 4
1101
1102 namespace
1103@@ -133,6 +135,7 @@
1104 _GLIBCXX_END_NAMESPACE_VERSION
1105 } // namespace std
1106
1107+#endif
1108
1109 // XXX GLIBCXX_ABI Deprecated
1110 // gcc-4.5.0
1111Index: libstdc++-v3/src/c++11/mutex.cc
1112===================================================================
1113--- libstdc++-v3/src/c++11/mutex.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
1114+++ libstdc++-v3/src/c++11/mutex.cc (.../branches/gcc-4_7-branch) (wersja 187293)
1115@@ -1,6 +1,6 @@
1116 // mutex -*- C++ -*-
1117
1118-// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
1119+// Copyright (C) 2008, 2009, 2010, 2012 Free Software Foundation, Inc.
1120 //
1121 // This file is part of the GNU ISO C++ Library. This library is free
1122 // software; you can redistribute it and/or modify it under the
1123@@ -92,30 +92,6 @@
1124 }
1125
1126 _GLIBCXX_END_NAMESPACE_VERSION
1127-} // namespace
1128+} // namespace std
1129
1130-// XXX GLIBCXX_ABI Deprecated
1131-// gcc-4.6.0
1132-// <mutex> export changes
1133-#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \
1134- && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) \
1135- && defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT)
1136-
1137-namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
1138-{
1139- std::defer_lock_t defer_lock;
1140- std::try_to_lock_t try_to_lock;
1141- std::adopt_lock_t adopt_lock;
1142-}
1143-
1144-#define _GLIBCXX_ASM_SYMVER(cur, old, version) \
1145- asm (".symver " #cur "," #old "@@" #version);
1146-
1147-_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx10adopt_lockE, _ZSt10adopt_lock, GLIBCXX_3.4.11)
1148-_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx10defer_lockE, _ZSt10defer_lock, GLIBCXX_3.4.11)
1149-_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx11try_to_lockE, _ZSt11try_to_lock, GLIBCXX_3.4.11)
1150-
1151-
1152-#endif
1153-
1154 #endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1
1155Index: libstdc++-v3/src/c++11/future.cc
1156===================================================================
1157--- libstdc++-v3/src/c++11/future.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
1158+++ libstdc++-v3/src/c++11/future.cc (.../branches/gcc-4_7-branch) (wersja 187293)
1159@@ -96,23 +96,3 @@
1160
1161 _GLIBCXX_END_NAMESPACE_VERSION
1162 } // namespace std
1163-
1164-// XXX GLIBCXX_ABI Deprecated
1165-// gcc-4.6.0
1166-// <future> export changes
1167-#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \
1168- && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) \
1169- && defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT)
1170-
1171-namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
1172-{
1173- const std::error_category* future_category = &__future_category_instance();
1174-}
1175-
1176-#define _GLIBCXX_ASM_SYMVER(cur, old, version) \
1177- asm (".symver " #cur "," #old "@@@" #version);
1178-
1179-_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx15future_categoryE, _ZSt15future_category, GLIBCXX_3.4.14)
1180-
1181-#endif
1182-
1183Index: libstdc++-v3/src/c++11/Makefile.am
1184===================================================================
1185--- libstdc++-v3/src/c++11/Makefile.am (.../tags/gcc_4_7_0_release) (wersja 187293)
1186+++ libstdc++-v3/src/c++11/Makefile.am (.../branches/gcc-4_7-branch) (wersja 187293)
1187@@ -32,8 +32,6 @@
1188 sources = \
1189 chrono.cc \
1190 condition_variable.cc \
1191- compatibility-c++0x.cc \
1192- compatibility-atomic-c++0x.cc \
1193 debug.cc \
1194 functexcept.cc \
1195 functional.cc \
1196@@ -60,7 +58,6 @@
1197 endif
1198
1199 vpath % $(top_srcdir)/src/c++11
1200-vpath % $(top_srcdir)
1201
1202 libc__11convenience_la_SOURCES = $(sources) $(inst_sources)
1203
1204@@ -70,11 +67,10 @@
1205 # OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
1206 # as the occasion calls for it.
1207 AM_CXXFLAGS = \
1208+ -std=gnu++11 \
1209 $(PIC_CXXFLAGS) \
1210 $(XTEMPLATE_FLAGS) \
1211- $(WARN_CXXFLAGS) \
1212- $(OPTIMIZE_CXXFLAGS) \
1213- $(CONFIG_CXXFLAGS) -std=gnu++11
1214+ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
1215
1216 AM_MAKEFLAGS = \
1217 "gxx_include_dir=$(gxx_include_dir)"
1218@@ -99,9 +95,11 @@
1219 # attempt to infer which configuration to use.
1220 # We have to put --tag disable-shared after --tag CXX lest things
1221 # CXX undo the affect of disable-shared.
1222-LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
1223- --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
1224- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
1225+LTCXXCOMPILE = \
1226+ $(LIBTOOL) --tag CXX --tag disable-shared \
1227+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
1228+ --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
1229+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
1230
1231 LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
1232
1233@@ -111,6 +109,8 @@
1234 # course is problematic at this point. So, we get the top-level
1235 # directory to configure libstdc++-v3 to use gcc as the C++
1236 # compilation driver.
1237-CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
1238- --mode=link $(CXX) \
1239- $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
1240+CXXLINK = \
1241+ $(LIBTOOL) --tag CXX --tag disable-shared \
1242+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
1243+ --mode=link $(CXX) \
1244+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
1245Index: libstdc++-v3/src/c++11/compatibility-c++0x.cc
1246===================================================================
1247--- libstdc++-v3/src/c++11/compatibility-c++0x.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
1248+++ libstdc++-v3/src/c++11/compatibility-c++0x.cc (.../branches/gcc-4_7-branch) (wersja 187293)
1249@@ -1,6 +1,6 @@
1250 // Compatibility symbols for previous versions, C++0x bits -*- C++ -*-
1251
1252-// Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
1253+// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
1254 //
1255 // This file is part of the GNU ISO C++ Library. This library is free
1256 // software; you can redistribute it and/or modify it under the
1257@@ -30,6 +30,8 @@
1258 # error "compatibility-c++0x.cc must be compiled with -std=gnu++0x"
1259 #endif
1260
1261+#ifdef PIC
1262+
1263 namespace std _GLIBCXX_VISIBILITY(default)
1264 {
1265 // gcc-4.4.0
1266@@ -119,3 +121,4 @@
1267 } // namespace chrono
1268 }
1269
1270+#endif
1271Index: libstdc++-v3/include/Makefile.in
1272===================================================================
1273--- libstdc++-v3/include/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187293)
1274+++ libstdc++-v3/include/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187293)
1275@@ -1497,7 +1497,7 @@
1276 sed -e "s,define __GLIBCXX__,define __GLIBCXX__ $$date," \
1277 -e "s,define _GLIBCXX_INLINE_VERSION, define _GLIBCXX_INLINE_VERSION $$ns_version," \
1278 -e "s,define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY, define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY $$visibility," \
1279- -e "s,define _GLIBCXX_EXTERN_TEMPLATE, define _GLIBCXX_EXTERN_TEMPLATE $$externtemplate," \
1280+ -e "s,define _GLIBCXX_EXTERN_TEMPLATE$$, define _GLIBCXX_EXTERN_TEMPLATE $$externtemplate," \
1281 -e "$$ldbl_compat" \
1282 < ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
1283 sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \
1284Index: libstdc++-v3/include/debug/forward_list
1285===================================================================
1286--- libstdc++-v3/include/debug/forward_list (.../tags/gcc_4_7_0_release) (wersja 187293)
1287+++ libstdc++-v3/include/debug/forward_list (.../branches/gcc-4_7-branch) (wersja 187293)
1288@@ -414,6 +414,10 @@
1289 }
1290
1291 void
1292+ splice_after(const_iterator __pos, forward_list& __list)
1293+ { splice_after(__pos, std::move(__list)); }
1294+
1295+ void
1296 splice_after(const_iterator __pos, forward_list&& __list,
1297 const_iterator __i)
1298 {
1299@@ -436,6 +440,11 @@
1300 }
1301
1302 void
1303+ splice_after(const_iterator __pos, forward_list& __list,
1304+ const_iterator __i)
1305+ { splice_after(__pos, std::move(__list), __i); }
1306+
1307+ void
1308 splice_after(const_iterator __pos, forward_list&& __list,
1309 const_iterator __before, const_iterator __last)
1310 {
1311@@ -481,6 +490,11 @@
1312 }
1313
1314 void
1315+ splice_after(const_iterator __pos, forward_list& __list,
1316+ const_iterator __before, const_iterator __last)
1317+ { splice_after(__pos, std::move(__list), __before, __last); }
1318+
1319+ void
1320 remove(const _Tp& __val)
1321 {
1322 _Base_iterator __x = _Base::before_begin();
1323@@ -561,6 +575,10 @@
1324 }
1325 }
1326
1327+ void
1328+ merge(forward_list& __list)
1329+ { merge(std::move(__list)); }
1330+
1331 template<typename _Comp>
1332 void
1333 merge(forward_list&& __list, _Comp __comp)
1334@@ -580,6 +598,11 @@
1335 }
1336 }
1337
1338+ template<typename _Comp>
1339+ void
1340+ merge(forward_list& __list, _Comp __comp)
1341+ { merge(std::move(__list), __comp); }
1342+
1343 using _Base::sort;
1344 using _Base::reverse;
1345
1346@@ -733,8 +756,12 @@
1347 typedef typename _It::iterator_type _BaseIt;
1348
1349 static bool
1350- _M_Is(_BaseIt __it, const _Sequence* __seq)
1351+ _S_Is(_BaseIt __it, const _Sequence* __seq)
1352 { return __it == __seq->_M_base().cbefore_begin(); }
1353+
1354+ static bool
1355+ _S_Is_Beginnest(_BaseIt __it, const _Sequence* __seq)
1356+ { return _S_Is(__it, __seq); }
1357 };
1358 }
1359
1360Index: libstdc++-v3/include/debug/safe_iterator.tcc
1361===================================================================
1362--- libstdc++-v3/include/debug/safe_iterator.tcc (.../tags/gcc_4_7_0_release) (wersja 187293)
1363+++ libstdc++-v3/include/debug/safe_iterator.tcc (.../branches/gcc-4_7-branch) (wersja 187293)
1364@@ -1,6 +1,6 @@
1365 // Debugging iterator implementation (out of line) -*- C++ -*-
1366
1367-// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011
1368+// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011, 2012
1369 // Free Software Foundation, Inc.
1370 //
1371 // This file is part of the GNU ISO C++ Library. This library is free
1372@@ -91,10 +91,11 @@
1373 /* We can only test for equality, but check if one of the
1374 iterators is at an extreme. */
1375 /* Optim for classic [begin, it) or [it, end) ranges, limit checks
1376- * when code is valid. */
1377- if (_M_is_begin() || __rhs._M_is_end())
1378+ * when code is valid. Note, for the special case of forward_list,
1379+ * before_begin replaces the role of begin. */
1380+ if (_M_is_beginnest() || __rhs._M_is_end())
1381 return true;
1382- if (_M_is_end() || __rhs._M_is_begin())
1383+ if (_M_is_end() || __rhs._M_is_beginnest())
1384 return false;
1385
1386 // Assume that this is a valid range; we can't check anything else
1387Index: libstdc++-v3/include/debug/safe_iterator.h
1388===================================================================
1389--- libstdc++-v3/include/debug/safe_iterator.h (.../tags/gcc_4_7_0_release) (wersja 187293)
1390+++ libstdc++-v3/include/debug/safe_iterator.h (.../branches/gcc-4_7-branch) (wersja 187293)
1391@@ -1,6 +1,6 @@
1392 // Safe iterator implementation -*- C++ -*-
1393
1394-// Copyright (C) 2003, 2004, 2005, 2006, 2009, 2010, 2011
1395+// Copyright (C) 2003, 2004, 2005, 2006, 2009, 2010, 2011, 2012
1396 // Free Software Foundation, Inc.
1397 //
1398 // This file is part of the GNU ISO C++ Library. This library is free
1399@@ -50,8 +50,12 @@
1400 typedef typename _It::iterator_type _BaseIt;
1401
1402 static bool
1403- _M_Is(_BaseIt __it, const _Sequence* __seq)
1404+ _S_Is(_BaseIt, const _Sequence*)
1405 { return false; }
1406+
1407+ static bool
1408+ _S_Is_Beginnest(_BaseIt __it, const _Sequence* __seq)
1409+ { return __it == __seq->_M_base().begin(); }
1410 };
1411
1412 /** Iterators that derive from _Safe_iterator_base but that aren't
1413@@ -169,7 +173,25 @@
1414 ._M_iterator(__x, "other"));
1415 }
1416
1417+#ifdef __GXX_EXPERIMENTAL_CXX0X__
1418 /**
1419+ * @brief Move construction.
1420+ * @post __x is singular and unattached
1421+ */
1422+ _Safe_iterator(_Safe_iterator&& __x) : _M_current()
1423+ {
1424+ _GLIBCXX_DEBUG_VERIFY(!__x._M_singular()
1425+ || __x._M_current == _Iterator(),
1426+ _M_message(__msg_init_copy_singular)
1427+ ._M_iterator(*this, "this")
1428+ ._M_iterator(__x, "other"));
1429+ std::swap(_M_current, __x._M_current);
1430+ this->_M_attach(__x._M_sequence);
1431+ __x._M_detach();
1432+ }
1433+#endif
1434+
1435+ /**
1436 * @brief Converting constructor from a mutable iterator to a
1437 * constant iterator.
1438 */
1439@@ -208,7 +230,28 @@
1440 return *this;
1441 }
1442
1443+#ifdef __GXX_EXPERIMENTAL_CXX0X__
1444 /**
1445+ * @brief Move assignment.
1446+ * @post __x is singular and unattached
1447+ */
1448+ _Safe_iterator&
1449+ operator=(_Safe_iterator&& __x)
1450+ {
1451+ _GLIBCXX_DEBUG_VERIFY(!__x._M_singular()
1452+ || __x._M_current == _Iterator(),
1453+ _M_message(__msg_copy_singular)
1454+ ._M_iterator(*this, "this")
1455+ ._M_iterator(__x, "other"));
1456+ _M_current = __x._M_current;
1457+ _M_attach(__x._M_sequence);
1458+ __x._M_detach();
1459+ __x._M_current = _Iterator();
1460+ return *this;
1461+ }
1462+#endif
1463+
1464+ /**
1465 * @brief Iterator dereference.
1466 * @pre iterator is dereferenceable
1467 */
1468@@ -422,7 +465,17 @@
1469 /// Is this iterator equal to the sequence's before_begin() iterator if
1470 /// any?
1471 bool _M_is_before_begin() const
1472- { return _BeforeBeginHelper<_Sequence>::_M_Is(base(), _M_get_sequence()); }
1473+ {
1474+ return _BeforeBeginHelper<_Sequence>::_S_Is(base(), _M_get_sequence());
1475+ }
1476+
1477+ /// Is this iterator equal to the sequence's before_begin() iterator if
1478+ /// any or begin() otherwise?
1479+ bool _M_is_beginnest() const
1480+ {
1481+ return _BeforeBeginHelper<_Sequence>::_S_Is_Beginnest(base(),
1482+ _M_get_sequence());
1483+ }
1484 };
1485
1486 template<typename _IteratorL, typename _IteratorR, typename _Sequence>
1487Index: libstdc++-v3/include/std/scoped_allocator
1488===================================================================
1489--- libstdc++-v3/include/std/scoped_allocator (.../tags/gcc_4_7_0_release) (wersja 187293)
1490+++ libstdc++-v3/include/std/scoped_allocator (.../branches/gcc-4_7-branch) (wersja 187293)
1491@@ -1,6 +1,6 @@
1492 // <scoped_allocator> -*- C++ -*-
1493
1494-// Copyright (C) 2011 Free Software Foundation, Inc.
1495+// Copyright (C) 2011, 2012 Free Software Foundation, Inc.
1496 //
1497 // This file is part of the GNU ISO C++ Library. This library is free
1498 // software; you can redistribute it and/or modify it under the
1499@@ -77,7 +77,7 @@
1500
1501 template<typename _Alloc>
1502 inline auto
1503- __do_outermost(_Alloc& __a, _Alloc&) -> decltype(__a.outer_allocator())
1504+ __do_outermost(_Alloc& __a, _Alloc*) -> decltype(__a.outer_allocator())
1505 { return __a.outer_allocator(); }
1506
1507 template<typename _Alloc>
1508@@ -87,8 +87,8 @@
1509
1510 template<typename _Alloc>
1511 inline auto
1512- __outermost(_Alloc& __a) -> decltype(__do_outermost(__a, __a))
1513- { return __do_outermost(__a, __a); }
1514+ __outermost(_Alloc& __a) -> decltype(__do_outermost(__a, &__a))
1515+ { return __do_outermost(__a, &__a); }
1516
1517 template<typename _OuterAlloc, typename... _InnerAllocs>
1518 class scoped_allocator_adaptor;
1519Index: libstdc++-v3/include/std/array
1520===================================================================
1521--- libstdc++-v3/include/std/array (.../tags/gcc_4_7_0_release) (wersja 187293)
1522+++ libstdc++-v3/include/std/array (.../branches/gcc-4_7-branch) (wersja 187293)
1523@@ -1,6 +1,7 @@
1524 // <array> -*- C++ -*-
1525
1526-// Copyright (C) 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
1527+// Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012
1528+// Free Software Foundation, Inc.
1529 //
1530 // This file is part of the GNU ISO C++ Library. This library is free
1531 // software; you can redistribute it and/or modify it under the
1532@@ -174,8 +175,9 @@
1533 const_reference
1534 at(size_type __n) const
1535 {
1536- return __n < _Nm ?
1537- _M_instance[__n] : __throw_out_of_range(__N("array::at"));
1538+ if (__n >= _Nm)
1539+ std::__throw_out_of_range(__N("array::at"));
1540+ return _M_instance[__n];
1541 }
1542 #endif
1543
1544Index: libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp
1545===================================================================
1546--- libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp (.../tags/gcc_4_7_0_release) (wersja 187293)
1547+++ libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp (.../branches/gcc-4_7-branch) (wersja 187293)
1548@@ -1,6 +1,6 @@
1549 // -*- C++ -*-
1550
1551-// Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
1552+// Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
1553 // Free Software Foundation, Inc.
1554 //
1555 // This file is part of the GNU ISO C++ Library. This library is free
1556@@ -188,7 +188,11 @@
1557 __try
1558 {
1559 while (child_it != p_icp->end())
1560- a_p_children[child_i++] = recursive_copy_node(*(child_it++));
1561+ {
1562+ a_p_children[child_i] = recursive_copy_node(*(child_it));
1563+ child_i++;
1564+ child_it++;
1565+ }
1566 p_ret = s_inode_allocator.allocate(1);
1567 }
1568 __catch(...)
1569Index: libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp
1570===================================================================
1571--- libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp (.../tags/gcc_4_7_0_release) (wersja 187293)
1572+++ libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp (.../branches/gcc-4_7-branch) (wersja 187293)
1573@@ -1,6 +1,6 @@
1574 // -*- C++ -*-
1575
1576-// Copyright (C) 2005, 2006, 2009, 2011 Free Software Foundation, Inc.
1577+// Copyright (C) 2005, 2006, 2009, 2011, 2012 Free Software Foundation, Inc.
1578 //
1579 // This file is part of the GNU ISO C++ Library. This library is free
1580 // software; you can redistribute it and/or modify it under the terms
1581@@ -50,7 +50,11 @@
1582 /// Base type for PATRICIA trees.
1583 struct pat_trie_base
1584 {
1585- /// Three types of nodes.
1586+ /**
1587+ * @brief Three types of nodes.
1588+ *
1589+ * i_node is used by _Inode, leaf_node by _Leaf, and head_node by _Head.
1590+ */
1591 enum node_type
1592 {
1593 i_node,
1594Index: libstdc++-v3/include/ext/functional
1595===================================================================
1596--- libstdc++-v3/include/ext/functional (.../tags/gcc_4_7_0_release) (wersja 187293)
1597+++ libstdc++-v3/include/ext/functional (.../branches/gcc-4_7-branch) (wersja 187293)
1598@@ -1,6 +1,6 @@
1599 // Functional extensions -*- C++ -*-
1600
1601-// Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010
1602+// Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2012
1603 // Free Software Foundation, Inc.
1604 //
1605 // This file is part of the GNU ISO C++ Library. This library is free
1606@@ -183,7 +183,13 @@
1607 * @addtogroup SGIextensions
1608 */
1609 template <class _Tp>
1610- struct identity : public std::_Identity<_Tp> {};
1611+ struct identity
1612+#ifdef __GXX_EXPERIMENTAL_CXX0X__
1613+ : public std::unary_function<_Tp,_Tp>,
1614+ public std::_Identity<_Tp> {};
1615+#else
1616+ : public std::_Identity<_Tp> {};
1617+#endif
1618
1619 /** @c select1st and @c select2nd are extensions provided by SGI. Their
1620 * @c operator()s
1621@@ -197,11 +203,23 @@
1622 */
1623 /// An \link SGIextensions SGI extension \endlink.
1624 template <class _Pair>
1625- struct select1st : public std::_Select1st<_Pair> {};
1626+ struct select1st
1627+#ifdef __GXX_EXPERIMENTAL_CXX0X__
1628+ : public std::unary_function<_Pair, typename _Pair::first_type>,
1629+ public std::_Select1st<_Pair> {};
1630+#else
1631+ : public std::_Select1st<_Pair> {};
1632+#endif
1633
1634 /// An \link SGIextensions SGI extension \endlink.
1635 template <class _Pair>
1636- struct select2nd : public std::_Select2nd<_Pair> {};
1637+ struct select2nd
1638+#ifdef __GXX_EXPERIMENTAL_CXX0X__
1639+ : public std::unary_function<_Pair, typename _Pair::second_type>,
1640+ public std::_Select2nd<_Pair> {};
1641+#else
1642+ : public std::_Select2nd<_Pair> {};
1643+#endif
1644 /** @} */
1645
1646 // extension documented next
1647Index: libstdc++-v3/include/bits/hashtable.h
1648===================================================================
1649--- libstdc++-v3/include/bits/hashtable.h (.../tags/gcc_4_7_0_release) (wersja 187293)
1650+++ libstdc++-v3/include/bits/hashtable.h (.../branches/gcc-4_7-branch) (wersja 187293)
1651@@ -1,6 +1,7 @@
1652 // hashtable.h header -*- C++ -*-
1653
1654-// Copyright (C) 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
1655+// Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012
1656+// Free Software Foundation, Inc.
1657 //
1658 // This file is part of the GNU ISO C++ Library. This library is free
1659 // software; you can redistribute it and/or modify it under the
1660@@ -596,6 +597,12 @@
1661 // reserve, if present, comes from _Rehash_base.
1662
1663 private:
1664+ // Helper rehash method used when keys are unique.
1665+ void _M_rehash_aux(size_type __n, std::true_type);
1666+
1667+ // Helper rehash method used when keys can be non-unique.
1668+ void _M_rehash_aux(size_type __n, std::false_type);
1669+
1670 // Unconditionally change size of bucket array to n, restore hash policy
1671 // state to __state on exception.
1672 void _M_rehash(size_type __n, const _RehashPolicyState& __state);
1673@@ -1592,41 +1599,143 @@
1674 {
1675 __try
1676 {
1677- _Bucket* __new_buckets = _M_allocate_buckets(__n);
1678- _Node* __p = _M_begin();
1679- _M_before_begin._M_nxt = nullptr;
1680- std::size_t __cur_bbegin_bkt;
1681- while (__p)
1682+ _M_rehash_aux(__n, integral_constant<bool, __uk>());
1683+ }
1684+ __catch(...)
1685+ {
1686+ // A failure here means that buckets allocation failed. We only
1687+ // have to restore hash policy previous state.
1688+ _M_rehash_policy._M_reset(__state);
1689+ __throw_exception_again;
1690+ }
1691+ }
1692+
1693+ // Rehash when there is no equivalent elements.
1694+ template<typename _Key, typename _Value,
1695+ typename _Allocator, typename _ExtractKey, typename _Equal,
1696+ typename _H1, typename _H2, typename _Hash, typename _RehashPolicy,
1697+ bool __chc, bool __cit, bool __uk>
1698+ void
1699+ _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal,
1700+ _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>::
1701+ _M_rehash_aux(size_type __n, std::true_type)
1702+ {
1703+ _Bucket* __new_buckets = _M_allocate_buckets(__n);
1704+ _Node* __p = _M_begin();
1705+ _M_before_begin._M_nxt = nullptr;
1706+ std::size_t __bbegin_bkt;
1707+ while (__p)
1708+ {
1709+ _Node* __next = __p->_M_next();
1710+ std::size_t __bkt = _HCBase::_M_bucket_index(__p, __n);
1711+ if (!__new_buckets[__bkt])
1712 {
1713- _Node* __next = __p->_M_next();
1714- std::size_t __new_index = _HCBase::_M_bucket_index(__p, __n);
1715- if (!__new_buckets[__new_index])
1716+ __p->_M_nxt = _M_before_begin._M_nxt;
1717+ _M_before_begin._M_nxt = __p;
1718+ __new_buckets[__bkt] = &_M_before_begin;
1719+ if (__p->_M_nxt)
1720+ __new_buckets[__bbegin_bkt] = __p;
1721+ __bbegin_bkt = __bkt;
1722+ }
1723+ else
1724+ {
1725+ __p->_M_nxt = __new_buckets[__bkt]->_M_nxt;
1726+ __new_buckets[__bkt]->_M_nxt = __p;
1727+ }
1728+ __p = __next;
1729+ }
1730+ _M_deallocate_buckets(_M_buckets, _M_bucket_count);
1731+ _M_bucket_count = __n;
1732+ _M_buckets = __new_buckets;
1733+ }
1734+
1735+ // Rehash when there can be equivalent elements, preserve their relative
1736+ // order.
1737+ template<typename _Key, typename _Value,
1738+ typename _Allocator, typename _ExtractKey, typename _Equal,
1739+ typename _H1, typename _H2, typename _Hash, typename _RehashPolicy,
1740+ bool __chc, bool __cit, bool __uk>
1741+ void
1742+ _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal,
1743+ _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>::
1744+ _M_rehash_aux(size_type __n, std::false_type)
1745+ {
1746+ _Bucket* __new_buckets = _M_allocate_buckets(__n);
1747+
1748+ _Node* __p = _M_begin();
1749+ _M_before_begin._M_nxt = nullptr;
1750+ std::size_t __bbegin_bkt;
1751+ std::size_t __prev_bkt;
1752+ _Node* __prev_p = nullptr;
1753+ bool __check_bucket = false;
1754+
1755+ while (__p)
1756+ {
1757+ _Node* __next = __p->_M_next();
1758+ std::size_t __bkt = _HCBase::_M_bucket_index(__p, __n);
1759+
1760+ if (__prev_p && __prev_bkt == __bkt)
1761+ {
1762+ // Previous insert was already in this bucket, we insert after
1763+ // the previously inserted one to preserve equivalent elements
1764+ // relative order.
1765+ __p->_M_nxt = __prev_p->_M_nxt;
1766+ __prev_p->_M_nxt = __p;
1767+
1768+ // Inserting after a node in a bucket require to check that we
1769+ // haven't change the bucket last node, in this case next
1770+ // bucket containing its before begin node must be updated. We
1771+ // schedule a check as soon as we move out of the sequence of
1772+ // equivalent nodes to limit the number of checks.
1773+ __check_bucket = true;
1774+ }
1775+ else
1776+ {
1777+ if (__check_bucket)
1778 {
1779+ // Check if we shall update the next bucket because of insertions
1780+ // into __prev_bkt bucket.
1781+ if (__prev_p->_M_nxt)
1782+ {
1783+ std::size_t __next_bkt
1784+ = _HCBase::_M_bucket_index(__prev_p->_M_next(), __n);
1785+ if (__next_bkt != __prev_bkt)
1786+ __new_buckets[__next_bkt] = __prev_p;
1787+ }
1788+ __check_bucket = false;
1789+ }
1790+ if (!__new_buckets[__bkt])
1791+ {
1792 __p->_M_nxt = _M_before_begin._M_nxt;
1793 _M_before_begin._M_nxt = __p;
1794- __new_buckets[__new_index] = &_M_before_begin;
1795+ __new_buckets[__bkt] = &_M_before_begin;
1796 if (__p->_M_nxt)
1797- __new_buckets[__cur_bbegin_bkt] = __p;
1798- __cur_bbegin_bkt = __new_index;
1799+ __new_buckets[__bbegin_bkt] = __p;
1800+ __bbegin_bkt = __bkt;
1801 }
1802 else
1803 {
1804- __p->_M_nxt = __new_buckets[__new_index]->_M_nxt;
1805- __new_buckets[__new_index]->_M_nxt = __p;
1806+ __p->_M_nxt = __new_buckets[__bkt]->_M_nxt;
1807+ __new_buckets[__bkt]->_M_nxt = __p;
1808 }
1809- __p = __next;
1810 }
1811- _M_deallocate_buckets(_M_buckets, _M_bucket_count);
1812- _M_bucket_count = __n;
1813- _M_buckets = __new_buckets;
1814+
1815+ __prev_p = __p;
1816+ __prev_bkt = __bkt;
1817+ __p = __next;
1818 }
1819- __catch(...)
1820+
1821+ if (__check_bucket && __prev_p->_M_nxt)
1822 {
1823- // A failure here means that buckets allocation failed. We only
1824- // have to restore hash policy previous state.
1825- _M_rehash_policy._M_reset(__state);
1826- __throw_exception_again;
1827+ std::size_t __next_bkt
1828+ = _HCBase::_M_bucket_index(__prev_p->_M_next(), __n);
1829+ if (__next_bkt != __prev_bkt)
1830+ __new_buckets[__next_bkt] = __prev_p;
1831 }
1832+
1833+ _M_deallocate_buckets(_M_buckets, _M_bucket_count);
1834+ _M_bucket_count = __n;
1835+ _M_buckets = __new_buckets;
1836 }
1837
1838 _GLIBCXX_END_NAMESPACE_VERSION
1839Index: libstdc++-v3/include/bits/stl_algobase.h
1840===================================================================
1841--- libstdc++-v3/include/bits/stl_algobase.h (.../tags/gcc_4_7_0_release) (wersja 187293)
1842+++ libstdc++-v3/include/bits/stl_algobase.h (.../branches/gcc-4_7-branch) (wersja 187293)
1843@@ -982,14 +982,26 @@
1844 __lg(int __n)
1845 { return sizeof(int) * __CHAR_BIT__ - 1 - __builtin_clz(__n); }
1846
1847+ inline unsigned
1848+ __lg(unsigned __n)
1849+ { return sizeof(int) * __CHAR_BIT__ - 1 - __builtin_clz(__n); }
1850+
1851 inline long
1852 __lg(long __n)
1853 { return sizeof(long) * __CHAR_BIT__ - 1 - __builtin_clzl(__n); }
1854
1855+ inline unsigned long
1856+ __lg(unsigned long __n)
1857+ { return sizeof(long) * __CHAR_BIT__ - 1 - __builtin_clzl(__n); }
1858+
1859 inline long long
1860 __lg(long long __n)
1861 { return sizeof(long long) * __CHAR_BIT__ - 1 - __builtin_clzll(__n); }
1862
1863+ inline unsigned long long
1864+ __lg(unsigned long long __n)
1865+ { return sizeof(long long) * __CHAR_BIT__ - 1 - __builtin_clzll(__n); }
1866+
1867 _GLIBCXX_END_NAMESPACE_VERSION
1868
1869 _GLIBCXX_BEGIN_NAMESPACE_ALGO
1870Index: libstdc++-v3/include/bits/hashtable_policy.h
1871===================================================================
1872--- libstdc++-v3/include/bits/hashtable_policy.h (.../tags/gcc_4_7_0_release) (wersja 187293)
1873+++ libstdc++-v3/include/bits/hashtable_policy.h (.../branches/gcc-4_7-branch) (wersja 187293)
1874@@ -533,7 +533,9 @@
1875
1876 // Specialization using EBO.
1877 template<int _Nm, typename _Tp>
1878- struct _Hashtable_ebo_helper<_Nm, _Tp, true> : private _Tp
1879+ struct _Hashtable_ebo_helper<_Nm, _Tp, true>
1880+ // See PR53067.
1881+ : public _Tp
1882 {
1883 _Hashtable_ebo_helper() = default;
1884 _Hashtable_ebo_helper(const _Tp& __tp) : _Tp(__tp)
1885@@ -595,8 +597,9 @@
1886 template<typename _Key, typename _Value, typename _ExtractKey,
1887 typename _H1, typename _H2, typename _Hash>
1888 struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash, false>
1889- : private _Hashtable_ebo_helper<0, _ExtractKey>,
1890- private _Hashtable_ebo_helper<1, _Hash>
1891+ // See PR53067.
1892+ : public _Hashtable_ebo_helper<0, _ExtractKey>,
1893+ public _Hashtable_ebo_helper<1, _Hash>
1894 {
1895 private:
1896 typedef _Hashtable_ebo_helper<0, _ExtractKey> _EboExtractKey;
1897@@ -669,9 +672,10 @@
1898 typename _H1, typename _H2>
1899 struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2,
1900 _Default_ranged_hash, false>
1901- : private _Hashtable_ebo_helper<0, _ExtractKey>,
1902- private _Hashtable_ebo_helper<1, _H1>,
1903- private _Hashtable_ebo_helper<2, _H2>
1904+ // See PR53067.
1905+ : public _Hashtable_ebo_helper<0, _ExtractKey>,
1906+ public _Hashtable_ebo_helper<1, _H1>,
1907+ public _Hashtable_ebo_helper<2, _H2>
1908 {
1909 private:
1910 typedef _Hashtable_ebo_helper<0, _ExtractKey> _EboExtractKey;
1911@@ -748,9 +752,10 @@
1912 typename _H1, typename _H2>
1913 struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2,
1914 _Default_ranged_hash, true>
1915- : private _Hashtable_ebo_helper<0, _ExtractKey>,
1916- private _Hashtable_ebo_helper<1, _H1>,
1917- private _Hashtable_ebo_helper<2, _H2>
1918+ // See PR53067.
1919+ : public _Hashtable_ebo_helper<0, _ExtractKey>,
1920+ public _Hashtable_ebo_helper<1, _H1>,
1921+ public _Hashtable_ebo_helper<2, _H2>
1922 {
1923 private:
1924 typedef _Hashtable_ebo_helper<0, _ExtractKey> _EboExtractKey;
1925@@ -853,9 +858,10 @@
1926 typename _H1, typename _H2, typename _Hash,
1927 bool __cache_hash_code>
1928 struct _Hashtable_base
1929+ // See PR53067.
1930 : public _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash,
1931 __cache_hash_code>,
1932- private _Hashtable_ebo_helper<0, _Equal>
1933+ public _Hashtable_ebo_helper<0, _Equal>
1934 {
1935 private:
1936 typedef _Hashtable_ebo_helper<0, _Equal> _EboEqual;
1937@@ -906,7 +912,8 @@
1938 typename _H1, typename _H2, typename _Hash>
1939 struct _Local_iterator_base<_Key, _Value, _ExtractKey,
1940 _H1, _H2, _Hash, true>
1941- : private _H2
1942+ // See PR53067.
1943+ : public _H2
1944 {
1945 _Local_iterator_base() = default;
1946 _Local_iterator_base(_Hash_node<_Value, true>* __p,
1947@@ -937,8 +944,9 @@
1948 typename _H1, typename _H2, typename _Hash>
1949 struct _Local_iterator_base<_Key, _Value, _ExtractKey,
1950 _H1, _H2, _Hash, false>
1951- : private _Hash_code_base<_Key, _Value, _ExtractKey,
1952- _H1, _H2, _Hash, false>
1953+ // See PR53067.
1954+ : public _Hash_code_base<_Key, _Value, _ExtractKey,
1955+ _H1, _H2, _Hash, false>
1956 {
1957 _Local_iterator_base() = default;
1958 _Local_iterator_base(_Hash_node<_Value, false>* __p,
1959Index: libstdc++-v3/include/bits/forward_list.h
1960===================================================================
1961--- libstdc++-v3/include/bits/forward_list.h (.../tags/gcc_4_7_0_release) (wersja 187293)
1962+++ libstdc++-v3/include/bits/forward_list.h (.../branches/gcc-4_7-branch) (wersja 187293)
1963@@ -1,6 +1,6 @@
1964 // <forward_list.h> -*- C++ -*-
1965
1966-// Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
1967+// Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
1968 //
1969 // This file is part of the GNU ISO C++ Library. This library is free
1970 // software; you can redistribute it and/or modify it under the
1971@@ -53,15 +53,6 @@
1972 _Fwd_list_node_base* _M_next;
1973
1974 _Fwd_list_node_base*
1975- _M_transfer_after(_Fwd_list_node_base* __begin)
1976- {
1977- _Fwd_list_node_base* __end = __begin;
1978- while (__end && __end->_M_next)
1979- __end = __end->_M_next;
1980- return _M_transfer_after(__begin, __end);
1981- }
1982-
1983- _Fwd_list_node_base*
1984 _M_transfer_after(_Fwd_list_node_base* __begin,
1985 _Fwd_list_node_base* __end)
1986 {
1987@@ -606,8 +597,8 @@
1988 * in the range [@a __first,@a __last).
1989 *
1990 * Note that the assignment completely changes the %forward_list and
1991- * that the resulting %forward_list's size is the same as the number
1992- * of elements assigned. Old data may be lost.
1993+ * that the number of elements of the resulting %forward_list's is the
1994+ * same as the number of elements assigned. Old data is lost.
1995 */
1996 template<typename _InputIterator>
1997 void
1998@@ -622,10 +613,10 @@
1999 * @param __n Number of elements to be assigned.
2000 * @param __val Value to be assigned.
2001 *
2002- * This function fills a %forward_list with @a __n copies of the given
2003- * value. Note that the assignment completely changes the
2004- * %forward_list and that the resulting %forward_list's size is the
2005- * same as the number of elements assigned. Old data may be lost.
2006+ * This function fills a %forward_list with @a __n copies of the
2007+ * given value. Note that the assignment completely changes the
2008+ * %forward_list, and that the resulting %forward_list has __n
2009+ * elements. Old data is lost.
2010 */
2011 void
2012 assign(size_type __n, const _Tp& __val)
2013@@ -744,7 +735,7 @@
2014 { return this->_M_impl._M_head._M_next == 0; }
2015
2016 /**
2017- * Returns the largest possible size of %forward_list.
2018+ * Returns the largest possible number of elements of %forward_list.
2019 */
2020 size_type
2021 max_size() const noexcept
2022@@ -926,7 +917,8 @@
2023 * does not invalidate iterators and references.
2024 */
2025 iterator
2026- insert_after(const_iterator __pos, std::initializer_list<_Tp> __il);
2027+ insert_after(const_iterator __pos, std::initializer_list<_Tp> __il)
2028+ { return insert_after(__pos, __il.begin(), __il.end()); }
2029
2030 /**
2031 * @brief Removes the element pointed to by the iterator following
2032@@ -997,9 +989,9 @@
2033 *
2034 * This function will %resize the %forward_list to the specified
2035 * number of elements. If the number is smaller than the
2036- * %forward_list's current size the %forward_list is truncated,
2037- * otherwise the %forward_list is extended and the new elements
2038- * are default constructed.
2039+ * %forward_list's current number of elements the %forward_list
2040+ * is truncated, otherwise the %forward_list is extended and the
2041+ * new elements are default constructed.
2042 */
2043 void
2044 resize(size_type __sz);
2045@@ -1012,9 +1004,9 @@
2046 *
2047 * This function will %resize the %forward_list to the specified
2048 * number of elements. If the number is smaller than the
2049- * %forward_list's current size the %forward_list is truncated,
2050- * otherwise the %forward_list is extended and new elements are
2051- * populated with given data.
2052+ * %forward_list's current number of elements the %forward_list
2053+ * is truncated, otherwise the %forward_list is extended and new
2054+ * elements are populated with given data.
2055 */
2056 void
2057 resize(size_type __sz, const value_type& __val);
2058@@ -1048,9 +1040,13 @@
2059 splice_after(const_iterator __pos, forward_list&& __list)
2060 {
2061 if (!__list.empty())
2062- _M_splice_after(__pos, std::move(__list));
2063+ _M_splice_after(__pos, __list.before_begin(), __list.end());
2064 }
2065
2066+ void
2067+ splice_after(const_iterator __pos, forward_list& __list)
2068+ { splice_after(__pos, std::move(__list)); }
2069+
2070 /**
2071 * @brief Insert element from another %forward_list.
2072 * @param __pos Iterator referencing the element to insert after.
2073@@ -1063,16 +1059,13 @@
2074 */
2075 void
2076 splice_after(const_iterator __pos, forward_list&& __list,
2077+ const_iterator __i);
2078+
2079+ void
2080+ splice_after(const_iterator __pos, forward_list& __list,
2081 const_iterator __i)
2082- {
2083- const_iterator __j = __i;
2084- ++__j;
2085- if (__pos == __i || __pos == __j)
2086- return;
2087+ { splice_after(__pos, std::move(__list), __i); }
2088
2089- splice_after(__pos, std::move(__list), __i, __j);
2090- }
2091-
2092 /**
2093 * @brief Insert range from another %forward_list.
2094 * @param __pos Iterator referencing the element to insert after.
2095@@ -1087,9 +1080,15 @@
2096 * Undefined if @a __pos is in (__before,__last).
2097 */
2098 void
2099- splice_after(const_iterator __pos, forward_list&& __list,
2100- const_iterator __before, const_iterator __last);
2101+ splice_after(const_iterator __pos, forward_list&&,
2102+ const_iterator __before, const_iterator __last)
2103+ { _M_splice_after(__pos, __before, __last); }
2104
2105+ void
2106+ splice_after(const_iterator __pos, forward_list&,
2107+ const_iterator __before, const_iterator __last)
2108+ { _M_splice_after(__pos, __before, __last); }
2109+
2110 /**
2111 * @brief Remove all elements equal to value.
2112 * @param __val The value to remove.
2113@@ -1131,7 +1130,7 @@
2114 */
2115 void
2116 unique()
2117- { this->unique(std::equal_to<_Tp>()); }
2118+ { unique(std::equal_to<_Tp>()); }
2119
2120 /**
2121 * @brief Remove consecutive elements satisfying a predicate.
2122@@ -1160,8 +1159,12 @@
2123 */
2124 void
2125 merge(forward_list&& __list)
2126- { this->merge(std::move(__list), std::less<_Tp>()); }
2127+ { merge(std::move(__list), std::less<_Tp>()); }
2128
2129+ void
2130+ merge(forward_list& __list)
2131+ { merge(std::move(__list)); }
2132+
2133 /**
2134 * @brief Merge sorted lists according to comparison function.
2135 * @param __list Sorted list to merge.
2136@@ -1177,6 +1180,11 @@
2137 void
2138 merge(forward_list&& __list, _Comp __comp);
2139
2140+ template<typename _Comp>
2141+ void
2142+ merge(forward_list& __list, _Comp __comp)
2143+ { merge(std::move(__list), __comp); }
2144+
2145 /**
2146 * @brief Sort the elements of the list.
2147 *
2148@@ -1185,7 +1193,7 @@
2149 */
2150 void
2151 sort()
2152- { this->sort(std::less<_Tp>()); }
2153+ { sort(std::less<_Tp>()); }
2154
2155 /**
2156 * @brief Sort the forward_list using a comparison function.
2157@@ -1225,7 +1233,8 @@
2158
2159 // Called by splice_after and insert_after.
2160 iterator
2161- _M_splice_after(const_iterator __pos, forward_list&& __list);
2162+ _M_splice_after(const_iterator __pos, const_iterator __before,
2163+ const_iterator __last);
2164
2165 // Called by forward_list(n).
2166 void
2167@@ -1240,11 +1249,11 @@
2168 * @brief Forward list equality comparison.
2169 * @param __lx A %forward_list
2170 * @param __ly A %forward_list of the same type as @a __lx.
2171- * @return True iff the size and elements of the forward lists are equal.
2172+ * @return True iff the elements of the forward lists are equal.
2173 *
2174- * This is an equivalence relation. It is linear in the size of the
2175- * forward lists. Deques are considered equivalent if corresponding
2176- * elements compare equal.
2177+ * This is an equivalence relation. It is linear in the number of
2178+ * elements of the forward lists. Deques are considered equivalent
2179+ * if corresponding elements compare equal.
2180 */
2181 template<typename _Tp, typename _Alloc>
2182 bool
2183@@ -1257,8 +1266,9 @@
2184 * @param __ly A %forward_list of the same type as @a __lx.
2185 * @return True iff @a __lx is lexicographically less than @a __ly.
2186 *
2187- * This is a total ordering relation. It is linear in the size of the
2188- * forward lists. The elements must be comparable with @c <.
2189+ * This is a total ordering relation. It is linear in the number of
2190+ * elements of the forward lists. The elements must be comparable
2191+ * with @c <.
2192 *
2193 * See std::lexicographical_compare() for how the determination is made.
2194 */
2195Index: libstdc++-v3/include/bits/stl_vector.h
2196===================================================================
2197--- libstdc++-v3/include/bits/stl_vector.h (.../tags/gcc_4_7_0_release) (wersja 187293)
2198+++ libstdc++-v3/include/bits/stl_vector.h (.../branches/gcc-4_7-branch) (wersja 187293)
2199@@ -419,36 +419,18 @@
2200 * @brief %Vector move assignment operator.
2201 * @param __x A %vector of identical element and allocator types.
2202 *
2203- * The contents of @a __x are moved into this %vector (without copying).
2204+ * The contents of @a __x are moved into this %vector (without copying,
2205+ * if the allocators permit it).
2206 * @a __x is a valid, but unspecified %vector.
2207 */
2208 vector&
2209 operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move())
2210 {
2211- if (_Alloc_traits::_S_propagate_on_move_assign())
2212- {
2213- // We're moving the rvalue's allocator so can move the data too.
2214- const vector __tmp(std::move(*this)); // discard existing data
2215- this->_M_impl._M_swap_data(__x._M_impl);
2216- std::__alloc_on_move(_M_get_Tp_allocator(),
2217- __x._M_get_Tp_allocator());
2218- }
2219- else if (_Alloc_traits::_S_always_equal()
2220- || __x._M_get_Tp_allocator() == this->_M_get_Tp_allocator())
2221- {
2222- // The rvalue's allocator can free our storage and vice versa,
2223- // so can swap the data storage after destroying our contents.
2224- this->clear();
2225- this->_M_impl._M_swap_data(__x._M_impl);
2226- }
2227- else
2228- {
2229- // The rvalue's allocator cannot be moved, or is not equal,
2230- // so we need to individually move each element.
2231- this->assign(std::__make_move_if_noexcept_iterator(__x.begin()),
2232- std::__make_move_if_noexcept_iterator(__x.end()));
2233- __x.clear();
2234- }
2235+ constexpr bool __move_storage =
2236+ _Alloc_traits::_S_propagate_on_move_assign()
2237+ || _Alloc_traits::_S_always_equal();
2238+ _M_move_assign(std::move(__x),
2239+ integral_constant<bool, __move_storage>());
2240 return *this;
2241 }
2242
2243@@ -1337,6 +1319,39 @@
2244 std::_Destroy(__pos, this->_M_impl._M_finish, _M_get_Tp_allocator());
2245 this->_M_impl._M_finish = __pos;
2246 }
2247+
2248+#ifdef __GXX_EXPERIMENTAL_CXX0X__
2249+ private:
2250+ // Constant-time move assignment when source object's memory can be
2251+ // moved, either because the source's allocator will move too
2252+ // or because the allocators are equal.
2253+ void
2254+ _M_move_assign(vector&& __x, std::true_type) noexcept
2255+ {
2256+ const vector __tmp(std::move(*this));
2257+ this->_M_impl._M_swap_data(__x._M_impl);
2258+ if (_Alloc_traits::_S_propagate_on_move_assign())
2259+ std::__alloc_on_move(_M_get_Tp_allocator(),
2260+ __x._M_get_Tp_allocator());
2261+ }
2262+
2263+ // Do move assignment when it might not be possible to move source
2264+ // object's memory, resulting in a linear-time operation.
2265+ void
2266+ _M_move_assign(vector&& __x, std::false_type)
2267+ {
2268+ if (__x._M_get_Tp_allocator() == this->_M_get_Tp_allocator())
2269+ _M_move_assign(std::move(__x), std::true_type());
2270+ else
2271+ {
2272+ // The rvalue's allocator cannot be moved and is not equal,
2273+ // so we need to individually move each element.
2274+ this->assign(std::__make_move_if_noexcept_iterator(__x.begin()),
2275+ std::__make_move_if_noexcept_iterator(__x.end()));
2276+ __x.clear();
2277+ }
2278+ }
2279+#endif
2280 };
2281
2282
2283Index: libstdc++-v3/include/bits/ptr_traits.h
2284===================================================================
2285--- libstdc++-v3/include/bits/ptr_traits.h (.../tags/gcc_4_7_0_release) (wersja 187293)
2286+++ libstdc++-v3/include/bits/ptr_traits.h (.../branches/gcc-4_7-branch) (wersja 187293)
2287@@ -140,14 +140,8 @@
2288 /// Type used to represent the difference between two pointers
2289 typedef typename __ptrtr_diff_type<_Ptr>::__type difference_type;
2290
2291- private:
2292 template<typename _Up>
2293 using rebind = typename __ptrtr_rebind<_Ptr, _Up>::__type;
2294-
2295- // allocator_traits needs to use __rebind
2296- template<typename> friend struct allocator_traits;
2297- template<typename> friend struct pointer_traits;
2298- template<typename, typename> friend class __ptrtr_rebind_helper2;
2299 };
2300
2301 /**
2302Index: libstdc++-v3/include/bits/stl_algo.h
2303===================================================================
2304--- libstdc++-v3/include/bits/stl_algo.h (.../tags/gcc_4_7_0_release) (wersja 187293)
2305+++ libstdc++-v3/include/bits/stl_algo.h (.../branches/gcc-4_7-branch) (wersja 187293)
2306@@ -244,7 +244,6 @@
2307 }
2308 }
2309
2310-#ifdef __GXX_EXPERIMENTAL_CXX0X__
2311 /// This is an overload used by find_if_not() for the Input Iterator case.
2312 template<typename _InputIterator, typename _Predicate>
2313 inline _InputIterator
2314@@ -303,8 +302,30 @@
2315 return __last;
2316 }
2317 }
2318-#endif
2319
2320+ /// Provided for stable_partition to use.
2321+ template<typename _InputIterator, typename _Predicate>
2322+ inline _InputIterator
2323+ __find_if_not(_InputIterator __first, _InputIterator __last,
2324+ _Predicate __pred)
2325+ {
2326+ return std::__find_if_not(__first, __last, __pred,
2327+ std::__iterator_category(__first));
2328+ }
2329+
2330+ /// Like find_if_not(), but uses and updates a count of the
2331+ /// remaining range length instead of comparing against an end
2332+ /// iterator.
2333+ template<typename _InputIterator, typename _Predicate, typename _Distance>
2334+ _InputIterator
2335+ __find_if_not_n(_InputIterator __first, _Distance& __len, _Predicate __pred)
2336+ {
2337+ for (; __len; --__len, ++__first)
2338+ if (!bool(__pred(*__first)))
2339+ break;
2340+ return __first;
2341+ }
2342+
2343 // set_difference
2344 // set_intersection
2345 // set_symmetric_difference
2346@@ -789,8 +810,7 @@
2347 __glibcxx_function_requires(_UnaryPredicateConcept<_Predicate,
2348 typename iterator_traits<_InputIterator>::value_type>)
2349 __glibcxx_requires_valid_range(__first, __last);
2350- return std::__find_if_not(__first, __last, __pred,
2351- std::__iterator_category(__first));
2352+ return std::__find_if_not(__first, __last, __pred);
2353 }
2354
2355 /**
2356@@ -1784,30 +1804,39 @@
2357 // partition
2358
2359 /// This is a helper function...
2360+ /// Requires __len != 0 and !__pred(*__first),
2361+ /// same as __stable_partition_adaptive.
2362 template<typename _ForwardIterator, typename _Predicate, typename _Distance>
2363 _ForwardIterator
2364 __inplace_stable_partition(_ForwardIterator __first,
2365- _ForwardIterator __last,
2366 _Predicate __pred, _Distance __len)
2367 {
2368 if (__len == 1)
2369- return __pred(*__first) ? __last : __first;
2370+ return __first;
2371 _ForwardIterator __middle = __first;
2372 std::advance(__middle, __len / 2);
2373- _ForwardIterator __begin = std::__inplace_stable_partition(__first,
2374- __middle,
2375- __pred,
2376- __len / 2);
2377- _ForwardIterator __end = std::__inplace_stable_partition(__middle, __last,
2378- __pred,
2379- __len
2380- - __len / 2);
2381- std::rotate(__begin, __middle, __end);
2382- std::advance(__begin, std::distance(__middle, __end));
2383- return __begin;
2384+ _ForwardIterator __left_split =
2385+ std::__inplace_stable_partition(__first, __pred, __len / 2);
2386+ // Advance past true-predicate values to satisfy this
2387+ // function's preconditions.
2388+ _Distance __right_len = __len - __len / 2;
2389+ _ForwardIterator __right_split =
2390+ std::__find_if_not_n(__middle, __right_len, __pred);
2391+ if (__right_len)
2392+ __right_split = std::__inplace_stable_partition(__middle,
2393+ __pred,
2394+ __right_len);
2395+ std::rotate(__left_split, __middle, __right_split);
2396+ std::advance(__left_split, std::distance(__middle, __right_split));
2397+ return __left_split;
2398 }
2399
2400 /// This is a helper function...
2401+ /// Requires __first != __last and !__pred(*__first)
2402+ /// and __len == distance(__first, __last).
2403+ ///
2404+ /// !__pred(*__first) allows us to guarantee that we don't
2405+ /// move-assign an element onto itself.
2406 template<typename _ForwardIterator, typename _Pointer, typename _Predicate,
2407 typename _Distance>
2408 _ForwardIterator
2409@@ -1821,6 +1850,12 @@
2410 {
2411 _ForwardIterator __result1 = __first;
2412 _Pointer __result2 = __buffer;
2413+ // The precondition guarantees that !__pred(*__first), so
2414+ // move that element to the buffer before starting the loop.
2415+ // This ensures that we only call __pred once per element.
2416+ *__result2 = _GLIBCXX_MOVE(*__first);
2417+ ++__result2;
2418+ ++__first;
2419 for (; __first != __last; ++__first)
2420 if (__pred(*__first))
2421 {
2422@@ -1839,17 +1874,23 @@
2423 {
2424 _ForwardIterator __middle = __first;
2425 std::advance(__middle, __len / 2);
2426- _ForwardIterator __begin =
2427+ _ForwardIterator __left_split =
2428 std::__stable_partition_adaptive(__first, __middle, __pred,
2429 __len / 2, __buffer,
2430 __buffer_size);
2431- _ForwardIterator __end =
2432- std::__stable_partition_adaptive(__middle, __last, __pred,
2433- __len - __len / 2,
2434- __buffer, __buffer_size);
2435- std::rotate(__begin, __middle, __end);
2436- std::advance(__begin, std::distance(__middle, __end));
2437- return __begin;
2438+ // Advance past true-predicate values to satisfy this
2439+ // function's preconditions.
2440+ _Distance __right_len = __len - __len / 2;
2441+ _ForwardIterator __right_split =
2442+ std::__find_if_not_n(__middle, __right_len, __pred);
2443+ if (__right_len)
2444+ __right_split =
2445+ std::__stable_partition_adaptive(__right_split, __last, __pred,
2446+ __right_len,
2447+ __buffer, __buffer_size);
2448+ std::rotate(__left_split, __middle, __right_split);
2449+ std::advance(__left_split, std::distance(__middle, __right_split));
2450+ return __left_split;
2451 }
2452 }
2453
2454@@ -1882,6 +1923,8 @@
2455 typename iterator_traits<_ForwardIterator>::value_type>)
2456 __glibcxx_requires_valid_range(__first, __last);
2457
2458+ __first = std::__find_if_not(__first, __last, __pred);
2459+
2460 if (__first == __last)
2461 return __first;
2462 else
2463@@ -1901,7 +1944,7 @@
2464 _DistanceType(__buf.size()));
2465 else
2466 return
2467- std::__inplace_stable_partition(__first, __last, __pred,
2468+ std::__inplace_stable_partition(__first, __pred,
2469 _DistanceType(__buf.requested_size()));
2470 }
2471 }
2472Index: libstdc++-v3/include/bits/forward_list.tcc
2473===================================================================
2474--- libstdc++-v3/include/bits/forward_list.tcc (.../tags/gcc_4_7_0_release) (wersja 187293)
2475+++ libstdc++-v3/include/bits/forward_list.tcc (.../branches/gcc-4_7-branch) (wersja 187293)
2476@@ -225,22 +225,37 @@
2477 template<typename _Tp, typename _Alloc>
2478 typename forward_list<_Tp, _Alloc>::iterator
2479 forward_list<_Tp, _Alloc>::
2480- _M_splice_after(const_iterator __pos, forward_list&& __list)
2481+ _M_splice_after(const_iterator __pos,
2482+ const_iterator __before, const_iterator __last)
2483 {
2484 _Node_base* __tmp = const_cast<_Node_base*>(__pos._M_node);
2485- iterator __before = __list.before_begin();
2486- return iterator(__tmp->_M_transfer_after(__before._M_node));
2487+ _Node_base* __b = const_cast<_Node_base*>(__before._M_node);
2488+ _Node_base* __end = __b;
2489+
2490+ while (__end && __end->_M_next != __last._M_node)
2491+ __end = __end->_M_next;
2492+
2493+ if (__b != __end)
2494+ return iterator(__tmp->_M_transfer_after(__b, __end));
2495+ else
2496+ return iterator(__tmp);
2497 }
2498
2499 template<typename _Tp, typename _Alloc>
2500 void
2501 forward_list<_Tp, _Alloc>::
2502 splice_after(const_iterator __pos, forward_list&&,
2503- const_iterator __before, const_iterator __last)
2504+ const_iterator __i)
2505 {
2506+ const_iterator __j = __i;
2507+ ++__j;
2508+
2509+ if (__pos == __i || __pos == __j)
2510+ return;
2511+
2512 _Node_base* __tmp = const_cast<_Node_base*>(__pos._M_node);
2513- __tmp->_M_transfer_after(const_cast<_Node_base*>(__before._M_node),
2514- const_cast<_Node_base*>(__last._M_node));
2515+ __tmp->_M_transfer_after(const_cast<_Node_base*>(__i._M_node),
2516+ const_cast<_Node_base*>(__j._M_node));
2517 }
2518
2519 template<typename _Tp, typename _Alloc>
2520@@ -251,7 +266,7 @@
2521 if (__n)
2522 {
2523 forward_list __tmp(__n, __val, get_allocator());
2524- return _M_splice_after(__pos, std::move(__tmp));
2525+ return _M_splice_after(__pos, __tmp.before_begin(), __tmp.end());
2526 }
2527 else
2528 return iterator(const_cast<_Node_base*>(__pos._M_node));
2529@@ -266,26 +281,12 @@
2530 {
2531 forward_list __tmp(__first, __last, get_allocator());
2532 if (!__tmp.empty())
2533- return _M_splice_after(__pos, std::move(__tmp));
2534+ return _M_splice_after(__pos, __tmp.before_begin(), __tmp.end());
2535 else
2536 return iterator(const_cast<_Node_base*>(__pos._M_node));
2537 }
2538
2539 template<typename _Tp, typename _Alloc>
2540- typename forward_list<_Tp, _Alloc>::iterator
2541- forward_list<_Tp, _Alloc>::
2542- insert_after(const_iterator __pos, std::initializer_list<_Tp> __il)
2543- {
2544- if (__il.size())
2545- {
2546- forward_list __tmp(__il, get_allocator());
2547- return _M_splice_after(__pos, std::move(__tmp));
2548- }
2549- else
2550- return iterator(const_cast<_Node_base*>(__pos._M_node));
2551- }
2552-
2553- template<typename _Tp, typename _Alloc>
2554 void
2555 forward_list<_Tp, _Alloc>::
2556 remove(const _Tp& __val)
2557Index: libstdc++-v3/include/bits/shared_ptr_base.h
2558===================================================================
2559--- libstdc++-v3/include/bits/shared_ptr_base.h (.../tags/gcc_4_7_0_release) (wersja 187293)
2560+++ libstdc++-v3/include/bits/shared_ptr_base.h (.../branches/gcc-4_7-branch) (wersja 187293)
2561@@ -343,6 +343,8 @@
2562 _Sp_counted_deleter(_Ptr __p, _Deleter __d, const _Alloc& __a)
2563 : _M_ptr(__p), _M_del(__d, __a) { }
2564
2565+ ~_Sp_counted_deleter() noexcept { }
2566+
2567 virtual void
2568 _M_dispose() noexcept
2569 { _M_del._M_del(_M_ptr); }
2570@@ -401,6 +403,8 @@
2571 std::forward<_Args>(__args)...); // might throw
2572 }
2573
2574+ ~_Sp_counted_ptr_inplace() noexcept { }
2575+
2576 virtual void
2577 _M_dispose() noexcept
2578 { allocator_traits<_Alloc>::destroy(_M_impl, _M_impl._M_ptr); }
2579Index: libstdc++-v3/include/bits/deque.tcc
2580===================================================================
2581--- libstdc++-v3/include/bits/deque.tcc (.../tags/gcc_4_7_0_release) (wersja 187293)
2582+++ libstdc++-v3/include/bits/deque.tcc (.../branches/gcc-4_7-branch) (wersja 187293)
2583@@ -1,7 +1,7 @@
2584 // Deque implementation (out of line) -*- C++ -*-
2585
2586 // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
2587-// 2009, 2010, 2011
2588+// 2009, 2010, 2011, 2012
2589 // Free Software Foundation, Inc.
2590 //
2591 // This file is part of the GNU ISO C++ Library. This library is free
2592@@ -175,12 +175,12 @@
2593 {
2594 if (__position._M_cur == this->_M_impl._M_start._M_cur)
2595 {
2596- push_front(std::forward<_Args>(__args)...);
2597+ emplace_front(std::forward<_Args>(__args)...);
2598 return this->_M_impl._M_start;
2599 }
2600 else if (__position._M_cur == this->_M_impl._M_finish._M_cur)
2601 {
2602- push_back(std::forward<_Args>(__args)...);
2603+ emplace_back(std::forward<_Args>(__args)...);
2604 iterator __tmp = this->_M_impl._M_finish;
2605 --__tmp;
2606 return __tmp;
2607Index: libstdc++-v3/include/bits/random.tcc
2608===================================================================
2609--- libstdc++-v3/include/bits/random.tcc (.../tags/gcc_4_7_0_release) (wersja 187293)
2610+++ libstdc++-v3/include/bits/random.tcc (.../branches/gcc-4_7-branch) (wersja 187293)
2611@@ -730,40 +730,65 @@
2612 independent_bits_engine<_RandomNumberEngine, __w, _UIntType>::
2613 operator()()
2614 {
2615- const long double __r = static_cast<long double>(_M_b.max())
2616- - static_cast<long double>(_M_b.min()) + 1.0L;
2617- const result_type __m = std::log(__r) / std::log(2.0L);
2618- result_type __n, __n0, __y0, __y1, __s0, __s1;
2619+ typedef typename _RandomNumberEngine::result_type _Eresult_type;
2620+ const _Eresult_type __r
2621+ = (_M_b.max() - _M_b.min() < std::numeric_limits<_Eresult_type>::max()
2622+ ? _M_b.max() - _M_b.min() + 1 : 0);
2623+ const unsigned __edig = std::numeric_limits<_Eresult_type>::digits;
2624+ const unsigned __m = __r ? std::__lg(__r) : __edig;
2625+
2626+ typedef typename std::common_type<_Eresult_type, result_type>::type
2627+ __ctype;
2628+ const unsigned __cdig = std::numeric_limits<__ctype>::digits;
2629+
2630+ unsigned __n, __n0;
2631+ __ctype __s0, __s1, __y0, __y1;
2632+
2633 for (size_t __i = 0; __i < 2; ++__i)
2634 {
2635 __n = (__w + __m - 1) / __m + __i;
2636 __n0 = __n - __w % __n;
2637- const result_type __w0 = __w / __n;
2638- const result_type __w1 = __w0 + 1;
2639- __s0 = result_type(1) << __w0;
2640- __s1 = result_type(1) << __w1;
2641- __y0 = __s0 * (__r / __s0);
2642- __y1 = __s1 * (__r / __s1);
2643- if (__r - __y0 <= __y0 / __n)
2644+ const unsigned __w0 = __w / __n; // __w0 <= __m
2645+
2646+ __s0 = 0;
2647+ __s1 = 0;
2648+ if (__w0 < __cdig)
2649+ {
2650+ __s0 = __ctype(1) << __w0;
2651+ __s1 = __s0 << 1;
2652+ }
2653+
2654+ __y0 = 0;
2655+ __y1 = 0;
2656+ if (__r)
2657+ {
2658+ __y0 = __s0 * (__r / __s0);
2659+ if (__s1)
2660+ __y1 = __s1 * (__r / __s1);
2661+
2662+ if (__r - __y0 <= __y0 / __n)
2663+ break;
2664+ }
2665+ else
2666 break;
2667 }
2668
2669 result_type __sum = 0;
2670 for (size_t __k = 0; __k < __n0; ++__k)
2671 {
2672- result_type __u;
2673+ __ctype __u;
2674 do
2675 __u = _M_b() - _M_b.min();
2676- while (__u >= __y0);
2677- __sum = __s0 * __sum + __u % __s0;
2678+ while (__y0 && __u >= __y0);
2679+ __sum = __s0 * __sum + (__s0 ? __u % __s0 : __u);
2680 }
2681 for (size_t __k = __n0; __k < __n; ++__k)
2682 {
2683- result_type __u;
2684+ __ctype __u;
2685 do
2686 __u = _M_b() - _M_b.min();
2687- while (__u >= __y1);
2688- __sum = __s1 * __sum + __u % __s1;
2689+ while (__y1 && __u >= __y1);
2690+ __sum = __s1 * __sum + (__s1 ? __u % __s1 : __u);
2691 }
2692 return __sum;
2693 }
2694@@ -840,12 +865,11 @@
2695 operator()(_UniformRandomNumberGenerator& __urng,
2696 const param_type& __param)
2697 {
2698- typedef typename std::make_unsigned<typename
2699- _UniformRandomNumberGenerator::result_type>::type __urngtype;
2700+ typedef typename _UniformRandomNumberGenerator::result_type
2701+ _Gresult_type;
2702 typedef typename std::make_unsigned<result_type>::type __utype;
2703- typedef typename std::conditional<(sizeof(__urngtype)
2704- > sizeof(__utype)),
2705- __urngtype, __utype>::type __uctype;
2706+ typedef typename std::common_type<_Gresult_type, __utype>::type
2707+ __uctype;
2708
2709 const __uctype __urngmin = __urng.min();
2710 const __uctype __urngmax = __urng.max();
2711Index: libstdc++-v3/include/bits/stl_function.h
2712===================================================================
2713--- libstdc++-v3/include/bits/stl_function.h (.../tags/gcc_4_7_0_release) (wersja 187293)
2714+++ libstdc++-v3/include/bits/stl_function.h (.../branches/gcc-4_7-branch) (wersja 187293)
2715@@ -1,6 +1,7 @@
2716 // Functor implementations -*- C++ -*-
2717
2718-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011
2719+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
2720+// 2011, 2012
2721 // Free Software Foundation, Inc.
2722 //
2723 // This file is part of the GNU ISO C++ Library. This library is free
2724@@ -471,7 +472,12 @@
2725 /** @} */
2726
2727 template<typename _Tp>
2728- struct _Identity : public unary_function<_Tp,_Tp>
2729+ struct _Identity
2730+#ifndef __GXX_EXPERIMENTAL_CXX0X__
2731+ // unary_function itself is deprecated in C++11 and deriving from
2732+ // it can even be a nuisance (see PR 52942).
2733+ : public unary_function<_Tp,_Tp>
2734+#endif
2735 {
2736 _Tp&
2737 operator()(_Tp& __x) const
2738@@ -483,8 +489,10 @@
2739 };
2740
2741 template<typename _Pair>
2742- struct _Select1st : public unary_function<_Pair,
2743- typename _Pair::first_type>
2744+ struct _Select1st
2745+#ifndef __GXX_EXPERIMENTAL_CXX0X__
2746+ : public unary_function<_Pair, typename _Pair::first_type>
2747+#endif
2748 {
2749 typename _Pair::first_type&
2750 operator()(_Pair& __x) const
2751@@ -508,8 +516,10 @@
2752 };
2753
2754 template<typename _Pair>
2755- struct _Select2nd : public unary_function<_Pair,
2756- typename _Pair::second_type>
2757+ struct _Select2nd
2758+#ifndef __GXX_EXPERIMENTAL_CXX0X__
2759+ : public unary_function<_Pair, typename _Pair::second_type>
2760+#endif
2761 {
2762 typename _Pair::second_type&
2763 operator()(_Pair& __x) const
2764Index: libstdc++-v3/include/Makefile.am
2765===================================================================
2766--- libstdc++-v3/include/Makefile.am (.../tags/gcc_4_7_0_release) (wersja 187293)
2767+++ libstdc++-v3/include/Makefile.am (.../branches/gcc-4_7-branch) (wersja 187293)
2768@@ -1,7 +1,7 @@
2769 ## Makefile for the include subdirectory of the GNU C++ Standard library.
2770 ##
2771 ## Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
2772-## 2011
2773+## 2011, 2012
2774 ## Free Software Foundation, Inc.
2775 ##
2776 ## This file is part of the libstdc++ version 3 distribution.
2777@@ -1105,7 +1105,7 @@
2778 sed -e "s,define __GLIBCXX__,define __GLIBCXX__ $$date," \
2779 -e "s,define _GLIBCXX_INLINE_VERSION, define _GLIBCXX_INLINE_VERSION $$ns_version," \
2780 -e "s,define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY, define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY $$visibility," \
2781- -e "s,define _GLIBCXX_EXTERN_TEMPLATE, define _GLIBCXX_EXTERN_TEMPLATE $$externtemplate," \
2782+ -e "s,define _GLIBCXX_EXTERN_TEMPLATE$$, define _GLIBCXX_EXTERN_TEMPLATE $$externtemplate," \
2783 -e "$$ldbl_compat" \
2784 < ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
2785 sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \
2786Index: libstdc++-v3/ChangeLog
2787===================================================================
2788--- libstdc++-v3/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293)
2789+++ libstdc++-v3/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293)
2790@@ -1,3 +1,272 @@
2791+2012-05-02 Paolo Carlini <paolo.carlini@oracle.com>
2792+
2793+ PR libstdc++/53193
2794+ * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
2795+ dg-error line number.
2796+
2797+2012-05-01 François Dumont <fdumont@gcc.gnu.org>
2798+
2799+ PR libstdc++/53115
2800+ * include/bits/hashtable.h
2801+ (_Hashtable<>::_M_rehash_aux(size_type, false_type)): Fix buckets
2802+ after insertion of several equivalent elements.
2803+ * testsuite/23_containers/unordered_multiset/insert/53115.cc: New.
2804+ * testsuite/23_containers/unordered_multimap/insert/53115.cc: New.
2805+
2806+2012-04-30 Andreas Tobler <andreast@fgznet.ch>
2807+
2808+ Backport from mainline
2809+ 2012-03-21 Andreas Tobler <andreast@fgznet.ch>
2810+
2811+ * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
2812+ Skip this test on powerpc64-*-freebsd*.
2813+
2814+2012-04-25 Jonathan Wakely <jwakely.gcc@gmail.com>
2815+
2816+ * include/std/scoped_allocator (scoped_allocator::__outermost): Do
2817+ not pass non-POD to varargs function.
2818+ * testsuite/20_util/scoped_allocator/1.cc: Fix test.
2819+
2820+2012-04-23 Chris Jefferson <chris@bubblescope.net>
2821+
2822+ PR testsuite/53046
2823+ * testsuite/25_algorithms/stable_partition/mem_check.cc: Fix size
2824+ of array A.
2825+ * testsuite/25_algorithms/stable_sort/mem_check.cc: Likewise.
2826+
2827+2012-04-22 Paolo Carlini <paolo.carlini@oracle.com>
2828+
2829+ PR libstdc++/53067
2830+ * include/bits/hashtable_policy.h: Change inheritances to public.
2831+ * testsuite/23_containers/unordered_map/requirements/53067.cc: New.
2832+ * testsuite/23_containers/unordered_set/requirements/53067.cc: Likewise.
2833+
2834+2012-04-22 Jonathan Wakely <jwakely.gcc@gmail.com>
2835+
2836+ PR libstdc++/53027
2837+ * include/bits/ptr_traits.h (pointer_traits::rebind): Make public.
2838+ * testsuite/20_util/pointer_traits/requirements/typedefs.cc: Check
2839+ rebind works.
2840+
2841+2012-04-21 Alan Modra <amodra@gmail.com>
2842+
2843+ PR libstdc++/52839
2844+ * acinclude.m4 (_GLIBCXX_ATOMIC_BUILTINS): Do not depend on
2845+ glibcxx_cv_atomic_long_long.
2846+ * configure: Regenerate.
2847+
2848+2012-04-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2849+
2850+ PR bootstrap/52840
2851+ * src/Makefile.am (build-debug): Do not adjust vpath dir, remove
2852+ Makefile.tmp
2853+ * src/Makefile.in: Adjust as per above.
2854+
2855+2012-04-16 Benjamin Kosnik <bkoz@redhat.com>
2856+
2857+ PR libstdc++/52689
2858+ * libsupc++/Makefile.am (LTCXXCOMPILE, CXXLINK): Tweak.
2859+ * libsupc++/Makefile.in: Regenerated.
2860+ * src/Makefile.am (LTCXXCOMPILE, CXXLINK): Tweak.
2861+ (libstdc___la_SOURCES): Add in compatiblity files, with content
2862+ that varies with -DPIC.
2863+ * src/Makefile.in: Regenerated.
2864+ * src/c++11/Makefile.am (LTCXXCOMPILE, CXXLINK): Tweak.
2865+ * src/c++11/Makefile.in: Regenerated.
2866+ * src/c++11/compatibility-atomic-c++0x.cc: Guard with PIC.
2867+ * src/c++11/compatibility-c++0x.cc: Same.
2868+ * src/c++11/future.cc: Consolidate compatibility bits into..
2869+ * src/c++11/mutex.cc: Consolidate compatibility bits into..
2870+ * src/c++11/compatibility-thread-cxx0x.cc: ...here. New.
2871+ * src/c++98/Makefile.am (LTCXXCOMPILE, CXXLINK): Tweak.
2872+ * src/c++98/Makefile.in: Regenerated.
2873+ * src/c++98/compatibility-list-2.cc: Guard with PIC.
2874+ * src/c++98/compatibility.cc: Tweak comments.
2875+
2876+2012-04-16 Benjamin Kosnik <bkoz@redhat.com>
2877+
2878+ * include/ext/pb_ds/detail/pat_trie_/
2879+ constructors_destructor_fn_imps.hpp: Increment after recursion.
2880+ * include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp: Convert
2881+ node_type markup from brief.
2882+
2883+2012-04-14 Paolo Carlini <paolo.carlini@oracle.com>
2884+
2885+ PR libstdc++/52699
2886+ * include/bits/random.tcc (independent_bits_engine<>::operator()())
2887+ Avoid various overflows; use common_type on result_type and
2888+ _RandomNumberEngine::result_type; avoid floating point computations;
2889+ other smaller tweaks.
2890+
2891+ * include/bits/random.tcc (uniform_int_distribution<>::operator())
2892+ Use common_type; assume _UniformRandomNumberGenerator::result_type
2893+ unsigned; tidy.
2894+
2895+ * include/bits/stl_algobase.h (__lg(unsigned), __lg(unsigned long),
2896+ __lg(unsigned long long)): Add.
2897+
2898+2012-04-13 Paolo Carlini <paolo.carlini@oracle.com>
2899+
2900+ * include/debug/safe_iterator.h (_BeforeBeginHelper<>::
2901+ _S_Is_Beginnest): Add.
2902+ * include/debug/forward_list (_BeforeBeginHelper<>::
2903+ _S_Is_Beginnest): Likewise.
2904+ (_Safe_iterator<>::_M_is_beginnest): Add.
2905+ * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range):
2906+ Use the latter.
2907+ * testsuite/23_containers/forward_list/debug/splice_after.cc:
2908+ Add test.
2909+
2910+2012-04-12 Paolo Carlini <paolo.carlini@oracle.com>
2911+
2912+ * include/bits/forward_list.h (splice_after(const_iterator,
2913+ forward_list&), splice_after(const_iterator, forward_list&,
2914+ consst_iterator), splice_after(const_iterator, forward_list&,
2915+ const_iterator, const_iterator), merge(forward_list&),
2916+ merge(forward_list&, _Comp)): Add per C++11 as published (and
2917+ LWG 1310).
2918+ * include/debug/forward_list: Adjust.
2919+
2920+ * include/bits/forward_list.h (splice_after(const_iterator,
2921+ forward_list&&, const_iterator)): Only declare.
2922+ (_M_transfer_after): Remove.
2923+ (_M_splice_after(const_iterator, forward_list&&)): Change signature.
2924+ (splice_after(const_iterator, forward_list&&, const_iterator,
2925+ const_iterator)): Use the latter.
2926+ * include/bits/forward_list.tcc (splice_after(const_iterator,
2927+ forward_list&&, const_iterator)): Define here.
2928+ (_M_splice_after): Define, use throughout.
2929+
2930+ * include/bits/forward_list.h (insert_after(const_iterator,
2931+ std::initializer_list<_Tp>)): Forward to insert_after(const_iterator,
2932+ _InputIterator, _InputIterator).
2933+ * include/bits/forward_list.tcc: Remove definition.
2934+
2935+ * testsuite/23_containers/forward_list/modifiers/6.cc: New.
2936+ * testsuite/23_containers/forward_list/operations/1.cc: Adjust.
2937+
2938+ * testsuite/23_containers/forward_list/requirements/dr438/
2939+ assign_neg.cc: Adjust dg-error line number.
2940+ * testsuite/23_containers/forward_list/requirements/dr438/
2941+ insert_neg.cc: Likewise.
2942+ * testsuite/23_containers/forward_list/requirements/dr438/
2943+ constructor_1_neg.cc: Likewise.
2944+ * testsuite/23_containers/forward_list/requirements/dr438/
2945+ constructor_2_neg.cc: Likewise.
2946+
2947+2012-04-12 Jeffrey Yasskin <jyasskin@google.com>
2948+
2949+ PR libstdc++/52822
2950+ * include/bits/stl_algo.h (__find_if_not): Expose in C++98 mode.
2951+ (__find_if_not_n): Like __find_if_not, but works on and updates a
2952+ counted range instead of a bounded range.
2953+ (stable_partition): Guarantee !__pred(*__first) in call to
2954+ __stable_partition_adaptive() or __inplace_stable_partition().
2955+ (__stable_partition_adaptive): Use new precondition to avoid
2956+ moving/copying objects onto themselves. Guarantee new
2957+ precondition to recursive calls.
2958+ (__inplace_stable_partition): Use new precondition to simplify
2959+ base case, remove __last parameter. Guarantee new precondition to
2960+ recursive calls.
2961+ * testsuite/25_algorithms/stable_partition/moveable.cc (test02):
2962+ Test a sequence that starts with a value matching the predicate.
2963+ * testsuite/25_algorithms/stable_partition/pr52822.cc: Test
2964+ vectors, which have a destructive self-move-assignment.
2965+
2966+2012-04-12 Paolo Carlini <paolo.carlini@oracle.com>
2967+
2968+ PR libstdc++/52942
2969+ * include/bits/stl_function.h (_Identity, _Select1st, _Select2nd):
2970+ In C++11 mode do not derive from std::unary_function.
2971+ * include/ext/functional (identity, select1st, select2nd): Adjust.
2972+ * testsuite/23_containers/unordered_map/requirements/52942.cc: New.
2973+ * testsuite/23_containers/unordered_set/requirements/52942.cc: Likewise.
2974+
2975+2012-04-11 Jonathan Wakely <jwakely.gcc@gmail.com>
2976+
2977+ PR libstdc++/52924
2978+ * include/bits/shared_ptr_base.h (_Sp_counted_deleter): Add
2979+ user-defined destructor.
2980+ (_Sp_counted_inplace): Likewise.
2981+ * testsuite/20_util/shared_ptr/cons/52924.cc: New.
2982+ * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error
2983+ line numbers.
2984+
2985+2012-04-11 Jonathan Wakely <jwakely.gcc@gmail.com>
2986+
2987+ * testsuite/performance/30_threads/future/polling.cc: Adjust.
2988+
2989+2012-04-11 Jonathan Wakely <jwakely.gcc@gmail.com>
2990+
2991+ PR libstdc++/52591
2992+ * include/bits/stl_vector.h (vector::operator=(vector&&)): Dispatch
2993+ to _M_move_assign depending on whether allocator is moved.
2994+ (vector::_M_move_assign): Add overloaded functions.
2995+ * testsuite/23_containers/vector/52591.cc: New.
2996+ * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
2997+ Adjust dg-error line number.
2998+ * testsuite/23_containers/vector/requirements/dr438/
2999+ constructor_1_neg.cc:
3000+ Likewise.
3001+ * testsuite/23_containers/vector/requirements/dr438/
3002+ constructor_2_neg.cc:
3003+ Likewise.
3004+ * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
3005+ Likewise.
3006+
3007+2012-04-09 François Dumont <fdumont@gcc.gnu.org>
3008+
3009+ PR libstdc++/52476
3010+ * include/bits/hashtable.h (_Hashtable<>::_M_rehash_aux): Add.
3011+ (_Hashtable<>::_M_rehash): Use the latter.
3012+ * testsuite/23_containers/unordered_multimap/insert/52476.cc: New.
3013+ * testsuite/23_containers/unordered_multiset/insert/52476.cc: New.
3014+
3015+2012-04-09 Terry Guo <terry.guo@arm.com>
3016+
3017+ Backport from mainline
3018+ 2012-03-28 Terry Guo <terry.guo@arm.com>
3019+
3020+ * testsuite/Makefile.am (TEST_GCC_EXEC_PREFIX): New.
3021+ * testsuite/Makefile.in: Regenerated.
3022+
3023+2012-03-30 Jeffrey Yasskin <jyasskin@gcc.gnu.org>
3024+ Paolo Carlini <paolo.carlini@oracle.com>
3025+
3026+ PR libstdc++/52799
3027+ * include/bits/deque.tcc (emplace): Fix thinko, replace push_front
3028+ -> emplace_front, and likewise for *_back.
3029+ * testsuite/23_containers/deque/modifiers/emplace/52799.cc: New.
3030+ * testsuite/23_containers/list/modifiers/emplace/52799.cc: Likewise.
3031+ * testsuite/23_containers/vector/modifiers/emplace/52799.cc: Likewise.
3032+
3033+2012-03-23 David S. Miller <davem@davemloft.net>
3034+
3035+ * config/abi/post/sparc-linux-gnu/baseline_symbols.txt: Update.
3036+
3037+2012-03-23 Paolo Carlini <paolo.carlini@oracle.com>
3038+
3039+ * include/bits/forward_list.h: Fix comments.
3040+
3041+2012-03-23 Paweł Sikora <pawel.sikora@agmk.net>
3042+
3043+ PR libstdc++/52540
3044+ * include/Makefile.am (c++config.h): Fix sed rule to not break
3045+ the _GLIBCXX_EXTERN_TEMPLATE redefinition.
3046+ * include/Makefile.in: Regenerate.
3047+
3048+2012-03-22 Jonathan Wakely <jwakely.gcc@gmail.com>
3049+
3050+ PR libstdc++/52433
3051+ * include/debug/safe_iterator.h (_Safe_iterator): Add move
3052+ constructor and move assignment operator.
3053+ * testsuite/23_containers/vector/debug/52433.cc: New.
3054+
3055+2012-03-22 Paolo Carlini <paolo.carlini@oracle.com>
3056+
3057+ * include/std/array (array<>::at(size_type) const): Fix version
3058+ for undefined __EXCEPTIONS.
3059+
3060 2012-03-22 Release Manager
3061
3062 * GCC 4.7.0 released.
3063Index: libstdc++-v3/libsupc++/Makefile.in
3064===================================================================
3065--- libstdc++-v3/libsupc++/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187293)
3066+++ libstdc++-v3/libsupc++/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187293)
3067@@ -344,15 +344,15 @@
3068 # 2) integrated libsupc++convenience.la that is to be a part of libstdc++.a
3069 noinst_LTLIBRARIES = libsupc++convenience.la
3070 std_HEADERS = \
3071- cxxabi.h exception initializer_list new typeinfo
3072+ cxxabi.h exception initializer_list new typeinfo
3073
3074 bits_HEADERS = \
3075 atomic_lockfree_defines.h cxxabi_forced.h \
3076- exception_defines.h exception_ptr.h hash_bytes.h nested_exception.h
3077+ exception_defines.h exception_ptr.h hash_bytes.h nested_exception.h
3078
3079 headers = $(std_HEADERS) $(bits_HEADERS)
3080 @GLIBCXX_HOSTED_TRUE@c_sources = \
3081-@GLIBCXX_HOSTED_TRUE@ cp-demangle.c
3082+@GLIBCXX_HOSTED_TRUE@ cp-demangle.c
3083
3084 sources = \
3085 array_type_info.cc \
3086@@ -404,7 +404,7 @@
3087 vmi_class_type_info.cc \
3088 vterminate.cc
3089
3090-libsupc___la_SOURCES = $(sources) $(c_sources)
3091+libsupc___la_SOURCES = $(sources) $(c_sources)
3092 libsupc__convenience_la_SOURCES = $(sources) $(c_sources)
3093
3094 # AM_CXXFLAGS needs to be in each subdirectory so that it can be
3095@@ -415,9 +415,7 @@
3096 AM_CXXFLAGS = \
3097 $(PIC_CXXFLAGS) \
3098 $(XTEMPLATE_FLAGS) \
3099- $(WARN_CXXFLAGS) \
3100- $(OPTIMIZE_CXXFLAGS) \
3101- $(CONFIG_CXXFLAGS)
3102+ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
3103
3104 AM_MAKEFLAGS = \
3105 "gxx_include_dir=$(gxx_include_dir)"
3106@@ -435,7 +433,7 @@
3107 # LTCOMPILE is copied from LTCXXCOMPILE below.
3108 LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared $(LIBTOOLFLAGS) --mode=compile \
3109 $(CC) $(DEFS) $(C_INCLUDES) $(PIC_CXXFLAGS) \
3110- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
3111+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
3112
3113
3114 # Libtool notes
3115@@ -459,9 +457,11 @@
3116 #
3117 # We have to put --tag disable-shared after --tag CXX lest things
3118 # CXX undo the affect of disable-shared.
3119-LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
3120- --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
3121- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
3122+LTCXXCOMPILE = \
3123+ $(LIBTOOL) --tag CXX --tag disable-shared \
3124+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
3125+ --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
3126+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
3127
3128 LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
3129
3130@@ -471,9 +471,11 @@
3131 # course is problematic at this point. So, we get the top-level
3132 # directory to configure libstdc++-v3 to use gcc as the C++
3133 # compilation driver.
3134-CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
3135- --mode=link $(CXX) \
3136- $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
3137+CXXLINK = \
3138+ $(LIBTOOL) --tag CXX --tag disable-shared \
3139+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
3140+ --mode=link $(CXX) \
3141+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
3142
3143
3144 # Install notes
3145Index: libstdc++-v3/libsupc++/Makefile.am
3146===================================================================
3147--- libstdc++-v3/libsupc++/Makefile.am (.../tags/gcc_4_7_0_release) (wersja 187293)
3148+++ libstdc++-v3/libsupc++/Makefile.am (.../branches/gcc-4_7-branch) (wersja 187293)
3149@@ -32,17 +32,17 @@
3150 noinst_LTLIBRARIES = libsupc++convenience.la
3151
3152 std_HEADERS = \
3153- cxxabi.h exception initializer_list new typeinfo
3154+ cxxabi.h exception initializer_list new typeinfo
3155
3156 bits_HEADERS = \
3157 atomic_lockfree_defines.h cxxabi_forced.h \
3158- exception_defines.h exception_ptr.h hash_bytes.h nested_exception.h
3159+ exception_defines.h exception_ptr.h hash_bytes.h nested_exception.h
3160
3161 headers = $(std_HEADERS) $(bits_HEADERS)
3162
3163 if GLIBCXX_HOSTED
3164 c_sources = \
3165- cp-demangle.c
3166+ cp-demangle.c
3167 endif
3168
3169 sources = \
3170@@ -95,7 +95,7 @@
3171 vmi_class_type_info.cc \
3172 vterminate.cc
3173
3174-libsupc___la_SOURCES = $(sources) $(c_sources)
3175+libsupc___la_SOURCES = $(sources) $(c_sources)
3176 libsupc__convenience_la_SOURCES = $(sources) $(c_sources)
3177
3178 # AM_CXXFLAGS needs to be in each subdirectory so that it can be
3179@@ -106,9 +106,7 @@
3180 AM_CXXFLAGS = \
3181 $(PIC_CXXFLAGS) \
3182 $(XTEMPLATE_FLAGS) \
3183- $(WARN_CXXFLAGS) \
3184- $(OPTIMIZE_CXXFLAGS) \
3185- $(CONFIG_CXXFLAGS)
3186+ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
3187
3188 AM_MAKEFLAGS = \
3189 "gxx_include_dir=$(gxx_include_dir)"
3190@@ -125,7 +123,7 @@
3191 # LTCOMPILE is copied from LTCXXCOMPILE below.
3192 LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared $(LIBTOOLFLAGS) --mode=compile \
3193 $(CC) $(DEFS) $(C_INCLUDES) $(PIC_CXXFLAGS) \
3194- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
3195+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
3196
3197 cp-demangle.c:
3198 rm -f $@
3199@@ -178,9 +176,11 @@
3200 #
3201 # We have to put --tag disable-shared after --tag CXX lest things
3202 # CXX undo the affect of disable-shared.
3203-LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
3204- --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
3205- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
3206+LTCXXCOMPILE = \
3207+ $(LIBTOOL) --tag CXX --tag disable-shared \
3208+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
3209+ --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
3210+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
3211
3212 LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
3213
3214@@ -190,11 +190,12 @@
3215 # course is problematic at this point. So, we get the top-level
3216 # directory to configure libstdc++-v3 to use gcc as the C++
3217 # compilation driver.
3218-CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
3219- --mode=link $(CXX) \
3220- $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
3221+CXXLINK = \
3222+ $(LIBTOOL) --tag CXX --tag disable-shared \
3223+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
3224+ --mode=link $(CXX) \
3225+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
3226
3227-
3228 # Install notes
3229 # We have to have rules modified from the default to counteract SUN make
3230 # prepending each of $(*_HEADERS) with VPATH below.
3231Index: libstdc++-v3/testsuite/25_algorithms/stable_partition/mem_check.cc
3232===================================================================
3233--- libstdc++-v3/testsuite/25_algorithms/stable_partition/mem_check.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
3234+++ libstdc++-v3/testsuite/25_algorithms/stable_partition/mem_check.cc (.../branches/gcc-4_7-branch) (wersja 187293)
3235@@ -1,4 +1,4 @@
3236-// Copyright (C) 2009 Free Software Foundation, Inc.
3237+// Copyright (C) 2009, 2012 Free Software Foundation, Inc.
3238 //
3239 // This file is part of the GNU ISO C++ Library. This library is free
3240 // software; you can redistribute it and/or modify it under the
3241@@ -31,7 +31,7 @@
3242 typedef test_container<copy_tracker, random_access_iterator_wrapper> Container;
3243
3244 const int A[] = {10, 20, 1, 11, 2, 21, 28, 29, 12, 35, 15, 27, 6, 16, 7,
3245- 25, 17, 8, 23, 18, 9, 19, 24, 30, 13, 4, 14, 22, 26};
3246+ 25, 17, 8, 23, 18, 9, 19, 24, 30, 13, 4, 14, 22, 26, 0};
3247
3248 bool even(const copy_tracker& ct)
3249 { return ct.id() < 19; }
3250Index: libstdc++-v3/testsuite/25_algorithms/stable_partition/pr52822.cc
3251===================================================================
3252--- libstdc++-v3/testsuite/25_algorithms/stable_partition/pr52822.cc (.../tags/gcc_4_7_0_release) (wersja 0)
3253+++ libstdc++-v3/testsuite/25_algorithms/stable_partition/pr52822.cc (.../branches/gcc-4_7-branch) (wersja 187293)
3254@@ -0,0 +1,43 @@
3255+// { dg-options "-std=gnu++0x" }
3256+
3257+// Copyright (C) 2012 Free Software Foundation, Inc.
3258+//
3259+// This file is part of the GNU ISO C++ Library. This library is free
3260+// software; you can redistribute it and/or modify it under the
3261+// terms of the GNU General Public License as published by the
3262+// Free Software Foundation; either version 3, or (at your option)
3263+// any later version.
3264+
3265+// This library is distributed in the hope that it will be useful,
3266+// but WITHOUT ANY WARRANTY; without Pred the implied warranty of
3267+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3268+// GNU General Public License for more details.
3269+
3270+// You should have received a copy of the GNU General Public License along
3271+// with this library; see the file COPYING3. If not see
3272+// <http://www.gnu.org/licenses/>.
3273+
3274+// 25.2.12 [lib.alg.partitions] Partitions.
3275+
3276+#include <algorithm>
3277+#include <vector>
3278+#include <testsuite_hooks.h>
3279+
3280+bool true_vector_pred(const std::vector<int>&) { return true; }
3281+
3282+void
3283+test01()
3284+{
3285+ std::vector<std::vector<int> > v(1);
3286+ v[0].push_back(7);
3287+ VERIFY( v[0].size() == 1 );
3288+ std::stable_partition(v.begin(), v.end(), &true_vector_pred);
3289+ VERIFY( v[0].size() == 1 );
3290+}
3291+
3292+int
3293+main()
3294+{
3295+ test01();
3296+ return 0;
3297+}
3298Index: libstdc++-v3/testsuite/25_algorithms/stable_partition/moveable.cc
3299===================================================================
3300--- libstdc++-v3/testsuite/25_algorithms/stable_partition/moveable.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
3301+++ libstdc++-v3/testsuite/25_algorithms/stable_partition/moveable.cc (.../branches/gcc-4_7-branch) (wersja 187293)
3302@@ -35,6 +35,11 @@
3303 const int B[] = {2, 4, 6, 8, 10, 12, 14, 16, 1, 3, 5, 7, 9, 11, 13, 15, 17};
3304 const int N = sizeof(A) / sizeof(int);
3305
3306+// Check that starting with a true predicate works too. (PR52822)
3307+const int A2[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17};
3308+const int B2[] = {2, 4, 6, 8, 10, 12, 14, 16, 3, 5, 7, 9, 11, 13, 15, 17};
3309+const int N2 = sizeof(A2) / sizeof(int);
3310+
3311 struct Pred
3312 {
3313 bool
3314@@ -42,7 +47,7 @@
3315 { return (x.val % 2) == 0; }
3316 };
3317
3318-// 25.2.12 stable_partition()
3319+// 25.2.12 stable_partition(), starting with a false predicate.
3320 void
3321 test01()
3322 {
3323@@ -56,9 +61,24 @@
3324 VERIFY( std::equal(s1, s1 + N, B) );
3325 }
3326
3327+// 25.2.12 stable_partition(), starting with a true predicate.
3328+void
3329+test02()
3330+{
3331+ bool test __attribute__((unused)) = true;
3332+
3333+ rvalstruct s1[N2];
3334+ std::copy(A2, A2 + N2, s1);
3335+ Container con(s1, s1 + N2);
3336+
3337+ std::stable_partition(con.begin(), con.end(), Pred());
3338+ VERIFY( std::equal(s1, s1 + N2, B2) );
3339+}
3340+
3341 int
3342 main()
3343 {
3344 test01();
3345+ test02();
3346 return 0;
3347 }
3348Index: libstdc++-v3/testsuite/25_algorithms/stable_sort/mem_check.cc
3349===================================================================
3350--- libstdc++-v3/testsuite/25_algorithms/stable_sort/mem_check.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
3351+++ libstdc++-v3/testsuite/25_algorithms/stable_sort/mem_check.cc (.../branches/gcc-4_7-branch) (wersja 187293)
3352@@ -1,4 +1,4 @@
3353-// Copyright (C) 2009 Free Software Foundation, Inc.
3354+// Copyright (C) 2009, 2012 Free Software Foundation, Inc.
3355 //
3356 // This file is part of the GNU ISO C++ Library. This library is free
3357 // software; you can redistribute it and/or modify it under the
3358@@ -31,7 +31,7 @@
3359 typedef test_container<copy_tracker, random_access_iterator_wrapper> Container;
3360
3361 const int A[] = {10, 20, 1, 11, 2, 21, 28, 29, 12, 35, 15, 27, 6, 16, 7,
3362- 25, 17, 8, 23, 18, 9, 19, 24, 30, 13, 4, 14, 22, 26};
3363+ 25, 17, 8, 23, 18, 9, 19, 24, 30, 13, 4, 14, 22, 26, 0};
3364
3365 void
3366 test_mem1(int throw_count)
3367Index: libstdc++-v3/testsuite/Makefile.in
3368===================================================================
3369--- libstdc++-v3/testsuite/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187293)
3370+++ libstdc++-v3/testsuite/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187293)
3371@@ -505,6 +505,7 @@
3372 @echo 'set libiconv "$(LIBICONV)"' >>site.tmp
3373 @echo 'set baseline_dir "$(baseline_dir)"' >> site.tmp
3374 @echo 'set baseline_subdir_switch "$(baseline_subdir_switch)"' >> site.tmp
3375+ @echo 'set TEST_GCC_EXEC_PREFIX "$(libdir)/gcc/"' >> site.tmp
3376 @echo '## All variables above are generated by configure. Do Not Edit ##' >>site.tmp
3377 @test ! -f site.exp || \
3378 sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp
3379Index: libstdc++-v3/testsuite/performance/30_threads/future/polling.cc
3380===================================================================
3381--- libstdc++-v3/testsuite/performance/30_threads/future/polling.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
3382+++ libstdc++-v3/testsuite/performance/30_threads/future/polling.cc (.../branches/gcc-4_7-branch) (wersja 187293)
3383@@ -1,4 +1,4 @@
3384-// Copyright (C) 2009, 2010 Free Software Foundation, Inc.
3385+// Copyright (C) 2009, 2010, 2012 Free Software Foundation, Inc.
3386 //
3387 // This file is part of the GNU ISO C++ Library. This library is free
3388 // software; you can redistribute it and/or modify it under the
3389@@ -22,7 +22,7 @@
3390
3391 inline bool is_ready(std::shared_future<void>& f)
3392 {
3393- return f.wait_for(std::chrono::microseconds(1));
3394+ return f.wait_for(std::chrono::microseconds(1)) == std::future_status::ready;
3395 }
3396
3397 void poll(std::shared_future<void> f)
3398Index: libstdc++-v3/testsuite/Makefile.am
3399===================================================================
3400--- libstdc++-v3/testsuite/Makefile.am (.../tags/gcc_4_7_0_release) (wersja 187293)
3401+++ libstdc++-v3/testsuite/Makefile.am (.../branches/gcc-4_7-branch) (wersja 187293)
3402@@ -60,6 +60,7 @@
3403 @echo 'set libiconv "$(LIBICONV)"' >>site.tmp
3404 @echo 'set baseline_dir "$(baseline_dir)"' >> site.tmp
3405 @echo 'set baseline_subdir_switch "$(baseline_subdir_switch)"' >> site.tmp
3406+ @echo 'set TEST_GCC_EXEC_PREFIX "$(libdir)/gcc/"' >> site.tmp
3407 @echo '## All variables above are generated by configure. Do Not Edit ##' >>site.tmp
3408 @test ! -f site.exp || \
3409 sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp
3410Index: libstdc++-v3/testsuite/23_containers/unordered_map/requirements/53067.cc
3411===================================================================
3412--- libstdc++-v3/testsuite/23_containers/unordered_map/requirements/53067.cc (.../tags/gcc_4_7_0_release) (wersja 0)
3413+++ libstdc++-v3/testsuite/23_containers/unordered_map/requirements/53067.cc (.../branches/gcc-4_7-branch) (wersja 187293)
3414@@ -0,0 +1,28 @@
3415+// { dg-do compile }
3416+// { dg-options "-std=gnu++11" }
3417+
3418+// Copyright (C) 2012 Free Software Foundation, Inc.
3419+//
3420+// This file is part of the GNU ISO C++ Library. This library is free
3421+// software; you can redistribute it and/or modify it under the
3422+// terms of the GNU General Public License as published by the
3423+// Free Software Foundation; either version 3, or (at your option)
3424+// any later version.
3425+
3426+// This library is distributed in the hope that it will be useful,
3427+// but WITHOUT ANY WARRANTY; without Pred the implied warranty of
3428+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3429+// GNU General Public License for more details.
3430+
3431+// You should have received a copy of the GNU General Public License along
3432+// with this library; see the file COPYING3. If not see
3433+// <http://www.gnu.org/licenses/>.
3434+
3435+#include <unordered_map>
3436+#include <functional>
3437+
3438+void f()
3439+{
3440+ std::unordered_map<int, int> Foo;
3441+ ref(Foo);
3442+}
3443Index: libstdc++-v3/testsuite/23_containers/unordered_map/requirements/52942.cc
3444===================================================================
3445--- libstdc++-v3/testsuite/23_containers/unordered_map/requirements/52942.cc (.../tags/gcc_4_7_0_release) (wersja 0)
3446+++ libstdc++-v3/testsuite/23_containers/unordered_map/requirements/52942.cc (.../branches/gcc-4_7-branch) (wersja 187293)
3447@@ -0,0 +1,37 @@
3448+// { dg-do compile }
3449+// { dg-options "-std=gnu++11" }
3450+
3451+// Copyright (C) 2012 Free Software Foundation, Inc.
3452+//
3453+// This file is part of the GNU ISO C++ Library. This library is free
3454+// software; you can redistribute it and/or modify it under the
3455+// terms of the GNU General Public License as published by the
3456+// Free Software Foundation; either version 3, or (at your option)
3457+// any later version.
3458+
3459+// This library is distributed in the hope that it will be useful,
3460+// but WITHOUT ANY WARRANTY; without Pred the implied warranty of
3461+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3462+// GNU General Public License for more details.
3463+
3464+// You should have received a copy of the GNU General Public License along
3465+// with this library; see the file COPYING3. If not see
3466+// <http://www.gnu.org/licenses/>.
3467+
3468+#include <unordered_map>
3469+#include <functional>
3470+
3471+struct TFoo {};
3472+
3473+struct TFoo_hash
3474+{
3475+ std::size_t operator()(const TFoo &) const { return 0; }
3476+};
3477+
3478+void f1(std::unordered_map<TFoo, int, TFoo_hash> &) {}
3479+
3480+void f2()
3481+{
3482+ std::unordered_map<TFoo, int, TFoo_hash> map1;
3483+ std::bind(f1, std::ref(map1));
3484+}
3485Index: libstdc++-v3/testsuite/23_containers/forward_list/modifiers/6.cc
3486===================================================================
3487--- libstdc++-v3/testsuite/23_containers/forward_list/modifiers/6.cc (.../tags/gcc_4_7_0_release) (wersja 0)
3488+++ libstdc++-v3/testsuite/23_containers/forward_list/modifiers/6.cc (.../branches/gcc-4_7-branch) (wersja 187293)
3489@@ -0,0 +1,94 @@
3490+// { dg-options "-std=gnu++11" }
3491+
3492+// Copyright (C) 2012 Free Software Foundation, Inc.
3493+//
3494+// This file is part of the GNU ISO C++ Library. This library is free
3495+// software; you can redistribute it and/or modify it under the
3496+// terms of the GNU General Public License as published by the
3497+// Free Software Foundation; either version 3, or (at your option)
3498+// any later version.
3499+
3500+// This library is distributed in the hope that it will be useful,
3501+// but WITHOUT ANY WARRANTY; without Pred the implied warranty of
3502+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3503+// GNU General Public License for more details.
3504+
3505+// You should have received a copy of the GNU General Public License along
3506+// with this library; see the file COPYING3. If not see
3507+// <http://www.gnu.org/licenses/>.
3508+
3509+#include <forward_list>
3510+
3511+#include <testsuite_hooks.h>
3512+
3513+void test01()
3514+{
3515+ bool test __attribute__((unused)) = true;
3516+
3517+ std::forward_list<int> fl1(1, 5), fl2(1, 4), fl3(1, 3),
3518+ fl4(1, 2), fl5(1, 1), fl6(1, 0);
3519+
3520+ fl1.splice_after(fl1.before_begin(), fl2);
3521+
3522+ auto it = fl1.begin();
3523+
3524+ VERIFY( *it == 4 );
3525+
3526+ ++it;
3527+
3528+ VERIFY( *it == 5 );
3529+
3530+ fl3.splice_after(fl3.before_begin(), fl4, fl4.before_begin());
3531+
3532+ it = fl3.begin();
3533+
3534+ VERIFY( *it == 2 );
3535+
3536+ ++it;
3537+
3538+ VERIFY( *it == 3 );
3539+
3540+ fl5.splice_after(fl5.before_begin(), fl6, fl6.before_begin(), fl6.end());
3541+
3542+ it = fl5.begin();
3543+
3544+ VERIFY( *it == 0 );
3545+
3546+ ++it;
3547+
3548+ VERIFY( *it == 1 );
3549+
3550+ fl1.merge(fl2);
3551+
3552+ it = fl1.begin();
3553+
3554+ VERIFY( *it == 4 );
3555+
3556+ ++it;
3557+
3558+ VERIFY( *it == 5 );
3559+
3560+ fl1.merge(fl3, std::less<int>());
3561+
3562+ it = fl1.begin();
3563+
3564+ VERIFY( *it == 2 );
3565+
3566+ ++it;
3567+
3568+ VERIFY( *it == 3 );
3569+
3570+ ++it;
3571+
3572+ VERIFY( *it == 4 );
3573+
3574+ ++it;
3575+
3576+ VERIFY( *it == 5 );
3577+}
3578+
3579+int main()
3580+{
3581+ test01();
3582+ return 0;
3583+}
3584Index: libstdc++-v3/testsuite/23_containers/forward_list/operations/1.cc
3585===================================================================
3586--- libstdc++-v3/testsuite/23_containers/forward_list/operations/1.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
3587+++ libstdc++-v3/testsuite/23_containers/forward_list/operations/1.cc (.../branches/gcc-4_7-branch) (wersja 187293)
3588@@ -1,6 +1,6 @@
3589 // { dg-options "-std=gnu++0x" }
3590
3591-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
3592+// Copyright (C) 2008, 2009, 2012 Free Software Foundation, Inc.
3593 //
3594 // This file is part of the GNU ISO C++ Library. This library is free
3595 // software; you can redistribute it and/or modify it under the
3596@@ -68,7 +68,7 @@
3597
3598 VERIFY(*befy == 10.0);
3599 ++befy;
3600- VERIFY(*befy == 15.0);
3601+ VERIFY(*befy == 14.0);
3602 }
3603
3604 // This test verifies the following:
3605Index: libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/assign_neg.cc
3606===================================================================
3607--- libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/assign_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
3608+++ libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/assign_neg.cc (.../branches/gcc-4_7-branch) (wersja 187293)
3609@@ -1,8 +1,8 @@
3610 // { dg-do compile }
3611 // { dg-options "-std=gnu++0x" }
3612-// { dg-error "no matching" "" { target *-*-* } 1213 }
3613+// { dg-error "no matching" "" { target *-*-* } 1221 }
3614
3615-// Copyright (C) 2009, 2010, 2011 Free Software Foundation
3616+// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation
3617 //
3618 // This file is part of the GNU ISO C++ Library. This library is free
3619 // software; you can redistribute it and/or modify it under the
3620Index: libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/insert_neg.cc
3621===================================================================
3622--- libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/insert_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
3623+++ libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/insert_neg.cc (.../branches/gcc-4_7-branch) (wersja 187293)
3624@@ -1,8 +1,8 @@
3625 // { dg-do compile }
3626 // { dg-options "-std=gnu++0x" }
3627-// { dg-error "no matching" "" { target *-*-* } 1213 }
3628+// { dg-error "no matching" "" { target *-*-* } 1221 }
3629
3630-// Copyright (C) 2009, 2010, 2011 Free Software Foundation
3631+// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation
3632 //
3633 // This file is part of the GNU ISO C++ Library. This library is free
3634 // software; you can redistribute it and/or modify it under the
3635Index: libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_1_neg.cc
3636===================================================================
3637--- libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_1_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
3638+++ libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_1_neg.cc (.../branches/gcc-4_7-branch) (wersja 187293)
3639@@ -1,8 +1,8 @@
3640 // { dg-do compile }
3641 // { dg-options "-std=gnu++0x" }
3642-// { dg-error "no matching" "" { target *-*-* } 1213 }
3643+// { dg-error "no matching" "" { target *-*-* } 1221 }
3644
3645-// Copyright (C) 2009, 2010, 2011 Free Software Foundation
3646+// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation
3647 //
3648 // This file is part of the GNU ISO C++ Library. This library is free
3649 // software; you can redistribute it and/or modify it under the
3650Index: libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_2_neg.cc
3651===================================================================
3652--- libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_2_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
3653+++ libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_2_neg.cc (.../branches/gcc-4_7-branch) (wersja 187293)
3654@@ -1,8 +1,8 @@
3655 // { dg-do compile }
3656 // { dg-options "-std=gnu++0x" }
3657-// { dg-error "no matching" "" { target *-*-* } 1213 }
3658+// { dg-error "no matching" "" { target *-*-* } 1221 }
3659
3660-// Copyright (C) 2009, 2010, 2011 Free Software Foundation
3661+// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation
3662 //
3663 // This file is part of the GNU ISO C++ Library. This library is free
3664 // software; you can redistribute it and/or modify it under the
3665Index: libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after.cc
3666===================================================================
3667--- libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
3668+++ libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after.cc (.../branches/gcc-4_7-branch) (wersja 187293)
3669@@ -1,6 +1,6 @@
3670 // { dg-options "-std=gnu++0x" }
3671
3672-// Copyright (C) 2010 Free Software Foundation, Inc.
3673+// Copyright (C) 2010, 2012 Free Software Foundation, Inc.
3674 //
3675 // This file is part of the GNU ISO C++ Library. This library is free
3676 // software; you can redistribute it and/or modify it under the
3677@@ -34,6 +34,10 @@
3678
3679 VERIFY( before == fl1.before_begin() );
3680 VERIFY( end == fl1.end() );
3681+
3682+ // no-op just to check that debug mode does not see any problem with it.
3683+ fl1.splice_after(fl1.before_begin(), std::move(fl2),
3684+ fl2.before_begin(), fl2.begin());
3685 }
3686
3687 int
3688Index: libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/53115.cc
3689===================================================================
3690--- libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/53115.cc (.../tags/gcc_4_7_0_release) (wersja 0)
3691+++ libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/53115.cc (.../branches/gcc-4_7-branch) (wersja 187293)
3692@@ -0,0 +1,101 @@
3693+// { dg-options "-std=gnu++11" }
3694+//
3695+// Copyright (C) 2012 Free Software Foundation, Inc.
3696+//
3697+// This file is part of the GNU ISO C++ Library. This library is free
3698+// software; you can redistribute it and/or modify it under the
3699+// terms of the GNU General Public License as published by the
3700+// Free Software Foundation; either version 3, or (at your option)
3701+// any later version.
3702+//
3703+// This library is distributed in the hope that it will be useful,
3704+// but WITHOUT ANY WARRANTY; without even the implied warranty of
3705+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3706+// GNU General Public License for more details.
3707+//
3708+// You should have received a copy of the GNU General Public License along
3709+// with this library; see the file COPYING3. If not see
3710+// <http://www.gnu.org/licenses/>.
3711+
3712+#include <unordered_map>
3713+#include <testsuite_hooks.h>
3714+
3715+namespace
3716+{
3717+ std::size_t
3718+ get_nb_bucket_elems(const std::unordered_multimap<int, int>& us)
3719+ {
3720+ std::size_t nb = 0;
3721+ for (std::size_t b = 0; b != us.bucket_count(); ++b)
3722+ nb += us.bucket_size(b);
3723+ return nb;
3724+ }
3725+}
3726+
3727+void test01()
3728+{
3729+ using namespace std;
3730+ bool test __attribute__((unused)) = true;
3731+
3732+ std::unordered_multimap<int, int> umm;
3733+ umm.insert(make_pair(10, 1));
3734+ VERIFY( umm.size() == 1 );
3735+ VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() );
3736+ VERIFY( get_nb_bucket_elems(umm) == umm.size() );
3737+
3738+ umm.insert(make_pair(10, 2));
3739+ VERIFY( umm.size() == 2 );
3740+ VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() );
3741+ VERIFY( get_nb_bucket_elems(umm) == umm.size() );
3742+
3743+ umm.insert(make_pair(10, 3));
3744+ VERIFY( umm.size() == 3 );
3745+ VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() );
3746+ VERIFY( get_nb_bucket_elems(umm) == umm.size() );
3747+
3748+ umm.insert(make_pair(10, 4));
3749+ VERIFY( umm.size() == 4 );
3750+ VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() );
3751+ VERIFY( get_nb_bucket_elems(umm) == umm.size() );
3752+
3753+ umm.insert(make_pair(10, 5));
3754+ VERIFY( umm.size() == 5 );
3755+ VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() );
3756+ VERIFY( get_nb_bucket_elems(umm) == umm.size() );
3757+
3758+ umm.insert(make_pair(24, 6));
3759+ VERIFY( umm.size() == 6 );
3760+ VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() );
3761+ VERIFY( get_nb_bucket_elems(umm) == umm.size() );
3762+
3763+ umm.insert(make_pair(25, 7));
3764+ VERIFY( umm.size() == 7 );
3765+ VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() );
3766+ VERIFY( get_nb_bucket_elems(umm) == umm.size() );
3767+
3768+ umm.insert(make_pair(2, 8));
3769+ VERIFY( umm.size() == 8 );
3770+ VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() );
3771+ VERIFY( get_nb_bucket_elems(umm) == umm.size() );
3772+
3773+ umm.insert(make_pair(2, 9));
3774+ VERIFY( umm.size() == 9 );
3775+ VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() );
3776+ VERIFY( get_nb_bucket_elems(umm) == umm.size() );
3777+
3778+ umm.insert(make_pair(1, 10));
3779+ VERIFY( umm.size() == 10 );
3780+ VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() );
3781+ VERIFY( get_nb_bucket_elems(umm) == umm.size() );
3782+
3783+ umm.insert(make_pair(10, 11));
3784+ VERIFY( umm.size() == 11 );
3785+ VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() );
3786+ VERIFY( get_nb_bucket_elems(umm) == umm.size() );
3787+}
3788+
3789+int main()
3790+{
3791+ test01();
3792+ return 0;
3793+}
3794Index: libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/52476.cc
3795===================================================================
3796--- libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/52476.cc (.../tags/gcc_4_7_0_release) (wersja 0)
3797+++ libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/52476.cc (.../branches/gcc-4_7-branch) (wersja 187293)
3798@@ -0,0 +1,59 @@
3799+// { dg-options "-std=gnu++0x" }
3800+//
3801+// Copyright (C) 2012 Free Software Foundation, Inc.
3802+//
3803+// This file is part of the GNU ISO C++ Library. This library is free
3804+// software; you can redistribute it and/or modify it under the
3805+// terms of the GNU General Public License as published by the
3806+// Free Software Foundation; either version 3, or (at your option)
3807+// any later version.
3808+//
3809+// This library is distributed in the hope that it will be useful,
3810+// but WITHOUT ANY WARRANTY; without even the implied warranty of
3811+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3812+// GNU General Public License for more details.
3813+//
3814+// You should have received a copy of the GNU General Public License along
3815+// with this library; see the file COPYING3. If not see
3816+// <http://www.gnu.org/licenses/>.
3817+
3818+#include <unordered_map>
3819+#include <vector>
3820+#include <algorithm>
3821+#include <testsuite_hooks.h>
3822+
3823+void test01()
3824+{
3825+ using namespace std;
3826+ bool test __attribute__((unused)) = true;
3827+
3828+ unordered_multimap<int, int> mmap;
3829+ vector<int> values;
3830+
3831+ size_t nb_bkts = mmap.bucket_count();
3832+ int i = 0;
3833+ for (;; ++i)
3834+ {
3835+ mmap.insert(make_pair(0, i));
3836+ if (mmap.bucket_count() != nb_bkts)
3837+ // Container got rehash
3838+ break;
3839+ values.clear();
3840+ transform(mmap.begin(), mmap.end(), back_inserter(values),
3841+ [](const pair<int, int>& p) { return p.second; });
3842+ }
3843+
3844+ vector<int> rehash_values;
3845+ transform(mmap.begin(), mmap.end(), back_inserter(rehash_values),
3846+ [](const pair<int, int>& p) { return p.second; });
3847+ // Remove the value that result in a rehash
3848+ rehash_values.erase(remove(rehash_values.begin(), rehash_values.end(), i));
3849+
3850+ VERIFY( rehash_values == values );
3851+}
3852+
3853+int main()
3854+{
3855+ test01();
3856+ return 0;
3857+}
3858Index: libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/52799.cc
3859===================================================================
3860--- libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/52799.cc (.../tags/gcc_4_7_0_release) (wersja 0)
3861+++ libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/52799.cc (.../branches/gcc-4_7-branch) (wersja 187293)
3862@@ -0,0 +1,28 @@
3863+// { dg-options "-std=gnu++11" }
3864+// { dg-do compile }
3865+
3866+// Copyright (C) 2012 Free Software Foundation, Inc.
3867+//
3868+// This file is part of the GNU ISO C++ Library. This library is free
3869+// software; you can redistribute it and/or modify it under the
3870+// terms of the GNU General Public License as published by the
3871+// Free Software Foundation; either version 3, or (at your option)
3872+// any later version.
3873+
3874+// This library is distributed in the hope that it will be useful,
3875+// but WITHOUT ANY WARRANTY; without even the implied warranty of
3876+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3877+// GNU General Public License for more details.
3878+
3879+// You should have received a copy of the GNU General Public License along
3880+// with this library; see the file COPYING3. If not see
3881+// <http://www.gnu.org/licenses/>.
3882+
3883+#include <vector>
3884+
3885+// libstdc++/52799
3886+int main()
3887+{
3888+ std::vector<int> v;
3889+ v.emplace(v.begin());
3890+}
3891Index: libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc
3892===================================================================
3893--- libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
3894+++ libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc (.../branches/gcc-4_7-branch) (wersja 187293)
3895@@ -18,7 +18,7 @@
3896 // <http://www.gnu.org/licenses/>.
3897
3898 // { dg-do compile }
3899-// { dg-error "no matching" "" { target *-*-* } 1225 }
3900+// { dg-error "no matching" "" { target *-*-* } 1207 }
3901
3902 #include <vector>
3903
3904Index: libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc
3905===================================================================
3906--- libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
3907+++ libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc (.../branches/gcc-4_7-branch) (wersja 187293)
3908@@ -18,7 +18,7 @@
3909 // <http://www.gnu.org/licenses/>.
3910
3911 // { dg-do compile }
3912-// { dg-error "no matching" "" { target *-*-* } 1266 }
3913+// { dg-error "no matching" "" { target *-*-* } 1248 }
3914
3915 #include <vector>
3916
3917Index: libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc
3918===================================================================
3919--- libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
3920+++ libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc (.../branches/gcc-4_7-branch) (wersja 187293)
3921@@ -18,7 +18,7 @@
3922 // <http://www.gnu.org/licenses/>.
3923
3924 // { dg-do compile }
3925-// { dg-error "no matching" "" { target *-*-* } 1155 }
3926+// { dg-error "no matching" "" { target *-*-* } 1137 }
3927
3928 #include <vector>
3929
3930Index: libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc
3931===================================================================
3932--- libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
3933+++ libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc (.../branches/gcc-4_7-branch) (wersja 187293)
3934@@ -18,7 +18,7 @@
3935 // <http://www.gnu.org/licenses/>.
3936
3937 // { dg-do compile }
3938-// { dg-error "no matching" "" { target *-*-* } 1155 }
3939+// { dg-error "no matching" "" { target *-*-* } 1137 }
3940
3941 #include <vector>
3942 #include <utility>
3943Index: libstdc++-v3/testsuite/23_containers/vector/debug/52433.cc
3944===================================================================
3945--- libstdc++-v3/testsuite/23_containers/vector/debug/52433.cc (.../tags/gcc_4_7_0_release) (wersja 0)
3946+++ libstdc++-v3/testsuite/23_containers/vector/debug/52433.cc (.../branches/gcc-4_7-branch) (wersja 187293)
3947@@ -0,0 +1,43 @@
3948+// Copyright (C) 2012 Free Software Foundation, Inc.
3949+//
3950+// This file is part of the GNU ISO C++ Library. This library is free
3951+// software; you can redistribute it and/or modify it under the
3952+// terms of the GNU General Public License as published by the
3953+// Free Software Foundation; either version 3, or (at your option)
3954+// any later version.
3955+//
3956+// This library is distributed in the hope that it will be useful,
3957+// but WITHOUT ANY WARRANTY; without even the implied warranty of
3958+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3959+// GNU General Public License for more details.
3960+//
3961+// You should have received a copy of the GNU General Public License along
3962+// with this library; see the file COPYING3. If not see
3963+// <http://www.gnu.org/licenses/>.
3964+//
3965+// { dg-require-debug-mode "" }
3966+// { dg-options "-std=gnu++0x" }
3967+// { dg-do compile }
3968+
3969+// PR libstdc++/52433
3970+
3971+#include <vector>
3972+
3973+struct X
3974+{
3975+ std::vector<int>::iterator i;
3976+
3977+ X() = default;
3978+ X(const X&) = default;
3979+ X(X&&) = default;
3980+ X& operator=(const X&) = default;
3981+ X& operator=(X&&) = default;
3982+};
3983+
3984+X test01()
3985+{
3986+ X x;
3987+ x = X();
3988+ return x;
3989+}
3990+
3991Index: libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/31370.cc
3992===================================================================
3993--- libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/31370.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
3994+++ libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/31370.cc (.../branches/gcc-4_7-branch) (wersja 187293)
3995@@ -1,4 +1,4 @@
3996-// Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
3997+// Copyright (C) 2007, 2009, 2010, 2012 Free Software Foundation, Inc.
3998 //
3999 // This file is part of the GNU ISO C++ Library. This library is free
4000 // software; you can redistribute it and/or modify it under the
4001@@ -17,6 +17,7 @@
4002
4003 // 23.2.5 class vector<bool> [lib.vector.bool]
4004
4005+// { dg-skip-if "" { powerpc64-*-freebsd* } { "*" } { "" } }
4006 // { dg-do run { xfail *-*-darwin8.[0-4].* } }
4007
4008 #include <vector>
4009Index: libstdc++-v3/testsuite/23_containers/vector/52591.cc
4010===================================================================
4011--- libstdc++-v3/testsuite/23_containers/vector/52591.cc (.../tags/gcc_4_7_0_release) (wersja 0)
4012+++ libstdc++-v3/testsuite/23_containers/vector/52591.cc (.../branches/gcc-4_7-branch) (wersja 187293)
4013@@ -0,0 +1,38 @@
4014+// Copyright (C) 2012 Free Software Foundation, Inc.
4015+//
4016+// This file is part of the GNU ISO C++ Library. This library is free
4017+// software; you can redistribute it and/or modify it under the
4018+// terms of the GNU General Public License as published by the
4019+// Free Software Foundation; either version 3, or (at your option)
4020+// any later version.
4021+
4022+// This library is distributed in the hope that it will be useful,
4023+// but WITHOUT ANY WARRANTY; without even the implied warranty of
4024+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4025+// GNU General Public License for more details.
4026+
4027+// You should have received a copy of the GNU General Public License along
4028+// with this library; see the file COPYING3. If not see
4029+// <http://www.gnu.org/licenses/>.
4030+
4031+// { dg-do compile }
4032+// { dg-options "-std=gnu++0x" }
4033+
4034+// libstdc++/52591
4035+
4036+#include <vector>
4037+
4038+// As an extension we allow move-assignment of std::vector when the element
4039+// type is not MoveAssignable, as long as the allocator type propagates or
4040+// is known to always compare equal.
4041+
4042+struct C
4043+{
4044+ C& operator=(C&&) = delete;
4045+};
4046+
4047+void test01()
4048+{
4049+ std::vector<C> a;
4050+ a = std::vector<C>();
4051+}
4052Index: libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc
4053===================================================================
4054--- libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
4055+++ libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc (.../branches/gcc-4_7-branch) (wersja 187293)
4056@@ -2,7 +2,7 @@
4057 // { dg-options "-std=gnu++0x" }
4058 // { dg-require-normal-mode "" }
4059
4060-// Copyright (C) 2011 Free Software Foundation, Inc.
4061+// Copyright (C) 2011, 2012 Free Software Foundation, Inc.
4062 //
4063 // This file is part of the GNU ISO C++ Library. This library is free
4064 // software; you can redistribute it and/or modify it under the
4065@@ -19,7 +19,7 @@
4066 // with this library; see the file COPYING3. If not see
4067 // <http://www.gnu.org/licenses/>.
4068
4069-// { dg-error "static assertion failed" "" { target *-*-* } 185 }
4070+// { dg-error "static assertion failed" "" { target *-*-* } 186 }
4071
4072 #include <unordered_set>
4073
4074Index: libstdc++-v3/testsuite/23_containers/unordered_set/requirements/53067.cc
4075===================================================================
4076--- libstdc++-v3/testsuite/23_containers/unordered_set/requirements/53067.cc (.../tags/gcc_4_7_0_release) (wersja 0)
4077+++ libstdc++-v3/testsuite/23_containers/unordered_set/requirements/53067.cc (.../branches/gcc-4_7-branch) (wersja 187293)
4078@@ -0,0 +1,28 @@
4079+// { dg-do compile }
4080+// { dg-options "-std=gnu++11" }
4081+
4082+// Copyright (C) 2012 Free Software Foundation, Inc.
4083+//
4084+// This file is part of the GNU ISO C++ Library. This library is free
4085+// software; you can redistribute it and/or modify it under the
4086+// terms of the GNU General Public License as published by the
4087+// Free Software Foundation; either version 3, or (at your option)
4088+// any later version.
4089+
4090+// This library is distributed in the hope that it will be useful,
4091+// but WITHOUT ANY WARRANTY; without Pred the implied warranty of
4092+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4093+// GNU General Public License for more details.
4094+
4095+// You should have received a copy of the GNU General Public License along
4096+// with this library; see the file COPYING3. If not see
4097+// <http://www.gnu.org/licenses/>.
4098+
4099+#include <unordered_set>
4100+#include <functional>
4101+
4102+void f()
4103+{
4104+ std::unordered_set<int> Foo;
4105+ ref(Foo);
4106+}
4107Index: libstdc++-v3/testsuite/23_containers/unordered_set/requirements/52942.cc
4108===================================================================
4109--- libstdc++-v3/testsuite/23_containers/unordered_set/requirements/52942.cc (.../tags/gcc_4_7_0_release) (wersja 0)
4110+++ libstdc++-v3/testsuite/23_containers/unordered_set/requirements/52942.cc (.../branches/gcc-4_7-branch) (wersja 187293)
4111@@ -0,0 +1,37 @@
4112+// { dg-do compile }
4113+// { dg-options "-std=gnu++11" }
4114+
4115+// Copyright (C) 2012 Free Software Foundation, Inc.
4116+//
4117+// This file is part of the GNU ISO C++ Library. This library is free
4118+// software; you can redistribute it and/or modify it under the
4119+// terms of the GNU General Public License as published by the
4120+// Free Software Foundation; either version 3, or (at your option)
4121+// any later version.
4122+
4123+// This library is distributed in the hope that it will be useful,
4124+// but WITHOUT ANY WARRANTY; without Pred the implied warranty of
4125+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4126+// GNU General Public License for more details.
4127+
4128+// You should have received a copy of the GNU General Public License along
4129+// with this library; see the file COPYING3. If not see
4130+// <http://www.gnu.org/licenses/>.
4131+
4132+#include <unordered_set>
4133+#include <functional>
4134+
4135+struct TFoo {};
4136+
4137+struct TFoo_hash
4138+{
4139+ std::size_t operator()(const TFoo &) const { return 0; }
4140+};
4141+
4142+void f1(std::unordered_set<TFoo, TFoo_hash> &) {}
4143+
4144+void f2()
4145+{
4146+ std::unordered_set<TFoo, TFoo_hash> set1;
4147+ std::bind(f1, std::ref(set1));
4148+}
4149Index: libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/52799.cc
4150===================================================================
4151--- libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/52799.cc (.../tags/gcc_4_7_0_release) (wersja 0)
4152+++ libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/52799.cc (.../branches/gcc-4_7-branch) (wersja 187293)
4153@@ -0,0 +1,28 @@
4154+// { dg-options "-std=gnu++11" }
4155+// { dg-do compile }
4156+
4157+// Copyright (C) 2012 Free Software Foundation, Inc.
4158+//
4159+// This file is part of the GNU ISO C++ Library. This library is free
4160+// software; you can redistribute it and/or modify it under the
4161+// terms of the GNU General Public License as published by the
4162+// Free Software Foundation; either version 3, or (at your option)
4163+// any later version.
4164+
4165+// This library is distributed in the hope that it will be useful,
4166+// but WITHOUT ANY WARRANTY; without even the implied warranty of
4167+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4168+// GNU General Public License for more details.
4169+
4170+// You should have received a copy of the GNU General Public License along
4171+// with this library; see the file COPYING3. If not see
4172+// <http://www.gnu.org/licenses/>.
4173+
4174+#include <deque>
4175+
4176+// libstdc++/52799
4177+int main()
4178+{
4179+ std::deque<int> d;
4180+ d.emplace(d.begin());
4181+}
4182Index: libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/52799.cc
4183===================================================================
4184--- libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/52799.cc (.../tags/gcc_4_7_0_release) (wersja 0)
4185+++ libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/52799.cc (.../branches/gcc-4_7-branch) (wersja 187293)
4186@@ -0,0 +1,28 @@
4187+// { dg-options "-std=gnu++11" }
4188+// { dg-do compile }
4189+
4190+// Copyright (C) 2012 Free Software Foundation, Inc.
4191+//
4192+// This file is part of the GNU ISO C++ Library. This library is free
4193+// software; you can redistribute it and/or modify it under the
4194+// terms of the GNU General Public License as published by the
4195+// Free Software Foundation; either version 3, or (at your option)
4196+// any later version.
4197+
4198+// This library is distributed in the hope that it will be useful,
4199+// but WITHOUT ANY WARRANTY; without even the implied warranty of
4200+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4201+// GNU General Public License for more details.
4202+
4203+// You should have received a copy of the GNU General Public License along
4204+// with this library; see the file COPYING3. If not see
4205+// <http://www.gnu.org/licenses/>.
4206+
4207+#include <list>
4208+
4209+// libstdc++/52799
4210+int main()
4211+{
4212+ std::list<int> l;
4213+ l.emplace(l.begin());
4214+}
4215Index: libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/53115.cc
4216===================================================================
4217--- libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/53115.cc (.../tags/gcc_4_7_0_release) (wersja 0)
4218+++ libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/53115.cc (.../branches/gcc-4_7-branch) (wersja 187293)
4219@@ -0,0 +1,101 @@
4220+// { dg-options "-std=gnu++11" }
4221+//
4222+// Copyright (C) 2012 Free Software Foundation, Inc.
4223+//
4224+// This file is part of the GNU ISO C++ Library. This library is free
4225+// software; you can redistribute it and/or modify it under the
4226+// terms of the GNU General Public License as published by the
4227+// Free Software Foundation; either version 3, or (at your option)
4228+// any later version.
4229+//
4230+// This library is distributed in the hope that it will be useful,
4231+// but WITHOUT ANY WARRANTY; without even the implied warranty of
4232+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4233+// GNU General Public License for more details.
4234+//
4235+// You should have received a copy of the GNU General Public License along
4236+// with this library; see the file COPYING3. If not see
4237+// <http://www.gnu.org/licenses/>.
4238+
4239+#include <unordered_set>
4240+#include <testsuite_hooks.h>
4241+
4242+namespace
4243+{
4244+ std::size_t
4245+ get_nb_bucket_elems(const std::unordered_multiset<int>& us)
4246+ {
4247+ std::size_t nb = 0;
4248+ for (std::size_t b = 0; b != us.bucket_count(); ++b)
4249+ nb += us.bucket_size(b);
4250+ return nb;
4251+ }
4252+}
4253+
4254+void test01()
4255+{
4256+ using namespace std;
4257+ bool test __attribute__((unused)) = true;
4258+
4259+ std::unordered_multiset<int> mms;
4260+ mms.insert(10);
4261+ VERIFY( mms.size() == 1 );
4262+ VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() );
4263+ VERIFY( get_nb_bucket_elems(mms) == mms.size() );
4264+
4265+ mms.insert(10);
4266+ VERIFY( mms.size() == 2 );
4267+ VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() );
4268+ VERIFY( get_nb_bucket_elems(mms) == mms.size() );
4269+
4270+ mms.insert(10);
4271+ VERIFY( mms.size() == 3 );
4272+ VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() );
4273+ VERIFY( get_nb_bucket_elems(mms) == mms.size() );
4274+
4275+ mms.insert(10);
4276+ VERIFY( mms.size() == 4 );
4277+ VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() );
4278+ VERIFY( get_nb_bucket_elems(mms) == mms.size() );
4279+
4280+ mms.insert(10);
4281+ VERIFY( mms.size() == 5 );
4282+ VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() );
4283+ VERIFY( get_nb_bucket_elems(mms) == mms.size() );
4284+
4285+ mms.insert(24);
4286+ VERIFY( mms.size() == 6 );
4287+ VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() );
4288+ VERIFY( get_nb_bucket_elems(mms) == mms.size() );
4289+
4290+ mms.insert(25);
4291+ VERIFY( mms.size() == 7 );
4292+ VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() );
4293+ VERIFY( get_nb_bucket_elems(mms) == mms.size() );
4294+
4295+ mms.insert(2);
4296+ VERIFY( mms.size() == 8 );
4297+ VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() );
4298+ VERIFY( get_nb_bucket_elems(mms) == mms.size() );
4299+
4300+ mms.insert(2);
4301+ VERIFY( mms.size() == 9 );
4302+ VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() );
4303+ VERIFY( get_nb_bucket_elems(mms) == mms.size() );
4304+
4305+ mms.insert(1);
4306+ VERIFY( mms.size() == 10 );
4307+ VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() );
4308+ VERIFY( get_nb_bucket_elems(mms) == mms.size() );
4309+
4310+ mms.insert(10);
4311+ VERIFY( mms.size() == 11 );
4312+ VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() );
4313+ VERIFY( get_nb_bucket_elems(mms) == mms.size() );
4314+}
4315+
4316+int main()
4317+{
4318+ test01();
4319+ return 0;
4320+}
4321Index: libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/52476.cc
4322===================================================================
4323--- libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/52476.cc (.../tags/gcc_4_7_0_release) (wersja 0)
4324+++ libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/52476.cc (.../branches/gcc-4_7-branch) (wersja 187293)
4325@@ -0,0 +1,77 @@
4326+// { dg-options "-std=gnu++0x" }
4327+//
4328+// Copyright (C) 2012 Free Software Foundation, Inc.
4329+//
4330+// This file is part of the GNU ISO C++ Library. This library is free
4331+// software; you can redistribute it and/or modify it under the
4332+// terms of the GNU General Public License as published by the
4333+// Free Software Foundation; either version 3, or (at your option)
4334+// any later version.
4335+//
4336+// This library is distributed in the hope that it will be useful,
4337+// but WITHOUT ANY WARRANTY; without even the implied warranty of
4338+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4339+// GNU General Public License for more details.
4340+//
4341+// You should have received a copy of the GNU General Public License along
4342+// with this library; see the file COPYING3. If not see
4343+// <http://www.gnu.org/licenses/>.
4344+
4345+#include <unordered_set>
4346+#include <vector>
4347+#include <algorithm>
4348+#include <testsuite_hooks.h>
4349+
4350+namespace
4351+{
4352+ struct pair_hash
4353+ {
4354+ std::size_t
4355+ operator()(const std::pair<int, int>& p) const noexcept
4356+ { return std::hash<int>()(p.first); }
4357+ };
4358+
4359+ struct pair_equal_to
4360+ {
4361+ bool
4362+ operator()(const std::pair<int, int>& x,
4363+ const std::pair<int, int>& y) const noexcept
4364+ { return x.first == y.first; }
4365+ };
4366+}
4367+
4368+void test01()
4369+{
4370+ using namespace std;
4371+ bool test __attribute__((unused)) = true;
4372+
4373+ unordered_multiset<pair<int, int>, pair_hash, pair_equal_to> mset;
4374+ vector<int> values;
4375+
4376+ size_t nb_bkts = mset.bucket_count();
4377+ int i = 0;
4378+ for (;; ++i)
4379+ {
4380+ mset.insert(make_pair(0, i));
4381+ if (mset.bucket_count() != nb_bkts)
4382+ // Container got rehash
4383+ break;
4384+ values.clear();
4385+ transform(mset.begin(), mset.end(), back_inserter(values),
4386+ [](const pair<int, int>& p) { return p.second; });
4387+ }
4388+
4389+ vector<int> rehash_values;
4390+ transform(mset.begin(), mset.end(), back_inserter(rehash_values),
4391+ [](const pair<int, int>& p) { return p.second; });
4392+ // Remove the value that result in a rehash
4393+ rehash_values.erase(remove(rehash_values.begin(), rehash_values.end(), i));
4394+
4395+ VERIFY( rehash_values == values );
4396+}
4397+
4398+int main()
4399+{
4400+ test01();
4401+ return 0;
4402+}
4403Index: libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc
4404===================================================================
4405--- libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
4406+++ libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc (.../branches/gcc-4_7-branch) (wersja 187293)
4407@@ -32,9 +32,9 @@
4408 {
4409 X* px = 0;
4410 std::shared_ptr<X> p1(px); // { dg-error "here" }
4411- // { dg-error "incomplete" "" { target *-*-* } 771 }
4412+ // { dg-error "incomplete" "" { target *-*-* } 775 }
4413
4414 std::shared_ptr<X> p9(ap()); // { dg-error "here" }
4415- // { dg-error "incomplete" "" { target *-*-* } 865 }
4416+ // { dg-error "incomplete" "" { target *-*-* } 869 }
4417
4418 }
4419Index: libstdc++-v3/testsuite/20_util/shared_ptr/cons/52924.cc
4420===================================================================
4421--- libstdc++-v3/testsuite/20_util/shared_ptr/cons/52924.cc (.../tags/gcc_4_7_0_release) (wersja 0)
4422+++ libstdc++-v3/testsuite/20_util/shared_ptr/cons/52924.cc (.../branches/gcc-4_7-branch) (wersja 187293)
4423@@ -0,0 +1,44 @@
4424+// { dg-options "-std=gnu++0x" }
4425+// { dg-do compile }
4426+
4427+// Copyright (C) 2012 Free Software Foundation
4428+//
4429+// This file is part of the GNU ISO C++ Library. This library is free
4430+// software; you can redistribute it and/or modify it under the
4431+// terms of the GNU General Public License as published by the
4432+// Free Software Foundation; either version 3, or (at your option)
4433+// any later version.
4434+
4435+// This library is distributed in the hope that it will be useful,
4436+// but WITHOUT ANY WARRANTY; without even the implied warranty of
4437+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4438+// GNU General Public License for more details.
4439+
4440+// You should have received a copy of the GNU General Public License along
4441+// with this library; see the file COPYING3. If not see
4442+// <http://www.gnu.org/licenses/>.
4443+
4444+#include <memory>
4445+
4446+// libstdc++/52924
4447+
4448+struct A { } a;
4449+
4450+struct D {
4451+ ~D() noexcept(false) { }
4452+ void operator()(A*) { }
4453+} d;
4454+
4455+auto sp = std::shared_ptr<A>(&a, d);
4456+
4457+template<typename T>
4458+struct Alloc : std::allocator<T>
4459+{
4460+ Alloc() = default;
4461+ ~Alloc() noexcept(false) { }
4462+ template<typename U> Alloc(const Alloc<U>&) { }
4463+};
4464+
4465+Alloc<A> al;
4466+
4467+auto as = std::allocate_shared<A>(al);
4468Index: libstdc++-v3/testsuite/20_util/scoped_allocator/1.cc
4469===================================================================
4470--- libstdc++-v3/testsuite/20_util/scoped_allocator/1.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
4471+++ libstdc++-v3/testsuite/20_util/scoped_allocator/1.cc (.../branches/gcc-4_7-branch) (wersja 187293)
4472@@ -1,6 +1,6 @@
4473 // { dg-options "-std=gnu++0x" }
4474
4475-// Copyright (C) 2011 Free Software Foundation, Inc.
4476+// Copyright (C) 2011, 2012 Free Software Foundation, Inc.
4477 //
4478 // This file is part of the GNU ISO C++ Library. This library is free
4479 // software; you can redistribute it and/or modify it under the
4480@@ -33,7 +33,7 @@
4481
4482 Element(const allocator_type& a = allocator_type()) : alloc(a) { }
4483
4484- Element(std::allocator_arg_t, const allocator_type& a, int i = 0)
4485+ Element(std::allocator_arg_t, const allocator_type& a, int = 0)
4486 : alloc(a) { }
4487
4488 Element(std::allocator_arg_t, const allocator_type& a, const Element&)
4489@@ -53,6 +53,7 @@
4490 alloc1_type a1(1);
4491 Element e;
4492 EltVec ev1(1, e, a1);
4493+ VERIFY( ev1.get_allocator().get_personality() == 1 );
4494 VERIFY( ev1[0].get_allocator().get_personality() == 1 );
4495 }
4496
4497@@ -60,14 +61,16 @@
4498 {
4499 bool test __attribute((unused)) = false;
4500
4501- typedef std::vector<Element, Element::allocator_type> EltVec;
4502+ typedef std::scoped_allocator_adaptor<Element::allocator_type> inner_alloc_type;
4503
4504- typedef std::scoped_allocator_adaptor<EltVec::allocator_type,
4505- Element::allocator_type> alloc_type;
4506+ typedef std::vector<Element, inner_alloc_type> EltVec;
4507
4508+ typedef std::scoped_allocator_adaptor<Element::allocator_type,
4509+ Element::allocator_type> alloc_type;
4510+
4511 typedef std::vector<EltVec, alloc_type> EltVecVec;
4512
4513- alloc_type a(1, 2);
4514+ alloc_type a(1, Element::allocator_type(2)); // outer=1, inner=2
4515 Element e;
4516 EltVec ev(1, e);
4517 EltVecVec evv(1, ev, a);
4518@@ -76,7 +79,7 @@
4519 VERIFY( evv[0].get_allocator().get_personality() == 2 );
4520 VERIFY( evv[0][0].get_allocator().get_personality() == 2 );
4521
4522- alloc_type a2(3, 4);
4523+ alloc_type a2(3, Element::allocator_type(4)); // outer=3, inner=4
4524
4525 EltVecVec evv2(evv, a2); // copy with a different allocator
4526
4527@@ -96,4 +99,5 @@
4528 int main()
4529 {
4530 test01();
4531+ test02();
4532 }
4533Index: libstdc++-v3/testsuite/20_util/pointer_traits/requirements/typedefs.cc
4534===================================================================
4535--- libstdc++-v3/testsuite/20_util/pointer_traits/requirements/typedefs.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
4536+++ libstdc++-v3/testsuite/20_util/pointer_traits/requirements/typedefs.cc (.../branches/gcc-4_7-branch) (wersja 187293)
4537@@ -32,6 +32,7 @@
4538 typedef typename test_type::pointer pointer;
4539 typedef typename test_type::element_type element_type;
4540 typedef typename test_type::difference_type difference_type;
4541+ typedef typename test_type::template rebind<char> rebind_type;
4542 }
4543
4544 int main()
4545Index: libstdc++-v3/config/abi/post/sparc-linux-gnu/baseline_symbols.txt
4546===================================================================
4547--- libstdc++-v3/config/abi/post/sparc-linux-gnu/baseline_symbols.txt (.../tags/gcc_4_7_0_release) (wersja 187293)
4548+++ libstdc++-v3/config/abi/post/sparc-linux-gnu/baseline_symbols.txt (.../branches/gcc-4_7-branch) (wersja 187293)
4549@@ -43,6 +43,10 @@
4550 FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
4551 FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
4552 FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
4553+FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
4554+FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
4555+FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
4556+FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base7_M_swapERS0_@@GLIBCXX_3.4.17
4557 FUNC:_ZN14__gnu_parallel9_Settings3getEv@@GLIBCXX_3.4.10
4558 FUNC:_ZN14__gnu_parallel9_Settings3setERS0_@@GLIBCXX_3.4.10
4559 FUNC:_ZN9__gnu_cxx12__atomic_addEPVii@@GLIBCXX_3.4
4560@@ -877,6 +881,7 @@
4561 FUNC:_ZNSaIwEC2Ev@@GLIBCXX_3.4
4562 FUNC:_ZNSaIwED1Ev@@GLIBCXX_3.4
4563 FUNC:_ZNSaIwED2Ev@@GLIBCXX_3.4
4564+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_S_compareEjj@@GLIBCXX_3.4.16
4565 FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS1_@@GLIBCXX_3.4
4566 FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS1_@@GLIBCXX_3.4
4567 FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv@@GLIBCXX_3.4
4568@@ -961,6 +966,7 @@
4569 FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjRKS2_jj@@GLIBCXX_3.4
4570 FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjjw@@GLIBCXX_3.4
4571 FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7reserveEj@@GLIBCXX_3.4
4572+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE8pop_backEv@@GLIBCXX_3.4.17
4573 FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwjw@@GLIBCXX_3.4.5
4574 FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwjw@GLIBCXX_3.4
4575 FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEjjj@@GLIBCXX_3.4
4576@@ -1116,6 +1122,7 @@
4577 FUNC:_ZNSolsEt@@GLIBCXX_3.4
4578 FUNC:_ZNSolsEx@@GLIBCXX_3.4
4579 FUNC:_ZNSolsEy@@GLIBCXX_3.4
4580+FUNC:_ZNSs10_S_compareEjj@@GLIBCXX_3.4.16
4581 FUNC:_ZNSs12_Alloc_hiderC1EPcRKSaIcE@@GLIBCXX_3.4
4582 FUNC:_ZNSs12_Alloc_hiderC2EPcRKSaIcE@@GLIBCXX_3.4
4583 FUNC:_ZNSs12_M_leak_hardEv@@GLIBCXX_3.4
4584@@ -1200,6 +1207,7 @@
4585 FUNC:_ZNSs7replaceEjjRKSsjj@@GLIBCXX_3.4
4586 FUNC:_ZNSs7replaceEjjjc@@GLIBCXX_3.4
4587 FUNC:_ZNSs7reserveEj@@GLIBCXX_3.4
4588+FUNC:_ZNSs8pop_backEv@@GLIBCXX_3.4.17
4589 FUNC:_ZNSs9_M_assignEPcjc@@GLIBCXX_3.4.5
4590 FUNC:_ZNSs9_M_assignEPcjc@GLIBCXX_3.4
4591 FUNC:_ZNSs9_M_mutateEjjj@@GLIBCXX_3.4
4592@@ -1433,6 +1441,9 @@
4593 FUNC:_ZNSt13__future_base12_Result_baseD0Ev@@GLIBCXX_3.4.15
4594 FUNC:_ZNSt13__future_base12_Result_baseD1Ev@@GLIBCXX_3.4.15
4595 FUNC:_ZNSt13__future_base12_Result_baseD2Ev@@GLIBCXX_3.4.15
4596+FUNC:_ZNSt13__future_base19_Async_state_commonD0Ev@@GLIBCXX_3.4.17
4597+FUNC:_ZNSt13__future_base19_Async_state_commonD1Ev@@GLIBCXX_3.4.17
4598+FUNC:_ZNSt13__future_base19_Async_state_commonD2Ev@@GLIBCXX_3.4.17
4599 FUNC:_ZNSt13bad_exceptionD0Ev@@GLIBCXX_3.4
4600 FUNC:_ZNSt13bad_exceptionD1Ev@@GLIBCXX_3.4
4601 FUNC:_ZNSt13bad_exceptionD2Ev@@GLIBCXX_3.4
4602@@ -1741,6 +1752,8 @@
4603 FUNC:_ZNSt15__exception_ptrneERKNS_13exception_ptrES2_@@CXXABI_1.3.3
4604 FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
4605 FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
4606+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE12__safe_gbumpEi@@GLIBCXX_3.4.16
4607+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE12__safe_pbumpEi@@GLIBCXX_3.4.16
4608 FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_@@GLIBCXX_3.4
4609 FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setpEPcS3_@@GLIBCXX_3.4
4610 FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv@@GLIBCXX_3.4
4611@@ -1780,6 +1793,8 @@
4612 FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEaSERKS2_@@GLIBCXX_3.4
4613 FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
4614 FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
4615+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE12__safe_gbumpEi@@GLIBCXX_3.4.16
4616+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE12__safe_pbumpEi@@GLIBCXX_3.4.16
4617 FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setgEPwS3_S3_@@GLIBCXX_3.4
4618 FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setpEPwS3_@@GLIBCXX_3.4
4619 FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4syncEv@@GLIBCXX_3.4
4620@@ -1824,6 +1839,7 @@
4621 FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcjj@@GLIBCXX_3.4
4622 FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
4623 FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
4624+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8_M_pbumpEPcS4_x@@GLIBCXX_3.4.16
4625 FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi@@GLIBCXX_3.4
4626 FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi@@GLIBCXX_3.4
4627 FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9showmanycEv@@GLIBCXX_3.4.6
4628@@ -1841,6 +1857,7 @@
4629 FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7_M_syncEPwjj@@GLIBCXX_3.4
4630 FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
4631 FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
4632+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8_M_pbumpEPwS4_x@@GLIBCXX_3.4.16
4633 FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEj@@GLIBCXX_3.4
4634 FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEj@@GLIBCXX_3.4
4635 FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9showmanycEv@@GLIBCXX_3.4.6
4636@@ -2145,6 +2162,7 @@
4637 FUNC:_ZNSt6localeD2Ev@@GLIBCXX_3.4
4638 FUNC:_ZNSt6localeaSERKS_@@GLIBCXX_3.4
4639 FUNC:_ZNSt6thread15_M_start_threadESt10shared_ptrINS_10_Impl_baseEE@@GLIBCXX_3.4.11
4640+FUNC:_ZNSt6thread20hardware_concurrencyEv@@GLIBCXX_3.4.17
4641 FUNC:_ZNSt6thread4joinEv@@GLIBCXX_3.4.11
4642 FUNC:_ZNSt6thread6detachEv@@GLIBCXX_3.4.11
4643 FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1EP15__locale_structj@@GLIBCXX_3.4
4644@@ -2640,14 +2658,17 @@
4645 FUNC:_ZnwjRKSt9nothrow_t@@GLIBCXX_3.4
4646 FUNC:__atomic_flag_for_address@@GLIBCXX_3.4.11
4647 FUNC:__atomic_flag_wait_explicit@@GLIBCXX_3.4.11
4648+FUNC:__cxa_allocate_dependent_exception@@CXXABI_1.3.6
4649 FUNC:__cxa_allocate_exception@@CXXABI_1.3
4650 FUNC:__cxa_bad_cast@@CXXABI_1.3
4651 FUNC:__cxa_bad_typeid@@CXXABI_1.3
4652 FUNC:__cxa_begin_catch@@CXXABI_1.3
4653 FUNC:__cxa_call_unexpected@@CXXABI_1.3
4654 FUNC:__cxa_current_exception_type@@CXXABI_1.3
4655+FUNC:__cxa_deleted_virtual@@CXXABI_1.3.6
4656 FUNC:__cxa_demangle@@CXXABI_1.3
4657 FUNC:__cxa_end_catch@@CXXABI_1.3
4658+FUNC:__cxa_free_dependent_exception@@CXXABI_1.3.6
4659 FUNC:__cxa_free_exception@@CXXABI_1.3
4660 FUNC:__cxa_get_exception_ptr@@CXXABI_1.3.1
4661 FUNC:__cxa_get_globals@@CXXABI_1.3
4662@@ -2658,6 +2679,7 @@
4663 FUNC:__cxa_pure_virtual@@CXXABI_1.3
4664 FUNC:__cxa_rethrow@@CXXABI_1.3
4665 FUNC:__cxa_throw@@CXXABI_1.3
4666+FUNC:__cxa_tm_cleanup@@CXXABI_TM_1
4667 FUNC:__cxa_vec_cctor@@CXXABI_1.3
4668 FUNC:__cxa_vec_cleanup@@CXXABI_1.3
4669 FUNC:__cxa_vec_ctor@@CXXABI_1.3
4670@@ -2701,7 +2723,9 @@
4671 OBJECT:0:CXXABI_1.3.3
4672 OBJECT:0:CXXABI_1.3.4
4673 OBJECT:0:CXXABI_1.3.5
4674+OBJECT:0:CXXABI_1.3.6
4675 OBJECT:0:CXXABI_LDBL_1.3
4676+OBJECT:0:CXXABI_TM_1
4677 OBJECT:0:GLIBCXX_3.4
4678 OBJECT:0:GLIBCXX_3.4.1
4679 OBJECT:0:GLIBCXX_3.4.10
4680@@ -2710,6 +2734,8 @@
4681 OBJECT:0:GLIBCXX_3.4.13
4682 OBJECT:0:GLIBCXX_3.4.14
4683 OBJECT:0:GLIBCXX_3.4.15
4684+OBJECT:0:GLIBCXX_3.4.16
4685+OBJECT:0:GLIBCXX_3.4.17
4686 OBJECT:0:GLIBCXX_3.4.2
4687 OBJECT:0:GLIBCXX_3.4.3
4688 OBJECT:0:GLIBCXX_3.4.4
4689@@ -2737,6 +2763,7 @@
4690 OBJECT:12:_ZTIN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
4691 OBJECT:12:_ZTIN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
4692 OBJECT:12:_ZTIN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
4693+OBJECT:12:_ZTINSt13__future_base19_Async_state_commonE@@GLIBCXX_3.4.17
4694 OBJECT:12:_ZTINSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_LDBL_3.4
4695 OBJECT:12:_ZTINSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_LDBL_3.4
4696 OBJECT:12:_ZTINSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_LDBL_3.4
4697@@ -3245,6 +3272,7 @@
4698 OBJECT:20:_ZTSSt15underflow_error@@GLIBCXX_3.4
4699 OBJECT:20:_ZTVNSt13__future_base11_State_baseE@@GLIBCXX_3.4.15
4700 OBJECT:20:_ZTVNSt13__future_base12_Result_baseE@@GLIBCXX_3.4.15
4701+OBJECT:20:_ZTVNSt13__future_base19_Async_state_commonE@@GLIBCXX_3.4.17
4702 OBJECT:20:_ZTVNSt8ios_base7failureE@@GLIBCXX_3.4
4703 OBJECT:20:_ZTVSt10bad_typeid@@GLIBCXX_3.4
4704 OBJECT:20:_ZTVSt10lock_error@@GLIBCXX_3.4.11
4705@@ -3437,6 +3465,7 @@
4706 OBJECT:40:_ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
4707 OBJECT:40:_ZTVSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
4708 OBJECT:40:_ZTVSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
4709+OBJECT:41:_ZTSNSt13__future_base19_Async_state_commonE@@GLIBCXX_3.4.17
4710 OBJECT:41:_ZTSSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
4711 OBJECT:41:_ZTSSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCXX_3.4
4712 OBJECT:44:_ZTVN10__cxxabiv117__class_type_infoE@@CXXABI_1.3
4713Index: libstdc++-v3/acinclude.m4
4714===================================================================
4715--- libstdc++-v3/acinclude.m4 (.../tags/gcc_4_7_0_release) (wersja 187293)
4716+++ libstdc++-v3/acinclude.m4 (.../branches/gcc-4_7-branch) (wersja 187293)
4717@@ -2955,11 +2955,10 @@
4718 CXXFLAGS="$old_CXXFLAGS"
4719 AC_LANG_RESTORE
4720
4721- # Set atomicity_dir to builtins if all of above tests pass.
4722+ # Set atomicity_dir to builtins if all but the long long test above passes.
4723 if test $glibcxx_cv_atomic_bool = yes \
4724 && test $glibcxx_cv_atomic_short = yes \
4725- && test $glibcxx_cv_atomic_int = yes \
4726- && test $glibcxx_cv_atomic_long_long = yes ; then
4727+ && test $glibcxx_cv_atomic_int = yes; then
4728 AC_DEFINE(_GLIBCXX_ATOMIC_BUILTINS, 1,
4729 [Define if the compiler supports C++11 atomics.])
4730 atomicity_dir=cpu/generic/atomicity_builtins
4731Index: libiberty/ChangeLog
4732===================================================================
4733--- libiberty/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293)
4734+++ libiberty/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293)
4735@@ -1,3 +1,12 @@
4736+2012-03-24 H.J. Lu <hongjiu.lu@intel.com>
4737+
4738+ * testsuite/demangle-expected: Fix a typo.
4739+
4740+2012-03-22 Jason Merrill <jason@redhat.com>
4741+
4742+ * cp-demangle.c (cplus_demangle_operators): Add li.
4743+ (d_unqualified_name): Handle it specially.
4744+
4745 2012-03-22 Release Manager
4746
4747 * GCC 4.7.0 released.
4748Index: libiberty/testsuite/demangle-expected
4749===================================================================
4750--- libiberty/testsuite/demangle-expected (.../tags/gcc_4_7_0_release) (wersja 187293)
4751+++ libiberty/testsuite/demangle-expected (.../branches/gcc-4_7-branch) (wersja 187293)
4752@@ -4073,6 +4073,9 @@
4753 _Z2f1IiEDTnw_T_ilEES0_
4754 decltype (new int{}) f1<int>(int)
4755 --format=gnu-v3
4756+_Zli2_wPKc
4757+operator"" _w(char const*)
4758+--format=gnu-v3
4759 _Z1fIiEDTnw_Dapifp_EET_
4760 decltype (new auto({parm#1})) f<int>(int)
4761 --format=gnu-v3
4762Index: libiberty/cp-demangle.c
4763===================================================================
4764--- libiberty/cp-demangle.c (.../tags/gcc_4_7_0_release) (wersja 187293)
4765+++ libiberty/cp-demangle.c (.../branches/gcc-4_7-branch) (wersja 187293)
4766@@ -1419,7 +1419,12 @@
4767
4768 ret = d_operator_name (di);
4769 if (ret != NULL && ret->type == DEMANGLE_COMPONENT_OPERATOR)
4770- di->expansion += sizeof "operator" + ret->u.s_operator.op->len - 2;
4771+ {
4772+ di->expansion += sizeof "operator" + ret->u.s_operator.op->len - 2;
4773+ if (!strcmp (ret->u.s_operator.op->code, "li"))
4774+ ret = d_make_comp (di, DEMANGLE_COMPONENT_UNARY, ret,
4775+ d_source_name (di));
4776+ }
4777 return ret;
4778 }
4779 else if (peek == 'C' || peek == 'D')
4780@@ -1596,6 +1601,7 @@
4781 { "ix", NL ("[]"), 2 },
4782 { "lS", NL ("<<="), 2 },
4783 { "le", NL ("<="), 2 },
4784+ { "li", NL ("operator\"\" "), 1 },
4785 { "ls", NL ("<<"), 2 },
4786 { "lt", NL ("<"), 2 },
4787 { "mI", NL ("-="), 2 },
4788Index: ChangeLog
4789===================================================================
4790--- ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293)
4791+++ ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293)
4792@@ -1,3 +1,11 @@
4793+2012-03-28 Georg-Johann Lay <avr@gjlay.de>
4794+
4795+ Backport from 2012-03-28 mainline r185907.
4796+
4797+ PR target/52737
4798+ * contrib/gcc_update (files_and_dependencies):
4799+ Remove gcc/config/avr/t-multilib from touch data.
4800+
4801 2012-03-22 Release Manager
4802
4803 * GCC 4.7.0 released.
4804Index: contrib/gcc_update
4805===================================================================
4806--- contrib/gcc_update (.../tags/gcc_4_7_0_release) (wersja 187293)
4807+++ contrib/gcc_update (.../branches/gcc-4_7-branch) (wersja 187293)
4808@@ -83,7 +83,6 @@
4809 gcc/config/arm/arm-tables.opt: gcc/config/arm/arm-arches.def gcc/config/arm/arm-cores.def gcc/config/arm/arm-fpus.def gcc/config/arm/genopt.sh
4810 gcc/config/avr/avr-tables.opt: gcc/config/avr/avr-mcus.def gcc/config/avr/genopt.sh
4811 gcc/config/avr/t-multilib: gcc/config/avr/avr-mcus.def gcc/config/avr/genmultilib.awk
4812-gcc/config/avr/multilib.h: gcc/config/avr/avr-mcus.def gcc/config/avr/genmultilib.awk
4813 gcc/config/c6x/c6x-tables.opt: gcc/config/c6x/c6x-isas.def gcc/config/c6x/genopt.sh
4814 gcc/config/c6x/c6x-sched.md: gcc/config/c6x/c6x-sched.md.in gcc/config/c6x/gensched.sh
4815 gcc/config/c6x/c6x-mult.md: gcc/config/c6x/c6x-mult.md.in gcc/config/c6x/genmult.sh
4816Index: libjava/ChangeLog
4817===================================================================
4818--- libjava/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293)
4819+++ libjava/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293)
4820@@ -1,3 +1,8 @@
4821+2012-04-23 Andrew Haley <aph@redhat.com>
4822+
4823+ * defineclass.cc (MAJOR_1_7, MINOR_1_7): New.
4824+ (parse): Allow MAJOR_1_7 classfile version.
4825+
4826 2012-03-22 Release Manager
4827
4828 * GCC 4.7.0 released.
4829Index: libjava/defineclass.cc
4830===================================================================
4831--- libjava/defineclass.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
4832+++ libjava/defineclass.cc (.../branches/gcc-4_7-branch) (wersja 187293)
4833@@ -361,6 +361,8 @@
4834 #define MINOR_1_5 0
4835 #define MAJOR_1_6 50
4836 #define MINOR_1_6 0
4837+#define MAJOR_1_7 51
4838+#define MINOR_1_7 0
4839
4840 void
4841 _Jv_ClassReader::parse ()
4842@@ -371,8 +373,8 @@
4843
4844 int minor_version = read2u ();
4845 int major_version = read2u ();
4846- if (major_version < MAJOR_1_1 || major_version > MAJOR_1_6
4847- || (major_version == MAJOR_1_6 && minor_version > MINOR_1_6))
4848+ if (major_version < MAJOR_1_1 || major_version > MAJOR_1_7
4849+ || (major_version == MAJOR_1_7 && minor_version > MINOR_1_7))
4850 throw_class_format_error ("unrecognized class file version");
4851 is_15 = (major_version >= MAJOR_1_5);
4852
4853Index: libgcc/config.host
4854===================================================================
4855--- libgcc/config.host (.../tags/gcc_4_7_0_release) (wersja 187293)
4856+++ libgcc/config.host (.../branches/gcc-4_7-branch) (wersja 187293)
4857@@ -744,15 +744,13 @@
4858 ;;
4859 mips*-*-netbsd*) # NetBSD/mips, either endian.
4860 ;;
4861-mips64*-*-linux* | mipsisa64*-*-linux*)
4862- extra_parts="$extra_parts crtfastmath.o"
4863- tmake_file="${tmake_file} t-crtfm mips/t-mips16 mips/t-tpbit"
4864- md_unwind_header=mips/linux-unwind.h
4865- ;;
4866 mips*-*-linux*) # Linux MIPS, either endian.
4867 extra_parts="$extra_parts crtfastmath.o"
4868 tmake_file="${tmake_file} t-crtfm mips/t-mips16"
4869 md_unwind_header=mips/linux-unwind.h
4870+ if test "${ac_cv_sizeof_long_double}" = 16; then
4871+ tmake_file="${tmake_file} mips/t-tpbit"
4872+ fi
4873 ;;
4874 mips*-*-openbsd*)
4875 ;;
4876@@ -848,9 +846,15 @@
4877 tmake_file="$tmake_file rs6000/t-darwin64 rs6000/t-ibm-ldouble"
4878 extra_parts="$extra_parts crt2.o"
4879 ;;
4880-powerpc-*-freebsd*)
4881- tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff rs6000/t-freebsd t-softfp-sfdf t-softfp-excl t-softfp t-slibgcc-libgcc"
4882+powerpc*-*-freebsd*)
4883+ tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff rs6000/t-freebsd t-softfp-sfdf t-softfp-excl t-softfp"
4884 extra_parts="$extra_parts crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
4885+ case ${host} in
4886+ powerpc64*)
4887+ tmake_file="${tmake_file} rs6000/t-freebsd64"
4888+ md_unwind_header=rs6000/freebsd-unwind.h
4889+ ;;
4890+ esac
4891 ;;
4892 powerpc-*-netbsd*)
4893 tmake_file="$tmake_file rs6000/t-netbsd rs6000/t-crtstuff"
4894Index: libgcc/ChangeLog
4895===================================================================
4896--- libgcc/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293)
4897+++ libgcc/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293)
4898@@ -1,3 +1,102 @@
4899+2012-04-30 Andreas Tobler <andreast@fgznet.ch>
4900+
4901+ Backport from mainline
4902+ 2012-03-21 Andreas Tobler <andreast@fgznet.ch>
4903+
4904+ * config.host: Add bits to support powerpc64-*-freebsd*.
4905+ * config/rs6000/freebsd-unwind.h: New file.
4906+ * config/rs6000/t-freebsd64: New file.
4907+
4908+2012-04-28 Aurelien Jarno <aurelien@aurel32.net>
4909+
4910+ * config.host (mips64*-*-linux*, mipsisa64*-*-linux*): Remove.
4911+ (mips*-*-linux*): Include mips/t-tpbit when long double is
4912+ 16 bytes long.
4913+
4914+2012-04-20 Thomas Schwinge <thomas@codesourcery.com>
4915+
4916+ struct siginfo vs. siginfo_t
4917+
4918+ Backport from trunk:
4919+
4920+ 2012-04-20 Thomas Schwinge <thomas@codesourcery.com>
4921+
4922+ * config/alpha/linux-unwind.h (alpha_fallback_frame_state): Use
4923+ siginfo_t instead of struct siginfo.
4924+ * config/bfin/linux-unwind.h (bfin_fallback_frame_state): Likewise.
4925+ * config/i386/linux-unwind.h (x86_fallback_frame_state): Likewise.
4926+ * config/ia64/linux-unwind.h (ia64_fallback_frame_state)
4927+ (ia64_handle_unwabi): Likewise.
4928+ * config/mips/linux-unwind.h (mips_fallback_frame_state): Likewise.
4929+ * config/pa/linux-unwind.h (pa32_fallback_frame_state): Likewise.
4930+ * config/sh/linux-unwind.h (shmedia_fallback_frame_state)
4931+ (sh_fallback_frame_state): Likewise.
4932+ * config/tilepro/linux-unwind.h (tile_fallback_frame_state): Likewise.
4933+ * config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Likewise.
4934+
4935+2012-04-06 Walter Lee <walt@tilera.com>
4936+
4937+ Backport from mainline
4938+ 2012-03-07 Walter Lee <walt@tilera.com>
4939+
4940+ * config/tilepro/atomic.c: Rename "atomic_" prefix to
4941+ "arch_atomic_".
4942+ (atomic_xor): Rename and move definition to
4943+ config/tilepro/atomic.h.
4944+ (atomic_nand): Ditto.
4945+ * config/tilepro/atomic.h: Rename "atomic_" prefix to
4946+ "arch_atomic_".
4947+ (arch_atomic_xor): Move from config/tilepro/atomic.c.
4948+ (arch_atomic_nand): Ditto.
4949+
4950+2012-04-02 H.J. Lu <hongjiu.lu@intel.com>
4951+
4952+ Backported from mainline
4953+ 2012-04-02 H.J. Lu <hongjiu.lu@intel.com>
4954+
4955+ * config/i386/linux-unwind.h (RT_SIGRETURN_SYSCALL): Update x32
4956+ system call number.
4957+
4958+2012-03-31 Eric Botcazou <ebotcazou@adacore.com>
4959+
4960+ * config/ia64/unwind-ia64.c (uw_install_context): Manually save LC
4961+ if it hasn't been previously saved.
4962+
4963+2012-03-28 Georg-Johann Lay <avr@gjlay.de>
4964+
4965+ Backport from 2012-03-28 mainline r185907.
4966+
4967+ PR target/52737
4968+ * config/avr/lib1funcs.S: Use __AVR_HAVE_SPH__ for SP_H checks
4969+ instead of __AVR_HAVE_8BIT_SP__.
4970+
4971+2012-03-22 Georg-Johann Lay <avr@gjlay.de>
4972+
4973+ Backport from 2012-03-07 mainline r185033.
4974+
4975+ PR target/52507
4976+ * config/avr/lib1funcs.S (__movmemx_hi): Fix loop label in RAM-part.
4977+
4978+ Backport from 2012-03-07 mainline r185031.
4979+
4980+ PR target/52505
4981+ * config/avr/lib1funcs.S (__xload_1): Don't read unintentionally
4982+ from RAM.
4983+
4984+ Backport from 2012-03-07 mainline r185030.
4985+
4986+ PR target/52461
4987+ PR target/52508
4988+ * config/avr/lib1funcs.S (__do_copy_data): Clear RAMPZ after usage
4989+ if RAMPZ affects reading from RAM.
4990+ (__tablejump_elpm__): Ditto.
4991+ (.xload): Ditto.
4992+ (__movmemx_hi): Ditto.
4993+ (__do_global_ctors): Right condition for RAMPZ usage is "have ELPM".
4994+ (__do_global_dtors): Ditto.
4995+ (__xload_1, __xload_2, __xload_3, __xload_4): Ditto.
4996+ (__movmemx_hi): Ditto.
4997+
4998 2012-03-22 Release Manager
4999
5000 * GCC 4.7.0 released.
5001Index: libgcc/config/alpha/linux-unwind.h
5002===================================================================
5003--- libgcc/config/alpha/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187293)
5004+++ libgcc/config/alpha/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187293)
5005@@ -1,5 +1,5 @@
5006 /* DWARF2 EH unwinding support for Alpha Linux.
5007- Copyright (C) 2004, 2005, 2009, 2011 Free Software Foundation, Inc.
5008+ Copyright (C) 2004, 2005, 2009, 2011, 2012 Free Software Foundation, Inc.
5009
5010 This file is part of GCC.
5011
5012@@ -49,7 +49,7 @@
5013 else if (pc[1] == 0x201f015f) /* lda $0,NR_rt_sigreturn */
5014 {
5015 struct rt_sigframe {
5016- struct siginfo info;
5017+ siginfo_t info;
5018 struct ucontext uc;
5019 } *rt_ = context->cfa;
5020 sc = &rt_->uc.uc_mcontext;
5021Index: libgcc/config/ia64/unwind-ia64.c
5022===================================================================
5023--- libgcc/config/ia64/unwind-ia64.c (.../tags/gcc_4_7_0_release) (wersja 187293)
5024+++ libgcc/config/ia64/unwind-ia64.c (.../branches/gcc-4_7-branch) (wersja 187293)
5025@@ -2171,8 +2171,20 @@
5026 struct _Unwind_Context *target)
5027 {
5028 unsigned long ireg_buf[4], ireg_nat = 0, ireg_pr = 0;
5029+ unsigned long saved_lc;
5030 long i;
5031
5032+ /* ??? LC is a fixed register so the call to __builtin_unwind_init in
5033+ uw_init_context doesn't cause it to be saved. In case it isn't in
5034+ the user frames either, we need to manually do so here, lest it be
5035+ clobbered by the loop just below. */
5036+ if (target->lc_loc == NULL)
5037+ {
5038+ register unsigned long lc asm ("ar.lc");
5039+ saved_lc = lc;
5040+ target->lc_loc = &saved_lc;
5041+ }
5042+
5043 /* Copy integer register data from the target context to a
5044 temporary buffer. Do this so that we can frob AR.UNAT
5045 to get the NaT bits for these registers set properly. */
5046Index: libgcc/config/ia64/linux-unwind.h
5047===================================================================
5048--- libgcc/config/ia64/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187293)
5049+++ libgcc/config/ia64/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187293)
5050@@ -1,5 +1,5 @@
5051 /* DWARF2 EH unwinding support for IA64 Linux.
5052- Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
5053+ Copyright (C) 2004, 2005, 2009, 2012 Free Software Foundation, Inc.
5054
5055 This file is part of GCC.
5056
5057@@ -47,7 +47,7 @@
5058 struct sigframe {
5059 char scratch[16];
5060 unsigned long sig_number;
5061- struct siginfo *info;
5062+ siginfo_t *info;
5063 struct sigcontext *sc;
5064 } *frame_ = (struct sigframe *)context->psp;
5065 struct sigcontext *sc = frame_->sc;
5066@@ -137,7 +137,7 @@
5067 struct sigframe {
5068 char scratch[16];
5069 unsigned long sig_number;
5070- struct siginfo *info;
5071+ siginfo_t *info;
5072 struct sigcontext *sc;
5073 } *frame = (struct sigframe *)context->psp;
5074 struct sigcontext *sc = frame->sc;
5075Index: libgcc/config/i386/linux-unwind.h
5076===================================================================
5077--- libgcc/config/i386/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187293)
5078+++ libgcc/config/i386/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187293)
5079@@ -1,5 +1,5 @@
5080 /* DWARF2 EH unwinding support for AMD x86-64 and x86.
5081- Copyright (C) 2004, 2005, 2006, 2009, 2010, 2011
5082+ Copyright (C) 2004, 2005, 2006, 2009, 2010, 2011, 2012
5083 Free Software Foundation, Inc.
5084
5085 This file is part of GCC.
5086@@ -48,7 +48,7 @@
5087 #ifdef __LP64__
5088 #define RT_SIGRETURN_SYSCALL 0x050f0000000fc0c7ULL
5089 #else
5090-#define RT_SIGRETURN_SYSCALL 0x050f40002006c0c7ULL
5091+#define RT_SIGRETURN_SYSCALL 0x050f40000201c0c7ULL
5092 #endif
5093 if (*(unsigned char *)(pc+0) == 0x48
5094 && *(unsigned long long *)(pc+1) == RT_SIGRETURN_SYSCALL)
5095@@ -139,9 +139,9 @@
5096 {
5097 struct rt_sigframe {
5098 int sig;
5099- struct siginfo *pinfo;
5100+ siginfo_t *pinfo;
5101 void *puc;
5102- struct siginfo info;
5103+ siginfo_t info;
5104 struct ucontext uc;
5105 } *rt_ = context->cfa;
5106 /* The void * cast is necessary to avoid an aliasing warning.
5107Index: libgcc/config/rs6000/t-freebsd64
5108===================================================================
5109--- libgcc/config/rs6000/t-freebsd64 (.../tags/gcc_4_7_0_release) (wersja 0)
5110+++ libgcc/config/rs6000/t-freebsd64 (.../branches/gcc-4_7-branch) (wersja 187293)
5111@@ -0,0 +1,5 @@
5112+HOST_LIBGCC2_CFLAGS += -mno-minimal-toc
5113+SHLIB_MAPFILES = libgcc-std.ver
5114+
5115+softfp_wrap_start := '\#ifndef __powerpc64__'
5116+softfp_wrap_end := '\#endif'
5117Index: libgcc/config/rs6000/freebsd-unwind.h
5118===================================================================
5119--- libgcc/config/rs6000/freebsd-unwind.h (.../tags/gcc_4_7_0_release) (wersja 0)
5120+++ libgcc/config/rs6000/freebsd-unwind.h (.../branches/gcc-4_7-branch) (wersja 187293)
5121@@ -0,0 +1,69 @@
5122+/* DWARF2 EH unwinding support for PowerPC64 FreeBSD.
5123+ Copyright (C) 2012 Free Software Foundation, Inc.
5124+
5125+ This file is part of GCC.
5126+
5127+ GCC is free software; you can redistribute it and/or modify it
5128+ under the terms of the GNU General Public License as published
5129+ by the Free Software Foundation; either version 3, or (at your
5130+ option) any later version.
5131+
5132+ GCC is distributed in the hope that it will be useful, but WITHOUT
5133+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
5134+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
5135+ License for more details.
5136+
5137+ Under Section 7 of GPL version 3, you are granted additional
5138+ permissions described in the GCC Runtime Library Exception, version
5139+ 3.1, as published by the Free Software Foundation.
5140+
5141+ You should have received a copy of the GNU General Public License and
5142+ a copy of the GCC Runtime Library Exception along with this program;
5143+ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
5144+ <http://www.gnu.org/licenses/>. */
5145+
5146+#define R_LR 65
5147+
5148+#define MD_FROB_UPDATE_CONTEXT frob_update_context
5149+
5150+static void
5151+frob_update_context (struct _Unwind_Context *context,
5152+ _Unwind_FrameState *fs ATTRIBUTE_UNUSED)
5153+{
5154+ const unsigned int *pc = (const unsigned int *) context->ra;
5155+
5156+#ifdef __powerpc64__
5157+ if (fs->regs.reg[2].how == REG_UNSAVED)
5158+ {
5159+ /* If the current unwind info (FS) does not contain explicit info
5160+ saving R2, then we have to do a minor amount of code reading to
5161+ figure out if it was saved. The big problem here is that the
5162+ code that does the save/restore is generated by the linker, so
5163+ we have no good way to determine at compile time what to do. */
5164+ if (pc[0] == 0xF8410028
5165+ || ((pc[0] & 0xFFFF0000) == 0x3D820000
5166+ && pc[1] == 0xF8410028))
5167+ {
5168+ /* We are in a plt call stub or r2 adjusting long branch stub,
5169+ before r2 has been saved. Keep REG_UNSAVED. */
5170+ }
5171+ else
5172+ {
5173+ unsigned int *insn
5174+ = (unsigned int *) _Unwind_GetGR (context, R_LR);
5175+ if (insn && *insn == 0xE8410028)
5176+ _Unwind_SetGRPtr (context, 2, context->cfa + 40);
5177+ else if (pc[0] == 0x4E800421
5178+ && pc[1] == 0xE8410028)
5179+ {
5180+ /* We are at the bctrl instruction in a call via function
5181+ pointer. gcc always emits the load of the new R2 just
5182+ before the bctrl so this is the first and only place
5183+ we need to use the stored R2. */
5184+ _Unwind_Word sp = _Unwind_GetGR (context, 1);
5185+ _Unwind_SetGRPtr (context, 2, (void *)(sp + 40));
5186+ }
5187+ }
5188+ }
5189+#endif
5190+}
5191Index: libgcc/config/sh/linux-unwind.h
5192===================================================================
5193--- libgcc/config/sh/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187293)
5194+++ libgcc/config/sh/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187293)
5195@@ -1,5 +1,6 @@
5196 /* DWARF2 EH unwinding support for SH Linux.
5197- Copyright (C) 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
5198+ Copyright (C) 2004, 2005, 2006, 2007, 2009, 2012 Free Software Foundation,
5199+ Inc.
5200
5201 This file is part of GCC.
5202
5203@@ -80,9 +81,9 @@
5204 && (*(unsigned long *) (pc+11) == 0x6ff0fff0))
5205 {
5206 struct rt_sigframe {
5207- struct siginfo *pinfo;
5208+ siginfo_t *pinfo;
5209 void *puc;
5210- struct siginfo info;
5211+ siginfo_t info;
5212 struct ucontext uc;
5213 } *rt_ = context->cfa;
5214 /* The void * cast is necessary to avoid an aliasing warning.
5215@@ -179,7 +180,7 @@
5216 && (*(unsigned short *) (pc+14) == 0x00ad))))
5217 {
5218 struct rt_sigframe {
5219- struct siginfo info;
5220+ siginfo_t info;
5221 struct ucontext uc;
5222 } *rt_ = context->cfa;
5223 /* The void * cast is necessary to avoid an aliasing warning.
5224Index: libgcc/config/tilepro/atomic.h
5225===================================================================
5226--- libgcc/config/tilepro/atomic.h (.../tags/gcc_4_7_0_release) (wersja 187293)
5227+++ libgcc/config/tilepro/atomic.h (.../branches/gcc-4_7-branch) (wersja 187293)
5228@@ -104,8 +104,8 @@
5229
5230 /* 32-bit integer compare-and-exchange. */
5231 static __inline __attribute__ ((always_inline))
5232- int atomic_val_compare_and_exchange_4 (volatile int *mem,
5233- int oldval, int newval)
5234+ int arch_atomic_val_compare_and_exchange_4 (volatile int *mem,
5235+ int oldval, int newval)
5236 {
5237 #ifdef __tilegx__
5238 __insn_mtspr (SPR_CMPEXCH_VALUE, oldval);
5239@@ -123,9 +123,9 @@
5240
5241 /* 64-bit integer compare-and-exchange. */
5242 static __inline __attribute__ ((always_inline))
5243- int64_t atomic_val_compare_and_exchange_8 (volatile int64_t * mem,
5244- int64_t oldval,
5245- int64_t newval)
5246+ int64_t arch_atomic_val_compare_and_exchange_8 (volatile int64_t * mem,
5247+ int64_t oldval,
5248+ int64_t newval)
5249 {
5250 #ifdef __tilegx__
5251 __insn_mtspr (SPR_CMPEXCH_VALUE, oldval);
5252@@ -146,41 +146,41 @@
5253
5254 /* This non-existent symbol is called for sizes other than "4" and "8",
5255 indicating a bug in the caller. */
5256-extern int __atomic_error_bad_argument_size (void)
5257+extern int __arch_atomic_error_bad_argument_size (void)
5258 __attribute__ ((warning ("sizeof atomic argument not 4 or 8")));
5259
5260
5261-#define atomic_val_compare_and_exchange(mem, o, n) \
5262+#define arch_atomic_val_compare_and_exchange(mem, o, n) \
5263 ({ \
5264 (__typeof(*(mem)))(__typeof(*(mem)-*(mem))) \
5265 ((sizeof(*(mem)) == 8) ? \
5266- atomic_val_compare_and_exchange_8( \
5267+ arch_atomic_val_compare_and_exchange_8( \
5268 (volatile int64_t*)(mem), (__typeof((o)-(o)))(o), \
5269 (__typeof((n)-(n)))(n)) : \
5270 (sizeof(*(mem)) == 4) ? \
5271- atomic_val_compare_and_exchange_4( \
5272+ arch_atomic_val_compare_and_exchange_4( \
5273 (volatile int*)(mem), (__typeof((o)-(o)))(o), \
5274 (__typeof((n)-(n)))(n)) : \
5275- __atomic_error_bad_argument_size()); \
5276+ __arch_atomic_error_bad_argument_size()); \
5277 })
5278
5279-#define atomic_bool_compare_and_exchange(mem, o, n) \
5280+#define arch_atomic_bool_compare_and_exchange(mem, o, n) \
5281 ({ \
5282 __typeof(o) __o = (o); \
5283 __builtin_expect( \
5284- __o == atomic_val_compare_and_exchange((mem), __o, (n)), 1); \
5285+ __o == arch_atomic_val_compare_and_exchange((mem), __o, (n)), 1); \
5286 })
5287
5288
5289 /* Loop with compare_and_exchange until we guess the correct value.
5290 Normally "expr" will be an expression using __old and __value. */
5291-#define __atomic_update_cmpxchg(mem, value, expr) \
5292+#define __arch_atomic_update_cmpxchg(mem, value, expr) \
5293 ({ \
5294 __typeof(value) __value = (value); \
5295 __typeof(*(mem)) *__mem = (mem), __old = *__mem, __guess; \
5296 do { \
5297 __guess = __old; \
5298- __old = atomic_val_compare_and_exchange(__mem, __old, (expr)); \
5299+ __old = arch_atomic_val_compare_and_exchange(__mem, __old, (expr)); \
5300 } while (__builtin_expect(__old != __guess, 0)); \
5301 __old; \
5302 })
5303@@ -189,14 +189,14 @@
5304
5305 /* Generic atomic op with 8- or 4-byte variant.
5306 The _mask, _addend, and _expr arguments are ignored on tilegx. */
5307-#define __atomic_update(mem, value, op, _mask, _addend, _expr) \
5308+#define __arch_atomic_update(mem, value, op, _mask, _addend, _expr) \
5309 ({ \
5310 ((__typeof(*(mem))) \
5311 ((sizeof(*(mem)) == 8) ? (__typeof(*(mem)-*(mem)))__insn_##op( \
5312 (void *)(mem), (int64_t)(__typeof((value)-(value)))(value)) : \
5313 (sizeof(*(mem)) == 4) ? (int)__insn_##op##4( \
5314 (void *)(mem), (int32_t)(__typeof((value)-(value)))(value)) : \
5315- __atomic_error_bad_argument_size())); \
5316+ __arch_atomic_error_bad_argument_size())); \
5317 })
5318
5319 #else
5320@@ -211,7 +211,7 @@
5321 Only 32-bit support is provided. */
5322 static __inline __attribute__ ((always_inline))
5323 int
5324- __atomic_update_4 (volatile int *mem, int mask, int addend)
5325+ __arch_atomic_update_4 (volatile int *mem, int mask, int addend)
5326 {
5327 int result;
5328 __asm__ __volatile__ ("swint1":"=R00" (result),
5329@@ -224,48 +224,55 @@
5330
5331 /* Generic atomic op with 8- or 4-byte variant.
5332 The _op argument is ignored on tilepro. */
5333-#define __atomic_update(mem, value, _op, mask, addend, expr) \
5334+#define __arch_atomic_update(mem, value, _op, mask, addend, expr) \
5335 ({ \
5336 (__typeof(*(mem)))(__typeof(*(mem)-*(mem))) \
5337 ((sizeof(*(mem)) == 8) ? \
5338- __atomic_update_cmpxchg((mem), (value), (expr)) : \
5339+ __arch_atomic_update_cmpxchg((mem), (value), (expr)) : \
5340 (sizeof(*(mem)) == 4) ? \
5341- __atomic_update_4((volatile int*)(mem), (__typeof((mask)-(mask)))(mask), \
5342- (__typeof((addend)-(addend)))(addend)) : \
5343- __atomic_error_bad_argument_size()); \
5344+ __arch_atomic_update_4((volatile int*)(mem), \
5345+ (__typeof((mask)-(mask)))(mask), \
5346+ (__typeof((addend)-(addend)))(addend)) : \
5347+ __arch_atomic_error_bad_argument_size()); \
5348 })
5349
5350 #endif /* __tilegx__ */
5351
5352
5353-#define atomic_exchange(mem, newvalue) \
5354- __atomic_update(mem, newvalue, exch, 0, newvalue, __value)
5355+#define arch_atomic_exchange(mem, newvalue) \
5356+ __arch_atomic_update(mem, newvalue, exch, 0, newvalue, __value)
5357
5358-#define atomic_add(mem, value) \
5359- __atomic_update(mem, value, fetchadd, -1, value, __old + __value)
5360+#define arch_atomic_add(mem, value) \
5361+ __arch_atomic_update(mem, value, fetchadd, -1, value, __old + __value)
5362
5363-#define atomic_sub(mem, value) atomic_add((mem), -(value))
5364+#define arch_atomic_sub(mem, value) arch_atomic_add((mem), -(value))
5365
5366-#define atomic_increment(mem) atomic_add((mem), 1)
5367+#define arch_atomic_increment(mem) arch_atomic_add((mem), 1)
5368
5369-#define atomic_decrement(mem) atomic_add((mem), -1)
5370+#define arch_atomic_decrement(mem) arch_atomic_add((mem), -1)
5371
5372-#define atomic_and(mem, mask) \
5373- __atomic_update(mem, mask, fetchand, mask, 0, __old & __value)
5374+#define arch_atomic_and(mem, mask) \
5375+ __arch_atomic_update(mem, mask, fetchand, mask, 0, __old & __value)
5376
5377-#define atomic_or(mem, mask) \
5378- __atomic_update(mem, mask, fetchor, ~mask, mask, __old | __value)
5379+#define arch_atomic_or(mem, mask) \
5380+ __arch_atomic_update(mem, mask, fetchor, ~mask, mask, __old | __value)
5381
5382-#define atomic_bit_set(mem, bit) \
5383+#define arch_atomic_xor(mem, mask) \
5384+ __arch_atomic_update_cmpxchg(mem, mask, __old ^ __value)
5385+
5386+#define arch_atomic_nand(mem, mask) \
5387+ __arch_atomic_update_cmpxchg(mem, mask, ~(__old & __value))
5388+
5389+#define arch_atomic_bit_set(mem, bit) \
5390 ({ \
5391 __typeof(*(mem)) __mask = (__typeof(*(mem)))1 << (bit); \
5392- __mask & atomic_or((mem), __mask); \
5393+ __mask & arch_atomic_or((mem), __mask); \
5394 })
5395
5396-#define atomic_bit_clear(mem, bit) \
5397+#define arch_atomic_bit_clear(mem, bit) \
5398 ({ \
5399 __typeof(*(mem)) __mask = (__typeof(*(mem)))1 << (bit); \
5400- __mask & atomic_and((mem), ~__mask); \
5401+ __mask & arch_atomic_and((mem), ~__mask); \
5402 })
5403
5404 #ifdef __tilegx__
5405@@ -275,9 +282,9 @@
5406 This accessor is provided for compatibility with TILEPro, which
5407 required an explicit atomic operation for stores that needed
5408 to be atomic with respect to other atomic methods in this header. */
5409-#define atomic_write(mem, value) ((void) (*(mem) = (value)))
5410+#define arch_atomic_write(mem, value) ((void) (*(mem) = (value)))
5411 #else
5412-#define atomic_write(mem, value) \
5413+#define arch_atomic_write(mem, value) \
5414 do { \
5415 __typeof(mem) __aw_mem = (mem); \
5416 __typeof(value) __aw_val = (value); \
5417@@ -285,26 +292,26 @@
5418 __aw_intval = (__typeof((value) - (value)))__aw_val; \
5419 switch (sizeof(*__aw_mem)) { \
5420 case 8: \
5421- __atomic_update_cmpxchg(__aw_mem, __aw_val, __value); \
5422+ __arch_atomic_update_cmpxchg(__aw_mem, __aw_val, __value); \
5423 break; \
5424 case 4: \
5425- __atomic_update_4((int *)__aw_mem, 0, __aw_intval); \
5426+ __arch_atomic_update_4((int *)__aw_mem, 0, __aw_intval); \
5427 break; \
5428 case 2: \
5429 __aw_off = 8 * ((long)__aw_mem & 0x2); \
5430 __aw_mask = 0xffffU << __aw_off; \
5431 __aw_mem32 = (unsigned int *)((long)__aw_mem & ~0x2); \
5432 __aw_val32 = (__aw_intval << __aw_off) & __aw_mask; \
5433- __atomic_update_cmpxchg(__aw_mem32, __aw_val32, \
5434- (__old & ~__aw_mask) | __value); \
5435+ __arch_atomic_update_cmpxchg(__aw_mem32, __aw_val32, \
5436+ (__old & ~__aw_mask) | __value); \
5437 break; \
5438 case 1: \
5439 __aw_off = 8 * ((long)__aw_mem & 0x3); \
5440 __aw_mask = 0xffU << __aw_off; \
5441 __aw_mem32 = (unsigned int *)((long)__aw_mem & ~0x3); \
5442 __aw_val32 = (__aw_intval << __aw_off) & __aw_mask; \
5443- __atomic_update_cmpxchg(__aw_mem32, __aw_val32, \
5444- (__old & ~__aw_mask) | __value); \
5445+ __arch_atomic_update_cmpxchg(__aw_mem32, __aw_val32, \
5446+ (__old & ~__aw_mask) | __value); \
5447 break; \
5448 } \
5449 } while (0)
5450@@ -315,15 +322,15 @@
5451 This macro prevents loads or stores from being moved by the compiler
5452 across the macro. Any loaded value that was loaded before this
5453 macro must then be reloaded by the compiler. */
5454-#define atomic_compiler_barrier() __asm__ __volatile__("" ::: "memory")
5455+#define arch_atomic_compiler_barrier() __asm__ __volatile__("" ::: "memory")
5456
5457 /* Full memory barrier.
5458
5459- This macro has the semantics of atomic_compiler_barrer(), but also
5460+ This macro has the semantics of arch_atomic_compiler_barrer(), but also
5461 ensures that previous stores are visible to other cores, and that
5462 all previous loaded values have been placed into their target
5463 register on this core. */
5464-#define atomic_full_barrier() __insn_mf()
5465+#define arch_atomic_full_barrier() __insn_mf()
5466
5467 /* Read memory barrier.
5468
5469@@ -335,9 +342,9 @@
5470 On current TILE chips a read barrier is implemented as a full barrier,
5471 but this may not be true in later versions of the architecture.
5472
5473- See also atomic_acquire_barrier() for the appropriate idiom to use
5474+ See also arch_atomic_acquire_barrier() for the appropriate idiom to use
5475 to ensure no reads are lifted above an atomic lock instruction. */
5476-#define atomic_read_barrier() atomic_full_barrier()
5477+#define arch_atomic_read_barrier() arch_atomic_full_barrier()
5478
5479 /* Write memory barrier.
5480
5481@@ -349,9 +356,9 @@
5482 On current TILE chips a write barrier is implemented as a full barrier,
5483 but this may not be true in later versions of the architecture.
5484
5485- See also atomic_release_barrier() for the appropriate idiom to use
5486+ See also arch_atomic_release_barrier() for the appropriate idiom to use
5487 to ensure all writes are complete prior to an atomic unlock instruction. */
5488-#define atomic_write_barrier() atomic_full_barrier()
5489+#define arch_atomic_write_barrier() arch_atomic_full_barrier()
5490
5491 /* Lock acquisition barrier.
5492
5493@@ -367,10 +374,10 @@
5494 This should be done after the atomic operation that actually
5495 acquires the lock, and in conjunction with a "control dependency"
5496 that checks the atomic operation result to see if the lock was
5497- in fact acquired. See the atomic_read_barrier() macro
5498+ in fact acquired. See the arch_atomic_read_barrier() macro
5499 for a heavier-weight barrier to use in certain unusual constructs,
5500- or atomic_acquire_barrier_value() if no control dependency exists. */
5501-#define atomic_acquire_barrier() atomic_compiler_barrier()
5502+ or arch_atomic_acquire_barrier_value() if no control dependency exists. */
5503+#define arch_atomic_acquire_barrier() arch_atomic_compiler_barrier()
5504
5505 /* Lock release barrier.
5506
5507@@ -383,7 +390,7 @@
5508 for locking, that is, when leaving a critical section. This should
5509 be done before the operation (such as a store of zero) that
5510 actually releases the lock. */
5511-#define atomic_release_barrier() atomic_write_barrier()
5512+#define arch_atomic_release_barrier() arch_atomic_write_barrier()
5513
5514 /* Barrier until the read of a particular value is complete.
5515
5516@@ -400,7 +407,7 @@
5517 atomic instruction, even if the value itself is not checked. This
5518 guarantees that if the atomic instruction succeeded in taking the lock,
5519 the lock was held before any reads in the critical section issued. */
5520-#define atomic_acquire_barrier_value(val) \
5521+#define arch_atomic_acquire_barrier_value(val) \
5522 __asm__ __volatile__("move %0, %0" :: "r"(val))
5523
5524 /* Access the given variable in memory exactly once.
5525@@ -421,8 +428,9 @@
5526
5527 Note that multiple uses of this macro are guaranteed to be ordered,
5528 i.e. the compiler will not reorder stores or loads that are wrapped
5529- in atomic_access_once(). */
5530-#define atomic_access_once(x) (*(volatile __typeof(x) *)&(x))
5531+ in arch_atomic_access_once(). */
5532+#define arch_atomic_access_once(x) (*(volatile __typeof(x) *)&(x))
5533
5534
5535+
5536 #endif /* !_ATOMIC_H_ */
5537Index: libgcc/config/tilepro/linux-unwind.h
5538===================================================================
5539--- libgcc/config/tilepro/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187293)
5540+++ libgcc/config/tilepro/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187293)
5541@@ -61,7 +61,7 @@
5542
5543 struct rt_sigframe {
5544 unsigned char save_area[C_ABI_SAVE_AREA_SIZE];
5545- struct siginfo info;
5546+ siginfo_t info;
5547 struct ucontext uc;
5548 } *rt_;
5549
5550Index: libgcc/config/tilepro/atomic.c
5551===================================================================
5552--- libgcc/config/tilepro/atomic.c (.../tags/gcc_4_7_0_release) (wersja 187293)
5553+++ libgcc/config/tilepro/atomic.c (.../branches/gcc-4_7-branch) (wersja 187293)
5554@@ -63,18 +63,12 @@
5555
5556 #define __unused __attribute__((unused))
5557
5558-/* Provide additional methods not implemented by atomic.h. */
5559-#define atomic_xor(mem, mask) \
5560- __atomic_update_cmpxchg(mem, mask, __old ^ __value)
5561-#define atomic_nand(mem, mask) \
5562- __atomic_update_cmpxchg(mem, mask, ~(__old & __value))
5563-
5564 #define __atomic_fetch_and_do(type, size, opname) \
5565 type \
5566 __atomic_fetch_##opname##_##size(type* p, type i, int model) \
5567 { \
5568 pre_atomic_barrier(model); \
5569- type rv = atomic_##opname(p, i); \
5570+ type rv = arch_atomic_##opname(p, i); \
5571 post_atomic_barrier(model); \
5572 return rv; \
5573 }
5574@@ -96,7 +90,7 @@
5575 __atomic_##opname##_fetch_##size(type* p, type i, int model) \
5576 { \
5577 pre_atomic_barrier(model); \
5578- type rv = atomic_##opname(p, i) op i; \
5579+ type rv = arch_atomic_##opname(p, i) op i; \
5580 post_atomic_barrier(model); \
5581 return rv; \
5582 }
5583@@ -120,7 +114,7 @@
5584 { \
5585 type oldval = *oldvalp; \
5586 pre_atomic_barrier(models); \
5587- type retval = atomic_val_compare_and_exchange(ptr, oldval, newval); \
5588+ type retval = arch_atomic_val_compare_and_exchange(ptr, oldval, newval); \
5589 post_atomic_barrier(models); \
5590 bool success = (retval == oldval); \
5591 *oldvalp = retval; \
5592@@ -131,7 +125,7 @@
5593 __atomic_exchange_##size(volatile type* ptr, type val, int model) \
5594 { \
5595 pre_atomic_barrier(model); \
5596- type retval = atomic_exchange(ptr, val); \
5597+ type retval = arch_atomic_exchange(ptr, val); \
5598 post_atomic_barrier(model); \
5599 return retval; \
5600 }
5601@@ -159,7 +153,7 @@
5602 type oldval = (oldword >> shift) & valmask; \
5603 if (__builtin_expect((oldval == *guess), 1)) { \
5604 unsigned int word = (oldword & bgmask) | ((val & valmask) << shift); \
5605- oldword = atomic_val_compare_and_exchange(p, oldword, word); \
5606+ oldword = arch_atomic_val_compare_and_exchange(p, oldword, word); \
5607 oldval = (oldword >> shift) & valmask; \
5608 } \
5609 post_atomic_barrier(models); \
5610@@ -187,7 +181,7 @@
5611 oldval = (oldword >> shift) & valmask; \
5612 val = expr; \
5613 unsigned int word = (oldword & bgmask) | ((val & valmask) << shift); \
5614- xword = atomic_val_compare_and_exchange(p, oldword, word); \
5615+ xword = arch_atomic_val_compare_and_exchange(p, oldword, word); \
5616 } while (__builtin_expect(xword != oldword, 0)); \
5617 bottom \
5618 }
5619Index: libgcc/config/avr/lib1funcs.S
5620===================================================================
5621--- libgcc/config/avr/lib1funcs.S (.../tags/gcc_4_7_0_release) (wersja 187293)
5622+++ libgcc/config/avr/lib1funcs.S (.../branches/gcc-4_7-branch) (wersja 187293)
5623@@ -25,7 +25,9 @@
5624 #define __zero_reg__ r1
5625 #define __tmp_reg__ r0
5626 #define __SREG__ 0x3f
5627+#if defined (__AVR_HAVE_SPH__)
5628 #define __SP_H__ 0x3e
5629+#endif
5630 #define __SP_L__ 0x3d
5631 #define __RAMPZ__ 0x3B
5632 #define __EIND__ 0x3C
5633@@ -1258,7 +1260,7 @@
5634
5635 #if defined (__AVR_HAVE_JMP_CALL__)
5636 # define SPEED_DIV 8
5637-#elif defined (__AVR_HAVE_MOVW__) && !defined (__AVR_HAVE_8BIT_SP__)
5638+#elif defined (__AVR_HAVE_MOVW__) && defined (__AVR_HAVE_SPH__)
5639 # define SPEED_DIV 16
5640 #else
5641 # define SPEED_DIV 0
5642@@ -1540,10 +1542,10 @@
5643
5644 4: ;; Epilogue: Restore the Z = 12 Registers and return
5645 in r28, __SP_L__
5646-#if defined (__AVR_HAVE_8BIT_SP__)
5647+#if defined (__AVR_HAVE_SPH__)
5648+ in r29, __SP_H__
5649+#else
5650 clr r29
5651-#else
5652- in r29, __SP_H__
5653 #endif /* #SP = 8/16 */
5654 ldi r30, 12
5655 XJMP __epilogue_restores__ + ((18 - 12) * 2)
5656@@ -1691,7 +1693,7 @@
5657 push r17
5658 push r28
5659 push r29
5660-#if defined (__AVR_HAVE_8BIT_SP__)
5661+#if !defined (__AVR_HAVE_SPH__)
5662 in r28,__SP_L__
5663 sub r28,r26
5664 out __SP_L__,r28
5665@@ -1747,7 +1749,7 @@
5666 ldd r16,Y+4
5667 ldd r17,Y+3
5668 ldd r26,Y+2
5669-#if defined (__AVR_HAVE_8BIT_SP__)
5670+#if !defined (__AVR_HAVE_SPH__)
5671 ldd r29,Y+1
5672 add r28,r30
5673 out __SP_L__,r28
5674@@ -1893,6 +1895,10 @@
5675 cpc r27, r17
5676 brne .L__do_copy_data_loop
5677 #endif /* !defined(__AVR_HAVE_ELPMX__) && !defined(__AVR_HAVE_ELPM__) */
5678+#if defined (__AVR_HAVE_ELPM__) && defined (__AVR_HAVE_RAMPD__)
5679+ ;; Reset RAMPZ to 0 so that EBI devices don't read garbage from RAM
5680+ out __RAMPZ__, __zero_reg__
5681+#endif /* ELPM && RAMPD */
5682 ENDF __do_copy_data
5683 #endif /* L_copy_data */
5684
5685@@ -1920,7 +1926,7 @@
5686 #ifdef L_ctors
5687 .section .init6,"ax",@progbits
5688 DEFUN __do_global_ctors
5689-#if defined(__AVR_HAVE_RAMPZ__)
5690+#if defined(__AVR_HAVE_ELPM__)
5691 ldi r17, hi8(__ctors_start)
5692 ldi r28, lo8(__ctors_end)
5693 ldi r29, hi8(__ctors_end)
5694@@ -1953,14 +1959,14 @@
5695 cpi r28, lo8(__ctors_start)
5696 cpc r29, r17
5697 brne .L__do_global_ctors_loop
5698-#endif /* defined(__AVR_HAVE_RAMPZ__) */
5699+#endif /* defined(__AVR_HAVE_ELPM__) */
5700 ENDF __do_global_ctors
5701 #endif /* L_ctors */
5702
5703 #ifdef L_dtors
5704 .section .fini6,"ax",@progbits
5705 DEFUN __do_global_dtors
5706-#if defined(__AVR_HAVE_RAMPZ__)
5707+#if defined(__AVR_HAVE_ELPM__)
5708 ldi r17, hi8(__dtors_end)
5709 ldi r28, lo8(__dtors_start)
5710 ldi r29, hi8(__dtors_start)
5711@@ -1993,7 +1999,7 @@
5712 cpi r28, lo8(__dtors_end)
5713 cpc r29, r17
5714 brne .L__do_global_dtors_loop
5715-#endif /* defined(__AVR_HAVE_RAMPZ__) */
5716+#endif /* defined(__AVR_HAVE_ELPM__) */
5717 ENDF __do_global_dtors
5718 #endif /* L_dtors */
5719
5720@@ -2001,18 +2007,21 @@
5721
5722 #ifdef L_tablejump_elpm
5723 DEFUN __tablejump_elpm__
5724-#if defined (__AVR_HAVE_ELPM__)
5725-#if defined (__AVR_HAVE_LPMX__)
5726+#if defined (__AVR_HAVE_ELPMX__)
5727 elpm __tmp_reg__, Z+
5728 elpm r31, Z
5729 mov r30, __tmp_reg__
5730+#if defined (__AVR_HAVE_RAMPD__)
5731+ ;; Reset RAMPZ to 0 so that EBI devices don't read garbage from RAM
5732+ out __RAMPZ__, __zero_reg__
5733+#endif /* RAMPD */
5734 #if defined (__AVR_HAVE_EIJMP_EICALL__)
5735 eijmp
5736 #else
5737 ijmp
5738 #endif
5739
5740-#else
5741+#elif defined (__AVR_HAVE_ELPM__)
5742 elpm
5743 adiw r30, 1
5744 push r0
5745@@ -2024,7 +2033,6 @@
5746 #endif
5747 ret
5748 #endif
5749-#endif /* defined (__AVR_HAVE_ELPM__) */
5750 ENDF __tablejump_elpm__
5751 #endif /* defined (L_tablejump_elpm) */
5752
5753@@ -2114,11 +2122,18 @@
5754 adiw r30, 1
5755 .endif
5756 #endif
5757+#if defined (__AVR_HAVE_ELPM__) && defined (__AVR_HAVE_RAMPD__)
5758+.if \dest == D0+\n-1
5759+ ;; Reset RAMPZ to 0 so that EBI devices don't read garbage from RAM
5760+ out __RAMPZ__, __zero_reg__
5761+.endif
5762+#endif
5763 .endm ; .xload
5764
5765 #if defined (L_xload_1)
5766 DEFUN __xload_1
5767-#if defined (__AVR_HAVE_LPMX__) && !defined (__AVR_HAVE_RAMPZ__)
5768+#if defined (__AVR_HAVE_LPMX__) && !defined (__AVR_HAVE_ELPM__)
5769+ sbrc HHI8, 7
5770 ld D0, Z
5771 sbrs HHI8, 7
5772 lpm D0, Z
5773@@ -2126,14 +2141,14 @@
5774 #else
5775 sbrc HHI8, 7
5776 rjmp 1f
5777-#if defined (__AVR_HAVE_RAMPZ__)
5778+#if defined (__AVR_HAVE_ELPM__)
5779 out __RAMPZ__, HHI8
5780-#endif /* __AVR_HAVE_RAMPZ__ */
5781+#endif /* __AVR_HAVE_ELPM__ */
5782 .xload D0, 1
5783 ret
5784 1: ld D0, Z
5785 ret
5786-#endif /* LPMx && ! RAMPZ */
5787+#endif /* LPMx && ! ELPM */
5788 ENDF __xload_1
5789 #endif /* L_xload_1 */
5790
5791@@ -2141,9 +2156,9 @@
5792 DEFUN __xload_2
5793 sbrc HHI8, 7
5794 rjmp 1f
5795-#if defined (__AVR_HAVE_RAMPZ__)
5796+#if defined (__AVR_HAVE_ELPM__)
5797 out __RAMPZ__, HHI8
5798-#endif /* __AVR_HAVE_RAMPZ__ */
5799+#endif /* __AVR_HAVE_ELPM__ */
5800 .xload D0, 2
5801 .xload D1, 2
5802 ret
5803@@ -2157,9 +2172,9 @@
5804 DEFUN __xload_3
5805 sbrc HHI8, 7
5806 rjmp 1f
5807-#if defined (__AVR_HAVE_RAMPZ__)
5808+#if defined (__AVR_HAVE_ELPM__)
5809 out __RAMPZ__, HHI8
5810-#endif /* __AVR_HAVE_RAMPZ__ */
5811+#endif /* __AVR_HAVE_ELPM__ */
5812 .xload D0, 3
5813 .xload D1, 3
5814 .xload D2, 3
5815@@ -2175,9 +2190,9 @@
5816 DEFUN __xload_4
5817 sbrc HHI8, 7
5818 rjmp 1f
5819-#if defined (__AVR_HAVE_RAMPZ__)
5820+#if defined (__AVR_HAVE_ELPM__)
5821 out __RAMPZ__, HHI8
5822-#endif /* __AVR_HAVE_RAMPZ__ */
5823+#endif /* __AVR_HAVE_ELPM__ */
5824 .xload D0, 4
5825 .xload D1, 4
5826 .xload D2, 4
5827@@ -2219,7 +2234,7 @@
5828
5829 ;; Read from Flash
5830
5831-#if defined (__AVR_HAVE_RAMPZ__)
5832+#if defined (__AVR_HAVE_ELPM__)
5833 out __RAMPZ__, HHI8
5834 #endif
5835
5836@@ -2243,6 +2258,10 @@
5837 st X+, r0
5838 sbiw LOOP, 1
5839 brne 0b
5840+#if defined (__AVR_HAVE_ELPM__) && defined (__AVR_HAVE_RAMPD__)
5841+ ;; Reset RAMPZ to 0 so that EBI devices don't read garbage from RAM
5842+ out __RAMPZ__, __zero_reg__
5843+#endif /* ELPM && RAMPD */
5844 ret
5845
5846 ;; Read from RAM
5847@@ -2252,7 +2271,7 @@
5848 ;; and store that Byte to RAM Destination
5849 st X+, r0
5850 sbiw LOOP, 1
5851- brne 0b
5852+ brne 1b
5853 ret
5854 ENDF __movmemx_hi
5855
5856Index: libgcc/config/pa/linux-unwind.h
5857===================================================================
5858--- libgcc/config/pa/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187293)
5859+++ libgcc/config/pa/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187293)
5860@@ -1,5 +1,5 @@
5861 /* DWARF2 EH unwinding support for PA Linux.
5862- Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
5863+ Copyright (C) 2004, 2005, 2009, 2012 Free Software Foundation, Inc.
5864
5865 This file is part of GCC.
5866
5867@@ -63,7 +63,7 @@
5868 int i;
5869 struct sigcontext *sc;
5870 struct rt_sigframe {
5871- struct siginfo info;
5872+ siginfo_t info;
5873 struct ucontext uc;
5874 } *frame;
5875
5876Index: libgcc/config/xtensa/linux-unwind.h
5877===================================================================
5878--- libgcc/config/xtensa/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187293)
5879+++ libgcc/config/xtensa/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187293)
5880@@ -1,5 +1,5 @@
5881 /* DWARF2 EH unwinding support for Xtensa.
5882- Copyright (C) 2008, 2009 Free Software Foundation, Inc.
5883+ Copyright (C) 2008, 2009, 2012 Free Software Foundation, Inc.
5884
5885 This file is part of GCC.
5886
5887@@ -62,7 +62,7 @@
5888 struct sigcontext *sc;
5889
5890 struct rt_sigframe {
5891- struct siginfo info;
5892+ siginfo_t info;
5893 struct ucontext uc;
5894 } *rt_;
5895
5896Index: libgcc/config/mips/linux-unwind.h
5897===================================================================
5898--- libgcc/config/mips/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187293)
5899+++ libgcc/config/mips/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187293)
5900@@ -1,5 +1,6 @@
5901 /* DWARF2 EH unwinding support for MIPS Linux.
5902- Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
5903+ Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2012 Free Software
5904+ Foundation, Inc.
5905
5906 This file is part of GCC.
5907
5908@@ -75,7 +76,7 @@
5909 struct rt_sigframe {
5910 u_int32_t ass[4]; /* Argument save space for o32. */
5911 u_int32_t trampoline[2];
5912- struct siginfo info;
5913+ siginfo_t info;
5914 _sig_ucontext_t uc;
5915 } *rt_ = context->cfa;
5916 sc = &rt_->uc.uc_mcontext;
5917Index: libgcc/config/bfin/linux-unwind.h
5918===================================================================
5919--- libgcc/config/bfin/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187293)
5920+++ libgcc/config/bfin/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187293)
5921@@ -1,5 +1,5 @@
5922 /* DWARF2 EH unwinding support for Blackfin.
5923- Copyright (C) 2007, 2009 Free Software Foundation, Inc.
5924+ Copyright (C) 2007, 2009, 2012 Free Software Foundation, Inc.
5925
5926 This file is part of GCC.
5927
5928@@ -48,10 +48,10 @@
5929 {
5930 struct rt_sigframe {
5931 int sig;
5932- struct siginfo *pinfo;
5933+ siginfo_t *pinfo;
5934 void *puc;
5935 char retcode[8];
5936- struct siginfo info;
5937+ siginfo_t info;
5938 struct ucontext uc;
5939 } *rt_ = context->cfa;
5940
5941Index: gcc/tree-vrp.c
5942===================================================================
5943--- gcc/tree-vrp.c (.../tags/gcc_4_7_0_release) (wersja 187293)
5944+++ gcc/tree-vrp.c (.../branches/gcc-4_7-branch) (wersja 187293)
5945@@ -695,17 +695,22 @@
5946 /* If VAR is a default definition of a parameter, the variable can
5947 take any value in VAR's type. */
5948 sym = SSA_NAME_VAR (var);
5949- if (SSA_NAME_IS_DEFAULT_DEF (var)
5950- && TREE_CODE (sym) == PARM_DECL)
5951+ if (SSA_NAME_IS_DEFAULT_DEF (var))
5952 {
5953- /* Try to use the "nonnull" attribute to create ~[0, 0]
5954- anti-ranges for pointers. Note that this is only valid with
5955- default definitions of PARM_DECLs. */
5956- if (POINTER_TYPE_P (TREE_TYPE (sym))
5957- && nonnull_arg_p (sym))
5958+ if (TREE_CODE (sym) == PARM_DECL)
5959+ {
5960+ /* Try to use the "nonnull" attribute to create ~[0, 0]
5961+ anti-ranges for pointers. Note that this is only valid with
5962+ default definitions of PARM_DECLs. */
5963+ if (POINTER_TYPE_P (TREE_TYPE (sym))
5964+ && nonnull_arg_p (sym))
5965+ set_value_range_to_nonnull (vr, TREE_TYPE (sym));
5966+ else
5967+ set_value_range_to_varying (vr);
5968+ }
5969+ else if (TREE_CODE (sym) == RESULT_DECL
5970+ && DECL_BY_REFERENCE (sym))
5971 set_value_range_to_nonnull (vr, TREE_TYPE (sym));
5972- else
5973- set_value_range_to_varying (vr);
5974 }
5975
5976 return vr;
5977Index: gcc/doc/extend.texi
5978===================================================================
5979--- gcc/doc/extend.texi (.../tags/gcc_4_7_0_release) (wersja 187293)
5980+++ gcc/doc/extend.texi (.../branches/gcc-4_7-branch) (wersja 187293)
5981@@ -1311,18 +1311,18 @@
5982 #ifdef __FLASH
5983 const __flash int var = 1;
5984
5985-int read_i (void)
5986+int read_var (void)
5987 @{
5988- return i;
5989+ return var;
5990 @}
5991 #else
5992-#include <avr/pgmspace.h> /* From avr-libc */
5993+#include <avr/pgmspace.h> /* From AVR-LibC */
5994
5995 const int var PROGMEM = 1;
5996
5997-int read_i (void)
5998+int read_var (void)
5999 @{
6000- return (int) pgm_read_word (&i);
6001+ return (int) pgm_read_word (&var);
6002 @}
6003 #endif /* __FLASH */
6004 @end example
6005@@ -1332,7 +1332,8 @@
6006 accesses to these data will read from generic address space, i.e.@:
6007 from RAM,
6008 so that you need special accessors like @code{pgm_read_byte}
6009-from @w{@uref{http://nongnu.org/avr-libc/user-manual,avr-libc}}.
6010+from @w{@uref{http://nongnu.org/avr-libc/user-manual,AVR-LibC}}
6011+together with attribute @code{progmem}.
6012
6013 @b{Limitations and caveats}
6014
6015@@ -1345,7 +1346,7 @@
6016 @code{__memx}.
6017
6018 @item
6019-If you use one if the @code{__flash@var{N}} address spaces
6020+If you use one of the @code{__flash@var{N}} address spaces
6021 you will have to arrange your linker skript to locate the
6022 @code{.progmem@var{N}.data} sections according to your needs.
6023
6024@@ -4782,7 +4783,7 @@
6025 In order to read data located with the @code{progmem} attribute
6026 (inline) assembler must be used.
6027 @example
6028-/* Use custom macros from @w{@uref{http://nongnu.org/avr-libc/user-manual,avr-libc}} */
6029+/* Use custom macros from @w{@uref{http://nongnu.org/avr-libc/user-manual,AVR-LibC}} */
6030 #include <avr/pgmspace.h>
6031
6032 /* Locate var in flash memory */
6033Index: gcc/doc/invoke.texi
6034===================================================================
6035--- gcc/doc/invoke.texi (.../tags/gcc_4_7_0_release) (wersja 187293)
6036+++ gcc/doc/invoke.texi (.../branches/gcc-4_7-branch) (wersja 187293)
6037@@ -11085,8 +11085,7 @@
6038
6039 @item -mtiny-stack
6040 @opindex mtiny-stack
6041-Only use the lower 8@tie{}bits of the stack pointer and assume that the high
6042-byte of SP is always zero.
6043+Only change the lower 8@tie{}bits of the stack pointer.
6044 @end table
6045
6046 @subsubsection @code{EIND} and Devices with more than 128 Ki Bytes of Flash
6047Index: gcc/doc/install.texi
6048===================================================================
6049--- gcc/doc/install.texi (.../tags/gcc_4_7_0_release) (wersja 187293)
6050+++ gcc/doc/install.texi (.../branches/gcc-4_7-branch) (wersja 187293)
6051@@ -1238,7 +1238,7 @@
6052
6053 @item --with-llsc
6054 On MIPS targets, make @option{-mllsc} the default when no
6055-@option{-mno-lsc} option is passed. This is the default for
6056+@option{-mno-llsc} option is passed. This is the default for
6057 Linux-based targets, as the kernel will emulate them if the ISA does
6058 not provide them.
6059
6060Index: gcc/godump.c
6061===================================================================
6062--- gcc/godump.c (.../tags/gcc_4_7_0_release) (wersja 187293)
6063+++ gcc/godump.c (.../branches/gcc-4_7-branch) (wersja 187293)
6064@@ -1024,12 +1024,25 @@
6065 fprintf (go_dump_file, "type _%s ",
6066 IDENTIFIER_POINTER (DECL_NAME (decl)));
6067 go_output_type (container);
6068+
6069+ if (RECORD_OR_UNION_TYPE_P (TREE_TYPE (decl)))
6070+ {
6071+ HOST_WIDE_INT size = int_size_in_bytes (TREE_TYPE (decl));
6072+
6073+ if (size > 0)
6074+ fprintf (go_dump_file,
6075+ "\nconst _sizeof_%s = " HOST_WIDE_INT_PRINT_DEC,
6076+ IDENTIFIER_POINTER (DECL_NAME (decl)),
6077+ size);
6078+ }
6079+
6080 pointer_set_insert (container->decls_seen, decl);
6081 }
6082 else if (RECORD_OR_UNION_TYPE_P (TREE_TYPE (decl)))
6083 {
6084 void **slot;
6085 const char *type;
6086+ HOST_WIDE_INT size;
6087
6088 type = IDENTIFIER_POINTER (TYPE_NAME (TREE_TYPE ((decl))));
6089 /* If type defined already, skip. */
6090@@ -1047,6 +1060,13 @@
6091 fprintf (go_dump_file, "type _%s ",
6092 IDENTIFIER_POINTER (TYPE_NAME (TREE_TYPE (decl))));
6093 go_output_type (container);
6094+
6095+ size = int_size_in_bytes (TREE_TYPE (decl));
6096+ if (size > 0)
6097+ fprintf (go_dump_file,
6098+ "\nconst _sizeof_%s = " HOST_WIDE_INT_PRINT_DEC,
6099+ IDENTIFIER_POINTER (TYPE_NAME (TREE_TYPE (decl))),
6100+ size);
6101 }
6102 else
6103 return;
6104Index: gcc/lto-symtab.c
6105===================================================================
6106--- gcc/lto-symtab.c (.../tags/gcc_4_7_0_release) (wersja 187293)
6107+++ gcc/lto-symtab.c (.../branches/gcc-4_7-branch) (wersja 187293)
6108@@ -215,8 +215,8 @@
6109 {
6110 fprintf (cgraph_dump_file, "Replacing cgraph node %s/%i by %s/%i"
6111 " for symbol %s\n",
6112- cgraph_node_name (node), node->uid,
6113- cgraph_node_name (prevailing_node),
6114+ xstrdup (cgraph_node_name (node)), node->uid,
6115+ xstrdup (cgraph_node_name (prevailing_node)),
6116 prevailing_node->uid,
6117 IDENTIFIER_POINTER ((*targetm.asm_out.mangle_assembler_name)
6118 (IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (node->decl)))));
6119Index: gcc/tree-ssa-tail-merge.c
6120===================================================================
6121--- gcc/tree-ssa-tail-merge.c (.../tags/gcc_4_7_0_release) (wersja 187293)
6122+++ gcc/tree-ssa-tail-merge.c (.../branches/gcc-4_7-branch) (wersja 187293)
6123@@ -1123,18 +1123,31 @@
6124 }
6125 }
6126
6127-/* Let GSI skip backwards over local defs. */
6128+/* Let GSI skip backwards over local defs. Return the earliest vuse in VUSE.
6129+ Return true in VUSE_ESCAPED if the vuse influenced a SSA_OP_DEF of one of the
6130+ processed statements. */
6131
6132 static void
6133-gsi_advance_bw_nondebug_nonlocal (gimple_stmt_iterator *gsi)
6134+gsi_advance_bw_nondebug_nonlocal (gimple_stmt_iterator *gsi, tree *vuse,
6135+ bool *vuse_escaped)
6136 {
6137 gimple stmt;
6138+ tree lvuse;
6139
6140 while (true)
6141 {
6142 if (gsi_end_p (*gsi))
6143 return;
6144 stmt = gsi_stmt (*gsi);
6145+
6146+ lvuse = gimple_vuse (stmt);
6147+ if (lvuse != NULL_TREE)
6148+ {
6149+ *vuse = lvuse;
6150+ if (!ZERO_SSA_OPERANDS (stmt, SSA_OP_DEF))
6151+ *vuse_escaped = true;
6152+ }
6153+
6154 if (!(is_gimple_assign (stmt) && local_def (gimple_get_lhs (stmt))
6155 && !gimple_has_side_effects (stmt)))
6156 return;
6157@@ -1150,9 +1163,11 @@
6158 {
6159 gimple_stmt_iterator gsi1 = gsi_last_nondebug_bb (bb1);
6160 gimple_stmt_iterator gsi2 = gsi_last_nondebug_bb (bb2);
6161+ tree vuse1 = NULL_TREE, vuse2 = NULL_TREE;
6162+ bool vuse_escaped = false;
6163
6164- gsi_advance_bw_nondebug_nonlocal (&gsi1);
6165- gsi_advance_bw_nondebug_nonlocal (&gsi2);
6166+ gsi_advance_bw_nondebug_nonlocal (&gsi1, &vuse1, &vuse_escaped);
6167+ gsi_advance_bw_nondebug_nonlocal (&gsi2, &vuse2, &vuse_escaped);
6168
6169 while (!gsi_end_p (gsi1) && !gsi_end_p (gsi2))
6170 {
6171@@ -1161,13 +1176,20 @@
6172
6173 gsi_prev_nondebug (&gsi1);
6174 gsi_prev_nondebug (&gsi2);
6175- gsi_advance_bw_nondebug_nonlocal (&gsi1);
6176- gsi_advance_bw_nondebug_nonlocal (&gsi2);
6177+ gsi_advance_bw_nondebug_nonlocal (&gsi1, &vuse1, &vuse_escaped);
6178+ gsi_advance_bw_nondebug_nonlocal (&gsi2, &vuse2, &vuse_escaped);
6179 }
6180
6181 if (!(gsi_end_p (gsi1) && gsi_end_p (gsi2)))
6182 return;
6183
6184+ /* If the incoming vuses are not the same, and the vuse escaped into an
6185+ SSA_OP_DEF, then merging the 2 blocks will change the value of the def,
6186+ which potentially means the semantics of one of the blocks will be changed.
6187+ TODO: make this check more precise. */
6188+ if (vuse_escaped && vuse1 != vuse2)
6189+ return;
6190+
6191 if (dump_file)
6192 fprintf (dump_file, "find_duplicates: <bb %d> duplicate of <bb %d>\n",
6193 bb1->index, bb2->index);
6194Index: gcc/c-family/ChangeLog
6195===================================================================
6196--- gcc/c-family/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293)
6197+++ gcc/c-family/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293)
6198@@ -1,3 +1,8 @@
6199+2012-03-23 William Bader <williambader@hotmail.com>
6200+
6201+ PR c/52682
6202+ * c-lex.c (c_lex_with_flags): Avoid declarations after stmts.
6203+
6204 2012-03-22 Release Manager
6205
6206 * GCC 4.7.0 released.
6207Index: gcc/c-family/c-lex.c
6208===================================================================
6209--- gcc/c-family/c-lex.c (.../tags/gcc_4_7_0_release) (wersja 187293)
6210+++ gcc/c-family/c-lex.c (.../branches/gcc-4_7-branch) (wersja 187293)
6211@@ -342,6 +342,8 @@
6212
6213 if (flags & CPP_N_USERDEF)
6214 {
6215+ char *str;
6216+ tree literal;
6217 tree suffix_id = get_identifier (suffix);
6218 int len = tok->val.str.len - strlen (suffix);
6219 /* If this is going to be used as a C string to pass to a
6220@@ -350,9 +352,9 @@
6221 (const char *) tok->val.str.text);
6222 TREE_TYPE (num_string) = char_array_type_node;
6223 num_string = fix_string_type (num_string);
6224- char *str = CONST_CAST (char *, TREE_STRING_POINTER (num_string));
6225+ str = CONST_CAST (char *, TREE_STRING_POINTER (num_string));
6226 str[len] = '\0';
6227- tree literal = build_userdef_literal (suffix_id, *value,
6228+ literal = build_userdef_literal (suffix_id, *value,
6229 num_string);
6230 *value = literal;
6231 }
d52df9a1 6232Index: gcc/DATESTAMP
7bd46337 6233===================================================================
f500de0e
PS
6234--- gcc/DATESTAMP (.../tags/gcc_4_7_0_release) (wersja 187293)
6235+++ gcc/DATESTAMP (.../branches/gcc-4_7-branch) (wersja 187293)
6236@@ -1 +1 @@
6237-20120322
6238+20120508
6239Index: gcc/ipa-cp.c
6240===================================================================
6241--- gcc/ipa-cp.c (.../tags/gcc_4_7_0_release) (wersja 187293)
6242+++ gcc/ipa-cp.c (.../branches/gcc-4_7-branch) (wersja 187293)
6243@@ -2180,8 +2180,9 @@
6244 if (dump_file)
6245 fprintf (dump_file, " - adding an extra caller %s/%i"
6246 " of %s/%i\n",
6247- cgraph_node_name (cs->caller), cs->caller->uid,
6248- cgraph_node_name (val->spec_node),
6249+ xstrdup (cgraph_node_name (cs->caller)),
6250+ cs->caller->uid,
6251+ xstrdup (cgraph_node_name (val->spec_node)),
6252 val->spec_node->uid);
6253
6254 cgraph_redirect_edge_callee (cs, val->spec_node);
6255Index: gcc/tree-scalar-evolution.c
6256===================================================================
6257--- gcc/tree-scalar-evolution.c (.../tags/gcc_4_7_0_release) (wersja 187293)
6258+++ gcc/tree-scalar-evolution.c (.../branches/gcc-4_7-branch) (wersja 187293)
6259@@ -499,65 +499,6 @@
6260 return chrec_dont_know;
6261 }
6262
6263-/* Determine whether the CHREC is always positive/negative. If the expression
6264- cannot be statically analyzed, return false, otherwise set the answer into
6265- VALUE. */
6266-
6267-bool
6268-chrec_is_positive (tree chrec, bool *value)
6269-{
6270- bool value0, value1, value2;
6271- tree end_value, nb_iter;
6272-
6273- switch (TREE_CODE (chrec))
6274- {
6275- case POLYNOMIAL_CHREC:
6276- if (!chrec_is_positive (CHREC_LEFT (chrec), &value0)
6277- || !chrec_is_positive (CHREC_RIGHT (chrec), &value1))
6278- return false;
6279-
6280- /* FIXME -- overflows. */
6281- if (value0 == value1)
6282- {
6283- *value = value0;
6284- return true;
6285- }
6286-
6287- /* Otherwise the chrec is under the form: "{-197, +, 2}_1",
6288- and the proof consists in showing that the sign never
6289- changes during the execution of the loop, from 0 to
6290- loop->nb_iterations. */
6291- if (!evolution_function_is_affine_p (chrec))
6292- return false;
6293-
6294- nb_iter = number_of_latch_executions (get_chrec_loop (chrec));
6295- if (chrec_contains_undetermined (nb_iter))
6296- return false;
6297-
6298-#if 0
6299- /* TODO -- If the test is after the exit, we may decrease the number of
6300- iterations by one. */
6301- if (after_exit)
6302- nb_iter = chrec_fold_minus (type, nb_iter, build_int_cst (type, 1));
6303-#endif
6304-
6305- end_value = chrec_apply (CHREC_VARIABLE (chrec), chrec, nb_iter);
6306-
6307- if (!chrec_is_positive (end_value, &value2))
6308- return false;
6309-
6310- *value = value0;
6311- return value0 == value1;
6312-
6313- case INTEGER_CST:
6314- *value = (tree_int_cst_sgn (chrec) == 1);
6315- return true;
6316-
6317- default:
6318- return false;
6319- }
6320-}
6321-
6322 /* Associate CHREC to SCALAR. */
6323
6324 static void
6325Index: gcc/configure
6326===================================================================
6327--- gcc/configure (.../tags/gcc_4_7_0_release) (wersja 187293)
6328+++ gcc/configure (.../branches/gcc-4_7-branch) (wersja 187293)
6329@@ -26474,7 +26474,15 @@
6330 fi
6331
6332 case "$target:$tm_file" in
6333- powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*)
6334+ powerpc64-*-freebsd* | powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*)
6335+ case "$target" in
6336+ *-*-linux*)
6337+ emul_name="-melf64ppc"
6338+ ;;
6339+ *-*-freebsd*)
6340+ emul_name="-melf64ppc_fbsd"
6341+ ;;
6342+ esac
6343 { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker support for omitting dot symbols" >&5
6344 $as_echo_n "checking linker support for omitting dot symbols... " >&6; }
6345 if test "${gcc_cv_ld_no_dot_syms+set}" = set; then :
6346@@ -26504,7 +26512,7 @@
6347 EOF
6348 if $gcc_cv_as -a64 -o conftest1.o conftest1.s > /dev/null 2>&1 \
6349 && $gcc_cv_as -a64 -o conftest2.o conftest2.s > /dev/null 2>&1 \
6350- && $gcc_cv_ld -melf64ppc -o conftest conftest1.o conftest2.o > /dev/null 2>&1; then
6351+ && $gcc_cv_ld $emul_name -o conftest conftest1.o conftest2.o > /dev/null 2>&1; then
6352 gcc_cv_ld_no_dot_syms=yes
6353 fi
6354 rm -f conftest conftest1.o conftest2.o conftest1.s conftest2.s
6355@@ -26541,7 +26549,7 @@
6356 ld 9,ie0@got@tprel@l(9)
6357 EOF
6358 if $gcc_cv_as -a64 -o conftest.o conftest.s > /dev/null 2>&1 \
6359- && $gcc_cv_ld -melf64ppc --no-toc-sort -o conftest conftest.o > /dev/null 2>&1; then
6360+ && $gcc_cv_ld $emul_name --no-toc-sort -o conftest conftest.o > /dev/null 2>&1; then
6361 gcc_cv_ld_large_toc=yes
6362 fi
6363 rm -f conftest conftest.o conftest.s
6364Index: gcc/fold-const.c
6365===================================================================
6366--- gcc/fold-const.c (.../tags/gcc_4_7_0_release) (wersja 187293)
6367+++ gcc/fold-const.c (.../branches/gcc-4_7-branch) (wersja 187293)
6368@@ -6850,64 +6850,81 @@
6369 s = integer_one_node;
6370 }
6371
6372- for (;; ref = TREE_OPERAND (ref, 0))
6373+ /* Handle &x.array the same as we would handle &x.array[0]. */
6374+ if (TREE_CODE (ref) == COMPONENT_REF
6375+ && TREE_CODE (TREE_TYPE (ref)) == ARRAY_TYPE)
6376 {
6377- if (TREE_CODE (ref) == ARRAY_REF)
6378+ tree domain;
6379+
6380+ /* Remember if this was a multi-dimensional array. */
6381+ if (TREE_CODE (TREE_OPERAND (ref, 0)) == ARRAY_REF)
6382+ mdim = true;
6383+
6384+ domain = TYPE_DOMAIN (TREE_TYPE (ref));
6385+ if (! domain)
6386+ goto cont;
6387+ itype = TREE_TYPE (domain);
6388+
6389+ step = TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (ref)));
6390+ if (TREE_CODE (step) != INTEGER_CST)
6391+ goto cont;
6392+
6393+ if (s)
6394 {
6395- tree domain;
6396+ if (! tree_int_cst_equal (step, s))
6397+ goto cont;
6398+ }
6399+ else
6400+ {
6401+ /* Try if delta is a multiple of step. */
6402+ tree tmp = div_if_zero_remainder (EXACT_DIV_EXPR, op1, step);
6403+ if (! tmp)
6404+ goto cont;
6405+ delta = tmp;
6406+ }
6407
6408- /* Remember if this was a multi-dimensional array. */
6409- if (TREE_CODE (TREE_OPERAND (ref, 0)) == ARRAY_REF)
6410- mdim = true;
6411+ /* Only fold here if we can verify we do not overflow one
6412+ dimension of a multi-dimensional array. */
6413+ if (mdim)
6414+ {
6415+ tree tmp;
6416
6417- domain = TYPE_DOMAIN (TREE_TYPE (TREE_OPERAND (ref, 0)));
6418- if (! domain)
6419- continue;
6420- itype = TREE_TYPE (domain);
6421+ if (!TYPE_MIN_VALUE (domain)
6422+ || !TYPE_MAX_VALUE (domain)
6423+ || TREE_CODE (TYPE_MAX_VALUE (domain)) != INTEGER_CST)
6424+ goto cont;
6425
6426- step = array_ref_element_size (ref);
6427- if (TREE_CODE (step) != INTEGER_CST)
6428- continue;
6429+ tmp = fold_binary_loc (loc, PLUS_EXPR, itype,
6430+ fold_convert_loc (loc, itype,
6431+ TYPE_MIN_VALUE (domain)),
6432+ fold_convert_loc (loc, itype, delta));
6433+ if (TREE_CODE (tmp) != INTEGER_CST
6434+ || tree_int_cst_lt (TYPE_MAX_VALUE (domain), tmp))
6435+ goto cont;
6436+ }
6437
6438- if (s)
6439- {
6440- if (! tree_int_cst_equal (step, s))
6441- continue;
6442- }
6443- else
6444- {
6445- /* Try if delta is a multiple of step. */
6446- tree tmp = div_if_zero_remainder (EXACT_DIV_EXPR, op1, step);
6447- if (! tmp)
6448- continue;
6449- delta = tmp;
6450- }
6451+ /* We found a suitable component reference. */
6452
6453- /* Only fold here if we can verify we do not overflow one
6454- dimension of a multi-dimensional array. */
6455- if (mdim)
6456- {
6457- tree tmp;
6458+ pref = TREE_OPERAND (addr, 0);
6459+ ret = copy_node (pref);
6460+ SET_EXPR_LOCATION (ret, loc);
6461
6462- if (TREE_CODE (TREE_OPERAND (ref, 1)) != INTEGER_CST
6463- || !TYPE_MAX_VALUE (domain)
6464- || TREE_CODE (TYPE_MAX_VALUE (domain)) != INTEGER_CST)
6465- continue;
6466+ ret = build4_loc (loc, ARRAY_REF, TREE_TYPE (TREE_TYPE (ref)), ret,
6467+ fold_build2_loc
6468+ (loc, PLUS_EXPR, itype,
6469+ fold_convert_loc (loc, itype,
6470+ TYPE_MIN_VALUE
6471+ (TYPE_DOMAIN (TREE_TYPE (ref)))),
6472+ fold_convert_loc (loc, itype, delta)),
6473+ NULL_TREE, NULL_TREE);
6474+ return build_fold_addr_expr_loc (loc, ret);
6475+ }
6476
6477- tmp = fold_binary_loc (loc, PLUS_EXPR, itype,
6478- fold_convert_loc (loc, itype,
6479- TREE_OPERAND (ref, 1)),
6480- fold_convert_loc (loc, itype, delta));
6481- if (!tmp
6482- || TREE_CODE (tmp) != INTEGER_CST
6483- || tree_int_cst_lt (TYPE_MAX_VALUE (domain), tmp))
6484- continue;
6485- }
6486+cont:
6487
6488- break;
6489- }
6490- else if (TREE_CODE (ref) == COMPONENT_REF
6491- && TREE_CODE (TREE_TYPE (ref)) == ARRAY_TYPE)
6492+ for (;; ref = TREE_OPERAND (ref, 0))
6493+ {
6494+ if (TREE_CODE (ref) == ARRAY_REF)
6495 {
6496 tree domain;
6497
6498@@ -6915,12 +6932,12 @@
6499 if (TREE_CODE (TREE_OPERAND (ref, 0)) == ARRAY_REF)
6500 mdim = true;
6501
6502- domain = TYPE_DOMAIN (TREE_TYPE (ref));
6503+ domain = TYPE_DOMAIN (TREE_TYPE (TREE_OPERAND (ref, 0)));
6504 if (! domain)
6505 continue;
6506 itype = TREE_TYPE (domain);
6507
6508- step = TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (ref)));
6509+ step = array_ref_element_size (ref);
6510 if (TREE_CODE (step) != INTEGER_CST)
6511 continue;
6512
6513@@ -6944,16 +6961,17 @@
6514 {
6515 tree tmp;
6516
6517- if (!TYPE_MIN_VALUE (domain)
6518+ if (TREE_CODE (TREE_OPERAND (ref, 1)) != INTEGER_CST
6519 || !TYPE_MAX_VALUE (domain)
6520 || TREE_CODE (TYPE_MAX_VALUE (domain)) != INTEGER_CST)
6521 continue;
6522
6523 tmp = fold_binary_loc (loc, PLUS_EXPR, itype,
6524 fold_convert_loc (loc, itype,
6525- TYPE_MIN_VALUE (domain)),
6526+ TREE_OPERAND (ref, 1)),
6527 fold_convert_loc (loc, itype, delta));
6528- if (TREE_CODE (tmp) != INTEGER_CST
6529+ if (!tmp
6530+ || TREE_CODE (tmp) != INTEGER_CST
6531 || tree_int_cst_lt (TYPE_MAX_VALUE (domain), tmp))
6532 continue;
6533 }
6534@@ -6982,29 +7000,11 @@
6535 pos = TREE_OPERAND (pos, 0);
6536 }
6537
6538- if (TREE_CODE (ref) == ARRAY_REF)
6539- {
6540- TREE_OPERAND (pos, 1)
6541- = fold_build2_loc (loc, PLUS_EXPR, itype,
6542- fold_convert_loc (loc, itype, TREE_OPERAND (pos, 1)),
6543- fold_convert_loc (loc, itype, delta));
6544- return fold_build1_loc (loc, ADDR_EXPR, TREE_TYPE (addr), ret);
6545- }
6546- else if (TREE_CODE (ref) == COMPONENT_REF)
6547- {
6548- gcc_assert (ret == pos);
6549- ret = build4_loc (loc, ARRAY_REF, TREE_TYPE (TREE_TYPE (ref)), ret,
6550- fold_build2_loc
6551- (loc, PLUS_EXPR, itype,
6552- fold_convert_loc (loc, itype,
6553- TYPE_MIN_VALUE
6554- (TYPE_DOMAIN (TREE_TYPE (ref)))),
6555- fold_convert_loc (loc, itype, delta)),
6556- NULL_TREE, NULL_TREE);
6557- return build_fold_addr_expr_loc (loc, ret);
6558- }
6559- else
6560- gcc_unreachable ();
6561+ TREE_OPERAND (pos, 1)
6562+ = fold_build2_loc (loc, PLUS_EXPR, itype,
6563+ fold_convert_loc (loc, itype, TREE_OPERAND (pos, 1)),
6564+ fold_convert_loc (loc, itype, delta));
6565+ return fold_build1_loc (loc, ADDR_EXPR, TREE_TYPE (addr), ret);
6566 }
6567
6568
6569Index: gcc/tree-chrec.h
6570===================================================================
6571--- gcc/tree-chrec.h (.../tags/gcc_4_7_0_release) (wersja 187293)
6572+++ gcc/tree-chrec.h (.../branches/gcc-4_7-branch) (wersja 187293)
6573@@ -77,7 +77,6 @@
6574 /* Observers. */
6575 extern bool eq_evolutions_p (const_tree, const_tree);
6576 extern bool is_multivariate_chrec (const_tree);
6577-extern bool chrec_is_positive (tree, bool *);
6578 extern bool chrec_contains_symbols (const_tree);
6579 extern bool chrec_contains_symbols_defined_in_loop (const_tree, unsigned);
6580 extern bool chrec_contains_undetermined (const_tree);
6581Index: gcc/DEV-PHASE
6582===================================================================
6583--- gcc/DEV-PHASE (.../tags/gcc_4_7_0_release) (wersja 187293)
6584+++ gcc/DEV-PHASE (.../branches/gcc-4_7-branch) (wersja 187293)
6585@@ -0,0 +1 @@
6586+prerelease
6587Index: gcc/tree-ssa-sccvn.c
6588===================================================================
6589--- gcc/tree-ssa-sccvn.c (.../tags/gcc_4_7_0_release) (wersja 187293)
6590+++ gcc/tree-ssa-sccvn.c (.../branches/gcc-4_7-branch) (wersja 187293)
6591@@ -1348,18 +1348,19 @@
6592
6593 /* Lookup an existing or insert a new vn_reference entry into the
6594 value table for the VUSE, SET, TYPE, OPERANDS reference which
6595- has the constant value CST. */
6596+ has the value VALUE which is either a constant or an SSA name. */
6597
6598 static vn_reference_t
6599-vn_reference_lookup_or_insert_constant_for_pieces (tree vuse,
6600- alias_set_type set,
6601- tree type,
6602- VEC (vn_reference_op_s,
6603- heap) *operands,
6604- tree cst)
6605+vn_reference_lookup_or_insert_for_pieces (tree vuse,
6606+ alias_set_type set,
6607+ tree type,
6608+ VEC (vn_reference_op_s,
6609+ heap) *operands,
6610+ tree value)
6611 {
6612 struct vn_reference_s vr1;
6613 vn_reference_t result;
6614+ unsigned value_id;
6615 vr1.vuse = vuse;
6616 vr1.operands = operands;
6617 vr1.type = type;
6618@@ -1367,10 +1368,13 @@
6619 vr1.hashcode = vn_reference_compute_hash (&vr1);
6620 if (vn_reference_lookup_1 (&vr1, &result))
6621 return result;
6622+ if (TREE_CODE (value) == SSA_NAME)
6623+ value_id = VN_INFO (value)->value_id;
6624+ else
6625+ value_id = get_or_alloc_constant_value_id (value);
6626 return vn_reference_insert_pieces (vuse, set, type,
6627 VEC_copy (vn_reference_op_s, heap,
6628- operands), cst,
6629- get_or_alloc_constant_value_id (cst));
6630+ operands), value, value_id);
6631 }
6632
6633 /* Callback for walk_non_aliased_vuses. Tries to perform a lookup
6634@@ -1452,7 +1456,7 @@
6635 && offset2 + size2 >= offset + maxsize)
6636 {
6637 tree val = build_zero_cst (vr->type);
6638- return vn_reference_lookup_or_insert_constant_for_pieces
6639+ return vn_reference_lookup_or_insert_for_pieces
6640 (vuse, vr->set, vr->type, vr->operands, val);
6641 }
6642 }
6643@@ -1473,7 +1477,7 @@
6644 && offset2 + size2 >= offset + maxsize)
6645 {
6646 tree val = build_zero_cst (vr->type);
6647- return vn_reference_lookup_or_insert_constant_for_pieces
6648+ return vn_reference_lookup_or_insert_for_pieces
6649 (vuse, vr->set, vr->type, vr->operands, val);
6650 }
6651 }
6652@@ -1514,7 +1518,7 @@
6653 / BITS_PER_UNIT),
6654 ref->size / BITS_PER_UNIT);
6655 if (val)
6656- return vn_reference_lookup_or_insert_constant_for_pieces
6657+ return vn_reference_lookup_or_insert_for_pieces
6658 (vuse, vr->set, vr->type, vr->operands, val);
6659 }
6660 }
6661@@ -1568,7 +1572,7 @@
6662 }
6663 }
6664 if (val)
6665- return vn_reference_lookup_or_insert_constant_for_pieces
6666+ return vn_reference_lookup_or_insert_for_pieces
6667 (vuse, vr->set, vr->type, vr->operands, val);
6668 }
6669 }
6670Index: gcc/cgraphunit.c
6671===================================================================
6672--- gcc/cgraphunit.c (.../tags/gcc_4_7_0_release) (wersja 187293)
6673+++ gcc/cgraphunit.c (.../branches/gcc-4_7-branch) (wersja 187293)
6674@@ -2490,8 +2490,8 @@
6675 if (cgraph_dump_file)
6676 {
6677 fprintf (cgraph_dump_file, "updating call of %s/%i -> %s/%i: ",
6678- cgraph_node_name (e->caller), e->caller->uid,
6679- cgraph_node_name (e->callee), e->callee->uid);
6680+ xstrdup (cgraph_node_name (e->caller)), e->caller->uid,
6681+ xstrdup (cgraph_node_name (e->callee)), e->callee->uid);
6682 print_gimple_stmt (cgraph_dump_file, e->call_stmt, 0, dump_flags);
6683 if (e->callee->clone.combined_args_to_skip)
6684 {
6685@@ -2577,8 +2577,8 @@
6686 if (cgraph_dump_file)
6687 {
6688 fprintf (cgraph_dump_file, "cloning %s to %s\n",
6689- cgraph_node_name (node->clone_of),
6690- cgraph_node_name (node));
6691+ xstrdup (cgraph_node_name (node->clone_of)),
6692+ xstrdup (cgraph_node_name (node)));
6693 if (node->clone.tree_map)
6694 {
6695 unsigned int i;
6696@@ -2591,9 +2591,11 @@
6697 replace_info = VEC_index (ipa_replace_map_p,
6698 node->clone.tree_map,
6699 i);
6700- print_generic_expr (cgraph_dump_file, replace_info->old_tree, 0);
6701+ print_generic_expr (cgraph_dump_file,
6702+ replace_info->old_tree, 0);
6703 fprintf (cgraph_dump_file, " -> ");
6704- print_generic_expr (cgraph_dump_file, replace_info->new_tree, 0);
6705+ print_generic_expr (cgraph_dump_file,
6706+ replace_info->new_tree, 0);
6707 fprintf (cgraph_dump_file, "%s%s;",
6708 replace_info->replace_p ? "(replace)":"",
6709 replace_info->ref_p ? "(ref)":"");
6710@@ -2603,12 +2605,15 @@
6711 if (node->clone.args_to_skip)
6712 {
6713 fprintf (cgraph_dump_file, " args_to_skip: ");
6714- dump_bitmap (cgraph_dump_file, node->clone.args_to_skip);
6715+ dump_bitmap (cgraph_dump_file,
6716+ node->clone.args_to_skip);
6717 }
6718 if (node->clone.args_to_skip)
6719 {
6720- fprintf (cgraph_dump_file, " combined_args_to_skip:");
6721- dump_bitmap (cgraph_dump_file, node->clone.combined_args_to_skip);
6722+ fprintf (cgraph_dump_file,
6723+ " combined_args_to_skip:");
6724+ dump_bitmap (cgraph_dump_file,
6725+ node->clone.combined_args_to_skip);
6726 }
6727 }
6728 cgraph_materialize_clone (node);
6729Index: gcc/ChangeLog
6730===================================================================
6731--- gcc/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293)
6732+++ gcc/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293)
6733@@ -1,3 +1,808 @@
6734+2012-05-08 Hans-Peter Nilsson <hp@axis.com>
6735+
6736+ PR target/53272
6737+ * config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32,
6738+ when a constant source operand matches an "I" constraint, the "no
6739+ CC0 change" applies to a register-destination only, not a
6740+ strict_low_part-destination.
6741+
6742+2012-05-07 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6743+
6744+ Backport from mainline:
6745+ 2012-04-19 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6746+
6747+ * config/arm/sync.md (sync_optab): Change ior attribute to "or".
6748+
6749+2012-05-07 Jakub Jelinek <jakub@redhat.com>
6750+
6751+ PR tree-optimization/53239
6752+ * tree-vrp.c (get_value_range): Set VR of
6753+ SSA_NAME_IS_DEFAULT_DEF of DECL_BY_REFERENCE RESULT_DECL
6754+ to nonnull.
6755+
6756+2012-05-07 Richard Guenther <rguenther@suse.de>
6757+
6758+ PR tree-optimization/53195
6759+ * tree-inline.c (setup_one_parameter): Properly add referenced
6760+ vars from the parameters new known value.
6761+
6762+2012-05-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6763+
6764+ Backport from mainline:
6765+ 2012-04-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6766+
6767+ PR target/52999
6768+ * config/pa/pa.c (pa_legitimate_constant_p): Don't put function labels
6769+ in constant pool.
6770+
6771+2012-05-04 Ian Lance Taylor <iant@google.com>
6772+
6773+ * tree-vect-patterns.c (vect_single_imm_use): Correct return
6774+ values from false to NULL.
6775+
6776+2012-05-04 Uros Bizjak <ubizjak@gmail.com>
6777+
6778+ Backport from mainline
6779+ 2012-05-04 Uros Bizjak <ubizjak@gmail.com>
6780+
6781+ PR target/53228
6782+ * config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
6783+ (TARGET_CMOV): Rename from TARGET_CMOVE.
6784+ (TARGET_CMOVE): New define.
6785+ * config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV.
6786+ Do not set TARGET_CMOVE here.
6787+
6788+2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
6789+
6790+ Backport from mainline:
6791+
6792+ 2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
6793+
6794+ PR tree-optimization/52633
6795+ * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of
6796+ vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern.
6797+ (vect_recog_over_widening_pattern): Remove handling of code that was
6798+ already detected as over-widening pattern. Remove special handling
6799+ of "unsigned" cases. Instead, support general case of conversion
6800+ of the shift result to another type.
6801+
6802+ 2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
6803+
6804+ * tree-vect-patterns.c (vect_single_imm_use): New function.
6805+ (vect_recog_widen_mult_pattern): Use it instead of open-coding loop.
6806+ (vect_recog_over_widening_pattern): Likewise.
6807+ (vect_recog_widen_shift_pattern): Likewise.
6808+
6809+ 2012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
6810+
6811+ PR tree-optimization/52870
6812+ * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that
6813+ presumed pattern statement is within the same loop or basic block.
6814+
6815+2012-05-04 Richard Guenther <rguenther@suse.de>
6816+
6817+ * common.opt (flto-report): Do not mark as Optimization.
6818+
6819+2012-05-04 Eric Botcazou <ebotcazou@adacore.com>
6820+
6821+ PR target/48496
6822+ * recog.c (constrain_operands): If extra constraints are present, also
6823+ accept pseudo-registers with equivalent memory locations during reload.
6824+
6825+2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
6826+
6827+ Backport from the mainline
6828+ 2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
6829+
6830+ PR target/53199
6831+ * config/rs6000/rs6000.md (bswapdi splitters): If
6832+ -mavoid-indexed-addresses (or -mcpu=power6 which sets it by
6833+ default) is used, generate an alternate sequence that does not
6834+ depend on using indexed addressing.
6835+
6836+2012-05-03 David S. Miller <davem@davemloft.net>
6837+
6838+ PR target/52684
6839+ * config/sparc/sparc.c (emit_soft_tfmode_libcall): If we pass a
6840+ MEM directly into a libcall, mark it's MEM_EXPR as addressable.
6841+ (sparc_emit_float_lib_cmp): Likewise.
6842+
6843+2012-05-04 Martin Jambor <mjambor@suse.cz>
6844+
6845+ Backport from mainline
6846+ 2012-05-02 Martin Jambor <mjambor@suse.cz>
6847+
6848+ PR lto/52605
6849+ * dwarf2out.c (dwarf2out_decl): Only lookup die representing context
6850+ of a variable when the contect is a function.
6851+
6852+2012-05-03 Jakub Jelinek <jakub@redhat.com>
6853+
6854+ PR plugins/53126
6855+ * gcc-ar.c (main): If GCC_EXEC_PREFIX is set in env,
6856+ append program name to it and pass that as first argument
6857+ to make_relative_prefix. Always pass standard_libexec_prefix
6858+ as last argument to make_relative_prefix. If
6859+ make_relative_prefix returns NULL, fall back to
6860+ standard_libexec_prefix.
6861+
6862+ PR debug/53174
6863+ * tree-predcom.c (remove_stmt): Call reset_debug_uses on stmts being
6864+ removed.
6865+
6866+ PR target/53187
6867+ * config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class
6868+ mode, return that mode.
6869+
6870+2012-05-03 Richard Guenther <rguenther@suse.de>
6871+
6872+ PR tree-optimization/53144
6873+ * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
6874+ Rename to ...
6875+ (vn_reference_lookup_or_insert_for_pieces): ... this. Properly deal
6876+ with SSA name values.
6877+ (vn_reference_lookup_3): Adjust callers.
6878+
6879+2012-05-02 Jakub Jelinek <jakub@redhat.com>
6880+
6881+ PR tree-optimization/53163
6882+ * tree-ssa-phiopt.c (cond_if_else_store_replacement): Don't ignore
6883+ return value from compute_all_dependences.
6884+
6885+ PR rtl-optimization/53160
6886+ * ree.c (combine_reaching_defs): Handle the case where cand->insn
6887+ has been modified by ree pass already.
6888+
6889+2012-05-01 Uros Bizjak <ubizjak@gmail.com>
6890+
6891+ Backport from mainline
6892+ 2012-04-30 Uros Bizjak <ubizjak@gmail.com>
6893+
6894+ PR middle-end/53136
6895+ * ipa-prop.c (ipa_print_node_jump_functions): Wrap multiple
6896+ calls to cgraph_node_name in xstrdup.
6897+ (ipa_make_edge_direct_to_target): Ditto.
6898+ * tree-sra.c (convert_callers_for_node): Ditto.
6899+ * lto-symtab.c (lto_cgraph_replace_node): Ditto.
6900+ * ipa-cp.c (perhaps_add_new_callers): Ditto.
6901+ * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Ditto.
6902+ (cgraph_materialize_all_clones): Ditto.
6903+ * ipa-inline.c (report_inline_failed_reason): Ditto.
6904+ (want_early_inline_function_p): Ditto.
6905+ (edge_badness): Ditto.
6906+ (update_edge_key): Ditto.
6907+ (flatten_function): Ditto.
6908+ (ipa_inline): Ditto.
6909+ (inline_always_inline_functions): Ditto.
6910+ (early_inline_small_functions): Ditto.
6911+
6912+2012-04-30 Andreas Tobler <andreast@fgznet.ch>
6913+
6914+ Backport from mainline
6915+ 2012-03-21 Andreas Tobler <andreast@fgznet.ch>
6916+
6917+ * configure.ac (HAVE_LD_NO_DOT_SYMBOLS): Add powerpc64-*-freebsd*.
6918+ Introduce emul_name to select the right linker emulation for
6919+ powerpc64-*-freebsd*.
6920+ * configure: Regenerate.
6921+ * config.gcc: Add bits to support powerpc64-*-freebsd*.
6922+ * config/rs6000/freebsd.h (POWERPC_FREEBSD): Define.
6923+ * config/rs6000/freebsd64.h: New file.
6924+ * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
6925+ POWERPC_FREEBSD.
6926+ (rs6000_savres_strategy): Likewise.
6927+ (rs6000_savres_routine_name): Likewise.
6928+ (rs6000_elf_file_end): Likewise.
6929+ * config/rs6000/t-freebsd64: New file.
6930+ * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set the
6931+ rs6000_current_abi for 64-bit FreeBSD to ABI_AIX.
6932+
6933+2012-04-30 Uros Bizjak <ubizjak@gmail.com>
6934+
6935+ Backport from mainline
6936+ 2012-04-27 Paolo Bonzini <bonzini@gnu.org>
6937+
6938+ PR target/53138
6939+ * config/i386/i386.md (x86_mov<mode>cc_0_m1_neg): Add clobber.
6940+
6941+2012-04-30 Eric Botcazou <ebotcazou@adacore.com>
6942+
6943+ * config/i386/i386.c (ix86_handle_struct_attribute): Use the proper
6944+ predicate to discriminate types.
6945+
6946+2012-04-27 Richard Guenther <rguenther@suse.de>
6947+
6948+ PR c/51527
6949+ * convert.c (convert_to_integer): Avoid infinite recursion for
6950+ target-defined built-in types.
6951+
6952+2012-04-26 Hans-Peter Nilsson <hp@axis.com>
6953+
6954+ PR target/53120
6955+ * config/cris/cris.md ("*andhi_lowpart_v32")
6956+ ("*andqi_lowpart_v32"): Change first input-only operand from
6957+ a (match_operand ...) to (match_dup 0). Drop alternatives with
6958+ const_int-matching constraints for redundancy.
6959+ ("*andhi_lowpart_non_v32", "*andqi_lowpart_non_v32"): Ditto. Drop
6960+ three-operand alternative.
6961+
6962+2012-04-26 Uros Bizjak <ubizjak@gmail.com>
6963+
6964+ Backport from mainline
6965+ 2012-04-23 Uros Bizjak <ubizjak@gmail.com>
6966+
6967+ * config/i386/i386.md (*add<mode>_2): Add r/r/0 alternative.
6968+ (*addsi_2_zext): Ditto.
6969+ (*add<mode>_3): Ditto.
6970+ (*addsi_3_zext): Ditto.
6971+ (*add<mode>_5): Ditto.
6972+
6973+2012-04-25 Jakub Jelinek <jakub@redhat.com>
6974+
6975+ PR c/52880
6976+ * c-typeck.c (set_nonincremental_init,
6977+ set_nonincremental_init_from_string): Pass true instead of false
6978+ as IMPLICIT to add_pending_init.
6979+
6980+2012-04-24 Georg-Johann Lay <avr@gjlay.de>
6981+
6982+ Backport from 2012-04-24 mainline r186768.
6983+
6984+ PR target/53065
6985+ * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): New hook define.
6986+
6987+2012-04-24 Richard Guenther <rguenther@suse.de>
6988+
6989+ PR tree-optimization/53085
6990+ * tree-ssa-pre.c (eliminate): Do not eliminate volatile redundant
6991+ stores.
6992+
6993+2012-04-24 Jakub Jelinek <jakub@redhat.com>
6994+
6995+ PR middle-end/53084
6996+ * varasm.c (compute_reloc_for_constant): Handle ADDR_EXPR
6997+ of MEM_REF.
6998+ (output_addressed_constants): Likewise.
6999+
7000+ PR middle-end/52999
7001+ * varasm.c (get_section): Don't ICE for section conflicts with
7002+ built-in section kinds.
7003+
7004+2012-04-23 David Edelsohn <dje.gcc@gmail.com>
7005+
7006+ * config/rs6000/sync.md (fetchop_name): Change ior attribute to "or".
7007+
7008+2012-04-23 Georg-Johann Lay <avr@gjlay.de>
7009+
7010+ * doc/extend.texi (AVR Named Address Spaces): Fix typos.
7011+
7012+2012-04-23 Richard Guenther <rguenther@suse.de>
7013+
7014+ PR c/53060
7015+ * c-typeck.c (build_binary_op): Fix typo.
7016+
7017+2012-04-23 Jakub Jelinek <jakub@redhat.com>
7018+
7019+ PR tree-optimizations/52891
7020+ * tree-vect-patterns.c (adjust_bool_pattern): Use
7021+ build_nonstandard_type even if rhs1 has unsigned INTEGER_TYPE,
7022+ but with non-standard precision.
7023+
7024+2012-04-22 Ian Lance Taylor <iant@google.com>
7025+
7026+ * godump.c (go_output_typedef): Dump size of structs.
7027+
7028+2012-04-20 Ulrich Weigand <ulrich.weigand@linaro.org>
7029+
7030+ Backport from mainline:
7031+
7032+ * config/arm/arm.c (arm_print_operand): Fix invalid alignment
7033+ hints for 'A' operand types.
7034+
7035+2012-04-19 Georg-Johann Lay <avr@gjlay.de>
7036+
7037+ Backport from 2012-04-19 mainline r186588.
7038+
7039+ PR target/53033
7040+ * config/avr/avr.c (avr_out_load_psi): Fix assembler template for
7041+ the case *(X+const).
7042+
7043+2012-04-18 Uros Bizjak <ubizjak@gmail.com>
7044+
7045+ * config/alpha/sync.md (fetchop_name): Change ior attribute to "or".
7046+
7047+2012-04-17 Uros Bizjak <ubizjak@gmail.com>
7048+
7049+ PR target/53020
7050+ * config/i386/sync.md (atomic_<code><mode>): Rename to
7051+ atomic_<logic><mode>.
7052+
7053+2012-04-16 Uros Bizjak <ubizjak@gmail.com>
7054+
7055+ Backport from mainline
7056+ 2012-04-12 Uros Bizjak <ubizjak@gmail.com>
7057+
7058+ PR target/52932
7059+ * config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second
7060+ argument type to __m256i. Update call to __builtin_ia32_permvarsf256.
7061+ * config/i386/sse.md (avx2_permvarv8sf): Change operand 1 to V8SI.
7062+ (avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2.
7063+ * config/i386/i386.c (bdesc_args) <__builtin_ia32_permvarsf256>:
7064+ Update builtin type to V8SF_FTYPE_V8SF_V8SI.
7065+ (ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and
7066+ gen_avx2_permvarv8sf.
7067+
7068+2012-04-16 Martin Jambor <mjambor@suse.cz>
7069+
7070+ Backported from mainline
7071+
7072+ 2012-04-13 Martin Jambor <mjambor@suse.cz>
7073+ PR middle-end/52939
7074+
7075+ * gimple-fold.c (gimple_get_virt_method_for_binfo): Bail out if
7076+ fold_ctor_reference returns a zero constant.
7077+
7078+2012-04-13 H.J. Lu <hongjiu.lu@intel.com>
7079+
7080+ Backported from mainline
7081+ 2012-04-13 H.J. Lu <hongjiu.lu@intel.com>
7082+
7083+ * config/i386/i386-c.c (ix86_target_macros): Define _ILP32
7084+ and __ILP32__ for x32.
7085+
7086+2012-04-13 Tom de Vries <tom@codesourcery.com>
7087+
7088+ Backport from mainline r186418.
7089+
7090+ 2012-04-13 Tom de Vries <tom@codesourcery.com>
7091+
7092+ * tree-ssa-tail-merge.c (gsi_advance_bw_nondebug_nonlocal): Add
7093+ parameters vuse and vuse_escaped.
7094+ (find_duplicate): Init vuse1, vuse2 and vuse_escaped. Pass to
7095+ gsi_advance_bw_nondebug_nonlocal. Return if vuse_escaped and
7096+ vuse1 != vuse2.
7097+
7098+2012-04-13 Richard Guenther <rguenther@suse.de>
7099+
7100+ PR tree-optimization/52969
7101+ * tree-if-conv.c (predicate_mem_writes): Properly gimplify
7102+ the condition for the COND_EXPR and handle predicate negation
7103+ by swapping the COND_EXPR arms.
7104+
7105+2012-04-13 Richard Guenther <rguenther@suse.de>
7106+
7107+ PR c/52862
7108+ * convert.c (convert_to_pointer): Remove special-casing of
7109+ zero.
7110+
7111+2012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
7112+
7113+ Backport from mainline
7114+ 2012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
7115+
7116+ PR target/52775
7117+ * config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to
7118+ the list of options to enable the FCFID instruction.
7119+ (TARGET_EXTRA_BUILTINS): Adjust comment.
7120+
7121+2012-04-12 Richard Guenther <rguenther@suse.de>
7122+
7123+ PR tree-optimization/52943
7124+ * tree-chrec.h (chrec_is_positive): Remove.
7125+ * tree-scalar-evolution.c (chrec_is_positive): Move ...
7126+ * tree-data-ref.c (chrec_is_positive): ... here. Make static.
7127+ Return false for a constant zero instead of negative.
7128+ (analyze_siv_subscript_cst_affine): Handle zero difference
7129+ in the initial condition explicitely.
7130+
7131+2012-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7132+
7133+ PR middle-end/52894
7134+ * varasm.c (process_pending_assemble_externals): Set
7135+ pending_assemble_externals_processed true.
7136+ (assemble_external): Call assemble_external_real if the pending
7137+ assemble externals have been processed.
7138+
7139+2012-04-09 Eric Botcazou <ebotcazou@adacore.com>
7140+
7141+ PR target/52717
7142+ * config/sparc/sparc.c (sparc_file_end): Set TREE_PUBLIC explicitly on
7143+ the DECL generated for the special GOT helper.
7144+
7145+2012-04-06 Walter Lee <walt@tilera.com>
7146+
7147+ Backport from mainline
7148+ 2012-03-07 Walter Lee <walt@tilera.com>
7149+
7150+ * config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate
7151+ REG_CFA_* notes for the stack pointer.
7152+ (tilegx_expand_epilogue): Restore stack pointer by adjusting it by
7153+ EH_RETURN_STACKADJ_RTX.
7154+ * config/tilepro/tilepro.c (tilepro_expand_prologue): Don't
7155+ generate REG_CFA_* notes for the stack pointer.
7156+ (tilepro_expand_epilogue): Restore stack pointer by adjusting it
7157+ by EH_RETURN_STACKADJ_RTX.
7158+
7159+2012-04-06 Matt Turner <mattst88@gmail.com>
7160+
7161+ * doc/install.texi: Correct typo "-mno-lsc" -> "-mno-llsc".
7162+
7163+2012-04-06 Eric Botcazou <ebotcazou@adacore.com>
7164+
7165+ * config/ia64/ia64.c (ia64_load_pair_ok): Return 0 if the second member
7166+ of the destination isn't also a FP_REGS register.
7167+
7168+2012-04-03 Richard Guenther <rguenther@suse.de>
7169+
7170+ Backport from mainline
7171+ 2012-03-02 Richard Guenther <rguenther@suse.de>
7172+
7173+ PR tree-optimization/52406
7174+ * tree-data-ref.h: Update documentation about DR_BASE_OBJECT.
7175+ (struct indices): Add unconstrained_base member.
7176+ (struct dr_alias): Remove unused vops member.
7177+ (DR_UNCONSTRAINED_BASE): New define.
7178+ * tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs
7179+ add indices to allow their disambiguation. Make DR_BASE_OBJECT
7180+ be an artificial access that covers the whole indexed object,
7181+ or mark it with DR_UNCONSTRAINED_BASE if we cannot do so. Canonicalize
7182+ plain decl base-objects to their MEM_REF variant.
7183+ (dr_may_alias_p): When the base-object of either data reference
7184+ has unknown size use only points-to information.
7185+ (compute_affine_dependence): Make dumps easier to read and
7186+ more verbose.
7187+ * tree-vect-data-ref.c (vector_alignment_reachable_p): Use
7188+ DR_REF when looking for packed references.
7189+ (vect_supportable_dr_alignment): Likewise.
7190+
7191+2012-04-03 Richard Guenther <rguenther@suse.de>
7192+
7193+ Backport from mainline
7194+ 2012-03-15 Richard Guenther <rguenther@suse.de>
7195+
7196+ PR middle-end/52580
7197+ * tree-data-ref.c (subscript_dependence_tester_1): Check
7198+ all dimensions for non-conflicting access functions.
7199+
7200+2012-04-03 Richard Guenther <rguenther@suse.de>
7201+
7202+ Backport from mainline
7203+ 2012-03-06 Richard Guenther <rguenther@suse.de>
7204+
7205+ PR middle-end/52493
7206+ * tree-ssa-alias.c (ptr_derefs_may_alias_p): Robustify.
7207+
7208+ 2012-03-23 Richard Guenther <rguenther@suse.de>
7209+
7210+ PR tree-optimization/52678
7211+ * tree-vectorizer.h (struct _stmt_vec_info): Add
7212+ loop_phi_evolution_part member.
7213+ (STMT_VINFO_LOOP_PHI_EVOLUTION_PART): New define.
7214+ * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Initialize
7215+ STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
7216+ * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
7217+ Use the cached evolution part and the PHI nodes value from
7218+ the loop preheader edge instead of re-analyzing the evolution.
7219+
7220+ 2012-03-26 Richard Guenther <rguenther@suse.de>
7221+
7222+ PR tree-optimization/52701
7223+ * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Always
7224+ compute and set the evolution part of PHI nodes.
7225+
7226+ 2012-03-30 Richard Guenther <rguenther@suse.de>
7227+
7228+ PR tree-optimization/52754
7229+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
7230+ propagate arbitrary addresses into really plain dereferences.
7231+
7232+2012-04-03 Jakub Jelinek <jakub@redhat.com>
7233+
7234+ PR tree-optimization/52835
7235+ * tree-data-ref.c (build_rdg): Return NULL if
7236+ compute_data_dependences_for_loop failed.
7237+
7238+2012-03-31 Eric Botcazou <ebotcazou@adacore.com>
7239+
7240+ * tree-cfg.c (call_can_make_abnormal_goto): New predicate.
7241+ (stmt_can_make_abnormal_goto): Use it.
7242+ (is_ctrl_altering_stmt): Likewise.
7243+
7244+2012-03-31 Martin Jambor <mjambor@suse.cz>
7245+
7246+ Backported from mainline
7247+ 2012-03-30 Martin Jambor <mjambor@suse.cz>
7248+
7249+ * tree-ssa-ccp.c (insert_clobbers_for_var): Do not assert that there
7250+ is a builtin_stack_save in a dominating BB.
7251+
7252+2012-03-29 Uros Bizjak <ubizjak@gmail.com>
7253+
7254+ * config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
7255+ crossing 128bit lane boundary.
7256+
7257+2012-03-29 Uros Bizjak <ubizjak@gmail.com>
7258+
7259+ Backported from mainline
7260+ 2012-03-27 Uros Bizjak <ubizjak@gmail.com>
7261+
7262+ PR target/52698
7263+ * config/i386/i386-protos.h (ix86_legitimize_reload_address):
7264+ New prototype.
7265+ * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define.
7266+ * config/i386/i386.c: Include reload.h.
7267+ (ix86_legitimize_reload_address): New function.
7268+
7269+2012-03-28 Martin Jambor <mjambor@suse.cz>
7270+
7271+ Backported from mainline
7272+ 2012-03-27 Martin Jambor <mjambor@suse.cz>
7273+
7274+ PR middle-end/52693
7275+ * tree-sra.c (sra_modify_assign): Do not call
7276+ load_assign_lhs_subreplacements when working with an unscalarizable
7277+ region.
7278+
7279+2012-03-28 Jakub Jelinek <jakub@redhat.com>
7280+
7281+ PR middle-end/52691
7282+ * tree-ssa-ccp.c (optimize_stdarg_builtin): Optimize
7283+ __builtin_va_start to __builtin_next_arg if the latter is
7284+ builtin_decl_explicit_p rather than when it is not.
7285+
7286+ PR middle-end/52750
7287+ * tree-vect-generic.c (vector_element): Perform multiplication
7288+ for pos in bitsizetype type instead of idx type.
7289+
7290+2012-03-28 Georg-Johann Lay <avr@gjlay.de>
7291+
7292+ Backport from 2012-03-28 mainline r185910.
7293+
7294+ PR target/52692
7295+ * config/avr/avr.c (TARGET_BUILTIN_DECL): New define.
7296+ (avr_builtin_decl): New static function.
7297+ (struct avr_builtin_description, avr_bdesc): Move up.
7298+ Add GTY marker. Add field fndecl. Remove redundant field id.
7299+ (avr_init_builtins): Initialize avr_bdesc[ID].fndecl.
7300+ (avr_expand_builtin): Code cleanup because .id is removed.
7301+
7302+2012-03-28 Aurelien Buhrig <aurelien.buhrig.gcc@gmail.com>
7303+
7304+ PR middle-end/51893
7305+ * expmed.c (store_bit_field_1): Fix wordnum value for big-endian
7306+ targets.
7307+
7308+2012-03-28 Georg-Johann Lay <avr@gjlay.de>
7309+
7310+ Backport from 2012-03-28 mainline r185907.
7311+
7312+ PR target/52737
7313+ * config.gcc (tm_file): Remove avr/multilib.h.
7314+
7315+ * doc/invoke.texi (AVR Options): Adjust
7316+ documentation of -mtiny-stack.
7317+
7318+ * config/avr/genmultilib.awk: Remove code to generate multilib.h.
7319+ (BEGIN): Use -msp8 as multilib option instead of -mtiny-stack.
7320+ * config/avr/t-avr: Remove generation of multilib.h.
7321+ * config/avr/t-multilib: Regenerate.
7322+ * config/avr/multilib.h: Remove.
7323+ * config/avr/avr.opt (-msp8): New option.
7324+ (avr_sp8): New variable.
7325+ * config/avr/driver-avr.c (avr_device_to_sp8): New function.
7326+ * config/avr/avr.h (AVR_HAVE_SPH): New define.
7327+ (AVR_HAVE_8BIT_SP): Also set by avr_sp8 i.e. -msp8.
7328+ (avr_device_to_sp8): New prototype.
7329+ (EXTRA_SPEC_FUNCTIONS): Add { "device_to_sp8", avr_device_to_sp8 }
7330+ (DRIVER_SELF_SPECS): New define.
7331+ * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
7332+ __AVR_SP8__, __AVR_HAVE_SPH__.
7333+ * config/avr/avr.c (output_movhi): Use AVR_HAVE_SPH instead of
7334+ AVR_HAVE_8BIT_SP to decide if SP_H is present.
7335+ (avr_file_start): Ditto.
7336+
7337+2012-03-28 Jakub Jelinek <jakub@redhat.com>
7338+
7339+ PR target/52736
7340+ * config/i386/sse.md (sse2_loadlpd splitter): Use offset 0
7341+ instead of 8 in adjust_address.
7342+
7343+2012-03-27 Eric Botcazou <ebotcazou@adacore.com>
7344+
7345+ * expmed.c (store_bit_field): Assert that BITREGION_START is a multiple
7346+ of a unit before computing the offset in units.
7347+
7348+2012-03-27 Richard Guenther <rguenther@suse.de>
7349+
7350+ PR middle-end/52720
7351+ * fold-const.c (try_move_mult_to_index): Handle &x.array more
7352+ explicitely.
7353+
7354+2012-03-24 Eric Botcazou <ebotcazou@adacore.com>
7355+
7356+ PR target/52610
7357+ * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=leon.
7358+
7359+2012-03-24 Steven Bosscher <steven@gcc.gnu.org>
7360+
7361+ PR middle-end/52640
7362+ * varasm.c: Include pointer-set.h.
7363+ (pending_assemble_externals_set): New pointer set.
7364+ (process_pending_assemble_externals): Destroy the pointer set.
7365+ (assemble_external): See if decl is in pending_assemble_externals_set,
7366+ and add it to pending_assemble_externals if necessary.
7367+ (init_varasm_once): Allocate pending_assemble_externals_set.
7368+
7369+2012-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
7370+
7371+ Backported from mainline
7372+ 2012-03-06 Michael Meissner <meissner@linux.vnet.ibm.com>
7373+
7374+ PR target/50310
7375+ * config/rs6000/vector.md (vector_uneq<mode>): Add support for
7376+ UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons.
7377+ (vector_ltgt<mode>): Likewise.
7378+ (vector_ordered<mode>): Likewise.
7379+ (vector_unordered<mode>): Likewise.
7380+ * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
7381+
7382+2012-03-23 Joern Rennecke <joern.rennecke@embecosm.com>
7383+
7384+ * config/epiphany/epiphany.c (epiphany_function_value_regno_p):
7385+ Make static.
7386+
7387+2012-03-22 Kaz Kojima <kkojima@gcc.gnu.org>
7388+
7389+ Backported from mainline
7390+ 2012-03-02 Kaz Kojima <kkojima@gcc.gnu.org>
7391+
7392+ PR target/48596
7393+ PR target/48806
7394+ * config/sh/sh.c (sh_register_move_cost): Increase cost between
7395+ GENERAL_REGS and FP_REGS for SImode.
7396+
7397+2012-03-22 Jakub Jelinek <jakub@redhat.com>
7398+
7399+ PR middle-end/52547
7400+ * tree-nested.c (convert_tramp_reference_stmt): Call declare_vars
7401+ on any new_local_var_chain vars declared during recursing on
7402+ GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK body.
7403+
7404+2012-03-22 Georg-Johann Lay <avr@gjlay.de>
7405+
7406+ Backport from 2012-03-22 mainline r185692.
7407+
7408+ PR target/52496
7409+ * config/avr/avr.md (unspec): Remove UNSPEC_MEMORY_BARRIER.
7410+ (unspecv): Add UNSPECV_MEMORY_BARRIER.
7411+ (cli_sei): Use unspec_volatile instead of unspec for memory barrier.
7412+ (delay_cycles_1, delay_cycles_2): Ditto.
7413+ (delay_cycles_3, delay_cycles_4): Ditto.
7414+ (nopv, *nopv): Ditto.
7415+ (sleep, *sleep): Ditto.
7416+ (wdr, *wdr): Ditto.
7417+
7418+ Backport from 2012-03-21 mainline r185605.
7419+
7420+ PR rtl-optimization/52543
7421+ PR target/52461
7422+ * config/avr/avr-protos.h (avr_load_lpm): New prototype.
7423+ * config/avr/avr.c (avr_mode_dependent_address_p): New function.
7424+ (TARGET_MODE_DEPENDENT_ADDRESS_P): New define.
7425+ (avr_load_libgcc_p): Restrict to __flash loads.
7426+ (avr_out_lpm): Only handle 1-byte loads from __flash.
7427+ (avr_load_lpm): New function.
7428+ (avr_find_unused_d_reg): Remove.
7429+ (avr_out_lpm_no_lpmx): Remove.
7430+ (adjust_insn_length): Handle ADJUST_LEN_LOAD_LPM.
7431+ * config/avr/avr.md (unspec): Add UNSPEC_LPM.
7432+ (load_<mode>_libgcc): Use UNSPEC_LPM instead of MEM.
7433+ (load_<mode>, load_<mode>_clobber): New insns.
7434+ (mov<mode>): For multi-byte move from non-generic
7435+ 16-bit address spaces: Expand to load_<mode> resp.
7436+ load_<mode>_clobber.
7437+ (load<mode>_libgcc): Remove expander.
7438+ (split-lpmx): Remove split.
7439+
7440+ Backport from 2012-03-13 mainline r185329.
7441+
7442+ PR target/52488
7443+ * config/avr/avr.c (avr_prologue_setup_frame): Cut down stack
7444+ offset (size) to a value the insns can deal with.
7445+ (expand_epilogue): Ditto.
7446+
7447+ Backport from 2012-03-12 mainline r185256.
7448+
7449+ PR target/52499
7450+ * config/avr/avr.c (avr_mode_code_base_reg_class): Change return
7451+ type from reg_class_t to enum reg_class.
7452+ * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
7453+
7454+ Backport from 2012-03-12 mainline r185253.
7455+
7456+ PR target/52148
7457+ * config/avr/avr.c (avr_out_movmem): Fix typo in output template
7458+ for the case ADDR_SPACE_FLASH and AVR_HAVE_LPMX introduced in
7459+ r184615 from 2012-02-28.
7460+
7461+ Backport from 2012-03-08 mainline r185105.
7462+
7463+ * config/avr/avr.md (*addhi3, addhi3_clobber): Add "w" alternative
7464+ for constants in [-63,63].
7465+
7466+ Backport from 2012-03-08 mainline r185100.
7467+
7468+ PR target/52496
7469+ * config/avr/avr.c (avr_mem_clobber): New static function.
7470+ (avr_expand_delay_cycles): Add memory clobber operand to
7471+ delay_cycles_1, delay_cycles_2, delay_cycles_3, delay_cycles_4.
7472+ * config/avr/avr.md (unspec): Add UNSPEC_MEMORY_BARRIER.
7473+ (enable_interrupt, disable_interrupt): New expander.
7474+ (nopv, sleep, wdr): New expanders.
7475+ (delay_cycles_1): Add memory clobber.
7476+ (delay_cycles_2): Add memory clobber.
7477+ (delay_cycles_3): Add memory clobber.
7478+ (delay_cycles_4): Add memory clobber.
7479+ (cli_sei): New insn from former "enable_interrupt",
7480+ "disable_interrupt" with memory clobber.
7481+ (*wdt): New insn from former "wdt" with memory clobber.
7482+ (*nopv): Similar, but for "nopv".
7483+ (*sleep): Similar, but for "sleep".
7484+
7485+ Backport from 2012-03-07 mainline r185043.
7486+
7487+ PR target/52484
7488+ * config/avr/avr.md (xload<mode>_A): Add R22... to register footprint.
7489+
7490+ Backport from 2012-03-07 mainline r185032.
7491+
7492+ PR target/52506
7493+ * gcc/config/avr/avr.c (expand_epilogue): Fix order of restoration
7494+ to: RAMPZ, RAMPY, RAMPX, RAMPD.
7495+ (expand_prologue): Only clear RAMPZ if it has effect on RAM-read.
7496+
7497+ Backport from 2012-03-07 mainline r185031.
7498+
7499+ PR target/52505
7500+ * config/avr/avr.c (avr_out_xload): Don't read unintentionally
7501+ from RAM.
7502+ * config/avr/avr.md (xload_8): Adjust insn length.
7503+
7504+ Backport from 2012-03-07 mainline r185030.
7505+
7506+ PR target/52461
7507+ * gcc/config/avr/avr.c (avr_out_lpm): Clear RAMPZ after usage
7508+ if RAMPZ affects reading from RAM.
7509+
7510+ Backport from 2012-03-05 mainline r184919.
7511+
7512+ * config/avr/avr.md (*umaddqihi4.2): New insn-and-split.
7513+
7514+2012-03-22 Georg-Johann Lay <avr@gjlay.de>
7515+
7516+ Backport from mainline r185259.
7517+
7518+ PR other/52545
7519+ * output.h (SECTION_EXCLUDE, SECTION_MACH_DEP): Don't use
7520+ SECTION_MACH_DEP reserved bits for SECTION_EXCLUDE.
7521+
7522+2012-03-22 Jakub Jelinek <jakub@redhat.com>
7523+
7524+ Backported from mainline
7525+ 2012-03-13 Jakub Jelinek <jakub@redhat.com>
7526+
7527+ PR c/52577
7528+ * c-parser.c (c_parser_postfix_expression)
7529+ <case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values.
7530+
7531+ * config/i386/smmintrin.h: Avoid /* within a comment.
7532+ * config/i386/nmmintrin.h: Likewise.
7533+
7534+2012-03-22 Richard Guenther <rguenther@suse.de>
7535+
7536+ * BASE-VER: Set to 4.7.1.
7537+ * DEV-PHASE: Set to prerelease.
7538+
7539 2012-03-22 Release Manager
7540
7541 * GCC 4.7.0 released.
7542@@ -74,8 +879,8 @@
7543 2012-03-07 Ralf Corsépius <ralf.corsepius@rtems.org>
7544
7545 PR target/51417
7546- * Makefile.in: Let install-gcc-ar depend on installdirs, gcc-ar$(exeext),
7547- gcc-nm$(exeext), gcc-ranlib$(exeext).
7548+ * Makefile.in: Let install-gcc-ar depend on installdirs,
7549+ gcc-ar$(exeext), gcc-nm$(exeext), gcc-ranlib$(exeext).
7550 Don't double canonicalize if cross-compiling.
7551
7552 2012-03-06 Aldy Hernandez <aldyh@redhat.com>
7553@@ -234,7 +1039,7 @@
7554 2012-03-01 Georg-Johann Lay <avr@gjlay.de>
7555
7556 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Restore built-in
7557- defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__
7558+ defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__
7559 unintentionally removed in r184616.
7560
7561 2012-03-01 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
7562@@ -390,7 +1195,7 @@
7563
7564 * config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part
7565 of initializer to changes from r184614.
7566-
7567+
7568 2012-02-28 Richard Guenther <rguenther@suse.de>
7569
7570 PR tree-optimization/52395
7571Index: gcc/tree-vect-loop-manip.c
7572===================================================================
7573--- gcc/tree-vect-loop-manip.c (.../tags/gcc_4_7_0_release) (wersja 187293)
7574+++ gcc/tree-vect-loop-manip.c (.../branches/gcc-4_7-branch) (wersja 187293)
7575@@ -1797,13 +1797,12 @@
7576 !gsi_end_p (gsi) && !gsi_end_p (gsi1);
7577 gsi_next (&gsi), gsi_next (&gsi1))
7578 {
7579- tree access_fn = NULL;
7580- tree evolution_part;
7581 tree init_expr;
7582 tree step_expr, off;
7583 tree type;
7584 tree var, ni, ni_name;
7585 gimple_stmt_iterator last_gsi;
7586+ stmt_vec_info stmt_info;
7587
7588 phi = gsi_stmt (gsi);
7589 phi1 = gsi_stmt (gsi1);
7590@@ -1822,45 +1821,34 @@
7591 }
7592
7593 /* Skip reduction phis. */
7594- if (STMT_VINFO_DEF_TYPE (vinfo_for_stmt (phi)) == vect_reduction_def)
7595+ stmt_info = vinfo_for_stmt (phi);
7596+ if (STMT_VINFO_DEF_TYPE (stmt_info) == vect_reduction_def)
7597 {
7598 if (vect_print_dump_info (REPORT_DETAILS))
7599 fprintf (vect_dump, "reduc phi. skip.");
7600 continue;
7601 }
7602
7603- access_fn = analyze_scalar_evolution (loop, PHI_RESULT (phi));
7604- gcc_assert (access_fn);
7605- /* We can end up with an access_fn like
7606- (short int) {(short unsigned int) i_49, +, 1}_1
7607- for further analysis we need to strip the outer cast but we
7608- need to preserve the original type. */
7609- type = TREE_TYPE (access_fn);
7610- STRIP_NOPS (access_fn);
7611- evolution_part =
7612- unshare_expr (evolution_part_in_loop_num (access_fn, loop->num));
7613- gcc_assert (evolution_part != NULL_TREE);
7614+ type = TREE_TYPE (gimple_phi_result (phi));
7615+ step_expr = STMT_VINFO_LOOP_PHI_EVOLUTION_PART (stmt_info);
7616+ step_expr = unshare_expr (step_expr);
7617
7618 /* FORNOW: We do not support IVs whose evolution function is a polynomial
7619 of degree >= 2 or exponential. */
7620- gcc_assert (!tree_is_chrec (evolution_part));
7621+ gcc_assert (!tree_is_chrec (step_expr));
7622
7623- step_expr = evolution_part;
7624- init_expr = unshare_expr (initial_condition_in_loop_num (access_fn,
7625- loop->num));
7626- init_expr = fold_convert (type, init_expr);
7627+ init_expr = PHI_ARG_DEF_FROM_EDGE (phi, loop_preheader_edge (loop));
7628
7629 off = fold_build2 (MULT_EXPR, TREE_TYPE (step_expr),
7630 fold_convert (TREE_TYPE (step_expr), niters),
7631 step_expr);
7632- if (POINTER_TYPE_P (TREE_TYPE (init_expr)))
7633+ if (POINTER_TYPE_P (type))
7634 ni = fold_build_pointer_plus (init_expr, off);
7635 else
7636- ni = fold_build2 (PLUS_EXPR, TREE_TYPE (init_expr),
7637- init_expr,
7638- fold_convert (TREE_TYPE (init_expr), off));
7639+ ni = fold_build2 (PLUS_EXPR, type,
7640+ init_expr, fold_convert (type, off));
7641
7642- var = create_tmp_var (TREE_TYPE (init_expr), "tmp");
7643+ var = create_tmp_var (type, "tmp");
7644 add_referenced_var (var);
7645
7646 last_gsi = gsi_last_bb (exit_bb);
7647Index: gcc/testsuite/gcc.target/arm/pr52633.c
7648===================================================================
7649--- gcc/testsuite/gcc.target/arm/pr52633.c (.../tags/gcc_4_7_0_release) (wersja 0)
7650+++ gcc/testsuite/gcc.target/arm/pr52633.c (.../branches/gcc-4_7-branch) (wersja 187293)
7651@@ -0,0 +1,13 @@
7652+/* PR tree-optimization/52633 */
7653+/* { dg-do compile } */
7654+/* { dg-require-effective-target arm_neon_ok } */
7655+/* { dg-options "-march=armv7-a -mfloat-abi=softfp -mfpu=neon -O -ftree-vectorize" } */
7656+
7657+void
7658+test (unsigned short *x, signed char *y)
7659+{
7660+ int i;
7661+ for (i = 0; i < 32; i++)
7662+ x[i] = (short) (y[i] << 5);
7663+}
7664+
7665Index: gcc/testsuite/gcc.target/arm/pr53187.c
7666===================================================================
7667--- gcc/testsuite/gcc.target/arm/pr53187.c (.../tags/gcc_4_7_0_release) (wersja 0)
7668+++ gcc/testsuite/gcc.target/arm/pr53187.c (.../branches/gcc-4_7-branch) (wersja 187293)
7669@@ -0,0 +1,13 @@
7670+/* PR target/53187 */
7671+/* { dg-do compile } */
7672+/* { dg-options "-march=armv7-a -mfloat-abi=hard -O2" } */
7673+
7674+void bar (int);
7675+
7676+void
7677+foo (int x, double y, double z)
7678+{
7679+ _Bool t = z >= y;
7680+ if (!t || x)
7681+ bar (t ? 1 : 16);
7682+}
7683Index: gcc/testsuite/gcc.target/powerpc/pr52775.c
7684===================================================================
7685--- gcc/testsuite/gcc.target/powerpc/pr52775.c (.../tags/gcc_4_7_0_release) (wersja 0)
7686+++ gcc/testsuite/gcc.target/powerpc/pr52775.c (.../branches/gcc-4_7-branch) (wersja 187293)
7687@@ -0,0 +1,16 @@
7688+/* { dg-do compile { target { powerpc*-*-* && ilp32 } } } */
7689+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
7690+/* { dg-options "-O1 -mcpu=power4" } */
7691+/* { dg-final { scan-assembler-times "fcfid" 2 } } */
7692+
7693+double
7694+int_to_double (int *p)
7695+{
7696+ return (double)*p;
7697+}
7698+
7699+double
7700+long_long_to_double (long long *p)
7701+{
7702+ return (double)*p;
7703+}
7704Index: gcc/testsuite/gcc.target/powerpc/pr53199.c
7705===================================================================
7706--- gcc/testsuite/gcc.target/powerpc/pr53199.c (.../tags/gcc_4_7_0_release) (wersja 0)
7707+++ gcc/testsuite/gcc.target/powerpc/pr53199.c (.../branches/gcc-4_7-branch) (wersja 187293)
7708@@ -0,0 +1,50 @@
7709+/* { dg-do compile { target { powerpc*-*-* } } } */
7710+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
7711+/* { dg-options "-O2 -mcpu=power6 -mavoid-indexed-addresses" } */
7712+/* { dg-final { scan-assembler-times "lwbrx" 6 } } */
7713+/* { dg-final { scan-assembler-times "stwbrx" 6 } } */
7714+
7715+/* PR 51399: bswap gets an error if -mavoid-indexed-addresses was used in
7716+ creating the two lwbrx instructions. */
7717+
7718+long long
7719+load64_reverse_1 (long long *p)
7720+{
7721+ return __builtin_bswap64 (*p);
7722+}
7723+
7724+long long
7725+load64_reverse_2 (long long *p)
7726+{
7727+ return __builtin_bswap64 (p[1]);
7728+}
7729+
7730+long long
7731+load64_reverse_3 (long long *p, int i)
7732+{
7733+ return __builtin_bswap64 (p[i]);
7734+}
7735+
7736+void
7737+store64_reverse_1 (long long *p, long long x)
7738+{
7739+ *p = __builtin_bswap64 (x);
7740+}
7741+
7742+void
7743+store64_reverse_2 (long long *p, long long x)
7744+{
7745+ p[1] = __builtin_bswap64 (x);
7746+}
7747+
7748+void
7749+store64_reverse_3 (long long *p, long long x, int i)
7750+{
7751+ p[i] = __builtin_bswap64 (x);
7752+}
7753+
7754+long long
7755+reg_reverse (long long x)
7756+{
7757+ return __builtin_bswap64 (x);
7758+}
7759Index: gcc/testsuite/gcc.target/avr/torture/addr-space-1-0.c
7760===================================================================
7761--- gcc/testsuite/gcc.target/avr/torture/addr-space-1-0.c (.../tags/gcc_4_7_0_release) (wersja 0)
7762+++ gcc/testsuite/gcc.target/avr/torture/addr-space-1-0.c (.../branches/gcc-4_7-branch) (wersja 187293)
7763@@ -0,0 +1,6 @@
7764+/* { dg-options "-std=gnu99" } */
7765+/* { dg-do run } */
7766+
7767+#define __as __flash
7768+
7769+#include "addr-space-1.h"
7770Index: gcc/testsuite/gcc.target/avr/torture/addr-space-1-1.c
7771===================================================================
7772--- gcc/testsuite/gcc.target/avr/torture/addr-space-1-1.c (.../tags/gcc_4_7_0_release) (wersja 0)
7773+++ gcc/testsuite/gcc.target/avr/torture/addr-space-1-1.c (.../branches/gcc-4_7-branch) (wersja 187293)
7774@@ -0,0 +1,6 @@
7775+/* { dg-options "-std=gnu99 -Tavr51-flash1.x" } */
7776+/* { dg-do run } */
7777+
7778+#define __as __flash1
7779+
7780+#include "addr-space-1.h"
7781Index: gcc/testsuite/gcc.target/avr/torture/addr-space-2-0.c
7782===================================================================
7783--- gcc/testsuite/gcc.target/avr/torture/addr-space-2-0.c (.../tags/gcc_4_7_0_release) (wersja 0)
7784+++ gcc/testsuite/gcc.target/avr/torture/addr-space-2-0.c (.../branches/gcc-4_7-branch) (wersja 187293)
7785@@ -0,0 +1,6 @@
7786+/* { dg-options "-std=gnu99" } */
7787+/* { dg-do run } */
7788+
7789+#define __as __flash
7790+
7791+#include "addr-space-2.h"
7792Index: gcc/testsuite/gcc.target/avr/torture/addr-space-2-1.c
7793===================================================================
7794--- gcc/testsuite/gcc.target/avr/torture/addr-space-2-1.c (.../tags/gcc_4_7_0_release) (wersja 0)
7795+++ gcc/testsuite/gcc.target/avr/torture/addr-space-2-1.c (.../branches/gcc-4_7-branch) (wersja 187293)
7796@@ -0,0 +1,6 @@
7797+/* { dg-options "-std=gnu99 -Tavr51-flash1.x" } */
7798+/* { dg-do run } */
7799+
7800+#define __as __flash1
7801+
7802+#include "addr-space-2.h"
7803Index: gcc/testsuite/gcc.target/avr/torture/avr-torture.exp
7804===================================================================
7805--- gcc/testsuite/gcc.target/avr/torture/avr-torture.exp (.../tags/gcc_4_7_0_release) (wersja 187293)
7806+++ gcc/testsuite/gcc.target/avr/torture/avr-torture.exp (.../branches/gcc-4_7-branch) (wersja 187293)
7807@@ -38,6 +38,7 @@
7808 { -O0 } \
7809 { -O1 } \
7810 { -O2 } \
7811+ { -Os -flto } \
7812 { -O2 -mcall-prologues } \
7813 { -O2 -fdata-sections } \
7814 { -O2 -fmerge-all-constants } \
7815Index: gcc/testsuite/gcc.target/avr/torture/addr-space-1-x.c
7816===================================================================
7817--- gcc/testsuite/gcc.target/avr/torture/addr-space-1-x.c (.../tags/gcc_4_7_0_release) (wersja 0)
7818+++ gcc/testsuite/gcc.target/avr/torture/addr-space-1-x.c (.../branches/gcc-4_7-branch) (wersja 187293)
7819@@ -0,0 +1,6 @@
7820+/* { dg-options "-std=gnu99" } */
7821+/* { dg-do run } */
7822+
7823+#define __as __memx
7824+
7825+#include "addr-space-1.h"
7826Index: gcc/testsuite/gcc.target/avr/torture/addr-space-1.h
7827===================================================================
7828--- gcc/testsuite/gcc.target/avr/torture/addr-space-1.h (.../tags/gcc_4_7_0_release) (wersja 0)
7829+++ gcc/testsuite/gcc.target/avr/torture/addr-space-1.h (.../branches/gcc-4_7-branch) (wersja 187293)
7830@@ -0,0 +1,83 @@
7831+#include <stdlib.h>
7832+#include <string.h>
7833+
7834+typedef struct
7835+{
7836+ char i1;
7837+ short i2;
7838+ long i4;
7839+ long long i8;
7840+ char str[2][10];
7841+} a_t;
7842+
7843+const __as a_t A =
7844+ {
7845+ 12, 345, 678910, 1234567891011ll,
7846+ {
7847+ "xxx..xxx",
7848+ "yyy..yyy"
7849+ }
7850+ };
7851+
7852+const __as volatile a_t V =
7853+ {
7854+ 12+1, 345+1, 678910+1, 1234567891011ll+1,
7855+ {
7856+ "XXX..XXX",
7857+ "YYY..YYY"
7858+ }
7859+ };
7860+
7861+a_t A2;
7862+volatile a_t V2;
7863+
7864+int main (void)
7865+{
7866+ if (A.i1 != 12
7867+ || A.i1 != V.i1 -1)
7868+ abort();
7869+
7870+ if (A.i2 != 345
7871+ || A.i2 != V.i2 -1)
7872+ abort();
7873+
7874+ if (A.i4 != 678910
7875+ || A.i4 != V.i4 -1)
7876+ abort();
7877+
7878+ if (A.i8 != 1234567891011ll
7879+ || A.i8 != V.i8 -1)
7880+ abort();
7881+
7882+ A2 = A;
7883+ V2 = V;
7884+
7885+ if (A2.i1 != 12
7886+ || A2.i1 != V2.i1 -1)
7887+ abort();
7888+
7889+ if (A2.i2 != 345
7890+ || A2.i2 != V2.i2 -1)
7891+ abort();
7892+
7893+ if (A2.i4 != 678910
7894+ || A2.i4 != V2.i4 -1)
7895+ abort();
7896+
7897+ if (A2.i8 != 1234567891011ll
7898+ || A2.i8 != V2.i8 -1)
7899+ abort();
7900+
7901+ if (strcmp (A2.str[0], "xxx..xxx"))
7902+ abort();
7903+ if (strcmp (A2.str[1], "yyy..yyy"))
7904+ abort();
7905+
7906+ if (strcmp ((const char*) V2.str[0], "XXX..XXX"))
7907+ abort();
7908+ if (strcmp ((const char*) V2.str[1], "YYY..YYY"))
7909+ abort();
7910+
7911+ exit (0);
7912+ return 0;
7913+}
7914Index: gcc/testsuite/gcc.target/avr/torture/addr-space-2-x.c
7915===================================================================
7916--- gcc/testsuite/gcc.target/avr/torture/addr-space-2-x.c (.../tags/gcc_4_7_0_release) (wersja 0)
7917+++ gcc/testsuite/gcc.target/avr/torture/addr-space-2-x.c (.../branches/gcc-4_7-branch) (wersja 187293)
7918@@ -0,0 +1,9 @@
7919+/* { dg-options "-std=gnu99 -Wa,--no-warn" } */
7920+/* { dg-do run } */
7921+
7922+/* --no-warn because: "assembling 24-bit address needs binutils extension"
7923+ see binutils PR13503. */
7924+
7925+#define __as __memx
7926+
7927+#include "addr-space-2.h"
7928Index: gcc/testsuite/gcc.target/avr/torture/addr-space-2.h
7929===================================================================
7930--- gcc/testsuite/gcc.target/avr/torture/addr-space-2.h (.../tags/gcc_4_7_0_release) (wersja 0)
7931+++ gcc/testsuite/gcc.target/avr/torture/addr-space-2.h (.../branches/gcc-4_7-branch) (wersja 187293)
7932@@ -0,0 +1,106 @@
7933+extern void exit (int);
7934+extern void abort (void);
7935+
7936+typedef struct T
7937+{
7938+ char val;
7939+ const __as struct T *l, *r;
7940+} tree;
7941+
7942+/*
7943+ abcd
7944+ / \
7945+ ab cd
7946+ / \ / \
7947+ a b c d
7948+*/
7949+
7950+const __as tree a = { 'a', 0, 0 };
7951+const __as tree b = { 'b', 0, 0 };
7952+const __as tree c = { 'c', 0, 0 };
7953+const __as tree d = { 'd', 0, 0 };
7954+
7955+const __as tree ab = { 'A', &a, &b };
7956+const __as tree cd = { 'C', &c, &d };
7957+
7958+const __as tree abcd = { '*', &ab, &cd };
7959+
7960+static void
7961+test1 (void)
7962+{
7963+ if (abcd.val != '*')
7964+ abort();
7965+
7966+ if (abcd.l->val != 'A')
7967+ abort();
7968+ if (abcd.r->val != 'C')
7969+ abort();
7970+
7971+ if (abcd.l->l->val != 'a')
7972+ abort();
7973+ if (abcd.l->r->val != 'b')
7974+ abort();
7975+ if (abcd.r->l->val != 'c')
7976+ abort();
7977+ if (abcd.r->r->val != 'd')
7978+ abort();
7979+}
7980+
7981+static void
7982+test2 (const __as tree *t)
7983+{
7984+ if (t->val != '*')
7985+ abort();
7986+
7987+ if (t->l->val != 'A')
7988+ abort();
7989+ if (t->r->val != 'C')
7990+ abort();
7991+
7992+ if (t->l->l->val != 'a')
7993+ abort();
7994+ if (t->l->r->val != 'b')
7995+ abort();
7996+ if (t->r->l->val != 'c')
7997+ abort();
7998+ if (t->r->r->val != 'd')
7999+ abort();
8000+}
8001+
8002+static void
8003+test3 (const __as tree *pt)
8004+{
8005+ tree t = *pt;
8006+
8007+ if (t.val != '*')
8008+ abort();
8009+
8010+ if (t.l->val != 'A')
8011+ abort();
8012+ if (t.r->val != 'C')
8013+ abort();
8014+
8015+ if (t.l->l->val != 'a')
8016+ abort();
8017+ if (t.l->r->val != 'b')
8018+ abort();
8019+ if (t.r->l->val != 'c')
8020+ abort();
8021+ if (t.r->r->val != 'd')
8022+ abort();
8023+}
8024+
8025+int main (void)
8026+{
8027+ const __as tree *t = &abcd;
8028+ test1();
8029+ test2 (&abcd);
8030+ test3 (&abcd);
8031+
8032+ __asm ("" : "+r" (t));
8033+ test2 (t);
8034+ test3 (t);
8035+
8036+ exit (0);
8037+ return 0;
8038+}
8039Index: gcc/testsuite/gcc.target/avr/torture/addr-space-1-g.c
8040===================================================================
8041--- gcc/testsuite/gcc.target/avr/torture/addr-space-1-g.c (.../tags/gcc_4_7_0_release) (wersja 0)
8042+++ gcc/testsuite/gcc.target/avr/torture/addr-space-1-g.c (.../branches/gcc-4_7-branch) (wersja 187293)
8043@@ -0,0 +1,6 @@
8044+/* { dg-options "-std=gnu99" } */
8045+/* { dg-do run } */
8046+
8047+#define __as
8048+
8049+#include "addr-space-1.h"
8050Index: gcc/testsuite/gcc.target/avr/torture/addr-space-2-g.c
8051===================================================================
8052--- gcc/testsuite/gcc.target/avr/torture/addr-space-2-g.c (.../tags/gcc_4_7_0_release) (wersja 0)
8053+++ gcc/testsuite/gcc.target/avr/torture/addr-space-2-g.c (.../branches/gcc-4_7-branch) (wersja 187293)
8054@@ -0,0 +1,6 @@
8055+/* { dg-options "-std=gnu99" } */
8056+/* { dg-do run } */
8057+
8058+#define __as
8059+
8060+#include "addr-space-2.h"
8061Index: gcc/testsuite/gcc.target/avr/torture/builtins-2.c
8062===================================================================
8063--- gcc/testsuite/gcc.target/avr/torture/builtins-2.c (.../tags/gcc_4_7_0_release) (wersja 0)
8064+++ gcc/testsuite/gcc.target/avr/torture/builtins-2.c (.../branches/gcc-4_7-branch) (wersja 187293)
8065@@ -0,0 +1,46 @@
8066+/* { dg-options "-std=gnu99 -Tavr51-flash1.x" } */
8067+/* { dg-do run } */
8068+
8069+#include <stdlib.h>
8070+#include "../progmem.h"
8071+
8072+int volatile a;
8073+
8074+void f1 (void)
8075+{
8076+ __builtin_avr_sei ();
8077+ __builtin_avr_cli ();
8078+ __builtin_avr_wdr ();
8079+ __builtin_avr_sleep ();
8080+ __builtin_avr_nop ();
8081+ a = __builtin_avr_swap (a);
8082+ a = __builtin_avr_fmul (1,a);
8083+ a = __builtin_avr_fmuls (1,a);
8084+ a = __builtin_avr_fmulsu (1,a);
8085+ a = __builtin_avr_insert_bits (0x1f2f5364, a, a);
8086+}
8087+
8088+const __flash char c0 = 1;
8089+const __flash1 char c1 = 1;
8090+
8091+int main (void)
8092+{
8093+ const __memx void *p;
8094+
8095+ f1();
8096+ __builtin_avr_delay_cycles (1000);
8097+
8098+ p = &c0;
8099+ if (__builtin_avr_flash_segment (p) != 0)
8100+ abort();
8101+
8102+ p = &c1;
8103+ if (__builtin_avr_flash_segment (p) != 1)
8104+ abort();
8105+
8106+ if (__builtin_avr_flash_segment ("p") != -1)
8107+ abort();
8108+
8109+ exit (0);
8110+ return 0;
8111+}
8112Index: gcc/testsuite/gcc.target/avr/progmem.h
8113===================================================================
8114--- gcc/testsuite/gcc.target/avr/progmem.h (.../tags/gcc_4_7_0_release) (wersja 187293)
8115+++ gcc/testsuite/gcc.target/avr/progmem.h (.../branches/gcc-4_7-branch) (wersja 187293)
8116@@ -5,6 +5,7 @@
8117 static const char __c[] PROGMEM = (s); \
8118 &__c[0];}))
8119
8120+#ifdef __AVR_HAVE_LPMX__
8121 #define pgm_read_char(addr) \
8122 (__extension__({ \
8123 unsigned int __addr16 = (unsigned int)(addr); \
8124@@ -12,3 +13,13 @@
8125 __asm__ ("lpm %0, %a1" \
8126 : "=r" (__result) : "z" (__addr16)); \
8127 __result; }))
8128+#else
8129+#define pgm_read_char(addr) \
8130+ (__extension__({ \
8131+ unsigned int __addr16 = (unsigned int)(addr); \
8132+ char __result; \
8133+ __asm__ ("lpm" "\n\t" \
8134+ "mov %0, r0" \
8135+ : "=r" (__result) : "z" (__addr16)); \
8136+ __result; }))
8137+#endif
8138Index: gcc/testsuite/gcc.target/i386/avx2-vpermps-1.c
8139===================================================================
8140--- gcc/testsuite/gcc.target/i386/avx2-vpermps-1.c (.../tags/gcc_4_7_0_release) (wersja 187293)
8141+++ gcc/testsuite/gcc.target/i386/avx2-vpermps-1.c (.../branches/gcc-4_7-branch) (wersja 187293)
8142@@ -5,9 +5,10 @@
8143 #include <immintrin.h>
8144
8145 __m256 x;
8146+__m256i y;
8147
8148 void extern
8149 avx2_test (void)
8150 {
8151- x = _mm256_permutevar8x32_ps (x, x);
8152+ x = _mm256_permutevar8x32_ps (x, y);
8153 }
8154Index: gcc/testsuite/gcc.target/i386/avx2-vpermps-2.c
8155===================================================================
8156--- gcc/testsuite/gcc.target/i386/avx2-vpermps-2.c (.../tags/gcc_4_7_0_release) (wersja 187293)
8157+++ gcc/testsuite/gcc.target/i386/avx2-vpermps-2.c (.../branches/gcc-4_7-branch) (wersja 187293)
8158@@ -8,7 +8,7 @@
8159 #define NUM 10
8160
8161 static void
8162-init_permps (float *src1, float *src2, int seed)
8163+init_permps (float *src1, int *src2, int seed)
8164 {
8165 int i, sign = 1;
8166
8167@@ -21,24 +21,24 @@
8168 }
8169
8170 static void
8171-calc_permps (float *src1, float *src2, float *dst)
8172+calc_permps (float *src1, int *src2, float *dst)
8173 {
8174 int i;
8175 unsigned temp;
8176- unsigned *idx = (int *) src1;
8177
8178 memcpy (dst, src1, 32);
8179 for (i = 0; i < 8; i++)
8180 {
8181- temp = idx[i];
8182- dst[i] = src2[temp & 7];
8183+ temp = src2[i];
8184+ dst[i] = src1[temp & 7];
8185 }
8186 }
8187
8188 static void
8189 avx2_test (void)
8190 {
8191- union256 src1, src2, dst;
8192+ union256 src1, dst;
8193+ union256i_d src2;
8194 float dst_ref[8];
8195 int i;
8196
8197Index: gcc/testsuite/gcc.target/i386/pr52736.c
8198===================================================================
8199--- gcc/testsuite/gcc.target/i386/pr52736.c (.../tags/gcc_4_7_0_release) (wersja 0)
8200+++ gcc/testsuite/gcc.target/i386/pr52736.c (.../branches/gcc-4_7-branch) (wersja 187293)
8201@@ -0,0 +1,29 @@
8202+/* PR target/52736 */
8203+/* { dg-do run } */
8204+/* { dg-options "-O1 -msse2" } */
8205+/* { dg-require-effective-target sse2_runtime } */
8206+
8207+#include <x86intrin.h>
8208+
8209+typedef double D __attribute__((may_alias));
8210+__attribute__((aligned(16))) static const double r[4] = { 1., 5., 1., 3. };
8211+
8212+__attribute__((noinline, noclone))
8213+void
8214+foo (int x)
8215+{
8216+ asm volatile ("" : "+g" (x) : : "memory");
8217+ if (x != 3)
8218+ __builtin_abort ();
8219+}
8220+
8221+int
8222+main ()
8223+{
8224+ __m128d t = _mm_set1_pd (5.);
8225+ ((D *)(&t))[0] = 1.;
8226+ foo (_mm_movemask_pd (_mm_cmpeq_pd (t, _mm_load_pd (&r[0]))));
8227+ ((D *)(&t))[1] = 3.;
8228+ foo (_mm_movemask_pd (_mm_cmpeq_pd (t, _mm_load_pd (&r[2]))));
8229+ return 0;
8230+}
8231Index: gcc/testsuite/gcc.target/i386/pr52754.c
8232===================================================================
8233--- gcc/testsuite/gcc.target/i386/pr52754.c (.../tags/gcc_4_7_0_release) (wersja 0)
8234+++ gcc/testsuite/gcc.target/i386/pr52754.c (.../branches/gcc-4_7-branch) (wersja 187293)
8235@@ -0,0 +1,33 @@
8236+/* { dg-do run } */
8237+/* { dg-options "-O2 -fpredictive-commoning -msse2 -std=c99" } */
8238+/* { dg-require-effective-target sse2 } */
8239+
8240+#include <x86intrin.h>
8241+
8242+#include "isa-check.h"
8243+#include "sse-os-support.h"
8244+
8245+int main()
8246+{
8247+ const float mem[8] = { 0, 1, 2, 3, 4, 5, 6, 7 };
8248+
8249+ unsigned int indexes[8];
8250+ for (unsigned int i = 0; i < 8; ++i) indexes[i] = i;
8251+
8252+ check_isa ();
8253+
8254+ if (!sse_os_support ())
8255+ exit (0);
8256+
8257+ __m128 x = _mm_setr_ps(0, 1, 2, 3);
8258+ for (unsigned int i = 0; i + 4 < 6; ++i) {
8259+ const unsigned int *ii = &indexes[i];
8260+ const __m128 tmp = _mm_setr_ps(mem[ii[0]], mem[ii[1]], mem[ii[2]], mem[ii[3]]);
8261+ if (0xf != _mm_movemask_ps(_mm_cmpeq_ps(tmp, x))) {
8262+ __builtin_abort();
8263+ }
8264+ x = _mm_add_ps(x, _mm_set1_ps(1));
8265+ }
8266+
8267+ return 0;
8268+}
8269Index: gcc/testsuite/gcc.target/i386/avx2-vpermd-2.c
8270===================================================================
8271--- gcc/testsuite/gcc.target/i386/avx2-vpermd-2.c (.../tags/gcc_4_7_0_release) (wersja 187293)
8272+++ gcc/testsuite/gcc.target/i386/avx2-vpermd-2.c (.../branches/gcc-4_7-branch) (wersja 187293)
8273@@ -29,8 +29,8 @@
8274 memcpy (dst, src1, 32);
8275 for (i = 0; i < 8; i++)
8276 {
8277- temp = src1[i];
8278- dst[i] = src2[temp & 7];
8279+ temp = src2[i];
8280+ dst[i] = src1[temp & 7];
8281 }
8282 }
8283
8284Index: gcc/testsuite/gcc.target/ia64/pr52657.c
8285===================================================================
8286--- gcc/testsuite/gcc.target/ia64/pr52657.c (.../tags/gcc_4_7_0_release) (wersja 0)
8287+++ gcc/testsuite/gcc.target/ia64/pr52657.c (.../branches/gcc-4_7-branch) (wersja 187293)
8288@@ -0,0 +1,44 @@
8289+/* { dg-do compile } */
8290+/* { dg-options "-O" } */
8291+
8292+typedef unsigned long int mp_limb_t;
8293+
8294+typedef struct
8295+{
8296+ int _mp_alloc;
8297+ int _mp_size;
8298+ mp_limb_t *_mp_d;
8299+} __mpz_struct;
8300+
8301+typedef __mpz_struct mpz_t[1];
8302+typedef mp_limb_t * mp_ptr;
8303+typedef const mp_limb_t * mp_srcptr;
8304+typedef long int mp_size_t;
8305+
8306+extern mp_limb_t __gmpn_addmul_2 (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr);
8307+
8308+void
8309+__gmpn_redc_2 (mp_ptr rp, mp_ptr up, mp_srcptr mp, mp_size_t n, mp_srcptr mip)
8310+{
8311+ mp_limb_t q[2];
8312+ mp_size_t j;
8313+ mp_limb_t upn;
8314+
8315+ for (j = n - 2; j >= 0; j -= 2)
8316+ {
8317+ mp_limb_t _ph, _pl;
8318+ __asm__ ("xma.hu %0 = %3, %5, f0\n\t"
8319+ "xma.l %1 = %3, %5, f0\n\t"
8320+ ";;\n\t"
8321+ "xma.l %0 = %3, %4, %0\n\t"
8322+ ";;\n\t"
8323+ "xma.l %0 = %2, %5, %0"
8324+ : "=&f" (q[1]), "=&f" (q[0])
8325+ : "f" (mip[1]), "f" (mip[0]), "f" (up[1]), "f" (up[0]));
8326+ upn = up[n];
8327+ up[1] = __gmpn_addmul_2 (up, mp, n, q);
8328+ up[0] = up[n];
8329+ up[n] = upn;
8330+ up += 2;
8331+ }
8332+}
8333Index: gcc/testsuite/gcc.target/ia64/pr48496.c
8334===================================================================
8335--- gcc/testsuite/gcc.target/ia64/pr48496.c (.../tags/gcc_4_7_0_release) (wersja 0)
8336+++ gcc/testsuite/gcc.target/ia64/pr48496.c (.../branches/gcc-4_7-branch) (wersja 187293)
8337@@ -0,0 +1,24 @@
8338+/* { dg-do compile } */
8339+/* { dg-options "-O2" } */
8340+
8341+typedef unsigned int UINT64 __attribute__((__mode__(__DI__)));
8342+
8343+typedef struct
8344+{
8345+ UINT64 x[2] __attribute__((aligned(16)));
8346+} fpreg;
8347+
8348+struct ia64_args
8349+{
8350+ fpreg fp_regs[8];
8351+ UINT64 gp_regs[8];
8352+};
8353+
8354+ffi_call(long i, long gpcount, long fpcount, void **avalue)
8355+{
8356+ struct ia64_args *stack;
8357+ stack = __builtin_alloca (64);
8358+ asm ("stf.spill %0 = %1%P0" : "=m" (*&stack->fp_regs[fpcount++])
8359+ : "f"(*(double *)avalue[i]));
8360+ stack->gp_regs[gpcount++] = *(UINT64 *)avalue[i];
8361+}
8362Index: gcc/testsuite/go.test/go-test.exp
8363===================================================================
8364--- gcc/testsuite/go.test/go-test.exp (.../tags/gcc_4_7_0_release) (wersja 187293)
8365+++ gcc/testsuite/go.test/go-test.exp (.../branches/gcc-4_7-branch) (wersja 187293)
8366@@ -217,6 +217,13 @@
8367 return ""
8368 }
8369 }
8370+ "powerpc*-*-*" {
8371+ if [check_effective_target_ilp32] {
8372+ set goarch "ppc"
8373+ } else {
8374+ set goarch "ppc64"
8375+ }
8376+ }
8377 "sparc*-*-*" {
8378 if [check_effective_target_ilp32] {
8379 set goarch "sparc"
8380@@ -302,7 +309,7 @@
8381 }
8382
8383 # Handle certain tests in a target-dependant way.
8384- if { [istarget "alpha*-*-*"] || [istarget "sparc*-*-solaris*"] } {
8385+ if { [istarget "alpha*-*-*"] || [istarget "sparc*-*-solaris*"] || [istarget "powerpc*-*-*"] } {
8386 if { [string match "*go.test/test/nilptr.go" $test] } {
8387 untested $test
8388 continue
8389Index: gcc/testsuite/lib/target-supports.exp
8390===================================================================
8391--- gcc/testsuite/lib/target-supports.exp (.../tags/gcc_4_7_0_release) (wersja 187293)
8392+++ gcc/testsuite/lib/target-supports.exp (.../branches/gcc-4_7-branch) (wersja 187293)
8393@@ -2576,8 +2576,23 @@
8394 } "-mcpu=niagara3"]
8395 }
8396
8397-# Return 1 if this is a Sparc target with VIS enabled.
8398+# Return 1 if this is a SPARC-V9 target.
8399
8400+proc check_effective_target_sparc_v9 { } {
8401+ if { [istarget sparc*-*-*] } {
8402+ return [check_no_compiler_messages sparc_v9 object {
8403+ int main (void) {
8404+ asm volatile ("return %i7+8");
8405+ return 0;
8406+ }
8407+ }]
8408+ } else {
8409+ return 0
8410+ }
8411+}
8412+
8413+# Return 1 if this is a SPARC target with VIS enabled.
8414+
8415 proc check_effective_target_sparc_vis { } {
8416 if { [istarget sparc*-*-*] } {
8417 return [check_no_compiler_messages sparc_vis object {
8418@@ -3755,7 +3770,8 @@
8419 if { [istarget x86_64-*-*]
8420 || [istarget i?86-*-*])
8421 || [istarget arm*-*-*]
8422- || [istarget alpha*-*-*] } {
8423+ || [istarget alpha*-*-*]
8424+ || ([istarget sparc*-*-*] && [check_effective_target_lp64]) } {
8425 return 1
8426 } else {
8427 return 0
8428@@ -3800,6 +3816,10 @@
8429 } "" ]
8430 } elseif { [istarget alpha*-*-*] } {
8431 return 1
8432+ } elseif { ([istarget sparc*-*-*]
8433+ && [check_effective_target_lp64]
8434+ && [check_effective_target_ultrasparc_hw]) } {
8435+ return 1
8436 } else {
8437 return 0
8438 }
8439@@ -3825,8 +3845,7 @@
8440 || [istarget hppa*-*linux*]
8441 || [istarget s390*-*-*]
8442 || [istarget powerpc*-*-*]
8443- || [istarget sparc64-*-*]
8444- || [istarget sparcv9-*-*]
8445+ || ([istarget sparc*-*-*] && [check_effective_target_sparc_v9])
8446 || [check_effective_target_mips_llsc] } {
8447 set et_sync_int_long_saved 1
8448 }
8449@@ -3855,8 +3874,7 @@
8450 || [istarget hppa*-*linux*]
8451 || [istarget s390*-*-*]
8452 || [istarget powerpc*-*-*]
8453- || [istarget sparc64-*-*]
8454- || [istarget sparcv9-*-*]
8455+ || ([istarget sparc*-*-*] && [check_effective_target_sparc_v9])
8456 || [check_effective_target_mips_llsc] } {
8457 set et_sync_char_short_saved 1
8458 }
8459Index: gcc/testsuite/gfortran.dg/function_optimize_11.f90
8460===================================================================
8461--- gcc/testsuite/gfortran.dg/function_optimize_11.f90 (.../tags/gcc_4_7_0_release) (wersja 0)
8462+++ gcc/testsuite/gfortran.dg/function_optimize_11.f90 (.../branches/gcc-4_7-branch) (wersja 187293)
8463@@ -0,0 +1,17 @@
8464+! { dg-do run }
8465+! { dg-options "-ffrontend-optimize" }
8466+! Do not move common functions out of implicit DO loop constructors.
8467+program test
8468+ integer, parameter :: N = 4
8469+ integer, parameter :: dp=kind(1.d0)
8470+ real(kind=dp), parameter :: pi=4*atan(1._dp)
8471+ real(kind=dp), parameter :: eps = 1.e-14_dp
8472+ real(kind=dp) :: h1(0:N-1), h2(0:N-1)
8473+ integer i
8474+
8475+ i = 1
8476+ h1 = [(cos(2*pi*mod(i*k,N)/N),k=0,N/2), &
8477+ & (sin(2*pi*mod(i*k,N)/N),k=1,N/2-1)]
8478+ h2 = (/ 1._dp, 0._dp, -1._dp, 1._dp /)
8479+ if (any(abs(h1 - h2) > eps)) call abort
8480+end program test
8481Index: gcc/testsuite/gfortran.dg/constructor_7.f90
8482===================================================================
8483--- gcc/testsuite/gfortran.dg/constructor_7.f90 (.../tags/gcc_4_7_0_release) (wersja 0)
8484+++ gcc/testsuite/gfortran.dg/constructor_7.f90 (.../branches/gcc-4_7-branch) (wersja 187293)
8485@@ -0,0 +1,48 @@
8486+! { dg-do compile }
8487+! { dg-options "-std=f95" }
8488+!
8489+! PR fortran/53111
8490+!
8491+
8492+! ------------ INVALID ONE ------------------------
8493+
8494+module m
8495+type t
8496+ integer :: i
8497+end type t
8498+end
8499+
8500+module m2
8501+ interface t
8502+ module procedure sub
8503+ end interface t
8504+contains
8505+ integer function sub()
8506+ sub = 4
8507+ end function sub
8508+end module m2
8509+
8510+! Note: The following is formally valid as long as "t" is not used.
8511+! For simplicity, -std=f95 will give an error.
8512+! It is unlikely that a real-world program is rejected with -std=f95
8513+! because of that.
8514+
8515+use m ! { dg-error "Fortran 2003: Generic name 't' of function 'sub' at .1. being the same name as derived type at" }
8516+use m2 ! { dg-error "Fortran 2003: Generic name 't' of function 'sub' at .1. being the same name as derived type at" }
8517+! i = sub() ! << Truly invalid in F95, valid in F2003
8518+end
8519+
8520+! ------------ INVALID TWO ------------------------
8521+
8522+module m3
8523+type t2 ! { dg-error "Fortran 2003: Generic name 't2' of function 'sub2' at .1. being the same name as derived type at" }
8524+ integer :: i
8525+end type t2
8526+ interface t2
8527+ module procedure sub2
8528+ end interface t2
8529+contains
8530+ integer function sub2() ! { dg-error "Fortran 2003: Generic name 't2' of function 'sub2' at .1. being the same name as derived type at" }
8531+ sub2 = 4
8532+ end function sub2
8533+end module m3
8534Index: gcc/testsuite/gfortran.dg/intrinsic_8.f90
8535===================================================================
8536--- gcc/testsuite/gfortran.dg/intrinsic_8.f90 (.../tags/gcc_4_7_0_release) (wersja 0)
8537+++ gcc/testsuite/gfortran.dg/intrinsic_8.f90 (.../branches/gcc-4_7-branch) (wersja 187293)
8538@@ -0,0 +1,23 @@
8539+! { dg-do compile }
8540+!
8541+! PR fortran/52452
8542+!
8543+! Contributed by Roger Ferrer Ibanez
8544+!
8545+PROGRAM test_etime
8546+ IMPLICIT NONE
8547+ INTRINSIC :: etime
8548+ REAL(4) :: tarray(1:2)
8549+ REAL(4) :: result
8550+
8551+ CALL etime(tarray, result)
8552+END PROGRAM test_etime
8553+
8554+subroutine test_etime2
8555+ IMPLICIT NONE
8556+ INTRINSIC :: etime
8557+ REAL(4) :: tarray(1:2)
8558+ REAL(4) :: result
8559+
8560+ result = etime(tarray)
8561+END subroutine test_etime2
8562Index: gcc/testsuite/gfortran.dg/pr52701.f90
8563===================================================================
8564--- gcc/testsuite/gfortran.dg/pr52701.f90 (.../tags/gcc_4_7_0_release) (wersja 0)
8565+++ gcc/testsuite/gfortran.dg/pr52701.f90 (.../branches/gcc-4_7-branch) (wersja 187293)
8566@@ -0,0 +1,20 @@
8567+! { dg-do compile }
8568+! { dg-options "-O3" }
8569+function pr52701 (x, z, e, f, g, l)
8570+ integer a, b, c, d, e, f, g, i, j, l, pr52701
8571+ double precision x(e), z(e*e)
8572+ do i = l, f
8573+ do j = l, i
8574+ d = 0
8575+ do a = 1, g
8576+ c = a - g
8577+ do b = 1, g
8578+ d = d + 1
8579+ c = c + g
8580+ z(d) = z(d) / (x(i) + x(j) - x(f + a) - x(f + b))
8581+ end do
8582+ end do
8583+ end do
8584+ end do
8585+ pr52701 = c
8586+end
8587Index: gcc/testsuite/gfortran.dg/typebound_operator_15.f90
8588===================================================================
8589--- gcc/testsuite/gfortran.dg/typebound_operator_15.f90 (.../tags/gcc_4_7_0_release) (wersja 0)
8590+++ gcc/testsuite/gfortran.dg/typebound_operator_15.f90 (.../branches/gcc-4_7-branch) (wersja 187293)
8591@@ -0,0 +1,78 @@
8592+! { dg-do run }
8593+!
8594+! PR fortran/53255
8595+!
8596+! Contributed by Reinhold Bader.
8597+!
8598+! Before TYPE(ext)'s .tr. wrongly called the base type's trace
8599+! instead of ext's trace_ext.
8600+!
8601+module mod_base
8602+ implicit none
8603+ private
8604+ integer, public :: base_cnt = 0
8605+ type, public :: base
8606+ private
8607+ real :: r(2,2) = reshape( (/ 1.0, 2.0, 3.0, 4.0 /), (/ 2, 2 /))
8608+ contains
8609+ procedure, private :: trace
8610+ generic :: operator(.tr.) => trace
8611+ end type base
8612+contains
8613+ complex function trace(this)
8614+ class(base), intent(in) :: this
8615+ base_cnt = base_cnt + 1
8616+! write(*,*) 'executing base'
8617+ trace = this%r(1,1) + this%r(2,2)
8618+ end function trace
8619+end module mod_base
8620+
8621+module mod_ext
8622+ use mod_base
8623+ implicit none
8624+ private
8625+ integer, public :: ext_cnt = 0
8626+ public :: base, base_cnt
8627+ type, public, extends(base) :: ext
8628+ private
8629+ real :: i(2,2) = reshape( (/ 1.0, 1.0, 1.0, 1.5 /), (/ 2, 2 /))
8630+ contains
8631+ procedure, private :: trace => trace_ext
8632+ end type ext
8633+contains
8634+ complex function trace_ext(this)
8635+ class(ext), intent(in) :: this
8636+
8637+! the following should be executed through invoking .tr. p below
8638+! write(*,*) 'executing override'
8639+ ext_cnt = ext_cnt + 1
8640+ trace_ext = .tr. this%base + (0.0, 1.0) * ( this%i(1,1) + this%i(2,2) )
8641+ end function trace_ext
8642+
8643+end module mod_ext
8644+program test_override
8645+ use mod_ext
8646+ implicit none
8647+ type(base) :: o
8648+ type(ext) :: p
8649+ real :: r
8650+
8651+ ! Note: ext's ".tr." (trace_ext) calls also base's "trace"
8652+
8653+! write(*,*) .tr. o
8654+! write(*,*) .tr. p
8655+ if (base_cnt /= 0 .or. ext_cnt /= 0) call abort ()
8656+ r = .tr. o
8657+ if (base_cnt /= 1 .or. ext_cnt /= 0) call abort ()
8658+ r = .tr. p
8659+ if (base_cnt /= 2 .or. ext_cnt /= 1) call abort ()
8660+
8661+ if (abs(.tr. o - 5.0 ) < 1.0e-6 .and. abs( .tr. p - (5.0,2.5)) < 1.0e-6) &
8662+ then
8663+ if (base_cnt /= 4 .or. ext_cnt /= 2) call abort ()
8664+! write(*,*) 'OK'
8665+ else
8666+ call abort()
8667+! write(*,*) 'FAIL'
8668+ end if
8669+end program test_override
8670Index: gcc/testsuite/gfortran.dg/pr52678.f
8671===================================================================
8672--- gcc/testsuite/gfortran.dg/pr52678.f (.../tags/gcc_4_7_0_release) (wersja 0)
8673+++ gcc/testsuite/gfortran.dg/pr52678.f (.../branches/gcc-4_7-branch) (wersja 187293)
8674@@ -0,0 +1,18 @@
8675+! { dg-do compile }
8676+! { dg-options "-O -ftree-vectorize" }
8677+ SUBROUTINE OpenAD_set_ref_state(DRF, RHOFACF, RHOFACC)
8678+ real(8) DRF(1 : 15)
8679+ real(8) RHOFACF(1 : 16)
8680+ real(8) RHOFACC(1 : 15)
8681+ integer, dimension(:), allocatable :: oad_it
8682+ integer :: oad_it_ptr
8683+ INTEGER(8) OpenAD_Symbol_188
8684+ INTEGER(4) K
8685+ OpenAD_Symbol_188 = 0
8686+ DO K = 2, 15, 1
8687+ RHOFACF(INT(K)) = ((RHOFACC(K) * DRF(K + (-1)) + RHOFACC(K +
8688+ + (-1)) * DRF(K)) /(DRF(K) + DRF(K + (-1))))
8689+ OpenAD_Symbol_188 = (INT(OpenAD_Symbol_188) + INT(1))
8690+ END DO
8691+ oad_it(oad_it_ptr) = OpenAD_Symbol_188
8692+ end subroutine OpenAD_set_ref_state
8693Index: gcc/testsuite/gfortran.dg/use_only_6.f90
8694===================================================================
8695--- gcc/testsuite/gfortran.dg/use_only_6.f90 (.../tags/gcc_4_7_0_release) (wersja 0)
8696+++ gcc/testsuite/gfortran.dg/use_only_6.f90 (.../branches/gcc-4_7-branch) (wersja 187293)
8697@@ -0,0 +1,14 @@
8698+! { dg-do compile }
8699+! PR 52668 - there used to be a bogus warning about not using b.
8700+! Original test case by Arnaud Desitter.
8701+module mm
8702+ integer :: a, b
8703+ common /mm1/ a, b
8704+end module mm
8705+
8706+subroutine aa()
8707+ use mm, only: a
8708+ implicit none
8709+ a = 1
8710+end subroutine aa
8711+! { dg-final { cleanup-modules "mm" } }
8712Index: gcc/testsuite/gfortran.dg/function_optimize_12.f90
8713===================================================================
8714--- gcc/testsuite/gfortran.dg/function_optimize_12.f90 (.../tags/gcc_4_7_0_release) (wersja 0)
8715+++ gcc/testsuite/gfortran.dg/function_optimize_12.f90 (.../branches/gcc-4_7-branch) (wersja 187293)
8716@@ -0,0 +1,12 @@
8717+! { dg-do run }
8718+! { dg-options "-ffrontend-optimize" }
8719+! PR 53148 - this used to cause wrong code because the label was
8720+! placed after the statement assigning the new variables.
8721+program main
8722+ integer :: n
8723+ double precision x
8724+ n = 3
8725+ goto 100
8726+100 x = dble(n) + dble(n)
8727+ if (x /= 6.d0) call abort
8728+end program main
8729Index: gcc/testsuite/gfortran.dg/constructor_8.f90
8730===================================================================
8731--- gcc/testsuite/gfortran.dg/constructor_8.f90 (.../tags/gcc_4_7_0_release) (wersja 0)
8732+++ gcc/testsuite/gfortran.dg/constructor_8.f90 (.../branches/gcc-4_7-branch) (wersja 187293)
8733@@ -0,0 +1,22 @@
8734+! { dg-do compile }
8735+! { dg-options "-std=f95" }
8736+!
8737+! PR fortran/53111
8738+!
8739+! Contributed by Jacob Middag, reduced by Janus Weil.
8740+!
8741+
8742+module a
8743+ type :: my
8744+ real :: x
8745+ end type
8746+end module
8747+
8748+module b
8749+ use a
8750+end module
8751+
8752+program test
8753+ use a
8754+ use b
8755+end program
8756Index: gcc/testsuite/gfortran.dg/pointer_intent_6.f90
8757===================================================================
8758--- gcc/testsuite/gfortran.dg/pointer_intent_6.f90 (.../tags/gcc_4_7_0_release) (wersja 0)
8759+++ gcc/testsuite/gfortran.dg/pointer_intent_6.f90 (.../branches/gcc-4_7-branch) (wersja 187293)
8760@@ -0,0 +1,19 @@
8761+! { dg-do compile }
8762+!
8763+! PR fortran/52864
8764+!
8765+! Assigning to an intent(in) pointer (which is valid).
8766+!
8767+ program test
8768+ type PoisFFT_Solver3D
8769+ complex, dimension(:,:,:), &
8770+ pointer :: work => null()
8771+ end type PoisFFT_Solver3D
8772+ contains
8773+ subroutine PoisFFT_Solver3D_FullPeriodic(D, p)
8774+ type(PoisFFT_Solver3D), intent(in) :: D
8775+ real, intent(in), pointer :: p(:)
8776+ D%work(i,j,k) = 0.0
8777+ p = 0.0
8778+ end subroutine
8779+ end
8780Index: gcc/testsuite/gfortran.dg/pr52835.f90
8781===================================================================
8782--- gcc/testsuite/gfortran.dg/pr52835.f90 (.../tags/gcc_4_7_0_release) (wersja 0)
8783+++ gcc/testsuite/gfortran.dg/pr52835.f90 (.../branches/gcc-4_7-branch) (wersja 187293)
8784@@ -0,0 +1,16 @@
8785+! PR tree-optimization/52835
8786+! { dg-do compile }
8787+! { dg-options "-O3 -fdump-tree-optimized" }
8788+
8789+subroutine foo (x, y, z, n)
8790+ integer :: n, i
8791+ real :: x(n), y(n), z(n)
8792+ do i = 1, n
8793+ z(i) = 0.0
8794+ y(i) = 0.0
8795+ call bar (y(i), z(i), x(i))
8796+ end do
8797+end subroutine
8798+
8799+! { dg-final { scan-tree-dump "bar " "optimized" } }
8800+! { dg-final { cleanup-tree-dump "optimized" } }
8801Index: gcc/testsuite/gfortran.dg/vect/pr52580.f
8802===================================================================
8803--- gcc/testsuite/gfortran.dg/vect/pr52580.f (.../tags/gcc_4_7_0_release) (wersja 0)
8804+++ gcc/testsuite/gfortran.dg/vect/pr52580.f (.../branches/gcc-4_7-branch) (wersja 187293)
8805@@ -0,0 +1,33 @@
8806+! { dg-do compile }
8807+! { dg-require-effective-target vect_double }
8808+ SUBROUTINE CALC2
8809+ IMPLICIT REAL*8 (A-H, O-Z)
8810+ PARAMETER (N1=1335, N2=1335)
8811+
8812+ COMMON U(N1,N2), V(N1,N2), P(N1,N2),
8813+ * UNEW(N1,N2), VNEW(N1,N2),
8814+ 1 PNEW(N1,N2), UOLD(N1,N2),
8815+ * VOLD(N1,N2), POLD(N1,N2),
8816+ 2 CU(N1,N2), CV(N1,N2),
8817+ * Z(N1,N2), H(N1,N2), PSI(N1,N2)
8818+ COMMON /CONS/ DT,TDT,DX,DY,A,ALPHA,ITMAX,MPRINT,M,N,MP1,
8819+ 1 NP1,EL,PI,TPI,DI,DJ,PCF
8820+ TDTS8 = TDT/8.D0
8821+ TDTSDX = TDT/DX
8822+ TDTSDY = TDT/DY
8823+
8824+ DO 200 J=1,N
8825+ DO 200 I=1,M
8826+ UNEW(I+1,J) = UOLD(I+1,J)+
8827+ 1 TDTS8*(Z(I+1,J+1)+Z(I+1,J))*(CV(I+1,J+1)+CV(I,J+1)+CV(I,J)
8828+ 2 +CV(I+1,J))-TDTSDX*(H(I+1,J)-H(I,J))
8829+ VNEW(I,J+1) = VOLD(I,J+1)-TDTS8*(Z(I+1,J+1)+Z(I,J+1))
8830+ 1 *(CU(I+1,J+1)+CU(I,J+1)+CU(I,J)+CU(I+1,J))
8831+ 2 -TDTSDY*(H(I,J+1)-H(I,J))
8832+ PNEW(I,J) = POLD(I,J)-TDTSDX*(CU(I+1,J)-CU(I,J))
8833+ 1 -TDTSDY*(CV(I,J+1)-CV(I,J))
8834+ 200 CONTINUE
8835+ RETURN
8836+ END
8837+! { dg-final { scan-tree-dump-times "LOOP VECTORIZED" 1 "vect" } }
8838+! { dg-final { cleanup-tree-dump "vect" } }
8839Index: gcc/testsuite/gcc.c-torture/execute/pr53160.c
8840===================================================================
8841--- gcc/testsuite/gcc.c-torture/execute/pr53160.c (.../tags/gcc_4_7_0_release) (wersja 0)
8842+++ gcc/testsuite/gcc.c-torture/execute/pr53160.c (.../branches/gcc-4_7-branch) (wersja 187293)
8843@@ -0,0 +1,35 @@
8844+/* PR rtl-optimization/53160 */
8845+
8846+extern void abort (void);
8847+
8848+int a, c = 1, d, e, g;
8849+volatile int b;
8850+volatile char f;
8851+long h;
8852+short i;
8853+
8854+void
8855+foo (void)
8856+{
8857+ for (e = 0; e; ++e)
8858+ ;
8859+}
8860+
8861+int
8862+main ()
8863+{
8864+ if (g)
8865+ (void) b;
8866+ foo ();
8867+ for (d = 0; d >= 0; d--)
8868+ {
8869+ short j = f;
8870+ int k = 0;
8871+ i = j ? j : j << k;
8872+ }
8873+ h = c == 0 ? 0 : i;
8874+ a = h;
8875+ if (a != 0)
8876+ abort ();
8877+ return 0;
8878+}
8879Index: gcc/testsuite/gcc.c-torture/execute/pr53084.c
8880===================================================================
8881--- gcc/testsuite/gcc.c-torture/execute/pr53084.c (.../tags/gcc_4_7_0_release) (wersja 0)
8882+++ gcc/testsuite/gcc.c-torture/execute/pr53084.c (.../branches/gcc-4_7-branch) (wersja 187293)
8883@@ -0,0 +1,18 @@
8884+/* PR middle-end/53084 */
8885+
8886+extern void abort (void);
8887+
8888+__attribute__((noinline, noclone)) void
8889+bar (const char *p)
8890+{
8891+ if (p[0] != 'o' || p[1] != 'o' || p[2])
8892+ abort ();
8893+}
8894+
8895+int
8896+main ()
8897+{
8898+ static const char *const foo[] = {"foo" + 1};
8899+ bar (foo[0]);
8900+ return 0;
8901+}
8902Index: gcc/testsuite/gcc.c-torture/execute/20120427-1.c
8903===================================================================
8904--- gcc/testsuite/gcc.c-torture/execute/20120427-1.c (.../tags/gcc_4_7_0_release) (wersja 0)
8905+++ gcc/testsuite/gcc.c-torture/execute/20120427-1.c (.../branches/gcc-4_7-branch) (wersja 187293)
8906@@ -0,0 +1,36 @@
8907+typedef struct sreal
8908+{
8909+ unsigned sig; /* Significant. */
8910+ int exp; /* Exponent. */
8911+} sreal;
8912+
8913+sreal_compare (sreal *a, sreal *b)
8914+{
8915+ if (a->exp > b->exp)
8916+ return 1;
8917+ if (a->exp < b->exp)
8918+ return -1;
8919+ if (a->sig > b->sig)
8920+ return 1;
8921+ return -(a->sig < b->sig);
8922+}
8923+
8924+sreal a[] = {
8925+ { 0, 0 },
8926+ { 1, 0 },
8927+ { 0, 1 },
8928+ { 1, 1 }
8929+};
8930+
8931+int main()
8932+{
8933+ int i, j;
8934+ for (i = 0; i <= 3; i++) {
8935+ for (j = 0; j < 3; j++) {
8936+ if (i < j && sreal_compare(&a[i], &a[j]) != -1) abort();
8937+ if (i == j && sreal_compare(&a[i], &a[j]) != 0) abort();
8938+ if (i > j && sreal_compare(&a[i], &a[j]) != 1) abort();
8939+ }
8940+ }
8941+ return 0;
8942+}
8943Index: gcc/testsuite/gcc.c-torture/compile/pr52891-1.c
8944===================================================================
8945--- gcc/testsuite/gcc.c-torture/compile/pr52891-1.c (.../tags/gcc_4_7_0_release) (wersja 0)
8946+++ gcc/testsuite/gcc.c-torture/compile/pr52891-1.c (.../branches/gcc-4_7-branch) (wersja 187293)
8947@@ -0,0 +1,20 @@
8948+/* PR tree-optimizations/52891 */
8949+
8950+struct S
8951+{
8952+ int a;
8953+ struct T { unsigned c : 10; } b;
8954+} s;
8955+
8956+void
8957+bar (short x, short y, int **p)
8958+{
8959+ if ((x && y) + **p)
8960+ while (1);
8961+}
8962+
8963+void
8964+foo (int **p)
8965+{
8966+ bar (s.a, s.b.c, p);
8967+}
8968Index: gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c
8969===================================================================
8970--- gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c (.../tags/gcc_4_7_0_release) (wersja 0)
8971+++ gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c (.../branches/gcc-4_7-branch) (wersja 187293)
8972@@ -0,0 +1,56 @@
8973+/* Inspired by the test case for PR middle-end/52640. */
8974+
8975+typedef struct
8976+{
8977+ char *value;
8978+} REFERENCE;
8979+
8980+/* Add a few "extern int Xxxxxx ();" declarations. */
8981+#undef DEF
8982+#undef LIM1
8983+#undef LIM2
8984+#undef LIM3
8985+#undef LIM4
8986+#undef LIM5
8987+#undef LIM6
8988+#define DEF(x) extern int x ()
8989+#define LIM1(x) DEF(x##0); DEF(x##1); DEF(x##2); DEF(x##3); DEF(x##4); \
8990+ DEF(x##5); DEF(x##6); DEF(x##7); DEF(x##8); DEF(x##9);
8991+#define LIM2(x) LIM1(x##0) LIM1(x##1) LIM1(x##2) LIM1(x##3) LIM1(x##4) \
8992+ LIM1(x##5) LIM1(x##6) LIM1(x##7) LIM1(x##8) LIM1(x##9)
8993+#define LIM3(x) LIM2(x##0) LIM2(x##1) LIM2(x##2) LIM2(x##3) LIM2(x##4) \
8994+ LIM2(x##5) LIM2(x##6) LIM2(x##7) LIM2(x##8) LIM2(x##9)
8995+#define LIM4(x) LIM3(x##0) LIM3(x##1) LIM3(x##2) LIM3(x##3) LIM3(x##4) \
8996+ LIM3(x##5) LIM3(x##6) LIM3(x##7) LIM3(x##8) LIM3(x##9)
8997+#define LIM5(x) LIM4(x##0) LIM4(x##1) LIM4(x##2) LIM4(x##3) LIM4(x##4) \
8998+ LIM4(x##5) LIM4(x##6) LIM4(x##7) LIM4(x##8) LIM4(x##9)
8999+#define LIM6(x) LIM5(x##0) LIM5(x##1) LIM5(x##2) LIM5(x##3) LIM5(x##4) \
9000+ LIM5(x##5) LIM5(x##6) LIM5(x##7) LIM5(x##8) LIM5(x##9)
9001+LIM5 (X);
9002+
9003+/* Add references to them, or GCC will simply ignore the extern decls. */
9004+#undef DEF
9005+#undef LIM1
9006+#undef LIM2
9007+#undef LIM3
9008+#undef LIM4
9009+#undef LIM5
9010+#undef LIM6
9011+#define DEF(x) (char *) x
9012+#define LIM1(x) DEF(x##0), DEF(x##1), DEF(x##2), DEF(x##3), DEF(x##4), \
9013+ DEF(x##5), DEF(x##6), DEF(x##7), DEF(x##8), DEF(x##9),
9014+#define LIM2(x) LIM1(x##0) LIM1(x##1) LIM1(x##2) LIM1(x##3) LIM1(x##4) \
9015+ LIM1(x##5) LIM1(x##6) LIM1(x##7) LIM1(x##8) LIM1(x##9)
9016+#define LIM3(x) LIM2(x##0) LIM2(x##1) LIM2(x##2) LIM2(x##3) LIM2(x##4) \
9017+ LIM2(x##5) LIM2(x##6) LIM2(x##7) LIM2(x##8) LIM2(x##9)
9018+#define LIM4(x) LIM3(x##0) LIM3(x##1) LIM3(x##2) LIM3(x##3) LIM3(x##4) \
9019+ LIM3(x##5) LIM3(x##6) LIM3(x##7) LIM3(x##8) LIM3(x##9)
9020+#define LIM5(x) LIM4(x##0) LIM4(x##1) LIM4(x##2) LIM4(x##3) LIM4(x##4) \
9021+ LIM4(x##5) LIM4(x##6) LIM4(x##7) LIM4(x##8) LIM4(x##9)
9022+#define LIM6(x) LIM5(x##0) LIM5(x##1) LIM5(x##2) LIM5(x##3) LIM5(x##4) \
9023+ LIM5(x##5) LIM5(x##6) LIM5(x##7) LIM5(x##8) LIM5(x##9)
9024+REFERENCE references[] = {
9025+ LIM5 (X)
9026+ 0
9027+};
9028+
9029Index: gcc/testsuite/gcc.c-torture/compile/pr53163.c
9030===================================================================
9031--- gcc/testsuite/gcc.c-torture/compile/pr53163.c (.../tags/gcc_4_7_0_release) (wersja 0)
9032+++ gcc/testsuite/gcc.c-torture/compile/pr53163.c (.../branches/gcc-4_7-branch) (wersja 187293)
9033@@ -0,0 +1,34 @@
9034+/* PR tree-optimization/53163 */
9035+
9036+struct S { int s; } b, f;
9037+int a, c;
9038+
9039+void
9040+foo (void)
9041+{
9042+ int d, e;
9043+ for (d = 4; d < 19; ++d)
9044+ for (e = 2; e >= 0; e--)
9045+ {
9046+ a = 0;
9047+ a = 1;
9048+ }
9049+}
9050+
9051+void
9052+bar (void)
9053+{
9054+ int g, h, i;
9055+ for (i = 1; i >= 0; i--)
9056+ {
9057+ b = f;
9058+ for (g = 0; g <= 1; g++)
9059+ {
9060+ if (c)
9061+ break;
9062+ for (h = 0; h <= 1; h++)
9063+ foo ();
9064+ foo ();
9065+ }
9066+ }
9067+}
9068Index: gcc/testsuite/gcc.c-torture/compile/pr52891-2.c
9069===================================================================
9070--- gcc/testsuite/gcc.c-torture/compile/pr52891-2.c (.../tags/gcc_4_7_0_release) (wersja 0)
9071+++ gcc/testsuite/gcc.c-torture/compile/pr52891-2.c (.../branches/gcc-4_7-branch) (wersja 187293)
9072@@ -0,0 +1,16 @@
9073+/* PR tree-optimizations/52891 */
9074+
9075+#if __SIZEOF_INT__ > 2
9076+struct __attribute__((packed)) S { unsigned s : 22; };
9077+#else
9078+struct __attribute__((packed)) S { unsigned s : 12; };
9079+#endif
9080+struct __attribute__((packed)) T { struct S t; } c;
9081+int a, b, d;
9082+
9083+void
9084+foo (void)
9085+{
9086+ if (1 ? (!c.t.s & (d < 0)) < a : 0)
9087+ b = 0;
9088+}
9089Index: gcc/testsuite/gcc.c-torture/compile/pr52750.c
9090===================================================================
9091--- gcc/testsuite/gcc.c-torture/compile/pr52750.c (.../tags/gcc_4_7_0_release) (wersja 0)
9092+++ gcc/testsuite/gcc.c-torture/compile/pr52750.c (.../branches/gcc-4_7-branch) (wersja 187293)
9093@@ -0,0 +1,11 @@
9094+/* PR middle-end/52750 */
9095+
9096+typedef signed char V __attribute__((vector_size (32)));
9097+
9098+void
9099+foo (V *x)
9100+{
9101+ V m = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
9102+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31};
9103+ *x = __builtin_shuffle (*x, m);
9104+}
9105Index: gcc/testsuite/gcc.c-torture/compile/pr53187.c
9106===================================================================
9107--- gcc/testsuite/gcc.c-torture/compile/pr53187.c (.../tags/gcc_4_7_0_release) (wersja 0)
9108+++ gcc/testsuite/gcc.c-torture/compile/pr53187.c (.../branches/gcc-4_7-branch) (wersja 187293)
9109@@ -0,0 +1,11 @@
9110+/* PR target/53187 */
9111+
9112+void bar (int);
9113+
9114+void
9115+foo (int x, double y, double z)
9116+{
9117+ _Bool t = z >= y;
9118+ if (!t || x)
9119+ bar (t ? 1 : 16);
9120+}
9121Index: gcc/testsuite/gnat.dg/controlled6.adb
9122===================================================================
9123--- gcc/testsuite/gnat.dg/controlled6.adb (.../tags/gcc_4_7_0_release) (wersja 0)
9124+++ gcc/testsuite/gnat.dg/controlled6.adb (.../branches/gcc-4_7-branch) (wersja 187293)
9125@@ -0,0 +1,24 @@
9126+-- { dg-do compile }
9127+-- { dg-options "-O -gnatn" }
9128+
9129+with Ada.Text_IO; use Ada.Text_IO;
9130+with Controlled6_Pkg;
9131+with Controlled6_Pkg.Iterators;
9132+
9133+procedure Controlled6 is
9134+
9135+ type String_Access is access String;
9136+
9137+ package My_Q is new Controlled6_Pkg (String_Access);
9138+ package My_Iterators is new My_Q.Iterators (0);
9139+ use My_Iterators;
9140+
9141+ Iterator : Iterator_Type := Find;
9142+
9143+begin
9144+ loop
9145+ exit when Is_Null (Iterator);
9146+ Put (Current (Iterator).all & ' ');
9147+ Find_Next (Iterator);
9148+ end loop;
9149+end;
9150Index: gcc/testsuite/gnat.dg/concat2.adb
9151===================================================================
9152--- gcc/testsuite/gnat.dg/concat2.adb (.../tags/gcc_4_7_0_release) (wersja 0)
9153+++ gcc/testsuite/gnat.dg/concat2.adb (.../branches/gcc-4_7-branch) (wersja 187293)
9154@@ -0,0 +1,18 @@
9155+with Text_IO; use Text_IO;
9156+
9157+package body Concat2 is
9158+
9159+ function Get_Param return String is
9160+ begin
9161+ return "";
9162+ end;
9163+
9164+ procedure Browse is
9165+ Mode : constant String := Get_Param;
9166+ Mode_Param : constant String := "MODE=" & Mode;
9167+ begin
9168+ Put_Line (Mode_Param);
9169+ end;
9170+
9171+end Concat2;
9172+
9173Index: gcc/testsuite/gnat.dg/controlled6_pkg-iterators.adb
9174===================================================================
9175--- gcc/testsuite/gnat.dg/controlled6_pkg-iterators.adb (.../tags/gcc_4_7_0_release) (wersja 0)
9176+++ gcc/testsuite/gnat.dg/controlled6_pkg-iterators.adb (.../branches/gcc-4_7-branch) (wersja 187293)
9177@@ -0,0 +1,21 @@
9178+package body Controlled6_Pkg.Iterators is
9179+
9180+ function Find return Iterator_Type is
9181+ Iterator : Iterator_Type;
9182+ begin
9183+ return Iterator;
9184+ end Find;
9185+
9186+ function Current (Iterator : in Iterator_Type) return T is begin
9187+ return Iterator.Current.Item;
9188+ end Current;
9189+
9190+ procedure Find_Next (Iterator : in out Iterator_Type) is begin
9191+ Iterator.Current := null;
9192+ end Find_Next;
9193+
9194+ function Is_Null (Iterator : in Iterator_Type) return Boolean is begin
9195+ return Iterator.Current = null;
9196+ end Is_Null;
9197+
9198+end Controlled6_Pkg.Iterators;
9199Index: gcc/testsuite/gnat.dg/concat2.ads
9200===================================================================
9201--- gcc/testsuite/gnat.dg/concat2.ads (.../tags/gcc_4_7_0_release) (wersja 0)
9202+++ gcc/testsuite/gnat.dg/concat2.ads (.../branches/gcc-4_7-branch) (wersja 187293)
9203@@ -0,0 +1,8 @@
9204+-- { dg-do compile }
9205+-- { dg-options "-O" }
9206+
9207+package Concat2 is
9208+
9209+ procedure Browse;
9210+
9211+end Concat2;
9212Index: gcc/testsuite/gnat.dg/controlled6_pkg-iterators.ads
9213===================================================================
9214--- gcc/testsuite/gnat.dg/controlled6_pkg-iterators.ads (.../tags/gcc_4_7_0_release) (wersja 0)
9215+++ gcc/testsuite/gnat.dg/controlled6_pkg-iterators.ads (.../branches/gcc-4_7-branch) (wersja 187293)
9216@@ -0,0 +1,22 @@
9217+with Ada.Finalization;
9218+
9219+generic
9220+
9221+ I : Integer;
9222+
9223+package Controlled6_Pkg.Iterators is
9224+
9225+ type Iterator_Type is new Ada.Finalization.Controlled with record
9226+ Current : Node_Access_Type;
9227+ end record;
9228+
9229+ function Find return Iterator_Type;
9230+
9231+ function Current (Iterator : in Iterator_Type) return T;
9232+ pragma Inline (Current);
9233+
9234+ procedure Find_Next (Iterator : in out Iterator_Type);
9235+
9236+ function Is_Null (Iterator : in Iterator_Type) return Boolean;
9237+
9238+end Controlled6_Pkg.Iterators;
9239Index: gcc/testsuite/gnat.dg/controlled6_pkg.ads
9240===================================================================
9241--- gcc/testsuite/gnat.dg/controlled6_pkg.ads (.../tags/gcc_4_7_0_release) (wersja 0)
9242+++ gcc/testsuite/gnat.dg/controlled6_pkg.ads (.../branches/gcc-4_7-branch) (wersja 187293)
9243@@ -0,0 +1,15 @@
9244+with Ada.Finalization;
9245+
9246+generic
9247+
9248+ type T is private;
9249+
9250+package Controlled6_Pkg is
9251+
9252+ type Node_Type is record
9253+ Item : T;
9254+ end record;
9255+
9256+ type Node_Access_Type is access Node_Type;
9257+
9258+end Controlled6_Pkg;
9259Index: gcc/testsuite/gcc.dg/pr49994-3.c
9260===================================================================
9261--- gcc/testsuite/gcc.dg/pr49994-3.c (.../tags/gcc_4_7_0_release) (wersja 187293)
9262+++ gcc/testsuite/gcc.dg/pr49994-3.c (.../branches/gcc-4_7-branch) (wersja 187293)
9263@@ -1,8 +1,7 @@
9264 /* { dg-do compile } */
9265-/* { dg-options "-O2 -fsched2-use-superblocks -g" } */
9266+/* { dg-options "-O2 -fsched2-use-superblocks -g -w" } */
9267 /* { dg-options "-O2 -fsched2-use-superblocks -g -mbackchain" { target s390*-*-* } } */
9268 /* { dg-require-effective-target scheduling } */
9269-/* { dg-skip-if "PR testsuite/50722" { ia64-*-*-* hppa*-*-* *-*-hpux* } } */
9270
9271 void *
9272 foo (int offset)
9273Index: gcc/testsuite/gcc.dg/pr52691.c
9274===================================================================
9275--- gcc/testsuite/gcc.dg/pr52691.c (.../tags/gcc_4_7_0_release) (wersja 0)
9276+++ gcc/testsuite/gcc.dg/pr52691.c (.../branches/gcc-4_7-branch) (wersja 187293)
9277@@ -0,0 +1,24 @@
9278+/* PR middle-end/52691 */
9279+/* { dg-do compile } */
9280+/* { dg-options "-O2 -fdump-tree-optimized" } */
9281+
9282+#include <stdarg.h>
9283+
9284+int
9285+foo (int a, ...)
9286+{
9287+ int b = 0, c = 0;
9288+ va_list ap;
9289+ va_start (ap, a);
9290+ if (a > 1)
9291+ b = va_arg (ap, double);
9292+ if (a > 2)
9293+ c = va_arg (ap, long long);
9294+ va_end (ap);
9295+ return a + b + c;
9296+}
9297+
9298+/* { dg-final { scan-tree-dump "__builtin_next_arg" "optimized" { target { { i?86-*-* x86_64-*-* } && ia32 } } } } */
9299+/* { dg-final { scan-tree-dump "__builtin_next_arg" "optimized" { target { powerpc*-*-darwin* powerpc*-*-aix* } } } } */
9300+/* { dg-final { scan-tree-dump "__builtin_next_arg" "optimized" { target { powerpc*-*-linux* && lp64 } } } } */
9301+/* { dg-final { cleanup-tree-dump "optimized" } } */
9302Index: gcc/testsuite/gcc.dg/pr52862.c
9303===================================================================
9304--- gcc/testsuite/gcc.dg/pr52862.c (.../tags/gcc_4_7_0_release) (wersja 0)
9305+++ gcc/testsuite/gcc.dg/pr52862.c (.../branches/gcc-4_7-branch) (wersja 187293)
9306@@ -0,0 +1,9 @@
9307+/* { dg-do compile } */
9308+/* { dg-options "-O" } */
9309+
9310+void ASMAtomicWritePtrVoid(const void *pv);
9311+void rtThreadDestroy(void)
9312+{
9313+ void * const pvTypeChecked = ((void *)0);
9314+ ASMAtomicWritePtrVoid((void *)(pvTypeChecked));
9315+}
9316Index: gcc/testsuite/gcc.dg/pr52880.c
9317===================================================================
9318--- gcc/testsuite/gcc.dg/pr52880.c (.../tags/gcc_4_7_0_release) (wersja 0)
9319+++ gcc/testsuite/gcc.dg/pr52880.c (.../branches/gcc-4_7-branch) (wersja 187293)
9320@@ -0,0 +1,10 @@
9321+/* PR c/52880 */
9322+/* { dg-do compile } */
9323+/* { dg-options "-Woverride-init" } */
9324+
9325+struct A { int a; int b; };
9326+struct B { struct A c; int d, e; };
9327+struct B f = { .c.a = 0, .e = 1, .d = 2, .c.b = 3 };
9328+struct C { int g; int h; };
9329+struct D { int i; struct C j; int k; };
9330+struct D l = { .j.g = 0, .k = 1, .i = 2, .j.h = 3 };
9331Index: gcc/testsuite/gcc.dg/pr53174.c
9332===================================================================
9333--- gcc/testsuite/gcc.dg/pr53174.c (.../tags/gcc_4_7_0_release) (wersja 0)
9334+++ gcc/testsuite/gcc.dg/pr53174.c (.../branches/gcc-4_7-branch) (wersja 187293)
9335@@ -0,0 +1,67 @@
9336+/* PR debug/53174 */
9337+/* { dg-do compile } */
9338+/* { dg-options "-Ofast -g" } */
9339+
9340+int w, h;
9341+
9342+void
9343+bar (float (*x)[4], int y, int z)
9344+{
9345+ int a, b, c, d, e, f, g;
9346+
9347+ a = 2;
9348+ b = 2;
9349+ c = 274;
9350+ d = 274;
9351+ if (!z)
9352+ a = 12;
9353+ if (!y)
9354+ b = 12;
9355+ if (z + 266 >= h - 2)
9356+ c = 8 + h - z;
9357+ if (y + 266 >= w - 2)
9358+ d = 8 + w - y;
9359+ for (e = a; e < c; e++)
9360+ for (f = b, g = e * 276 + f; f < d; f++, g++)
9361+ {
9362+ float (*h)[4] = x + (g - 277);
9363+ float k = (*h)[0];
9364+ float l = (*h)[1];
9365+ float m = (*h)[2];
9366+ h++;
9367+ k += (*h)[0];
9368+ l += (*h)[1];
9369+ m += (*h)[2];
9370+ h++;
9371+ k += (*h)[0];
9372+ l += (*h)[1];
9373+ m += (*h)[2];
9374+ h += 274;
9375+ k += (*h)[0];
9376+ l += (*h)[1];
9377+ m += (*h)[2];
9378+ h += 2;
9379+ k += (*h)[0];
9380+ l += (*h)[1];
9381+ m += (*h)[2];
9382+ h += 274;
9383+ k += (*h)[0];
9384+ l += (*h)[1];
9385+ m += (*h)[2];
9386+ h++;
9387+ k += (*h)[0];
9388+ l += (*h)[1];
9389+ m += (*h)[2];
9390+ h++;
9391+ k += (*h)[0];
9392+ l += (*h)[1];
9393+ m += (*h)[2];
9394+ k *= 0.125f;
9395+ l *= 0.125f;
9396+ m *= 0.125f;
9397+ k = k + (x[g][1] - l);
9398+ m = m + (x[g][1] - l);
9399+ x[g][0] = k;
9400+ x[g][2] = m;
9401+ }
9402+}
9403Index: gcc/testsuite/gcc.dg/dll-8.c
9404===================================================================
9405--- gcc/testsuite/gcc.dg/dll-8.c (.../tags/gcc_4_7_0_release) (wersja 187293)
9406+++ gcc/testsuite/gcc.dg/dll-8.c (.../branches/gcc-4_7-branch) (wersja 187293)
9407
9408Zmiany atrybutów dla: gcc/testsuite/gcc.dg/dll-8.c
9409___________________________________________________________________
9410Deleted: svn:executable
9411## -1 +0,0 ##
9412-*
9413\ No newline at end of property
9414Index: gcc/testsuite/gcc.dg/lto/pr53214_0.c
9415===================================================================
9416--- gcc/testsuite/gcc.dg/lto/pr53214_0.c (.../tags/gcc_4_7_0_release) (wersja 0)
9417+++ gcc/testsuite/gcc.dg/lto/pr53214_0.c (.../branches/gcc-4_7-branch) (wersja 187293)
9418@@ -0,0 +1,8 @@
9419+/* { dg-lto-do run } */
9420+
9421+double a(double) __attribute__ ((optimize(1), used));
9422+double a(double r)
9423+{
9424+ return r;
9425+}
9426+int main () { return 0; }
9427Index: gcc/testsuite/gcc.dg/torture/pr52969.c
9428===================================================================
9429--- gcc/testsuite/gcc.dg/torture/pr52969.c (.../tags/gcc_4_7_0_release) (wersja 0)
9430+++ gcc/testsuite/gcc.dg/torture/pr52969.c (.../branches/gcc-4_7-branch) (wersja 187293)
9431@@ -0,0 +1,16 @@
9432+/* { dg-do compile } */
9433+/* { dg-options "-ftree-loop-if-convert-stores" } */
9434+
9435+int a, b;
9436+float xsum[100];
9437+void foo (float *cluster)
9438+{
9439+ int j;
9440+ for (; a ; ++j) {
9441+ xsum[j] = cluster[j];
9442+ if (xsum[j] > 0)
9443+ xsum[j] = 0;
9444+ }
9445+ if (xsum[0])
9446+ b = 0;
9447+}
9448Index: gcc/testsuite/gcc.dg/torture/pr52693.c
9449===================================================================
9450--- gcc/testsuite/gcc.dg/torture/pr52693.c (.../tags/gcc_4_7_0_release) (wersja 0)
9451+++ gcc/testsuite/gcc.dg/torture/pr52693.c (.../branches/gcc-4_7-branch) (wersja 187293)
9452@@ -0,0 +1,33 @@
9453+/* { dg-do run } */
9454+
9455+struct pair
9456+{
9457+ int x;
9458+ int y;
9459+};
9460+
9461+struct array
9462+{
9463+ struct pair elems[ 2 ];
9464+ unsigned index;
9465+};
9466+
9467+extern void abort ();
9468+
9469+void __attribute__ ((noinline,noclone))
9470+test_results (int x1, int y1, int x2, int y2)
9471+{
9472+ if (x1 != x2 || y1 != y2)
9473+ abort ();
9474+}
9475+
9476+int
9477+main (void)
9478+{
9479+ struct array arr = {{{1,2}, {3,4}}, 1};
9480+ struct pair last = arr.elems[arr.index];
9481+
9482+ test_results ( last.x, last.y, arr.elems[1].x, arr.elems[1].y);
9483+
9484+ return 0;
9485+}
9486Index: gcc/testsuite/gcc.dg/torture/pr52406.c
9487===================================================================
9488--- gcc/testsuite/gcc.dg/torture/pr52406.c (.../tags/gcc_4_7_0_release) (wersja 0)
9489+++ gcc/testsuite/gcc.dg/torture/pr52406.c (.../branches/gcc-4_7-branch) (wersja 187293)
9490@@ -0,0 +1,29 @@
9491+/* { dg-do run } */
9492+
9493+extern void abort (void);
9494+struct { int f1; } a[2];
9495+
9496+int *b, *const k = &a[1].f1;
9497+static int **c = &b;
9498+
9499+int e, f, d;
9500+
9501+int
9502+main ()
9503+{
9504+ int **l = &b;
9505+ *l = k;
9506+ for (; d <= 0; d++)
9507+ {
9508+ int *j = &e;
9509+ **c = 1;
9510+ *l = k;
9511+ *k ^= 0;
9512+ f = **l;
9513+ *j = f;
9514+ }
9515+ if (e != 1)
9516+ abort ();
9517+ return 0;
9518+}
9519+
9520Index: gcc/testsuite/gcc.dg/torture/pr53272-1.c
9521===================================================================
9522--- gcc/testsuite/gcc.dg/torture/pr53272-1.c (.../tags/gcc_4_7_0_release) (wersja 0)
9523+++ gcc/testsuite/gcc.dg/torture/pr53272-1.c (.../branches/gcc-4_7-branch) (wersja 187293)
9524@@ -0,0 +1,39 @@
9525+/* { dg-do run } */
9526+/* { dg-additional-sources "pr53272-2.c" } */
9527+struct rtc_class_ops {
9528+ int (*f)(void *, unsigned int enabled);
9529+};
9530+
9531+struct rtc_device
9532+{
9533+ void *owner;
9534+ const struct rtc_class_ops *ops;
9535+ int ops_lock;
9536+};
9537+
9538+__attribute__ ((__noinline__, __noclone__))
9539+extern int foo(void *);
9540+__attribute__ ((__noinline__, __noclone__))
9541+extern void foobar(void *);
9542+
9543+__attribute__ ((__noinline__, __noclone__))
9544+int rtc_update_irq_enable(struct rtc_device *rtc, unsigned int enabled)
9545+{
9546+ int err;
9547+ asm volatile ("");
9548+
9549+ err = foo(&rtc->ops_lock);
9550+
9551+ if (err)
9552+ return err;
9553+
9554+ if (!rtc->ops)
9555+ err = -19;
9556+ else if (!rtc->ops->f)
9557+ err = -22;
9558+ else
9559+ err = rtc->ops->f(rtc->owner, enabled);
9560+
9561+ foobar(&rtc->ops_lock);
9562+ return err;
9563+}
9564Index: gcc/testsuite/gcc.dg/torture/pr53144.c
9565===================================================================
9566--- gcc/testsuite/gcc.dg/torture/pr53144.c (.../tags/gcc_4_7_0_release) (wersja 0)
9567+++ gcc/testsuite/gcc.dg/torture/pr53144.c (.../branches/gcc-4_7-branch) (wersja 187293)
9568@@ -0,0 +1,21 @@
9569+/* { dg-do compile } */
9570+
9571+typedef unsigned char __attribute__((vector_size(4))) uvec;
9572+
9573+int main (int argc, char *argv[]) {
9574+ int i;
9575+ int x = 0;
9576+ uvec uc0 = (uvec) {argc, 1, 2, 10};
9577+ unsigned char uc1[4] = {0, 3, 2, 200};
9578+ signed char ucg[4] = {1, 0, 0, 0 };
9579+ signed char ucl[4] = {0, 1, 0, 1 };
9580+
9581+#define uc0_ ((unsigned char *)&uc0)
9582+
9583+ for (i = 0; i < 4; i ++) {
9584+ x |= ucg[i] != (uc0_[i] > uc1[i]);
9585+ x |= ucl[i] != (uc0_[i] < uc1[i]);
9586+ }
9587+ return x;
9588+}
9589+
9590Index: gcc/testsuite/gcc.dg/torture/pr53272-2.c
9591===================================================================
9592--- gcc/testsuite/gcc.dg/torture/pr53272-2.c (.../tags/gcc_4_7_0_release) (wersja 0)
9593+++ gcc/testsuite/gcc.dg/torture/pr53272-2.c (.../branches/gcc-4_7-branch) (wersja 187293)
9594@@ -0,0 +1,39 @@
9595+__attribute__ ((__noinline__, __noclone__))
9596+int foo(void *x)
9597+{
9598+ asm ("");
9599+ return *(int *) x != 42;
9600+}
9601+
9602+__attribute__ ((__noinline__, __noclone__))
9603+void foobar(void *x)
9604+{
9605+ asm ("");
9606+ if (foo(x))
9607+ __builtin_abort();
9608+}
9609+
9610+struct rtc_class_ops {
9611+ int (*f)(void *, unsigned int enabled);
9612+};
9613+
9614+struct rtc_device
9615+{
9616+ void *owner;
9617+ struct rtc_class_ops *ops;
9618+ int ops_lock;
9619+};
9620+
9621+extern __attribute__ ((__noinline__, __noclone__))
9622+int rtc_update_irq_enable(struct rtc_device *rtc, unsigned int);
9623+
9624+int main(void)
9625+{
9626+ struct rtc_class_ops ops = {(void *) 0};
9627+ struct rtc_device dev1 = {0, &ops, 42};
9628+
9629+ if (rtc_update_irq_enable (&dev1, 1) != -22)
9630+ __builtin_abort ();
9631+
9632+ __builtin_exit (0);
9633+}
9634Index: gcc/testsuite/gcc.dg/torture/pr53120.c
9635===================================================================
9636--- gcc/testsuite/gcc.dg/torture/pr53120.c (.../tags/gcc_4_7_0_release) (wersja 0)
9637+++ gcc/testsuite/gcc.dg/torture/pr53120.c (.../branches/gcc-4_7-branch) (wersja 187293)
9638@@ -0,0 +1,110 @@
9639+/* { dg-do compile } */
9640+/* { dg-options "-fno-tree-sra" } */
9641+typedef struct {
9642+ unsigned int en : 1;
9643+ unsigned int bit_order : 1;
9644+ unsigned int scl_io : 1;
9645+ unsigned int scl_inv : 1;
9646+ unsigned int sda0_io : 1;
9647+ unsigned int sda0_idle : 1;
9648+ unsigned int sda1_io : 1;
9649+ unsigned int sda1_idle : 1;
9650+ unsigned int sda2_io : 1;
9651+ unsigned int sda2_idle : 1;
9652+ unsigned int sda3_io : 1;
9653+ unsigned int sda3_idle : 1;
9654+ unsigned int sda_sel : 2;
9655+ unsigned int sen_idle : 1;
9656+ unsigned int sen_inv : 1;
9657+ unsigned int sen_sel : 2;
9658+ unsigned int dummy1 : 14;
9659+} reg_gio_rw_i2c1_cfg;
9660+
9661+typedef struct {
9662+ unsigned int data0 : 8;
9663+ unsigned int data1 : 8;
9664+ unsigned int data2 : 8;
9665+ unsigned int data3 : 8;
9666+} reg_gio_rw_i2c1_data;
9667+
9668+typedef struct {
9669+ unsigned int trf_bits : 6;
9670+ unsigned int switch_dir : 6;
9671+ unsigned int extra_start : 3;
9672+ unsigned int early_end : 1;
9673+ unsigned int start_stop : 1;
9674+ unsigned int ack_dir0 : 1;
9675+ unsigned int ack_dir1 : 1;
9676+ unsigned int ack_dir2 : 1;
9677+ unsigned int ack_dir3 : 1;
9678+ unsigned int ack_dir4 : 1;
9679+ unsigned int ack_dir5 : 1;
9680+ unsigned int ack_bit : 1;
9681+ unsigned int start_bit : 1;
9682+ unsigned int freq : 2;
9683+ unsigned int dummy1 : 5;
9684+} reg_gio_rw_i2c1_ctrl;
9685+
9686+extern reg_gio_rw_i2c1_cfg reg_gio;
9687+extern reg_gio_rw_i2c1_data reg_data;
9688+extern int reg_start;
9689+extern reg_gio_rw_i2c1_ctrl reg_ctrl;
9690+
9691+extern void foobar(void);
9692+extern void foo(int);
9693+extern void frob(unsigned int);
9694+extern void bar(int);
9695+extern void baz(void);
9696+
9697+unsigned int f(int *devspec, unsigned int addr)
9698+{
9699+ reg_gio_rw_i2c1_ctrl ctrl = {0};
9700+ reg_gio_rw_i2c1_data data = {0};
9701+
9702+ foobar();
9703+
9704+ static int first = 1;
9705+
9706+ if (first) {
9707+ reg_gio_rw_i2c1_cfg cfg = {0};
9708+ first = 0;
9709+
9710+ foo(1);
9711+ cfg.sda0_idle = 1;
9712+ cfg.sda0_io = 0;
9713+ cfg.scl_inv = 0;
9714+ cfg.scl_io = 0;
9715+ cfg.bit_order = 1;
9716+ cfg.sda_sel = 0;
9717+ cfg.sen_sel = 0;
9718+ cfg.en = 1;
9719+ reg_gio = cfg;
9720+ }
9721+
9722+ ctrl.freq = 1;
9723+ ctrl.start_bit = 0;
9724+ ctrl.ack_bit = 1;
9725+ ctrl.ack_dir0 = 0;
9726+ ctrl.ack_dir1 = 0;
9727+ ctrl.ack_dir2 = 0;
9728+ ctrl.ack_dir3 = 1;
9729+ ctrl.ack_dir4 = 0;
9730+ ctrl.ack_dir5 = 0;
9731+ ctrl.start_stop = 1;
9732+ ctrl.early_end = 0;
9733+ ctrl.extra_start = 2;
9734+ ctrl.switch_dir = 8*3;
9735+ ctrl.trf_bits = 8*4;
9736+ reg_ctrl = ctrl;
9737+ frob(0xac);
9738+ data.data0 = devspec[1] & 192;
9739+ data.data1 = addr;
9740+ data.data2 = devspec[1] | 0x01;
9741+ reg_data = data;
9742+ reg_start = 1;
9743+ bar(100);
9744+ data = reg_data;
9745+ baz();
9746+
9747+ return data.data3;
9748+}
9749Index: gcc/testsuite/gcc.dg/torture/pr52493.c
9750===================================================================
9751--- gcc/testsuite/gcc.dg/torture/pr52493.c (.../tags/gcc_4_7_0_release) (wersja 0)
9752+++ gcc/testsuite/gcc.dg/torture/pr52493.c (.../branches/gcc-4_7-branch) (wersja 187293)
9753@@ -0,0 +1,38 @@
9754+/* { dg-do compile } */
9755+
9756+struct Time {
9757+ long int sec;
9758+ long usec;
9759+};
9760+struct Flow {
9761+ unsigned short iif;
9762+ struct Time mtime;
9763+};
9764+struct NetFlow {
9765+ unsigned MaxFlows;
9766+ unsigned HeaderFields;
9767+ unsigned short *HeaderFormat;
9768+};
9769+static struct NetFlow *netflow;
9770+static struct Time start_time;
9771+static unsigned char emit_packet[1500];
9772+inline long int cmpmtime(struct Time *t1, struct Time *t2)
9773+{
9774+ return (t1->sec - t2->sec) * 1000 + (t1->usec - t2->usec) / 1000;
9775+}
9776+static void fill(int fields, unsigned short *format,
9777+ struct Flow *flow, void *p)
9778+{
9779+ int i;
9780+ for (i = 0; i < fields; i++)
9781+ if (format[i] == 21)
9782+ {
9783+ unsigned int __v;
9784+ __v = cmpmtime(&flow->mtime, &start_time);
9785+ *((unsigned int *) p) = __v;
9786+ }
9787+}
9788+void emit_thread()
9789+{
9790+ fill(netflow->HeaderFields, netflow->HeaderFormat, 0, &emit_packet);
9791+}
9792Index: gcc/testsuite/gcc.dg/torture/pr52720.c
9793===================================================================
9794--- gcc/testsuite/gcc.dg/torture/pr52720.c (.../tags/gcc_4_7_0_release) (wersja 0)
9795+++ gcc/testsuite/gcc.dg/torture/pr52720.c (.../branches/gcc-4_7-branch) (wersja 187293)
9796@@ -0,0 +1,28 @@
9797+/* { dg-do compile } */
9798+/* { dg-options "-march=k8-sse3" { target x86_64-*-* } } */
9799+
9800+struct alu_bank_swizzle {
9801+ int hw_gpr[3][4];
9802+ int hw_cfile_addr[4];
9803+};
9804+static void init_bank_swizzle(struct alu_bank_swizzle *bs)
9805+{
9806+ int i, cycle, component;
9807+ for (cycle = 0; cycle < 3; cycle++)
9808+ for (component = 0; component < 4; component++)
9809+ bs->hw_gpr[cycle][component] = -1;
9810+ for (i = 0; i < 4; i++)
9811+ bs->hw_cfile_addr[i] = -1;
9812+}
9813+int check_and_set_bank_swizzle(int max_slots, int *slots)
9814+{
9815+ struct alu_bank_swizzle bs;
9816+ int i;
9817+ for (i = 0; i < max_slots; i++)
9818+ {
9819+ init_bank_swizzle(&bs);
9820+ if (slots[i])
9821+ check_vector(&bs);
9822+ }
9823+}
9824+
9825Index: gcc/testsuite/gcc.dg/torture/pr52943.c
9826===================================================================
9827--- gcc/testsuite/gcc.dg/torture/pr52943.c (.../tags/gcc_4_7_0_release) (wersja 0)
9828+++ gcc/testsuite/gcc.dg/torture/pr52943.c (.../branches/gcc-4_7-branch) (wersja 187293)
9829@@ -0,0 +1,20 @@
9830+/* { dg-do run } */
9831+
9832+extern void abort (void);
9833+int a[] = { 0, 0, 0, 6 };
9834+
9835+int b;
9836+int
9837+main ()
9838+{
9839+ for (;;)
9840+ {
9841+ b = 3;
9842+ for (; b; b -= 1)
9843+ a[b] = a[3] > 1;
9844+ break;
9845+ }
9846+ if (a[1] != 0)
9847+ abort ();
9848+ return 0;
9849+}
9850Index: gcc/testsuite/gcc.dg/pr52734.c
9851===================================================================
9852--- gcc/testsuite/gcc.dg/pr52734.c (.../tags/gcc_4_7_0_release) (wersja 0)
9853+++ gcc/testsuite/gcc.dg/pr52734.c (.../branches/gcc-4_7-branch) (wersja 187293)
9854@@ -0,0 +1,35 @@
9855+/* { dg-do run } */
9856+/* { dg-options "-O2" } */
9857+
9858+int bbb = 0;
9859+
9860+int __attribute__((noinline,noclone)) aaa(void)
9861+{
9862+ ++bbb;
9863+ return 0;
9864+}
9865+
9866+int __attribute__((noinline,noclone)) ccc(void)
9867+{
9868+ int ddd;
9869+ /* bbb == 0 */
9870+ if (aaa())
9871+ return bbb;
9872+
9873+ /* bbb == 1 */
9874+ ddd = bbb;
9875+ /* bbb == ddd == 1 */
9876+ if (aaa ())
9877+ return 0;
9878+ /* bbb == 2, ddd == 1 */
9879+
9880+ return ddd;
9881+}
9882+
9883+int main(void)
9884+{
9885+ if (ccc() != 1)
9886+ __builtin_abort();
9887+ return 0;
9888+}
9889+
9890Index: gcc/testsuite/gcc.dg/vect/vect-over-widen-1.c
9891===================================================================
9892--- gcc/testsuite/gcc.dg/vect/vect-over-widen-1.c (.../tags/gcc_4_7_0_release) (wersja 187293)
9893+++ gcc/testsuite/gcc.dg/vect/vect-over-widen-1.c (.../branches/gcc-4_7-branch) (wersja 187293)
9894@@ -58,7 +58,9 @@
9895 return 0;
9896 }
9897
9898-/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" { target {! vect_sizes_32B_16B} } } } */
9899+/* { dg-final { scan-tree-dump-times "vect_recog_widen_shift_pattern: detected" 2 "vect" { target vect_widen_shift } } } */
9900+/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 2 "vect" { target vect_widen_shift } } } */
9901+/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" { target { { ! vect_sizes_32B_16B } && { ! vect_widen_shift } } } } } */
9902 /* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 8 "vect" { target vect_sizes_32B_16B } } } */
9903 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
9904 /* { dg-final { cleanup-tree-dump "vect" } } */
9905Index: gcc/testsuite/gcc.dg/vect/vect-over-widen-1-big-array.c
9906===================================================================
9907--- gcc/testsuite/gcc.dg/vect/vect-over-widen-1-big-array.c (.../tags/gcc_4_7_0_release) (wersja 187293)
9908+++ gcc/testsuite/gcc.dg/vect/vect-over-widen-1-big-array.c (.../branches/gcc-4_7-branch) (wersja 187293)
9909@@ -58,7 +58,9 @@
9910 return 0;
9911 }
9912
9913-/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" } } */
9914+/* { dg-final { scan-tree-dump-times "vect_recog_widen_shift_pattern: detected" 2 "vect" { target vect_widen_shift } } } */
9915+/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 2 "vect" { target vect_widen_shift } } } */
9916+/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" { target { ! vect_widen_shift } } } } */
9917 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
9918 /* { dg-final { cleanup-tree-dump "vect" } } */
9919
9920Index: gcc/testsuite/gcc.dg/vect/vect-over-widen-4.c
9921===================================================================
9922--- gcc/testsuite/gcc.dg/vect/vect-over-widen-4.c (.../tags/gcc_4_7_0_release) (wersja 187293)
9923+++ gcc/testsuite/gcc.dg/vect/vect-over-widen-4.c (.../branches/gcc-4_7-branch) (wersja 187293)
9924@@ -62,7 +62,9 @@
9925 return 0;
9926 }
9927
9928-/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" { target {! vect_sizes_32B_16B } } } } */
9929+/* { dg-final { scan-tree-dump-times "vect_recog_widen_shift_pattern: detected" 2 "vect" { target vect_widen_shift } } } */
9930+/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 2 "vect" { target vect_widen_shift } } } */
9931+/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" { target { { ! vect_sizes_32B_16B } && { ! vect_widen_shift } } } } } */
9932 /* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 8 "vect" { target vect_sizes_32B_16B } } } */
9933 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
9934 /* { dg-final { cleanup-tree-dump "vect" } } */
9935Index: gcc/testsuite/gcc.dg/vect/vect-over-widen-4-big-array.c
9936===================================================================
9937--- gcc/testsuite/gcc.dg/vect/vect-over-widen-4-big-array.c (.../tags/gcc_4_7_0_release) (wersja 187293)
9938+++ gcc/testsuite/gcc.dg/vect/vect-over-widen-4-big-array.c (.../branches/gcc-4_7-branch) (wersja 187293)
9939@@ -62,7 +62,9 @@
9940 return 0;
9941 }
9942
9943-/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" } } */
9944+/* { dg-final { scan-tree-dump-times "vect_recog_widen_shift_pattern: detected" 2 "vect" { target vect_widen_shift } } } */
9945+/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 2 "vect" { target vect_widen_shift } } } */
9946+/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" { target { ! vect_widen_shift } } } } */
9947 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
9948 /* { dg-final { cleanup-tree-dump "vect" } } */
9949
9950Index: gcc/testsuite/gcc.dg/vect/pr52870.c
9951===================================================================
9952--- gcc/testsuite/gcc.dg/vect/pr52870.c (.../tags/gcc_4_7_0_release) (wersja 0)
9953+++ gcc/testsuite/gcc.dg/vect/pr52870.c (.../branches/gcc-4_7-branch) (wersja 187293)
9954@@ -0,0 +1,17 @@
9955+/* { dg-do compile } */
9956+/* { dg-options "-O1 -ftree-vectorize" } */
9957+
9958+long
9959+test (int *x)
9960+{
9961+ unsigned long sx, xprec;
9962+
9963+ sx = *x >= 0 ? *x : -*x;
9964+
9965+ xprec = sx * 64;
9966+
9967+ if (sx < 16384)
9968+ foo (sx);
9969+
9970+ return xprec;
9971+}
9972Index: gcc/testsuite/gcc.dg/pr53060.c
9973===================================================================
9974--- gcc/testsuite/gcc.dg/pr53060.c (.../tags/gcc_4_7_0_release) (wersja 0)
9975+++ gcc/testsuite/gcc.dg/pr53060.c (.../branches/gcc-4_7-branch) (wersja 187293)
9976@@ -0,0 +1,24 @@
9977+/* { dg-do run } */
9978+
9979+extern void abort (void);
9980+
9981+int f(void) { return 2; }
9982+unsigned int g(void) { return 5; }
9983+unsigned int h = 1;
9984+
9985+typedef unsigned int vec __attribute__((vector_size(16)));
9986+
9987+vec i = { 1, 2, 3, 4};
9988+
9989+vec fv1(void) { return i + (h ? f() : g()); }
9990+vec fv2(void) { return (h ? f() : g()) + i; }
9991+
9992+int main()
9993+{
9994+ vec i, j;
9995+ j = fv1();
9996+ if (j[0] != 3) abort();
9997+ i = fv2();
9998+ if (i[0] != 3) abort();
9999+ return 0;
10000+}
10001Index: gcc/testsuite/gcc.dg/Wunused-var-3.c
10002===================================================================
10003--- gcc/testsuite/gcc.dg/Wunused-var-3.c (.../tags/gcc_4_7_0_release) (wersja 0)
10004+++ gcc/testsuite/gcc.dg/Wunused-var-3.c (.../branches/gcc-4_7-branch) (wersja 187293)
10005@@ -0,0 +1,34 @@
10006+/* PR c/52577 */
10007+/* { dg-do compile } */
10008+/* { dg-options "-Wunused" } */
10009+
10010+typedef int V __attribute__((vector_size (sizeof (int) * 4)));
10011+
10012+void
10013+f1 (V *p)
10014+{
10015+ V mask = { 1, 2, 3, 0 };
10016+ *p = __builtin_shuffle (*p, mask);
10017+}
10018+
10019+void
10020+f2 (V *p, V *q)
10021+{
10022+ V mask = { 1, 2, 3, 0 };
10023+ *p = __builtin_shuffle (*p, *q, mask);
10024+}
10025+
10026+void
10027+f3 (V *p, V *mask)
10028+{
10029+ V a = { 1, 2, 3, 0 };
10030+ *p = __builtin_shuffle (a, *mask);
10031+}
10032+
10033+void
10034+f4 (V *p, V *mask)
10035+{
10036+ V a = { 1, 2, 3, 0 };
10037+ V b = { 2, 3, 4, 1 };
10038+ *p = __builtin_shuffle (a, b, *mask);
10039+}
10040Index: gcc/testsuite/ChangeLog
10041===================================================================
10042--- gcc/testsuite/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293)
10043+++ gcc/testsuite/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293)
10044@@ -1,3 +1,525 @@
10045+2012-05-08 Hans-Peter Nilsson <hp@axis.com>
10046+
10047+ PR target/53272
10048+ * gcc.dg/torture/pr53272-1.c, gcc.dg/torture/pr53272-2.c: New test.
10049+
10050+2012-05-07 Jakub Jelinek <jakub@redhat.com>
10051+
10052+ PR tree-optimization/53239
10053+ * g++.dg/opt/vrp3.C: New test.
10054+ * g++.dg/opt/vrp3-aux.cc: New file.
10055+ * g++.dg/opt/vrp3.h: New file.
10056+
10057+2012-05-07 Tobias Burnus <burnus@net-b.de>
10058+
10059+ Backport from mainline:
10060+ 2012-05-07 Tobias Burnus <burnus@net-b.de>
10061+
10062+ PR fortran/53255
10063+ * gfortran.dg/typebound_operator_15.f90: New.
10064+
10065+2012-05-05 Tobias Burnus <burnus@net-b.de>
10066+
10067+ Backport from mainline:
10068+ 2012-05-04 Tobias Burnus <burnus@net-b.de>
10069+
10070+ PR fortran/53111
10071+ * gfortran.dg/constructor_7.f90: New.
10072+ * gfortran.dg/constructor_8.f90: New.
10073+
10074+2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
10075+
10076+ Backport from mainline:
10077+
10078+ 2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
10079+
10080+ PR tree-optimization/52633
10081+ * gcc.dg/vect/vect-over-widen-1.c: Two patterns should now be
10082+ recognized as widening shifts instead of over-widening.
10083+ * gcc.dg/vect/vect-over-widen-1-big-array.c: Likewise.
10084+ * gcc.dg/vect/vect-over-widen-4.c: Likewise.
10085+ * gcc.dg/vect/vect-over-widen-4-big-array.c: Likewise.
10086+ * gcc.target/arm/pr52633.c: New test.
10087+
10088+ 2012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
10089+
10090+ PR tree-optimization/52870
10091+ * gcc.dg/vect/pr52870.c: New test.
10092+
10093+2012-05-04 Richard Guenther <rguenther@suse.de>
10094+
10095+ * gcc.dg/lto/pr53214_0.c: New testcase.
10096+
10097+2012-05-04 Eric Botcazou <ebotcazou@adacore.com>
10098+
10099+ * gcc.target/ia64/pr48496.c: New test.
10100+ * gcc.target/ia64/pr52657.c: Likewise.
10101+
10102+2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
10103+
10104+ Backport from mainline
10105+ 2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
10106+
10107+ PR target/53199
10108+ * gcc.target/powwerpc/pr53199.c: New file.
10109+
10110+2012-05-03 Martin Jambor <mjambor@suse.cz>
10111+
10112+ Backport from mainline
10113+ 2012-05-02 Martin Jambor <mjambor@suse.cz>
10114+
10115+ PR lto/52605
10116+ * g++.dg/lto/pr52605_0.C: New test.
10117+
10118+2012-05-03 Paolo Carlini <paolo.carlini@oracle.com>
10119+
10120+ PR c++/53186
10121+ * g++.dg/other/final2.C: New.
10122+
10123+2012-05-03 Jakub Jelinek <jakub@redhat.com>
10124+
10125+ PR debug/53174
10126+ * gcc.dg/pr53174.c: New test.
10127+
10128+ PR target/53187
10129+ * gcc.target/arm/pr53187.c: New test.
10130+ * gcc.c-torture/compile/pr53187.c: New test.
10131+
10132+2012-05-03 Richard Guenther <rguenther@suse.de>
10133+
10134+ PR tree-optimization/53144
10135+ * gcc.dg/torture/pr53144.c: New testcase.
10136+
10137+2012-05-02 Tobias Burnus <burnus@net-b.de>
10138+
10139+ Backport from mainline
10140+ 2012-04-16 Tobias Burnus <burnus@net-b.de>
10141+
10142+ PR fortran/52864
10143+ * gfortran.dg/pointer_intent_6.f90: New.
10144+
10145+2012-05-02 Jakub Jelinek <jakub@redhat.com>
10146+
10147+ PR tree-optimization/53163
10148+ * gcc.c-torture/compile/pr53163.c: New test.
10149+
10150+ PR rtl-optimization/53160
10151+ * gcc.c-torture/execute/pr53160.c: New test.
10152+
10153+2012-04-30 Thomas Koenig <tkoenig@gcc.gnu.org>
10154+
10155+ PR fortran/53148
10156+ Backport from trunk
10157+ * gfortran.dg/function_optimize_12.f90: New test.
10158+
10159+2012-04-30 Uros Bizjak <ubizjak@gmail.com>
10160+
10161+ Backport from mainline
10162+ 2012-04-27 Paolo Bonzini <bonzini@gnu.org>
10163+
10164+ PR target/53138
10165+ * gcc.c-torture/execute/20120427-1.c: New testcase.
10166+
10167+2012-04-26 Hans-Peter Nilsson <hp@axis.com>
10168+
10169+ PR target/53120
10170+ * gcc.dg/torture/pr53120.c: New test.
10171+
10172+2012-04-25 Jakub Jelinek <jakub@redhat.com>
10173+
10174+ PR c/52880
10175+ * gcc.dg/pr52880.c: New test.
10176+
10177+2012-04-24 Georg-Johann Lay <avr@gjlay.de>
10178+
10179+ PR testsuite/52641
10180+ PR tree-optimizations/52891
10181+
10182+ * gcc.c-torture/compile/pr52891-2.c: Fix test for 16-bit int.
10183+
10184+2012-04-24 Richard Guenther <rguenther@suse.de>
10185+
10186+ PR tree-optimization/53085
10187+ * g++.dg/torture/pr53085.C: New testcase.
10188+
10189+2012-04-23 Richard Guenther <rguenther@suse.de>
10190+
10191+ PR c/53060
10192+ * gcc.dg/pr53060.c: New testcase.
10193+
10194+2012-04-23 Jakub Jelinek <jakub@redhat.com>
10195+
10196+ PR tree-optimizations/52891
10197+ * gcc.c-torture/compile/pr52891-1.c: New test.
10198+ * gcc.c-torture/compile/pr52891-2.c: New test.
10199+
10200+2012-04-20 Ian Lance Taylor <iant@google.com>
10201+
10202+ * go.test/go-test.exp (go-set-goarch): Recognize powerpc*-*-*.
10203+ (go-gc-tests): Skip nilptr.go on powerpc*-*-*.
10204+
10205+2012-04-17 Paolo Carlini <paolo.carlini@oracle.com>
10206+
10207+ PR c++/53003
10208+ * g++.dg/parse/crash59.C: New.
10209+
10210+2012-04-16 Jason Merrill <jason@redhat.com>
10211+
10212+ PR c++/38543
10213+ * g++.dg/cpp0x/variadic131.C: New.
10214+
10215+2012-04-16 Jason Merrill <jason@redhat.com>
10216+
10217+ PR c++/50830
10218+ * g++.dg/cpp0x/variadic129.C: New.
10219+
10220+ PR c++/50303
10221+ * g++.dg/cpp0x/variadic128.C: New.
10222+
10223+2012-04-16 Uros Bizjak <ubizjak@gmail.com>
10224+
10225+ Backport from mainline
10226+ 2012-04-12 Uros Bizjak <ubizjak@gmail.com>
10227+
10228+ PR target/52932
10229+ * gcc.target/i386/avx2-vpermps-1.c (avx2_test): Use __m256i type for
10230+ second function argument.
10231+ * gcc.target/i386/avx2-vpermps-2.c (init_permps): Update declaration.
10232+ (calc_permps): Update declaration. Calculate result correctly.
10233+ (avx2_test): Change src2 type to union256i_d.
10234+ * gcc.target/i386/avx2-vpermd-2.c (calc_permd): Calculate result
10235+ correctly.
10236+
10237+2012-04-16 Martin Jambor <mjambor@suse.cz>
10238+
10239+ Backported from mainline
10240+
10241+ 2012-04-13 Martin Jambor <mjambor@suse.cz>
10242+ PR middle-end/52939
10243+
10244+ * g++.dg/ipa/pr52939.C: New test.
10245+
10246+2012-04-15 Jason Merrill <jason@redhat.com>
10247+
10248+ PR c++/52380
10249+ * g++.dg/cpp0x/variadic125.C: New.
10250+
10251+ PR c++/52292
10252+ * g++.dg/cpp0x/variadic124.C: New.
10253+
10254+2012-04-15 Fabien Chêne <fabien@gcc.gnu.org>
10255+
10256+ PR c++/52465
10257+ * g++.dg/lookup/using52.C: New.
10258+
10259+2012-04-13 Jason Merrill <jason@redhat.com>
10260+
10261+ PR c++/52824
10262+ * g++.dg/cpp0x/variadic123.C: New.
10263+ * g++.dg/cpp0x/alias-decl-15.C: Remove dg-errors.
10264+
10265+2012-04-11 Jason Merrill <jason@redhat.com>
10266+
10267+ PR c++/52906
10268+ * g++.dg/ext/attrib45.C: New.
10269+
10270+2012-04-13 Tom de Vries <tom@codesourcery.com>
10271+
10272+ Backport from mainline r186419.
10273+
10274+ 2012-04-13 Tom de Vries <tom@codesourcery.com>
10275+
10276+ * gcc.dg/pr52734.c: New test.
10277+
10278+2012-04-13 Richard Guenther <rguenther@suse.de>
10279+
10280+ PR tree-optimization/52969
10281+ * gcc.dg/torture/pr52969.c: New testcase.
10282+
10283+2012-04-13 Richard Guenther <rguenther@suse.de>
10284+
10285+ PR c/52862
10286+ * gcc.dg/pr52862.c: New testcase.
10287+
10288+2012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
10289+
10290+ Backport from mainline
10291+ 2012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
10292+
10293+ PR target/52775
10294+ * gcc.target/powerpc/pr52775.c: New file.
10295+
10296+2012-04-12 Richard Guenther <rguenther@suse.de>
10297+
10298+ PR tree-optimization/52943
10299+ * gcc.dg/torture/pr52943.c: New testcase.
10300+
10301+2012-04-09 Mike Stump <mikestump@comcast.net>
10302+
10303+ * g++.dg/cpp0x/udlit-raw-op.C: Don't use CRLF endings.
10304+ * gcc.dg/tree-ssa/vrp59.c: Likewise.
10305+ * gcc.dg/tree-ssa/vrp60.c: Likewise.
10306+ * gnat.dg/aggr11.adb: Likewise.
10307+ * gnat.dg/aggr11_pkg.ads: Likewise.
10308+ * gnat.dg/aggr15.adb: Likewise.
10309+ * gnat.dg/aggr15.ads: Likewise.
10310+ * gnat.dg/aggr17.adb: Likewise.
10311+ * gnat.dg/aggr18.adb: Likewise.
10312+ * gnat.dg/array14.adb: Likewise.
10313+ * gnat.dg/array14.ads: Likewise.
10314+ * gnat.dg/array14_pkg.ads: Likewise.
10315+ * gnat.dg/array19.adb: Likewise.
10316+ * gnat.dg/array19.ads: Likewise.
10317+ * gnat.dg/discr27.adb: Likewise.
10318+ * gnat.dg/discr27.ads: Likewise.
10319+ * gnat.dg/discr35.adb: Likewise.
10320+ * gnat.dg/discr35.ads: Likewise.
10321+ * gnat.dg/discr6.adb: Likewise.
10322+ * gnat.dg/discr6_pkg.ads: Likewise.
10323+ * gnat.dg/import1.adb: Likewise.
10324+ * gnat.dg/import1.ads: Likewise.
10325+ * gnat.dg/loop_address2.adb: Likewise.
10326+ * gnat.dg/opt7.adb: Likewise.
10327+ * gnat.dg/opt7.ads: Likewise.
10328+ * gnat.dg/pointer_variable_bounds.adb: Likewise.
10329+ * gnat.dg/pointer_variable_bounds.ads: Likewise.
10330+ * gnat.dg/rep_clause2.adb: Likewise.
10331+ * gnat.dg/rep_clause2.ads: Likewise.
10332+ * gnat.dg/slice2.adb: Likewise.
10333+ * gnat.dg/slice2.ads: Likewise.
10334+ * gnat.dg/slice6.adb: Likewise.
10335+ * gnat.dg/slice6_pkg.ads: Likewise.
10336+ * gnat.dg/specs/unchecked_union2.ads: Likewise.
10337+ * gnat.dg/taft_type2.adb: Likewise.
10338+ * gnat.dg/taft_type2.ads: Likewise.
10339+ * gnat.dg/taft_type2_pkg.ads: Likewise.
10340+ * gnat.dg/volatile10.adb: Likewise.
10341+ * gnat.dg/volatile10_pkg.ads: Likewise.
10342+
10343+ * gcc.dg/dll-8.c: Remove execute permissions.
10344+ * g++.dg/ext/dllexport5.C: Likewise.
10345+
10346+2012-04-09 Eric Botcazou <ebotcazou@adacore.com>
10347+
10348+ * lib/target-supports.exp (check_effective_target_sparc_v9): New.
10349+ (check_effective_target_sync_long_long): Add SPARC case.
10350+ (check_effective_target_sync_long_long_runtime): Likewise.
10351+ (check_effective_target_sync_int_long): Adjust SPARC case.
10352+ (check_effective_target_sync_char_short): Likewise.
10353+
10354+2012-04-07 Thomas Koenig <tkoenig@gcc.gnu.org>
10355+
10356+ PR fortran/52893
10357+ Backport from trunk
10358+ * gfortran.dg/function_optimize_11.f90: New test.
10359+
10360+2012-04-07 Thomas Koenig <tkoenig@gcc.gnu.org>
10361+
10362+ PR fortran/52668
10363+ Backport from trunk
10364+ * gfortran.dg/use_only_6.f90: New test.
10365+
10366+2012-04-06 Mike Stump <mikestump@comcast.net>
10367+
10368+ PR testsuite/50722
10369+ * gcc.dg/pr49994-3.c: Use -w to squelch non-portable warnings.
10370+
10371+2012-04-05 Jason Merrill <jason@redhat.com>
10372+
10373+ PR c++/52596
10374+ * g++.dg/template/qualified-id5.C: New.
10375+
10376+2012-04-03 Jason Merrill <jason@redhat.com>
10377+
10378+ PR c++/52796
10379+ * g++.dg/cpp0x/variadic-value1.C: New.
10380+
10381+2012-04-03 Richard Guenther <rguenther@suse.de>
10382+
10383+ Backport from mainline
10384+ 2012-03-02 Richard Guenther <rguenther@suse.de>
10385+
10386+ PR tree-optimization/52406
10387+ * gcc.dg/torture/pr52406.c: New testcase.
10388+
10389+2012-04-03 Richard Guenther <rguenther@suse.de>
10390+
10391+ Backport from mainline
10392+ 2012-03-15 Richard Guenther <rguenther@suse.de>
10393+
10394+ PR middle-end/52580
10395+ * gfortran.dg/vect/pr52580.f: New testcase.
10396+
10397+2012-04-03 Richard Guenther <rguenther@suse.de>
10398+
10399+ Backport from mainline
10400+ 2012-03-06 Richard Guenther <rguenther@suse.de>
10401+
10402+ PR middle-end/52493
10403+ * gcc.dg/torture/pr52493.c: New testcase.
10404+
10405+ 2012-03-23 Richard Guenther <rguenther@suse.de>
10406+
10407+ PR tree-optimization/52678
10408+ * gfortran.dg/pr52678.f: New testcase.
10409+
10410+ 2012-03-26 Richard Guenther <rguenther@suse.de>
10411+
10412+ PR tree-optimization/52701
10413+ * gfortran.dg/pr52701.f90: New testcase.
10414+
10415+ 2012-03-30 Richard Guenther <rguenther@suse.de>
10416+
10417+ PR tree-optimization/52754
10418+ * gcc.target/i386/pr52754.c: New testcase.
10419+
10420+2012-04-03 Jakub Jelinek <jakub@redhat.com>
10421+
10422+ PR tree-optimization/52835
10423+ * gfortran.dg/pr52835.f90: New test.
10424+
10425+2012-03-31 Eric Botcazou <ebotcazou@adacore.com>
10426+
10427+ * gnat.dg/controlled6.adb: New test.
10428+ * gnat.dg/controlled6_pkg.ads: New helper.
10429+ * gnat.dg/controlled6_pkg-iterators.ad[sb]: Likewise.
10430+
10431+2012-03-29 Meador Inge <meadori@codesourcery.com>
10432+
10433+ PR c++/52672
10434+ * g++.dg/cpp0x/constexpr-52672.C: New testcase.
10435+
10436+2012-03-29 Paolo Carlini <paolo.carlini@oracle.com>
10437+
10438+ PR c++/52718
10439+ * g++.dg/warn/Wzero-as-null-pointer-constant-5.C: New.
10440+
10441+2012-03-29 Jason Merrill <jason@redhat.com>
10442+
10443+ PR c++/52685
10444+ * g++.dg/template/inherit8.C: New.
10445+
10446+2012-03-29 Jakub Jelinek <jakub@redhat.com>
10447+
10448+ PR c++/52759
10449+ * g++.dg/ext/weak4.C: New test.
10450+
10451+2012-03-29 Jason Merrill <jason@redhat.com>
10452+
10453+ PR c++/52743
10454+ * g++.dg/cpp0x/initlist-array3.C: New.
10455+
10456+2012-03-28 Jason Merrill <jason@redhat.com>
10457+
10458+ PR c++/52746
10459+ * g++.dg/overload/virtual2.C: New.
10460+
10461+2012-03-28 Martin Jambor <mjambor@suse.cz>
10462+
10463+ Backported from mainline
10464+ 2012-03-27 Martin Jambor <mjambor@suse.cz>
10465+
10466+ PR middle-end/52693
10467+ * gcc.dg/torture/pr52693.c: New test.
10468+
10469+2012-03-28 Jakub Jelinek <jakub@redhat.com>
10470+
10471+ PR middle-end/52691
10472+ * gcc.dg/pr52691.c: New test.
10473+
10474+ PR middle-end/52750
10475+ * gcc.c-torture/compile/pr52750.c: New test.
10476+
10477+2012-03-28 Georg-Johann Lay <avr@gjlay.de>
10478+
10479+ Backport from 2012-03-28 mainline r185910.
10480+
10481+ PR target/52692
10482+ * gcc.target/avr/torture/builtins-2.c: New test.
10483+
10484+2012-03-28 Jakub Jelinek <jakub@redhat.com>
10485+
10486+ PR target/52736
10487+ * gcc.target/i386/pr52736.c: New test.
10488+
10489+2012-03-27 Richard Guenther <rguenther@suse.de>
10490+
10491+ PR middle-end/52720
10492+ * gcc.dg/torture/pr52720.c: New testcase.
10493+
10494+2012-03-26 Georg-Johann Lay <avr@gjlay.de>
10495+
10496+ Backport from 2012-03-26 mainline r185793.
10497+
10498+ * gcc.target/avr/torture/avr-torture.exp (AVR_TORTURE_OPTIONS):
10499+ Add "-Os -flto" to list.
10500+
10501+2012-03-25 Eric Botcazou <ebotcazou@adacore.com>
10502+
10503+ * gnat.dg/concat2.ad[sb]: New test.
10504+
10505+2012-03-24 Steven Bosscher <steven@gcc.gnu.org>
10506+
10507+ PR middle-end/52640
10508+ * gcc.c-torture/compile/limits-externdecl.c: New test.
10509+
10510+2012-03-22 Paolo Carlini <paolo.carlini@oracle.com>
10511+
10512+ PR c++/52487
10513+ * g++.dg/cpp0x/lambda/lambda-ice7.C: New.
10514+
10515+2012-03-22 Tobias Burnus <burnus@net-b.de>
10516+
10517+ PR fortran/52452
10518+ * gfortran.dg/intrinsic_8.f90: New.
10519+
10520+2012-03-22 Jakub Jelinek <jakub@redhat.com>
10521+
10522+ PR c++/52671
10523+ * g++.dg/ext/attrib44.C: New test.
10524+
10525+2012-03-22 Jason Merrill <jason@redhat.com>
10526+
10527+ * g++.dg/torture/pr52582.C: New.
10528+
10529+2012-03-22 Georg-Johann Lay <avr@gjlay.de>
10530+
10531+ Backport from 2012-03-20 mainline r185583.
10532+
10533+ * gcc.target/avr/progmem.h (pgm_read_char): Define depending on
10534+ __AVR_HAVE_LPMX__
10535+
10536+ Backport from 2012-03-20 mainline r185570.
10537+
10538+ PR target/49868
10539+ * gcc.target/avr/torture/addr-space-2.h: New file.
10540+ * gcc.target/avr/torture/addr-space-2-g.h: New test.
10541+ * gcc.target/avr/torture/addr-space-2-0.h: New test.
10542+ * gcc.target/avr/torture/addr-space-2-1.h: New test.
10543+ * gcc.target/avr/torture/addr-space-2-x.h: New test.
10544+
10545+ Backport from 2012-03-12 mainline r185255.
10546+
10547+ PR target/49868
10548+ * gcc.target/avr/torture/addr-space-1.h: New file.
10549+ * gcc.target/avr/torture/addr-space-g.h: New test.
10550+ * gcc.target/avr/torture/addr-space-0.h: New test.
10551+ * gcc.target/avr/torture/addr-space-1.h: New test.
10552+ * gcc.target/avr/torture/addr-space-x.h: New test.
10553+
10554+2012-03-22 Jakub Jelinek <jakub@redhat.com>
10555+
10556+ Backported from mainline
10557+ 2012-03-14 Jakub Jelinek <jakub@redhat.com>
10558+
10559+ PR c++/52521
10560+ * g++.dg/cpp0x/udlit-args2.C: New test.
10561+
10562+ 2012-03-13 Jakub Jelinek <jakub@redhat.com>
10563+
10564+ PR c/52577
10565+ * gcc.dg/Wunused-var-3.c: New test.
10566+
10567 2012-03-22 Release Manager
10568
10569 * GCC 4.7.0 released.
10570Index: gcc/testsuite/g++.dg/ext/weak4.C
10571===================================================================
10572--- gcc/testsuite/g++.dg/ext/weak4.C (.../tags/gcc_4_7_0_release) (wersja 0)
10573+++ gcc/testsuite/g++.dg/ext/weak4.C (.../branches/gcc-4_7-branch) (wersja 187293)
10574@@ -0,0 +1,9 @@
10575+// PR c++/52759
10576+// { dg-do compile }
10577+// { dg-require-weak "" }
10578+// { dg-options "" }
10579+#pragma weak foo
10580+template <typename T>
10581+struct A { };
10582+template <typename T>
10583+void bar (A<T> &);
10584Index: gcc/testsuite/g++.dg/ext/attrib44.C
10585===================================================================
10586--- gcc/testsuite/g++.dg/ext/attrib44.C (.../tags/gcc_4_7_0_release) (wersja 0)
10587+++ gcc/testsuite/g++.dg/ext/attrib44.C (.../branches/gcc-4_7-branch) (wersja 187293)
10588@@ -0,0 +1,4 @@
10589+// PR c++/52671
10590+// { dg-do compile }
10591+__attribute__ ((deprecated)) enum E { E0 }; // { dg-warning "attribute ignored in declaration of" }
10592+// { dg-message "must follow the" "" { target *-*-* } 3 }
10593Index: gcc/testsuite/g++.dg/ext/attrib45.C
10594===================================================================
10595--- gcc/testsuite/g++.dg/ext/attrib45.C (.../tags/gcc_4_7_0_release) (wersja 0)
10596+++ gcc/testsuite/g++.dg/ext/attrib45.C (.../branches/gcc-4_7-branch) (wersja 187293)
10597@@ -0,0 +1,3 @@
10598+// PR c++/52906
10599+
10600+__attribute__ ((__deprecated__)); // { dg-error "does not declare anything" }
10601Index: gcc/testsuite/g++.dg/ext/dllexport5.C
10602===================================================================
10603--- gcc/testsuite/g++.dg/ext/dllexport5.C (.../tags/gcc_4_7_0_release) (wersja 187293)
10604+++ gcc/testsuite/g++.dg/ext/dllexport5.C (.../branches/gcc-4_7-branch) (wersja 187293)
10605
10606Zmiany atrybutów dla: gcc/testsuite/g++.dg/ext/dllexport5.C
10607___________________________________________________________________
10608Deleted: svn:executable
10609## -1 +0,0 ##
10610-*
10611\ No newline at end of property
10612Index: gcc/testsuite/g++.dg/opt/vrp3-aux.cc
10613===================================================================
10614--- gcc/testsuite/g++.dg/opt/vrp3-aux.cc (.../tags/gcc_4_7_0_release) (wersja 0)
10615+++ gcc/testsuite/g++.dg/opt/vrp3-aux.cc (.../branches/gcc-4_7-branch) (wersja 187293)
10616@@ -0,0 +1,21 @@
10617+// { dg-do compile }
10618+// { dg-options "" }
10619+
10620+#include "vrp3.h"
10621+
10622+R::R ()
10623+{
10624+ r1 = r2 = 1;
10625+}
10626+
10627+R::R (int n, int d)
10628+{
10629+ r1 = n;
10630+ r2 = d;
10631+}
10632+
10633+int
10634+R::compare (R const &r, R const &s)
10635+{
10636+ return (int) (r.r1 * s.r2 - s.r1 * r.r2);
10637+}
10638Index: gcc/testsuite/g++.dg/opt/vrp3.C
10639===================================================================
10640--- gcc/testsuite/g++.dg/opt/vrp3.C (.../tags/gcc_4_7_0_release) (wersja 0)
10641+++ gcc/testsuite/g++.dg/opt/vrp3.C (.../branches/gcc-4_7-branch) (wersja 187293)
10642@@ -0,0 +1,47 @@
10643+// PR tree-optimization/53239
10644+// { dg-do run }
10645+// { dg-options "-O2" }
10646+// { dg-additional-sources "vrp3-aux.cc" }
10647+
10648+#include "vrp3.h"
10649+
10650+struct M
10651+{
10652+ M (R m);
10653+ R val;
10654+ static int compare (M const &, M const &);
10655+};
10656+
10657+inline M const &
10658+min (M const & t1, M const & t2)
10659+{
10660+ return R::compare (t1.val, t2.val) < 0 ? t1 : t2;
10661+}
10662+
10663+M::M (R m)
10664+{
10665+ val = m;
10666+}
10667+
10668+M
10669+test (M *x)
10670+{
10671+ M n (R (0, 0));
10672+
10673+ for (int i = 0; i < 2; i++)
10674+ {
10675+ M p = x[i];
10676+ n = min (n, p);
10677+ }
10678+
10679+ if (n.val.r2 != 2 || n.val.r1 != 1)
10680+ __builtin_abort ();
10681+ return n;
10682+}
10683+
10684+int
10685+main ()
10686+{
10687+ M x[2] = { M (R (1, 2)), M (R (1, 1)) };
10688+ test (x);
10689+}
10690Index: gcc/testsuite/g++.dg/opt/vrp3.h
10691===================================================================
10692--- gcc/testsuite/g++.dg/opt/vrp3.h (.../tags/gcc_4_7_0_release) (wersja 0)
10693+++ gcc/testsuite/g++.dg/opt/vrp3.h (.../branches/gcc-4_7-branch) (wersja 187293)
10694@@ -0,0 +1,9 @@
10695+struct R
10696+{
10697+ long long r1, r2;
10698+ void copy (R const &r) { r1 = r.r1; r2 = r.r2; }
10699+ R ();
10700+ explicit R (int, int);
10701+ R (R const &r) { copy (r); }
10702+ static int compare (R const &, R const &);
10703+};
10704Index: gcc/testsuite/g++.dg/lookup/using52.C
10705===================================================================
10706--- gcc/testsuite/g++.dg/lookup/using52.C (.../tags/gcc_4_7_0_release) (wersja 0)
10707+++ gcc/testsuite/g++.dg/lookup/using52.C (.../branches/gcc-4_7-branch) (wersja 187293)
10708@@ -0,0 +1,16 @@
10709+// { dg-do compile }
10710+// PR c++/52645
10711+
10712+class A
10713+{
10714+protected:
10715+ struct B {};
10716+};
10717+
10718+class C : A
10719+{
10720+protected:
10721+ using A::B;
10722+
10723+ struct D : public B {};
10724+};
10725Index: gcc/testsuite/g++.dg/other/final2.C
10726===================================================================
10727--- gcc/testsuite/g++.dg/other/final2.C (.../tags/gcc_4_7_0_release) (wersja 0)
10728+++ gcc/testsuite/g++.dg/other/final2.C (.../branches/gcc-4_7-branch) (wersja 187293)
10729@@ -0,0 +1,27 @@
10730+// PR c++/53186
10731+// { dg-options "-fdump-tree-original -std=c++11" }
10732+
10733+struct F1
10734+{
10735+ virtual void operator()() final;
10736+ virtual operator int() final;
10737+ virtual int operator++() final;
10738+};
10739+
10740+struct F2 final
10741+{
10742+ virtual void operator()();
10743+ virtual operator int();
10744+ virtual int operator++();
10745+};
10746+
10747+void fooF1(F1& a) { a(); int m = a; ++a; }
10748+void fooF2(F2& a) { a(); int m = a; ++a; }
10749+
10750+// { dg-final { scan-tree-dump-times "F1::operator\\(\\)" 1 "original" } }
10751+// { dg-final { scan-tree-dump-times "F1::operator int" 1 "original" } }
10752+// { dg-final { scan-tree-dump-times "F1::operator\\+\\+" 1 "original" } }
10753+// { dg-final { scan-tree-dump-times "F2::operator\\(\\)" 1 "original" } }
10754+// { dg-final { scan-tree-dump-times "F2::operator int" 1 "original" } }
10755+// { dg-final { scan-tree-dump-times "F2::operator\\+\\+" 1 "original" } }
10756+// { dg-final { cleanup-tree-dump "original" } }
10757Index: gcc/testsuite/g++.dg/lto/pr52605_0.C
10758===================================================================
10759--- gcc/testsuite/g++.dg/lto/pr52605_0.C (.../tags/gcc_4_7_0_release) (wersja 0)
10760+++ gcc/testsuite/g++.dg/lto/pr52605_0.C (.../branches/gcc-4_7-branch) (wersja 187293)
10761@@ -0,0 +1,39 @@
10762+// { dg-lto-do link }
10763+// { dg-lto-options {{-flto -g}} }
10764+
10765+extern "C" void abort (void);
10766+
10767+class A
10768+{
10769+public:
10770+ virtual int foo (int i);
10771+};
10772+
10773+int A::foo (int i)
10774+{
10775+ return i + 1;
10776+}
10777+
10778+int __attribute__ ((noinline,noclone)) get_input(void)
10779+{
10780+ return 1;
10781+}
10782+
10783+int main (int argc, char *argv[])
10784+{
10785+
10786+ class B : public A
10787+ {
10788+ public:
10789+ int bar (int i)
10790+ {
10791+ return foo (i) + 2;
10792+ }
10793+ };
10794+ class B b;
10795+
10796+ if (b.bar (get_input ()) != 4)
10797+ abort ();
10798+ return 0;
10799+}
10800+
10801Index: gcc/testsuite/g++.dg/warn/Wzero-as-null-pointer-constant-5.C
10802===================================================================
10803--- gcc/testsuite/g++.dg/warn/Wzero-as-null-pointer-constant-5.C (.../tags/gcc_4_7_0_release) (wersja 0)
10804+++ gcc/testsuite/g++.dg/warn/Wzero-as-null-pointer-constant-5.C (.../branches/gcc-4_7-branch) (wersja 187293)
10805@@ -0,0 +1,20 @@
10806+// PR c++/52718
10807+// { dg-options "-Wzero-as-null-pointer-constant" }
10808+
10809+struct foo
10810+{
10811+ foo(void* a = 0) {}; // { dg-warning "zero as null pointer" }
10812+};
10813+
10814+void* fun(void* a = 0) {}; // { dg-warning "zero as null pointer" }
10815+
10816+struct bar: foo
10817+{
10818+ bar() {};
10819+};
10820+
10821+struct baz
10822+{
10823+ baz(const foo& f1 = foo(),
10824+ void* f2 = fun()) {};
10825+};
10826Index: gcc/testsuite/g++.dg/parse/crash59.C
10827===================================================================
10828--- gcc/testsuite/g++.dg/parse/crash59.C (.../tags/gcc_4_7_0_release) (wersja 0)
10829+++ gcc/testsuite/g++.dg/parse/crash59.C (.../branches/gcc-4_7-branch) (wersja 187293)
10830@@ -0,0 +1,3 @@
10831+// PR c++/53003
10832+
10833+struct A{ void a{} return b // { dg-error "function definition|expected" }
10834Index: gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice7.C
10835===================================================================
10836--- gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice7.C (.../tags/gcc_4_7_0_release) (wersja 0)
10837+++ gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice7.C (.../branches/gcc-4_7-branch) (wersja 187293)
10838@@ -0,0 +1,9 @@
10839+// PR c++/52487
10840+// { dg-options "-std=c++0x" }
10841+
10842+struct A; // { dg-error "forward declaration" }
10843+
10844+void foo(A& a)
10845+{
10846+ [=](){a;}; // { dg-error "invalid use of incomplete type" }
10847+}
10848Index: gcc/testsuite/g++.dg/cpp0x/alias-decl-15.C
10849===================================================================
10850--- gcc/testsuite/g++.dg/cpp0x/alias-decl-15.C (.../tags/gcc_4_7_0_release) (wersja 187293)
10851+++ gcc/testsuite/g++.dg/cpp0x/alias-decl-15.C (.../branches/gcc-4_7-branch) (wersja 187293)
10852@@ -2,7 +2,7 @@
10853 // { dg-options "-std=c++0x" }
10854
10855 template<class U, class V> //#1
10856-struct foo {}; // { dg-error "provided for|foo" }
10857+struct foo {};
10858
10859 template<class U, class V=char>
10860 struct P {};
10861@@ -10,8 +10,8 @@
10862 template<template<class... U> class... TT>
10863 struct bar {
10864 template<class... Args>
10865- using mem = P<TT<Args...>...>;//#2 { dg-error "wrong number of|arguments" }
10866+ using mem = P<TT<Args...>...>;//#2
10867 };
10868
10869-bar<foo>::mem<int, char> b;//#3 { dg-error "invalid type" }
10870+bar<foo>::mem<int, char> b;//#3
10871
10872Index: gcc/testsuite/g++.dg/cpp0x/variadic131.C
10873===================================================================
10874--- gcc/testsuite/g++.dg/cpp0x/variadic131.C (.../tags/gcc_4_7_0_release) (wersja 0)
10875+++ gcc/testsuite/g++.dg/cpp0x/variadic131.C (.../branches/gcc-4_7-branch) (wersja 187293)
10876@@ -0,0 +1,11 @@
10877+// PR c++/38543
10878+// { dg-do compile { target c++11 } }
10879+
10880+template< typename ... T > void foo( T ... args );
10881+template<> void foo( ){}
10882+template<> void foo(int,double){}
10883+int main()
10884+{
10885+ foo( 0, 0.0 );
10886+ return 55;
10887+}
10888Index: gcc/testsuite/g++.dg/cpp0x/constexpr-52672.C
10889===================================================================
10890--- gcc/testsuite/g++.dg/cpp0x/constexpr-52672.C (.../tags/gcc_4_7_0_release) (wersja 0)
10891+++ gcc/testsuite/g++.dg/cpp0x/constexpr-52672.C (.../branches/gcc-4_7-branch) (wersja 187293)
10892@@ -0,0 +1,8 @@
10893+// PR c++/52672
10894+// { dg-do compile }
10895+// { dg-options "-std=c++11" }
10896+
10897+typedef unsigned long * ul_ptr;
10898+constexpr unsigned long a = *((ul_ptr)0x0); // { dg-error "" }
10899+constexpr unsigned long b = *((ul_ptr)(*((ul_ptr)0x0))); // { dg-error "" }
10900+constexpr unsigned long c = *((ul_ptr)*((ul_ptr)(*((ul_ptr)0x0)))); // { dg-error "" }
10901Index: gcc/testsuite/g++.dg/cpp0x/variadic123.C
10902===================================================================
10903--- gcc/testsuite/g++.dg/cpp0x/variadic123.C (.../tags/gcc_4_7_0_release) (wersja 0)
10904+++ gcc/testsuite/g++.dg/cpp0x/variadic123.C (.../branches/gcc-4_7-branch) (wersja 187293)
10905@@ -0,0 +1,14 @@
10906+// PR c++/52824
10907+// { dg-do compile { target c++11 } }
10908+
10909+template<typename G, typename H>
10910+struct foo
10911+{};
10912+
10913+template<typename... G>
10914+struct bar : foo<G...>
10915+{};
10916+
10917+int main() {
10918+ bar<int, float> f;
10919+}
10920Index: gcc/testsuite/g++.dg/cpp0x/variadic124.C
10921===================================================================
10922--- gcc/testsuite/g++.dg/cpp0x/variadic124.C (.../tags/gcc_4_7_0_release) (wersja 0)
10923+++ gcc/testsuite/g++.dg/cpp0x/variadic124.C (.../branches/gcc-4_7-branch) (wersja 187293)
10924@@ -0,0 +1,29 @@
10925+// PR c++/52292
10926+// { dg-options -std=c++11 }
10927+
10928+template <template <typename...> class T>
10929+struct foo {
10930+ template <typename... U>
10931+ foo(T<U...> x) { }
10932+};
10933+
10934+template <typename T>
10935+struct bar {
10936+ bar(T x) : value(x) { }
10937+
10938+ T value;
10939+};
10940+
10941+struct generic : private foo<bar> {
10942+ template <typename T>
10943+ generic(bar<T> x) : foo(x)
10944+ {
10945+ }
10946+
10947+};
10948+
10949+int main()
10950+{
10951+ bar<int> x(32);
10952+ generic y(x); // FAILS
10953+}
10954Index: gcc/testsuite/g++.dg/cpp0x/initlist-array3.C
10955===================================================================
10956--- gcc/testsuite/g++.dg/cpp0x/initlist-array3.C (.../tags/gcc_4_7_0_release) (wersja 0)
10957+++ gcc/testsuite/g++.dg/cpp0x/initlist-array3.C (.../branches/gcc-4_7-branch) (wersja 187293)
10958@@ -0,0 +1,10 @@
10959+// PR c++/52743
10960+// { dg-do compile { target c++11 } }
10961+
10962+void composite (int const (&) [2]);
10963+void composite (int const (&) [3]);
10964+
10965+int main ()
10966+{
10967+ composite({0,1}); // { dg-error "ambiguous" }
10968+}
10969Index: gcc/testsuite/g++.dg/cpp0x/variadic125.C
10970===================================================================
10971--- gcc/testsuite/g++.dg/cpp0x/variadic125.C (.../tags/gcc_4_7_0_release) (wersja 0)
10972+++ gcc/testsuite/g++.dg/cpp0x/variadic125.C (.../branches/gcc-4_7-branch) (wersja 187293)
10973@@ -0,0 +1,25 @@
10974+// PR c++/52380
10975+// { dg-do compile { target c++11 } }
10976+
10977+template<typename T>
10978+struct S
10979+{
10980+ template<typename U>
10981+ struct Unary // Line 5
10982+ {};
10983+
10984+ template<unsigned, typename... Args>
10985+ struct Dispatch // Line 9
10986+ : public Unary<Args...>
10987+ {};
10988+
10989+ template<typename... Args>
10990+ struct Variadic
10991+ : public Dispatch<sizeof...(Args), Args...>
10992+ {};
10993+};
10994+
10995+int main()
10996+{
10997+ S<void>::Variadic<void> z;
10998+}
10999Index: gcc/testsuite/g++.dg/cpp0x/variadic-value1.C
11000===================================================================
11001--- gcc/testsuite/g++.dg/cpp0x/variadic-value1.C (.../tags/gcc_4_7_0_release) (wersja 0)
11002+++ gcc/testsuite/g++.dg/cpp0x/variadic-value1.C (.../branches/gcc-4_7-branch) (wersja 187293)
11003@@ -0,0 +1,24 @@
11004+// PR c++/52796
11005+// { dg-do run { target c++11 } }
11006+
11007+inline void *operator new(__SIZE_TYPE__ s, void *p) { return p; }
11008+
11009+struct A
11010+{
11011+ int i;
11012+ template<class... Ts>
11013+ A(Ts&&... ts): i(ts...) { }
11014+};
11015+
11016+static union {
11017+ unsigned char c[sizeof(A)];
11018+ int i;
11019+};
11020+
11021+int main()
11022+{
11023+ i = 0xdeadbeef;
11024+ new(c) A;
11025+ if (i != 0)
11026+ __builtin_abort();
11027+}
11028Index: gcc/testsuite/g++.dg/cpp0x/udlit-args2.C
11029===================================================================
11030--- gcc/testsuite/g++.dg/cpp0x/udlit-args2.C (.../tags/gcc_4_7_0_release) (wersja 0)
11031+++ gcc/testsuite/g++.dg/cpp0x/udlit-args2.C (.../branches/gcc-4_7-branch) (wersja 187293)
11032@@ -0,0 +1,15 @@
11033+// PR c++/52521
11034+// { dg-do compile }
11035+// { dg-options -std=c++11 }
11036+
11037+#include <cstddef>
11038+
11039+int operator "" _a (const char *);
11040+int operator "" _a (const char *, std::size_t);
11041+int a = 123_a;
11042+int a2 = "abc"_a;
11043+
11044+int operator "" _b (const char *, std::size_t);
11045+int operator "" _b (const char *);
11046+int b = 123_b;
11047+int b2 = "abc"_b;
11048Index: gcc/testsuite/g++.dg/cpp0x/variadic128.C
11049===================================================================
11050--- gcc/testsuite/g++.dg/cpp0x/variadic128.C (.../tags/gcc_4_7_0_release) (wersja 0)
11051+++ gcc/testsuite/g++.dg/cpp0x/variadic128.C (.../branches/gcc-4_7-branch) (wersja 187293)
11052@@ -0,0 +1,16 @@
11053+// PR c++/50303
11054+// { dg-do compile { target c++11 } }
11055+
11056+template<typename Interface>
11057+struct A1 {
11058+};
11059+
11060+template<template<class I> class... Actions>
11061+void g2() {
11062+ g2<Actions...>();
11063+}
11064+
11065+int main()
11066+{
11067+ g2<A1>();
11068+}
11069Index: gcc/testsuite/g++.dg/cpp0x/variadic129.C
11070===================================================================
11071--- gcc/testsuite/g++.dg/cpp0x/variadic129.C (.../tags/gcc_4_7_0_release) (wersja 0)
11072+++ gcc/testsuite/g++.dg/cpp0x/variadic129.C (.../branches/gcc-4_7-branch) (wersja 187293)
11073@@ -0,0 +1,19 @@
11074+// PR c++/50830
11075+// { dg-do compile { target c++11 } }
11076+
11077+template<template<class> class...>
11078+struct list_templates {};
11079+
11080+template<class>
11081+struct aa {};
11082+
11083+template<class... T>
11084+struct test {};
11085+
11086+template<template<class> class... F, class T>
11087+struct test<list_templates<F...>, T>
11088+{
11089+ struct inner {};
11090+};
11091+
11092+test<list_templates<aa>, int> a4; // error
11093Index: gcc/testsuite/g++.dg/torture/pr53085.C
11094===================================================================
11095--- gcc/testsuite/g++.dg/torture/pr53085.C (.../tags/gcc_4_7_0_release) (wersja 0)
11096+++ gcc/testsuite/g++.dg/torture/pr53085.C (.../branches/gcc-4_7-branch) (wersja 187293)
11097@@ -0,0 +1,17 @@
11098+// { dg-do compile }
11099+// { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } { "" } }
11100+// { dg-options "-fdump-tree-optimized" }
11101+
11102+class aa{
11103+ void f();
11104+private:
11105+ volatile int a;
11106+};
11107+
11108+void aa::f(){
11109+ a=1;
11110+ a=1;
11111+}
11112+
11113+// { dg-final { scan-tree-dump-times "a ={v} 1;" 2 "optimized" } }
11114+// { dg-final { cleanup-tree-dump "optimized" } }
11115Index: gcc/testsuite/g++.dg/torture/pr52582.C
11116===================================================================
11117--- gcc/testsuite/g++.dg/torture/pr52582.C (.../tags/gcc_4_7_0_release) (wersja 0)
11118+++ gcc/testsuite/g++.dg/torture/pr52582.C (.../branches/gcc-4_7-branch) (wersja 187293)
11119@@ -0,0 +1,23 @@
11120+// PR c++/52582
11121+
11122+inline void *operator new (__SIZE_TYPE__, void *p) throw ()
11123+{
11124+ return p;
11125+}
11126+struct B
11127+{
11128+ virtual ~B ();
11129+ B ();
11130+};
11131+struct A : B
11132+{
11133+ A () : B () {}
11134+ virtual void bar ();
11135+};
11136+void
11137+foo ()
11138+{
11139+ char a[64];
11140+ B *b = new (&a) A ();
11141+ b->~B ();
11142+}
11143Index: gcc/testsuite/g++.dg/ipa/pr52939.C
11144===================================================================
11145--- gcc/testsuite/g++.dg/ipa/pr52939.C (.../tags/gcc_4_7_0_release) (wersja 0)
11146+++ gcc/testsuite/g++.dg/ipa/pr52939.C (.../branches/gcc-4_7-branch) (wersja 187293)
11147@@ -0,0 +1,58 @@
11148+/* Verify that we do not ICE on invalid devirtualizations (which might
11149+ be OK at run-time because never executed). */
11150+/* { dg-do run } */
11151+/* { dg-options "-O3 -fno-early-inlining -fno-inline" } */
11152+
11153+extern "C" void abort (void);
11154+
11155+class A
11156+{
11157+public:
11158+ int data;
11159+ virtual int foo (int i);
11160+};
11161+
11162+class B : public A
11163+{
11164+public:
11165+ virtual int foo (int i);
11166+ virtual int bar (int i);
11167+};
11168+
11169+int A::foo (int i)
11170+{
11171+ return i + 1;
11172+}
11173+
11174+int B::foo (int i)
11175+{
11176+ return i + 2;
11177+}
11178+
11179+int B::bar (int i)
11180+{
11181+ return i + 3;
11182+}
11183+
11184+static int middleman (class A *obj, int i)
11185+{
11186+ class B *b = (class B *) obj;
11187+
11188+ if (i != 1)
11189+ return b->bar (i);
11190+ else
11191+ return i;
11192+}
11193+
11194+int __attribute__ ((noinline,noclone)) get_input(void)
11195+{
11196+ return 1;
11197+}
11198+
11199+int main (int argc, char *argv[])
11200+{
11201+ class A o;
11202+ if (middleman (&o, get_input ()) != 1)
11203+ abort ();
11204+ return 0;
11205+}
11206Index: gcc/testsuite/g++.dg/overload/virtual2.C
11207===================================================================
11208--- gcc/testsuite/g++.dg/overload/virtual2.C (.../tags/gcc_4_7_0_release) (wersja 0)
11209+++ gcc/testsuite/g++.dg/overload/virtual2.C (.../branches/gcc-4_7-branch) (wersja 187293)
11210@@ -0,0 +1,31 @@
11211+// PR c++/52746
11212+// { dg-do run }
11213+
11214+extern "C" int printf(const char*,...);
11215+extern "C" void abort();
11216+bool db;
11217+
11218+struct A
11219+{
11220+ virtual ~A() {}
11221+};
11222+
11223+struct B : public A
11224+{
11225+ virtual ~B() { db = true; }
11226+};
11227+
11228+template<int> void test()
11229+{
11230+ B * b = new B;
11231+ A * a = b;
11232+ a->~A();
11233+ ::operator delete(b);
11234+}
11235+
11236+int main()
11237+{
11238+ test<0>();
11239+ if (!db)
11240+ abort();
11241+}
11242Index: gcc/testsuite/g++.dg/template/inherit8.C
11243===================================================================
11244--- gcc/testsuite/g++.dg/template/inherit8.C (.../tags/gcc_4_7_0_release) (wersja 0)
11245+++ gcc/testsuite/g++.dg/template/inherit8.C (.../branches/gcc-4_7-branch) (wersja 187293)
11246@@ -0,0 +1,13 @@
11247+// PR c++/52685
11248+
11249+template <typename T>
11250+struct A
11251+{
11252+ template <typename U>
11253+ struct B : public A <B<U> >
11254+ {
11255+ struct C : public B<U>
11256+ {
11257+ };
11258+ };
11259+};
11260Index: gcc/testsuite/g++.dg/template/qualified-id5.C
11261===================================================================
11262--- gcc/testsuite/g++.dg/template/qualified-id5.C (.../tags/gcc_4_7_0_release) (wersja 0)
11263+++ gcc/testsuite/g++.dg/template/qualified-id5.C (.../branches/gcc-4_7-branch) (wersja 187293)
11264@@ -0,0 +1,17 @@
11265+// PR c++/52596
11266+
11267+struct msgpack_zone_finalizer_array {
11268+ int* tail;
11269+};
11270+struct msgpack_zone {
11271+ msgpack_zone_finalizer_array finalizer_array;
11272+};
11273+struct zone : public msgpack_zone {
11274+ template <typename T> T* allocate();
11275+
11276+};
11277+template <typename T>
11278+T* zone::allocate()
11279+{
11280+ --msgpack_zone::finalizer_array.tail;
11281+}
11282Index: gcc/cp/typeck.c
11283===================================================================
11284--- gcc/cp/typeck.c (.../tags/gcc_4_7_0_release) (wersja 187293)
11285+++ gcc/cp/typeck.c (.../branches/gcc-4_7-branch) (wersja 187293)
11286@@ -2410,6 +2410,11 @@
11287 tf_warning_or_error);
11288 expr = (adjust_result_of_qualified_name_lookup
11289 (expr, dtor_type, object_type));
11290+ if (scope == NULL_TREE)
11291+ /* We need to call adjust_result_of_qualified_name_lookup in case the
11292+ destructor names a base class, but we unset BASELINK_QUALIFIED_P so
11293+ that we still get virtual function binding. */
11294+ BASELINK_QUALIFIED_P (expr) = false;
11295 return expr;
11296 }
11297
11298Index: gcc/cp/class.c
11299===================================================================
11300--- gcc/cp/class.c (.../tags/gcc_4_7_0_release) (wersja 187293)
11301+++ gcc/cp/class.c (.../branches/gcc-4_7-branch) (wersja 187293)
11302@@ -3145,8 +3145,9 @@
11303 CLASSTYPE_NON_AGGREGATE (t) = 1;
11304
11305 /* If at least one non-static data member is non-literal, the whole
11306- class becomes non-literal. */
11307- if (!literal_type_p (type))
11308+ class becomes non-literal. Note: if the type is incomplete we
11309+ will complain later on. */
11310+ if (COMPLETE_TYPE_P (type) && !literal_type_p (type))
11311 CLASSTYPE_LITERAL_P (t) = false;
11312
11313 /* A standard-layout class is a class that:
11314Index: gcc/cp/decl.c
11315===================================================================
11316--- gcc/cp/decl.c (.../tags/gcc_4_7_0_release) (wersja 187293)
11317+++ gcc/cp/decl.c (.../branches/gcc-4_7-branch) (wersja 187293)
11318@@ -4216,10 +4216,11 @@
11319 error ("%<constexpr%> cannot be used for type declarations");
11320 }
11321
11322- if (declspecs->attributes)
11323+ if (declspecs->attributes && declared_type)
11324 {
11325 location_t loc = input_location;
11326- if (!CLASSTYPE_TEMPLATE_INSTANTIATION (declared_type))
11327+ if (!CLASS_TYPE_P (declared_type)
11328+ || !CLASSTYPE_TEMPLATE_INSTANTIATION (declared_type))
11329 /* For a non-template class, use the name location; for a template
11330 class (an explicit instantiation), use the current location. */
11331 input_location = location_of (declared_type);
11332@@ -4419,7 +4420,8 @@
11333 }
11334
11335 /* If #pragma weak was used, mark the decl weak now. */
11336- maybe_apply_pragma_weak (decl);
11337+ if (!processing_template_decl)
11338+ maybe_apply_pragma_weak (decl);
11339
11340 if (TREE_CODE (decl) == FUNCTION_DECL
11341 && DECL_DECLARED_INLINE_P (decl)
11342@@ -10574,6 +10576,17 @@
11343 return error_mark_node;
11344 }
11345
11346+ if (warn_zero_as_null_pointer_constant
11347+ && c_inhibit_evaluation_warnings == 0
11348+ && (POINTER_TYPE_P (decl_type) || TYPE_PTR_TO_MEMBER_P (decl_type))
11349+ && null_ptr_cst_p (arg)
11350+ && !NULLPTR_TYPE_P (TREE_TYPE (arg)))
11351+ {
11352+ warning (OPT_Wzero_as_null_pointer_constant,
11353+ "zero as null pointer constant");
11354+ return nullptr_node;
11355+ }
11356+
11357 /* [dcl.fct.default]
11358
11359 Local variables shall not be used in default argument
11360Index: gcc/cp/method.c
11361===================================================================
11362--- gcc/cp/method.c (.../tags/gcc_4_7_0_release) (wersja 187293)
11363+++ gcc/cp/method.c (.../branches/gcc-4_7-branch) (wersja 187293)
11364@@ -1590,6 +1590,7 @@
11365 DECL_DELETED_FN (fn) = deleted_p;
11366 DECL_DECLARED_CONSTEXPR_P (fn) = constexpr_p;
11367 }
11368+ DECL_EXTERNAL (fn) = true;
11369 DECL_NOT_REALLY_EXTERN (fn) = 1;
11370 DECL_DECLARED_INLINE_P (fn) = 1;
11371 gcc_assert (!TREE_USED (fn));
11372Index: gcc/cp/tree.c
11373===================================================================
11374--- gcc/cp/tree.c (.../tags/gcc_4_7_0_release) (wersja 187293)
11375+++ gcc/cp/tree.c (.../branches/gcc-4_7-branch) (wersja 187293)
11376@@ -150,8 +150,14 @@
11377 /* A scope ref in a template, left as SCOPE_REF to support later
11378 access checking. */
11379 case SCOPE_REF:
11380- gcc_assert (!type_dependent_expression_p (CONST_CAST_TREE(ref)));
11381- return lvalue_kind (TREE_OPERAND (ref, 1));
11382+ {
11383+ tree op = TREE_OPERAND (ref, 1);
11384+ /* The member must be an lvalue; assume it isn't a bit-field. */
11385+ if (TREE_CODE (op) == IDENTIFIER_NODE)
11386+ return clk_ordinary;
11387+ gcc_assert (!type_dependent_expression_p (CONST_CAST_TREE (ref)));
11388+ return lvalue_kind (op);
11389+ }
11390
11391 case MAX_EXPR:
11392 case MIN_EXPR:
11393@@ -1228,12 +1234,11 @@
11394 TREE_CHAIN (*igo_prev) = new_binfo;
11395 *igo_prev = new_binfo;
11396
11397- if (binfo)
11398+ if (binfo && !BINFO_DEPENDENT_BASE_P (binfo))
11399 {
11400 int ix;
11401 tree base_binfo;
11402
11403- gcc_assert (!BINFO_DEPENDENT_BASE_P (binfo));
11404 gcc_assert (SAME_BINFO_TYPE_P (BINFO_TYPE (binfo), type));
11405
11406 BINFO_OFFSET (new_binfo) = BINFO_OFFSET (binfo);
11407@@ -1246,8 +1251,6 @@
11408 for (ix = 0; BINFO_BASE_ITERATE (binfo, ix, base_binfo); ix++)
11409 {
11410 tree new_base_binfo;
11411-
11412- gcc_assert (!BINFO_DEPENDENT_BASE_P (base_binfo));
11413 new_base_binfo = copy_binfo (base_binfo, BINFO_TYPE (base_binfo),
11414 t, igo_prev,
11415 BINFO_VIRTUAL_P (base_binfo));
11416Index: gcc/cp/ChangeLog
11417===================================================================
11418--- gcc/cp/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293)
11419+++ gcc/cp/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293)
11420@@ -1,3 +1,133 @@
11421+2012-05-03 Paolo Carlini <paolo.carlini@oracle.com>
11422+
11423+ PR c++/53186
11424+ * call.c (build_over_call): Handle final member functions
11425+ and class types.
11426+ (build_new_method_call_1): Do not handle here.
11427+
11428+2012-04-17 Paolo Carlini <paolo.carlini@oracle.com>
11429+
11430+ PR c++/53003
11431+ * parser.c (cp_parser_member_declaration): Check that
11432+ initializer_token_start is non null before dereferencing it.
11433+
11434+2012-04-16 Jason Merrill <jason@redhat.com>
11435+
11436+ PR c++/38543
11437+ * pt.c (determine_specialization): Instead of comparing the number
11438+ of parms, check that tsubst gives the right answer.
11439+
11440+ PR c++/50830
11441+ * pt.c (convert_template_argument): Handle template template
11442+ argument packs.
11443+
11444+ PR c++/50303
11445+ * pt.c (tsubst_pack_expansion): Use tsubst_expr for template
11446+ template parameters.
11447+
11448+2012-04-15 Jason Merrill <jason@redhat.com>
11449+
11450+ PR c++/52292
11451+ PR c++/52380
11452+ * pt.c (coerce_template_parms): Even if we aren't converting we
11453+ want to expand argument packs.
11454+
11455+2012-04-15 Fabien Chêne <fabien@gcc.gnu.org>
11456+
11457+ PR c++/52465
11458+ * parser.c (cp_parser_class_name): Call strip_using_decl and
11459+ return the target decl.
11460+ * name-lookup.c (strip_using_decl): Returns NULL_TREE if the decl
11461+ to be stripped is NULL_TREE.
11462+ (qualify_lookup): Call strip_using_decl and perform some checks on
11463+ the target decl.
11464+
11465+2012-04-13 Jason Merrill <jason@redhat.com>
11466+
11467+ PR c++/52824
11468+ * pt.c (any_pack_expanson_args_p): New.
11469+ (coerce_template_parms): Use it.
11470+
11471+2012-04-11 Jason Merrill <jason@redhat.com>
11472+
11473+ PR c++/52906
11474+ * decl.c (check_tag_decl): Don't complain about attributes if we
11475+ don't even have a type.
11476+
11477+2012-04-05 Jason Merrill <jason@redhat.com>
11478+
11479+ PR c++/52596
11480+ * tree.c (lvalue_kind): Treat a deferred access control SCOPE_REF
11481+ as an lvalue.
11482+
11483+2012-04-03 Jason Merrill <jason@redhat.com>
11484+
11485+ PR c++/52796
11486+ * pt.c (tsubst_initializer_list): A pack expansion with no elements
11487+ means value-initialization.
11488+
11489+2012-03-29 Meador Inge <meadori@codesourcery.com>
11490+
11491+ PR c++/52672
11492+ * semantics.c (cxx_fold_indirect_ref): Don't attempt to fold
11493+ stripped child trees that are not pointer types.
11494+
11495+2012-03-29 Paolo Carlini <paolo.carlini@oracle.com>
11496+
11497+ PR c++/52718
11498+ * decl.c (check_default_argument): With -Wzero-as-null-pointer-constant
11499+ warn for a zero as null pointer constant default argument.
11500+
11501+2012-03-29 Jason Merrill <jason@redhat.com>
11502+
11503+ PR c++/52685
11504+ * tree.c (copy_binfo): Handle BINFO_DEPENDENT_BASE_P.
11505+
11506+2012-03-29 Jakub Jelinek <jakub@redhat.com>
11507+
11508+ PR c++/52759
11509+ * decl.c (start_decl): Don't call maybe_apply_pragma_weak
11510+ if processing_template_decl.
11511+
11512+2012-03-29 Jason Merrill <jason@redhat.com>
11513+
11514+ PR c++/52743
11515+ * call.c (compare_ics): Handle ck_aggr like ck_list.
11516+
11517+2012-03-28 Jason Merrill <jason@redhat.com>
11518+
11519+ PR c++/52746
11520+ * typeck.c (lookup_destructor): Clear BASELINK_QUALIFIED_P if
11521+ we didn't get an explicit scope.
11522+ * pt.c (tsubst_baselink): Likewise.
11523+
11524+2012-03-22 Paolo Carlini <paolo.carlini@oracle.com>
11525+
11526+ PR c++/52487
11527+ * class.c (check_field_decls): Call literal_type_p only
11528+ on complete types.
11529+
11530+2012-03-22 Jakub Jelinek <jakub@redhat.com>
11531+
11532+ PR c++/52671
11533+ * decl.c (check_tag_decl): Only use CLASSTYPE_TEMPLATE_INSTANTIATION
11534+ on CLASS_TYPE_P types.
11535+
11536+2012-03-22 Jason Merrill <jason@redhat.com>
11537+
11538+ PR c++/52582
11539+ * method.c (implicitly_declare_fn): Set DECL_EXTERNAL.
11540+
11541+2012-03-22 Jakub Jelinek <jakub@redhat.com>
11542+
11543+ Backported from mainline
11544+ 2012-03-14 Jakub Jelinek <jakub@redhat.com>
11545+
11546+ PR c++/52521
11547+ * parser.c (lookup_literal_operator): Return fn only if
11548+ processed all arguments from args vector and argtypes is
11549+ void_list_node.
11550+
11551 2012-03-22 Release Manager
11552
11553 * GCC 4.7.0 released.
11554Index: gcc/cp/pt.c
11555===================================================================
11556--- gcc/cp/pt.c (.../tags/gcc_4_7_0_release) (wersja 187293)
11557+++ gcc/cp/pt.c (.../branches/gcc-4_7-branch) (wersja 187293)
11558@@ -1860,6 +1860,7 @@
11559 {
11560 tree decl_arg_types;
11561 tree fn_arg_types;
11562+ tree insttype;
11563
11564 /* In case of explicit specialization, we need to check if
11565 the number of template headers appearing in the specialization
11566@@ -1927,7 +1928,8 @@
11567 template <> void f<int>();
11568 The specialization f<int> is invalid but is not caught
11569 by get_bindings below. */
11570- if (list_length (fn_arg_types) != list_length (decl_arg_types))
11571+ if (cxx_dialect < cxx11
11572+ && list_length (fn_arg_types) != list_length (decl_arg_types))
11573 continue;
11574
11575 /* Function templates cannot be specializations; there are
11576@@ -1950,6 +1952,18 @@
11577 specialize TMPL will produce DECL. */
11578 continue;
11579
11580+ if (cxx_dialect >= cxx11)
11581+ {
11582+ /* Make sure that the deduced arguments actually work. */
11583+ insttype = tsubst (TREE_TYPE (fn), targs, tf_none, NULL_TREE);
11584+ if (insttype == error_mark_node)
11585+ continue;
11586+ fn_arg_types
11587+ = skip_artificial_parms_for (fn, TYPE_ARG_TYPES (insttype));
11588+ if (!compparms (fn_arg_types, decl_arg_types))
11589+ continue;
11590+ }
11591+
11592 /* Save this template, and the arguments deduced. */
11593 templates = tree_cons (targs, fn, templates);
11594 }
11595@@ -6437,6 +6451,7 @@
11596 is_tmpl_type =
11597 ((TREE_CODE (arg) == TEMPLATE_DECL
11598 && TREE_CODE (DECL_TEMPLATE_RESULT (arg)) == TYPE_DECL)
11599+ || (requires_tmpl_type && TREE_CODE (arg) == TYPE_ARGUMENT_PACK)
11600 || TREE_CODE (arg) == TEMPLATE_TEMPLATE_PARM
11601 || TREE_CODE (arg) == UNBOUND_CLASS_TEMPLATE);
11602
11603@@ -6508,7 +6523,9 @@
11604 {
11605 if (requires_tmpl_type)
11606 {
11607- if (TREE_CODE (TREE_TYPE (arg)) == UNBOUND_CLASS_TEMPLATE)
11608+ if (template_parameter_pack_p (parm) && ARGUMENT_PACK_P (orig_arg))
11609+ val = orig_arg;
11610+ else if (TREE_CODE (TREE_TYPE (arg)) == UNBOUND_CLASS_TEMPLATE)
11611 /* The number of argument required is not known yet.
11612 Just accept it for now. */
11613 val = TREE_TYPE (arg);
11614@@ -6734,6 +6751,20 @@
11615 return argument_pack;
11616 }
11617
11618+/* Returns true if the template argument vector ARGS contains
11619+ any pack expansions, false otherwise. */
11620+
11621+static bool
11622+any_pack_expanson_args_p (tree args)
11623+{
11624+ int i;
11625+ if (args)
11626+ for (i = 0; i < TREE_VEC_LENGTH (args); ++i)
11627+ if (PACK_EXPANSION_P (TREE_VEC_ELT (args, i)))
11628+ return true;
11629+ return false;
11630+}
11631+
11632 /* Convert all template arguments to their appropriate types, and
11633 return a vector containing the innermost resulting template
11634 arguments. If any error occurs, return error_mark_node. Error and
11635@@ -6799,6 +6830,7 @@
11636 if ((nargs > nparms && !variadic_p)
11637 || (nargs < nparms - variadic_p
11638 && require_all_args
11639+ && !any_pack_expanson_args_p (inner_args)
11640 && (!use_default_args
11641 || (TREE_VEC_ELT (parms, nargs) != error_mark_node
11642 && !TREE_PURPOSE (TREE_VEC_ELT (parms, nargs))))))
11643@@ -6876,7 +6908,7 @@
11644 {
11645 /* We don't know how many args we have yet, just
11646 use the unconverted ones for now. */
11647- new_inner_args = args;
11648+ new_inner_args = inner_args;
11649 break;
11650 }
11651 }
11652@@ -9548,7 +9580,7 @@
11653 }
11654
11655 /* Substitute into the PATTERN with the altered arguments. */
11656- if (TREE_CODE (t) == EXPR_PACK_EXPANSION)
11657+ if (!TYPE_P (pattern))
11658 TREE_VEC_ELT (result, i) =
11659 tsubst_expr (pattern, args, complain, in_decl,
11660 /*integral_constant_expression_p=*/false);
11661@@ -11858,6 +11890,7 @@
11662 tree optype;
11663 tree template_args = 0;
11664 bool template_id_p = false;
11665+ bool qualified = BASELINK_QUALIFIED_P (baselink);
11666
11667 /* A baselink indicates a function from a base class. Both the
11668 BASELINK_ACCESS_BINFO and the base class referenced may
11669@@ -11906,9 +11939,12 @@
11670
11671 if (!object_type)
11672 object_type = current_class_type;
11673- return adjust_result_of_qualified_name_lookup (baselink,
11674- qualifying_scope,
11675- object_type);
11676+
11677+ if (qualified)
11678+ baselink = adjust_result_of_qualified_name_lookup (baselink,
11679+ qualifying_scope,
11680+ object_type);
11681+ return baselink;
11682 }
11683
11684 /* Like tsubst_expr for a SCOPE_REF, given by QUALIFIED_ID. DONE is
11685@@ -18979,6 +19015,7 @@
11686 }
11687 else
11688 {
11689+ tree tmp;
11690 decl = tsubst_copy (TREE_PURPOSE (t), argvec,
11691 tf_warning_or_error, NULL_TREE);
11692
11693@@ -18987,10 +19024,17 @@
11694 in_base_initializer = 1;
11695
11696 init = TREE_VALUE (t);
11697+ tmp = init;
11698 if (init != void_type_node)
11699 init = tsubst_expr (init, argvec,
11700 tf_warning_or_error, NULL_TREE,
11701 /*integral_constant_expression_p=*/false);
11702+ if (init == NULL_TREE && tmp != NULL_TREE)
11703+ /* If we had an initializer but it instantiated to nothing,
11704+ value-initialize the object. This will only occur when
11705+ the initializer was a pack expansion where the parameter
11706+ packs used in that expansion were of length zero. */
11707+ init = void_type_node;
11708 in_base_initializer = 0;
11709 }
11710
11711Index: gcc/cp/semantics.c
11712===================================================================
11713--- gcc/cp/semantics.c (.../tags/gcc_4_7_0_release) (wersja 187293)
11714+++ gcc/cp/semantics.c (.../branches/gcc-4_7-branch) (wersja 187293)
11715@@ -7202,7 +7202,8 @@
11716 sub = op0;
11717 STRIP_NOPS (sub);
11718 subtype = TREE_TYPE (sub);
11719- gcc_assert (POINTER_TYPE_P (subtype));
11720+ if (!POINTER_TYPE_P (subtype))
11721+ return NULL_TREE;
11722
11723 if (TREE_CODE (sub) == ADDR_EXPR)
11724 {
11725Index: gcc/cp/parser.c
11726===================================================================
11727--- gcc/cp/parser.c (.../tags/gcc_4_7_0_release) (wersja 187293)
11728+++ gcc/cp/parser.c (.../branches/gcc-4_7-branch) (wersja 187293)
11729@@ -1,6 +1,6 @@
11730 /* C++ Parser.
11731 Copyright (C) 2000, 2001, 2002, 2003, 2004,
11732- 2005, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
11733+ 2005, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
11734 Written by Mark Mitchell <mark@codesourcery.com>.
11735
11736 This file is part of GCC.
11737@@ -3581,7 +3581,13 @@
11738 TREE_TYPE (tparm))))
11739 found = false;
11740 }
11741- if (found)
11742+ if (found
11743+ && ix == VEC_length (tree, args)
11744+ /* May be this should be sufficient_parms_p instead,
11745+ depending on how exactly should user-defined literals
11746+ work in presence of default arguments on the literal
11747+ operator parameters. */
11748+ && argtypes == void_list_node)
11749 return fn;
11750 }
11751 }
11752@@ -17835,6 +17841,8 @@
11753 decl = TYPE_NAME (decl);
11754 }
11755
11756+ decl = strip_using_decl (decl);
11757+
11758 /* Check to see that it is really the name of a class. */
11759 if (TREE_CODE (decl) == TEMPLATE_ID_EXPR
11760 && TREE_CODE (TREE_OPERAND (decl, 0)) == IDENTIFIER_NODE
11761@@ -19097,7 +19105,7 @@
11762 possible that this fact is an oversight in the
11763 standard, since a pure function may be defined
11764 outside of the class-specifier. */
11765- if (initializer)
11766+ if (initializer && initializer_token_start)
11767 error_at (initializer_token_start->location,
11768 "pure-specifier on function-definition");
11769 decl = cp_parser_save_member_function_body (parser,
11770Index: gcc/cp/call.c
11771===================================================================
11772--- gcc/cp/call.c (.../tags/gcc_4_7_0_release) (wersja 187293)
11773+++ gcc/cp/call.c (.../branches/gcc-4_7-branch) (wersja 187293)
11774@@ -6464,6 +6464,12 @@
11775 return error_mark_node;
11776 }
11777
11778+ /* See if the function member or the whole class type is declared
11779+ final and the call can be devirtualized. */
11780+ if (DECL_FINAL_P (fn)
11781+ || CLASSTYPE_FINAL (TYPE_METHOD_BASETYPE (TREE_TYPE (fn))))
11782+ flags |= LOOKUP_NONVIRTUAL;
11783+
11784 /* [class.mfct.nonstatic]: If a nonstatic member function of a class
11785 X is called for an object that is not of type X, or of a type
11786 derived from X, the behavior is undefined.
11787@@ -7324,8 +7330,7 @@
11788 /* Optimize away vtable lookup if we know that this function
11789 can't be overridden. */
11790 if (DECL_VINDEX (fn) && ! (flags & LOOKUP_NONVIRTUAL)
11791- && (resolves_to_fixed_type_p (instance, 0)
11792- || DECL_FINAL_P (fn) || CLASSTYPE_FINAL (basetype)))
11793+ && resolves_to_fixed_type_p (instance, 0))
11794 flags |= LOOKUP_NONVIRTUAL;
11795 if (explicit_targs)
11796 flags |= LOOKUP_EXPLICIT_TMPL_ARGS;
11797@@ -7615,7 +7620,7 @@
11798 Specifically, we need to do the reference binding comparison at the
11799 end of this function. */
11800
11801- if (ics1->user_conv_p || ics1->kind == ck_list)
11802+ if (ics1->user_conv_p || ics1->kind == ck_list || ics1->kind == ck_aggr)
11803 {
11804 conversion *t1;
11805 conversion *t2;
11806Index: gcc/cp/name-lookup.c
11807===================================================================
11808--- gcc/cp/name-lookup.c (.../tags/gcc_4_7_0_release) (wersja 187293)
11809+++ gcc/cp/name-lookup.c (.../branches/gcc-4_7-branch) (wersja 187293)
11810@@ -1,5 +1,5 @@
11811 /* Definitions for C++ name lookup routines.
11812- Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
11813+ Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
11814 Free Software Foundation, Inc.
11815 Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
11816
11817@@ -400,6 +400,9 @@
11818 tree
11819 strip_using_decl (tree decl)
11820 {
11821+ if (decl == NULL_TREE)
11822+ return NULL_TREE;
11823+
11824 while (TREE_CODE (decl) == USING_DECL && !DECL_DEPENDENT_P (decl))
11825 decl = USING_DECL_DECLS (decl);
11826 return decl;
11827@@ -4115,9 +4118,13 @@
11828 return false;
11829 if ((flags & LOOKUP_PREFER_NAMESPACES) && TREE_CODE (val) == NAMESPACE_DECL)
11830 return true;
11831- if ((flags & LOOKUP_PREFER_TYPES)
11832- && (TREE_CODE (val) == TYPE_DECL || TREE_CODE (val) == TEMPLATE_DECL))
11833- return true;
11834+ if (flags & LOOKUP_PREFER_TYPES)
11835+ {
11836+ tree target_val = strip_using_decl (val);
11837+ if (TREE_CODE (target_val) == TYPE_DECL
11838+ || TREE_CODE (target_val) == TEMPLATE_DECL)
11839+ return true;
11840+ }
11841 if (flags & (LOOKUP_PREFER_NAMESPACES | LOOKUP_PREFER_TYPES))
11842 return false;
11843 /* Look through lambda things that we shouldn't be able to see. */
11844Index: gcc/tree-ssa-ccp.c
11845===================================================================
11846--- gcc/tree-ssa-ccp.c (.../tags/gcc_4_7_0_release) (wersja 187293)
11847+++ gcc/tree-ssa-ccp.c (.../branches/gcc-4_7-branch) (wersja 187293)
11848@@ -1764,23 +1764,25 @@
11849 }
11850
11851 /* Find a BUILT_IN_STACK_SAVE dominating gsi_stmt (I), and insert
11852- a clobber of VAR before each matching BUILT_IN_STACK_RESTORE. */
11853+ a clobber of VAR before each matching BUILT_IN_STACK_RESTORE.
11854
11855+ It is possible that BUILT_IN_STACK_SAVE cannot be find in a dominator when a
11856+ previous pass (such as DOM) duplicated it along multiple paths to a BB. In
11857+ that case the function gives up without inserting the clobbers. */
11858+
11859 static void
11860 insert_clobbers_for_var (gimple_stmt_iterator i, tree var)
11861 {
11862- bool save_found;
11863 gimple stmt;
11864 tree saved_val;
11865 htab_t visited = NULL;
11866
11867- for (save_found = false; !gsi_end_p (i); gsi_prev_dom_bb_nondebug (&i))
11868+ for (; !gsi_end_p (i); gsi_prev_dom_bb_nondebug (&i))
11869 {
11870 stmt = gsi_stmt (i);
11871
11872 if (!gimple_call_builtin_p (stmt, BUILT_IN_STACK_SAVE))
11873 continue;
11874- save_found = true;
11875
11876 saved_val = gimple_call_lhs (stmt);
11877 if (saved_val == NULL_TREE)
11878@@ -1792,7 +1794,6 @@
11879
11880 if (visited != NULL)
11881 htab_delete (visited);
11882- gcc_assert (save_found);
11883 }
11884
11885 /* Detects a __builtin_alloca_with_align with constant size argument. Declares
11886@@ -2288,7 +2289,7 @@
11887 case BUILT_IN_VA_START:
11888 if (!va_list_simple_ptr
11889 || targetm.expand_builtin_va_start != NULL
11890- || builtin_decl_explicit_p (BUILT_IN_NEXT_ARG))
11891+ || !builtin_decl_explicit_p (BUILT_IN_NEXT_ARG))
11892 return NULL_TREE;
11893
11894 if (gimple_call_num_args (call) != 2)
11895Index: gcc/tree-ssa-alias.c
11896===================================================================
11897--- gcc/tree-ssa-alias.c (.../tags/gcc_4_7_0_release) (wersja 187293)
11898+++ gcc/tree-ssa-alias.c (.../branches/gcc-4_7-branch) (wersja 187293)
11899@@ -236,17 +236,6 @@
11900 STRIP_NOPS (ptr1);
11901 STRIP_NOPS (ptr2);
11902
11903- /* Anything we do not explicilty handle aliases. */
11904- if ((TREE_CODE (ptr1) != SSA_NAME
11905- && TREE_CODE (ptr1) != ADDR_EXPR
11906- && TREE_CODE (ptr1) != POINTER_PLUS_EXPR)
11907- || (TREE_CODE (ptr2) != SSA_NAME
11908- && TREE_CODE (ptr2) != ADDR_EXPR
11909- && TREE_CODE (ptr2) != POINTER_PLUS_EXPR)
11910- || !POINTER_TYPE_P (TREE_TYPE (ptr1))
11911- || !POINTER_TYPE_P (TREE_TYPE (ptr2)))
11912- return true;
11913-
11914 /* Disregard pointer offsetting. */
11915 if (TREE_CODE (ptr1) == POINTER_PLUS_EXPR)
11916 {
11917@@ -275,7 +264,7 @@
11918 if (base
11919 && (TREE_CODE (base) == MEM_REF
11920 || TREE_CODE (base) == TARGET_MEM_REF))
11921- ptr1 = TREE_OPERAND (base, 0);
11922+ return ptr_derefs_may_alias_p (TREE_OPERAND (base, 0), ptr2);
11923 else if (base
11924 && DECL_P (base))
11925 return ptr_deref_may_alias_decl_p (ptr2, base);
11926@@ -288,7 +277,7 @@
11927 if (base
11928 && (TREE_CODE (base) == MEM_REF
11929 || TREE_CODE (base) == TARGET_MEM_REF))
11930- ptr2 = TREE_OPERAND (base, 0);
11931+ return ptr_derefs_may_alias_p (ptr1, TREE_OPERAND (base, 0));
11932 else if (base
11933 && DECL_P (base))
11934 return ptr_deref_may_alias_decl_p (ptr1, base);
11935@@ -296,6 +285,13 @@
11936 return true;
11937 }
11938
11939+ /* From here we require SSA name pointers. Anything else aliases. */
11940+ if (TREE_CODE (ptr1) != SSA_NAME
11941+ || TREE_CODE (ptr2) != SSA_NAME
11942+ || !POINTER_TYPE_P (TREE_TYPE (ptr1))
11943+ || !POINTER_TYPE_P (TREE_TYPE (ptr2)))
11944+ return true;
11945+
11946 /* We may end up with two empty points-to solutions for two same pointers.
11947 In this case we still want to say both pointers alias, so shortcut
11948 that here. */
11949Index: gcc/ipa-inline.c
11950===================================================================
11951--- gcc/ipa-inline.c (.../tags/gcc_4_7_0_release) (wersja 187293)
11952+++ gcc/ipa-inline.c (.../branches/gcc-4_7-branch) (wersja 187293)
11953@@ -220,8 +220,8 @@
11954 if (dump_file)
11955 {
11956 fprintf (dump_file, " not inlinable: %s/%i -> %s/%i, %s\n",
11957- cgraph_node_name (e->caller), e->caller->uid,
11958- cgraph_node_name (e->callee), e->callee->uid,
11959+ xstrdup (cgraph_node_name (e->caller)), e->caller->uid,
11960+ xstrdup (cgraph_node_name (e->callee)), e->callee->uid,
11961 cgraph_inline_failed_string (e->inline_failed));
11962 }
11963 }
11964@@ -423,8 +423,8 @@
11965 if (dump_file)
11966 fprintf (dump_file, " will not early inline: %s/%i->%s/%i, "
11967 "call is cold and code would grow by %i\n",
11968- cgraph_node_name (e->caller), e->caller->uid,
11969- cgraph_node_name (callee), callee->uid,
11970+ xstrdup (cgraph_node_name (e->caller)), e->caller->uid,
11971+ xstrdup (cgraph_node_name (callee)), callee->uid,
11972 growth);
11973 want_inline = false;
11974 }
11975@@ -434,8 +434,8 @@
11976 if (dump_file)
11977 fprintf (dump_file, " will not early inline: %s/%i->%s/%i, "
11978 "callee is not leaf and code would grow by %i\n",
11979- cgraph_node_name (e->caller), e->caller->uid,
11980- cgraph_node_name (callee), callee->uid,
11981+ xstrdup (cgraph_node_name (e->caller)), e->caller->uid,
11982+ xstrdup (cgraph_node_name (callee)), callee->uid,
11983 growth);
11984 want_inline = false;
11985 }
11986@@ -444,8 +444,8 @@
11987 if (dump_file)
11988 fprintf (dump_file, " will not early inline: %s/%i->%s/%i, "
11989 "growth %i exceeds --param early-inlining-insns\n",
11990- cgraph_node_name (e->caller), e->caller->uid,
11991- cgraph_node_name (callee), callee->uid,
11992+ xstrdup (cgraph_node_name (e->caller)), e->caller->uid,
11993+ xstrdup (cgraph_node_name (callee)), callee->uid,
11994 growth);
11995 want_inline = false;
11996 }
11997@@ -754,8 +754,8 @@
11998 if (dump)
11999 {
12000 fprintf (dump_file, " Badness calculation for %s -> %s\n",
12001- cgraph_node_name (edge->caller),
12002- cgraph_node_name (callee));
12003+ xstrdup (cgraph_node_name (edge->caller)),
12004+ xstrdup (cgraph_node_name (callee)));
12005 fprintf (dump_file, " size growth %i, time growth %i\n",
12006 growth,
12007 time_growth);
12008@@ -910,8 +910,10 @@
12009 {
12010 fprintf (dump_file,
12011 " decreasing badness %s/%i -> %s/%i, %i to %i\n",
12012- cgraph_node_name (edge->caller), edge->caller->uid,
12013- cgraph_node_name (edge->callee), edge->callee->uid,
12014+ xstrdup (cgraph_node_name (edge->caller)),
12015+ edge->caller->uid,
12016+ xstrdup (cgraph_node_name (edge->callee)),
12017+ edge->callee->uid,
12018 (int)n->key,
12019 badness);
12020 }
12021@@ -925,8 +927,10 @@
12022 {
12023 fprintf (dump_file,
12024 " enqueuing call %s/%i -> %s/%i, badness %i\n",
12025- cgraph_node_name (edge->caller), edge->caller->uid,
12026- cgraph_node_name (edge->callee), edge->callee->uid,
12027+ xstrdup (cgraph_node_name (edge->caller)),
12028+ edge->caller->uid,
12029+ xstrdup (cgraph_node_name (edge->callee)),
12030+ edge->callee->uid,
12031 badness);
12032 }
12033 edge->aux = fibheap_insert (heap, badness, edge);
12034@@ -1608,8 +1612,8 @@
12035 if (dump_file)
12036 fprintf (dump_file,
12037 "Not inlining %s into %s to avoid cycle.\n",
12038- cgraph_node_name (callee),
12039- cgraph_node_name (e->caller));
12040+ xstrdup (cgraph_node_name (callee)),
12041+ xstrdup (cgraph_node_name (e->caller)));
12042 e->inline_failed = CIF_RECURSIVE_INLINING;
12043 continue;
12044 }
12045@@ -1649,8 +1653,8 @@
12046 recursing through the original node if the node was cloned. */
12047 if (dump_file)
12048 fprintf (dump_file, " Inlining %s into %s.\n",
12049- cgraph_node_name (callee),
12050- cgraph_node_name (e->caller));
12051+ xstrdup (cgraph_node_name (callee)),
12052+ xstrdup (cgraph_node_name (e->caller)));
12053 orig_callee = callee;
12054 inline_call (e, true, NULL, NULL);
12055 if (e->callee != orig_callee)
12056@@ -1752,7 +1756,8 @@
12057 {
12058 fprintf (dump_file,
12059 "\nInlining %s size %i.\n",
12060- cgraph_node_name (node), inline_summary (node)->size);
12061+ cgraph_node_name (node),
12062+ inline_summary (node)->size);
12063 fprintf (dump_file,
12064 " Called once from %s %i insns.\n",
12065 cgraph_node_name (node->callers->caller),
12066@@ -1815,8 +1820,8 @@
12067
12068 if (dump_file)
12069 fprintf (dump_file, " Inlining %s into %s (always_inline).\n",
12070- cgraph_node_name (e->callee),
12071- cgraph_node_name (e->caller));
12072+ xstrdup (cgraph_node_name (e->callee)),
12073+ xstrdup (cgraph_node_name (e->caller)));
12074 inline_call (e, true, NULL, NULL);
12075 inlined = true;
12076 }
12077@@ -1865,8 +1870,8 @@
12078
12079 if (dump_file)
12080 fprintf (dump_file, " Inlining %s into %s.\n",
12081- cgraph_node_name (callee),
12082- cgraph_node_name (e->caller));
12083+ xstrdup (cgraph_node_name (callee)),
12084+ xstrdup (cgraph_node_name (e->caller)));
12085 inline_call (e, true, NULL, NULL);
12086 inlined = true;
12087 }
12088Index: gcc/dwarf2out.c
12089===================================================================
12090--- gcc/dwarf2out.c (.../tags/gcc_4_7_0_release) (wersja 187293)
12091+++ gcc/dwarf2out.c (.../branches/gcc-4_7-branch) (wersja 187293)
12092@@ -19889,7 +19889,9 @@
12093 return;
12094
12095 /* For local statics lookup proper context die. */
12096- if (TREE_STATIC (decl) && decl_function_context (decl))
12097+ if (TREE_STATIC (decl)
12098+ && DECL_CONTEXT (decl)
12099+ && TREE_CODE (DECL_CONTEXT (decl)) == FUNCTION_DECL)
12100 context_die = lookup_decl_die (DECL_CONTEXT (decl));
12101
12102 /* If we are in terse mode, don't generate any DIEs to represent any
12103Index: gcc/go/lang.opt
12104===================================================================
12105--- gcc/go/lang.opt (.../tags/gcc_4_7_0_release) (wersja 187293)
12106+++ gcc/go/lang.opt (.../branches/gcc-4_7-branch) (wersja 187293)
12107@@ -37,6 +37,14 @@
12108 Go
12109 ; Documented in c.opt
12110
12111+fgo-check-divide-zero
12112+Go Var(go_check_divide_zero) Init(1)
12113+Add explicit checks for division by zero
12114+
12115+fgo-check-divide-overflow
12116+Go Var(go_check_divide_overflow) Init(1)
12117+Add explicit checks for division overflow in INT_MIN / -1
12118+
12119 fgo-dump-
12120 Go Joined RejectNegative
12121 -fgo-dump-<type> Dump Go frontend internal information
12122Index: gcc/go/ChangeLog
12123===================================================================
12124--- gcc/go/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293)
12125+++ gcc/go/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293)
12126@@ -1,3 +1,13 @@
12127+2012-04-23 Ian Lance Taylor <iant@google.com>
12128+
12129+ * go-lang.c (go_langhook_init): Set MPFR precision to 256.
12130+
12131+2012-04-20 Ian Lance Taylor <iant@google.com>
12132+
12133+ * lang.opt: Add -fgo-check-divide-zero and
12134+ -fgo-check-divide-overflow.
12135+ * gccgo.texi (Invoking gccgo): Document new options.
12136+
12137 2012-03-22 Release Manager
12138
12139 * GCC 4.7.0 released.
12140Index: gcc/go/gccgo.texi
12141===================================================================
12142--- gcc/go/gccgo.texi (.../tags/gcc_4_7_0_release) (wersja 187293)
12143+++ gcc/go/gccgo.texi (.../branches/gcc-4_7-branch) (wersja 187293)
12144@@ -174,6 +174,31 @@
12145 more return parameters but lack an explicit @code{return} statement.
12146 This warning may be disabled using
12147 @option{-fno-require-return-statement}.
12148+
12149+@item -fgo-check-divide-zero
12150+@cindex @option{-fgo-check-divide-zero}
12151+@cindex @option{-fno-go-check-divide-zero}
12152+Add explicit checks for division by zero. In Go a division (or
12153+modulos) by zero causes a panic. On Unix systems this is detected in
12154+the runtime by catching the @code{SIGFPE} signal. Some processors,
12155+such as PowerPC, do not generate a SIGFPE on division by zero. Some
12156+runtimes do not generate a signal that can be caught. On those
12157+systems, this option may be used. Or the checks may be removed via
12158+@option{-fno-go-check-divide-zero}. This option is currently on by
12159+default, but in the future may be off by default on systems that do
12160+not require it.
12161+
12162+@item -fgo-check-divide-overflow
12163+@cindex @option{-fgo-check-divide-overflow}
12164+@cindex @option{-fno-go-check-divide-overflow}
12165+Add explicit checks for division overflow. For example, division
12166+overflow occurs when computing @code{INT_MIN / -1}. In Go this should
12167+be wrapped, to produce @code{INT_MIN}. Some processors, such as x86,
12168+generate a trap on division overflow. On those systems, this option
12169+may be used. Or the checks may be removed via
12170+@option{-fno-go-check-divide-overflow}. This option is currently on
12171+by default, but in the future may be off by default on systems that do
12172+not require it.
12173 @end table
12174
12175 @c man end
12176Index: gcc/go/go-lang.c
12177===================================================================
12178--- gcc/go/go-lang.c (.../tags/gcc_4_7_0_release) (wersja 187293)
12179+++ gcc/go/go-lang.c (.../branches/gcc-4_7-branch) (wersja 187293)
12180@@ -103,7 +103,7 @@
12181 /* The default precision for floating point numbers. This is used
12182 for floating point constants with abstract type. This may
12183 eventually be controllable by a command line option. */
12184- mpfr_set_default_prec (128);
12185+ mpfr_set_default_prec (256);
12186
12187 /* Go uses exceptions. */
12188 using_eh_for_cleanups ();
12189Index: gcc/go/gofrontend/gogo.cc
12190===================================================================
12191--- gcc/go/gofrontend/gogo.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
12192+++ gcc/go/gofrontend/gogo.cc (.../branches/gcc-4_7-branch) (wersja 187293)
12193@@ -32,6 +32,7 @@
12194 imported_unsafe_(false),
12195 packages_(),
12196 init_functions_(),
12197+ var_deps_(),
12198 need_init_fn_(false),
12199 init_fn_name_(),
12200 imported_init_fns_(),
12201@@ -1653,8 +1654,12 @@
12202 }
12203
12204 case Type::TYPE_STRUCT:
12205+ // Traverse the field types first in case there is an embedded
12206+ // field with methods that the struct should inherit.
12207+ if (t->struct_type()->traverse_field_types(this) == TRAVERSE_EXIT)
12208+ return TRAVERSE_EXIT;
12209 t->struct_type()->finalize_methods(this->gogo_);
12210- break;
12211+ return TRAVERSE_SKIP_COMPONENTS;
12212
12213 default:
12214 break;
12215@@ -2212,13 +2217,19 @@
12216 Expression::traverse(&init, &find_eval_ordering);
12217 }
12218
12219- if (find_eval_ordering.size() <= 1)
12220- {
12221- // If there is only one expression with a side-effect, we can
12222- // leave it in place.
12223- return TRAVERSE_CONTINUE;
12224- }
12225+ size_t c = find_eval_ordering.size();
12226+ if (c == 0)
12227+ return TRAVERSE_CONTINUE;
12228
12229+ // If there is only one expression with a side-effect, we can
12230+ // usually leave it in place. However, for an assignment statement,
12231+ // we need to evaluate an expression on the right hand side before
12232+ // we evaluate any index expression on the left hand side, so for
12233+ // that case we always move the expression. Otherwise we mishandle
12234+ // m[0] = len(m) where m is a map.
12235+ if (c == 1 && s->classification() != Statement::STATEMENT_ASSIGNMENT)
12236+ return TRAVERSE_CONTINUE;
12237+
12238 bool is_thunk = s->thunk_statement() != NULL;
12239 for (Find_eval_ordering::const_iterator p = find_eval_ordering.begin();
12240 p != find_eval_ordering.end();
12241@@ -3810,6 +3821,10 @@
12242 Variable::lower_init_expression(Gogo* gogo, Named_object* function,
12243 Statement_inserter* inserter)
12244 {
12245+ Named_object* dep = gogo->var_depends_on(this);
12246+ if (dep != NULL && dep->is_variable())
12247+ dep->var_value()->lower_init_expression(gogo, function, inserter);
12248+
12249 if (this->init_ != NULL && !this->init_is_lowered_)
12250 {
12251 if (this->seen_)
12252@@ -4931,11 +4946,6 @@
12253 break;
12254
12255 case Named_object::NAMED_OBJECT_PACKAGE:
12256- if (new_object->is_package()
12257- && (old_object->package_value()->name()
12258- == new_object->package_value()->name()))
12259- return old_object;
12260-
12261 break;
12262 }
12263
12264Index: gcc/go/gofrontend/gogo.h
12265===================================================================
12266--- gcc/go/gofrontend/gogo.h (.../tags/gcc_4_7_0_release) (wersja 187293)
12267+++ gcc/go/gofrontend/gogo.h (.../branches/gcc-4_7-branch) (wersja 187293)
12268@@ -384,6 +384,23 @@
12269 void
12270 clear_file_scope();
12271
12272+ // Record that VAR1 must be initialized after VAR2. This is used
12273+ // when VAR2 does not appear in VAR1's INIT or PREINIT.
12274+ void
12275+ record_var_depends_on(Variable* var1, Named_object* var2)
12276+ {
12277+ go_assert(this->var_deps_.find(var1) == this->var_deps_.end());
12278+ this->var_deps_[var1] = var2;
12279+ }
12280+
12281+ // Return the variable that VAR depends on, or NULL if none.
12282+ Named_object*
12283+ var_depends_on(Variable* var) const
12284+ {
12285+ Var_deps::const_iterator p = this->var_deps_.find(var);
12286+ return p != this->var_deps_.end() ? p->second : NULL;
12287+ }
12288+
12289 // Queue up a type-specific function to be written out. This is
12290 // used when a type-specific function is needed when not at the top
12291 // level.
12292@@ -639,8 +656,9 @@
12293 // Type used to map package names to packages.
12294 typedef std::map<std::string, Package*> Packages;
12295
12296- // Type used to map special names in the sys package.
12297- typedef std::map<std::string, std::string> Sys_names;
12298+ // Type used to map variables to the function calls that set them.
12299+ // This is used for initialization dependency analysis.
12300+ typedef std::map<Variable*, Named_object*> Var_deps;
12301
12302 // Type used to queue writing a type specific function.
12303 struct Specific_type_function
12304@@ -683,6 +701,10 @@
12305 Packages packages_;
12306 // The functions named "init", if there are any.
12307 std::vector<Named_object*> init_functions_;
12308+ // A mapping from variables to the function calls that initialize
12309+ // them, if it is not stored in the variable's init or preinit.
12310+ // This is used for dependency analysis.
12311+ Var_deps var_deps_;
12312 // Whether we need a magic initialization function.
12313 bool need_init_fn_;
12314 // The name of the magic initialization function.
12315@@ -2791,6 +2813,9 @@
12316 // Channel capacity out of bounds in make: negative or overflow.
12317 static const int RUNTIME_ERROR_MAKE_CHAN_OUT_OF_BOUNDS = 9;
12318
12319+// Division by zero.
12320+static const int RUNTIME_ERROR_DIVISION_BY_ZERO = 10;
12321+
12322 // This is used by some of the langhooks.
12323 extern Gogo* go_get_gogo();
12324
12325Index: gcc/go/gofrontend/types.h
12326===================================================================
12327--- gcc/go/gofrontend/types.h (.../tags/gcc_4_7_0_release) (wersja 187293)
12328+++ gcc/go/gofrontend/types.h (.../branches/gcc-4_7-branch) (wersja 187293)
12329@@ -680,6 +680,14 @@
12330 complex_type() const
12331 { return this->convert<const Complex_type, TYPE_COMPLEX>(); }
12332
12333+ // Return whether this is a numeric type.
12334+ bool
12335+ is_numeric_type() const
12336+ {
12337+ Type_classification tc = this->base()->classification_;
12338+ return tc == TYPE_INTEGER || tc == TYPE_FLOAT || tc == TYPE_COMPLEX;
12339+ }
12340+
12341 // Return true if this is a boolean type.
12342 bool
12343 is_boolean_type() const
12344Index: gcc/go/gofrontend/parse.cc
12345===================================================================
12346--- gcc/go/gofrontend/parse.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
12347+++ gcc/go/gofrontend/parse.cc (.../branches/gcc-4_7-branch) (wersja 187293)
12348@@ -126,18 +126,22 @@
12349
12350 // ExpressionList = Expression { "," Expression } .
12351
12352+// If MAY_BE_COMPOSITE_LIT is true, an expression may be a composite
12353+// literal.
12354+
12355 // If MAY_BE_SINK is true, the expressions in the list may be "_".
12356
12357 Expression_list*
12358-Parse::expression_list(Expression* first, bool may_be_sink)
12359+Parse::expression_list(Expression* first, bool may_be_sink,
12360+ bool may_be_composite_lit)
12361 {
12362 Expression_list* ret = new Expression_list();
12363 if (first != NULL)
12364 ret->push_back(first);
12365 while (true)
12366 {
12367- ret->push_back(this->expression(PRECEDENCE_NORMAL, may_be_sink, true,
12368- NULL));
12369+ ret->push_back(this->expression(PRECEDENCE_NORMAL, may_be_sink,
12370+ may_be_composite_lit, NULL));
12371
12372 const Token* token = this->peek_token();
12373 if (!token->is_op(OPERATOR_COMMA))
12374@@ -1425,7 +1429,7 @@
12375 else
12376 {
12377 this->advance_token();
12378- expr_list = this->expression_list(NULL, false);
12379+ expr_list = this->expression_list(NULL, false, true);
12380 *last_type = type;
12381 if (*last_expr_list != NULL)
12382 delete *last_expr_list;
12383@@ -1575,13 +1579,13 @@
12384 if (this->peek_token()->is_op(OPERATOR_EQ))
12385 {
12386 this->advance_token();
12387- init = this->expression_list(NULL, false);
12388+ init = this->expression_list(NULL, false, true);
12389 }
12390 }
12391 else
12392 {
12393 this->advance_token();
12394- init = this->expression_list(NULL, false);
12395+ init = this->expression_list(NULL, false, true);
12396 }
12397
12398 this->init_vars(&til, type, init, false, location);
12399@@ -1667,6 +1671,7 @@
12400 // the right number of values, but it might. Declare the variables,
12401 // and then assign the results of the call to them.
12402
12403+ Named_object* first_var = NULL;
12404 unsigned int index = 0;
12405 bool any_new = false;
12406 for (Typed_identifier_list::const_iterator pv = vars->begin();
12407@@ -1674,7 +1679,22 @@
12408 ++pv, ++index)
12409 {
12410 Expression* init = Expression::make_call_result(call, index);
12411- this->init_var(*pv, type, init, is_coloneq, false, &any_new);
12412+ Named_object* no = this->init_var(*pv, type, init, is_coloneq, false,
12413+ &any_new);
12414+
12415+ if (this->gogo_->in_global_scope() && no->is_variable())
12416+ {
12417+ if (first_var == NULL)
12418+ first_var = no;
12419+ else
12420+ {
12421+ // The subsequent vars have an implicit dependency on
12422+ // the first one, so that everything gets initialized in
12423+ // the right order and so that we detect cycles
12424+ // correctly.
12425+ this->gogo_->record_var_depends_on(no->var_value(), first_var);
12426+ }
12427+ }
12428 }
12429
12430 if (is_coloneq && !any_new)
12431@@ -1972,6 +1992,9 @@
12432 // In order to support both "a, b := 1, 0" and "a, b = 1, 0" we accept
12433 // tuple assignments here as well.
12434
12435+// If MAY_BE_COMPOSITE_LIT is true, the expression on the right hand
12436+// side may be a composite literal.
12437+
12438 // If P_RANGE_CLAUSE is not NULL, then this will recognize a
12439 // RangeClause.
12440
12441@@ -1981,6 +2004,7 @@
12442 void
12443 Parse::simple_var_decl_or_assignment(const std::string& name,
12444 Location location,
12445+ bool may_be_composite_lit,
12446 Range_clause* p_range_clause,
12447 Type_switch* p_type_switch)
12448 {
12449@@ -2037,14 +2061,15 @@
12450 exprs->push_back(this->id_to_expression(p->name(),
12451 p->location()));
12452
12453- Expression_list* more_exprs = this->expression_list(NULL, true);
12454+ Expression_list* more_exprs =
12455+ this->expression_list(NULL, true, may_be_composite_lit);
12456 for (Expression_list::const_iterator p = more_exprs->begin();
12457 p != more_exprs->end();
12458 ++p)
12459 exprs->push_back(*p);
12460 delete more_exprs;
12461
12462- this->tuple_assignment(exprs, p_range_clause);
12463+ this->tuple_assignment(exprs, may_be_composite_lit, p_range_clause);
12464 return;
12465 }
12466 }
12467@@ -2060,11 +2085,12 @@
12468
12469 Expression_list* init;
12470 if (p_type_switch == NULL)
12471- init = this->expression_list(NULL, false);
12472+ init = this->expression_list(NULL, false, may_be_composite_lit);
12473 else
12474 {
12475 bool is_type_switch = false;
12476- Expression* expr = this->expression(PRECEDENCE_NORMAL, false, true,
12477+ Expression* expr = this->expression(PRECEDENCE_NORMAL, false,
12478+ may_be_composite_lit,
12479 &is_type_switch);
12480 if (is_type_switch)
12481 {
12482@@ -2083,7 +2109,7 @@
12483 else
12484 {
12485 this->advance_token();
12486- init = this->expression_list(expr, false);
12487+ init = this->expression_list(expr, false, may_be_composite_lit);
12488 }
12489 }
12490
12491@@ -2865,7 +2891,16 @@
12492 {
12493 if (this->peek_token()->is_op(OPERATOR_LCURLY))
12494 {
12495- if (is_parenthesized)
12496+ if (!may_be_composite_lit)
12497+ {
12498+ Type* t = ret->type();
12499+ if (t->named_type() != NULL
12500+ || t->forward_declaration_type() != NULL)
12501+ error_at(start_loc,
12502+ _("parentheses required around this composite literal"
12503+ "to avoid parsing ambiguity"));
12504+ }
12505+ else if (is_parenthesized)
12506 error_at(start_loc,
12507 "cannot parenthesize type in composite literal");
12508 ret = this->composite_lit(ret->type(), 0, ret->location());
12509@@ -3040,7 +3075,7 @@
12510 const Token* token = this->advance_token();
12511 if (!token->is_op(OPERATOR_RPAREN))
12512 {
12513- args = this->expression_list(NULL, false);
12514+ args = this->expression_list(NULL, false, true);
12515 token = this->peek_token();
12516 if (token->is_op(OPERATOR_ELLIPSIS))
12517 {
12518@@ -3553,6 +3588,7 @@
12519 {
12520 identifier = this->gogo_->pack_hidden_name(identifier, is_exported);
12521 this->simple_var_decl_or_assignment(identifier, location,
12522+ may_be_composite_lit,
12523 p_range_clause,
12524 (token->is_op(OPERATOR_COLONEQ)
12525 ? p_type_switch
12526@@ -3588,7 +3624,7 @@
12527 this->inc_dec_stat(this->verify_not_sink(exp));
12528 else if (token->is_op(OPERATOR_COMMA)
12529 || token->is_op(OPERATOR_EQ))
12530- this->assignment(exp, p_range_clause);
12531+ this->assignment(exp, may_be_composite_lit, p_range_clause);
12532 else if (token->is_op(OPERATOR_PLUSEQ)
12533 || token->is_op(OPERATOR_MINUSEQ)
12534 || token->is_op(OPERATOR_OREQ)
12535@@ -3600,7 +3636,8 @@
12536 || token->is_op(OPERATOR_RSHIFTEQ)
12537 || token->is_op(OPERATOR_ANDEQ)
12538 || token->is_op(OPERATOR_BITCLEAREQ))
12539- this->assignment(this->verify_not_sink(exp), p_range_clause);
12540+ this->assignment(this->verify_not_sink(exp), may_be_composite_lit,
12541+ p_range_clause);
12542 else if (return_exp != NULL)
12543 return this->verify_not_sink(exp);
12544 else
12545@@ -3706,11 +3743,15 @@
12546
12547 // EXP is an expression that we have already parsed.
12548
12549+// If MAY_BE_COMPOSITE_LIT is true, an expression on the right hand
12550+// side may be a composite literal.
12551+
12552 // If RANGE_CLAUSE is not NULL, then this will recognize a
12553 // RangeClause.
12554
12555 void
12556-Parse::assignment(Expression* expr, Range_clause* p_range_clause)
12557+Parse::assignment(Expression* expr, bool may_be_composite_lit,
12558+ Range_clause* p_range_clause)
12559 {
12560 Expression_list* vars;
12561 if (!this->peek_token()->is_op(OPERATOR_COMMA))
12562@@ -3721,20 +3762,24 @@
12563 else
12564 {
12565 this->advance_token();
12566- vars = this->expression_list(expr, true);
12567+ vars = this->expression_list(expr, true, may_be_composite_lit);
12568 }
12569
12570- this->tuple_assignment(vars, p_range_clause);
12571+ this->tuple_assignment(vars, may_be_composite_lit, p_range_clause);
12572 }
12573
12574 // An assignment statement. LHS is the list of expressions which
12575 // appear on the left hand side.
12576
12577+// If MAY_BE_COMPOSITE_LIT is true, an expression on the right hand
12578+// side may be a composite literal.
12579+
12580 // If RANGE_CLAUSE is not NULL, then this will recognize a
12581 // RangeClause.
12582
12583 void
12584-Parse::tuple_assignment(Expression_list* lhs, Range_clause* p_range_clause)
12585+Parse::tuple_assignment(Expression_list* lhs, bool may_be_composite_lit,
12586+ Range_clause* p_range_clause)
12587 {
12588 const Token* token = this->peek_token();
12589 if (!token->is_op(OPERATOR_EQ)
12590@@ -3766,7 +3811,8 @@
12591 return;
12592 }
12593
12594- Expression_list* vals = this->expression_list(NULL, false);
12595+ Expression_list* vals = this->expression_list(NULL, false,
12596+ may_be_composite_lit);
12597
12598 // We've parsed everything; check for errors.
12599 if (lhs == NULL || vals == NULL)
12600@@ -3935,7 +3981,7 @@
12601 this->advance_token();
12602 Expression_list* vals = NULL;
12603 if (this->expression_may_start_here())
12604- vals = this->expression_list(NULL, false);
12605+ vals = this->expression_list(NULL, false, true);
12606 this->gogo_->add_statement(Statement::make_return_statement(vals, location));
12607
12608 if (vals == NULL
12609@@ -3971,7 +4017,7 @@
12610
12611 bool saw_simple_stat = false;
12612 Expression* cond = NULL;
12613- bool saw_send_stmt;
12614+ bool saw_send_stmt = false;
12615 if (this->simple_stat_may_start_here())
12616 {
12617 cond = this->simple_stat(false, &saw_send_stmt, NULL, NULL);
12618@@ -4296,7 +4342,7 @@
12619 if (token->is_keyword(KEYWORD_CASE))
12620 {
12621 this->advance_token();
12622- return this->expression_list(NULL, false);
12623+ return this->expression_list(NULL, false, true);
12624 }
12625 else if (token->is_keyword(KEYWORD_DEFAULT))
12626 {
12627Index: gcc/go/gofrontend/unsafe.cc
12628===================================================================
12629--- gcc/go/gofrontend/unsafe.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
12630+++ gcc/go/gofrontend/unsafe.cc (.../branches/gcc-4_7-branch) (wersja 187293)
12631@@ -57,11 +57,11 @@
12632 if (add_to_globals)
12633 this->add_named_type(pointer_type);
12634
12635- Type* int_type = this->lookup_global("int")->type_value();
12636+ Type* uintptr_type = Type::lookup_integer_type("uintptr");
12637
12638 // Sizeof.
12639 Typed_identifier_list* results = new Typed_identifier_list;
12640- results->push_back(Typed_identifier("", int_type, bloc));
12641+ results->push_back(Typed_identifier("", uintptr_type, bloc));
12642 Function_type* fntype = Type::make_function_type(NULL, NULL, results, bloc);
12643 fntype->set_is_builtin();
12644 no = bindings->add_function_declaration("Sizeof", package, fntype, bloc);
12645@@ -70,7 +70,7 @@
12646
12647 // Offsetof.
12648 results = new Typed_identifier_list;
12649- results->push_back(Typed_identifier("", int_type, bloc));
12650+ results->push_back(Typed_identifier("", uintptr_type, bloc));
12651 fntype = Type::make_function_type(NULL, NULL, results, bloc);
12652 fntype->set_is_varargs();
12653 fntype->set_is_builtin();
12654@@ -80,7 +80,7 @@
12655
12656 // Alignof.
12657 results = new Typed_identifier_list;
12658- results->push_back(Typed_identifier("", int_type, bloc));
12659+ results->push_back(Typed_identifier("", uintptr_type, bloc));
12660 fntype = Type::make_function_type(NULL, NULL, results, bloc);
12661 fntype->set_is_varargs();
12662 fntype->set_is_builtin();
12663Index: gcc/go/gofrontend/expressions.h
12664===================================================================
12665--- gcc/go/gofrontend/expressions.h (.../tags/gcc_4_7_0_release) (wersja 187293)
12666+++ gcc/go/gofrontend/expressions.h (.../branches/gcc-4_7-branch) (wersja 187293)
12667@@ -18,6 +18,9 @@
12668 class Statement_inserter;
12669 class Type;
12670 struct Type_context;
12671+class Integer_type;
12672+class Float_type;
12673+class Complex_type;
12674 class Function_type;
12675 class Map_type;
12676 class Struct_type;
12677@@ -38,6 +41,7 @@
12678 class Interface_field_reference_expression;
12679 class Type_guard_expression;
12680 class Receive_expression;
12681+class Numeric_constant;
12682 class Named_object;
12683 class Export;
12684 class Import;
12685@@ -342,31 +346,12 @@
12686 is_constant() const
12687 { return this->do_is_constant(); }
12688
12689- // If this is not a constant expression with integral type, return
12690- // false. If it is one, return true, and set VAL to the value. VAL
12691- // should already be initialized. If this returns true, it sets
12692- // *PTYPE to the type of the value, or NULL for an abstract type.
12693- // If IOTA_IS_CONSTANT is true, then an iota expression is assumed
12694- // to have its final value.
12695+ // If this is not a numeric constant, return false. If it is one,
12696+ // return true, and set VAL to hold the value.
12697 bool
12698- integer_constant_value(bool iota_is_constant, mpz_t val, Type** ptype) const;
12699+ numeric_constant_value(Numeric_constant* val) const
12700+ { return this->do_numeric_constant_value(val); }
12701
12702- // If this is not a constant expression with floating point type,
12703- // return false. If it is one, return true, and set VAL to the
12704- // value. VAL should already be initialized. If this returns true,
12705- // it sets *PTYPE to the type of the value, or NULL for an abstract
12706- // type.
12707- bool
12708- float_constant_value(mpfr_t val, Type** ptype) const;
12709-
12710- // If this is not a constant expression with complex type, return
12711- // false. If it is one, return true, and set REAL and IMAG to the
12712- // value. REAL and IMAG should already be initialized. If this
12713- // return strue, it sets *PTYPE to the type of the value, or NULL
12714- // for an abstract type.
12715- bool
12716- complex_constant_value(mpfr_t real, mpfr_t imag, Type** ptype) const;
12717-
12718 // If this is not a constant expression with string type, return
12719 // false. If it is one, return true, and set VAL to the value.
12720 bool
12721@@ -691,24 +676,12 @@
12722 do_is_constant() const
12723 { return false; }
12724
12725- // Return whether this is a constant expression of integral type,
12726- // and set VAL to the value.
12727+ // Return whether this is a constant expression of numeric type, and
12728+ // set the Numeric_constant to the value.
12729 virtual bool
12730- do_integer_constant_value(bool, mpz_t, Type**) const
12731+ do_numeric_constant_value(Numeric_constant*) const
12732 { return false; }
12733
12734- // Return whether this is a constant expression of floating point
12735- // type, and set VAL to the value.
12736- virtual bool
12737- do_float_constant_value(mpfr_t, Type**) const
12738- { return false; }
12739-
12740- // Return whether this is a constant expression of complex type, and
12741- // set REAL and IMAGE to the value.
12742- virtual bool
12743- do_complex_constant_value(mpfr_t, mpfr_t, Type**) const
12744- { return false; }
12745-
12746 // Return whether this is a constant expression of string type, and
12747 // set VAL to the value.
12748 virtual bool
12749@@ -869,6 +842,11 @@
12750 bool
12751 contains_error() const;
12752
12753+ // Retrieve an element by index.
12754+ Expression*&
12755+ at(size_t i)
12756+ { return this->entries_.at(i); }
12757+
12758 // Return the first and last elements.
12759 Expression*&
12760 front()
12761@@ -1189,43 +1167,22 @@
12762 right()
12763 { return this->right_; }
12764
12765- // Apply binary opcode OP to LEFT_VAL and RIGHT_VAL, setting VAL.
12766- // LEFT_TYPE is the type of LEFT_VAL, RIGHT_TYPE is the type of
12767- // RIGHT_VAL; LEFT_TYPE and/or RIGHT_TYPE may be NULL. Return true
12768- // if this could be done, false if not.
12769+ // Apply binary opcode OP to LEFT_NC and RIGHT_NC, setting NC.
12770+ // Return true if this could be done, false if not. Issue errors at
12771+ // LOCATION as appropriate.
12772 static bool
12773- eval_integer(Operator op, Type* left_type, mpz_t left_val,
12774- Type* right_type, mpz_t right_val, Location,
12775- mpz_t val);
12776+ eval_constant(Operator op, Numeric_constant* left_nc,
12777+ Numeric_constant* right_nc, Location location,
12778+ Numeric_constant* nc);
12779
12780- // Apply binary opcode OP to LEFT_VAL and RIGHT_VAL, setting VAL.
12781- // Return true if this could be done, false if not.
12782+ // Compare constants LEFT_NC and RIGHT_NC according to OP, setting
12783+ // *RESULT. Return true if this could be done, false if not. Issue
12784+ // errors at LOCATION as appropriate.
12785 static bool
12786- eval_float(Operator op, Type* left_type, mpfr_t left_val,
12787- Type* right_type, mpfr_t right_val, mpfr_t val,
12788- Location);
12789+ compare_constant(Operator op, Numeric_constant* left_nc,
12790+ Numeric_constant* right_nc, Location location,
12791+ bool* result);
12792
12793- // Apply binary opcode OP to LEFT_REAL/LEFT_IMAG and
12794- // RIGHT_REAL/RIGHT_IMAG, setting REAL/IMAG. Return true if this
12795- // could be done, false if not.
12796- static bool
12797- eval_complex(Operator op, Type* left_type, mpfr_t left_real,
12798- mpfr_t left_imag, Type* right_type, mpfr_t right_real,
12799- mpfr_t right_imag, mpfr_t real, mpfr_t imag, Location);
12800-
12801- // Compare integer constants according to OP.
12802- static bool
12803- compare_integer(Operator op, mpz_t left_val, mpz_t right_val);
12804-
12805- // Compare floating point constants according to OP.
12806- static bool
12807- compare_float(Operator op, Type* type, mpfr_t left_val, mpfr_t right_val);
12808-
12809- // Compare complex constants according to OP.
12810- static bool
12811- compare_complex(Operator op, Type* type, mpfr_t left_real, mpfr_t left_imag,
12812- mpfr_t right_val, mpfr_t right_imag);
12813-
12814 static Expression*
12815 do_import(Import*);
12816
12817@@ -1246,14 +1203,8 @@
12818 { return this->left_->is_constant() && this->right_->is_constant(); }
12819
12820 bool
12821- do_integer_constant_value(bool, mpz_t val, Type**) const;
12822+ do_numeric_constant_value(Numeric_constant*) const;
12823
12824- bool
12825- do_float_constant_value(mpfr_t val, Type**) const;
12826-
12827- bool
12828- do_complex_constant_value(mpfr_t real, mpfr_t imag, Type**) const;
12829-
12830 void
12831 do_discarding_value();
12832
12833@@ -1283,6 +1234,34 @@
12834 do_dump_expression(Ast_dump_context*) const;
12835
12836 private:
12837+ static bool
12838+ operation_type(Operator op, Type* left_type, Type* right_type,
12839+ Type** result_type);
12840+
12841+ static bool
12842+ cmp_to_bool(Operator op, int cmp);
12843+
12844+ static bool
12845+ eval_integer(Operator op, const Numeric_constant*, const Numeric_constant*,
12846+ Location, Numeric_constant*);
12847+
12848+ static bool
12849+ eval_float(Operator op, const Numeric_constant*, const Numeric_constant*,
12850+ Location, Numeric_constant*);
12851+
12852+ static bool
12853+ eval_complex(Operator op, const Numeric_constant*, const Numeric_constant*,
12854+ Location, Numeric_constant*);
12855+
12856+ static bool
12857+ compare_integer(const Numeric_constant*, const Numeric_constant*, int*);
12858+
12859+ static bool
12860+ compare_float(const Numeric_constant*, const Numeric_constant *, int*);
12861+
12862+ static bool
12863+ compare_complex(const Numeric_constant*, const Numeric_constant*, int*);
12864+
12865 Expression*
12866 lower_struct_comparison(Gogo*, Statement_inserter*);
12867
12868@@ -2101,4 +2080,173 @@
12869 Expression* channel_;
12870 };
12871
12872+// A numeric constant. This is used both for untyped constants and
12873+// for constants that have a type.
12874+
12875+class Numeric_constant
12876+{
12877+ public:
12878+ Numeric_constant()
12879+ : classification_(NC_INVALID), type_(NULL)
12880+ { }
12881+
12882+ ~Numeric_constant();
12883+
12884+ Numeric_constant(const Numeric_constant&);
12885+
12886+ Numeric_constant& operator=(const Numeric_constant&);
12887+
12888+ // Set to an unsigned long value.
12889+ void
12890+ set_unsigned_long(Type*, unsigned long);
12891+
12892+ // Set to an integer value.
12893+ void
12894+ set_int(Type*, const mpz_t);
12895+
12896+ // Set to a rune value.
12897+ void
12898+ set_rune(Type*, const mpz_t);
12899+
12900+ // Set to a floating point value.
12901+ void
12902+ set_float(Type*, const mpfr_t);
12903+
12904+ // Set to a complex value.
12905+ void
12906+ set_complex(Type*, const mpfr_t, const mpfr_t);
12907+
12908+ // Classifiers.
12909+ bool
12910+ is_int() const
12911+ { return this->classification_ == Numeric_constant::NC_INT; }
12912+
12913+ bool
12914+ is_rune() const
12915+ { return this->classification_ == Numeric_constant::NC_RUNE; }
12916+
12917+ bool
12918+ is_float() const
12919+ { return this->classification_ == Numeric_constant::NC_FLOAT; }
12920+
12921+ bool
12922+ is_complex() const
12923+ { return this->classification_ == Numeric_constant::NC_COMPLEX; }
12924+
12925+ // Value retrievers. These will initialize the values as well as
12926+ // set them. GET_INT is only valid if IS_INT returns true, and
12927+ // likewise respectively.
12928+ void
12929+ get_int(mpz_t*) const;
12930+
12931+ void
12932+ get_rune(mpz_t*) const;
12933+
12934+ void
12935+ get_float(mpfr_t*) const;
12936+
12937+ void
12938+ get_complex(mpfr_t*, mpfr_t*) const;
12939+
12940+ // Codes returned by to_unsigned_long.
12941+ enum To_unsigned_long
12942+ {
12943+ // Value is integer and fits in unsigned long.
12944+ NC_UL_VALID,
12945+ // Value is not integer.
12946+ NC_UL_NOTINT,
12947+ // Value is integer but is negative.
12948+ NC_UL_NEGATIVE,
12949+ // Value is non-negative integer but does not fit in unsigned
12950+ // long.
12951+ NC_UL_BIG
12952+ };
12953+
12954+ // If the value can be expressed as an integer that fits in an
12955+ // unsigned long, set *VAL and return NC_UL_VALID. Otherwise return
12956+ // one of the other To_unsigned_long codes.
12957+ To_unsigned_long
12958+ to_unsigned_long(unsigned long* val) const;
12959+
12960+ // If the value can be expressed as an int, return true and
12961+ // initialize and set VAL. This will return false for a value with
12962+ // an explicit float or complex type, even if the value is integral.
12963+ bool
12964+ to_int(mpz_t* val) const;
12965+
12966+ // If the value can be expressed as a float, return true and
12967+ // initialize and set VAL.
12968+ bool
12969+ to_float(mpfr_t* val) const;
12970+
12971+ // If the value can be expressed as a complex, return true and
12972+ // initialize and set VR and VI.
12973+ bool
12974+ to_complex(mpfr_t* vr, mpfr_t* vi) const;
12975+
12976+ // Get the type.
12977+ Type*
12978+ type() const;
12979+
12980+ // If the constant can be expressed in TYPE, then set the type of
12981+ // the constant to TYPE and return true. Otherwise return false,
12982+ // and, if ISSUE_ERROR is true, issue an error message. LOCATION is
12983+ // the location to use for the error.
12984+ bool
12985+ set_type(Type* type, bool issue_error, Location location);
12986+
12987+ // Return an Expression for this value.
12988+ Expression*
12989+ expression(Location) const;
12990+
12991+ private:
12992+ void
12993+ clear();
12994+
12995+ To_unsigned_long
12996+ mpz_to_unsigned_long(const mpz_t ival, unsigned long *val) const;
12997+
12998+ To_unsigned_long
12999+ mpfr_to_unsigned_long(const mpfr_t fval, unsigned long *val) const;
13000+
13001+ bool
13002+ check_int_type(Integer_type*, bool, Location) const;
13003+
13004+ bool
13005+ check_float_type(Float_type*, bool, Location) const;
13006+
13007+ bool
13008+ check_complex_type(Complex_type*, bool, Location) const;
13009+
13010+ // The kinds of constants.
13011+ enum Classification
13012+ {
13013+ NC_INVALID,
13014+ NC_RUNE,
13015+ NC_INT,
13016+ NC_FLOAT,
13017+ NC_COMPLEX
13018+ };
13019+
13020+ // The kind of constant.
13021+ Classification classification_;
13022+ // The value.
13023+ union
13024+ {
13025+ // If NC_INT or NC_RUNE.
13026+ mpz_t int_val;
13027+ // If NC_FLOAT.
13028+ mpfr_t float_val;
13029+ // If NC_COMPLEX.
13030+ struct
13031+ {
13032+ mpfr_t real;
13033+ mpfr_t imag;
13034+ } complex_val;
13035+ } u_;
13036+ // The type if there is one. This will be NULL for an untyped
13037+ // constant.
13038+ Type* type_;
13039+};
13040+
13041 #endif // !defined(GO_EXPRESSIONS_H)
13042Index: gcc/go/gofrontend/statements.cc
13043===================================================================
13044--- gcc/go/gofrontend/statements.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
13045+++ gcc/go/gofrontend/statements.cc (.../branches/gcc-4_7-branch) (wersja 187293)
13046@@ -3214,10 +3214,9 @@
13047 size_t
13048 Case_clauses::Hash_integer_value::operator()(Expression* pe) const
13049 {
13050- Type* itype;
13051+ Numeric_constant nc;
13052 mpz_t ival;
13053- mpz_init(ival);
13054- if (!pe->integer_constant_value(true, ival, &itype))
13055+ if (!pe->numeric_constant_value(&nc) || !nc.to_int(&ival))
13056 go_unreachable();
13057 size_t ret = mpz_get_ui(ival);
13058 mpz_clear(ival);
13059@@ -3236,14 +3235,14 @@
13060 bool
13061 Case_clauses::Eq_integer_value::operator()(Expression* a, Expression* b) const
13062 {
13063- Type* atype;
13064- Type* btype;
13065+ Numeric_constant anc;
13066 mpz_t aval;
13067+ Numeric_constant bnc;
13068 mpz_t bval;
13069- mpz_init(aval);
13070- mpz_init(bval);
13071- if (!a->integer_constant_value(true, aval, &atype)
13072- || !b->integer_constant_value(true, bval, &btype))
13073+ if (!a->numeric_constant_value(&anc)
13074+ || !anc.to_int(&aval)
13075+ || !b->numeric_constant_value(&bnc)
13076+ || !bnc.to_int(&bval))
13077 go_unreachable();
13078 bool ret = mpz_cmp(aval, bval) == 0;
13079 mpz_clear(aval);
13080@@ -3431,18 +3430,17 @@
13081 Expression* e = *p;
13082 if (e->classification() != Expression::EXPRESSION_INTEGER)
13083 {
13084- Type* itype;
13085+ Numeric_constant nc;
13086 mpz_t ival;
13087- mpz_init(ival);
13088- if (!(*p)->integer_constant_value(true, ival, &itype))
13089+ if (!(*p)->numeric_constant_value(&nc) || !nc.to_int(&ival))
13090 {
13091 // Something went wrong. This can happen with a
13092 // negative constant and an unsigned switch value.
13093 go_assert(saw_errors());
13094 continue;
13095 }
13096- go_assert(itype != NULL);
13097- e = Expression::make_integer(&ival, itype, e->location());
13098+ go_assert(nc.type() != NULL);
13099+ e = Expression::make_integer(&ival, nc.type(), e->location());
13100 mpz_clear(ival);
13101 }
13102
13103Index: gcc/go/gofrontend/gogo-tree.cc
13104===================================================================
13105--- gcc/go/gofrontend/gogo-tree.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
13106+++ gcc/go/gofrontend/gogo-tree.cc (.../branches/gcc-4_7-branch) (wersja 187293)
13107@@ -591,10 +591,11 @@
13108 return TRAVERSE_CONTINUE;
13109 }
13110
13111-// Return true if EXPR refers to VAR.
13112+// Return true if EXPR, PREINIT, or DEP refers to VAR.
13113
13114 static bool
13115-expression_requires(Expression* expr, Block* preinit, Named_object* var)
13116+expression_requires(Expression* expr, Block* preinit, Named_object* dep,
13117+ Named_object* var)
13118 {
13119 Find_var::Seen_objects seen_objects;
13120 Find_var find_var(var, &seen_objects);
13121@@ -602,7 +603,15 @@
13122 Expression::traverse(&expr, &find_var);
13123 if (preinit != NULL)
13124 preinit->traverse(&find_var);
13125-
13126+ if (dep != NULL)
13127+ {
13128+ Expression* init = dep->var_value()->init();
13129+ if (init != NULL)
13130+ Expression::traverse(&init, &find_var);
13131+ if (dep->var_value()->has_pre_init())
13132+ dep->var_value()->preinit()->traverse(&find_var);
13133+ }
13134+
13135 return find_var.found();
13136 }
13137
13138@@ -659,7 +668,7 @@
13139 // variable V2 then we initialize V1 after V2.
13140
13141 static void
13142-sort_var_inits(Var_inits* var_inits)
13143+sort_var_inits(Gogo* gogo, Var_inits* var_inits)
13144 {
13145 Var_inits ready;
13146 while (!var_inits->empty())
13147@@ -668,6 +677,7 @@
13148 Named_object* var = p1->var();
13149 Expression* init = var->var_value()->init();
13150 Block* preinit = var->var_value()->preinit();
13151+ Named_object* dep = gogo->var_depends_on(var->var_value());
13152
13153 // Start walking through the list to see which variables VAR
13154 // needs to wait for. We can skip P1->WAITING variables--that
13155@@ -679,20 +689,22 @@
13156
13157 for (; p2 != var_inits->end(); ++p2)
13158 {
13159- if (expression_requires(init, preinit, p2->var()))
13160+ Named_object* p2var = p2->var();
13161+ if (expression_requires(init, preinit, dep, p2var))
13162 {
13163 // Check for cycles.
13164- if (expression_requires(p2->var()->var_value()->init(),
13165- p2->var()->var_value()->preinit(),
13166+ if (expression_requires(p2var->var_value()->init(),
13167+ p2var->var_value()->preinit(),
13168+ gogo->var_depends_on(p2var->var_value()),
13169 var))
13170 {
13171 error_at(var->location(),
13172 ("initialization expressions for %qs and "
13173 "%qs depend upon each other"),
13174 var->message_name().c_str(),
13175- p2->var()->message_name().c_str());
13176+ p2var->message_name().c_str());
13177 inform(p2->var()->location(), "%qs defined here",
13178- p2->var()->message_name().c_str());
13179+ p2var->message_name().c_str());
13180 p2 = var_inits->end();
13181 }
13182 else
13183@@ -715,9 +727,11 @@
13184 // VAR does not depends upon any other initialization expressions.
13185
13186 // Check for a loop of VAR on itself. We only do this if
13187- // INIT is not NULL; when INIT is NULL, it means that
13188- // PREINIT sets VAR, which we will interpret as a loop.
13189- if (init != NULL && expression_requires(init, preinit, var))
13190+ // INIT is not NULL and there is no dependency; when INIT is
13191+ // NULL, it means that PREINIT sets VAR, which we will
13192+ // interpret as a loop.
13193+ if (init != NULL && dep == NULL
13194+ && expression_requires(init, preinit, NULL, var))
13195 error_at(var->location(),
13196 "initialization expression for %qs depends upon itself",
13197 var->message_name().c_str());
13198@@ -784,7 +798,7 @@
13199 }
13200
13201 // There is nothing useful we can output for constants which
13202- // have ideal or non-integeral type.
13203+ // have ideal or non-integral type.
13204 if (no->is_const())
13205 {
13206 Type* type = no->const_value()->type();
13207@@ -835,7 +849,9 @@
13208 ;
13209 else if (TREE_CONSTANT(init))
13210 {
13211- if (expression_requires(no->var_value()->init(), NULL, no))
13212+ if (expression_requires(no->var_value()->init(), NULL,
13213+ this->var_depends_on(no->var_value()),
13214+ no))
13215 error_at(no->location(),
13216 "initialization expression for %qs depends "
13217 "upon itself",
13218@@ -880,6 +896,14 @@
13219 else
13220 var_inits.push_back(Var_init(no, var_init_tree));
13221 }
13222+ else if (this->var_depends_on(no->var_value()) != NULL)
13223+ {
13224+ // This variable is initialized from something that is
13225+ // not in its init or preinit. This variable needs to
13226+ // participate in dependency analysis sorting, in case
13227+ // some other variable depends on this one.
13228+ var_inits.push_back(Var_init(no, integer_zero_node));
13229+ }
13230
13231 if (!is_sink && no->var_value()->type()->has_pointer())
13232 var_gc.push_back(no);
13233@@ -897,7 +921,7 @@
13234 // workable order.
13235 if (!var_inits.empty())
13236 {
13237- sort_var_inits(&var_inits);
13238+ sort_var_inits(this, &var_inits);
13239 for (Var_inits::const_iterator p = var_inits.begin();
13240 p != var_inits.end();
13241 ++p)
13242Index: gcc/go/gofrontend/lex.cc
13243===================================================================
13244--- gcc/go/gofrontend/lex.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
13245+++ gcc/go/gofrontend/lex.cc (.../branches/gcc-4_7-branch) (wersja 187293)
13246@@ -1012,7 +1012,9 @@
13247 }
13248 }
13249
13250- if (*p != '.' && *p != 'i' && !Lex::could_be_exponent(p, pend))
13251+ // A partial token that looks like an octal literal might actually be the
13252+ // beginning of a floating-point or imaginary literal.
13253+ if (base == 16 || (*p != '.' && *p != 'i' && !Lex::could_be_exponent(p, pend)))
13254 {
13255 std::string s(pnum, p - pnum);
13256 mpz_t val;
13257Index: gcc/go/gofrontend/types.cc
13258===================================================================
13259--- gcc/go/gofrontend/types.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
13260+++ gcc/go/gofrontend/types.cc (.../branches/gcc-4_7-branch) (wersja 187293)
13261@@ -2230,15 +2230,13 @@
13262 return true;
13263 else
13264 {
13265+ Numeric_constant nc;
13266+ if (!at->length()->numeric_constant_value(&nc))
13267+ return false;
13268 mpz_t ival;
13269- mpz_init(ival);
13270- Type* dummy;
13271- bool length_known = at->length()->integer_constant_value(true,
13272- ival,
13273- &dummy);
13274+ if (!nc.to_int(&ival))
13275+ return false;
13276 mpz_clear(ival);
13277- if (!length_known)
13278- return false;
13279 return at->element_type()->is_backend_type_size_known(gogo);
13280 }
13281 }
13282@@ -5106,17 +5104,22 @@
13283 // Try to determine the lengths. If we can't, assume the arrays
13284 // are not identical.
13285 bool ret = false;
13286- mpz_t v1;
13287- mpz_init(v1);
13288- Type* type1;
13289- mpz_t v2;
13290- mpz_init(v2);
13291- Type* type2;
13292- if (l1->integer_constant_value(true, v1, &type1)
13293- && l2->integer_constant_value(true, v2, &type2))
13294- ret = mpz_cmp(v1, v2) == 0;
13295- mpz_clear(v1);
13296- mpz_clear(v2);
13297+ Numeric_constant nc1, nc2;
13298+ if (l1->numeric_constant_value(&nc1)
13299+ && l2->numeric_constant_value(&nc2))
13300+ {
13301+ mpz_t v1;
13302+ if (nc1.to_int(&v1))
13303+ {
13304+ mpz_t v2;
13305+ if (nc2.to_int(&v2))
13306+ {
13307+ ret = mpz_cmp(v1, v2) == 0;
13308+ mpz_clear(v2);
13309+ }
13310+ mpz_clear(v1);
13311+ }
13312+ }
13313 return ret;
13314 }
13315
13316@@ -5154,58 +5157,44 @@
13317 return false;
13318 }
13319
13320- mpz_t val;
13321- mpz_init(val);
13322- Type* vt;
13323- if (!this->length_->integer_constant_value(true, val, &vt))
13324+ Numeric_constant nc;
13325+ if (!this->length_->numeric_constant_value(&nc))
13326 {
13327- mpfr_t fval;
13328- mpfr_init(fval);
13329- if (!this->length_->float_constant_value(fval, &vt))
13330- {
13331- if (this->length_->type()->integer_type() != NULL
13332- || this->length_->type()->float_type() != NULL)
13333- error_at(this->length_->location(),
13334- "array bound is not constant");
13335- else
13336- error_at(this->length_->location(),
13337- "array bound is not numeric");
13338- mpfr_clear(fval);
13339- mpz_clear(val);
13340- return false;
13341- }
13342- if (!mpfr_integer_p(fval))
13343- {
13344- error_at(this->length_->location(),
13345- "array bound truncated to integer");
13346- mpfr_clear(fval);
13347- mpz_clear(val);
13348- return false;
13349- }
13350- mpz_init(val);
13351- mpfr_get_z(val, fval, GMP_RNDN);
13352- mpfr_clear(fval);
13353+ if (this->length_->type()->integer_type() != NULL
13354+ || this->length_->type()->float_type() != NULL)
13355+ error_at(this->length_->location(), "array bound is not constant");
13356+ else
13357+ error_at(this->length_->location(), "array bound is not numeric");
13358+ return false;
13359 }
13360
13361- if (mpz_sgn(val) < 0)
13362+ unsigned long val;
13363+ switch (nc.to_unsigned_long(&val))
13364 {
13365+ case Numeric_constant::NC_UL_VALID:
13366+ break;
13367+ case Numeric_constant::NC_UL_NOTINT:
13368+ error_at(this->length_->location(), "array bound truncated to integer");
13369+ return false;
13370+ case Numeric_constant::NC_UL_NEGATIVE:
13371 error_at(this->length_->location(), "negative array bound");
13372- mpz_clear(val);
13373 return false;
13374+ case Numeric_constant::NC_UL_BIG:
13375+ error_at(this->length_->location(), "array bound overflows");
13376+ return false;
13377+ default:
13378+ go_unreachable();
13379 }
13380
13381 Type* int_type = Type::lookup_integer_type("int");
13382- int tbits = int_type->integer_type()->bits();
13383- int vbits = mpz_sizeinbase(val, 2);
13384- if (vbits + 1 > tbits)
13385+ unsigned int tbits = int_type->integer_type()->bits();
13386+ if (sizeof(val) <= tbits * 8
13387+ && val >> (tbits - 1) != 0)
13388 {
13389 error_at(this->length_->location(), "array bound overflows");
13390- mpz_clear(val);
13391 return false;
13392 }
13393
13394- mpz_clear(val);
13395-
13396 return true;
13397 }
13398
13399@@ -5457,11 +5446,16 @@
13400 go_assert(this->length_ != NULL);
13401 if (this->length_tree_ == NULL_TREE)
13402 {
13403+ Numeric_constant nc;
13404 mpz_t val;
13405- mpz_init(val);
13406- Type* t;
13407- if (this->length_->integer_constant_value(true, val, &t))
13408+ if (this->length_->numeric_constant_value(&nc) && nc.to_int(&val))
13409 {
13410+ if (mpz_sgn(val) < 0)
13411+ {
13412+ this->length_tree_ = error_mark_node;
13413+ return this->length_tree_;
13414+ }
13415+ Type* t = nc.type();
13416 if (t == NULL)
13417 t = Type::lookup_integer_type("int");
13418 else if (t->is_abstract())
13419@@ -5472,8 +5466,6 @@
13420 }
13421 else
13422 {
13423- mpz_clear(val);
13424-
13425 // Make up a translation context for the array length
13426 // expression. FIXME: This won't work in general.
13427 Translate_context context(gogo, NULL, NULL, NULL);
13428@@ -5824,23 +5816,17 @@
13429 ret->push_back('[');
13430 if (this->length_ != NULL)
13431 {
13432- mpz_t val;
13433- mpz_init(val);
13434- Type* type;
13435- if (!this->length_->integer_constant_value(true, val, &type))
13436- error_at(this->length_->location(),
13437- "array length must be integer constant expression");
13438- else if (mpz_cmp_si(val, 0) < 0)
13439- error_at(this->length_->location(), "array length is negative");
13440- else if (mpz_cmp_ui(val, mpz_get_ui(val)) != 0)
13441- error_at(this->length_->location(), "array length is too large");
13442+ Numeric_constant nc;
13443+ unsigned long val;
13444+ if (!this->length_->numeric_constant_value(&nc)
13445+ || nc.to_unsigned_long(&val) != Numeric_constant::NC_UL_VALID)
13446+ error_at(this->length_->location(), "invalid array length");
13447 else
13448 {
13449 char buf[50];
13450- snprintf(buf, sizeof buf, "%lu", mpz_get_ui(val));
13451+ snprintf(buf, sizeof buf, "%lu", val);
13452 ret->append(buf);
13453 }
13454- mpz_clear(val);
13455 }
13456 ret->push_back(']');
13457
13458@@ -5856,23 +5842,17 @@
13459 this->append_mangled_name(this->element_type_, gogo, ret);
13460 if (this->length_ != NULL)
13461 {
13462- mpz_t val;
13463- mpz_init(val);
13464- Type* type;
13465- if (!this->length_->integer_constant_value(true, val, &type))
13466- error_at(this->length_->location(),
13467- "array length must be integer constant expression");
13468- else if (mpz_cmp_si(val, 0) < 0)
13469- error_at(this->length_->location(), "array length is negative");
13470- else if (mpz_cmp_ui(val, mpz_get_ui(val)) != 0)
13471- error_at(this->length_->location(), "array size is too large");
13472+ Numeric_constant nc;
13473+ unsigned long val;
13474+ if (!this->length_->numeric_constant_value(&nc)
13475+ || nc.to_unsigned_long(&val) != Numeric_constant::NC_UL_VALID)
13476+ error_at(this->length_->location(), "invalid array length");
13477 else
13478 {
13479 char buf[50];
13480- snprintf(buf, sizeof buf, "%lu", mpz_get_ui(val));
13481+ snprintf(buf, sizeof buf, "%lu", val);
13482 ret->append(buf);
13483 }
13484- mpz_clear(val);
13485 }
13486 ret->push_back('e');
13487 }
13488@@ -6576,7 +6556,11 @@
13489 Interface_type::is_identical(const Interface_type* t,
13490 bool errors_are_identical) const
13491 {
13492- go_assert(this->methods_are_finalized_ && t->methods_are_finalized_);
13493+ // If methods have not been finalized, then we are asking whether
13494+ // func redeclarations are the same. This is an error, so for
13495+ // simplicity we say they are never the same.
13496+ if (!this->methods_are_finalized_ || !t->methods_are_finalized_)
13497+ return false;
13498
13499 // We require the same methods with the same types. The methods
13500 // have already been sorted.
13501Index: gcc/go/gofrontend/import.cc
13502===================================================================
13503--- gcc/go/gofrontend/import.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
13504+++ gcc/go/gofrontend/import.cc (.../branches/gcc-4_7-branch) (wersja 187293)
13505@@ -669,6 +669,9 @@
13506 // This type has not yet been imported.
13507 ntype->clear_is_visible();
13508
13509+ if (!type->is_undefined() && type->interface_type() != NULL)
13510+ this->gogo_->record_interface_type(type->interface_type());
13511+
13512 type = ntype;
13513 }
13514 else if (no->is_type())
13515Index: gcc/go/gofrontend/parse.h
13516===================================================================
13517--- gcc/go/gofrontend/parse.h (.../tags/gcc_4_7_0_release) (wersja 187293)
13518+++ gcc/go/gofrontend/parse.h (.../branches/gcc-4_7-branch) (wersja 187293)
13519@@ -162,7 +162,8 @@
13520
13521 // Parser nonterminals.
13522 void identifier_list(Typed_identifier_list*);
13523- Expression_list* expression_list(Expression*, bool may_be_sink);
13524+ Expression_list* expression_list(Expression*, bool may_be_sink,
13525+ bool may_be_composite_lit);
13526 bool qualified_ident(std::string*, Named_object**);
13527 Type* type();
13528 bool type_may_start_here();
13529@@ -207,6 +208,7 @@
13530 bool is_coloneq, bool type_from_init, bool* is_new);
13531 Named_object* create_dummy_global(Type*, Expression*, Location);
13532 void simple_var_decl_or_assignment(const std::string&, Location,
13533+ bool may_be_composite_lit,
13534 Range_clause*, Type_switch*);
13535 void function_decl();
13536 Typed_identifier* receiver();
13537@@ -239,8 +241,9 @@
13538 void expression_stat(Expression*);
13539 void send_stmt(Expression*);
13540 void inc_dec_stat(Expression*);
13541- void assignment(Expression*, Range_clause*);
13542- void tuple_assignment(Expression_list*, Range_clause*);
13543+ void assignment(Expression*, bool may_be_composite_lit, Range_clause*);
13544+ void tuple_assignment(Expression_list*, bool may_be_composite_lit,
13545+ Range_clause*);
13546 void send();
13547 void go_or_defer_stat();
13548 void return_stat();
13549Index: gcc/go/gofrontend/expressions.cc
13550===================================================================
13551--- gcc/go/gofrontend/expressions.cc (.../tags/gcc_4_7_0_release) (wersja 187293)
13552+++ gcc/go/gofrontend/expressions.cc (.../branches/gcc-4_7-branch) (wersja 187293)
13553@@ -6,6 +6,8 @@
13554
13555 #include "go-system.h"
13556
13557+#include <algorithm>
13558+
13559 #include <gmp.h>
13560
13561 #ifndef ENABLE_BUILD_WITH_CXX
13562@@ -50,57 +52,6 @@
13563 {
13564 }
13565
13566-// If this expression has a constant integer value, return it.
13567-
13568-bool
13569-Expression::integer_constant_value(bool iota_is_constant, mpz_t val,
13570- Type** ptype) const
13571-{
13572- *ptype = NULL;
13573- return this->do_integer_constant_value(iota_is_constant, val, ptype);
13574-}
13575-
13576-// If this expression has a constant floating point value, return it.
13577-
13578-bool
13579-Expression::float_constant_value(mpfr_t val, Type** ptype) const
13580-{
13581- *ptype = NULL;
13582- if (this->do_float_constant_value(val, ptype))
13583- return true;
13584- mpz_t ival;
13585- mpz_init(ival);
13586- Type* t;
13587- bool ret;
13588- if (!this->do_integer_constant_value(false, ival, &t))
13589- ret = false;
13590- else
13591- {
13592- mpfr_set_z(val, ival, GMP_RNDN);
13593- ret = true;
13594- }
13595- mpz_clear(ival);
13596- return ret;
13597-}
13598-
13599-// If this expression has a constant complex value, return it.
13600-
13601-bool
13602-Expression::complex_constant_value(mpfr_t real, mpfr_t imag,
13603- Type** ptype) const
13604-{
13605- *ptype = NULL;
13606- if (this->do_complex_constant_value(real, imag, ptype))
13607- return true;
13608- Type *t;
13609- if (this->float_constant_value(real, &t))
13610- {
13611- mpfr_set_ui(imag, 0, GMP_RNDN);
13612- return true;
13613- }
13614- return false;
13615-}
13616-
13617 // Traverse the expressions.
13618
13619 int
13620@@ -824,27 +775,12 @@
13621 { return true; }
13622
13623 bool
13624- do_integer_constant_value(bool, mpz_t val, Type**) const
13625+ do_numeric_constant_value(Numeric_constant* nc) const
13626 {
13627- mpz_set_ui(val, 0);
13628+ nc->set_unsigned_long(NULL, 0);
13629 return true;
13630 }
13631
13632- bool
13633- do_float_constant_value(mpfr_t val, Type**) const
13634- {
13635- mpfr_set_ui(val, 0, GMP_RNDN);
13636- return true;
13637- }
13638-
13639- bool
13640- do_complex_constant_value(mpfr_t real, mpfr_t imag, Type**) const
13641- {
13642- mpfr_set_ui(real, 0, GMP_RNDN);
13643- mpfr_set_ui(imag, 0, GMP_RNDN);
13644- return true;
13645- }
13646-
13647 void
13648 do_discarding_value()
13649 { }
13650@@ -1759,10 +1695,6 @@
13651 static Expression*
13652 do_import(Import*);
13653
13654- // Return whether VAL fits in the type.
13655- static bool
13656- check_constant(mpz_t val, Type*, Location);
13657-
13658 // Write VAL to string dump.
13659 static void
13660 export_integer(String_dump* exp, const mpz_t val);
13661@@ -1777,7 +1709,7 @@
13662 { return true; }
13663
13664 bool
13665- do_integer_constant_value(bool, mpz_t val, Type** ptype) const;
13666+ do_numeric_constant_value(Numeric_constant* nc) const;
13667
13668 Type*
13669 do_type();
13670@@ -1817,15 +1749,16 @@
13671 bool is_character_constant_;
13672 };
13673
13674-// Return an integer constant value.
13675+// Return a numeric constant for this expression. We have to mark
13676+// this as a character when appropriate.
13677
13678 bool
13679-Integer_expression::do_integer_constant_value(bool, mpz_t val,
13680- Type** ptype) const
13681+Integer_expression::do_numeric_constant_value(Numeric_constant* nc) const
13682 {
13683- if (this->type_ != NULL)
13684- *ptype = this->type_;
13685- mpz_set(val, this->val_);
13686+ if (this->is_character_constant_)
13687+ nc->set_rune(this->type_, this->val_);
13688+ else
13689+ nc->set_int(this->type_, this->val_);
13690 return true;
13691 }
13692
13693@@ -1853,10 +1786,7 @@
13694 {
13695 if (this->type_ != NULL && !this->type_->is_abstract())
13696 ;
13697- else if (context->type != NULL
13698- && (context->type->integer_type() != NULL
13699- || context->type->float_type() != NULL
13700- || context->type->complex_type() != NULL))
13701+ else if (context->type != NULL && context->type->is_numeric_type())
13702 this->type_ = context->type;
13703 else if (!context->may_be_abstract)
13704 {
13705@@ -1867,55 +1797,20 @@
13706 }
13707 }
13708
13709-// Return true if the integer VAL fits in the range of the type TYPE.
13710-// Otherwise give an error and return false. TYPE may be NULL.
13711-
13712-bool
13713-Integer_expression::check_constant(mpz_t val, Type* type,
13714- Location location)
13715-{
13716- if (type == NULL)
13717- return true;
13718- Integer_type* itype = type->integer_type();
13719- if (itype == NULL || itype->is_abstract())
13720- return true;
13721-
13722- int bits = mpz_sizeinbase(val, 2);
13723-
13724- if (itype->is_unsigned())
13725- {
13726- // For an unsigned type we can only accept a nonnegative number,
13727- // and we must be able to represent at least BITS.
13728- if (mpz_sgn(val) >= 0
13729- && bits <= itype->bits())
13730- return true;
13731- }
13732- else
13733- {
13734- // For a signed type we need an extra bit to indicate the sign.
13735- // We have to handle the most negative integer specially.
13736- if (bits + 1 <= itype->bits()
13737- || (bits <= itype->bits()
13738- && mpz_sgn(val) < 0
13739- && (mpz_scan1(val, 0)
13740- == static_cast<unsigned long>(itype->bits() - 1))
13741- && mpz_scan0(val, itype->bits()) == ULONG_MAX))
13742- return true;
13743- }
13744-
13745- error_at(location, "integer constant overflow");
13746- return false;
13747-}
13748-
13749 // Check the type of an integer constant.
13750
13751 void
13752 Integer_expression::do_check_types(Gogo*)
13753 {
13754- if (this->type_ == NULL)
13755+ Type* type = this->type_;
13756+ if (type == NULL)
13757 return;
13758- if (!Integer_expression::check_constant(this->val_, this->type_,
13759- this->location()))
13760+ Numeric_constant nc;
13761+ if (this->is_character_constant_)
13762+ nc.set_rune(NULL, this->val_);
13763+ else
13764+ nc.set_int(NULL, this->val_);
13765+ if (!nc.set_type(type, true, this->location()))
13766 this->set_is_error();
13767 }
13768
13769@@ -2117,14 +2012,6 @@
13770 mpfr_init_set(this->val_, *val, GMP_RNDN);
13771 }
13772
13773- // Constrain VAL to fit into TYPE.
13774- static void
13775- constrain_float(mpfr_t val, Type* type);
13776-
13777- // Return whether VAL fits in the type.
13778- static bool
13779- check_constant(mpfr_t val, Type*, Location);
13780-
13781 // Write VAL to export data.
13782 static void
13783 export_float(String_dump* exp, const mpfr_t val);
13784@@ -2139,7 +2026,11 @@
13785 { return true; }
13786
13787 bool
13788- do_float_constant_value(mpfr_t val, Type**) const;
13789+ do_numeric_constant_value(Numeric_constant* nc) const
13790+ {
13791+ nc->set_float(this->type_, this->val_);
13792+ return true;
13793+ }
13794
13795 Type*
13796 do_type();
13797@@ -2171,27 +2062,6 @@
13798 Type* type_;
13799 };
13800
13801-// Constrain VAL to fit into TYPE.
13802-
13803-void
13804-Float_expression::constrain_float(mpfr_t val, Type* type)
13805-{
13806- Float_type* ftype = type->float_type();
13807- if (ftype != NULL && !ftype->is_abstract())
13808- mpfr_prec_round(val, ftype->bits(), GMP_RNDN);
13809-}
13810-
13811-// Return a floating point constant value.
13812-
13813-bool
13814-Float_expression::do_float_constant_value(mpfr_t val, Type** ptype) const
13815-{
13816- if (this->type_ != NULL)
13817- *ptype = this->type_;
13818- mpfr_set(val, this->val_, GMP_RNDN);
13819- return true;
13820-}
13821-
13822 // Return the current type. If we haven't set the type yet, we return
13823 // an abstract float type.
13824
13825@@ -2220,73 +2090,18 @@
13826 this->type_ = Type::lookup_float_type("float64");
13827 }
13828
13829-// Return true if the floating point value VAL fits in the range of
13830-// the type TYPE. Otherwise give an error and return false. TYPE may
13831-// be NULL.
13832-
13833-bool
13834-Float_expression::check_constant(mpfr_t val, Type* type,
13835- Location location)
13836-{
13837- if (type == NULL)
13838- return true;
13839- Float_type* ftype = type->float_type();
13840- if (ftype == NULL || ftype->is_abstract())
13841- return true;
13842-
13843- // A NaN or Infinity always fits in the range of the type.
13844- if (mpfr_nan_p(val) || mpfr_inf_p(val) || mpfr_zero_p(val))
13845- return true;
13846-
13847- mp_exp_t exp = mpfr_get_exp(val);
13848- mp_exp_t max_exp;
13849- switch (ftype->bits())
13850- {
13851- case 32:
13852- max_exp = 128;
13853- break;
13854- case 64:
13855- max_exp = 1024;
13856- break;
13857- default:
13858- go_unreachable();
13859- }
13860- if (exp > max_exp)
13861- {
13862- error_at(location, "floating point constant overflow");
13863- return false;
13864- }
13865- return true;
13866-}
13867-
13868 // Check the type of a float value.
13869
13870 void
13871 Float_expression::do_check_types(Gogo*)
13872 {
13873- if (this->type_ == NULL)
13874+ Type* type = this->type_;
13875+ if (type == NULL)
13876 return;
13877-
13878- if (!Float_expression::check_constant(this->val_, this->type_,
13879- this->location()))
13880+ Numeric_constant nc;
13881+ nc.set_float(NULL, this->val_);
13882+ if (!nc.set_type(this->type_, true, this->location()))
13883 this->set_is_error();
13884-
13885- Integer_type* integer_type = this->type_->integer_type();
13886- if (integer_type != NULL)
13887- {
13888- if (!mpfr_integer_p(this->val_))
13889- this->report_error(_("floating point constant truncated to integer"));
13890- else
13891- {
13892- go_assert(!integer_type->is_abstract());
13893- mpz_t ival;
13894- mpz_init(ival);
13895- mpfr_get_z(ival, this->val_, GMP_RNDN);
13896- Integer_expression::check_constant(ival, integer_type,
13897- this->location());
13898- mpz_clear(ival);
13899- }
13900- }
13901 }
13902
13903 // Get a tree for a float constant.
13904@@ -2371,14 +2186,6 @@
13905 mpfr_init_set(this->imag_, *imag, GMP_RNDN);
13906 }
13907
13908- // Constrain REAL/IMAG to fit into TYPE.
13909- static void
13910- constrain_complex(mpfr_t real, mpfr_t imag, Type* type);
13911-
13912- // Return whether REAL/IMAG fits in the type.
13913- static bool
13914- check_constant(mpfr_t real, mpfr_t imag, Type*, Location);
13915-
13916 // Write REAL/IMAG to string dump.
13917 static void
13918 export_complex(String_dump* exp, const mpfr_t real, const mpfr_t val);
13919@@ -2394,7 +2201,11 @@
13920 { return true; }
13921
13922 bool
13923- do_complex_constant_value(mpfr_t real, mpfr_t imag, Type**) const;
13924+ do_numeric_constant_value(Numeric_constant* nc) const
13925+ {
13926+ nc->set_complex(this->type_, this->real_, this->imag_);
13927+ return true;
13928+ }
13929
13930 Type*
13931 do_type();
13932@@ -2430,32 +2241,6 @@
13933 Type* type_;
13934 };
13935
13936-// Constrain REAL/IMAG to fit into TYPE.
13937-
13938-void
13939-Complex_expression::constrain_complex(mpfr_t real, mpfr_t imag, Type* type)
13940-{
13941- Complex_type* ctype = type->complex_type();
13942- if (ctype != NULL && !ctype->is_abstract())
13943- {
13944- mpfr_prec_round(real, ctype->bits() / 2, GMP_RNDN);
13945- mpfr_prec_round(imag, ctype->bits() / 2, GMP_RNDN);
13946- }
13947-}
13948-
13949-// Return a complex constant value.
13950-
13951-bool
13952-Complex_expression::do_complex_constant_value(mpfr_t real, mpfr_t imag,
13953- Type** ptype) const
13954-{
13955- if (this->type_ != NULL)
13956- *ptype = this->type_;
13957- mpfr_set(real, this->real_, GMP_RNDN);
13958- mpfr_set(imag, this->imag_, GMP_RNDN);
13959- return true;
13960-}
13961-
13962 // Return the current type. If we haven't set the type yet, we return
13963 // an abstract complex type.
13964
13965@@ -2482,65 +2267,17 @@
13966 this->type_ = Type::lookup_complex_type("complex128");
13967 }
13968
13969-// Return true if the complex value REAL/IMAG fits in the range of the
13970-// type TYPE. Otherwise give an error and return false. TYPE may be
13971-// NULL.
13972-
13973-bool
13974-Complex_expression::check_constant(mpfr_t real, mpfr_t imag, Type* type,
13975- Location location)
13976-{
13977- if (type == NULL)
13978- return true;
13979- Complex_type* ctype = type->complex_type();
13980- if (ctype == NULL || ctype->is_abstract())
13981- return true;
13982-
13983- mp_exp_t max_exp;
13984- switch (ctype->bits())
13985- {
13986- case 64:
13987- max_exp = 128;
13988- break;
13989- case 128:
13990- max_exp = 1024;
13991- break;
13992- default:
13993- go_unreachable();
13994- }
13995-
13996- // A NaN or Infinity always fits in the range of the type.
13997- if (!mpfr_nan_p(real) && !mpfr_inf_p(real) && !mpfr_zero_p(real))
13998- {
13999- if (mpfr_get_exp(real) > max_exp)
14000- {
14001- error_at(location, "complex real part constant overflow");
14002- return false;
14003- }
14004- }
14005-
14006- if (!mpfr_nan_p(imag) && !mpfr_inf_p(imag) && !mpfr_zero_p(imag))
14007- {
14008- if (mpfr_get_exp(imag) > max_exp)
14009- {
14010- error_at(location, "complex imaginary part constant overflow");
14011- return false;
14012- }
14013- }
14014-
14015- return true;
14016-}
14017-
14018 // Check the type of a complex value.
14019
14020 void
14021 Complex_expression::do_check_types(Gogo*)
14022 {
14023- if (this->type_ == NULL)
14024+ Type* type = this->type_;
14025+ if (type == NULL)
14026 return;
14027-
14028- if (!Complex_expression::check_constant(this->real_, this->imag_,
14029- this->type_, this->location()))
14030+ Numeric_constant nc;
14031+ nc.set_complex(NULL, this->real_, this->imag_);
14032+ if (!nc.set_type(this->type_, true, this->location()))
14033 this->set_is_error();
14034 }
14035
14036@@ -2665,18 +2402,11 @@
14037 { return true; }
14038
14039 bool
14040- do_integer_constant_value(bool, mpz_t val, Type**) const;
14041+ do_numeric_constant_value(Numeric_constant* nc) const;
14042
14043 bool
14044- do_float_constant_value(mpfr_t val, Type**) const;
14045+ do_string_constant_value(std::string* val) const;
14046
14047- bool
14048- do_complex_constant_value(mpfr_t real, mpfr_t imag, Type**) const;
14049-
14050- bool
14051- do_string_constant_value(std::string* val) const
14052- { return this->constant_->const_value()->expr()->string_constant_value(val); }
14053-
14054 Type*
14055 do_type();
14056
14057@@ -2755,110 +2485,49 @@
14058 return this;
14059 }
14060
14061-// Return an integer constant value.
14062+// Return a numeric constant value.
14063
14064 bool
14065-Const_expression::do_integer_constant_value(bool iota_is_constant, mpz_t val,
14066- Type** ptype) const
14067+Const_expression::do_numeric_constant_value(Numeric_constant* nc) const
14068 {
14069 if (this->seen_)
14070 return false;
14071
14072- Type* ctype;
14073- if (this->type_ != NULL)
14074- ctype = this->type_;
14075- else
14076- ctype = this->constant_->const_value()->type();
14077- if (ctype != NULL && ctype->integer_type() == NULL)
14078- return false;
14079-
14080 Expression* e = this->constant_->const_value()->expr();
14081-
14082+
14083 this->seen_ = true;
14084
14085- Type* t;
14086- bool r = e->integer_constant_value(iota_is_constant, val, &t);
14087+ bool r = e->numeric_constant_value(nc);
14088
14089 this->seen_ = false;
14090
14091- if (r
14092- && ctype != NULL
14093- && !Integer_expression::check_constant(val, ctype, this->location()))
14094- return false;
14095-
14096- *ptype = ctype != NULL ? ctype : t;
14097- return r;
14098-}
14099-
14100-// Return a floating point constant value.
14101-
14102-bool
14103-Const_expression::do_float_constant_value(mpfr_t val, Type** ptype) const
14104-{
14105- if (this->seen_)
14106- return false;
14107-
14108 Type* ctype;
14109 if (this->type_ != NULL)
14110 ctype = this->type_;
14111 else
14112 ctype = this->constant_->const_value()->type();
14113- if (ctype != NULL && ctype->float_type() == NULL)
14114- return false;
14115-
14116- this->seen_ = true;
14117-
14118- Type* t;
14119- bool r = this->constant_->const_value()->expr()->float_constant_value(val,
14120- &t);
14121-
14122- this->seen_ = false;
14123-
14124 if (r && ctype != NULL)
14125 {
14126- if (!Float_expression::check_constant(val, ctype, this->location()))
14127+ if (!nc->set_type(ctype, false, this->location()))
14128 return false;
14129- Float_expression::constrain_float(val, ctype);
14130 }
14131- *ptype = ctype != NULL ? ctype : t;
14132+
14133 return r;
14134 }
14135
14136-// Return a complex constant value.
14137-
14138 bool
14139-Const_expression::do_complex_constant_value(mpfr_t real, mpfr_t imag,
14140- Type **ptype) const
14141+Const_expression::do_string_constant_value(std::string* val) const
14142 {
14143 if (this->seen_)
14144 return false;
14145
14146- Type* ctype;
14147- if (this->type_ != NULL)
14148- ctype = this->type_;
14149- else
14150- ctype = this->constant_->const_value()->type();
14151- if (ctype != NULL && ctype->complex_type() == NULL)
14152- return false;
14153+ Expression* e = this->constant_->const_value()->expr();
14154
14155 this->seen_ = true;
14156-
14157- Type *t;
14158- bool r = this->constant_->const_value()->expr()->complex_constant_value(real,
14159- imag,
14160- &t);
14161-
14162+ bool ok = e->string_constant_value(val);
14163 this->seen_ = false;
14164
14165- if (r && ctype != NULL)
14166- {
14167- if (!Complex_expression::check_constant(real, imag, ctype,
14168- this->location()))
14169- return false;
14170- Complex_expression::constrain_complex(real, imag, ctype);
14171- }
14172- *ptype = ctype != NULL ? ctype : t;
14173- return r;
14174+ return ok;
14175 }
14176
14177 // Return the type of the const reference.
14178@@ -2909,12 +2578,8 @@
14179 if (ctype != NULL && !ctype->is_abstract())
14180 ;
14181 else if (context->type != NULL
14182- && (context->type->integer_type() != NULL
14183- || context->type->float_type() != NULL
14184- || context->type->complex_type() != NULL)
14185- && (cetype->integer_type() != NULL
14186- || cetype->float_type() != NULL
14187- || cetype->complex_type() != NULL))
14188+ && context->type->is_numeric_type()
14189+ && cetype->is_numeric_type())
14190 this->type_ = context->type;
14191 else if (context->type != NULL
14192 && context->type->is_string_type()
14193@@ -2976,35 +2641,15 @@
14194
14195 this->check_for_init_loop();
14196
14197- if (this->type_ == NULL || this->type_->is_abstract())
14198- return;
14199-
14200- // Check for integer overflow.
14201- if (this->type_->integer_type() != NULL)
14202+ // Check that numeric constant fits in type.
14203+ if (this->type_ != NULL && this->type_->is_numeric_type())
14204 {
14205- mpz_t ival;
14206- mpz_init(ival);
14207- Type* dummy;
14208- if (!this->integer_constant_value(true, ival, &dummy))
14209+ Numeric_constant nc;
14210+ if (this->constant_->const_value()->expr()->numeric_constant_value(&nc))
14211 {
14212- mpfr_t fval;
14213- mpfr_init(fval);
14214- Expression* cexpr = this->constant_->const_value()->expr();
14215- if (cexpr->float_constant_value(fval, &dummy))
14216- {
14217- if (!mpfr_integer_p(fval))
14218- this->report_error(_("floating point constant "
14219- "truncated to integer"));
14220- else
14221- {
14222- mpfr_get_z(ival, fval, GMP_RNDN);
14223- Integer_expression::check_constant(ival, this->type_,
14224- this->location());
14225- }
14226- }
14227- mpfr_clear(fval);
14228+ if (!nc.set_type(this->type_, true, this->location()))
14229+ this->set_is_error();
14230 }
14231- mpz_clear(ival);
14232 }
14233 }
14234
14235@@ -3028,41 +2673,18 @@
14236 // object is an abstract int or float, we try to get the abstract
14237 // value. Otherwise we may lose something in the conversion.
14238 if (this->type_ != NULL
14239+ && this->type_->is_numeric_type()
14240 && (this->constant_->const_value()->type() == NULL
14241 || this->constant_->const_value()->type()->is_abstract()))
14242 {
14243 Expression* expr = this->constant_->const_value()->expr();
14244- mpz_t ival;
14245- mpz_init(ival);
14246- Type* t;
14247- if (expr->integer_constant_value(true, ival, &t))
14248+ Numeric_constant nc;
14249+ if (expr->numeric_constant_value(&nc)
14250+ && nc.set_type(this->type_, false, this->location()))
14251 {
14252- tree ret = Expression::integer_constant_tree(ival, type_tree);
14253- mpz_clear(ival);
14254- return ret;
14255+ Expression* e = nc.expression(this->location());
14256+ return e->get_tree(context);
14257 }
14258- mpz_clear(ival);
14259-
14260- mpfr_t fval;
14261- mpfr_init(fval);
14262- if (expr->float_constant_value(fval, &t))
14263- {
14264- tree ret = Expression::float_constant_tree(fval, type_tree);
14265- mpfr_clear(fval);
14266- return ret;
14267- }
14268-
14269- mpfr_t imag;
14270- mpfr_init(imag);
14271- if (expr->complex_constant_value(fval, imag, &t))
14272- {
14273- tree ret = Expression::complex_constant_tree(fval, imag, type_tree);
14274- mpfr_clear(fval);
14275- mpfr_clear(imag);
14276- return ret;
14277- }
14278- mpfr_clear(imag);
14279- mpfr_clear(fval);
14280 }
14281
14282 tree const_tree = this->constant_->get_tree(gogo, context->function());
14283@@ -3279,15 +2901,9 @@
14284 { return this->expr_->is_constant(); }
14285
14286 bool
14287- do_integer_constant_value(bool, mpz_t, Type**) const;
14288+ do_numeric_constant_value(Numeric_constant*) const;
14289
14290 bool
14291- do_float_constant_value(mpfr_t, Type**) const;
14292-
14293- bool
14294- do_complex_constant_value(mpfr_t, mpfr_t, Type**) const;
14295-
14296- bool
14297 do_string_constant_value(std::string*) const;
14298
14299 Type*
14300@@ -3351,84 +2967,17 @@
14301 Expression* val = this->expr_;
14302 Location location = this->location();
14303
14304- if (type->integer_type() != NULL)
14305+ if (type->is_numeric_type())
14306 {
14307- mpz_t ival;
14308- mpz_init(ival);
14309- Type* dummy;
14310- if (val->integer_constant_value(false, ival, &dummy))
14311+ Numeric_constant nc;
14312+ if (val->numeric_constant_value(&nc))
14313 {
14314- if (!Integer_expression::check_constant(ival, type, location))
14315- mpz_set_ui(ival, 0);
14316- Expression* ret = Expression::make_integer(&ival, type, location);
14317- mpz_clear(ival);
14318- return ret;
14319+ if (!nc.set_type(type, true, location))
14320+ return Expression::make_error(location);
14321+ return nc.expression(location);
14322 }
14323-
14324- mpfr_t fval;
14325- mpfr_init(fval);
14326- if (val->float_constant_value(fval, &dummy))
14327- {
14328- if (!mpfr_integer_p(fval))
14329- {
14330- error_at(location,
14331- "floating point constant truncated to integer");
14332- return Expression::make_error(location);
14333- }
14334- mpfr_get_z(ival, fval, GMP_RNDN);
14335- if (!Integer_expression::check_constant(ival, type, location))
14336- mpz_set_ui(ival, 0);
14337- Expression* ret = Expression::make_integer(&ival, type, location);
14338- mpfr_clear(fval);
14339- mpz_clear(ival);
14340- return ret;
14341- }
14342- mpfr_clear(fval);
14343- mpz_clear(ival);
14344 }
14345
14346- if (type->float_type() != NULL)
14347- {
14348- mpfr_t fval;
14349- mpfr_init(fval);
14350- Type* dummy;
14351- if (val->float_constant_value(fval, &dummy))
14352- {
14353- if (!Float_expression::check_constant(fval, type, location))
14354- mpfr_set_ui(fval, 0, GMP_RNDN);
14355- Float_expression::constrain_float(fval, type);
14356- Expression *ret = Expression::make_float(&fval, type, location);
14357- mpfr_clear(fval);
14358- return ret;
14359- }
14360- mpfr_clear(fval);
14361- }
14362-
14363- if (type->complex_type() != NULL)
14364- {
14365- mpfr_t real;
14366- mpfr_t imag;
14367- mpfr_init(real);
14368- mpfr_init(imag);
14369- Type* dummy;
14370- if (val->complex_constant_value(real, imag, &dummy))
14371- {
14372- if (!Complex_expression::check_constant(real, imag, type, location))
14373- {
14374- mpfr_set_ui(real, 0, GMP_RNDN);
14375- mpfr_set_ui(imag, 0, GMP_RNDN);
14376- }
14377- Complex_expression::constrain_complex(real, imag, type);
14378- Expression* ret = Expression::make_complex(&real, &imag, type,
14379- location);
14380- mpfr_clear(real);
14381- mpfr_clear(imag);
14382- return ret;
14383- }
14384- mpfr_clear(real);
14385- mpfr_clear(imag);
14386- }
14387-
14388 if (type->is_slice_type())
14389 {
14390 Type* element_type = type->array_type()->element_type()->forwarded();
14391@@ -3491,120 +3040,19 @@
14392 return this;
14393 }
14394
14395-// Return the constant integer value if there is one.
14396+// Return the constant numeric value if there is one.
14397
14398 bool
14399-Type_conversion_expression::do_integer_constant_value(bool iota_is_constant,
14400- mpz_t val,
14401- Type** ptype) const
14402+Type_conversion_expression::do_numeric_constant_value(
14403+ Numeric_constant* nc) const
14404 {
14405- if (this->type_->integer_type() == NULL)
14406+ if (!this->type_->is_numeric_type())
14407 return false;
14408-
14409- mpz_t ival;
14410- mpz_init(ival);
14411- Type* dummy;
14412- if (this->expr_->integer_constant_value(iota_is_constant, ival, &dummy))
14413- {
14414- if (!Integer_expression::check_constant(ival, this->type_,
14415- this->location()))
14416- {
14417- mpz_clear(ival);
14418- return false;
14419- }
14420- mpz_set(val, ival);
14421- mpz_clear(ival);
14422- *ptype = this->type_;
14423- return true;
14424- }
14425- mpz_clear(ival);
14426-
14427- mpfr_t fval;
14428- mpfr_init(fval);
14429- if (this->expr_->float_constant_value(fval, &dummy))
14430- {
14431- mpfr_get_z(val, fval, GMP_RNDN);
14432- mpfr_clear(fval);
14433- if (!Integer_expression::check_constant(val, this->type_,
14434- this->location()))
14435- return false;
14436- *ptype = this->type_;
14437- return true;
14438- }
14439- mpfr_clear(fval);
14440-
14441- return false;
14442-}
14443-
14444-// Return the constant floating point value if there is one.
14445-
14446-bool
14447-Type_conversion_expression::do_float_constant_value(mpfr_t val,
14448- Type** ptype) const
14449-{
14450- if (this->type_->float_type() == NULL)
14451+ if (!this->expr_->numeric_constant_value(nc))
14452 return false;
14453-
14454- mpfr_t fval;
14455- mpfr_init(fval);
14456- Type* dummy;
14457- if (this->expr_->float_constant_value(fval, &dummy))
14458- {
14459- if (!Float_expression::check_constant(fval, this->type_,
14460- this->location()))
14461- {
14462- mpfr_clear(fval);
14463- return false;
14464- }
14465- mpfr_set(val, fval, GMP_RNDN);
14466- mpfr_clear(fval);
14467- Float_expression::constrain_float(val, this->type_);
14468- *ptype = this->type_;
14469- return true;
14470- }
14471- mpfr_clear(fval);
14472-
14473- return false;
14474+ return nc->set_type(this->type_, false, this->location());
14475 }
14476
14477-// Return the constant complex value if there is one.
14478-
14479-bool
14480-Type_conversion_expression::do_complex_constant_value(mpfr_t real,
14481- mpfr_t imag,
14482- Type **ptype) const
14483-{
14484- if (this->type_->complex_type() == NULL)
14485- return false;
14486-
14487- mpfr_t rval;
14488- mpfr_t ival;
14489- mpfr_init(rval);
14490- mpfr_init(ival);
14491- Type* dummy;
14492- if (this->expr_->complex_constant_value(rval, ival, &dummy))
14493- {
14494- if (!Complex_expression::check_constant(rval, ival, this->type_,
14495- this->location()))
14496- {
14497- mpfr_clear(rval);
14498- mpfr_clear(ival);
14499- return false;
14500- }
14501- mpfr_set(real, rval, GMP_RNDN);
14502- mpfr_set(imag, ival, GMP_RNDN);
14503- mpfr_clear(rval);
14504- mpfr_clear(ival);
14505- Complex_expression::constrain_complex(real, imag, this->type_);
14506- *ptype = this->type_;
14507- return true;
14508- }
14509- mpfr_clear(rval);
14510- mpfr_clear(ival);
14511-
14512- return false;
14513-}
14514-
14515 // Return the constant string value if there is one.
14516
14517 bool
14518@@ -3613,20 +3061,17 @@
14519 if (this->type_->is_string_type()
14520 && this->expr_->type()->integer_type() != NULL)
14521 {
14522- mpz_t ival;
14523- mpz_init(ival);
14524- Type* dummy;
14525- if (this->expr_->integer_constant_value(false, ival, &dummy))
14526+ Numeric_constant nc;
14527+ if (this->expr_->numeric_constant_value(&nc))
14528 {
14529- unsigned long ulval = mpz_get_ui(ival);
14530- if (mpz_cmp_ui(ival, ulval) == 0)
14531+ unsigned long ival;
14532+ if (nc.to_unsigned_long(&ival) == Numeric_constant::NC_UL_VALID)
14533 {
14534- Lex::append_char(ulval, true, val, this->location());
14535- mpz_clear(ival);
14536+ val->clear();
14537+ Lex::append_char(ival, true, val, this->location());
14538 return true;
14539 }
14540 }
14541- mpz_clear(ival);
14542 }
14543
14544 // FIXME: Could handle conversion from const []int here.
14545@@ -4041,23 +3486,12 @@
14546 this->create_temp_ = true;
14547 }
14548
14549- // Apply unary opcode OP to UVAL, setting VAL. Return true if this
14550- // could be done, false if not.
14551+ // Apply unary opcode OP to UNC, setting NC. Return true if this
14552+ // could be done, false if not. Issue errors for overflow.
14553 static bool
14554- eval_integer(Operator op, Type* utype, mpz_t uval, mpz_t val,
14555- Location);
14556+ eval_constant(Operator op, const Numeric_constant* unc,
14557+ Location, Numeric_constant* nc);
14558
14559- // Apply unary opcode OP to UVAL, setting VAL. Return true if this
14560- // could be done, false if not.
14561- static bool
14562- eval_float(Operator op, mpfr_t uval, mpfr_t val);
14563-
14564- // Apply unary opcode OP to UREAL/UIMAG, setting REAL/IMAG. Return
14565- // true if this could be done, false if not.
14566- static bool
14567- eval_complex(Operator op, mpfr_t ureal, mpfr_t uimag, mpfr_t real,
14568- mpfr_t imag);
14569-
14570 static Expression*
14571 do_import(Import*);
14572
14573@@ -4073,14 +3507,8 @@
14574 do_is_constant() const;
14575
14576 bool
14577- do_integer_constant_value(bool, mpz_t, Type**) const;
14578+ do_numeric_constant_value(Numeric_constant*) const;
14579
14580- bool
14581- do_float_constant_value(mpfr_t, Type**) const;
14582-
14583- bool
14584- do_complex_constant_value(mpfr_t, mpfr_t, Type**) const;
14585-
14586 Type*
14587 do_type();
14588
14589@@ -4178,63 +3606,15 @@
14590 return Expression::make_error(this->location());
14591 }
14592
14593- if (op == OPERATOR_PLUS || op == OPERATOR_MINUS
14594- || op == OPERATOR_NOT || op == OPERATOR_XOR)
14595+ if (op == OPERATOR_PLUS || op == OPERATOR_MINUS || op == OPERATOR_XOR)
14596 {
14597- Expression* ret = NULL;
14598-
14599- mpz_t eval;
14600- mpz_init(eval);
14601- Type* etype;
14602- if (expr->integer_constant_value(false, eval, &etype))
14603+ Numeric_constant nc;
14604+ if (expr->numeric_constant_value(&nc))
14605 {
14606- mpz_t val;
14607- mpz_init(val);
14608- if (Unary_expression::eval_integer(op, etype, eval, val, loc))
14609- ret = Expression::make_integer(&val, etype, loc);
14610- mpz_clear(val);
14611+ Numeric_constant result;
14612+ if (Unary_expression::eval_constant(op, &nc, loc, &result))
14613+ return result.expression(loc);
14614 }
14615- mpz_clear(eval);
14616- if (ret != NULL)
14617- return ret;
14618-
14619- if (op == OPERATOR_PLUS || op == OPERATOR_MINUS)
14620- {
14621- mpfr_t fval;
14622- mpfr_init(fval);
14623- Type* ftype;
14624- if (expr->float_constant_value(fval, &ftype))
14625- {
14626- mpfr_t val;
14627- mpfr_init(val);
14628- if (Unary_expression::eval_float(op, fval, val))
14629- ret = Expression::make_float(&val, ftype, loc);
14630- mpfr_clear(val);
14631- }
14632- if (ret != NULL)
14633- {
14634- mpfr_clear(fval);
14635- return ret;
14636- }
14637-
14638- mpfr_t ival;
14639- mpfr_init(ival);
14640- if (expr->complex_constant_value(fval, ival, &ftype))
14641- {
14642- mpfr_t real;
14643- mpfr_t imag;
14644- mpfr_init(real);
14645- mpfr_init(imag);
14646- if (Unary_expression::eval_complex(op, fval, ival, real, imag))
14647- ret = Expression::make_complex(&real, &imag, ftype, loc);
14648- mpfr_clear(real);
14649- mpfr_clear(imag);
14650- }
14651- mpfr_clear(ival);
14652- mpfr_clear(fval);
14653- if (ret != NULL)
14654- return ret;
14655- }
14656 }
14657
14658 return this;
14659@@ -4269,199 +3649,174 @@
14660 return this->expr_->is_constant();
14661 }
14662
14663-// Apply unary opcode OP to UVAL, setting VAL. UTYPE is the type of
14664-// UVAL, if known; it may be NULL. Return true if this could be done,
14665-// false if not.
14666+// Apply unary opcode OP to UNC, setting NC. Return true if this
14667+// could be done, false if not. Issue errors for overflow.
14668
14669 bool
14670-Unary_expression::eval_integer(Operator op, Type* utype, mpz_t uval, mpz_t val,
14671- Location location)
14672+Unary_expression::eval_constant(Operator op, const Numeric_constant* unc,
14673+ Location location, Numeric_constant* nc)
14674 {
14675 switch (op)
14676 {
14677 case OPERATOR_PLUS:
14678- mpz_set(val, uval);
14679+ *nc = *unc;
14680 return true;
14681+
14682 case OPERATOR_MINUS:
14683- mpz_neg(val, uval);
14684- return Integer_expression::check_constant(val, utype, location);
14685- case OPERATOR_NOT:
14686- mpz_set_ui(val, mpz_cmp_si(uval, 0) == 0 ? 1 : 0);
14687- return true;
14688- case OPERATOR_XOR:
14689- if (utype == NULL
14690- || utype->integer_type() == NULL
14691- || utype->integer_type()->is_abstract())
14692- mpz_com(val, uval);
14693+ if (unc->is_int() || unc->is_rune())
14694+ break;
14695+ else if (unc->is_float())
14696+ {
14697+ mpfr_t uval;
14698+ unc->get_float(&uval);
14699+ mpfr_t val;
14700+ mpfr_init(val);
14701+ mpfr_neg(val, uval, GMP_RNDN);
14702+ nc->set_float(unc->type(), val);
14703+ mpfr_clear(uval);
14704+ mpfr_clear(val);
14705+ return true;
14706+ }
14707+ else if (unc->is_complex())
14708+ {
14709+ mpfr_t ureal, uimag;
14710+ unc->get_complex(&ureal, &uimag);
14711+ mpfr_t real, imag;
14712+ mpfr_init(real);
14713+ mpfr_init(imag);
14714+ mpfr_neg(real, ureal, GMP_RNDN);
14715+ mpfr_neg(imag, uimag, GMP_RNDN);
14716+ nc->set_complex(unc->type(), real, imag);
14717+ mpfr_clear(ureal);
14718+ mpfr_clear(uimag);
14719+ mpfr_clear(real);
14720+ mpfr_clear(imag);
14721+ return true;
14722+ }
14723 else
14724- {
14725- // The number of HOST_WIDE_INTs that it takes to represent
14726- // UVAL.
14727- size_t count = ((mpz_sizeinbase(uval, 2)
14728- + HOST_BITS_PER_WIDE_INT
14729- - 1)
14730- / HOST_BITS_PER_WIDE_INT);
14731+ go_unreachable();
14732
14733- unsigned HOST_WIDE_INT* phwi = new unsigned HOST_WIDE_INT[count];
14734- memset(phwi, 0, count * sizeof(HOST_WIDE_INT));
14735+ case OPERATOR_XOR:
14736+ break;
14737
14738- size_t obits = utype->integer_type()->bits();
14739-
14740- if (!utype->integer_type()->is_unsigned()
14741- && mpz_sgn(uval) < 0)
14742- {
14743- mpz_t adj;
14744- mpz_init_set_ui(adj, 1);
14745- mpz_mul_2exp(adj, adj, obits);
14746- mpz_add(uval, uval, adj);
14747- mpz_clear(adj);
14748- }
14749-
14750- size_t ecount;
14751- mpz_export(phwi, &ecount, -1, sizeof(HOST_WIDE_INT), 0, 0, uval);
14752- go_assert(ecount <= count);
14753-
14754- // Trim down to the number of words required by the type.
14755- size_t ocount = ((obits + HOST_BITS_PER_WIDE_INT - 1)
14756- / HOST_BITS_PER_WIDE_INT);
14757- go_assert(ocount <= count);
14758-
14759- for (size_t i = 0; i < ocount; ++i)
14760- phwi[i] = ~phwi[i];
14761-
14762- size_t clearbits = ocount * HOST_BITS_PER_WIDE_INT - obits;
14763- if (clearbits != 0)
14764- phwi[ocount - 1] &= (((unsigned HOST_WIDE_INT) (HOST_WIDE_INT) -1)
14765- >> clearbits);
14766-
14767- mpz_import(val, ocount, -1, sizeof(HOST_WIDE_INT), 0, 0, phwi);
14768-
14769- if (!utype->integer_type()->is_unsigned()
14770- && mpz_tstbit(val, obits - 1))
14771- {
14772- mpz_t adj;
14773- mpz_init_set_ui(adj, 1);
14774- mpz_mul_2exp(adj, adj, obits);
14775- mpz_sub(val, val, adj);
14776- mpz_clear(adj);
14777- }
14778-
14779- delete[] phwi;
14780- }
14781- return Integer_expression::check_constant(val, utype, location);
14782+ case OPERATOR_NOT:
14783 case OPERATOR_AND:
14784 case OPERATOR_MULT:
14785 return false;
14786+
14787 default:
14788 go_unreachable();
14789 }
14790-}
14791
14792-// Apply unary opcode OP to UVAL, setting VAL. Return true if this
14793-// could be done, false if not.
14794+ if (!unc->is_int() && !unc->is_rune())
14795+ return false;
14796
14797-bool
14798-Unary_expression::eval_float(Operator op, mpfr_t uval, mpfr_t val)
14799-{
14800+ mpz_t uval;
14801+ if (unc->is_rune())
14802+ unc->get_rune(&uval);
14803+ else
14804+ unc->get_int(&uval);
14805+ mpz_t val;
14806+ mpz_init(val);
14807+
14808 switch (op)
14809 {
14810- case OPERATOR_PLUS:
14811- mpfr_set(val, uval, GMP_RNDN);
14812- return true;
14813 case OPERATOR_MINUS:
14814- mpfr_neg(val, uval, GMP_RNDN);
14815- return true;
14816+ mpz_neg(val, uval);
14817+ break;
14818+
14819 case OPERATOR_NOT:
14820+ mpz_set_ui(val, mpz_cmp_si(uval, 0) == 0 ? 1 : 0);
14821+ break;
14822+
14823 case OPERATOR_XOR:
14824- case OPERATOR_AND:
14825- case OPERATOR_MULT:
14826- return false;
14827- default:
14828- go_unreachable();
14829- }
14830-}
14831+ {
14832+ Type* utype = unc->type();
14833+ if (utype->integer_type() == NULL
14834+ || utype->integer_type()->is_abstract())
14835+ mpz_com(val, uval);
14836+ else
14837+ {
14838+ // The number of HOST_WIDE_INTs that it takes to represent
14839+ // UVAL.
14840+ size_t count = ((mpz_sizeinbase(uval, 2)
14841+ + HOST_BITS_PER_WIDE_INT
14842+ - 1)
14843+ / HOST_BITS_PER_WIDE_INT);
14844
14845-// Apply unary opcode OP to RVAL/IVAL, setting REAL/IMAG. Return true
14846-// if this could be done, false if not.
14847+ unsigned HOST_WIDE_INT* phwi = new unsigned HOST_WIDE_INT[count];
14848+ memset(phwi, 0, count * sizeof(HOST_WIDE_INT));
14849
14850-bool
14851-Unary_expression::eval_complex(Operator op, mpfr_t rval, mpfr_t ival,
14852- mpfr_t real, mpfr_t imag)
14853-{
14854- switch (op)
14855- {
14856- case OPERATOR_PLUS:
14857- mpfr_set(real, rval, GMP_RNDN);
14858- mpfr_set(imag, ival, GMP_RNDN);
14859- return true;
14860- case OPERATOR_MINUS:
14861- mpfr_neg(real, rval, GMP_RNDN);
14862- mpfr_neg(imag, ival, GMP_RNDN);
14863- return true;
14864- case OPERATOR_NOT:
14865- case OPERATOR_XOR:
14866- case OPERATOR_AND:
14867- case OPERATOR_MULT:
14868- return false;
14869+ size_t obits = utype->integer_type()->bits();
14870+
14871+ if (!utype->integer_type()->is_unsigned() && mpz_sgn(uval) < 0)
14872+ {
14873+ mpz_t adj;
14874+ mpz_init_set_ui(adj, 1);
14875+ mpz_mul_2exp(adj, adj, obits);
14876+ mpz_add(uval, uval, adj);
14877+ mpz_clear(adj);
14878+ }
14879+
14880+ size_t ecount;
14881+ mpz_export(phwi, &ecount, -1, sizeof(HOST_WIDE_INT), 0, 0, uval);
14882+ go_assert(ecount <= count);
14883+
14884+ // Trim down to the number of words required by the type.
14885+ size_t ocount = ((obits + HOST_BITS_PER_WIDE_INT - 1)
14886+ / HOST_BITS_PER_WIDE_INT);
14887+ go_assert(ocount <= count);
14888+
14889+ for (size_t i = 0; i < ocount; ++i)
14890+ phwi[i] = ~phwi[i];
14891+
14892+ size_t clearbits = ocount * HOST_BITS_PER_WIDE_INT - obits;
14893+ if (clearbits != 0)
14894+ phwi[ocount - 1] &= (((unsigned HOST_WIDE_INT) (HOST_WIDE_INT) -1)
14895+ >> clearbits);
14896+
14897+ mpz_import(val, ocount, -1, sizeof(HOST_WIDE_INT), 0, 0, phwi);
14898+
14899+ if (!utype->integer_type()->is_unsigned()
14900+ && mpz_tstbit(val, obits - 1))
14901+ {
14902+ mpz_t adj;
14903+ mpz_init_set_ui(adj, 1);
14904+ mpz_mul_2exp(adj, adj, obits);
14905+ mpz_sub(val, val, adj);
14906+ mpz_clear(adj);
14907+ }
14908+
14909+ delete[] phwi;
14910+ }
14911+ }
14912+ break;
14913+
14914 default:
14915 go_unreachable();
14916 }
14917-}
14918
14919-// Return the integral constant value of a unary expression, if it has one.
14920+ if (unc->is_rune())
14921+ nc->set_rune(NULL, val);
14922+ else
14923+ nc->set_int(NULL, val);
14924
14925-bool
14926-Unary_expression::do_integer_constant_value(bool iota_is_constant, mpz_t val,
14927- Type** ptype) const
14928-{
14929- mpz_t uval;
14930- mpz_init(uval);
14931- bool ret;
14932- if (!this->expr_->integer_constant_value(iota_is_constant, uval, ptype))
14933- ret = false;
14934- else
14935- ret = Unary_expression::eval_integer(this->op_, *ptype, uval, val,
14936- this->location());
14937 mpz_clear(uval);
14938- return ret;
14939-}
14940+ mpz_clear(val);
14941
14942-// Return the floating point constant value of a unary expression, if
14943-// it has one.
14944-
14945-bool
14946-Unary_expression::do_float_constant_value(mpfr_t val, Type** ptype) const
14947-{
14948- mpfr_t uval;
14949- mpfr_init(uval);
14950- bool ret;
14951- if (!this->expr_->float_constant_value(uval, ptype))
14952- ret = false;
14953- else
14954- ret = Unary_expression::eval_float(this->op_, uval, val);
14955- mpfr_clear(uval);
14956- return ret;
14957+ return nc->set_type(unc->type(), true, location);
14958 }
14959
14960-// Return the complex constant value of a unary expression, if it has
14961-// one.
14962+// Return the integral constant value of a unary expression, if it has one.
14963
14964 bool
14965-Unary_expression::do_complex_constant_value(mpfr_t real, mpfr_t imag,
14966- Type** ptype) const
14967+Unary_expression::do_numeric_constant_value(Numeric_constant* nc) const
14968 {
14969- mpfr_t rval;
14970- mpfr_t ival;
14971- mpfr_init(rval);
14972- mpfr_init(ival);
14973- bool ret;
14974- if (!this->expr_->complex_constant_value(rval, ival, ptype))
14975- ret = false;
14976- else
14977- ret = Unary_expression::eval_complex(this->op_, rval, ival, real, imag);
14978- mpfr_clear(rval);
14979- mpfr_clear(ival);
14980- return ret;
14981+ Numeric_constant unc;
14982+ if (!this->expr_->numeric_constant_value(&unc))
14983+ return false;
14984+ return Unary_expression::eval_constant(this->op_, &unc, this->location(),
14985+ nc);
14986 }
14987
14988 // Return the type of a unary expression.
14989@@ -4558,6 +3913,10 @@
14990 break;
14991
14992 case OPERATOR_NOT:
14993+ if (!type->is_boolean_type())
14994+ this->report_error(_("expected boolean type"));
14995+ break;
14996+
14997 case OPERATOR_XOR:
14998 if (type->integer_type() == NULL
14999 && !type->is_boolean_type())
15000@@ -4854,124 +4213,239 @@
15001 return Expression::traverse(&this->right_, traverse);
15002 }
15003
15004-// Compare integer constants according to OP.
15005+// Return the type to use for a binary operation on operands of
15006+// LEFT_TYPE and RIGHT_TYPE. These are the types of constants and as
15007+// such may be NULL or abstract.
15008
15009 bool
15010-Binary_expression::compare_integer(Operator op, mpz_t left_val,
15011- mpz_t right_val)
15012+Binary_expression::operation_type(Operator op, Type* left_type,
15013+ Type* right_type, Type** result_type)
15014 {
15015- int i = mpz_cmp(left_val, right_val);
15016+ if (left_type != right_type
15017+ && !left_type->is_abstract()
15018+ && !right_type->is_abstract()
15019+ && left_type->base() != right_type->base()
15020+ && op != OPERATOR_LSHIFT
15021+ && op != OPERATOR_RSHIFT)
15022+ {
15023+ // May be a type error--let it be diagnosed elsewhere.
15024+ return false;
15025+ }
15026+
15027+ if (op == OPERATOR_LSHIFT || op == OPERATOR_RSHIFT)
15028+ {
15029+ if (left_type->integer_type() != NULL)
15030+ *result_type = left_type;
15031+ else
15032+ *result_type = Type::make_abstract_integer_type();
15033+ }
15034+ else if (!left_type->is_abstract() && left_type->named_type() != NULL)
15035+ *result_type = left_type;
15036+ else if (!right_type->is_abstract() && right_type->named_type() != NULL)
15037+ *result_type = right_type;
15038+ else if (!left_type->is_abstract())
15039+ *result_type = left_type;
15040+ else if (!right_type->is_abstract())
15041+ *result_type = right_type;
15042+ else if (left_type->complex_type() != NULL)
15043+ *result_type = left_type;
15044+ else if (right_type->complex_type() != NULL)
15045+ *result_type = right_type;
15046+ else if (left_type->float_type() != NULL)
15047+ *result_type = left_type;
15048+ else if (right_type->float_type() != NULL)
15049+ *result_type = right_type;
15050+ else if (left_type->integer_type() != NULL
15051+ && left_type->integer_type()->is_rune())
15052+ *result_type = left_type;
15053+ else if (right_type->integer_type() != NULL
15054+ && right_type->integer_type()->is_rune())
15055+ *result_type = right_type;
15056+ else
15057+ *result_type = left_type;
15058+
15059+ return true;
15060+}
15061+
15062+// Convert an integer comparison code and an operator to a boolean
15063+// value.
15064+
15065+bool
15066+Binary_expression::cmp_to_bool(Operator op, int cmp)
15067+{
15068 switch (op)
15069 {
15070 case OPERATOR_EQEQ:
15071- return i == 0;
15072+ return cmp == 0;
15073+ break;
15074 case OPERATOR_NOTEQ:
15075- return i != 0;
15076+ return cmp != 0;
15077+ break;
15078 case OPERATOR_LT:
15079- return i < 0;
15080+ return cmp < 0;
15081+ break;
15082 case OPERATOR_LE:
15083- return i <= 0;
15084+ return cmp <= 0;
15085 case OPERATOR_GT:
15086- return i > 0;
15087+ return cmp > 0;
15088 case OPERATOR_GE:
15089- return i >= 0;
15090+ return cmp >= 0;
15091 default:
15092 go_unreachable();
15093 }
15094 }
15095
15096-// Compare floating point constants according to OP.
15097+// Compare constants according to OP.
15098
15099 bool
15100-Binary_expression::compare_float(Operator op, Type* type, mpfr_t left_val,
15101- mpfr_t right_val)
15102+Binary_expression::compare_constant(Operator op, Numeric_constant* left_nc,
15103+ Numeric_constant* right_nc,
15104+ Location location, bool* result)
15105 {
15106- int i;
15107- if (type == NULL)
15108- i = mpfr_cmp(left_val, right_val);
15109+ Type* left_type = left_nc->type();
15110+ Type* right_type = right_nc->type();
15111+
15112+ Type* type;
15113+ if (!Binary_expression::operation_type(op, left_type, right_type, &type))
15114+ return false;
15115+
15116+ // When comparing an untyped operand to a typed operand, we are
15117+ // effectively coercing the untyped operand to the other operand's
15118+ // type, so make sure that is valid.
15119+ if (!left_nc->set_type(type, true, location)
15120+ || !right_nc->set_type(type, true, location))
15121+ return false;
15122+
15123+ bool ret;
15124+ int cmp;
15125+ if (type->complex_type() != NULL)
15126+ {
15127+ if (op != OPERATOR_EQEQ && op != OPERATOR_NOTEQ)
15128+ return false;
15129+ ret = Binary_expression::compare_complex(left_nc, right_nc, &cmp);
15130+ }
15131+ else if (type->float_type() != NULL)
15132+ ret = Binary_expression::compare_float(left_nc, right_nc, &cmp);
15133 else
15134+ ret = Binary_expression::compare_integer(left_nc, right_nc, &cmp);
15135+
15136+ if (ret)
15137+ *result = Binary_expression::cmp_to_bool(op, cmp);
15138+
15139+ return ret;
15140+}
15141+
15142+// Compare integer constants.
15143+
15144+bool
15145+Binary_expression::compare_integer(const Numeric_constant* left_nc,
15146+ const Numeric_constant* right_nc,
15147+ int* cmp)
15148+{
15149+ mpz_t left_val;
15150+ if (!left_nc->to_int(&left_val))
15151+ return false;
15152+ mpz_t right_val;
15153+ if (!right_nc->to_int(&right_val))
15154 {
15155- mpfr_t lv;
15156- mpfr_init_set(lv, left_val, GMP_RNDN);
15157- mpfr_t rv;
15158- mpfr_init_set(rv, right_val, GMP_RNDN);
15159- Float_expression::constrain_float(lv, type);
15160- Float_expression::constrain_float(rv, type);
15161- i = mpfr_cmp(lv, rv);
15162- mpfr_clear(lv);
15163- mpfr_clear(rv);
15164+ mpz_clear(left_val);
15165+ return false;
15166 }
15167- switch (op)
15168+
15169+ *cmp = mpz_cmp(left_val, right_val);
15170+
15171+ mpz_clear(left_val);
15172+ mpz_clear(right_val);
15173+
15174+ return true;
15175+}
15176+
15177+// Compare floating point constants.
15178+
15179+bool
15180+Binary_expression::compare_float(const Numeric_constant* left_nc,
15181+ const Numeric_constant* right_nc,
15182+ int* cmp)
15183+{
15184+ mpfr_t left_val;
15185+ if (!left_nc->to_float(&left_val))
15186+ return false;
15187+ mpfr_t right_val;
15188+ if (!right_nc->to_float(&right_val))
15189 {
15190- case OPERATOR_EQEQ:
15191- return i == 0;
15192- case OPERATOR_NOTEQ:
15193- return i != 0;
15194- case OPERATOR_LT:
15195- return i < 0;
15196- case OPERATOR_LE:
15197- return i <= 0;
15198- case OPERATOR_GT:
15199- return i > 0;
15200- case OPERATOR_GE:
15201- return i >= 0;
15202- default:
15203- go_unreachable();
15204+ mpfr_clear(left_val);
15205+ return false;
15206 }
15207+
15208+ // We already coerced both operands to the same type. If that type
15209+ // is not an abstract type, we need to round the values accordingly.
15210+ Type* type = left_nc->type();
15211+ if (!type->is_abstract() && type->float_type() != NULL)
15212+ {
15213+ int bits = type->float_type()->bits();
15214+ mpfr_prec_round(left_val, bits, GMP_RNDN);
15215+ mpfr_prec_round(right_val, bits, GMP_RNDN);
15216+ }
15217+
15218+ *cmp = mpfr_cmp(left_val, right_val);
15219+
15220+ mpfr_clear(left_val);
15221+ mpfr_clear(right_val);
15222+
15223+ return true;
15224 }
15225
15226-// Compare complex constants according to OP. Complex numbers may
15227-// only be compared for equality.
15228+// Compare complex constants. Complex numbers may only be compared
15229+// for equality.
15230
15231 bool
15232-Binary_expression::compare_complex(Operator op, Type* type,
15233- mpfr_t left_real, mpfr_t left_imag,
15234- mpfr_t right_real, mpfr_t right_imag)
15235+Binary_expression::compare_complex(const Numeric_constant* left_nc,
15236+ const Numeric_constant* right_nc,
15237+ int* cmp)
15238 {
15239- bool is_equal;
15240- if (type == NULL)
15241- is_equal = (mpfr_cmp(left_real, right_real) == 0
15242- && mpfr_cmp(left_imag, right_imag) == 0);
15243- else
15244+ mpfr_t left_real, left_imag;
15245+ if (!left_nc->to_complex(&left_real, &left_imag))
15246+ return false;
15247+ mpfr_t right_real, right_imag;
15248+ if (!right_nc->to_complex(&right_real, &right_imag))
15249 {
15250- mpfr_t lr;
15251- mpfr_t li;
15252- mpfr_init_set(lr, left_real, GMP_RNDN);
15253- mpfr_init_set(li, left_imag, GMP_RNDN);
15254- mpfr_t rr;
15255- mpfr_t ri;
15256- mpfr_init_set(rr, right_real, GMP_RNDN);
15257- mpfr_init_set(ri, right_imag, GMP_RNDN);
15258- Complex_expression::constrain_complex(lr, li, type);
15259- Complex_expression::constrain_complex(rr, ri, type);
15260- is_equal = mpfr_cmp(lr, rr) == 0 && mpfr_cmp(li, ri) == 0;
15261- mpfr_clear(lr);
15262- mpfr_clear(li);
15263- mpfr_clear(rr);
15264- mpfr_clear(ri);
15265+ mpfr_clear(left_real);
15266+ mpfr_clear(left_imag);
15267+ return false;
15268 }
15269- switch (op)
15270+
15271+ // We already coerced both operands to the same type. If that type
15272+ // is not an abstract type, we need to round the values accordingly.
15273+ Type* type = left_nc->type();
15274+ if (!type->is_abstract() && type->complex_type() != NULL)
15275 {
15276- case OPERATOR_EQEQ:
15277- return is_equal;
15278- case OPERATOR_NOTEQ:
15279- return !is_equal;
15280- default:
15281- go_unreachable();
15282+ int bits = type->complex_type()->bits();
15283+ mpfr_prec_round(left_real, bits / 2, GMP_RNDN);
15284+ mpfr_prec_round(left_imag, bits / 2, GMP_RNDN);
15285+ mpfr_prec_round(right_real, bits / 2, GMP_RNDN);
15286+ mpfr_prec_round(right_imag, bits / 2, GMP_RNDN);
15287 }
15288+
15289+ *cmp = (mpfr_cmp(left_real, right_real) != 0
15290+ || mpfr_cmp(left_imag, right_imag) != 0);
15291+
15292+ mpfr_clear(left_real);
15293+ mpfr_clear(left_imag);
15294+ mpfr_clear(right_real);
15295+ mpfr_clear(right_imag);
15296+
15297+ return true;
15298 }
15299
15300-// Apply binary opcode OP to LEFT_VAL and RIGHT_VAL, setting VAL.
15301-// LEFT_TYPE is the type of LEFT_VAL, RIGHT_TYPE is the type of
15302-// RIGHT_VAL; LEFT_TYPE and/or RIGHT_TYPE may be NULL. Return true if
15303-// this could be done, false if not.
15304+// Apply binary opcode OP to LEFT_NC and RIGHT_NC, setting NC. Return
15305+// true if this could be done, false if not. Issue errors at LOCATION
15306+// as appropriate.
15307
15308 bool
15309-Binary_expression::eval_integer(Operator op, Type* left_type, mpz_t left_val,
15310- Type* right_type, mpz_t right_val,
15311- Location location, mpz_t val)
15312+Binary_expression::eval_constant(Operator op, Numeric_constant* left_nc,
15313+ Numeric_constant* right_nc,
15314+ Location location, Numeric_constant* nc)
15315 {
15316- bool is_shift_op = false;
15317 switch (op)
15318 {
15319 case OPERATOR_OROR:
15320@@ -4982,9 +4456,68 @@
15321 case OPERATOR_LE:
15322 case OPERATOR_GT:
15323 case OPERATOR_GE:
15324- // These return boolean values. We should probably handle them
15325- // anyhow in case a type conversion is used on the result.
15326+ // These return boolean values and as such must be handled
15327+ // elsewhere.
15328+ go_unreachable();
15329+ default:
15330+ break;
15331+ }
15332+
15333+ Type* left_type = left_nc->type();
15334+ Type* right_type = right_nc->type();
15335+
15336+ Type* type;
15337+ if (!Binary_expression::operation_type(op, left_type, right_type, &type))
15338+ return false;
15339+
15340+ bool is_shift = op == OPERATOR_LSHIFT || op == OPERATOR_RSHIFT;
15341+
15342+ // When combining an untyped operand with a typed operand, we are
15343+ // effectively coercing the untyped operand to the other operand's
15344+ // type, so make sure that is valid.
15345+ if (!left_nc->set_type(type, true, location))
15346+ return false;
15347+ if (!is_shift && !right_nc->set_type(type, true, location))
15348+ return false;
15349+
15350+ bool r;
15351+ if (type->complex_type() != NULL)
15352+ r = Binary_expression::eval_complex(op, left_nc, right_nc, location, nc);
15353+ else if (type->float_type() != NULL)
15354+ r = Binary_expression::eval_float(op, left_nc, right_nc, location, nc);
15355+ else
15356+ r = Binary_expression::eval_integer(op, left_nc, right_nc, location, nc);
15357+
15358+ if (r)
15359+ r = nc->set_type(type, true, location);
15360+
15361+ return r;
15362+}
15363+
15364+// Apply binary opcode OP to LEFT_NC and RIGHT_NC, setting NC, using
15365+// integer operations. Return true if this could be done, false if
15366+// not.
15367+
15368+bool
15369+Binary_expression::eval_integer(Operator op, const Numeric_constant* left_nc,
15370+ const Numeric_constant* right_nc,
15371+ Location location, Numeric_constant* nc)
15372+{
15373+ mpz_t left_val;
15374+ if (!left_nc->to_int(&left_val))
15375+ return false;
15376+ mpz_t right_val;
15377+ if (!right_nc->to_int(&right_val))
15378+ {
15379+ mpz_clear(left_val);
15380 return false;
15381+ }
15382+
15383+ mpz_t val;
15384+ mpz_init(val);
15385+
15386+ switch (op)
15387+ {
15388 case OPERATOR_PLUS:
15389 mpz_add(val, left_val, right_val);
15390 break;
15391@@ -5007,7 +4540,6 @@
15392 {
15393 error_at(location, "division by zero");
15394 mpz_set_ui(val, 0);
15395- return true;
15396 }
15397 break;
15398 case OPERATOR_MOD:
15399@@ -5017,20 +4549,18 @@
15400 {
15401 error_at(location, "division by zero");
15402 mpz_set_ui(val, 0);
15403- return true;
15404 }
15405 break;
15406 case OPERATOR_LSHIFT:
15407 {
15408 unsigned long shift = mpz_get_ui(right_val);
15409- if (mpz_cmp_ui(right_val, shift) != 0 || shift > 0x100000)
15410+ if (mpz_cmp_ui(right_val, shift) == 0 && shift <= 0x100000)
15411+ mpz_mul_2exp(val, left_val, shift);
15412+ else
15413 {
15414 error_at(location, "shift count overflow");
15415 mpz_set_ui(val, 0);
15416- return true;
15417 }
15418- mpz_mul_2exp(val, left_val, shift);
15419- is_shift_op = true;
15420 break;
15421 }
15422 break;
15423@@ -5041,13 +4571,14 @@
15424 {
15425 error_at(location, "shift count overflow");
15426 mpz_set_ui(val, 0);
15427- return true;
15428 }
15429- if (mpz_cmp_ui(left_val, 0) >= 0)
15430- mpz_tdiv_q_2exp(val, left_val, shift);
15431 else
15432- mpz_fdiv_q_2exp(val, left_val, shift);
15433- is_shift_op = true;
15434+ {
15435+ if (mpz_cmp_ui(left_val, 0) >= 0)
15436+ mpz_tdiv_q_2exp(val, left_val, shift);
15437+ else
15438+ mpz_fdiv_q_2exp(val, left_val, shift);
15439+ }
15440 break;
15441 }
15442 break;
15443@@ -5067,63 +4598,47 @@
15444 go_unreachable();
15445 }
15446
15447- Type* type = left_type;
15448- if (!is_shift_op)
15449- {
15450- if (type == NULL)
15451- type = right_type;
15452- else if (type != right_type && right_type != NULL)
15453- {
15454- if (type->is_abstract())
15455- type = right_type;
15456- else if (!right_type->is_abstract())
15457- {
15458- // This look like a type error which should be diagnosed
15459- // elsewhere. Don't do anything here, to avoid an
15460- // unhelpful chain of error messages.
15461- return true;
15462- }
15463- }
15464- }
15465+ mpz_clear(left_val);
15466+ mpz_clear(right_val);
15467
15468- if (type != NULL && !type->is_abstract())
15469- {
15470- // We have to check the operands too, as we have implicitly
15471- // coerced them to TYPE.
15472- if ((type != left_type
15473- && !Integer_expression::check_constant(left_val, type, location))
15474- || (!is_shift_op
15475- && type != right_type
15476- && !Integer_expression::check_constant(right_val, type,
15477- location))
15478- || !Integer_expression::check_constant(val, type, location))
15479- mpz_set_ui(val, 0);
15480- }
15481+ if (left_nc->is_rune()
15482+ || (op != OPERATOR_LSHIFT
15483+ && op != OPERATOR_RSHIFT
15484+ && right_nc->is_rune()))
15485+ nc->set_rune(NULL, val);
15486+ else
15487+ nc->set_int(NULL, val);
15488
15489+ mpz_clear(val);
15490+
15491 return true;
15492 }
15493
15494-// Apply binary opcode OP to LEFT_VAL and RIGHT_VAL, setting VAL.
15495-// Return true if this could be done, false if not.
15496+// Apply binary opcode OP to LEFT_NC and RIGHT_NC, setting NC, using
15497+// floating point operations. Return true if this could be done,
15498+// false if not.
15499
15500 bool
15501-Binary_expression::eval_float(Operator op, Type* left_type, mpfr_t left_val,
15502- Type* right_type, mpfr_t right_val,
15503- mpfr_t val, Location location)
15504+Binary_expression::eval_float(Operator op, const Numeric_constant* left_nc,
15505+ const Numeric_constant* right_nc,
15506+ Location location, Numeric_constant* nc)
15507 {
15508+ mpfr_t left_val;
15509+ if (!left_nc->to_float(&left_val))
15510+ return false;
15511+ mpfr_t right_val;
15512+ if (!right_nc->to_float(&right_val))
15513+ {
15514+ mpfr_clear(left_val);
15515+ return false;
15516+ }
15517+
15518+ mpfr_t val;
15519+ mpfr_init(val);
15520+
15521+ bool ret = true;
15522 switch (op)
15523 {
15524- case OPERATOR_OROR:
15525- case OPERATOR_ANDAND:
15526- case OPERATOR_EQEQ:
15527- case OPERATOR_NOTEQ:
15528- case OPERATOR_LT:
15529- case OPERATOR_LE:
15530- case OPERATOR_GT:
15531- case OPERATOR_GE:
15532- // These return boolean values. We should probably handle them
15533- // anyhow in case a type conversion is used on the result.
15534- return false;
15535 case OPERATOR_PLUS:
15536 mpfr_add(val, left_val, right_val, GMP_RNDN);
15537 break;
15538@@ -5134,78 +4649,64 @@
15539 case OPERATOR_XOR:
15540 case OPERATOR_AND:
15541 case OPERATOR_BITCLEAR:
15542- return false;
15543+ case OPERATOR_MOD:
15544+ case OPERATOR_LSHIFT:
15545+ case OPERATOR_RSHIFT:
15546+ mpfr_set_ui(val, 0, GMP_RNDN);
15547+ ret = false;
15548+ break;
15549 case OPERATOR_MULT:
15550 mpfr_mul(val, left_val, right_val, GMP_RNDN);
15551 break;
15552 case OPERATOR_DIV:
15553- if (mpfr_zero_p(right_val))
15554- error_at(location, "division by zero");
15555- mpfr_div(val, left_val, right_val, GMP_RNDN);
15556+ if (!mpfr_zero_p(right_val))
15557+ mpfr_div(val, left_val, right_val, GMP_RNDN);
15558+ else
15559+ {
15560+ error_at(location, "division by zero");
15561+ mpfr_set_ui(val, 0, GMP_RNDN);
15562+ }
15563 break;
15564- case OPERATOR_MOD:
15565- return false;
15566- case OPERATOR_LSHIFT:
15567- case OPERATOR_RSHIFT:
15568- return false;
15569 default:
15570 go_unreachable();
15571 }
15572
15573- Type* type = left_type;
15574- if (type == NULL)
15575- type = right_type;
15576- else if (type != right_type && right_type != NULL)
15577- {
15578- if (type->is_abstract())
15579- type = right_type;
15580- else if (!right_type->is_abstract())
15581- {
15582- // This looks like a type error which should be diagnosed
15583- // elsewhere. Don't do anything here, to avoid an unhelpful
15584- // chain of error messages.
15585- return true;
15586- }
15587- }
15588+ mpfr_clear(left_val);
15589+ mpfr_clear(right_val);
15590
15591- if (type != NULL && !type->is_abstract())
15592- {
15593- if ((type != left_type
15594- && !Float_expression::check_constant(left_val, type, location))
15595- || (type != right_type
15596- && !Float_expression::check_constant(right_val, type,
15597- location))
15598- || !Float_expression::check_constant(val, type, location))
15599- mpfr_set_ui(val, 0, GMP_RNDN);
15600- }
15601+ nc->set_float(NULL, val);
15602+ mpfr_clear(val);
15603
15604- return true;
15605+ return ret;
15606 }
15607
15608-// Apply binary opcode OP to LEFT_REAL/LEFT_IMAG and
15609-// RIGHT_REAL/RIGHT_IMAG, setting REAL/IMAG. Return true if this
15610-// could be done, false if not.
15611+// Apply binary opcode OP to LEFT_NC and RIGHT_NC, setting NC, using
15612+// complex operations. Return true if this could be done, false if
15613+// not.
15614
15615 bool
15616-Binary_expression::eval_complex(Operator op, Type* left_type,
15617- mpfr_t left_real, mpfr_t left_imag,
15618- Type *right_type,
15619- mpfr_t right_real, mpfr_t right_imag,
15620- mpfr_t real, mpfr_t imag,
15621- Location location)
15622+Binary_expression::eval_complex(Operator op, const Numeric_constant* left_nc,
15623+ const Numeric_constant* right_nc,
15624+ Location location, Numeric_constant* nc)
15625 {
15626+ mpfr_t left_real, left_imag;
15627+ if (!left_nc->to_complex(&left_real, &left_imag))
15628+ return false;
15629+ mpfr_t right_real, right_imag;
15630+ if (!right_nc->to_complex(&right_real, &right_imag))
15631+ {
15632+ mpfr_clear(left_real);
15633+ mpfr_clear(left_imag);
15634+ return false;
15635+ }
15636+
15637+ mpfr_t real, imag;
15638+ mpfr_init(real);
15639+ mpfr_init(imag);
15640+
15641+ bool ret = true;
15642 switch (op)
15643 {
15644- case OPERATOR_OROR:
15645- case OPERATOR_ANDAND:
15646- case OPERATOR_EQEQ:
15647- case OPERATOR_NOTEQ:
15648- case OPERATOR_LT:
15649- case OPERATOR_LE:
15650- case OPERATOR_GT:
15651- case OPERATOR_GE:
15652- // These return boolean values and must be handled differently.
15653- return false;
15654 case OPERATOR_PLUS:
15655 mpfr_add(real, left_real, right_real, GMP_RNDN);
15656 mpfr_add(imag, left_imag, right_imag, GMP_RNDN);
15657@@ -5218,7 +4719,13 @@
15658 case OPERATOR_XOR:
15659 case OPERATOR_AND:
15660 case OPERATOR_BITCLEAR:
15661- return false;
15662+ case OPERATOR_MOD:
15663+ case OPERATOR_LSHIFT:
15664+ case OPERATOR_RSHIFT:
15665+ mpfr_set_ui(real, 0, GMP_RNDN);
15666+ mpfr_set_ui(imag, 0, GMP_RNDN);
15667+ ret = false;
15668+ break;
15669 case OPERATOR_MULT:
15670 {
15671 // You might think that multiplying two complex numbers would
15672@@ -5371,7 +4878,12 @@
15673 // scale the values to try to avoid this.
15674
15675 if (mpfr_zero_p(right_real) && mpfr_zero_p(right_imag))
15676- error_at(location, "division by zero");
15677+ {
15678+ error_at(location, "division by zero");
15679+ mpfr_set_ui(real, 0, GMP_RNDN);
15680+ mpfr_set_ui(imag, 0, GMP_RNDN);
15681+ break;
15682+ }
15683
15684 mpfr_t rra;
15685 mpfr_t ria;
15686@@ -5502,48 +5014,20 @@
15687 mpfr_clear(ria);
15688 }
15689 break;
15690- case OPERATOR_MOD:
15691- return false;
15692- case OPERATOR_LSHIFT:
15693- case OPERATOR_RSHIFT:
15694- return false;
15695 default:
15696 go_unreachable();
15697 }
15698
15699- Type* type = left_type;
15700- if (type == NULL)
15701- type = right_type;
15702- else if (type != right_type && right_type != NULL)
15703- {
15704- if (type->is_abstract())
15705- type = right_type;
15706- else if (!right_type->is_abstract())
15707- {
15708- // This looks like a type error which should be diagnosed
15709- // elsewhere. Don't do anything here, to avoid an unhelpful
15710- // chain of error messages.
15711- return true;
15712- }
15713- }
15714+ mpfr_clear(left_real);
15715+ mpfr_clear(left_imag);
15716+ mpfr_clear(right_real);
15717+ mpfr_clear(right_imag);
15718
15719- if (type != NULL && !type->is_abstract())
15720- {
15721- if ((type != left_type
15722- && !Complex_expression::check_constant(left_real, left_imag,
15723- type, location))
15724- || (type != right_type
15725- && !Complex_expression::check_constant(right_real, right_imag,
15726- type, location))
15727- || !Complex_expression::check_constant(real, imag, type,
15728- location))
15729- {
15730- mpfr_set_ui(real, 0, GMP_RNDN);
15731- mpfr_set_ui(imag, 0, GMP_RNDN);
15732- }
15733- }
15734+ nc->set_complex(NULL, real, imag);
15735+ mpfr_clear(real);
15736+ mpfr_clear(imag);
15737
15738- return true;
15739+ return ret;
15740 }
15741
15742 // Lower a binary expression. We have to evaluate constant
15743@@ -5566,290 +5050,36 @@
15744 || op == OPERATOR_GT
15745 || op == OPERATOR_GE);
15746
15747- // Integer constant expressions.
15748+ // Numeric constant expressions.
15749 {
15750- mpz_t left_val;
15751- mpz_init(left_val);
15752- Type* left_type;
15753- mpz_t right_val;
15754- mpz_init(right_val);
15755- Type* right_type;
15756- if (left->integer_constant_value(false, left_val, &left_type)
15757- && right->integer_constant_value(false, right_val, &right_type))
15758+ Numeric_constant left_nc;
15759+ Numeric_constant right_nc;
15760+ if (left->numeric_constant_value(&left_nc)
15761+ && right->numeric_constant_value(&right_nc))
15762 {
15763- Expression* ret = NULL;
15764- if (left_type != right_type
15765- && left_type != NULL
15766- && !left_type->is_abstract()
15767- && right_type != NULL
15768- && !right_type->is_abstract()
15769- && left_type->base() != right_type->base()
15770- && op != OPERATOR_LSHIFT
15771- && op != OPERATOR_RSHIFT)
15772+ if (is_comparison)
15773 {
15774- // May be a type error--let it be diagnosed later.
15775- return this;
15776+ bool result;
15777+ if (!Binary_expression::compare_constant(op, &left_nc,
15778+ &right_nc, location,
15779+ &result))
15780+ return this;
15781+ return Expression::make_cast(Type::lookup_bool_type(),
15782+ Expression::make_boolean(result,
15783+ location),
15784+ location);
15785 }
15786- else if (is_comparison)
15787- {
15788- bool b = Binary_expression::compare_integer(op, left_val,
15789- right_val);
15790- ret = Expression::make_cast(Type::lookup_bool_type(),
15791- Expression::make_boolean(b, location),
15792- location);
15793- }
15794 else
15795 {
15796- mpz_t val;
15797- mpz_init(val);
15798-
15799- if (Binary_expression::eval_integer(op, left_type, left_val,
15800- right_type, right_val,
15801- location, val))
15802- {
15803- go_assert(op != OPERATOR_OROR && op != OPERATOR_ANDAND);
15804- Type* type;
15805- if (op == OPERATOR_LSHIFT || op == OPERATOR_RSHIFT)
15806- type = left_type;
15807- else if (left_type == NULL)
15808- type = right_type;
15809- else if (right_type == NULL)
15810- type = left_type;
15811- else if (!left_type->is_abstract()
15812- && left_type->named_type() != NULL)
15813- type = left_type;
15814- else if (!right_type->is_abstract()
15815- && right_type->named_type() != NULL)
15816- type = right_type;
15817- else if (!left_type->is_abstract())
15818- type = left_type;
15819- else if (!right_type->is_abstract())
15820- type = right_type;
15821- else if (left_type->float_type() != NULL)
15822- type = left_type;
15823- else if (right_type->float_type() != NULL)
15824- type = right_type;
15825- else if (left_type->complex_type() != NULL)
15826- type = left_type;
15827- else if (right_type->complex_type() != NULL)
15828- type = right_type;
15829- else
15830- type = left_type;
15831-
15832- bool is_character = false;
15833- if (type == NULL)
15834- {
15835- Type* t = this->left_->type();
15836- if (t->integer_type() != NULL
15837- && t->integer_type()->is_rune())
15838- is_character = true;
15839- else if (op != OPERATOR_LSHIFT && op != OPERATOR_RSHIFT)
15840- {
15841- t = this->right_->type();
15842- if (t->integer_type() != NULL
15843- && t->integer_type()->is_rune())
15844- is_character = true;
15845- }
15846- }
15847-
15848- if (is_character)
15849- ret = Expression::make_character(&val, type, location);
15850- else
15851- ret = Expression::make_integer(&val, type, location);
15852- }
15853-
15854- mpz_clear(val);
15855+ Numeric_constant nc;
15856+ if (!Binary_expression::eval_constant(op, &left_nc, &right_nc,
15857+ location, &nc))
15858+ return this;
15859+ return nc.expression(location);
15860 }
15861-
15862- if (ret != NULL)
15863- {
15864- mpz_clear(right_val);
15865- mpz_clear(left_val);
15866- return ret;
15867- }
15868 }
15869- mpz_clear(right_val);
15870- mpz_clear(left_val);
15871 }
15872
15873- // Floating point constant expressions.
15874- {
15875- mpfr_t left_val;
15876- mpfr_init(left_val);
15877- Type* left_type;
15878- mpfr_t right_val;
15879- mpfr_init(right_val);
15880- Type* right_type;
15881- if (left->float_constant_value(left_val, &left_type)
15882- && right->float_constant_value(right_val, &right_type))
15883- {
15884- Expression* ret = NULL;
15885- if (left_type != right_type
15886- && left_type != NULL
15887- && right_type != NULL
15888- && left_type->base() != right_type->base()
15889- && op != OPERATOR_LSHIFT
15890- && op != OPERATOR_RSHIFT)
15891- {
15892- // May be a type error--let it be diagnosed later.
15893- return this;
15894- }
15895- else if (is_comparison)
15896- {
15897- bool b = Binary_expression::compare_float(op,
15898- (left_type != NULL
15899- ? left_type
15900- : right_type),
15901- left_val, right_val);
15902- ret = Expression::make_boolean(b, location);
15903- }
15904- else
15905- {
15906- mpfr_t val;
15907- mpfr_init(val);
15908-
15909- if (Binary_expression::eval_float(op, left_type, left_val,
15910- right_type, right_val, val,
15911- location))
15912- {
15913- go_assert(op != OPERATOR_OROR && op != OPERATOR_ANDAND
15914- && op != OPERATOR_LSHIFT && op != OPERATOR_RSHIFT);
15915- Type* type;
15916- if (left_type == NULL)
15917- type = right_type;
15918- else if (right_type == NULL)
15919- type = left_type;
15920- else if (!left_type->is_abstract()
15921- && left_type->named_type() != NULL)
15922- type = left_type;
15923- else if (!right_type->is_abstract()
15924- && right_type->named_type() != NULL)
15925- type = right_type;
15926- else if (!left_type->is_abstract())
15927- type = left_type;
15928- else if (!right_type->is_abstract())
15929- type = right_type;
15930- else if (left_type->float_type() != NULL)
15931- type = left_type;
15932- else if (right_type->float_type() != NULL)
15933- type = right_type;
15934- else
15935- type = left_type;
15936- ret = Expression::make_float(&val, type, location);
15937- }
15938-
15939- mpfr_clear(val);
15940- }
15941-
15942- if (ret != NULL)
15943- {
15944- mpfr_clear(right_val);
15945- mpfr_clear(left_val);
15946- return ret;
15947- }
15948- }
15949- mpfr_clear(right_val);
15950- mpfr_clear(left_val);
15951- }
15952-
15953- // Complex constant expressions.
15954- {
15955- mpfr_t left_real;
15956- mpfr_t left_imag;
15957- mpfr_init(left_real);
15958- mpfr_init(left_imag);
15959- Type* left_type;
15960-
15961- mpfr_t right_real;
15962- mpfr_t right_imag;
15963- mpfr_init(right_real);
15964- mpfr_init(right_imag);
15965- Type* right_type;
15966-
15967- if (left->complex_constant_value(left_real, left_imag, &left_type)
15968- && right->complex_constant_value(right_real, right_imag, &right_type))
15969- {
15970- Expression* ret = NULL;
15971- if (left_type != right_type
15972- && left_type != NULL
15973- && right_type != NULL
15974- && left_type->base() != right_type->base())
15975- {
15976- // May be a type error--let it be diagnosed later.
15977- return this;
15978- }
15979- else if (op == OPERATOR_EQEQ || op == OPERATOR_NOTEQ)
15980- {
15981- bool b = Binary_expression::compare_complex(op,
15982- (left_type != NULL
15983- ? left_type
15984- : right_type),
15985- left_real,
15986- left_imag,
15987- right_real,
15988- right_imag);
15989- ret = Expression::make_boolean(b, location);
15990- }
15991- else
15992- {
15993- mpfr_t real;
15994- mpfr_t imag;
15995- mpfr_init(real);
15996- mpfr_init(imag);
15997-
15998- if (Binary_expression::eval_complex(op, left_type,
15999- left_real, left_imag,
16000- right_type,
16001- right_real, right_imag,
16002- real, imag,
16003- location))
16004- {
16005- go_assert(op != OPERATOR_OROR && op != OPERATOR_ANDAND
16006- && op != OPERATOR_LSHIFT && op != OPERATOR_RSHIFT);
16007- Type* type;
16008- if (left_type == NULL)
16009- type = right_type;
16010- else if (right_type == NULL)
16011- type = left_type;
16012- else if (!left_type->is_abstract()
16013- && left_type->named_type() != NULL)
16014- type = left_type;
16015- else if (!right_type->is_abstract()
16016- && right_type->named_type() != NULL)
16017- type = right_type;
16018- else if (!left_type->is_abstract())
16019- type = left_type;
16020- else if (!right_type->is_abstract())
16021- type = right_type;
16022- else if (left_type->complex_type() != NULL)
16023- type = left_type;
16024- else if (right_type->complex_type() != NULL)
16025- type = right_type;
16026- else
16027- type = left_type;
16028- ret = Expression::make_complex(&real, &imag, type,
16029- location);
16030- }
16031- mpfr_clear(real);
16032- mpfr_clear(imag);
16033- }
16034-
16035- if (ret != NULL)
16036- {
16037- mpfr_clear(left_real);
16038- mpfr_clear(left_imag);
16039- mpfr_clear(right_real);
16040- mpfr_clear(right_imag);
16041- return ret;
16042- }
16043- }
16044-
16045- mpfr_clear(left_real);
16046- mpfr_clear(left_imag);
16047- mpfr_clear(right_real);
16048- mpfr_clear(right_imag);
16049- }
16050-
16051 // String constant expressions.
16052 if (left->type()->is_string_type() && right->type()->is_string_type())
16053 {
16054@@ -5864,79 +5094,15 @@
16055 else if (is_comparison)
16056 {
16057 int cmp = left_string.compare(right_string);
16058- bool r;
16059- switch (op)
16060- {
16061- case OPERATOR_EQEQ:
16062- r = cmp == 0;
16063- break;
16064- case OPERATOR_NOTEQ:
16065- r = cmp != 0;
16066- break;
16067- case OPERATOR_LT:
16068- r = cmp < 0;
16069- break;
16070- case OPERATOR_LE:
16071- r = cmp <= 0;
16072- break;
16073- case OPERATOR_GT:
16074- r = cmp > 0;
16075- break;
16076- case OPERATOR_GE:
16077- r = cmp >= 0;
16078- break;
16079- default:
16080- go_unreachable();
16081- }
16082- return Expression::make_boolean(r, location);
16083+ bool r = Binary_expression::cmp_to_bool(op, cmp);
16084+ return Expression::make_cast(Type::lookup_bool_type(),
16085+ Expression::make_boolean(r,
16086+ location),
16087+ location);
16088 }
16089 }
16090 }
16091
16092- // Special case for shift of a floating point constant.
16093- if (op == OPERATOR_LSHIFT || op == OPERATOR_RSHIFT)
16094- {
16095- mpfr_t left_val;
16096- mpfr_init(left_val);
16097- Type* left_type;
16098- mpz_t right_val;
16099- mpz_init(right_val);
16100- Type* right_type;
16101- if (left->float_constant_value(left_val, &left_type)
16102- && right->integer_constant_value(false, right_val, &right_type)
16103- && mpfr_integer_p(left_val)
16104- && (left_type == NULL
16105- || left_type->is_abstract()
16106- || left_type->integer_type() != NULL))
16107- {
16108- mpz_t left_int;
16109- mpz_init(left_int);
16110- mpfr_get_z(left_int, left_val, GMP_RNDN);
16111-
16112- mpz_t val;
16113- mpz_init(val);
16114-
16115- Expression* ret = NULL;
16116- if (Binary_expression::eval_integer(op, left_type, left_int,
16117- right_type, right_val,
16118- location, val))
16119- ret = Expression::make_integer(&val, left_type, location);
16120-
16121- mpz_clear(left_int);
16122- mpz_clear(val);
16123-
16124- if (ret != NULL)
16125- {
16126- mpfr_clear(left_val);
16127- mpz_clear(right_val);
16128- return ret;
16129- }
16130- }
16131-
16132- mpfr_clear(left_val);
16133- mpz_clear(right_val);
16134- }
16135-
16136 // Lower struct and array comparisons.
16137 if (op == OPERATOR_EQEQ || op == OPERATOR_NOTEQ)
16138 {
16139@@ -6114,156 +5280,32 @@
16140 return Expression::make_cast(unsafe_pointer_type, expr, loc);
16141 }
16142
16143-// Return the integer constant value, if it has one.
16144+// Return the numeric constant value, if it has one.
16145
16146 bool
16147-Binary_expression::do_integer_constant_value(bool iota_is_constant, mpz_t val,
16148- Type** ptype) const
16149+Binary_expression::do_numeric_constant_value(Numeric_constant* nc) const
16150 {
16151- mpz_t left_val;
16152- mpz_init(left_val);
16153- Type* left_type;
16154- if (!this->left_->integer_constant_value(iota_is_constant, left_val,
16155- &left_type))
16156- {
16157- mpz_clear(left_val);
16158- return false;
16159- }
16160+ Operator op = this->op_;
16161
16162- mpz_t right_val;
16163- mpz_init(right_val);
16164- Type* right_type;
16165- if (!this->right_->integer_constant_value(iota_is_constant, right_val,
16166- &right_type))
16167- {
16168- mpz_clear(right_val);
16169- mpz_clear(left_val);
16170- return false;
16171- }
16172+ if (op == OPERATOR_EQEQ
16173+ || op == OPERATOR_NOTEQ
16174+ || op == OPERATOR_LT
16175+ || op == OPERATOR_LE
16176+ || op == OPERATOR_GT
16177+ || op == OPERATOR_GE)
16178+ return false;
16179
16180- bool ret;
16181- if (left_type != right_type
16182- && left_type != NULL
16183- && right_type != NULL
16184- && left_type->base() != right_type->base()
16185- && this->op_ != OPERATOR_RSHIFT
16186- && this->op_ != OPERATOR_LSHIFT)
16187- ret = false;
16188- else
16189- ret = Binary_expression::eval_integer(this->op_, left_type, left_val,
16190- right_type, right_val,
16191- this->location(), val);
16192+ Numeric_constant left_nc;
16193+ if (!this->left_->numeric_constant_value(&left_nc))
16194+ return false;
16195+ Numeric_constant right_nc;
16196+ if (!this->right_->numeric_constant_value(&right_nc))
16197+ return false;
16198
16199- mpz_clear(right_val);
16200- mpz_clear(left_val);
16201-
16202- if (ret)
16203- *ptype = left_type;
16204-
16205- return ret;
16206+ return Binary_expression::eval_constant(op, &left_nc, &right_nc,
16207+ this->location(), nc);
16208 }
16209
16210-// Return the floating point constant value, if it has one.
16211-
16212-bool
16213-Binary_expression::do_float_constant_value(mpfr_t val, Type** ptype) const
16214-{
16215- mpfr_t left_val;
16216- mpfr_init(left_val);
16217- Type* left_type;
16218- if (!this->left_->float_constant_value(left_val, &left_type))
16219- {
16220- mpfr_clear(left_val);
16221- return false;
16222- }
16223-
16224- mpfr_t right_val;
16225- mpfr_init(right_val);
16226- Type* right_type;
16227- if (!this->right_->float_constant_value(right_val, &right_type))
16228- {
16229- mpfr_clear(right_val);
16230- mpfr_clear(left_val);
16231- return false;
16232- }
16233-
16234- bool ret;
16235- if (left_type != right_type
16236- && left_type != NULL
16237- && right_type != NULL
16238- && left_type->base() != right_type->base())
16239- ret = false;
16240- else
16241- ret = Binary_expression::eval_float(this->op_, left_type, left_val,
16242- right_type, right_val,
16243- val, this->location());
16244-
16245- mpfr_clear(left_val);
16246- mpfr_clear(right_val);
16247-
16248- if (ret)
16249- *ptype = left_type;
16250-
16251- return ret;
16252-}
16253-
16254-// Return the complex constant value, if it has one.
16255-
16256-bool
16257-Binary_expression::do_complex_constant_value(mpfr_t real, mpfr_t imag,
16258- Type** ptype) const
16259-{
16260- mpfr_t left_real;
16261- mpfr_t left_imag;
16262- mpfr_init(left_real);
16263- mpfr_init(left_imag);
16264- Type* left_type;
16265- if (!this->left_->complex_constant_value(left_real, left_imag, &left_type))
16266- {
16267- mpfr_clear(left_real);
16268- mpfr_clear(left_imag);
16269- return false;
16270- }
16271-
16272- mpfr_t right_real;
16273- mpfr_t right_imag;
16274- mpfr_init(right_real);
16275- mpfr_init(right_imag);
16276- Type* right_type;
16277- if (!this->right_->complex_constant_value(right_real, right_imag,
16278- &right_type))
16279- {
16280- mpfr_clear(left_real);
16281- mpfr_clear(left_imag);
16282- mpfr_clear(right_real);
16283- mpfr_clear(right_imag);
16284- return false;
16285- }
16286-
16287- bool ret;
16288- if (left_type != right_type
16289- && left_type != NULL
16290- && right_type != NULL
16291- && left_type->base() != right_type->base())
16292- ret = false;
16293- else
16294- ret = Binary_expression::eval_complex(this->op_, left_type,
16295- left_real, left_imag,
16296- right_type,
16297- right_real, right_imag,
16298- real, imag,
16299- this->location());
16300- mpfr_clear(left_real);
16301- mpfr_clear(left_imag);
16302- mpfr_clear(right_real);
16303- mpfr_clear(right_imag);
16304-
16305- if (ret)
16306- *ptype = left_type;
16307-
16308- return ret;
16309-}
16310-
16311 // Note that the value is being discarded.
16312
16313 void
16314@@ -6305,41 +5347,13 @@
16315 case OPERATOR_AND:
16316 case OPERATOR_BITCLEAR:
16317 {
16318- Type* left_type = this->left_->type();
16319- Type* right_type = this->right_->type();
16320- if (left_type->is_error())
16321- return left_type;
16322- else if (right_type->is_error())
16323- return right_type;
16324- else if (!Type::are_compatible_for_binop(left_type, right_type))
16325- {
16326- this->report_error(_("incompatible types in binary expression"));
16327- return Type::make_error_type();
16328- }
16329- else if (!left_type->is_abstract() && left_type->named_type() != NULL)
16330- return left_type;
16331- else if (!right_type->is_abstract() && right_type->named_type() != NULL)
16332- return right_type;
16333- else if (!left_type->is_abstract())
16334- return left_type;
16335- else if (!right_type->is_abstract())
16336- return right_type;
16337- else if (left_type->complex_type() != NULL)
16338- return left_type;
16339- else if (right_type->complex_type() != NULL)
16340- return right_type;
16341- else if (left_type->float_type() != NULL)
16342- return left_type;
16343- else if (right_type->float_type() != NULL)
16344- return right_type;
16345- else if (left_type->integer_type() != NULL
16346- && left_type->integer_type()->is_rune())
16347- return left_type;
16348- else if (right_type->integer_type() != NULL
16349- && right_type->integer_type()->is_rune())
16350- return right_type;
16351- else
16352- return left_type;
16353+ Type* type;
16354+ if (!Binary_expression::operation_type(this->op_,
16355+ this->left_->type(),
16356+ this->right_->type(),
16357+ &type))
16358+ return Type::make_error_type();
16359+ return type;
16360 }
16361
16362 case OPERATOR_LSHIFT:
16363@@ -6604,21 +5618,25 @@
16364 this->report_error(_("shift count not unsigned integer"));
16365 else
16366 {
16367- mpz_t val;
16368- mpz_init(val);
16369- Type* type;
16370- if (this->right_->integer_constant_value(true, val, &type))
16371+ Numeric_constant nc;
16372+ if (this->right_->numeric_constant_value(&nc))
16373 {
16374- if (mpz_sgn(val) < 0)
16375+ mpz_t val;
16376+ if (!nc.to_int(&val))
16377+ this->report_error(_("shift count not unsigned integer"));
16378+ else
16379 {
16380- this->report_error(_("negative shift count"));
16381- mpz_set_ui(val, 0);
16382- Location rloc = this->right_->location();
16383- this->right_ = Expression::make_integer(&val, right_type,
16384- rloc);
16385+ if (mpz_sgn(val) < 0)
16386+ {
16387+ this->report_error(_("negative shift count"));
16388+ mpz_set_ui(val, 0);
16389+ Location rloc = this->right_->location();
16390+ this->right_ = Expression::make_integer(&val, right_type,
16391+ rloc);
16392+ }
16393+ mpz_clear(val);
16394 }
16395 }
16396- mpz_clear(val);
16397 }
16398 }
16399 }
16400@@ -6637,6 +5655,7 @@
16401 enum tree_code code;
16402 bool use_left_type = true;
16403 bool is_shift_op = false;
16404+ bool is_idiv_op = false;
16405 switch (this->op_)
16406 {
16407 case OPERATOR_EQEQ:
16408@@ -6679,11 +5698,15 @@
16409 if (t->float_type() != NULL || t->complex_type() != NULL)
16410 code = RDIV_EXPR;
16411 else
16412- code = TRUNC_DIV_EXPR;
16413+ {
16414+ code = TRUNC_DIV_EXPR;
16415+ is_idiv_op = true;
16416+ }
16417 }
16418 break;
16419 case OPERATOR_MOD:
16420 code = TRUNC_MOD_EXPR;
16421+ is_idiv_op = true;
16422 break;
16423 case OPERATOR_LSHIFT:
16424 code = LSHIFT_EXPR;
16425@@ -6704,6 +5727,7 @@
16426 go_unreachable();
16427 }
16428
16429+ location_t gccloc = this->location().gcc_location();
16430 tree type = use_left_type ? TREE_TYPE(left) : TREE_TYPE(right);
16431
16432 if (this->left_->type()->is_string_type())
16433@@ -6731,28 +5755,27 @@
16434 }
16435
16436 tree eval_saved = NULL_TREE;
16437- if (is_shift_op)
16438+ if (is_shift_op
16439+ || (is_idiv_op && (go_check_divide_zero || go_check_divide_overflow)))
16440 {
16441 // Make sure the values are evaluated.
16442- if (!DECL_P(left) && TREE_SIDE_EFFECTS(left))
16443+ if (!DECL_P(left))
16444 {
16445 left = save_expr(left);
16446 eval_saved = left;
16447 }
16448- if (!DECL_P(right) && TREE_SIDE_EFFECTS(right))
16449+ if (!DECL_P(right))
16450 {
16451 right = save_expr(right);
16452 if (eval_saved == NULL_TREE)
16453 eval_saved = right;
16454 else
16455- eval_saved = fold_build2_loc(this->location().gcc_location(),
16456- COMPOUND_EXPR,
16457+ eval_saved = fold_build2_loc(gccloc, COMPOUND_EXPR,
16458 void_type_node, eval_saved, right);
16459 }
16460 }
16461
16462- tree ret = fold_build2_loc(this->location().gcc_location(),
16463- code,
16464+ tree ret = fold_build2_loc(gccloc, code,
16465 compute_type != NULL_TREE ? compute_type : type,
16466 left, right);
16467
16468@@ -6770,41 +5793,118 @@
16469 tree compare = fold_build2(LT_EXPR, boolean_type_node, right,
16470 build_int_cst_type(TREE_TYPE(right), bits));
16471
16472- tree overflow_result = fold_convert_loc(this->location().gcc_location(),
16473- TREE_TYPE(left),
16474+ tree overflow_result = fold_convert_loc(gccloc, TREE_TYPE(left),
16475 integer_zero_node);
16476 if (this->op_ == OPERATOR_RSHIFT
16477 && !this->left_->type()->integer_type()->is_unsigned())
16478 {
16479 tree neg =
16480- fold_build2_loc(this->location().gcc_location(), LT_EXPR,
16481- boolean_type_node, left,
16482- fold_convert_loc(this->location().gcc_location(),
16483- TREE_TYPE(left),
16484+ fold_build2_loc(gccloc, LT_EXPR, boolean_type_node,
16485+ left,
16486+ fold_convert_loc(gccloc, TREE_TYPE(left),
16487 integer_zero_node));
16488 tree neg_one =
16489- fold_build2_loc(this->location().gcc_location(),
16490- MINUS_EXPR, TREE_TYPE(left),
16491- fold_convert_loc(this->location().gcc_location(),
16492- TREE_TYPE(left),
16493+ fold_build2_loc(gccloc, MINUS_EXPR, TREE_TYPE(left),
16494+ fold_convert_loc(gccloc, TREE_TYPE(left),
16495 integer_zero_node),
16496- fold_convert_loc(this->location().gcc_location(),
16497- TREE_TYPE(left),
16498+ fold_convert_loc(gccloc, TREE_TYPE(left),
16499 integer_one_node));
16500 overflow_result =
16501- fold_build3_loc(this->location().gcc_location(), COND_EXPR,
16502- TREE_TYPE(left), neg, neg_one,
16503- overflow_result);
16504+ fold_build3_loc(gccloc, COND_EXPR, TREE_TYPE(left),
16505+ neg, neg_one, overflow_result);
16506 }
16507
16508- ret = fold_build3_loc(this->location().gcc_location(), COND_EXPR,
16509- TREE_TYPE(left), compare, ret, overflow_result);
16510+ ret = fold_build3_loc(gccloc, COND_EXPR, TREE_TYPE(left),
16511+ compare, ret, overflow_result);
16512
16513 if (eval_saved != NULL_TREE)
16514- ret = fold_build2_loc(this->location().gcc_location(), COMPOUND_EXPR,
16515- TREE_TYPE(ret), eval_saved, ret);
16516+ ret = fold_build2_loc(gccloc, COMPOUND_EXPR, TREE_TYPE(ret),
16517+ eval_saved, ret);
16518 }
16519
16520+ // Add checks for division by zero and division overflow as needed.
16521+ if (is_idiv_op)
16522+ {
16523+ if (go_check_divide_zero)
16524+ {
16525+ // right == 0
16526+ tree check = fold_build2_loc(gccloc, EQ_EXPR, boolean_type_node,
16527+ right,
16528+ fold_convert_loc(gccloc,
16529+ TREE_TYPE(right),
16530+ integer_zero_node));
16531+
16532+ // __go_runtime_error(RUNTIME_ERROR_DIVISION_BY_ZERO), 0
16533+ int errcode = RUNTIME_ERROR_DIVISION_BY_ZERO;
16534+ tree panic = fold_build2_loc(gccloc, COMPOUND_EXPR, TREE_TYPE(ret),
16535+ Gogo::runtime_error(errcode,
16536+ this->location()),
16537+ fold_convert_loc(gccloc, TREE_TYPE(ret),
16538+ integer_zero_node));
16539+
16540+ // right == 0 ? (__go_runtime_error(...), 0) : ret
16541+ ret = fold_build3_loc(gccloc, COND_EXPR, TREE_TYPE(ret),
16542+ check, panic, ret);
16543+ }
16544+
16545+ if (go_check_divide_overflow)
16546+ {
16547+ // right == -1
16548+ // FIXME: It would be nice to say that this test is expected
16549+ // to return false.
16550+ tree m1 = integer_minus_one_node;
16551+ tree check = fold_build2_loc(gccloc, EQ_EXPR, boolean_type_node,
16552+ right,
16553+ fold_convert_loc(gccloc,
16554+ TREE_TYPE(right),
16555+ m1));
16556+
16557+ tree overflow;
16558+ if (TYPE_UNSIGNED(TREE_TYPE(ret)))
16559+ {
16560+ // An unsigned -1 is the largest possible number, so
16561+ // dividing is always 1 or 0.
16562+ tree cmp = fold_build2_loc(gccloc, EQ_EXPR, boolean_type_node,
16563+ left, right);
16564+ if (this->op_ == OPERATOR_DIV)
16565+ overflow = fold_build3_loc(gccloc, COND_EXPR, TREE_TYPE(ret),
16566+ cmp,
16567+ fold_convert_loc(gccloc,
16568+ TREE_TYPE(ret),
16569+ integer_one_node),
16570+ fold_convert_loc(gccloc,
16571+ TREE_TYPE(ret),
16572+ integer_zero_node));
16573+ else
16574+ overflow = fold_build3_loc(gccloc, COND_EXPR, TREE_TYPE(ret),
16575+ cmp,
16576+ fold_convert_loc(gccloc,
16577+ TREE_TYPE(ret),
16578+ integer_zero_node),
16579+ left);
16580+ }
16581+ else
16582+ {
16583+ // Computing left / -1 is the same as computing - left,
16584+ // which does not overflow since Go sets -fwrapv.
16585+ if (this->op_ == OPERATOR_DIV)
16586+ overflow = fold_build1_loc(gccloc, NEGATE_EXPR, TREE_TYPE(left),
16587+ left);
16588+ else
16589+ overflow = integer_zero_node;
16590+ }
16591+ overflow = fold_convert_loc(gccloc, TREE_TYPE(ret), overflow);
16592+
16593+ // right == -1 ? - left : ret
16594+ ret = fold_build3_loc(gccloc, COND_EXPR, TREE_TYPE(ret),
16595+ check, overflow, ret);
16596+ }
16597+
16598+ if (eval_saved != NULL_TREE)
16599+ ret = fold_build2_loc(gccloc, COMPOUND_EXPR, TREE_TYPE(ret),
16600+ eval_saved, ret);
16601+ }
16602+
16603 return ret;
16604 }
16605
16606@@ -7390,14 +6490,8 @@
16607 do_is_constant() const;
16608
16609 bool
16610- do_integer_constant_value(bool, mpz_t, Type**) const;
16611+ do_numeric_constant_value(Numeric_constant*) const;
16612
16613- bool
16614- do_float_constant_value(mpfr_t, Type**) const;
16615-
16616- bool
16617- do_complex_constant_value(mpfr_t, mpfr_t, Type**) const;
16618-
16619 void
16620 do_discarding_value();
16621
16622@@ -7619,7 +6713,7 @@
16623 if (this->code_ == BUILTIN_LEN || this->code_ == BUILTIN_CAP)
16624 {
16625 Expression* arg = this->one_arg();
16626- if (!arg->is_constant())
16627+ if (arg != NULL && !arg->is_constant())
16628 {
16629 Find_call_expression find_call;
16630 Expression::traverse(&arg, &find_call);
16631@@ -7628,37 +6722,9 @@
16632 }
16633 }
16634
16635- mpz_t ival;
16636- mpz_init(ival);
16637- Type* type;
16638- if (this->integer_constant_value(true, ival, &type))
16639- {
16640- Expression* ret = Expression::make_integer(&ival, type, loc);
16641- mpz_clear(ival);
16642- return ret;
16643- }
16644- mpz_clear(ival);
16645-
16646- mpfr_t rval;
16647- mpfr_init(rval);
16648- if (this->float_constant_value(rval, &type))
16649- {
16650- Expression* ret = Expression::make_float(&rval, type, loc);
16651- mpfr_clear(rval);
16652- return ret;
16653- }
16654-
16655- mpfr_t imag;
16656- mpfr_init(imag);
16657- if (this->complex_constant_value(rval, imag, &type))
16658- {
16659- Expression* ret = Expression::make_complex(&rval, &imag, type, loc);
16660- mpfr_clear(rval);
16661- mpfr_clear(imag);
16662- return ret;
16663- }
16664- mpfr_clear(rval);
16665- mpfr_clear(imag);
16666+ Numeric_constant nc;
16667+ if (this->numeric_constant_value(&nc))
16668+ return nc.expression(loc);
16669 }
16670
16671 switch (this->code_)
16672@@ -7906,43 +6972,14 @@
16673 return true;
16674
16675 // Check for a floating point constant with integer value.
16676- mpfr_t fval;
16677- mpfr_init(fval);
16678-
16679- Type* dummy;
16680- if (e->float_constant_value(fval, &dummy) && mpfr_integer_p(fval))
16681+ Numeric_constant nc;
16682+ mpz_t ival;
16683+ if (e->numeric_constant_value(&nc) && nc.to_int(&ival))
16684 {
16685- mpz_t ival;
16686- mpz_init(ival);
16687-
16688- bool ok = false;
16689-
16690- mpfr_clear_overflow();
16691- mpfr_clear_erangeflag();
16692- mpfr_get_z(ival, fval, GMP_RNDN);
16693- if (!mpfr_overflow_p()
16694- && !mpfr_erangeflag_p()
16695- && mpz_sgn(ival) >= 0)
16696- {
16697- Named_type* ntype = Type::lookup_integer_type("int");
16698- Integer_type* inttype = ntype->integer_type();
16699- mpz_t max;
16700- mpz_init_set_ui(max, 1);
16701- mpz_mul_2exp(max, max, inttype->bits() - 1);
16702- ok = mpz_cmp(ival, max) < 0;
16703- mpz_clear(max);
16704- }
16705 mpz_clear(ival);
16706-
16707- if (ok)
16708- {
16709- mpfr_clear(fval);
16710- return true;
16711- }
16712+ return true;
16713 }
16714
16715- mpfr_clear(fval);
16716-
16717 return false;
16718 }
16719
16720@@ -7996,7 +7033,7 @@
16721 Builtin_call_expression::one_arg() const
16722 {
16723 const Expression_list* args = this->args();
16724- if (args->size() != 1)
16725+ if (args == NULL || args->size() != 1)
16726 return NULL;
16727 return args->front();
16728 }
16729@@ -8073,12 +7110,10 @@
16730 return false;
16731 }
16732
16733-// Return an integer constant value if possible.
16734+// Return a numeric constant if possible.
16735
16736 bool
16737-Builtin_call_expression::do_integer_constant_value(bool iota_is_constant,
16738- mpz_t val,
16739- Type** ptype) const
16740+Builtin_call_expression::do_numeric_constant_value(Numeric_constant* nc) const
16741 {
16742 if (this->code_ == BUILTIN_LEN
16743 || this->code_ == BUILTIN_CAP)
16744@@ -8093,8 +7128,8 @@
16745 std::string sval;
16746 if (arg->string_constant_value(&sval))
16747 {
16748- mpz_set_ui(val, sval.length());
16749- *ptype = Type::lookup_integer_type("int");
16750+ nc->set_unsigned_long(Type::lookup_integer_type("int"),
16751+ sval.length());
16752 return true;
16753 }
16754 }
16755@@ -8111,13 +7146,15 @@
16756 return false;
16757 Expression* e = arg_type->array_type()->length();
16758 this->seen_ = true;
16759- bool r = e->integer_constant_value(iota_is_constant, val, ptype);
16760+ bool r = e->numeric_constant_value(nc);
16761 this->seen_ = false;
16762 if (r)
16763 {
16764- *ptype = Type::lookup_integer_type("int");
16765- return true;
16766+ if (!nc->set_type(Type::lookup_integer_type("int"), false,
16767+ this->location()))
16768+ r = false;
16769 }
16770+ return r;
16771 }
16772 }
16773 else if (this->code_ == BUILTIN_SIZEOF
16774@@ -8158,8 +7195,8 @@
16775 else
16776 go_unreachable();
16777
16778- mpz_set_ui(val, ret);
16779- *ptype = NULL;
16780+ nc->set_unsigned_long(Type::lookup_integer_type("uintptr"),
16781+ static_cast<unsigned long>(ret));
16782 return true;
16783 }
16784 else if (this->code_ == BUILTIN_OFFSETOF)
16785@@ -8181,88 +7218,73 @@
16786 farg->field_index(),
16787 &offset))
16788 return false;
16789- mpz_set_ui(val, offset);
16790+ nc->set_unsigned_long(Type::lookup_integer_type("uintptr"),
16791+ static_cast<unsigned long>(offset));
16792 return true;
16793 }
16794- return false;
16795-}
16796-
16797-// Return a floating point constant value if possible.
16798-
16799-bool
16800-Builtin_call_expression::do_float_constant_value(mpfr_t val,
16801- Type** ptype) const
16802-{
16803- if (this->code_ == BUILTIN_REAL || this->code_ == BUILTIN_IMAG)
16804+ else if (this->code_ == BUILTIN_REAL || this->code_ == BUILTIN_IMAG)
16805 {
16806 Expression* arg = this->one_arg();
16807 if (arg == NULL)
16808 return false;
16809
16810+ Numeric_constant argnc;
16811+ if (!arg->numeric_constant_value(&argnc))
16812+ return false;
16813+
16814 mpfr_t real;
16815 mpfr_t imag;
16816- mpfr_init(real);
16817- mpfr_init(imag);
16818+ if (!argnc.to_complex(&real, &imag))
16819+ return false;
16820
16821- bool ret = false;
16822- Type* type;
16823- if (arg->complex_constant_value(real, imag, &type))
16824- {
16825- if (this->code_ == BUILTIN_REAL)
16826- mpfr_set(val, real, GMP_RNDN);
16827- else
16828- mpfr_set(val, imag, GMP_RNDN);
16829- *ptype = Builtin_call_expression::real_imag_type(type);
16830- ret = true;
16831- }
16832-
16833- mpfr_clear(real);
16834- mpfr_clear(imag);
16835- return ret;
16836+ Type* type = Builtin_call_expression::real_imag_type(argnc.type());
16837+ if (this->code_ == BUILTIN_REAL)
16838+ nc->set_float(type, real);
16839+ else
16840+ nc->set_float(type, imag);
16841+ return true;
16842 }
16843-
16844- return false;
16845-}
16846-
16847-// Return a complex constant value if possible.
16848-
16849-bool
16850-Builtin_call_expression::do_complex_constant_value(mpfr_t real, mpfr_t imag,
16851- Type** ptype) const
16852-{
16853- if (this->code_ == BUILTIN_COMPLEX)
16854+ else if (this->code_ == BUILTIN_COMPLEX)
16855 {
16856 const Expression_list* args = this->args();
16857 if (args == NULL || args->size() != 2)
16858 return false;
16859
16860+ Numeric_constant rnc;
16861+ if (!args->front()->numeric_constant_value(&rnc))
16862+ return false;
16863+ Numeric_constant inc;
16864+ if (!args->back()->numeric_constant_value(&inc))
16865+ return false;
16866+
16867+ if (rnc.type() != NULL
16868+ && !rnc.type()->is_abstract()
16869+ && inc.type() != NULL
16870+ && !inc.type()->is_abstract()
16871+ && !Type::are_identical(rnc.type(), inc.type(), false, NULL))
16872+ return false;
16873+
16874 mpfr_t r;
16875- mpfr_init(r);
16876- Type* rtype;
16877- if (!args->front()->float_constant_value(r, &rtype))
16878+ if (!rnc.to_float(&r))
16879+ return false;
16880+ mpfr_t i;
16881+ if (!inc.to_float(&i))
16882 {
16883 mpfr_clear(r);
16884 return false;
16885 }
16886
16887- mpfr_t i;
16888- mpfr_init(i);
16889+ Type* arg_type = rnc.type();
16890+ if (arg_type == NULL || arg_type->is_abstract())
16891+ arg_type = inc.type();
16892
16893- bool ret = false;
16894- Type* itype;
16895- if (args->back()->float_constant_value(i, &itype)
16896- && Type::are_identical(rtype, itype, false, NULL))
16897- {
16898- mpfr_set(real, r, GMP_RNDN);
16899- mpfr_set(imag, i, GMP_RNDN);
16900- *ptype = Builtin_call_expression::complex_type(rtype);
16901- ret = true;
16902- }
16903+ Type* type = Builtin_call_expression::complex_type(arg_type);
16904+ nc->set_complex(type, r, i);
16905
16906 mpfr_clear(r);
16907 mpfr_clear(i);
16908
16909- return ret;
16910+ return true;
16911 }
16912
16913 return false;
16914@@ -8330,10 +7352,12 @@
16915 case BUILTIN_CAP:
16916 case BUILTIN_COPY:
16917 case BUILTIN_LEN:
16918+ return Type::lookup_integer_type("int");
16919+
16920 case BUILTIN_ALIGNOF:
16921 case BUILTIN_OFFSETOF:
16922 case BUILTIN_SIZEOF:
16923- return Type::lookup_integer_type("int");
16924+ return Type::lookup_integer_type("uintptr");
16925
16926 case BUILTIN_CLOSE:
16927 case BUILTIN_DELETE:
16928@@ -8461,15 +7485,19 @@
16929 {
16930 if (atype->integer_type() != NULL)
16931 {
16932- mpz_t val;
16933- mpz_init(val);
16934- Type* dummy;
16935- if (this->integer_constant_value(true, val, &dummy)
16936- && mpz_sgn(val) >= 0)
16937- want_type = Type::lookup_integer_type("uint64");
16938- else
16939+ Numeric_constant nc;
16940+ if (this->numeric_constant_value(&nc))
16941+ {
16942+ mpz_t val;
16943+ if (nc.to_int(&val))
16944+ {
16945+ if (mpz_sgn(val) >= 0)
16946+ want_type = Type::lookup_integer_type("uint64");
16947+ mpz_clear(val);
16948+ }
16949+ }
16950+ if (want_type == NULL)
16951 want_type = Type::lookup_integer_type("int64");
16952- mpz_clear(val);
16953 }
16954 else if (atype->float_type() != NULL)
16955 want_type = Type::lookup_float_type("float64");
16956@@ -8521,6 +7549,8 @@
16957 void
16958 Builtin_call_expression::do_check_types(Gogo*)
16959 {
16960+ if (this->is_error_expression())
16961+ return;
16962 switch (this->code_)
16963 {
16964 case BUILTIN_INVALID:
16965@@ -9148,20 +8178,17 @@
16966 case BUILTIN_OFFSETOF:
16967 case BUILTIN_ALIGNOF:
16968 {
16969- mpz_t val;
16970- mpz_init(val);
16971- Type* dummy;
16972- bool b = this->integer_constant_value(true, val, &dummy);
16973- if (!b)
16974+ Numeric_constant nc;
16975+ unsigned long val;
16976+ if (!this->numeric_constant_value(&nc)
16977+ || nc.to_unsigned_long(&val) != Numeric_constant::NC_UL_VALID)
16978 {
16979 go_assert(saw_errors());
16980 return error_mark_node;
16981 }
16982- Type* int_type = Type::lookup_integer_type("int");
16983- tree type = type_to_tree(int_type->get_backend(gogo));
16984- tree ret = Expression::integer_constant_tree(val, type);
16985- mpz_clear(val);
16986- return ret;
16987+ Type* uintptr_type = Type::lookup_integer_type("uintptr");
16988+ tree type = type_to_tree(uintptr_type->get_backend(gogo));
16989+ return build_int_cst(type, val);
16990 }
16991
16992 case BUILTIN_COPY:
16993@@ -9376,51 +8403,38 @@
16994 void
16995 Builtin_call_expression::do_export(Export* exp) const
16996 {
16997- bool ok = false;
16998+ Numeric_constant nc;
16999+ if (!this->numeric_constant_value(&nc))
17000+ {
17001+ error_at(this->location(), "value is not constant");
17002+ return;
17003+ }
17004
17005- mpz_t val;
17006- mpz_init(val);
17007- Type* dummy;
17008- if (this->integer_constant_value(true, val, &dummy))
17009+ if (nc.is_int())
17010 {
17011+ mpz_t val;
17012+ nc.get_int(&val);
17013 Integer_expression::export_integer(exp, val);
17014- ok = true;
17015+ mpz_clear(val);
17016 }
17017- mpz_clear(val);
17018-
17019- if (!ok)
17020+ else if (nc.is_float())
17021 {
17022 mpfr_t fval;
17023- mpfr_init(fval);
17024- if (this->float_constant_value(fval, &dummy))
17025- {
17026- Float_expression::export_float(exp, fval);
17027- ok = true;
17028- }
17029+ nc.get_float(&fval);
17030+ Float_expression::export_float(exp, fval);
17031 mpfr_clear(fval);
17032 }
17033-
17034- if (!ok)
17035+ else if (nc.is_complex())
17036 {
17037 mpfr_t real;
17038 mpfr_t imag;
17039- mpfr_init(real);
17040- mpfr_init(imag);
17041- if (this->complex_constant_value(real, imag, &dummy))
17042- {
17043- Complex_expression::export_complex(exp, real, imag);
17044- ok = true;
17045- }
17046+ Complex_expression::export_complex(exp, real, imag);
17047 mpfr_clear(real);
17048 mpfr_clear(imag);
17049 }
17050+ else
17051+ go_unreachable();
17052
17053- if (!ok)
17054- {
17055- error_at(this->location(), "value is not constant");
17056- return;
17057- }
17058-
17059 // A trailing space lets us reliably identify the end of the number.
17060 exp->write_c_string(" ");
17061 }
17062@@ -9635,7 +8649,14 @@
17063 new_args->push_back(*pa);
17064 else if (this->is_varargs_)
17065 {
17066- this->report_error(_("too many arguments"));
17067+ if ((*pa)->type()->is_slice_type())
17068+ this->report_error(_("too many arguments"));
17069+ else
17070+ {
17071+ error_at(this->location(),
17072+ _("invalid use of %<...%> with non-slice"));
17073+ this->set_is_error();
17074+ }
17075 return;
17076 }
17077 else
17078@@ -9880,6 +8901,9 @@
17079 void
17080 Call_expression::do_check_types(Gogo*)
17081 {
17082+ if (this->classification() == EXPRESSION_ERROR)
17083+ return;
17084+
17085 Function_type* fntype = this->get_function_type();
17086 if (fntype == NULL)
17087 {
17088@@ -9915,7 +8939,17 @@
17089 }
17090
17091 // Note that varargs was handled by the lower_varargs() method, so
17092- // we don't have to worry about it here.
17093+ // we don't have to worry about it here unless something is wrong.
17094+ if (this->is_varargs_ && !this->varargs_are_lowered_)
17095+ {
17096+ if (!fntype->is_varargs())
17097+ {
17098+ error_at(this->location(),
17099+ _("invalid use of %<...%> calling non-variadic function"));
17100+ this->set_is_error();
17101+ return;
17102+ }
17103+ }
17104
17105 const Typed_identifier_list* parameters = fntype->parameters();
17106 if (this->args_ == NULL)
17107@@ -10197,7 +9231,7 @@
17108 ref->set_is_lvalue();
17109 tree temp_tree = ref->get_tree(context);
17110 if (temp_tree == error_mark_node)
17111- continue;
17112+ return error_mark_node;
17113
17114 tree val_tree = build3_loc(loc.gcc_location(), COMPONENT_REF,
17115 TREE_TYPE(field), call_tree, field, NULL_TREE);
17116@@ -10660,16 +9694,14 @@
17117 unsigned int int_bits =
17118 Type::lookup_integer_type("int")->integer_type()->bits();
17119
17120- Type* dummy;
17121+ Numeric_constant lvalnc;
17122 mpz_t lval;
17123- mpz_init(lval);
17124 bool lval_valid = (array_type->length() != NULL
17125- && array_type->length()->integer_constant_value(true,
17126- lval,
17127- &dummy));
17128+ && array_type->length()->numeric_constant_value(&lvalnc)
17129+ && lvalnc.to_int(&lval));
17130+ Numeric_constant inc;
17131 mpz_t ival;
17132- mpz_init(ival);
17133- if (this->start_->integer_constant_value(true, ival, &dummy))
17134+ if (this->start_->numeric_constant_value(&inc) && inc.to_int(&ival))
17135 {
17136 if (mpz_sgn(ival) < 0
17137 || mpz_sizeinbase(ival, 2) >= int_bits
17138@@ -10681,22 +9713,26 @@
17139 error_at(this->start_->location(), "array index out of bounds");
17140 this->set_is_error();
17141 }
17142+ mpz_clear(ival);
17143 }
17144 if (this->end_ != NULL && !this->end_->is_nil_expression())
17145 {
17146- if (this->end_->integer_constant_value(true, ival, &dummy))
17147+ Numeric_constant enc;
17148+ mpz_t eval;
17149+ if (this->end_->numeric_constant_value(&enc) && enc.to_int(&eval))
17150 {
17151- if (mpz_sgn(ival) < 0
17152- || mpz_sizeinbase(ival, 2) >= int_bits
17153- || (lval_valid && mpz_cmp(ival, lval) > 0))
17154+ if (mpz_sgn(eval) < 0
17155+ || mpz_sizeinbase(eval, 2) >= int_bits
17156+ || (lval_valid && mpz_cmp(eval, lval) > 0))
17157 {
17158 error_at(this->end_->location(), "array index out of bounds");
17159 this->set_is_error();
17160 }
17161+ mpz_clear(eval);
17162 }
17163 }
17164- mpz_clear(ival);
17165- mpz_clear(lval);
17166+ if (lval_valid)
17167+ mpz_clear(lval);
17168
17169 // A slice of an array requires an addressable array. A slice of a
17170 // slice is always possible.
17171@@ -11071,10 +10107,9 @@
17172 std::string sval;
17173 bool sval_valid = this->string_->string_constant_value(&sval);
17174
17175+ Numeric_constant inc;
17176 mpz_t ival;
17177- mpz_init(ival);
17178- Type* dummy;
17179- if (this->start_->integer_constant_value(true, ival, &dummy))
17180+ if (this->start_->numeric_constant_value(&inc) && inc.to_int(&ival))
17181 {
17182 if (mpz_sgn(ival) < 0
17183 || (sval_valid && mpz_cmp_ui(ival, sval.length()) >= 0))
17184@@ -11082,20 +10117,23 @@
17185 error_at(this->start_->location(), "string index out of bounds");
17186 this->set_is_error();
17187 }
17188+ mpz_clear(ival);
17189 }
17190 if (this->end_ != NULL && !this->end_->is_nil_expression())
17191 {
17192- if (this->end_->integer_constant_value(true, ival, &dummy))
17193+ Numeric_constant enc;
17194+ mpz_t eval;
17195+ if (this->end_->numeric_constant_value(&enc) && enc.to_int(&eval))
17196 {
17197- if (mpz_sgn(ival) < 0
17198- || (sval_valid && mpz_cmp_ui(ival, sval.length()) > 0))
17199+ if (mpz_sgn(eval) < 0
17200+ || (sval_valid && mpz_cmp_ui(eval, sval.length()) > 0))
17201 {
17202 error_at(this->end_->location(), "string index out of bounds");
17203 this->set_is_error();
17204 }
17205+ mpz_clear(eval);
17206 }
17207 }
17208- mpz_clear(ival);
17209 }
17210
17211 // Get a tree for a string index.
17212@@ -11667,7 +10705,8 @@
17213 tree
17214 Interface_field_reference_expression::do_get_tree(Translate_context*)
17215 {
17216- go_unreachable();
17217+ error_at(this->location(), "reference to method other than calling it");
17218+ return error_mark_node;
17219 }
17220
17221 // Dump ast representation for an interface field reference.
17222@@ -12052,9 +11091,15 @@
17223 Struct_construction_expression(Type* type, Expression_list* vals,
17224 Location location)
17225 : Expression(EXPRESSION_STRUCT_CONSTRUCTION, location),
17226- type_(type), vals_(vals)
17227+ type_(type), vals_(vals), traverse_order_(NULL)
17228 { }
17229
17230+ // Set the traversal order, used to ensure that we implement the
17231+ // order of evaluation rules. Takes ownership of the argument.
17232+ void
17233+ set_traverse_order(std::vector<int>* traverse_order)
17234+ { this->traverse_order_ = traverse_order; }
17235+
17236 // Return whether this is a constant initializer.
17237 bool
17238 is_constant_struct() const;
17239@@ -12076,8 +11121,12 @@
17240 Expression*
17241 do_copy()
17242 {
17243- return new Struct_construction_expression(this->type_, this->vals_->copy(),
17244- this->location());
17245+ Struct_construction_expression* ret =
17246+ new Struct_construction_expression(this->type_, this->vals_->copy(),
17247+ this->location());
17248+ if (this->traverse_order_ != NULL)
17249+ ret->set_traverse_order(this->traverse_order_);
17250+ return ret;
17251 }
17252
17253 tree
17254@@ -12095,6 +11144,9 @@
17255 // The list of values, in order of the fields in the struct. A NULL
17256 // entry means that the field should be zero-initialized.
17257 Expression_list* vals_;
17258+ // If not NULL, the order in which to traverse vals_. This is used
17259+ // so that we implement the order of evaluation rules correctly.
17260+ std::vector<int>* traverse_order_;
17261 };
17262
17263 // Traversal.
17264@@ -12102,9 +11154,26 @@
17265 int
17266 Struct_construction_expression::do_traverse(Traverse* traverse)
17267 {
17268- if (this->vals_ != NULL
17269- && this->vals_->traverse(traverse) == TRAVERSE_EXIT)
17270- return TRAVERSE_EXIT;
17271+ if (this->vals_ != NULL)
17272+ {
17273+ if (this->traverse_order_ == NULL)
17274+ {
17275+ if (this->vals_->traverse(traverse) == TRAVERSE_EXIT)
17276+ return TRAVERSE_EXIT;
17277+ }
17278+ else
17279+ {
17280+ for (std::vector<int>::const_iterator p =
17281+ this->traverse_order_->begin();
17282+ p != this->traverse_order_->end();
17283+ ++p)
17284+ {
17285+ if (Expression::traverse(&this->vals_->at(*p), traverse)
17286+ == TRAVERSE_EXIT)
17287+ return TRAVERSE_EXIT;
17288+ }
17289+ }
17290+ }
17291 if (Type::traverse(this->type_, traverse) == TRAVERSE_EXIT)
17292 return TRAVERSE_EXIT;
17293 return TRAVERSE_CONTINUE;
17294@@ -12331,11 +11400,12 @@
17295 {
17296 protected:
17297 Array_construction_expression(Expression_classification classification,
17298- Type* type, Expression_list* vals,
17299- Location location)
17300+ Type* type,
17301+ const std::vector<unsigned long>* indexes,
17302+ Expression_list* vals, Location location)
17303 : Expression(classification, location),
17304- type_(type), vals_(vals)
17305- { }
17306+ type_(type), indexes_(indexes), vals_(vals)
17307+ { go_assert(indexes == NULL || indexes->size() == vals->size()); }
17308
17309 public:
17310 // Return whether this is a constant initializer.
17311@@ -12364,6 +11434,11 @@
17312 void
17313 do_export(Export*) const;
17314
17315+ // The indexes.
17316+ const std::vector<unsigned long>*
17317+ indexes()
17318+ { return this->indexes_; }
17319+
17320 // The list of values.
17321 Expression_list*
17322 vals()
17323@@ -12379,7 +11454,10 @@
17324 private:
17325 // The type of the array to construct.
17326 Type* type_;
17327- // The list of values.
17328+ // The list of indexes into the array, one for each value. This may
17329+ // be NULL, in which case the indexes start at zero and increment.
17330+ const std::vector<unsigned long>* indexes_;
17331+ // The list of values. This may be NULL if there are no values.
17332 Expression_list* vals_;
17333 };
17334
17335@@ -12462,20 +11540,6 @@
17336 this->set_is_error();
17337 }
17338 }
17339-
17340- Expression* length = at->length();
17341- if (length != NULL && !length->is_error_expression())
17342- {
17343- mpz_t val;
17344- mpz_init(val);
17345- Type* type;
17346- if (at->length()->integer_constant_value(true, val, &type))
17347- {
17348- if (this->vals_->size() > mpz_get_ui(val))
17349- this->report_error(_("too many elements in composite literal"));
17350- }
17351- mpz_clear(val);
17352- }
17353 }
17354
17355 // Get a constructor tree for the array values.
17356@@ -12493,12 +11557,22 @@
17357 if (this->vals_ != NULL)
17358 {
17359 size_t i = 0;
17360+ std::vector<unsigned long>::const_iterator pi;
17361+ if (this->indexes_ != NULL)
17362+ pi = this->indexes_->begin();
17363 for (Expression_list::const_iterator pv = this->vals_->begin();
17364 pv != this->vals_->end();
17365 ++pv, ++i)
17366 {
17367+ if (this->indexes_ != NULL)
17368+ go_assert(pi != this->indexes_->end());
17369 constructor_elt* elt = VEC_quick_push(constructor_elt, values, NULL);
17370- elt->index = size_int(i);
17371+
17372+ if (this->indexes_ == NULL)
17373+ elt->index = size_int(i);
17374+ else
17375+ elt->index = size_int(*pi);
17376+
17377 if (*pv == NULL)
17378 {
17379 Gogo* gogo = context->gogo();
17380@@ -12519,7 +11593,11 @@
17381 return error_mark_node;
17382 if (!TREE_CONSTANT(elt->value))
17383 is_constant = false;
17384+ if (this->indexes_ != NULL)
17385+ ++pi;
17386 }
17387+ if (this->indexes_ != NULL)
17388+ go_assert(pi == this->indexes_->end());
17389 }
17390
17391 tree ret = build_constructor(type_tree, values);
17392@@ -12537,13 +11615,28 @@
17393 exp->write_type(this->type_);
17394 if (this->vals_ != NULL)
17395 {
17396+ std::vector<unsigned long>::const_iterator pi;
17397+ if (this->indexes_ != NULL)
17398+ pi = this->indexes_->begin();
17399 for (Expression_list::const_iterator pv = this->vals_->begin();
17400 pv != this->vals_->end();
17401 ++pv)
17402 {
17403 exp->write_c_string(", ");
17404+
17405+ if (this->indexes_ != NULL)
17406+ {
17407+ char buf[100];
17408+ snprintf(buf, sizeof buf, "%lu", *pi);
17409+ exp->write_c_string(buf);
17410+ exp->write_c_string(":");
17411+ }
17412+
17413 if (*pv != NULL)
17414 (*pv)->export_expression(exp);
17415+
17416+ if (this->indexes_ != NULL)
17417+ ++pi;
17418 }
17419 }
17420 exp->write_c_string(")");
17421@@ -12555,8 +11648,7 @@
17422 Array_construction_expression::do_dump_expression(
17423 Ast_dump_context* ast_dump_context) const
17424 {
17425- Expression* length = this->type_->array_type() != NULL ?
17426- this->type_->array_type()->length() : NULL;
17427+ Expression* length = this->type_->array_type()->length();
17428
17429 ast_dump_context->ostream() << "[" ;
17430 if (length != NULL)
17431@@ -12566,7 +11658,22 @@
17432 ast_dump_context->ostream() << "]" ;
17433 ast_dump_context->dump_type(this->type_);
17434 ast_dump_context->ostream() << "{" ;
17435- ast_dump_context->dump_expression_list(this->vals_);
17436+ if (this->indexes_ == NULL)
17437+ ast_dump_context->dump_expression_list(this->vals_);
17438+ else
17439+ {
17440+ Expression_list::const_iterator pv = this->vals_->begin();
17441+ for (std::vector<unsigned long>::const_iterator pi =
17442+ this->indexes_->begin();
17443+ pi != this->indexes_->end();
17444+ ++pi, ++pv)
17445+ {
17446+ if (pi != this->indexes_->begin())
17447+ ast_dump_context->ostream() << ", ";
17448+ ast_dump_context->ostream() << *pi << ':';
17449+ ast_dump_context->dump_expression(*pv);
17450+ }
17451+ }
17452 ast_dump_context->ostream() << "}" ;
17453
17454 }
17455@@ -12577,20 +11684,19 @@
17456 public Array_construction_expression
17457 {
17458 public:
17459- Fixed_array_construction_expression(Type* type, Expression_list* vals,
17460- Location location)
17461+ Fixed_array_construction_expression(Type* type,
17462+ const std::vector<unsigned long>* indexes,
17463+ Expression_list* vals, Location location)
17464 : Array_construction_expression(EXPRESSION_FIXED_ARRAY_CONSTRUCTION,
17465- type, vals, location)
17466- {
17467- go_assert(type->array_type() != NULL
17468- && type->array_type()->length() != NULL);
17469- }
17470+ type, indexes, vals, location)
17471+ { go_assert(type->array_type() != NULL && !type->is_slice_type()); }
17472
17473 protected:
17474 Expression*
17475 do_copy()
17476 {
17477 return new Fixed_array_construction_expression(this->type(),
17478+ this->indexes(),
17479 (this->vals() == NULL
17480 ? NULL
17481 : this->vals()->copy()),
17482@@ -12599,9 +11705,6 @@
17483
17484 tree
17485 do_get_tree(Translate_context*);
17486-
17487- void
17488- do_dump_expression(Ast_dump_context*);
17489 };
17490
17491 // Return a tree for constructing a fixed array.
17492@@ -12614,35 +11717,17 @@
17493 return this->get_constructor_tree(context, type_to_tree(btype));
17494 }
17495
17496-// Dump ast representation of an array construction expressin.
17497-
17498-void
17499-Fixed_array_construction_expression::do_dump_expression(
17500- Ast_dump_context* ast_dump_context)
17501-{
17502-
17503- ast_dump_context->ostream() << "[";
17504- ast_dump_context->dump_expression (this->type()->array_type()->length());
17505- ast_dump_context->ostream() << "]";
17506- ast_dump_context->dump_type(this->type());
17507- ast_dump_context->ostream() << "{";
17508- ast_dump_context->dump_expression_list(this->vals());
17509- ast_dump_context->ostream() << "}";
17510-
17511-}
17512 // Construct an open array.
17513
17514 class Open_array_construction_expression : public Array_construction_expression
17515 {
17516 public:
17517- Open_array_construction_expression(Type* type, Expression_list* vals,
17518- Location location)
17519+ Open_array_construction_expression(Type* type,
17520+ const std::vector<unsigned long>* indexes,
17521+ Expression_list* vals, Location location)
17522 : Array_construction_expression(EXPRESSION_OPEN_ARRAY_CONSTRUCTION,
17523- type, vals, location)
17524- {
17525- go_assert(type->array_type() != NULL
17526- && type->array_type()->length() == NULL);
17527- }
17528+ type, indexes, vals, location)
17529+ { go_assert(type->is_slice_type()); }
17530
17531 protected:
17532 // Note that taking the address of an open array literal is invalid.
17533@@ -12651,6 +11736,7 @@
17534 do_copy()
17535 {
17536 return new Open_array_construction_expression(this->type(),
17537+ this->indexes(),
17538 (this->vals() == NULL
17539 ? NULL
17540 : this->vals()->copy()),
17541@@ -12702,13 +11788,19 @@
17542 }
17543 else
17544 {
17545- tree max = size_int(this->vals()->size() - 1);
17546+ unsigned long max_index;
17547+ if (this->indexes() == NULL)
17548+ max_index = this->vals()->size() - 1;
17549+ else
17550+ max_index = *std::max_element(this->indexes()->begin(),
17551+ this->indexes()->end());
17552+ tree max_tree = size_int(max_index);
17553 tree constructor_type = build_array_type(element_type_tree,
17554- build_index_type(max));
17555+ build_index_type(max_tree));
17556 if (constructor_type == error_mark_node)
17557 return error_mark_node;
17558 values = this->get_constructor_tree(context, constructor_type);
17559- length_tree = size_int(this->vals()->size());
17560+ length_tree = size_int(max_index + 1);
17561 }
17562
17563 if (values == error_mark_node)
17564@@ -12816,7 +11908,7 @@
17565 Location location)
17566 {
17567 go_assert(type->is_slice_type());
17568- return new Open_array_construction_expression(type, vals, location);
17569+ return new Open_array_construction_expression(type, NULL, vals, location);
17570 }
17571
17572 // Construct a map.
17573@@ -13170,7 +12262,7 @@
17574 lower_array(Type*);
17575
17576 Expression*
17577- make_array(Type*, Expression_list*);
17578+ make_array(Type*, const std::vector<unsigned long>*, Expression_list*);
17579
17580 Expression*
17581 lower_map(Gogo*, Named_object*, Statement_inserter*, Type*);
17582@@ -13285,6 +12377,7 @@
17583
17584 size_t field_count = st->field_count();
17585 std::vector<Expression*> vals(field_count);
17586+ std::vector<int>* traverse_order = new(std::vector<int>);
17587 Expression_list::const_iterator p = this->vals_->begin();
17588 while (p != this->vals_->end())
17589 {
17590@@ -13437,6 +12530,7 @@
17591 type->named_type()->message_name().c_str());
17592
17593 vals[index] = val;
17594+ traverse_order->push_back(index);
17595 }
17596
17597 Expression_list* list = new Expression_list;
17598@@ -13444,7 +12538,10 @@
17599 for (size_t i = 0; i < field_count; ++i)
17600 list->push_back(vals[i]);
17601
17602- return new Struct_construction_expression(type, list, location);
17603+ Struct_construction_expression* ret =
17604+ new Struct_construction_expression(type, list, location);
17605+ ret->set_traverse_order(traverse_order);
17606+ return ret;
17607 }
17608
17609 // Lower an array composite literal.
17610@@ -13454,10 +12551,12 @@
17611 {
17612 Location location = this->location();
17613 if (this->vals_ == NULL || !this->has_keys_)
17614- return this->make_array(type, this->vals_);
17615+ return this->make_array(type, NULL, this->vals_);
17616
17617- std::vector<Expression*> vals;
17618- vals.reserve(this->vals_->size());
17619+ std::vector<unsigned long>* indexes = new std::vector<unsigned long>;
17620+ indexes->reserve(this->vals_->size());
17621+ Expression_list* vals = new Expression_list();
17622+ vals->reserve(this->vals_->size());
17623 unsigned long index = 0;
17624 Expression_list::const_iterator p = this->vals_->begin();
17625 while (p != this->vals_->end())
17626@@ -13470,104 +12569,113 @@
17627
17628 ++p;
17629
17630- if (index_expr != NULL)
17631+ if (index_expr == NULL)
17632 {
17633- mpz_t ival;
17634- mpz_init(ival);
17635+ if (!indexes->empty())
17636+ indexes->push_back(index);
17637+ }
17638+ else
17639+ {
17640+ if (indexes->empty() && !vals->empty())
17641+ {
17642+ for (size_t i = 0; i < vals->size(); ++i)
17643+ indexes->push_back(i);
17644+ }
17645
17646- Type* dummy;
17647- if (!index_expr->integer_constant_value(true, ival, &dummy))
17648+ Numeric_constant nc;
17649+ if (!index_expr->numeric_constant_value(&nc))
17650 {
17651- mpz_clear(ival);
17652 error_at(index_expr->location(),
17653 "index expression is not integer constant");
17654 return Expression::make_error(location);
17655 }
17656
17657- if (mpz_sgn(ival) < 0)
17658+ switch (nc.to_unsigned_long(&index))
17659 {
17660- mpz_clear(ival);
17661+ case Numeric_constant::NC_UL_VALID:
17662+ break;
17663+ case Numeric_constant::NC_UL_NOTINT:
17664+ error_at(index_expr->location(),
17665+ "index expression is not integer constant");
17666+ return Expression::make_error(location);
17667+ case Numeric_constant::NC_UL_NEGATIVE:
17668 error_at(index_expr->location(), "index expression is negative");
17669 return Expression::make_error(location);
17670- }
17671-
17672- index = mpz_get_ui(ival);
17673- if (mpz_cmp_ui(ival, index) != 0)
17674- {
17675- mpz_clear(ival);
17676+ case Numeric_constant::NC_UL_BIG:
17677 error_at(index_expr->location(), "index value overflow");
17678 return Expression::make_error(location);
17679+ default:
17680+ go_unreachable();
17681 }
17682
17683 Named_type* ntype = Type::lookup_integer_type("int");
17684 Integer_type* inttype = ntype->integer_type();
17685- mpz_t max;
17686- mpz_init_set_ui(max, 1);
17687- mpz_mul_2exp(max, max, inttype->bits() - 1);
17688- bool ok = mpz_cmp(ival, max) < 0;
17689- mpz_clear(max);
17690- if (!ok)
17691+ if (sizeof(index) <= static_cast<size_t>(inttype->bits() * 8)
17692+ && index >> (inttype->bits() - 1) != 0)
17693 {
17694- mpz_clear(ival);
17695 error_at(index_expr->location(), "index value overflow");
17696 return Expression::make_error(location);
17697 }
17698
17699- mpz_clear(ival);
17700-
17701- // FIXME: Our representation isn't very good; this avoids
17702- // thrashing.
17703- if (index > 0x1000000)
17704+ if (std::find(indexes->begin(), indexes->end(), index)
17705+ != indexes->end())
17706 {
17707- error_at(index_expr->location(), "index too large for compiler");
17708+ error_at(index_expr->location(), "duplicate value for index %lu",
17709+ index);
17710 return Expression::make_error(location);
17711 }
17712- }
17713
17714- if (index == vals.size())
17715- vals.push_back(val);
17716- else
17717- {
17718- if (index > vals.size())
17719- {
17720- vals.reserve(index + 32);
17721- vals.resize(index + 1, static_cast<Expression*>(NULL));
17722- }
17723- if (vals[index] != NULL)
17724- {
17725- error_at((index_expr != NULL
17726- ? index_expr->location()
17727- : val->location()),
17728- "duplicate value for index %lu",
17729- index);
17730- return Expression::make_error(location);
17731- }
17732- vals[index] = val;
17733+ indexes->push_back(index);
17734 }
17735
17736+ vals->push_back(val);
17737+
17738 ++index;
17739 }
17740
17741- size_t size = vals.size();
17742- Expression_list* list = new Expression_list;
17743- list->reserve(size);
17744- for (size_t i = 0; i < size; ++i)
17745- list->push_back(vals[i]);
17746+ if (indexes->empty())
17747+ {
17748+ delete indexes;
17749+ indexes = NULL;
17750+ }
17751
17752- return this->make_array(type, list);
17753+ return this->make_array(type, indexes, vals);
17754 }
17755
17756 // Actually build the array composite literal. This handles
17757 // [...]{...}.
17758
17759 Expression*
17760-Composite_literal_expression::make_array(Type* type, Expression_list* vals)
17761+Composite_literal_expression::make_array(
17762+ Type* type,
17763+ const std::vector<unsigned long>* indexes,
17764+ Expression_list* vals)
17765 {
17766 Location location = this->location();
17767 Array_type* at = type->array_type();
17768+
17769 if (at->length() != NULL && at->length()->is_nil_expression())
17770 {
17771- size_t size = vals == NULL ? 0 : vals->size();
17772+ size_t size;
17773+ if (vals == NULL)
17774+ size = 0;
17775+ else if (indexes == NULL)
17776+ {
17777+ size = vals->size();
17778+ Integer_type* it = Type::lookup_integer_type("int")->integer_type();
17779+ if (sizeof(size) <= static_cast<size_t>(it->bits() * 8)
17780+ && size >> (it->bits() - 1) != 0)
17781+ {
17782+ error_at(location, "too many elements in composite literal");
17783+ return Expression::make_error(location);
17784+ }
17785+ }
17786+ else
17787+ {
17788+ size = *std::max_element(indexes->begin(), indexes->end());
17789+ ++size;
17790+ }
17791+
17792 mpz_t vlen;
17793 mpz_init_set_ui(vlen, size);
17794 Expression* elen = Expression::make_integer(&vlen, NULL, location);
17795@@ -13575,10 +12683,44 @@
17796 at = Type::make_array_type(at->element_type(), elen);
17797 type = at;
17798 }
17799+ else if (at->length() != NULL
17800+ && !at->length()->is_error_expression()
17801+ && this->vals_ != NULL)
17802+ {
17803+ Numeric_constant nc;
17804+ unsigned long val;
17805+ if (at->length()->numeric_constant_value(&nc)
17806+ && nc.to_unsigned_long(&val) == Numeric_constant::NC_UL_VALID)
17807+ {
17808+ if (indexes == NULL)
17809+ {
17810+ if (this->vals_->size() > val)
17811+ {
17812+ error_at(location, "too many elements in composite literal");
17813+ return Expression::make_error(location);
17814+ }
17815+ }
17816+ else
17817+ {
17818+ unsigned long max = *std::max_element(indexes->begin(),
17819+ indexes->end());
17820+ if (max >= val)
17821+ {
17822+ error_at(location,
17823+ ("some element keys in composite literal "
17824+ "are out of range"));
17825+ return Expression::make_error(location);
17826+ }
17827+ }
17828+ }
17829+ }
17830+
17831 if (at->length() != NULL)
17832- return new Fixed_array_construction_expression(type, vals, location);
17833+ return new Fixed_array_construction_expression(type, indexes, vals,
17834+ location);
17835 else
17836- return new Open_array_construction_expression(type, vals, location);
17837+ return new Open_array_construction_expression(type, indexes, vals,
17838+ location);
17839 }
17840
17841 // Lower a map composite literal.
17842@@ -14449,3 +13591,600 @@
17843 return true;
17844 return false;
17845 }
17846+
17847+// Class Numeric_constant.
17848+
17849+// Destructor.
17850+
17851+Numeric_constant::~Numeric_constant()
17852+{
17853+ this->clear();
17854+}
17855+
17856+// Copy constructor.
17857+
17858+Numeric_constant::Numeric_constant(const Numeric_constant& a)
17859+ : classification_(a.classification_), type_(a.type_)
17860+{
17861+ switch (a.classification_)
17862+ {
17863+ case NC_INVALID:
17864+ break;
17865+ case NC_INT:
17866+ case NC_RUNE:
17867+ mpz_init_set(this->u_.int_val, a.u_.int_val);
17868+ break;
17869+ case NC_FLOAT:
17870+ mpfr_init_set(this->u_.float_val, a.u_.float_val, GMP_RNDN);
17871+ break;
17872+ case NC_COMPLEX:
17873+ mpfr_init_set(this->u_.complex_val.real, a.u_.complex_val.real,
17874+ GMP_RNDN);
17875+ mpfr_init_set(this->u_.complex_val.imag, a.u_.complex_val.imag,
17876+ GMP_RNDN);
17877+ break;
17878+ default:
17879+ go_unreachable();
17880+ }
17881+}
17882+
17883+// Assignment operator.
17884+
17885+Numeric_constant&
17886+Numeric_constant::operator=(const Numeric_constant& a)
17887+{
17888+ this->clear();
17889+ this->classification_ = a.classification_;
17890+ this->type_ = a.type_;
17891+ switch (a.classification_)
17892+ {
17893+ case NC_INVALID:
17894+ break;
17895+ case NC_INT:
17896+ case NC_RUNE:
17897+ mpz_init_set(this->u_.int_val, a.u_.int_val);
17898+ break;
17899+ case NC_FLOAT:
17900+ mpfr_init_set(this->u_.float_val, a.u_.float_val, GMP_RNDN);
17901+ break;
17902+ case NC_COMPLEX:
17903+ mpfr_init_set(this->u_.complex_val.real, a.u_.complex_val.real,
17904+ GMP_RNDN);
17905+ mpfr_init_set(this->u_.complex_val.imag, a.u_.complex_val.imag,
17906+ GMP_RNDN);
17907+ break;
17908+ default:
17909+ go_unreachable();
17910+ }
17911+ return *this;
17912+}
17913+
17914+// Clear the contents.
17915+
17916+void
17917+Numeric_constant::clear()
17918+{
17919+ switch (this->classification_)
17920+ {
17921+ case NC_INVALID:
17922+ break;
17923+ case NC_INT:
17924+ case NC_RUNE:
17925+ mpz_clear(this->u_.int_val);
17926+ break;
17927+ case NC_FLOAT:
17928+ mpfr_clear(this->u_.float_val);
17929+ break;
17930+ case NC_COMPLEX:
17931+ mpfr_clear(this->u_.complex_val.real);
17932+ mpfr_clear(this->u_.complex_val.imag);
17933+ break;
17934+ default:
17935+ go_unreachable();
17936+ }
17937+ this->classification_ = NC_INVALID;
17938+}
17939+
17940+// Set to an unsigned long value.
17941+
17942+void
17943+Numeric_constant::set_unsigned_long(Type* type, unsigned long val)
17944+{
17945+ this->clear();
17946+ this->classification_ = NC_INT;
17947+ this->type_ = type;
17948+ mpz_init_set_ui(this->u_.int_val, val);
17949+}
17950+
17951+// Set to an integer value.
17952+
17953+void
17954+Numeric_constant::set_int(Type* type, const mpz_t val)
17955+{
17956+ this->clear();
17957+ this->classification_ = NC_INT;
17958+ this->type_ = type;
17959+ mpz_init_set(this->u_.int_val, val);
17960+}
17961+
17962+// Set to a rune value.
17963+
17964+void
17965+Numeric_constant::set_rune(Type* type, const mpz_t val)
17966+{
17967+ this->clear();
17968+ this->classification_ = NC_RUNE;
17969+ this->type_ = type;
17970+ mpz_init_set(this->u_.int_val, val);
17971+}
17972+
17973+// Set to a floating point value.
17974+
17975+void
17976+Numeric_constant::set_float(Type* type, const mpfr_t val)
17977+{
17978+ this->clear();
17979+ this->classification_ = NC_FLOAT;
17980+ this->type_ = type;
17981+ // Numeric constants do not have negative zero values, so remove
17982+ // them here. They also don't have infinity or NaN values, but we
17983+ // should never see them here.
17984+ if (mpfr_zero_p(val))
17985+ mpfr_init_set_ui(this->u_.float_val, 0, GMP_RNDN);
17986+ else
17987+ mpfr_init_set(this->u_.float_val, val, GMP_RNDN);
17988+}
17989+
17990+// Set to a complex value.
17991+
17992+void
17993+Numeric_constant::set_complex(Type* type, const mpfr_t real, const mpfr_t imag)
17994+{
17995+ this->clear();
17996+ this->classification_ = NC_COMPLEX;
17997+ this->type_ = type;
17998+ mpfr_init_set(this->u_.complex_val.real, real, GMP_RNDN);
17999+ mpfr_init_set(this->u_.complex_val.imag, imag, GMP_RNDN);
18000+}
18001+
18002+// Get an int value.
18003+
18004+void
18005+Numeric_constant::get_int(mpz_t* val) const
18006+{
18007+ go_assert(this->is_int());
18008+ mpz_init_set(*val, this->u_.int_val);
18009+}
18010+
18011+// Get a rune value.
18012+
18013+void
18014+Numeric_constant::get_rune(mpz_t* val) const
18015+{
18016+ go_assert(this->is_rune());
18017+ mpz_init_set(*val, this->u_.int_val);
18018+}
18019+
18020+// Get a floating point value.
18021+
18022+void
18023+Numeric_constant::get_float(mpfr_t* val) const
18024+{
18025+ go_assert(this->is_float());
18026+ mpfr_init_set(*val, this->u_.float_val, GMP_RNDN);
18027+}
18028+
18029+// Get a complex value.
18030+
18031+void
18032+Numeric_constant::get_complex(mpfr_t* real, mpfr_t* imag) const
18033+{
18034+ go_assert(this->is_complex());
18035+ mpfr_init_set(*real, this->u_.complex_val.real, GMP_RNDN);
18036+ mpfr_init_set(*imag, this->u_.complex_val.imag, GMP_RNDN);
18037+}
18038+
18039+// Express value as unsigned long if possible.
18040+
18041+Numeric_constant::To_unsigned_long
18042+Numeric_constant::to_unsigned_long(unsigned long* val) const
18043+{
18044+ switch (this->classification_)
18045+ {
18046+ case NC_INT:
18047+ case NC_RUNE:
18048+ return this->mpz_to_unsigned_long(this->u_.int_val, val);
18049+ case NC_FLOAT:
18050+ return this->mpfr_to_unsigned_long(this->u_.float_val, val);
18051+ case NC_COMPLEX:
18052+ if (!mpfr_zero_p(this->u_.complex_val.imag))
18053+ return NC_UL_NOTINT;
18054+ return this->mpfr_to_unsigned_long(this->u_.complex_val.real, val);
18055+ default:
18056+ go_unreachable();
18057+ }
18058+}
18059+
18060+// Express integer value as unsigned long if possible.
18061+
18062+Numeric_constant::To_unsigned_long
18063+Numeric_constant::mpz_to_unsigned_long(const mpz_t ival,
18064+ unsigned long *val) const
18065+{
18066+ if (mpz_sgn(ival) < 0)
18067+ return NC_UL_NEGATIVE;
18068+ unsigned long ui = mpz_get_ui(ival);
18069+ if (mpz_cmp_ui(ival, ui) != 0)
18070+ return NC_UL_BIG;
18071+ *val = ui;
18072+ return NC_UL_VALID;
18073+}
18074+
18075+// Express floating point value as unsigned long if possible.
18076+
18077+Numeric_constant::To_unsigned_long
18078+Numeric_constant::mpfr_to_unsigned_long(const mpfr_t fval,
18079+ unsigned long *val) const
18080+{
18081+ if (!mpfr_integer_p(fval))
18082+ return NC_UL_NOTINT;
18083+ mpz_t ival;
18084+ mpz_init(ival);
18085+ mpfr_get_z(ival, fval, GMP_RNDN);
18086+ To_unsigned_long ret = this->mpz_to_unsigned_long(ival, val);
18087+ mpz_clear(ival);
18088+ return ret;
18089+}
18090+
18091+// Convert value to integer if possible.
18092+
18093+bool
18094+Numeric_constant::to_int(mpz_t* val) const
18095+{
18096+ switch (this->classification_)
18097+ {
18098+ case NC_INT:
18099+ case NC_RUNE:
18100+ mpz_init_set(*val, this->u_.int_val);
18101+ return true;
18102+ case NC_FLOAT:
18103+ if (!mpfr_integer_p(this->u_.float_val))
18104+ return false;
18105+ mpz_init(*val);
18106+ mpfr_get_z(*val, this->u_.float_val, GMP_RNDN);
18107+ return true;
18108+ case NC_COMPLEX:
18109+ if (!mpfr_zero_p(this->u_.complex_val.imag)
18110+ || !mpfr_integer_p(this->u_.complex_val.real))
18111+ return false;
18112+ mpz_init(*val);
18113+ mpfr_get_z(*val, this->u_.complex_val.real, GMP_RNDN);
18114+ return true;
18115+ default:
18116+ go_unreachable();
18117+ }
18118+}
18119+
18120+// Convert value to floating point if possible.
18121+
18122+bool
18123+Numeric_constant::to_float(mpfr_t* val) const
18124+{
18125+ switch (this->classification_)
18126+ {
18127+ case NC_INT:
18128+ case NC_RUNE:
18129+ mpfr_init_set_z(*val, this->u_.int_val, GMP_RNDN);
18130+ return true;
18131+ case NC_FLOAT:
18132+ mpfr_init_set(*val, this->u_.float_val, GMP_RNDN);
18133+ return true;
18134+ case NC_COMPLEX:
18135+ if (!mpfr_zero_p(this->u_.complex_val.imag))
18136+ return false;
18137+ mpfr_init_set(*val, this->u_.complex_val.real, GMP_RNDN);
18138+ return true;
18139+ default:
18140+ go_unreachable();
18141+ }
18142+}
18143+
18144+// Convert value to complex.
18145+
18146+bool
18147+Numeric_constant::to_complex(mpfr_t* vr, mpfr_t* vi) const
18148+{
18149+ switch (this->classification_)
18150+ {
18151+ case NC_INT:
18152+ case NC_RUNE:
18153+ mpfr_init_set_z(*vr, this->u_.int_val, GMP_RNDN);
18154+ mpfr_init_set_ui(*vi, 0, GMP_RNDN);
18155+ return true;
18156+ case NC_FLOAT:
18157+ mpfr_init_set(*vr, this->u_.float_val, GMP_RNDN);
18158+ mpfr_init_set_ui(*vi, 0, GMP_RNDN);
18159+ return true;
18160+ case NC_COMPLEX:
18161+ mpfr_init_set(*vr, this->u_.complex_val.real, GMP_RNDN);
18162+ mpfr_init_set(*vi, this->u_.complex_val.imag, GMP_RNDN);
18163+ return true;
18164+ default:
18165+ go_unreachable();
18166+ }
18167+}
18168+
18169+// Get the type.
18170+
18171+Type*
18172+Numeric_constant::type() const
18173+{
18174+ if (this->type_ != NULL)
18175+ return this->type_;
18176+ switch (this->classification_)
18177+ {
18178+ case NC_INT:
18179+ return Type::make_abstract_integer_type();
18180+ case NC_RUNE:
18181+ return Type::make_abstract_character_type();
18182+ case NC_FLOAT:
18183+ return Type::make_abstract_float_type();
18184+ case NC_COMPLEX:
18185+ return Type::make_abstract_complex_type();
18186+ default:
18187+ go_unreachable();
18188+ }
18189+}
18190+
18191+// If the constant can be expressed in TYPE, then set the type of the
18192+// constant to TYPE and return true. Otherwise return false, and, if
18193+// ISSUE_ERROR is true, report an appropriate error message.
18194+
18195+bool
18196+Numeric_constant::set_type(Type* type, bool issue_error, Location loc)
18197+{
18198+ bool ret;
18199+ if (type == NULL)
18200+ ret = true;
18201+ else if (type->integer_type() != NULL)
18202+ ret = this->check_int_type(type->integer_type(), issue_error, loc);
18203+ else if (type->float_type() != NULL)
18204+ ret = this->check_float_type(type->float_type(), issue_error, loc);
18205+ else if (type->complex_type() != NULL)
18206+ ret = this->check_complex_type(type->complex_type(), issue_error, loc);
18207+ else
18208+ go_unreachable();
18209+ if (ret)
18210+ this->type_ = type;
18211+ return ret;
18212+}
18213+
18214+// Check whether the constant can be expressed in an integer type.
18215+
18216+bool
18217+Numeric_constant::check_int_type(Integer_type* type, bool issue_error,
18218+ Location location) const
18219+{
18220+ mpz_t val;
18221+ switch (this->classification_)
18222+ {
18223+ case NC_INT:
18224+ case NC_RUNE:
18225+ mpz_init_set(val, this->u_.int_val);
18226+ break;
18227+
18228+ case NC_FLOAT:
18229+ if (!mpfr_integer_p(this->u_.float_val))
18230+ {
18231+ if (issue_error)
18232+ error_at(location, "floating point constant truncated to integer");
18233+ return false;
18234+ }
18235+ mpz_init(val);
18236+ mpfr_get_z(val, this->u_.float_val, GMP_RNDN);
18237+ break;
18238+
18239+ case NC_COMPLEX:
18240+ if (!mpfr_integer_p(this->u_.complex_val.real)
18241+ || !mpfr_zero_p(this->u_.complex_val.imag))
18242+ {
18243+ if (issue_error)
18244+ error_at(location, "complex constant truncated to integer");
18245+ return false;
18246+ }
18247+ mpz_init(val);
18248+ mpfr_get_z(val, this->u_.complex_val.real, GMP_RNDN);
18249+ break;
18250+
18251+ default:
18252+ go_unreachable();
18253+ }
18254+
18255+ bool ret;
18256+ if (type->is_abstract())
18257+ ret = true;
18258+ else
18259+ {
18260+ int bits = mpz_sizeinbase(val, 2);
18261+ if (type->is_unsigned())
18262+ {
18263+ // For an unsigned type we can only accept a nonnegative
18264+ // number, and we must be able to represents at least BITS.
18265+ ret = mpz_sgn(val) >= 0 && bits <= type->bits();
18266+ }
18267+ else
18268+ {
18269+ // For a signed type we need an extra bit to indicate the
18270+ // sign. We have to handle the most negative integer
18271+ // specially.
18272+ ret = (bits + 1 <= type->bits()
18273+ || (bits <= type->bits()
18274+ && mpz_sgn(val) < 0
18275+ && (mpz_scan1(val, 0)
18276+ == static_cast<unsigned long>(type->bits() - 1))
18277+ && mpz_scan0(val, type->bits()) == ULONG_MAX));
18278+ }
18279+ }
18280+
18281+ if (!ret && issue_error)
18282+ error_at(location, "integer constant overflow");
18283+
18284+ return ret;
18285+}
18286+
18287+// Check whether the constant can be expressed in a floating point
18288+// type.
18289+
18290+bool
18291+Numeric_constant::check_float_type(Float_type* type, bool issue_error,
18292+ Location location) const
18293+{
18294+ mpfr_t val;
18295+ switch (this->classification_)
18296+ {
18297+ case NC_INT:
18298+ case NC_RUNE:
18299+ mpfr_init_set_z(val, this->u_.int_val, GMP_RNDN);
18300+ break;
18301+
18302+ case NC_FLOAT:
18303+ mpfr_init_set(val, this->u_.float_val, GMP_RNDN);
18304+ break;
18305+
18306+ case NC_COMPLEX:
18307+ if (!mpfr_zero_p(this->u_.complex_val.imag))
18308+ {
18309+ if (issue_error)
18310+ error_at(location, "complex constant truncated to float");
18311+ return false;
18312+ }
18313+ mpfr_init_set(val, this->u_.complex_val.real, GMP_RNDN);
18314+ break;
18315+
18316+ default:
18317+ go_unreachable();
18318+ }
18319+
18320+ bool ret;
18321+ if (type->is_abstract())
18322+ ret = true;
18323+ else if (mpfr_nan_p(val) || mpfr_inf_p(val) || mpfr_zero_p(val))
18324+ {
18325+ // A NaN or Infinity always fits in the range of the type.
18326+ ret = true;
18327+ }
18328+ else
18329+ {
18330+ mp_exp_t exp = mpfr_get_exp(val);
18331+ mp_exp_t max_exp;
18332+ switch (type->bits())
18333+ {
18334+ case 32:
18335+ max_exp = 128;
18336+ break;
18337+ case 64:
18338+ max_exp = 1024;
18339+ break;
18340+ default:
18341+ go_unreachable();
18342+ }
18343+
18344+ ret = exp <= max_exp;
18345+ }
18346+
18347+ mpfr_clear(val);
18348+
18349+ if (!ret && issue_error)
18350+ error_at(location, "floating point constant overflow");
18351+
18352+ return ret;
18353+}
18354+
18355+// Check whether the constant can be expressed in a complex type.
18356+
18357+bool
18358+Numeric_constant::check_complex_type(Complex_type* type, bool issue_error,
18359+ Location location) const
18360+{
18361+ if (type->is_abstract())
18362+ return true;
18363+
18364+ mp_exp_t max_exp;
18365+ switch (type->bits())
18366+ {
18367+ case 64:
18368+ max_exp = 128;
18369+ break;
18370+ case 128:
18371+ max_exp = 1024;
18372+ break;
18373+ default:
18374+ go_unreachable();
18375+ }
18376+
18377+ mpfr_t real;
18378+ switch (this->classification_)
18379+ {
18380+ case NC_INT:
18381+ case NC_RUNE:
18382+ mpfr_init_set_z(real, this->u_.int_val, GMP_RNDN);
18383+ break;
18384+
18385+ case NC_FLOAT:
18386+ mpfr_init_set(real, this->u_.float_val, GMP_RNDN);
18387+ break;
18388+
18389+ case NC_COMPLEX:
18390+ if (!mpfr_nan_p(this->u_.complex_val.imag)
18391+ && !mpfr_inf_p(this->u_.complex_val.imag)
18392+ && !mpfr_zero_p(this->u_.complex_val.imag))
18393+ {
18394+ if (mpfr_get_exp(this->u_.complex_val.imag) > max_exp)
18395+ {
18396+ if (issue_error)
18397+ error_at(location, "complex imaginary part overflow");
18398+ return false;
18399+ }
18400+ }
18401+ mpfr_init_set(real, this->u_.complex_val.real, GMP_RNDN);
18402+ break;
18403+
18404+ default:
18405+ go_unreachable();
18406+ }
18407+
18408+ bool ret;
18409+ if (mpfr_nan_p(real) || mpfr_inf_p(real) || mpfr_zero_p(real))
18410+ ret = true;
18411+ else
18412+ ret = mpfr_get_exp(real) <= max_exp;
18413+
18414+ mpfr_clear(real);
18415+
18416+ if (!ret && issue_error)
18417+ error_at(location, "complex real part overflow");
18418+
18419+ return ret;
18420+}
18421+
18422+// Return an Expression for this value.
18423+
18424+Expression*
18425+Numeric_constant::expression(Location loc) const
18426+{
18427+ switch (this->classification_)
18428+ {
18429+ case NC_INT:
18430+ return Expression::make_integer(&this->u_.int_val, this->type_, loc);
18431+ case NC_RUNE:
18432+ return Expression::make_character(&this->u_.int_val, this->type_, loc);
18433+ case NC_FLOAT:
18434+ return Expression::make_float(&this->u_.float_val, this->type_, loc);
18435+ case NC_COMPLEX:
18436+ return Expression::make_complex(&this->u_.complex_val.real,
18437+ &this->u_.complex_val.imag,
18438+ this->type_, loc);
18439+ default:
18440+ go_unreachable();
18441+ }
18442+}
18443Index: gcc/recog.c
18444===================================================================
18445--- gcc/recog.c (.../tags/gcc_4_7_0_release) (wersja 187293)
18446+++ gcc/recog.c (.../branches/gcc-4_7-branch) (wersja 187293)
18447@@ -2673,6 +2673,16 @@
18448 /* Every address operand can be reloaded to fit. */
18449 && strict < 0)
18450 win = 1;
18451+ /* Cater to architectures like IA-64 that define extra memory
18452+ constraints without using define_memory_constraint. */
18453+ else if (reload_in_progress
18454+ && REG_P (op)
18455+ && REGNO (op) >= FIRST_PSEUDO_REGISTER
18456+ && reg_renumber[REGNO (op)] < 0
18457+ && reg_equiv_mem (REGNO (op)) != 0
18458+ && EXTRA_CONSTRAINT_STR
18459+ (reg_equiv_mem (REGNO (op)), c, p))
18460+ win = 1;
18461 #endif
18462 break;
18463 }
18464Index: gcc/ada/a-zchuni.adb
18465===================================================================
18466--- gcc/ada/a-zchuni.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
18467+++ gcc/ada/a-zchuni.adb (.../branches/gcc-4_7-branch) (wersja 187293)
18468
18469Zmiany atrybutów dla: gcc/ada/a-zchuni.adb
18470___________________________________________________________________
18471Deleted: svn:executable
18472## -1 +0,0 ##
18473-*
18474\ No newline at end of property
18475Index: gcc/ada/a-zchuni.ads
18476===================================================================
18477--- gcc/ada/a-zchuni.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
18478+++ gcc/ada/a-zchuni.ads (.../branches/gcc-4_7-branch) (wersja 187293)
18479
18480Zmiany atrybutów dla: gcc/ada/a-zchuni.ads
18481___________________________________________________________________
18482Deleted: svn:executable
18483## -1 +0,0 ##
18484-*
18485\ No newline at end of property
18486Index: gcc/ada/s-tasloc.adb
18487===================================================================
18488--- gcc/ada/s-tasloc.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
18489+++ gcc/ada/s-tasloc.adb (.../branches/gcc-4_7-branch) (wersja 187293)
18490
18491Zmiany atrybutów dla: gcc/ada/s-tasloc.adb
18492___________________________________________________________________
18493Deleted: svn:executable
18494## -1 +0,0 ##
18495-*
18496\ No newline at end of property
18497Index: gcc/ada/s-tasloc.ads
18498===================================================================
18499--- gcc/ada/s-tasloc.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
18500+++ gcc/ada/s-tasloc.ads (.../branches/gcc-4_7-branch) (wersja 187293)
18501
18502Zmiany atrybutów dla: gcc/ada/s-tasloc.ads
18503___________________________________________________________________
18504Deleted: svn:executable
18505## -1 +0,0 ##
18506-*
18507\ No newline at end of property
18508Index: gcc/ada/s-string.adb
18509===================================================================
18510--- gcc/ada/s-string.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
18511+++ gcc/ada/s-string.adb (.../branches/gcc-4_7-branch) (wersja 187293)
18512
18513Zmiany atrybutów dla: gcc/ada/s-string.adb
18514___________________________________________________________________
18515Deleted: svn:executable
18516## -1 +0,0 ##
18517-*
18518\ No newline at end of property
18519Index: gcc/ada/a-envvar.adb
18520===================================================================
18521--- gcc/ada/a-envvar.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
18522+++ gcc/ada/a-envvar.adb (.../branches/gcc-4_7-branch) (wersja 187293)
18523
18524Zmiany atrybutów dla: gcc/ada/a-envvar.adb
18525___________________________________________________________________
18526Deleted: svn:executable
18527## -1 +0,0 ##
18528-*
18529\ No newline at end of property
18530Index: gcc/ada/s-string.ads
18531===================================================================
18532--- gcc/ada/s-string.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
18533+++ gcc/ada/s-string.ads (.../branches/gcc-4_7-branch) (wersja 187293)
18534
18535Zmiany atrybutów dla: gcc/ada/s-string.ads
18536___________________________________________________________________
18537Deleted: svn:executable
18538## -1 +0,0 ##
18539-*
18540\ No newline at end of property
18541Index: gcc/ada/a-envvar.ads
18542===================================================================
18543--- gcc/ada/a-envvar.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
18544+++ gcc/ada/a-envvar.ads (.../branches/gcc-4_7-branch) (wersja 187293)
18545
18546Zmiany atrybutów dla: gcc/ada/a-envvar.ads
18547___________________________________________________________________
18548Deleted: svn:executable
18549## -1 +0,0 ##
18550-*
18551\ No newline at end of property
18552Index: gcc/ada/sem_aux.adb
18553===================================================================
18554--- gcc/ada/sem_aux.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
18555+++ gcc/ada/sem_aux.adb (.../branches/gcc-4_7-branch) (wersja 187293)
18556
18557Zmiany atrybutów dla: gcc/ada/sem_aux.adb
18558___________________________________________________________________
18559Deleted: svn:executable
18560## -1 +0,0 ##
18561-*
18562\ No newline at end of property
18563Index: gcc/ada/g-wispch.adb
18564===================================================================
18565--- gcc/ada/g-wispch.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
18566+++ gcc/ada/g-wispch.adb (.../branches/gcc-4_7-branch) (wersja 187293)
18567
18568Zmiany atrybutów dla: gcc/ada/g-wispch.adb
18569___________________________________________________________________
18570Deleted: svn:executable
18571## -1 +0,0 ##
18572-*
18573\ No newline at end of property
18574Index: gcc/ada/sem_aux.ads
18575===================================================================
18576--- gcc/ada/sem_aux.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
18577+++ gcc/ada/sem_aux.ads (.../branches/gcc-4_7-branch) (wersja 187293)
18578
18579Zmiany atrybutów dla: gcc/ada/sem_aux.ads
18580___________________________________________________________________
18581Deleted: svn:executable
18582## -1 +0,0 ##
18583-*
18584\ No newline at end of property
18585Index: gcc/ada/g-wispch.ads
18586===================================================================
18587--- gcc/ada/g-wispch.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
18588+++ gcc/ada/g-wispch.ads (.../branches/gcc-4_7-branch) (wersja 187293)
18589
18590Zmiany atrybutów dla: gcc/ada/g-wispch.ads
18591___________________________________________________________________
18592Deleted: svn:executable
18593## -1 +0,0 ##
18594-*
18595\ No newline at end of property
18596Index: gcc/ada/a-tirsfi.adb
18597===================================================================
18598--- gcc/ada/a-tirsfi.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
18599+++ gcc/ada/a-tirsfi.adb (.../branches/gcc-4_7-branch) (wersja 187293)
18600
18601Zmiany atrybutów dla: gcc/ada/a-tirsfi.adb
18602___________________________________________________________________
18603Deleted: svn:executable
18604## -1 +0,0 ##
18605-*
18606\ No newline at end of property
18607Index: gcc/ada/a-tirsfi.ads
18608===================================================================
18609--- gcc/ada/a-tirsfi.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
18610+++ gcc/ada/a-tirsfi.ads (.../branches/gcc-4_7-branch) (wersja 187293)
18611
18612Zmiany atrybutów dla: gcc/ada/a-tirsfi.ads
18613___________________________________________________________________
18614Deleted: svn:executable
18615## -1 +0,0 ##
18616-*
18617\ No newline at end of property
18618Index: gcc/ada/g-encstr.adb
18619===================================================================
18620--- gcc/ada/g-encstr.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
18621+++ gcc/ada/g-encstr.adb (.../branches/gcc-4_7-branch) (wersja 187293)
18622
18623Zmiany atrybutów dla: gcc/ada/g-encstr.adb
18624___________________________________________________________________
18625Deleted: svn:executable
18626## -1 +0,0 ##
18627-*
18628\ No newline at end of property
18629Index: gcc/ada/g-encstr.ads
18630===================================================================
18631--- gcc/ada/g-encstr.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
18632+++ gcc/ada/g-encstr.ads (.../branches/gcc-4_7-branch) (wersja 187293)
18633
18634Zmiany atrybutów dla: gcc/ada/g-encstr.ads
18635___________________________________________________________________
18636Deleted: svn:executable
18637## -1 +0,0 ##
18638-*
18639\ No newline at end of property
18640Index: gcc/ada/s-regpat.adb
18641===================================================================
18642--- gcc/ada/s-regpat.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
18643+++ gcc/ada/s-regpat.adb (.../branches/gcc-4_7-branch) (wersja 187293)
18644
18645Zmiany atrybutów dla: gcc/ada/s-regpat.adb
18646___________________________________________________________________
18647Deleted: svn:executable
18648## -1 +0,0 ##
18649-*
18650\ No newline at end of property
18651Index: gcc/ada/s-regpat.ads
18652===================================================================
18653--- gcc/ada/s-regpat.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
18654+++ gcc/ada/s-regpat.ads (.../branches/gcc-4_7-branch) (wersja 187293)
18655
18656Zmiany atrybutów dla: gcc/ada/s-regpat.ads
18657___________________________________________________________________
18658Deleted: svn:executable
18659## -1 +0,0 ##
18660-*
18661\ No newline at end of property
18662Index: gcc/ada/a-zrstfi.adb
18663===================================================================
18664--- gcc/ada/a-zrstfi.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
18665+++ gcc/ada/a-zrstfi.adb (.../branches/gcc-4_7-branch) (wersja 187293)
18666
18667Zmiany atrybutów dla: gcc/ada/a-zrstfi.adb
18668___________________________________________________________________
18669Deleted: svn:executable
18670## -1 +0,0 ##
18671-*
18672\ No newline at end of property
18673Index: gcc/ada/a-zrstfi.ads
18674===================================================================
18675--- gcc/ada/a-zrstfi.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
18676+++ gcc/ada/a-zrstfi.ads (.../branches/gcc-4_7-branch) (wersja 187293)
18677
18678Zmiany atrybutów dla: gcc/ada/a-zrstfi.ads
18679___________________________________________________________________
18680Deleted: svn:executable
18681## -1 +0,0 ##
18682-*
18683\ No newline at end of property
18684Index: gcc/ada/a-suezst.adb
18685===================================================================
18686--- gcc/ada/a-suezst.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
18687+++ gcc/ada/a-suezst.adb (.../branches/gcc-4_7-branch) (wersja 187293)
18688
18689Zmiany atrybutów dla: gcc/ada/a-suezst.adb
18690___________________________________________________________________
18691Deleted: svn:executable
18692## -1 +0,0 ##
18693-*
18694\ No newline at end of property
18695Index: gcc/ada/a-suezst.ads
18696===================================================================
18697--- gcc/ada/a-suezst.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
18698+++ gcc/ada/a-suezst.ads (.../branches/gcc-4_7-branch) (wersja 187293)
18699
18700Zmiany atrybutów dla: gcc/ada/a-suezst.ads
18701___________________________________________________________________
18702Deleted: svn:executable
18703## -1 +0,0 ##
18704-*
18705\ No newline at end of property
18706Index: gcc/ada/a-zchhan.adb
18707===================================================================
18708--- gcc/ada/a-zchhan.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
18709+++ gcc/ada/a-zchhan.adb (.../branches/gcc-4_7-branch) (wersja 187293)
18710
18711Zmiany atrybutów dla: gcc/ada/a-zchhan.adb
18712___________________________________________________________________
18713Deleted: svn:executable
18714## -1 +0,0 ##
18715-*
18716\ No newline at end of property
18717Index: gcc/ada/a-zchhan.ads
18718===================================================================
18719--- gcc/ada/a-zchhan.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
18720+++ gcc/ada/a-zchhan.ads (.../branches/gcc-4_7-branch) (wersja 187293)
18721
18722Zmiany atrybutów dla: gcc/ada/a-zchhan.ads
18723___________________________________________________________________
18724Deleted: svn:executable
18725## -1 +0,0 ##
18726-*
18727\ No newline at end of property
18728Index: gcc/ada/a-suenco.adb
18729===================================================================
18730--- gcc/ada/a-suenco.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
18731+++ gcc/ada/a-suenco.adb (.../branches/gcc-4_7-branch) (wersja 187293)
18732
18733Zmiany atrybutów dla: gcc/ada/a-suenco.adb
18734___________________________________________________________________
18735Deleted: svn:executable
18736## -1 +0,0 ##
18737-*
18738\ No newline at end of property
18739Index: gcc/ada/a-suenco.ads
18740===================================================================
18741--- gcc/ada/a-suenco.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
18742+++ gcc/ada/a-suenco.ads (.../branches/gcc-4_7-branch) (wersja 187293)
18743
18744Zmiany atrybutów dla: gcc/ada/a-suenco.ads
18745___________________________________________________________________
18746Deleted: svn:executable
18747## -1 +0,0 ##
18748-*
18749\ No newline at end of property
18750Index: gcc/ada/a-chacon.adb
18751===================================================================
18752--- gcc/ada/a-chacon.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
18753+++ gcc/ada/a-chacon.adb (.../branches/gcc-4_7-branch) (wersja 187293)
18754
18755Zmiany atrybutów dla: gcc/ada/a-chacon.adb
18756___________________________________________________________________
18757Deleted: svn:executable
18758## -1 +0,0 ##
18759-*
18760\ No newline at end of property
18761Index: gcc/ada/a-chacon.ads
18762===================================================================
18763--- gcc/ada/a-chacon.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
18764+++ gcc/ada/a-chacon.ads (.../branches/gcc-4_7-branch) (wersja 187293)
18765
18766Zmiany atrybutów dla: gcc/ada/a-chacon.ads
18767___________________________________________________________________
18768Deleted: svn:executable
18769## -1 +0,0 ##
18770-*
18771\ No newline at end of property
18772Index: gcc/ada/a-lcteio.ads
18773===================================================================
18774--- gcc/ada/a-lcteio.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
18775+++ gcc/ada/a-lcteio.ads (.../branches/gcc-4_7-branch) (wersja 187293)
18776
18777Zmiany atrybutów dla: gcc/ada/a-lcteio.ads
18778___________________________________________________________________
18779Deleted: svn:executable
18780## -1 +0,0 ##
18781-*
18782\ No newline at end of property
18783Index: gcc/ada/a-fzteio.ads
18784===================================================================
18785--- gcc/ada/a-fzteio.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
18786+++ gcc/ada/a-fzteio.ads (.../branches/gcc-4_7-branch) (wersja 187293)
18787
18788Zmiany atrybutów dla: gcc/ada/a-fzteio.ads
18789___________________________________________________________________
18790Deleted: svn:executable
18791## -1 +0,0 ##
18792-*
18793\ No newline at end of property
18794Index: gcc/ada/s-inmaop-vxworks.adb
18795===================================================================
18796--- gcc/ada/s-inmaop-vxworks.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
18797+++ gcc/ada/s-inmaop-vxworks.adb (.../branches/gcc-4_7-branch) (wersja 187293)
18798
18799Zmiany atrybutów dla: gcc/ada/s-inmaop-vxworks.adb
18800___________________________________________________________________
18801Deleted: svn:executable
18802## -1 +0,0 ##
18803-*
18804\ No newline at end of property
18805Index: gcc/ada/g-decstr.adb
18806===================================================================
18807--- gcc/ada/g-decstr.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
18808+++ gcc/ada/g-decstr.adb (.../branches/gcc-4_7-branch) (wersja 187293)
18809
18810Zmiany atrybutów dla: gcc/ada/g-decstr.adb
18811___________________________________________________________________
18812Deleted: svn:executable
18813## -1 +0,0 ##
18814-*
18815\ No newline at end of property
18816Index: gcc/ada/g-decstr.ads
18817===================================================================
18818--- gcc/ada/g-decstr.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
18819+++ gcc/ada/g-decstr.ads (.../branches/gcc-4_7-branch) (wersja 187293)
18820
18821Zmiany atrybutów dla: gcc/ada/g-decstr.ads
18822___________________________________________________________________
18823Deleted: svn:executable
18824## -1 +0,0 ##
18825-*
18826\ No newline at end of property
18827Index: gcc/ada/a-coteio.ads
18828===================================================================
18829--- gcc/ada/a-coteio.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
18830+++ gcc/ada/a-coteio.ads (.../branches/gcc-4_7-branch) (wersja 187293)
18831
18832Zmiany atrybutów dla: gcc/ada/a-coteio.ads
18833___________________________________________________________________
18834Deleted: svn:executable
18835## -1 +0,0 ##
18836-*
18837\ No newline at end of property
18838Index: gcc/ada/s-except.adb
18839===================================================================
18840--- gcc/ada/s-except.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
18841+++ gcc/ada/s-except.adb (.../branches/gcc-4_7-branch) (wersja 187293)
18842
18843Zmiany atrybutów dla: gcc/ada/s-except.adb
18844___________________________________________________________________
18845Deleted: svn:executable
18846## -1 +0,0 ##
18847-*
18848\ No newline at end of property
18849Index: gcc/ada/g-spchge.adb
18850===================================================================
18851--- gcc/ada/g-spchge.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
18852+++ gcc/ada/g-spchge.adb (.../branches/gcc-4_7-branch) (wersja 187293)
18853
18854Zmiany atrybutów dla: gcc/ada/g-spchge.adb
18855___________________________________________________________________
18856Deleted: svn:executable
18857## -1 +0,0 ##
18858-*
18859\ No newline at end of property
18860Index: gcc/ada/ChangeLog
18861===================================================================
18862--- gcc/ada/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293)
18863+++ gcc/ada/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293)
18864@@ -1,3 +1,93 @@
18865+2012-05-06 Pascal Obry <obry@adacore.com>
18866+
18867+ Revert
18868+ 2012-02-24 Dave Korn <dave.korn.cygwin@gmail.com>
18869+
18870+ * gcc-interface/Makefile.in (WIN_SO_PREFIX [windows targets]): New
18871+ Windows-specific make variable.
18872+ (WIN_SO_INSTALL_DIR [windows targets]): Likewise.
18873+ (install-gnatlib): Respect the above during installation when set,
18874+ and also install any windows import library that has been built.
18875+ (gnatlib-shared-win32): Use WIN_SO_PREFIX to name output DLL and also
18876+ build a corresponding import library.
18877+
18878+2012-04-30 Eric Botcazou <ebotcazou@adacore.com>
18879+
18880+ * gcc-interface/utils.c (finish_record_type): Force the traditional GCC
18881+ layout for bitfields on the type if it is packed or has a representation
18882+ clause and an alternate layout is available.
18883+
18884+2012-04-09 Mike Stump <mikestump@comcast.net>
18885+
18886+ * a-assert.ads: Remove execute permission.
18887+ * a-chacon.ads: Likewise.
18888+ * a-coteio.ads: Likewise.
18889+ * a-envvar.ads: Likewise.
18890+ * a-exetim-mingw.ads: Likewise.
18891+ * a-fzteio.ads: Likewise.
18892+ * a-izteio.ads: Likewise.
18893+ * a-lcteio.ads: Likewise.
18894+ * a-llctio.ads: Likewise.
18895+ * a-scteio.ads: Likewise.
18896+ * a-suenco.ads: Likewise.
18897+ * a-suenst.ads: Likewise.
18898+ * a-suewst.ads: Likewise.
18899+ * a-suezst.ads: Likewise.
18900+ * a-tirsfi.ads: Likewise.
18901+ * a-wichha.ads: Likewise.
18902+ * a-zchara.ads: Likewise.
18903+ * a-zchhan.ads: Likewise.
18904+ * a-zchuni.ads: Likewise.
18905+ * a-zrstfi.ads: Likewise.
18906+ * aspects.ads: Likewise.
18907+ * g-byorma.ads: Likewise.
18908+ * g-decstr.ads: Likewise.
18909+ * g-encstr.ads: Likewise.
18910+ * g-spchge.ads: Likewise.
18911+ * g-u3spch.ads: Likewise.
18912+ * g-wispch.ads: Likewise.
18913+ * g-zspche.ads: Likewise.
18914+ * namet-sp.ads: Likewise.
18915+ * s-os_lib.ads: Likewise.
18916+ * s-regexp.ads: Likewise.
18917+ * s-regpat.ads: Likewise.
18918+ * s-string.ads: Likewise.
18919+ * s-tasloc.ads: Likewise.
18920+ * s-utf_32.ads: Likewise.
18921+ * sem_aux.ads: Likewise.
18922+ * a-assert.adb: Likewise.
18923+ * a-chacon.adb: Likewise.
18924+ * a-envvar.adb: Likewise.
18925+ * a-exetim-mingw.adb: Likewise.
18926+ * a-suenco.adb: Likewise.
18927+ * a-suenst.adb: Likewise.
18928+ * a-suewst.adb: Likewise.
18929+ * a-suezst.adb: Likewise.
18930+ * a-tirsfi.adb: Likewise.
18931+ * a-wichha.adb: Likewise.
18932+ * a-zchhan.adb: Likewise.
18933+ * a-zchuni.adb: Likewise.
18934+ * a-zrstfi.adb: Likewise.
18935+ * aspects.adb: Likewise.
18936+ * g-byorma.adb: Likewise.
18937+ * g-decstr.adb: Likewise.
18938+ * g-encstr.adb: Likewise.
18939+ * g-spchge.adb: Likewise.
18940+ * g-u3spch.adb: Likewise.
18941+ * g-wispch.adb: Likewise.
18942+ * g-zspche.adb: Likewise.
18943+ * namet-sp.adb: Likewise.
18944+ * s-except.adb: Likewise.
18945+ * s-inmaop-vxworks.adb: Likewise.
18946+ * s-os_lib.adb: Likewise.
18947+ * s-regexp.adb: Likewise.
18948+ * s-regpat.adb: Likewise.
18949+ * s-string.adb: Likewise.
18950+ * s-tasloc.adb: Likewise.
18951+ * s-utf_32.adb: Likewise.
18952+ * s-wchcon.adb: Likewise.
18953+ * sem_aux.adb: Likewise.
18954+
18955 2012-03-22 Release Manager
18956
18957 * GCC 4.7.0 released.
18958Index: gcc/ada/g-spchge.ads
18959===================================================================
18960--- gcc/ada/g-spchge.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
18961+++ gcc/ada/g-spchge.ads (.../branches/gcc-4_7-branch) (wersja 187293)
18962
18963Zmiany atrybutów dla: gcc/ada/g-spchge.ads
18964___________________________________________________________________
18965Deleted: svn:executable
18966## -1 +0,0 ##
18967-*
18968\ No newline at end of property
18969Index: gcc/ada/g-u3spch.adb
18970===================================================================
18971--- gcc/ada/g-u3spch.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
18972+++ gcc/ada/g-u3spch.adb (.../branches/gcc-4_7-branch) (wersja 187293)
18973
18974Zmiany atrybutów dla: gcc/ada/g-u3spch.adb
18975___________________________________________________________________
18976Deleted: svn:executable
18977## -1 +0,0 ##
18978-*
18979\ No newline at end of property
18980Index: gcc/ada/g-u3spch.ads
18981===================================================================
18982--- gcc/ada/g-u3spch.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
18983+++ gcc/ada/g-u3spch.ads (.../branches/gcc-4_7-branch) (wersja 187293)
18984
18985Zmiany atrybutów dla: gcc/ada/g-u3spch.ads
18986___________________________________________________________________
18987Deleted: svn:executable
18988## -1 +0,0 ##
18989-*
18990\ No newline at end of property
18991Index: gcc/ada/s-utf_32.adb
18992===================================================================
18993--- gcc/ada/s-utf_32.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
18994+++ gcc/ada/s-utf_32.adb (.../branches/gcc-4_7-branch) (wersja 187293)
18995
18996Zmiany atrybutów dla: gcc/ada/s-utf_32.adb
18997___________________________________________________________________
18998Deleted: svn:executable
18999## -1 +0,0 ##
19000-*
19001\ No newline at end of property
19002Index: gcc/ada/s-utf_32.ads
19003===================================================================
19004--- gcc/ada/s-utf_32.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
19005+++ gcc/ada/s-utf_32.ads (.../branches/gcc-4_7-branch) (wersja 187293)
19006
19007Zmiany atrybutów dla: gcc/ada/s-utf_32.ads
19008___________________________________________________________________
19009Deleted: svn:executable
19010## -1 +0,0 ##
19011-*
19012\ No newline at end of property
19013Index: gcc/ada/aspects.adb
19014===================================================================
19015--- gcc/ada/aspects.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
19016+++ gcc/ada/aspects.adb (.../branches/gcc-4_7-branch) (wersja 187293)
19017
19018Zmiany atrybutów dla: gcc/ada/aspects.adb
19019___________________________________________________________________
19020Deleted: svn:executable
19021## -1 +0,0 ##
19022-*
19023\ No newline at end of property
19024Index: gcc/ada/aspects.ads
19025===================================================================
19026--- gcc/ada/aspects.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
19027+++ gcc/ada/aspects.ads (.../branches/gcc-4_7-branch) (wersja 187293)
19028
19029Zmiany atrybutów dla: gcc/ada/aspects.ads
19030___________________________________________________________________
19031Deleted: svn:executable
19032## -1 +0,0 ##
19033-*
19034\ No newline at end of property
19035Index: gcc/ada/a-izteio.ads
19036===================================================================
19037--- gcc/ada/a-izteio.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
19038+++ gcc/ada/a-izteio.ads (.../branches/gcc-4_7-branch) (wersja 187293)
19039
19040Zmiany atrybutów dla: gcc/ada/a-izteio.ads
19041___________________________________________________________________
19042Deleted: svn:executable
19043## -1 +0,0 ##
19044-*
19045\ No newline at end of property
19046Index: gcc/ada/g-byorma.adb
19047===================================================================
19048--- gcc/ada/g-byorma.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
19049+++ gcc/ada/g-byorma.adb (.../branches/gcc-4_7-branch) (wersja 187293)
19050
19051Zmiany atrybutów dla: gcc/ada/g-byorma.adb
19052___________________________________________________________________
19053Deleted: svn:executable
19054## -1 +0,0 ##
19055-*
19056\ No newline at end of property
19057Index: gcc/ada/g-byorma.ads
19058===================================================================
19059--- gcc/ada/g-byorma.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
19060+++ gcc/ada/g-byorma.ads (.../branches/gcc-4_7-branch) (wersja 187293)
19061
19062Zmiany atrybutów dla: gcc/ada/g-byorma.ads
19063___________________________________________________________________
19064Deleted: svn:executable
19065## -1 +0,0 ##
19066-*
19067\ No newline at end of property
19068Index: gcc/ada/s-regexp.adb
19069===================================================================
19070--- gcc/ada/s-regexp.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
19071+++ gcc/ada/s-regexp.adb (.../branches/gcc-4_7-branch) (wersja 187293)
19072
19073Zmiany atrybutów dla: gcc/ada/s-regexp.adb
19074___________________________________________________________________
19075Deleted: svn:executable
19076## -1 +0,0 ##
19077-*
19078\ No newline at end of property
19079Index: gcc/ada/s-regexp.ads
19080===================================================================
19081--- gcc/ada/s-regexp.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
19082+++ gcc/ada/s-regexp.ads (.../branches/gcc-4_7-branch) (wersja 187293)
19083
19084Zmiany atrybutów dla: gcc/ada/s-regexp.ads
19085___________________________________________________________________
19086Deleted: svn:executable
19087## -1 +0,0 ##
19088-*
19089\ No newline at end of property
19090Index: gcc/ada/a-suenst.adb
19091===================================================================
19092--- gcc/ada/a-suenst.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
19093+++ gcc/ada/a-suenst.adb (.../branches/gcc-4_7-branch) (wersja 187293)
19094
19095Zmiany atrybutów dla: gcc/ada/a-suenst.adb
19096___________________________________________________________________
19097Deleted: svn:executable
19098## -1 +0,0 ##
19099-*
19100\ No newline at end of property
19101Index: gcc/ada/a-suenst.ads
19102===================================================================
19103--- gcc/ada/a-suenst.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
19104+++ gcc/ada/a-suenst.ads (.../branches/gcc-4_7-branch) (wersja 187293)
19105
19106Zmiany atrybutów dla: gcc/ada/a-suenst.ads
19107___________________________________________________________________
19108Deleted: svn:executable
19109## -1 +0,0 ##
19110-*
19111\ No newline at end of property
19112Index: gcc/ada/s-wchcon.adb
19113===================================================================
19114--- gcc/ada/s-wchcon.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
19115+++ gcc/ada/s-wchcon.adb (.../branches/gcc-4_7-branch) (wersja 187293)
19116
19117Zmiany atrybutów dla: gcc/ada/s-wchcon.adb
19118___________________________________________________________________
19119Deleted: svn:executable
19120## -1 +0,0 ##
19121-*
19122\ No newline at end of property
19123Index: gcc/ada/g-zspche.adb
19124===================================================================
19125--- gcc/ada/g-zspche.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
19126+++ gcc/ada/g-zspche.adb (.../branches/gcc-4_7-branch) (wersja 187293)
19127
19128Zmiany atrybutów dla: gcc/ada/g-zspche.adb
19129___________________________________________________________________
19130Deleted: svn:executable
19131## -1 +0,0 ##
19132-*
19133\ No newline at end of property
19134Index: gcc/ada/a-llctio.ads
19135===================================================================
19136--- gcc/ada/a-llctio.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
19137+++ gcc/ada/a-llctio.ads (.../branches/gcc-4_7-branch) (wersja 187293)
19138
19139Zmiany atrybutów dla: gcc/ada/a-llctio.ads
19140___________________________________________________________________
19141Deleted: svn:executable
19142## -1 +0,0 ##
19143-*
19144\ No newline at end of property
19145Index: gcc/ada/g-zspche.ads
19146===================================================================
19147--- gcc/ada/g-zspche.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
19148+++ gcc/ada/g-zspche.ads (.../branches/gcc-4_7-branch) (wersja 187293)
19149
19150Zmiany atrybutów dla: gcc/ada/g-zspche.ads
19151___________________________________________________________________
19152Deleted: svn:executable
19153## -1 +0,0 ##
19154-*
19155\ No newline at end of property
19156Index: gcc/ada/a-exetim-mingw.adb
19157===================================================================
19158--- gcc/ada/a-exetim-mingw.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
19159+++ gcc/ada/a-exetim-mingw.adb (.../branches/gcc-4_7-branch) (wersja 187293)
19160
19161Zmiany atrybutów dla: gcc/ada/a-exetim-mingw.adb
19162___________________________________________________________________
19163Deleted: svn:executable
19164## -1 +0,0 ##
19165-*
19166\ No newline at end of property
19167Index: gcc/ada/a-exetim-mingw.ads
19168===================================================================
19169--- gcc/ada/a-exetim-mingw.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
19170+++ gcc/ada/a-exetim-mingw.ads (.../branches/gcc-4_7-branch) (wersja 187293)
19171
19172Zmiany atrybutów dla: gcc/ada/a-exetim-mingw.ads
19173___________________________________________________________________
19174Deleted: svn:executable
19175## -1 +0,0 ##
19176-*
19177\ No newline at end of property
19178Index: gcc/ada/a-wichha.adb
19179===================================================================
19180--- gcc/ada/a-wichha.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
19181+++ gcc/ada/a-wichha.adb (.../branches/gcc-4_7-branch) (wersja 187293)
19182
19183Zmiany atrybutów dla: gcc/ada/a-wichha.adb
19184___________________________________________________________________
19185Deleted: svn:executable
19186## -1 +0,0 ##
19187-*
19188\ No newline at end of property
19189Index: gcc/ada/a-wichha.ads
19190===================================================================
19191--- gcc/ada/a-wichha.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
19192+++ gcc/ada/a-wichha.ads (.../branches/gcc-4_7-branch) (wersja 187293)
19193
19194Zmiany atrybutów dla: gcc/ada/a-wichha.ads
19195___________________________________________________________________
19196Deleted: svn:executable
19197## -1 +0,0 ##
19198-*
19199\ No newline at end of property
19200Index: gcc/ada/gcc-interface/utils.c
19201===================================================================
19202--- gcc/ada/gcc-interface/utils.c (.../tags/gcc_4_7_0_release) (wersja 187293)
19203+++ gcc/ada/gcc-interface/utils.c (.../branches/gcc-4_7-branch) (wersja 187293)
19204@@ -704,6 +704,19 @@
19205 case where there is a rep clause but all fields have errors and
19206 no longer have a position. */
19207 TYPE_SIZE (record_type) = 0;
19208+
19209+ /* Ensure we use the traditional GCC layout for bitfields when we need
19210+ to pack the record type or have a representation clause. The other
19211+ possible layout (Microsoft C compiler), if available, would prevent
19212+ efficient packing in almost all cases. */
19213+#ifdef TARGET_MS_BITFIELD_LAYOUT
19214+ if (TARGET_MS_BITFIELD_LAYOUT && TYPE_PACKED (record_type))
19215+ decl_attributes (&record_type,
19216+ tree_cons (get_identifier ("gcc_struct"),
19217+ NULL_TREE, NULL_TREE),
19218+ ATTR_FLAG_TYPE_IN_PLACE);
19219+#endif
19220+
19221 layout_type (record_type);
19222 }
19223
19224Index: gcc/ada/gcc-interface/Makefile.in
19225===================================================================
19226--- gcc/ada/gcc-interface/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187293)
19227+++ gcc/ada/gcc-interface/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187293)
19228@@ -1589,19 +1589,16 @@
19229 # the Cygwin port has always been a CygMing frankenhybrid and it is
19230 # a long-term project to disentangle them.
19231 ifeq ($(strip $(filter-out cygwin%,$(osys))),)
19232- WIN_SO_PREFIX=cyg
19233 LIBGNAT_TARGET_PAIRS = \
19234 s-memory.adb<s-memory.adb \
19235 g-socthi.ads<g-socthi.ads \
19236 g-socthi.adb<g-socthi.adb
19237 else
19238- WIN_SO_PREFIX=lib
19239 LIBGNAT_TARGET_PAIRS = \
19240 s-memory.adb<s-memory-mingw.adb \
19241 g-socthi.ads<g-socthi-mingw.ads \
19242 g-socthi.adb<g-socthi-mingw.adb
19243 endif
19244- WIN_SO_INSTALL_DIR = $(bindir)
19245 LIBGNAT_TARGET_PAIRS += \
19246 a-dirval.adb<a-dirval-mingw.adb \
19247 a-excpol.adb<a-excpol-abort.adb \
19248@@ -2452,14 +2449,11 @@
19249 # for shared libraries on some targets, e.g. on HP-UX where the x
19250 # permission is required.
19251 # Also install the .dSYM directories if they exist (these directories
19252-# contain the debug information for the shared libraries on darwin),
19253-# and the windows import libraries if they exist.
19254- libpfx=$(if $(WIN_SO_PREFIX),$(WIN_SO_PREFIX),lib); \
19255- librtlobjdir=$(if $(WIN_SO_INSTALL_DIR),$(WIN_SO_INSTALL_DIR),$(ADA_RTL_OBJ_DIR)); \
19256+# contain the debug information for the shared libraries on darwin)
19257 for file in gnat gnarl; do \
19258- if [ -f $(RTSDIR)/$${libpfx}$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) ]; then \
19259- $(INSTALL) $(RTSDIR)/$${libpfx}$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) \
19260- $(DESTDIR)$${librtlobjdir}; \
19261+ if [ -f $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) ]; then \
19262+ $(INSTALL) $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) \
19263+ $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
19264 fi; \
19265 if [ -f $(RTSDIR)/lib$${file}$(soext) ]; then \
19266 $(LN_S) lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) \
19267@@ -2469,10 +2463,6 @@
19268 $(CP) -r $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).dSYM \
19269 $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
19270 fi; \
19271- if [ -f $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext)$(arext) ]; then \
19272- $(INSTALL_DATA) $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext)$(arext) \
19273- $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
19274- fi; \
19275 done
19276 # This copy must be done preserving the date on the original file.
19277 for file in $(RTSDIR)/*.ad?; do \
19278@@ -2684,18 +2674,16 @@
19279 cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
19280 | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared -shared-libgcc \
19281 $(PICFLAG_FOR_TARGET) \
19282- -o $(WIN_SO_PREFIX)gnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
19283- -Wl,-out-implib,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)$(arext) \
19284+ -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
19285 $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \
19286- $(SO_OPTS)$(WIN_SO_PREFIX)gnat$(hyphen)$(LIBRARY_VERSION)$(soext) $(MISCLIB)
19287+ $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) $(MISCLIB)
19288 cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
19289 | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared -shared-libgcc \
19290 $(PICFLAG_FOR_TARGET) \
19291- -o $(WIN_SO_PREFIX)gnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
19292- -Wl,-out-implib,libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext)$(arext) \
19293+ -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
19294 $(GNATRTL_TASKING_OBJS) \
19295- $(SO_OPTS)$(WIN_SO_PREFIX)gnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
19296- $(THREADSLIB) -L. -lgnat$(hyphen)$(LIBRARY_VERSION)
19297+ $(SO_OPTS)libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
19298+ $(THREADSLIB) -Wl,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)
19299
19300 gnatlib-shared-darwin:
19301 $(MAKE) $(FLAGS_TO_PASS) \
19302Index: gcc/ada/namet-sp.adb
19303===================================================================
19304--- gcc/ada/namet-sp.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
19305+++ gcc/ada/namet-sp.adb (.../branches/gcc-4_7-branch) (wersja 187293)
19306
19307Zmiany atrybutów dla: gcc/ada/namet-sp.adb
19308___________________________________________________________________
19309Deleted: svn:executable
19310## -1 +0,0 ##
19311-*
19312\ No newline at end of property
19313Index: gcc/ada/namet-sp.ads
19314===================================================================
19315--- gcc/ada/namet-sp.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
19316+++ gcc/ada/namet-sp.ads (.../branches/gcc-4_7-branch) (wersja 187293)
19317
19318Zmiany atrybutów dla: gcc/ada/namet-sp.ads
19319___________________________________________________________________
19320Deleted: svn:executable
19321## -1 +0,0 ##
19322-*
19323\ No newline at end of property
19324Index: gcc/ada/a-assert.adb
19325===================================================================
19326--- gcc/ada/a-assert.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
19327+++ gcc/ada/a-assert.adb (.../branches/gcc-4_7-branch) (wersja 187293)
19328
19329Zmiany atrybutów dla: gcc/ada/a-assert.adb
19330___________________________________________________________________
19331Deleted: svn:executable
19332## -1 +0,0 ##
19333-*
19334\ No newline at end of property
19335Index: gcc/ada/a-assert.ads
19336===================================================================
19337--- gcc/ada/a-assert.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
19338+++ gcc/ada/a-assert.ads (.../branches/gcc-4_7-branch) (wersja 187293)
19339
19340Zmiany atrybutów dla: gcc/ada/a-assert.ads
19341___________________________________________________________________
19342Deleted: svn:executable
19343## -1 +0,0 ##
19344-*
19345\ No newline at end of property
19346Index: gcc/ada/a-suewst.adb
19347===================================================================
19348--- gcc/ada/a-suewst.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
19349+++ gcc/ada/a-suewst.adb (.../branches/gcc-4_7-branch) (wersja 187293)
19350
19351Zmiany atrybutów dla: gcc/ada/a-suewst.adb
19352___________________________________________________________________
19353Deleted: svn:executable
19354## -1 +0,0 ##
19355-*
19356\ No newline at end of property
19357Index: gcc/ada/a-suewst.ads
19358===================================================================
19359--- gcc/ada/a-suewst.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
19360+++ gcc/ada/a-suewst.ads (.../branches/gcc-4_7-branch) (wersja 187293)
19361
19362Zmiany atrybutów dla: gcc/ada/a-suewst.ads
19363___________________________________________________________________
19364Deleted: svn:executable
19365## -1 +0,0 ##
19366-*
19367\ No newline at end of property
19368Index: gcc/ada/a-scteio.ads
19369===================================================================
19370--- gcc/ada/a-scteio.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
19371+++ gcc/ada/a-scteio.ads (.../branches/gcc-4_7-branch) (wersja 187293)
19372
19373Zmiany atrybutów dla: gcc/ada/a-scteio.ads
19374___________________________________________________________________
19375Deleted: svn:executable
19376## -1 +0,0 ##
19377-*
19378\ No newline at end of property
19379Index: gcc/ada/s-os_lib.adb
19380===================================================================
19381--- gcc/ada/s-os_lib.adb (.../tags/gcc_4_7_0_release) (wersja 187293)
19382+++ gcc/ada/s-os_lib.adb (.../branches/gcc-4_7-branch) (wersja 187293)
19383
19384Zmiany atrybutów dla: gcc/ada/s-os_lib.adb
19385___________________________________________________________________
19386Deleted: svn:executable
19387## -1 +0,0 ##
19388-*
19389\ No newline at end of property
19390Index: gcc/ada/s-os_lib.ads
19391===================================================================
19392--- gcc/ada/s-os_lib.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
19393+++ gcc/ada/s-os_lib.ads (.../branches/gcc-4_7-branch) (wersja 187293)
19394
19395Zmiany atrybutów dla: gcc/ada/s-os_lib.ads
19396___________________________________________________________________
19397Deleted: svn:executable
19398## -1 +0,0 ##
19399-*
19400\ No newline at end of property
19401Index: gcc/ada/a-zchara.ads
19402===================================================================
19403--- gcc/ada/a-zchara.ads (.../tags/gcc_4_7_0_release) (wersja 187293)
19404+++ gcc/ada/a-zchara.ads (.../branches/gcc-4_7-branch) (wersja 187293)
19405
19406Zmiany atrybutów dla: gcc/ada/a-zchara.ads
19407___________________________________________________________________
19408Deleted: svn:executable
19409## -1 +0,0 ##
19410-*
19411\ No newline at end of property
19412Index: gcc/fortran/ChangeLog
19413===================================================================
19414--- gcc/fortran/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293)
19415+++ gcc/fortran/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293)
19416@@ -1,3 +1,57 @@
19417+2012-05-07 Tobias Burnus <burnus@net-b.de>
19418+
19419+ Backport from mainline:
19420+ 2012-05-07 Tobias Burnus <burnus@net-b.de>
19421+
19422+ PR fortran/53255
19423+ * resolve.c (resolve_typebound_static): Fix handling
19424+ of overridden specific to generic operator.
19425+
19426+2012-05-05 Tobias Burnus <burnus@net-b.de>
19427+
19428+ Backport from mainline:
19429+ 2012-05-04 Tobias Burnus <burnus@net-b.de>
19430+
19431+ PR fortran/53111
19432+ * resolve.c (resolve_fl_derived): Fix -std=f95
19433+ diagnostic for generic vs. DT names.
19434+
19435+2012-05-02 Tobias Burnus <burnus@net-b.de>
19436+
19437+ Backport from mainline
19438+ 2012-04-12 Tobias Burnus <burnus@net-b.de>
19439+
19440+ PR fortran/52864
19441+ * expr.c (gfc_check_vardef_context): Fix assignment check for
19442+ pointer components.
19443+
19444+2012-04-30 Thomas Koenig <tkoenig@gcc.gnu.org>
19445+
19446+ PR fortran/53148
19447+ Backport from trunk
19448+ * frontend-passes.c (create_var): If the statement has a label,
19449+ put the label around the block.
19450+
19451+2012-04-07 Thomas Koenig <tkoenig@gcc.gnu.org>
19452+
19453+ PR fortran/52893
19454+ Backport from trunk
19455+ * frontend-passes.c: Keep track of wether we are in an implicit
19456+ DO loop; do not do function elimination if we are.
19457+
19458+2012-04-07 Thomas Koenig <tkoenig@gcc.gnu.org>
19459+
19460+ PR fortran/52668
19461+ Backport from trunk
19462+ * module.c: Only mark symbols as use_only if they have been
19463+ imported via an only list.
19464+
19465+2012-03-22 Tobias Burnus <burnus@net-b.de>
19466+
19467+ PR fortran/52452
19468+ * resolve.c (resolve_intrinsic): Don't search for a
19469+ function if we know that it is a subroutine.
19470+
19471 2012-03-22 Release Manager
19472
19473 * GCC 4.7.0 released.
19474Index: gcc/fortran/expr.c
19475===================================================================
19476--- gcc/fortran/expr.c (.../tags/gcc_4_7_0_release) (wersja 187293)
19477+++ gcc/fortran/expr.c (.../branches/gcc-4_7-branch) (wersja 187293)
19478@@ -4654,7 +4654,11 @@
19479 if (ptr_component && ref->type == REF_COMPONENT)
19480 check_intentin = false;
19481 if (ref->type == REF_COMPONENT && ref->u.c.component->attr.pointer)
19482- ptr_component = true;
19483+ {
19484+ ptr_component = true;
19485+ if (!pointer)
19486+ check_intentin = false;
19487+ }
19488 }
19489 if (check_intentin && sym->attr.intent == INTENT_IN)
19490 {
19491Index: gcc/fortran/module.c
19492===================================================================
19493--- gcc/fortran/module.c (.../tags/gcc_4_7_0_release) (wersja 187293)
19494+++ gcc/fortran/module.c (.../branches/gcc-4_7-branch) (wersja 187293)
19495@@ -4388,9 +4388,24 @@
19496
19497 /* Mark as only or rename for later diagnosis for explicitly imported
19498 but not used warnings; don't mark internal symbols such as __vtab,
19499- __def_init etc. */
19500+ __def_init etc. Only mark them if they have been explicitly loaded. */
19501+
19502 if (only_flag && sym->name[0] != '_' && sym->name[1] != '_')
19503- sym->attr.use_only = 1;
19504+ {
19505+ gfc_use_rename *u;
19506+
19507+ /* Search the use/rename list for the variable; if the variable is
19508+ found, mark it. */
19509+ for (u = gfc_rename_list; u; u = u->next)
19510+ {
19511+ if (strcmp (u->use_name, sym->name) == 0)
19512+ {
19513+ sym->attr.use_only = 1;
19514+ break;
19515+ }
19516+ }
19517+ }
19518+
19519 if (p->u.rsym.renamed)
19520 sym->attr.use_rename = 1;
19521
19522Index: gcc/fortran/frontend-passes.c
19523===================================================================
19524--- gcc/fortran/frontend-passes.c (.../tags/gcc_4_7_0_release) (wersja 187293)
19525+++ gcc/fortran/frontend-passes.c (.../branches/gcc-4_7-branch) (wersja 187293)
19526@@ -70,6 +70,10 @@
19527
19528 static bool in_omp_workshare;
19529
19530+/* Keep track of iterators for array constructors. */
19531+
19532+static int iterator_level;
19533+
19534 /* Entry point - run all passes for a namespace. So far, only an
19535 optimization pass is run. */
19536
19537@@ -179,6 +183,12 @@
19538 if (forall_level > 0)
19539 return 0;
19540
19541+ /* Function elimination inside an iterator could lead to functions
19542+ which depend on iterator variables being moved outside. */
19543+
19544+ if (iterator_level > 0)
19545+ return 0;
19546+
19547 /* If we don't know the shape at compile time, we create an allocatable
19548 temporary variable to hold the intermediate result, but only if
19549 allocation on assignment is active. */
19550@@ -260,6 +270,16 @@
19551 inserted_block->ext.block.assoc = NULL;
19552
19553 ns->code = *current_code;
19554+
19555+ /* If the statement has a label, make sure it is transferred to
19556+ the newly created block. */
19557+
19558+ if ((*current_code)->here)
19559+ {
19560+ inserted_block->here = (*current_code)->here;
19561+ (*current_code)->here = NULL;
19562+ }
19563+
19564 inserted_block->next = (*current_code)->next;
19565 changed_statement = &(inserted_block->ext.block.ns->code);
19566 (*current_code)->next = NULL;
19567@@ -581,6 +601,7 @@
19568
19569 current_ns = ns;
19570 forall_level = 0;
19571+ iterator_level = 0;
19572 in_omp_workshare = false;
19573
19574 gfc_code_walker (&ns->code, convert_do_while, dummy_expr_callback, NULL);
19575@@ -1140,9 +1161,13 @@
19576 for (c = gfc_constructor_first ((*e)->value.constructor); c;
19577 c = gfc_constructor_next (c))
19578 {
19579- WALK_SUBEXPR (c->expr);
19580- if (c->iterator != NULL)
19581+ if (c->iterator == NULL)
19582+ WALK_SUBEXPR (c->expr);
19583+ else
19584 {
19585+ iterator_level ++;
19586+ WALK_SUBEXPR (c->expr);
19587+ iterator_level --;
19588 WALK_SUBEXPR (c->iterator->var);
19589 WALK_SUBEXPR (c->iterator->start);
19590 WALK_SUBEXPR (c->iterator->end);
19591Index: gcc/fortran/resolve.c
19592===================================================================
19593--- gcc/fortran/resolve.c (.../tags/gcc_4_7_0_release) (wersja 187293)
19594+++ gcc/fortran/resolve.c (.../branches/gcc-4_7-branch) (wersja 187293)
19595@@ -1496,7 +1496,7 @@
19596
19597 if (sym->intmod_sym_id)
19598 isym = gfc_intrinsic_function_by_id ((gfc_isym_id) sym->intmod_sym_id);
19599- else
19600+ else if (!sym->attr.subroutine)
19601 isym = gfc_find_function (sym->name);
19602
19603 if (isym)
19604@@ -5624,12 +5624,11 @@
19605 e->value.compcall.actual = NULL;
19606
19607 /* If we find a deferred typebound procedure, check for derived types
19608- that an over-riding typebound procedure has not been missed. */
19609- if (e->value.compcall.tbp->deferred
19610- && e->value.compcall.name
19611- && !e->value.compcall.tbp->non_overridable
19612- && e->value.compcall.base_object
19613- && e->value.compcall.base_object->ts.type == BT_DERIVED)
19614+ that an overriding typebound procedure has not been missed. */
19615+ if (e->value.compcall.name
19616+ && !e->value.compcall.tbp->non_overridable
19617+ && e->value.compcall.base_object
19618+ && e->value.compcall.base_object->ts.type == BT_DERIVED)
19619 {
19620 gfc_symtree *st;
19621 gfc_symbol *derived;
19622@@ -11991,6 +11990,8 @@
19623 if (!sym->attr.is_class)
19624 gfc_find_symbol (sym->name, sym->ns, 0, &gen_dt);
19625 if (gen_dt && gen_dt->generic && gen_dt->generic->next
19626+ && (!gen_dt->generic->sym->attr.use_assoc
19627+ || gen_dt->generic->sym->module != gen_dt->generic->next->sym->module)
19628 && gfc_notify_std (GFC_STD_F2003, "Fortran 2003: Generic name '%s' of "
19629 "function '%s' at %L being the same name as derived "
19630 "type at %L", sym->name,
19631Index: gcc/configure.ac
19632===================================================================
19633--- gcc/configure.ac (.../tags/gcc_4_7_0_release) (wersja 187293)
19634+++ gcc/configure.ac (.../branches/gcc-4_7-branch) (wersja 187293)
19635@@ -4430,7 +4430,15 @@
19636 fi
19637
19638 case "$target:$tm_file" in
19639- powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*)
19640+ powerpc64-*-freebsd* | powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*)
19641+ case "$target" in
19642+ *-*-linux*)
19643+ emul_name="-melf64ppc"
19644+ ;;
19645+ *-*-freebsd*)
19646+ emul_name="-melf64ppc_fbsd"
19647+ ;;
19648+ esac
19649 AC_CACHE_CHECK(linker support for omitting dot symbols,
19650 gcc_cv_ld_no_dot_syms,
19651 [gcc_cv_ld_no_dot_syms=no
19652@@ -4457,7 +4465,7 @@
19653 EOF
19654 if $gcc_cv_as -a64 -o conftest1.o conftest1.s > /dev/null 2>&1 \
19655 && $gcc_cv_as -a64 -o conftest2.o conftest2.s > /dev/null 2>&1 \
19656- && $gcc_cv_ld -melf64ppc -o conftest conftest1.o conftest2.o > /dev/null 2>&1; then
19657+ && $gcc_cv_ld $emul_name -o conftest conftest1.o conftest2.o > /dev/null 2>&1; then
19658 gcc_cv_ld_no_dot_syms=yes
19659 fi
19660 rm -f conftest conftest1.o conftest2.o conftest1.s conftest2.s
19661@@ -4487,7 +4495,7 @@
19662 ld 9,ie0@got@tprel@l(9)
19663 EOF
19664 if $gcc_cv_as -a64 -o conftest.o conftest.s > /dev/null 2>&1 \
19665- && $gcc_cv_ld -melf64ppc --no-toc-sort -o conftest conftest.o > /dev/null 2>&1; then
19666+ && $gcc_cv_ld $emul_name --no-toc-sort -o conftest conftest.o > /dev/null 2>&1; then
19667 gcc_cv_ld_large_toc=yes
19668 fi
19669 rm -f conftest conftest.o conftest.s
19670Index: gcc/BASE-VER
19671===================================================================
19672--- gcc/BASE-VER (.../tags/gcc_4_7_0_release) (wersja 187293)
19673+++ gcc/BASE-VER (.../branches/gcc-4_7-branch) (wersja 187293)
19674@@ -1 +1 @@
19675-4.7.0
19676+4.7.1
19677Index: gcc/gcc-ar.c
19678===================================================================
19679--- gcc/gcc-ar.c (.../tags/gcc_4_7_0_release) (wersja 187293)
19680+++ gcc/gcc-ar.c (.../branches/gcc-4_7-branch) (wersja 187293)
19681@@ -1,5 +1,5 @@
19682 /* Wrapper for ar/ranlib/nm to pass the LTO plugin.
19683- Copyright (C) 2011 Free Software Foundation, Inc.
19684+ Copyright (C) 2011, 2012 Free Software Foundation, Inc.
19685 Contributed by Andi Kleen.
19686
19687 This file is part of GCC.
19688@@ -52,11 +52,16 @@
19689 /* XXX implement more magic from gcc.c? */
19690 nprefix = getenv ("GCC_EXEC_PREFIX");
19691 if (!nprefix)
19692+ nprefix = av[0];
19693+ else
19694+ nprefix = concat (nprefix, "gcc-" PERSONALITY, NULL);
19695+
19696+ nprefix = make_relative_prefix (nprefix,
19697+ standard_bin_prefix,
19698+ standard_libexec_prefix);
19699+ if (nprefix == NULL)
19700 nprefix = standard_libexec_prefix;
19701
19702- nprefix = make_relative_prefix (av[0],
19703- standard_bin_prefix,
19704- nprefix);
19705 plugin = concat (nprefix,
19706 dir_separator,
19707 DEFAULT_TARGET_MACHINE,
19708Index: gcc/tree-vectorizer.h
19709===================================================================
19710--- gcc/tree-vectorizer.h (.../tags/gcc_4_7_0_release) (wersja 187293)
19711+++ gcc/tree-vectorizer.h (.../branches/gcc-4_7-branch) (wersja 187293)
19712@@ -476,6 +476,13 @@
19713 tree dr_step;
19714 tree dr_aligned_to;
19715
19716+ /* For loop PHI nodes, the evolution part of it. This makes sure
19717+ this information is still available in vect_update_ivs_after_vectorizer
19718+ where we may not be able to re-analyze the PHI nodes evolution as
19719+ peeling for the prologue loop can make it unanalyzable. The evolution
19720+ part is still correct though. */
19721+ tree loop_phi_evolution_part;
19722+
19723 /* Used for various bookkeeping purposes, generally holding a pointer to
19724 some other stmt S that is in some way "related" to this stmt.
19725 Current use of this field is:
19726@@ -572,6 +579,7 @@
19727 #define STMT_VINFO_GROUP_SAME_DR_STMT(S) (S)->same_dr_stmt
19728 #define STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE(S) (S)->read_write_dep
19729 #define STMT_VINFO_STRIDED_ACCESS(S) ((S)->first_element != NULL && (S)->data_ref_info)
19730+#define STMT_VINFO_LOOP_PHI_EVOLUTION_PART(S) (S)->loop_phi_evolution_part
19731
19732 #define GROUP_FIRST_ELEMENT(S) (S)->first_element
19733 #define GROUP_NEXT_ELEMENT(S) (S)->next_element
19734Index: gcc/tree-if-conv.c
19735===================================================================
19736--- gcc/tree-if-conv.c (.../tags/gcc_4_7_0_release) (wersja 187293)
19737+++ gcc/tree-if-conv.c (.../branches/gcc-4_7-branch) (wersja 187293)
19738@@ -1543,11 +1543,19 @@
19739 gimple_stmt_iterator gsi;
19740 basic_block bb = ifc_bbs[i];
19741 tree cond = bb_predicate (bb);
19742+ bool swap;
19743 gimple stmt;
19744
19745 if (is_true_predicate (cond))
19746 continue;
19747
19748+ swap = false;
19749+ if (TREE_CODE (cond) == TRUTH_NOT_EXPR)
19750+ {
19751+ swap = true;
19752+ cond = TREE_OPERAND (cond, 0);
19753+ }
19754+
19755 for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
19756 if ((stmt = gsi_stmt (gsi))
19757 && gimple_assign_single_p (stmt)
19758@@ -1559,6 +1567,15 @@
19759
19760 lhs = ifc_temp_var (type, unshare_expr (lhs), &gsi);
19761 rhs = ifc_temp_var (type, unshare_expr (rhs), &gsi);
19762+ if (swap)
19763+ {
19764+ tree tem = lhs;
19765+ lhs = rhs;
19766+ rhs = tem;
19767+ }
19768+ cond = force_gimple_operand_gsi_1 (&gsi, unshare_expr (cond),
19769+ is_gimple_condexpr, NULL_TREE,
19770+ true, GSI_SAME_STMT);
19771 rhs = build3 (COND_EXPR, type, unshare_expr (cond), rhs, lhs);
19772 gimple_assign_set_rhs1 (stmt, ifc_temp_var (type, rhs, &gsi));
19773 update_stmt (stmt);
19774Index: gcc/tree-vect-loop.c
19775===================================================================
19776--- gcc/tree-vect-loop.c (.../tags/gcc_4_7_0_release) (wersja 187293)
19777+++ gcc/tree-vect-loop.c (.../branches/gcc-4_7-branch) (wersja 187293)
19778@@ -565,11 +565,15 @@
19779 /* Analyze the evolution function. */
19780 access_fn = analyze_scalar_evolution (loop, def);
19781 if (access_fn)
19782- STRIP_NOPS (access_fn);
19783- if (access_fn && vect_print_dump_info (REPORT_DETAILS))
19784 {
19785- fprintf (vect_dump, "Access function of PHI: ");
19786- print_generic_expr (vect_dump, access_fn, TDF_SLIM);
19787+ STRIP_NOPS (access_fn);
19788+ if (vect_print_dump_info (REPORT_DETAILS))
19789+ {
19790+ fprintf (vect_dump, "Access function of PHI: ");
19791+ print_generic_expr (vect_dump, access_fn, TDF_SLIM);
19792+ }
19793+ STMT_VINFO_LOOP_PHI_EVOLUTION_PART (stmt_vinfo)
19794+ = evolution_part_in_loop_num (access_fn, loop->num);
19795 }
19796
19797 if (!access_fn
19798@@ -579,6 +583,8 @@
19799 continue;
19800 }
19801
19802+ gcc_assert (STMT_VINFO_LOOP_PHI_EVOLUTION_PART (stmt_vinfo) != NULL_TREE);
19803+
19804 if (vect_print_dump_info (REPORT_DETAILS))
19805 fprintf (vect_dump, "Detected induction.");
19806 STMT_VINFO_DEF_TYPE (stmt_vinfo) = vect_induction_def;
19807Index: gcc/tree-data-ref.c
19808===================================================================
19809--- gcc/tree-data-ref.c (.../tags/gcc_4_7_0_release) (wersja 187293)
19810+++ gcc/tree-data-ref.c (.../branches/gcc-4_7-branch) (wersja 187293)
19811@@ -856,7 +856,7 @@
19812 dr_analyze_indices (struct data_reference *dr, loop_p nest, loop_p loop)
19813 {
19814 VEC (tree, heap) *access_fns = NULL;
19815- tree ref, *aref, op;
19816+ tree ref, op;
19817 tree base, off, access_fn;
19818 basic_block before_loop;
19819
19820@@ -869,7 +869,7 @@
19821 return;
19822 }
19823
19824- ref = unshare_expr (DR_REF (dr));
19825+ ref = DR_REF (dr);
19826 before_loop = block_before_loop (nest);
19827
19828 /* REALPART_EXPR and IMAGPART_EXPR can be handled like accesses
19829@@ -887,61 +887,84 @@
19830 }
19831
19832 /* Analyze access functions of dimensions we know to be independent. */
19833- aref = &ref;
19834- while (handled_component_p (*aref))
19835+ while (handled_component_p (ref))
19836 {
19837- if (TREE_CODE (*aref) == ARRAY_REF)
19838+ if (TREE_CODE (ref) == ARRAY_REF)
19839 {
19840- op = TREE_OPERAND (*aref, 1);
19841+ op = TREE_OPERAND (ref, 1);
19842 access_fn = analyze_scalar_evolution (loop, op);
19843 access_fn = instantiate_scev (before_loop, loop, access_fn);
19844 VEC_safe_push (tree, heap, access_fns, access_fn);
19845- /* For ARRAY_REFs the base is the reference with the index replaced
19846- by zero if we can not strip it as the outermost component. */
19847- if (*aref == ref)
19848- {
19849- *aref = TREE_OPERAND (*aref, 0);
19850- continue;
19851- }
19852- else
19853- TREE_OPERAND (*aref, 1) = build_int_cst (TREE_TYPE (op), 0);
19854 }
19855+ else if (TREE_CODE (ref) == COMPONENT_REF
19856+ && TREE_CODE (TREE_TYPE (TREE_OPERAND (ref, 0))) == RECORD_TYPE)
19857+ {
19858+ /* For COMPONENT_REFs of records (but not unions!) use the
19859+ FIELD_DECL offset as constant access function so we can
19860+ disambiguate a[i].f1 and a[i].f2. */
19861+ tree off = component_ref_field_offset (ref);
19862+ off = size_binop (PLUS_EXPR,
19863+ size_binop (MULT_EXPR,
19864+ fold_convert (bitsizetype, off),
19865+ bitsize_int (BITS_PER_UNIT)),
19866+ DECL_FIELD_BIT_OFFSET (TREE_OPERAND (ref, 1)));
19867+ VEC_safe_push (tree, heap, access_fns, off);
19868+ }
19869+ else
19870+ /* If we have an unhandled component we could not translate
19871+ to an access function stop analyzing. We have determined
19872+ our base object in this case. */
19873+ break;
19874
19875- aref = &TREE_OPERAND (*aref, 0);
19876+ ref = TREE_OPERAND (ref, 0);
19877 }
19878
19879 /* If the address operand of a MEM_REF base has an evolution in the
19880 analyzed nest, add it as an additional independent access-function. */
19881- if (TREE_CODE (*aref) == MEM_REF)
19882+ if (TREE_CODE (ref) == MEM_REF)
19883 {
19884- op = TREE_OPERAND (*aref, 0);
19885+ op = TREE_OPERAND (ref, 0);
19886 access_fn = analyze_scalar_evolution (loop, op);
19887 access_fn = instantiate_scev (before_loop, loop, access_fn);
19888 if (TREE_CODE (access_fn) == POLYNOMIAL_CHREC)
19889 {
19890 tree orig_type;
19891+ tree memoff = TREE_OPERAND (ref, 1);
19892 base = initial_condition (access_fn);
19893 orig_type = TREE_TYPE (base);
19894 STRIP_USELESS_TYPE_CONVERSION (base);
19895 split_constant_offset (base, &base, &off);
19896 /* Fold the MEM_REF offset into the evolutions initial
19897 value to make more bases comparable. */
19898- if (!integer_zerop (TREE_OPERAND (*aref, 1)))
19899+ if (!integer_zerop (memoff))
19900 {
19901 off = size_binop (PLUS_EXPR, off,
19902- fold_convert (ssizetype,
19903- TREE_OPERAND (*aref, 1)));
19904- TREE_OPERAND (*aref, 1)
19905- = build_int_cst (TREE_TYPE (TREE_OPERAND (*aref, 1)), 0);
19906+ fold_convert (ssizetype, memoff));
19907+ memoff = build_int_cst (TREE_TYPE (memoff), 0);
19908 }
19909 access_fn = chrec_replace_initial_condition
19910 (access_fn, fold_convert (orig_type, off));
19911- *aref = fold_build2_loc (EXPR_LOCATION (*aref),
19912- MEM_REF, TREE_TYPE (*aref),
19913- base, TREE_OPERAND (*aref, 1));
19914+ /* ??? This is still not a suitable base object for
19915+ dr_may_alias_p - the base object needs to be an
19916+ access that covers the object as whole. With
19917+ an evolution in the pointer this cannot be
19918+ guaranteed.
19919+ As a band-aid, mark the access so we can special-case
19920+ it in dr_may_alias_p. */
19921+ ref = fold_build2_loc (EXPR_LOCATION (ref),
19922+ MEM_REF, TREE_TYPE (ref),
19923+ base, memoff);
19924+ DR_UNCONSTRAINED_BASE (dr) = true;
19925 VEC_safe_push (tree, heap, access_fns, access_fn);
19926 }
19927 }
19928+ else if (DECL_P (ref))
19929+ {
19930+ /* Canonicalize DR_BASE_OBJECT to MEM_REF form. */
19931+ ref = build2 (MEM_REF, TREE_TYPE (ref),
19932+ build_fold_addr_expr (ref),
19933+ build_int_cst (reference_alias_ptr_type (ref), 0));
19934+ }
19935
19936 DR_BASE_OBJECT (dr) = ref;
19937 DR_ACCESS_FNS (dr) = access_fns;
19938@@ -1345,6 +1368,27 @@
19939 return false;
19940 }
19941
19942+ /* If we had an evolution in a MEM_REF BASE_OBJECT we do not know
19943+ the size of the base-object. So we cannot do any offset/overlap
19944+ based analysis but have to rely on points-to information only. */
19945+ if (TREE_CODE (addr_a) == MEM_REF
19946+ && DR_UNCONSTRAINED_BASE (a))
19947+ {
19948+ if (TREE_CODE (addr_b) == MEM_REF
19949+ && DR_UNCONSTRAINED_BASE (b))
19950+ return ptr_derefs_may_alias_p (TREE_OPERAND (addr_a, 0),
19951+ TREE_OPERAND (addr_b, 0));
19952+ else
19953+ return ptr_derefs_may_alias_p (TREE_OPERAND (addr_a, 0),
19954+ build_fold_addr_expr (addr_b));
19955+ }
19956+ else if (TREE_CODE (addr_b) == MEM_REF
19957+ && DR_UNCONSTRAINED_BASE (b))
19958+ return ptr_derefs_may_alias_p (build_fold_addr_expr (addr_a),
19959+ TREE_OPERAND (addr_b, 0));
19960+
19961+ /* Otherwise DR_BASE_OBJECT is an access that covers the whole object
19962+ that is being subsetted in the loop nest. */
19963 if (DR_IS_WRITE (a) && DR_IS_WRITE (b))
19964 return refs_output_dependent_p (addr_a, addr_b);
19965 else if (DR_IS_READ (a) && DR_IS_WRITE (b))
19966@@ -1709,6 +1753,76 @@
19967 return double_int_to_tree (unsigned_type_node, nit);
19968 }
19969
19970+/* Determine whether the CHREC is always positive/negative. If the expression
19971+ cannot be statically analyzed, return false, otherwise set the answer into
19972+ VALUE. */
19973+
19974+static bool
19975+chrec_is_positive (tree chrec, bool *value)
19976+{
19977+ bool value0, value1, value2;
19978+ tree end_value, nb_iter;
19979+
19980+ switch (TREE_CODE (chrec))
19981+ {
19982+ case POLYNOMIAL_CHREC:
19983+ if (!chrec_is_positive (CHREC_LEFT (chrec), &value0)
19984+ || !chrec_is_positive (CHREC_RIGHT (chrec), &value1))
19985+ return false;
19986+
19987+ /* FIXME -- overflows. */
19988+ if (value0 == value1)
19989+ {
19990+ *value = value0;
19991+ return true;
19992+ }
19993+
19994+ /* Otherwise the chrec is under the form: "{-197, +, 2}_1",
19995+ and the proof consists in showing that the sign never
19996+ changes during the execution of the loop, from 0 to
19997+ loop->nb_iterations. */
19998+ if (!evolution_function_is_affine_p (chrec))
19999+ return false;
20000+
20001+ nb_iter = number_of_latch_executions (get_chrec_loop (chrec));
20002+ if (chrec_contains_undetermined (nb_iter))
20003+ return false;
20004+
20005+#if 0
20006+ /* TODO -- If the test is after the exit, we may decrease the number of
20007+ iterations by one. */
20008+ if (after_exit)
20009+ nb_iter = chrec_fold_minus (type, nb_iter, build_int_cst (type, 1));
20010+#endif
20011+
20012+ end_value = chrec_apply (CHREC_VARIABLE (chrec), chrec, nb_iter);
20013+
20014+ if (!chrec_is_positive (end_value, &value2))
20015+ return false;
20016+
20017+ *value = value0;
20018+ return value0 == value1;
20019+
20020+ case INTEGER_CST:
20021+ switch (tree_int_cst_sgn (chrec))
20022+ {
20023+ case -1:
20024+ *value = false;
20025+ break;
20026+ case 1:
20027+ *value = true;
20028+ break;
20029+ default:
20030+ return false;
20031+ }
20032+ return true;
20033+
20034+ default:
20035+ return false;
20036+ }
20037+}
20038+
20039+
20040 /* Analyze a SIV (Single Index Variable) subscript where CHREC_A is a
20041 constant, and CHREC_B is an affine function. *OVERLAPS_A and
20042 *OVERLAPS_B are initialized to the functions that describe the
20043@@ -1732,6 +1846,15 @@
20044 chrec_b = chrec_convert (type, chrec_b, NULL);
20045 difference = chrec_fold_minus (type, initial_condition (chrec_b), chrec_a);
20046
20047+ /* Special case overlap in the first iteration. */
20048+ if (integer_zerop (difference))
20049+ {
20050+ *overlaps_a = conflict_fn (1, affine_fn_cst (integer_zero_node));
20051+ *overlaps_b = conflict_fn (1, affine_fn_cst (integer_zero_node));
20052+ *last_conflicts = integer_one_node;
20053+ return;
20054+ }
20055+
20056 if (!chrec_is_positive (initial_condition (difference), &value0))
20057 {
20058 if (dump_file && (dump_flags & TDF_DETAILS))
20059@@ -3416,6 +3539,7 @@
20060 unsigned int i;
20061 tree last_conflicts;
20062 struct subscript *subscript;
20063+ tree res = NULL_TREE;
20064
20065 for (i = 0; VEC_iterate (subscript_p, DDR_SUBSCRIPTS (ddr), i, subscript);
20066 i++)
20067@@ -3427,40 +3551,43 @@
20068 &overlaps_a, &overlaps_b,
20069 &last_conflicts, loop_nest);
20070
20071+ if (SUB_CONFLICTS_IN_A (subscript))
20072+ free_conflict_function (SUB_CONFLICTS_IN_A (subscript));
20073+ if (SUB_CONFLICTS_IN_B (subscript))
20074+ free_conflict_function (SUB_CONFLICTS_IN_B (subscript));
20075+
20076+ SUB_CONFLICTS_IN_A (subscript) = overlaps_a;
20077+ SUB_CONFLICTS_IN_B (subscript) = overlaps_b;
20078+ SUB_LAST_CONFLICT (subscript) = last_conflicts;
20079+
20080+ /* If there is any undetermined conflict function we have to
20081+ give a conservative answer in case we cannot prove that
20082+ no dependence exists when analyzing another subscript. */
20083 if (CF_NOT_KNOWN_P (overlaps_a)
20084 || CF_NOT_KNOWN_P (overlaps_b))
20085 {
20086- finalize_ddr_dependent (ddr, chrec_dont_know);
20087- dependence_stats.num_dependence_undetermined++;
20088- free_conflict_function (overlaps_a);
20089- free_conflict_function (overlaps_b);
20090- return false;
20091+ res = chrec_dont_know;
20092+ continue;
20093 }
20094
20095+ /* When there is a subscript with no dependence we can stop. */
20096 else if (CF_NO_DEPENDENCE_P (overlaps_a)
20097 || CF_NO_DEPENDENCE_P (overlaps_b))
20098 {
20099- finalize_ddr_dependent (ddr, chrec_known);
20100- dependence_stats.num_dependence_independent++;
20101- free_conflict_function (overlaps_a);
20102- free_conflict_function (overlaps_b);
20103- return false;
20104+ res = chrec_known;
20105+ break;
20106 }
20107+ }
20108
20109- else
20110- {
20111- if (SUB_CONFLICTS_IN_A (subscript))
20112- free_conflict_function (SUB_CONFLICTS_IN_A (subscript));
20113- if (SUB_CONFLICTS_IN_B (subscript))
20114- free_conflict_function (SUB_CONFLICTS_IN_B (subscript));
20115+ if (res == NULL_TREE)
20116+ return true;
20117
20118- SUB_CONFLICTS_IN_A (subscript) = overlaps_a;
20119- SUB_CONFLICTS_IN_B (subscript) = overlaps_b;
20120- SUB_LAST_CONFLICT (subscript) = last_conflicts;
20121- }
20122- }
20123-
20124- return true;
20125+ if (res == chrec_known)
20126+ dependence_stats.num_dependence_independent++;
20127+ else
20128+ dependence_stats.num_dependence_undetermined++;
20129+ finalize_ddr_dependent (ddr, res);
20130+ return false;
20131 }
20132
20133 /* Computes the conflicting iterations in LOOP_NEST, and initialize DDR. */
20134@@ -4049,11 +4176,10 @@
20135 if (dump_file && (dump_flags & TDF_DETAILS))
20136 {
20137 fprintf (dump_file, "(compute_affine_dependence\n");
20138- fprintf (dump_file, " (stmt_a = \n");
20139- print_gimple_stmt (dump_file, DR_STMT (dra), 0, 0);
20140- fprintf (dump_file, ")\n (stmt_b = \n");
20141- print_gimple_stmt (dump_file, DR_STMT (drb), 0, 0);
20142- fprintf (dump_file, ")\n");
20143+ fprintf (dump_file, " stmt_a: ");
20144+ print_gimple_stmt (dump_file, DR_STMT (dra), 0, TDF_SLIM);
20145+ fprintf (dump_file, " stmt_b: ");
20146+ print_gimple_stmt (dump_file, DR_STMT (drb), 0, TDF_SLIM);
20147 }
20148
20149 /* Analyze only when the dependence relation is not yet known. */
20150@@ -4129,7 +4255,14 @@
20151 }
20152
20153 if (dump_file && (dump_flags & TDF_DETAILS))
20154- fprintf (dump_file, ")\n");
20155+ {
20156+ if (DDR_ARE_DEPENDENT (ddr) == chrec_known)
20157+ fprintf (dump_file, ") -> no dependence\n");
20158+ else if (DDR_ARE_DEPENDENT (ddr) == chrec_dont_know)
20159+ fprintf (dump_file, ") -> dependence analysis failed\n");
20160+ else
20161+ fprintf (dump_file, ")\n");
20162+ }
20163 }
20164
20165 /* Compute in DEPENDENCE_RELATIONS the data dependence graph for all
20166@@ -5075,20 +5208,19 @@
20167 VEC (data_reference_p, heap) **datarefs)
20168 {
20169 struct graph *rdg = NULL;
20170- VEC (gimple, heap) *stmts = VEC_alloc (gimple, heap, 10);
20171
20172- compute_data_dependences_for_loop (loop, false, loop_nest, datarefs,
20173- dependence_relations);
20174-
20175- if (known_dependences_p (*dependence_relations))
20176+ if (compute_data_dependences_for_loop (loop, false, loop_nest, datarefs,
20177+ dependence_relations)
20178+ && known_dependences_p (*dependence_relations))
20179 {
20180+ VEC (gimple, heap) *stmts = VEC_alloc (gimple, heap, 10);
20181 stmts_from_loop (loop, &stmts);
20182 rdg = build_empty_rdg (VEC_length (gimple, stmts));
20183 create_rdg_vertices (rdg, stmts);
20184 create_rdg_edges (rdg, *dependence_relations);
20185+ VEC_free (gimple, heap, stmts);
20186 }
20187
20188- VEC_free (gimple, heap, stmts);
20189 return rdg;
20190 }
20191
20192Index: gcc/tree-data-ref.h
20193===================================================================
20194--- gcc/tree-data-ref.h (.../tags/gcc_4_7_0_release) (wersja 187293)
20195+++ gcc/tree-data-ref.h (.../branches/gcc-4_7-branch) (wersja 187293)
20196@@ -60,16 +60,17 @@
20197 };
20198
20199 /* Describes the evolutions of indices of the memory reference. The indices
20200- are indices of the ARRAY_REFs and the operands of INDIRECT_REFs.
20201- For ARRAY_REFs, BASE_OBJECT is the reference with zeroed indices
20202- (note that this reference does not have to be valid, if zero does not
20203- belong to the range of the array; hence it is not recommended to use
20204- BASE_OBJECT in any code generation). For INDIRECT_REFs, the address is
20205- set to the loop-invariant part of the address of the object, except for
20206- the constant offset. For the examples above,
20207+ are indices of the ARRAY_REFs, indexes in artificial dimensions
20208+ added for member selection of records and the operands of MEM_REFs.
20209+ BASE_OBJECT is the part of the reference that is loop-invariant
20210+ (note that this reference does not have to cover the whole object
20211+ being accessed, in which case UNCONSTRAINED_BASE is set; hence it is
20212+ not recommended to use BASE_OBJECT in any code generation).
20213+ For the examples above,
20214
20215- base_object: a[0].b[0][0] *(p + x + 4B * j_0)
20216+ base_object: a *(p + x + 4B * j_0)
20217 indices: {j_0, +, 1}_2 {16, +, 4}_2
20218+ 4
20219 {i_0, +, 1}_1
20220 {j_0, +, 1}_2
20221 */
20222@@ -81,18 +82,17 @@
20223
20224 /* A list of chrecs. Access functions of the indices. */
20225 VEC(tree,heap) *access_fns;
20226+
20227+ /* Whether BASE_OBJECT is an access representing the whole object
20228+ or whether the access could not be constrained. */
20229+ bool unconstrained_base;
20230 };
20231
20232 struct dr_alias
20233 {
20234 /* The alias information that should be used for new pointers to this
20235- location. SYMBOL_TAG is either a DECL or a SYMBOL_MEMORY_TAG. */
20236+ location. */
20237 struct ptr_info_def *ptr_info;
20238-
20239- /* The set of virtual operands corresponding to this memory reference,
20240- serving as a description of the alias information for the memory
20241- reference. This could be eliminated if we had alias oracle. */
20242- bitmap vops;
20243 };
20244
20245 /* An integer vector. A vector formally consists of an element of a vector
20246@@ -201,6 +201,7 @@
20247 #define DR_STMT(DR) (DR)->stmt
20248 #define DR_REF(DR) (DR)->ref
20249 #define DR_BASE_OBJECT(DR) (DR)->indices.base_object
20250+#define DR_UNCONSTRAINED_BASE(DR) (DR)->indices.unconstrained_base
20251 #define DR_ACCESS_FNS(DR) (DR)->indices.access_fns
20252 #define DR_ACCESS_FN(DR, I) VEC_index (tree, DR_ACCESS_FNS (DR), I)
20253 #define DR_NUM_DIMENSIONS(DR) VEC_length (tree, DR_ACCESS_FNS (DR))
20254Index: gcc/tree-vect-data-refs.c
20255===================================================================
20256--- gcc/tree-vect-data-refs.c (.../tags/gcc_4_7_0_release) (wersja 187293)
20257+++ gcc/tree-vect-data-refs.c (.../branches/gcc-4_7-branch) (wersja 187293)
20258@@ -1141,12 +1141,8 @@
20259 if (!known_alignment_for_access_p (dr))
20260 {
20261 tree type = (TREE_TYPE (DR_REF (dr)));
20262- tree ba = DR_BASE_OBJECT (dr);
20263- bool is_packed = false;
20264+ bool is_packed = contains_packed_reference (DR_REF (dr));
20265
20266- if (ba)
20267- is_packed = contains_packed_reference (ba);
20268-
20269 if (compare_tree_int (TYPE_SIZE (type), TYPE_ALIGN (type)) > 0)
20270 is_packed = true;
20271
20272@@ -4672,13 +4668,8 @@
20273 return dr_explicit_realign_optimized;
20274 }
20275 if (!known_alignment_for_access_p (dr))
20276- {
20277- tree ba = DR_BASE_OBJECT (dr);
20278+ is_packed = contains_packed_reference (DR_REF (dr));
20279
20280- if (ba)
20281- is_packed = contains_packed_reference (ba);
20282- }
20283-
20284 if (targetm.vectorize.
20285 support_vector_misalignment (mode, type,
20286 DR_MISALIGNMENT (dr), is_packed))
20287@@ -4691,13 +4682,8 @@
20288 tree type = (TREE_TYPE (DR_REF (dr)));
20289
20290 if (!known_alignment_for_access_p (dr))
20291- {
20292- tree ba = DR_BASE_OBJECT (dr);
20293+ is_packed = contains_packed_reference (DR_REF (dr));
20294
20295- if (ba)
20296- is_packed = contains_packed_reference (ba);
20297- }
20298-
20299 if (targetm.vectorize.
20300 support_vector_misalignment (mode, type,
20301 DR_MISALIGNMENT (dr), is_packed))
20302Index: gcc/c-typeck.c
20303===================================================================
20304--- gcc/c-typeck.c (.../tags/gcc_4_7_0_release) (wersja 187293)
20305+++ gcc/c-typeck.c (.../branches/gcc-4_7-branch) (wersja 187293)
20306@@ -7598,7 +7598,7 @@
20307
20308 FOR_EACH_CONSTRUCTOR_ELT (constructor_elements, ix, index, value)
20309 {
20310- add_pending_init (index, value, NULL_TREE, false,
20311+ add_pending_init (index, value, NULL_TREE, true,
20312 braced_init_obstack);
20313 }
20314 constructor_elements = 0;
20315@@ -7691,7 +7691,7 @@
20316 }
20317
20318 value = build_int_cst_wide (type, val[1], val[0]);
20319- add_pending_init (purpose, value, NULL_TREE, false,
20320+ add_pending_init (purpose, value, NULL_TREE, true,
20321 braced_init_obstack);
20322 }
20323
20324@@ -9734,7 +9734,7 @@
20325 sc = convert (TREE_TYPE (type0), sc);
20326 op1 = build_vector_from_val (type0, sc);
20327 if (!maybe_const)
20328- op0 = c_wrap_maybe_const (op1, true);
20329+ op1 = c_wrap_maybe_const (op1, true);
20330 orig_type1 = type1 = TREE_TYPE (op1);
20331 code1 = TREE_CODE (type1);
20332 converted = 1;
20333Index: gcc/tree-ssa-phiopt.c
20334===================================================================
20335--- gcc/tree-ssa-phiopt.c (.../tags/gcc_4_7_0_release) (wersja 187293)
20336+++ gcc/tree-ssa-phiopt.c (.../branches/gcc-4_7-branch) (wersja 187293)
20337@@ -1556,8 +1556,17 @@
20338 /* Compute and check data dependencies in both basic blocks. */
20339 then_ddrs = VEC_alloc (ddr_p, heap, 1);
20340 else_ddrs = VEC_alloc (ddr_p, heap, 1);
20341- compute_all_dependences (then_datarefs, &then_ddrs, NULL, false);
20342- compute_all_dependences (else_datarefs, &else_ddrs, NULL, false);
20343+ if (!compute_all_dependences (then_datarefs, &then_ddrs, NULL, false)
20344+ || !compute_all_dependences (else_datarefs, &else_ddrs, NULL, false))
20345+ {
20346+ free_dependence_relations (then_ddrs);
20347+ free_dependence_relations (else_ddrs);
20348+ free_data_refs (then_datarefs);
20349+ free_data_refs (else_datarefs);
20350+ VEC_free (gimple, heap, then_stores);
20351+ VEC_free (gimple, heap, else_stores);
20352+ return false;
20353+ }
20354 blocks[0] = then_bb;
20355 blocks[1] = else_bb;
20356 blocks[2] = join_bb;
20357Index: gcc/expmed.c
20358===================================================================
20359--- gcc/expmed.c (.../tags/gcc_4_7_0_release) (wersja 187293)
20360+++ gcc/expmed.c (.../branches/gcc-4_7-branch) (wersja 187293)
20361@@ -550,7 +550,10 @@
20362 {
20363 /* If I is 0, use the low-order word in both field and target;
20364 if I is 1, use the next to lowest word; and so on. */
20365- unsigned int wordnum = (backwards ? nwords - i - 1 : i);
20366+ unsigned int wordnum = (backwards
20367+ ? GET_MODE_SIZE (fieldmode) / UNITS_PER_WORD
20368+ - i - 1
20369+ : i);
20370 unsigned int bit_offset = (backwards
20371 ? MAX ((int) bitsize - ((int) i + 1)
20372 * BITS_PER_WORD,
20373@@ -828,8 +831,7 @@
20374 /* Under the C++0x memory model, we must not touch bits outside the
20375 bit region. Adjust the address to start at the beginning of the
20376 bit region. */
20377- if (MEM_P (str_rtx)
20378- && bitregion_start > 0)
20379+ if (MEM_P (str_rtx) && bitregion_start > 0)
20380 {
20381 enum machine_mode bestmode;
20382 enum machine_mode op_mode;
20383@@ -839,6 +841,8 @@
20384 if (op_mode == MAX_MACHINE_MODE)
20385 op_mode = VOIDmode;
20386
20387+ gcc_assert ((bitregion_start % BITS_PER_UNIT) == 0);
20388+
20389 offset = bitregion_start / BITS_PER_UNIT;
20390 bitnum -= bitregion_start;
20391 bitregion_end -= bitregion_start;
20392Index: gcc/gimple-fold.c
20393===================================================================
20394--- gcc/gimple-fold.c (.../tags/gcc_4_7_0_release) (wersja 187293)
20395+++ gcc/gimple-fold.c (.../branches/gcc-4_7-branch) (wersja 187293)
20396@@ -3101,7 +3101,7 @@
20397 offset += token * size;
20398 fn = fold_ctor_reference (TREE_TYPE (TREE_TYPE (v)), DECL_INITIAL (v),
20399 offset, size);
20400- if (!fn)
20401+ if (!fn || integer_zerop (fn))
20402 return NULL_TREE;
20403 gcc_assert (TREE_CODE (fn) == ADDR_EXPR
20404 || TREE_CODE (fn) == FDESC_EXPR);
20405Index: gcc/tree-ssa-pre.c
20406===================================================================
20407--- gcc/tree-ssa-pre.c (.../tags/gcc_4_7_0_release) (wersja 187293)
20408+++ gcc/tree-ssa-pre.c (.../branches/gcc-4_7-branch) (wersja 187293)
20409@@ -4337,6 +4337,7 @@
20410 has the same value number as its rhs. If so, the store is
20411 dead. */
20412 else if (gimple_assign_single_p (stmt)
20413+ && !gimple_has_volatile_ops (stmt)
20414 && !is_gimple_reg (gimple_assign_lhs (stmt))
20415 && (TREE_CODE (rhs) == SSA_NAME
20416 || is_gimple_min_invariant (rhs)))
20417Index: gcc/tree-sra.c
20418===================================================================
20419--- gcc/tree-sra.c (.../tags/gcc_4_7_0_release) (wersja 187293)
20420+++ gcc/tree-sra.c (.../branches/gcc-4_7-branch) (wersja 187293)
20421@@ -3120,7 +3120,13 @@
20422 }
20423 else
20424 {
20425- if (access_has_children_p (lacc) && access_has_children_p (racc))
20426+ if (access_has_children_p (lacc)
20427+ && access_has_children_p (racc)
20428+ /* When an access represents an unscalarizable region, it usually
20429+ represents accesses with variable offset and thus must not be used
20430+ to generate new memory accesses. */
20431+ && !lacc->grp_unscalarizable_region
20432+ && !racc->grp_unscalarizable_region)
20433 {
20434 gimple_stmt_iterator orig_gsi = *gsi;
20435 enum unscalarized_data_handling refreshed;
20436@@ -4693,8 +4699,8 @@
20437 if (dump_file)
20438 fprintf (dump_file, "Adjusting call (%i -> %i) %s -> %s\n",
20439 cs->caller->uid, cs->callee->uid,
20440- cgraph_node_name (cs->caller),
20441- cgraph_node_name (cs->callee));
20442+ xstrdup (cgraph_node_name (cs->caller)),
20443+ xstrdup (cgraph_node_name (cs->callee)));
20444
20445 ipa_modify_call_arguments (cs, cs->call_stmt, adjustments);
20446
20447Index: gcc/tree-predcom.c
20448===================================================================
20449--- gcc/tree-predcom.c (.../tags/gcc_4_7_0_release) (wersja 187293)
20450+++ gcc/tree-predcom.c (.../branches/gcc-4_7-branch) (wersja 187293)
20451@@ -1707,6 +1707,7 @@
20452 {
20453 name = PHI_RESULT (stmt);
20454 next = single_nonlooparound_use (name);
20455+ reset_debug_uses (stmt);
20456 psi = gsi_for_stmt (stmt);
20457 remove_phi_node (&psi, true);
20458
20459@@ -1728,6 +1729,7 @@
20460 gcc_assert (TREE_CODE (name) == SSA_NAME);
20461
20462 next = single_nonlooparound_use (name);
20463+ reset_debug_uses (stmt);
20464
20465 mark_virtual_ops_for_renaming (stmt);
20466 gsi_remove (&bsi, true);
20467Index: gcc/lto/lang.opt
20468===================================================================
20469--- gcc/lto/lang.opt (.../tags/gcc_4_7_0_release) (wersja 187293)
20470+++ gcc/lto/lang.opt (.../branches/gcc-4_7-branch) (wersja 187293)
20471@@ -25,7 +25,7 @@
20472 LTO
20473
20474 fltrans
20475-LTO Report Var(flag_ltrans) Optimization
20476+LTO Report Var(flag_ltrans)
20477 Run the link-time optimizer in local transformation (LTRANS) mode.
20478
20479 fltrans-output-list=
20480@@ -33,7 +33,7 @@
20481 Specify a file to which a list of files output by LTRANS is written.
20482
20483 fwpa
20484-LTO Driver Report Var(flag_wpa) Optimization
20485+LTO Driver Report Var(flag_wpa)
20486 Run the link-time optimizer in whole program analysis (WPA) mode.
20487
20488 fresolution=
20489Index: gcc/lto/ChangeLog
20490===================================================================
20491--- gcc/lto/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293)
20492+++ gcc/lto/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293)
20493@@ -1,3 +1,8 @@
20494+2012-05-04 Richard Guenther <rguenther@suse.de>
20495+
20496+ * lang.opt (fwpa): Do not mark as Optimization.
20497+ (fltrans): Likewise.
20498+
20499 2012-03-22 Release Manager
20500
20501 * GCC 4.7.0 released.
20502Index: gcc/ipa-prop.c
20503===================================================================
20504--- gcc/ipa-prop.c (.../tags/gcc_4_7_0_release) (wersja 187293)
20505+++ gcc/ipa-prop.c (.../branches/gcc-4_7-branch) (wersja 187293)
20506@@ -230,8 +230,8 @@
20507 continue;
20508
20509 fprintf (f, " callsite %s/%i -> %s/%i : \n",
20510- cgraph_node_name (node), node->uid,
20511- cgraph_node_name (cs->callee), cs->callee->uid);
20512+ xstrdup (cgraph_node_name (node)), node->uid,
20513+ xstrdup (cgraph_node_name (cs->callee)), cs->callee->uid);
20514 ipa_print_node_jump_functions_for_edge (f, cs);
20515 }
20516
20517@@ -1780,8 +1780,8 @@
20518 fprintf (dump_file, "ipa-prop: Discovered %s call to a known target "
20519 "(%s/%i -> %s/%i), for stmt ",
20520 ie->indirect_info->polymorphic ? "a virtual" : "an indirect",
20521- cgraph_node_name (ie->caller), ie->caller->uid,
20522- cgraph_node_name (ie->callee), ie->callee->uid);
20523+ xstrdup (cgraph_node_name (ie->caller)), ie->caller->uid,
20524+ xstrdup (cgraph_node_name (ie->callee)), ie->callee->uid);
20525 if (ie->call_stmt)
20526 print_gimple_stmt (dump_file, ie->call_stmt, 2, TDF_SLIM);
20527 else
20528Index: gcc/po/es.po
20529===================================================================
20530--- gcc/po/es.po (.../tags/gcc_4_7_0_release) (wersja 187293)
20531+++ gcc/po/es.po (.../branches/gcc-4_7-branch) (wersja 187293)
20532@@ -1,4 +1,4 @@
20533-# Mensajes en español para gcc-4.7-b20120128.
20534+# Mensajes en español para gcc-4.7.0.
20535 # Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
20536 # This file is distributed under the same license as the gcc package.
20537 # Cristian Othón Martínez Vera <cfuga@cfuga.mx>, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
20538@@ -7,10 +7,10 @@
20539 #
20540 msgid ""
20541 msgstr ""
20542-"Project-Id-Version: gcc 4.7-b20120128\n"
20543+"Project-Id-Version: gcc 4.7.0\n"
20544 "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
20545-"POT-Creation-Date: 2012-01-27 16:13+0000\n"
20546-"PO-Revision-Date: 2012-01-31 08:34-0600\n"
20547+"POT-Creation-Date: 2012-03-18 14:00+0000\n"
20548+"PO-Revision-Date: 2012-03-26 10:36-0600\n"
20549 "Last-Translator: Cristian Othón Martínez Vera <cfuga@cfuga.mx>\n"
20550 "Language-Team: Spanish <es@li.org>\n"
20551 "Language: es\n"
20552@@ -19,7 +19,7 @@
20553 "Content-Transfer-Encoding: 8bit\n"
20554 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
20555
20556-#: c-decl.c:4712 c-typeck.c:5944 toplev.c:1013 c-family/c-pretty-print.c:424
20557+#: c-decl.c:4713 c-typeck.c:5944 toplev.c:1013 c-family/c-pretty-print.c:424
20558 #: cp/error.c:656 cp/error.c:938
20559 msgid "<anonymous>"
20560 msgstr "<anónimo>"
20561@@ -229,13 +229,13 @@
20562
20563 #: diagnostic.c:136
20564 #, c-format
20565-msgid "%s: all warnings being treated as errors\n"
20566-msgstr "%s: todos los avisos se tratan como errores\n"
20567+msgid "%s: all warnings being treated as errors"
20568+msgstr "%s: todos los avisos se tratan como errores"
20569
20570 #: diagnostic.c:141
20571 #, c-format
20572-msgid "%s: some warnings being treated as errors\n"
20573-msgstr "%s: algunos avisos se tratan como errores\n"
20574+msgid "%s: some warnings being treated as errors"
20575+msgstr "%s: algunos avisos se tratan como errores"
20576
20577 #: diagnostic.c:219
20578 #, c-format
20579@@ -321,22 +321,22 @@
20580 #. TARGET_PRINT_OPERAND must handle them.
20581 #. We can't handle floating point constants;
20582 #. PRINT_OPERAND must handle them.
20583-#: final.c:3615 config/i386/i386.c:13019 config/pdp11/pdp11.c:1689
20584+#: final.c:3615 config/i386/i386.c:13033 config/pdp11/pdp11.c:1689
20585 #, c-format
20586 msgid "floating constant misused"
20587 msgstr "constante de coma flotante mal usada"
20588
20589-#: final.c:3673 config/i386/i386.c:13117 config/pdp11/pdp11.c:1730
20590+#: final.c:3673 config/i386/i386.c:13131 config/pdp11/pdp11.c:1730
20591 #, c-format
20592 msgid "invalid expression as operand"
20593 msgstr "expresión inválida como operando"
20594
20595-#: gcc.c:1323
20596+#: gcc.c:1329
20597 #, c-format
20598 msgid "Using built-in specs.\n"
20599 msgstr "Usando especificaciones internas.\n"
20600
20601-#: gcc.c:1520
20602+#: gcc.c:1526
20603 #, c-format
20604 msgid ""
20605 "Setting spec %s to '%s'\n"
20606@@ -345,22 +345,22 @@
20607 "Cambiando la especificación %s a '%s'\n"
20608 "\n"
20609
20610-#: gcc.c:1630
20611+#: gcc.c:1636
20612 #, c-format
20613 msgid "Reading specs from %s\n"
20614 msgstr "Leyendo especificaciones de %s\n"
20615
20616-#: gcc.c:1755
20617+#: gcc.c:1761
20618 #, c-format
20619 msgid "could not find specs file %s\n"
20620 msgstr "no se puede encontrar el fichero de especificaciones %s\n"
20621
20622-#: gcc.c:1824
20623+#: gcc.c:1830
20624 #, c-format
20625 msgid "rename spec %s to %s\n"
20626 msgstr "renombrando la especificación %s a %s\n"
20627
20628-#: gcc.c:1826
20629+#: gcc.c:1832
20630 #, c-format
20631 msgid ""
20632 "spec is '%s'\n"
20633@@ -369,13 +369,13 @@
20634 "la especificacion es '%s'\n"
20635 "\n"
20636
20637-#: gcc.c:2243
20638+#: gcc.c:2249
20639 #, c-format
20640 msgid "%s\n"
20641 msgstr "%s\n"
20642
20643 # El código require 'y' o 'Y' como respuesta afirmativa. cfuga
20644-#: gcc.c:2607
20645+#: gcc.c:2613
20646 #, c-format
20647 msgid ""
20648 "\n"
20649@@ -384,81 +384,81 @@
20650 "\n"
20651 "¿Continuar? (y ó n) "
20652
20653-#: gcc.c:2747
20654+#: gcc.c:2753
20655 #, c-format
20656 msgid "# %s %.2f %.2f\n"
20657 msgstr "# %s %.2f %.2f\n"
20658
20659-#: gcc.c:2949
20660+#: gcc.c:2955
20661 #, c-format
20662 msgid "Usage: %s [options] file...\n"
20663 msgstr "Modo de empleo: %s [opciones] fichero...\n"
20664
20665-#: gcc.c:2950
20666+#: gcc.c:2956
20667 msgid "Options:\n"
20668 msgstr "Opciones:\n"
20669
20670-#: gcc.c:2952
20671+#: gcc.c:2958
20672 msgid " -pass-exit-codes Exit with highest error code from a phase\n"
20673 msgstr " -pass-exit-codes Sale con el código de error más alto de una fase\n"
20674
20675-#: gcc.c:2953
20676+#: gcc.c:2959
20677 msgid " --help Display this information\n"
20678 msgstr " --help Muestra esta información\n"
20679
20680-#: gcc.c:2954
20681+#: gcc.c:2960
20682 msgid " --target-help Display target specific command line options\n"
20683 msgstr " --target-help Muestra opciones de línea de órdenes específicas del objetivo\n"
20684
20685-#: gcc.c:2955
20686-msgid " --help={target|optimizers|warnings|params|[^]{joined|separate|undocumented}}[,...]\n"
20687-msgstr " --help={target|optimizers|warnings|params|[^]{joined|separate|undocumented}}[,...]\n"
20688+#: gcc.c:2961
20689+msgid " --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...]\n"
20690+msgstr " --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...]\n"
20691
20692-#: gcc.c:2956
20693+#: gcc.c:2962
20694 msgid " Display specific types of command line options\n"
20695 msgstr " Muestra tipos específicos de opciones de línea de órdenes\n"
20696
20697-#: gcc.c:2958
20698+#: gcc.c:2964
20699 msgid " (Use '-v --help' to display command line options of sub-processes)\n"
20700 msgstr " (Use '-v --help' para mostrar las opciones de línea de órdenes de los subprocesos)\n"
20701
20702-#: gcc.c:2959
20703+#: gcc.c:2965
20704 msgid " --version Display compiler version information\n"
20705 msgstr " --version Muestra la información de versión del compilador\n"
20706
20707-#: gcc.c:2960
20708+#: gcc.c:2966
20709 msgid " -dumpspecs Display all of the built in spec strings\n"
20710 msgstr " -dumpspecs Muestra todas las cadenas internas de especificación\n"
20711
20712-#: gcc.c:2961
20713+#: gcc.c:2967
20714 msgid " -dumpversion Display the version of the compiler\n"
20715 msgstr " -dumpversion Muestra la versión del compilador\n"
20716
20717-#: gcc.c:2962
20718+#: gcc.c:2968
20719 msgid " -dumpmachine Display the compiler's target processor\n"
20720 msgstr " -dumpmachine Muestra el procesador objetivo del compilador\n"
20721
20722-#: gcc.c:2963
20723+#: gcc.c:2969
20724 msgid " -print-search-dirs Display the directories in the compiler's search path\n"
20725 msgstr " -print-search-dirs Muestra los directorios en la ruta de búsqueda del compilador\n"
20726
20727-#: gcc.c:2964
20728+#: gcc.c:2970
20729 msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
20730 msgstr " -print-libgcc-file-name Muestra el nombre de la biblioteca que acompaña al compilador\n"
20731
20732-#: gcc.c:2965
20733+#: gcc.c:2971
20734 msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
20735 msgstr " -print-file-name=<bib> Muestra la ruta completa a la biblioteca <bib>\n"
20736
20737-#: gcc.c:2966
20738+#: gcc.c:2972
20739 msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
20740 msgstr " -print-prog-name=<prog> Muestra la ruta completa del programa componente del compilador <prog>\n"
20741
20742-#: gcc.c:2967
20743+#: gcc.c:2973
20744 msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
20745 msgstr " -print-multi-directory Muestra el directorio raíz para las versiones de libgcc\n"
20746
20747-#: gcc.c:2968
20748+#: gcc.c:2974
20749 msgid ""
20750 " -print-multi-lib Display the mapping between command line options and\n"
20751 " multiple library search directories\n"
20752@@ -466,51 +466,51 @@
20753 " -print-multi-lib Muestra el mapeo entre las opciones de línea de órdenes\n"
20754 " y los múltiples directorios de búsqueda de bibliotecas\n"
20755
20756-#: gcc.c:2971
20757+#: gcc.c:2977
20758 msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
20759 msgstr " -print-multi-os-directory Muestra la ruta relativa para las bibliotecas del SO\n"
20760
20761-#: gcc.c:2972
20762+#: gcc.c:2978
20763 msgid " -print-sysroot Display the target libraries directory\n"
20764 msgstr " -print-sysroot Muestra el directorio de las bibliotecas objetivo\n"
20765
20766-#: gcc.c:2973
20767+#: gcc.c:2979
20768 msgid " -print-sysroot-headers-suffix Display the sysroot suffix used to find headers\n"
20769 msgstr " -print-sysroot-headers-suffix Muestra el sufijo sysroot que se usa para buscar encabezados\n"
20770
20771-#: gcc.c:2974
20772+#: gcc.c:2980
20773 msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
20774 msgstr " -Wa,<opciones> Pasa <opciones> separadas por coma al ensamblador\n"
20775
20776-#: gcc.c:2975
20777+#: gcc.c:2981
20778 msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
20779 msgstr " -Wp,<opciones> Pasa <opciones> separadas por coma al preprocesador\n"
20780
20781-#: gcc.c:2976
20782+#: gcc.c:2982
20783 msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
20784 msgstr " -Wl,<opciones> Pasa <opciones> separadas por coma al enlazador\n"
20785
20786-#: gcc.c:2977
20787+#: gcc.c:2983
20788 msgid " -Xassembler <arg> Pass <arg> on to the assembler\n"
20789 msgstr " -Xassembler <argumento> Pasa el <argumento> al ensamblador\n"
20790
20791-#: gcc.c:2978
20792+#: gcc.c:2984
20793 msgid " -Xpreprocessor <arg> Pass <arg> on to the preprocessor\n"
20794 msgstr " -Xpreprocessor <argumento> Pasa el <argumento> al preprocesador\n"
20795
20796-#: gcc.c:2979
20797+#: gcc.c:2985
20798 msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
20799 msgstr " -Xlinker <argumento> Pasa el <argumento> al enlazador\n"
20800
20801-#: gcc.c:2980
20802+#: gcc.c:2986
20803 msgid " -save-temps Do not delete intermediate files\n"
20804 msgstr " -save-temps No borra los ficheros intermedios\n"
20805
20806-#: gcc.c:2981
20807+#: gcc.c:2987
20808 msgid " -save-temps=<arg> Do not delete intermediate files\n"
20809 msgstr " -save-temps=<arg> No borra los ficheros intermedios\n"
20810
20811-#: gcc.c:2982
20812+#: gcc.c:2988
20813 msgid ""
20814 " -no-canonical-prefixes Do not canonicalize paths when building relative\n"
20815 " prefixes to other gcc components\n"
20816@@ -518,23 +518,23 @@
20817 " -no-canonical-prefixes No crea rutas completas al construir prefijos\n"
20818 " relativos a otros componentes de gcc\n"
20819
20820-#: gcc.c:2985
20821+#: gcc.c:2991
20822 msgid " -pipe Use pipes rather than intermediate files\n"
20823 msgstr " -pipe Usa tuberías en lugar de ficheros intermedios\n"
20824
20825-#: gcc.c:2986
20826+#: gcc.c:2992
20827 msgid " -time Time the execution of each subprocess\n"
20828 msgstr " -time Obtiene el tiempo de ejecución de cada subproceso\n"
20829
20830-#: gcc.c:2987
20831+#: gcc.c:2993
20832 msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
20833 msgstr " -specs=<fichero> Sobrepone las especificaciones internas con el contenido del <fichero>\n"
20834
20835-#: gcc.c:2988
20836+#: gcc.c:2994
20837 msgid " -std=<standard> Assume that the input sources are for <standard>\n"
20838 msgstr " -std=<estándar> Asume que los ficheros de entrada son para el <estándar>\n"
20839
20840-#: gcc.c:2989
20841+#: gcc.c:2995
20842 msgid ""
20843 " --sysroot=<directory> Use <directory> as the root directory for headers\n"
20844 " and libraries\n"
20845@@ -542,43 +542,43 @@
20846 " --sysroot=<directorio> Usa el <directorio> como directorio raíz para\n"
20847 " los encabezados y bibliotecas\n"
20848
20849-#: gcc.c:2992
20850+#: gcc.c:2998
20851 msgid " -B <directory> Add <directory> to the compiler's search paths\n"
20852 msgstr " -B <directorio> Agrega el <directorio> a las rutas de búsqueda del compilador\n"
20853
20854-#: gcc.c:2993
20855+#: gcc.c:2999
20856 msgid " -v Display the programs invoked by the compiler\n"
20857 msgstr " -v Muestra los programas invocados por el compilador\n"
20858
20859-#: gcc.c:2994
20860+#: gcc.c:3000
20861 msgid " -### Like -v but options quoted and commands not executed\n"
20862 msgstr " -### Como -v pero no se ejecutan las opciones entre comillas y las órdenes\n"
20863
20864-#: gcc.c:2995
20865+#: gcc.c:3001
20866 msgid " -E Preprocess only; do not compile, assemble or link\n"
20867 msgstr " -E Solamente preprocesa; no compila, ensambla o enlaza\n"
20868
20869-#: gcc.c:2996
20870+#: gcc.c:3002
20871 msgid " -S Compile only; do not assemble or link\n"
20872 msgstr " -S Solamente compila; no ensambla o enlaza\n"
20873
20874-#: gcc.c:2997
20875+#: gcc.c:3003
20876 msgid " -c Compile and assemble, but do not link\n"
20877 msgstr " -c Compila y ensambla, pero no enlaza\n"
20878
20879-#: gcc.c:2998
20880+#: gcc.c:3004
20881 msgid " -o <file> Place the output into <file>\n"
20882 msgstr " -o <fichero> Coloca la salida en el <fichero>\n"
20883
20884-#: gcc.c:2999
20885+#: gcc.c:3005
20886 msgid " -pie Create a position independent executable\n"
20887 msgstr " -pie Genera un ejecutable independiente de posición\n"
20888
20889-#: gcc.c:3000
20890+#: gcc.c:3006
20891 msgid " -shared Create a shared library\n"
20892 msgstr " -shared Crea una biblioteca compartida\n"
20893
20894-#: gcc.c:3001
20895+#: gcc.c:3007
20896 msgid ""
20897 " -x <language> Specify the language of the following input files\n"
20898 " Permissible languages include: c c++ assembler none\n"
20899@@ -590,7 +590,7 @@
20900 " 'none' significa revertir a la conducta habitual de\n"
20901 " adivinar el lenguaje basado en la extensión del fichero\n"
20902
20903-#: gcc.c:3008
20904+#: gcc.c:3014
20905 #, c-format
20906 msgid ""
20907 "\n"
20908@@ -603,27 +603,27 @@
20909 " automáticamente a los varios subprocesos invocados por %s. Para pasar\n"
20910 " otras opciones a estos procesos se deben usar las opciones -W<letra>.\n"
20911
20912-#: gcc.c:5233
20913+#: gcc.c:5239
20914 #, c-format
20915 msgid "Processing spec (%s), which is '%s'\n"
20916 msgstr "Se procesa la especificación (%s), la cual es '%s'\n"
20917
20918-#: gcc.c:6472
20919+#: gcc.c:6497
20920 #, c-format
20921 msgid "install: %s%s\n"
20922 msgstr "instalar: %s%s\n"
20923
20924-#: gcc.c:6475
20925+#: gcc.c:6500
20926 #, c-format
20927 msgid "programs: %s\n"
20928 msgstr "programas: %s\n"
20929
20930-#: gcc.c:6477
20931+#: gcc.c:6502
20932 #, c-format
20933 msgid "libraries: %s\n"
20934 msgstr "bibliotecas: %s\n"
20935
20936-#: gcc.c:6552
20937+#: gcc.c:6577
20938 #, c-format
20939 msgid ""
20940 "\n"
20941@@ -632,16 +632,16 @@
20942 "\n"
20943 "Para instrucciones de reporte de bichos, por favor vea:\n"
20944
20945-#: gcc.c:6568
20946+#: gcc.c:6593
20947 #, c-format
20948 msgid "%s %s%s\n"
20949 msgstr "%s %s%s\n"
20950
20951-#: gcc.c:6571 gcov.c:488 fortran/gfortranspec.c:305 java/jcf-dump.c:1165
20952+#: gcc.c:6596 gcov.c:488 fortran/gfortranspec.c:305 java/jcf-dump.c:1165
20953 msgid "(C)"
20954 msgstr "(C)"
20955
20956-#: gcc.c:6572 java/jcf-dump.c:1166
20957+#: gcc.c:6597 java/jcf-dump.c:1166
20958 #, c-format
20959 msgid ""
20960 "This is free software; see the source for copying conditions. There is NO\n"
20961@@ -653,32 +653,32 @@
20962 "PARTICULAR\n"
20963 "\n"
20964
20965-#: gcc.c:6589
20966+#: gcc.c:6614
20967 #, c-format
20968 msgid "Target: %s\n"
20969 msgstr "Objetivo: %s\n"
20970
20971-#: gcc.c:6590
20972+#: gcc.c:6615
20973 #, c-format
20974 msgid "Configured with: %s\n"
20975 msgstr "Configurado con: %s\n"
20976
20977-#: gcc.c:6604
20978+#: gcc.c:6629
20979 #, c-format
20980 msgid "Thread model: %s\n"
20981 msgstr "Modelo de hilos: %s\n"
20982
20983-#: gcc.c:6615
20984+#: gcc.c:6640
20985 #, c-format
20986 msgid "gcc version %s %s\n"
20987 msgstr "gcc versión %s %s\n"
20988
20989-#: gcc.c:6618
20990+#: gcc.c:6643
20991 #, c-format
20992 msgid "gcc driver version %s %sexecuting gcc version %s\n"
20993 msgstr "controlador gcc versión %s %sejecutando gcc versión %s\n"
20994
20995-#: gcc.c:6865
20996+#: gcc.c:6897
20997 #, c-format
20998 msgid ""
20999 "\n"
21000@@ -691,14 +691,14 @@
21001 "======================\n"
21002 "\n"
21003
21004-#: gcc.c:6866
21005+#: gcc.c:6898
21006 #, c-format
21007 msgid ""
21008 "Use \"-Wl,OPTION\" to pass \"OPTION\" to the linker.\n"
21009 "\n"
21010 msgstr "Utilice \"-Wl,OPCIÓN\" para pasar la \"OPCIÓN\" al enlazador.\n"
21011
21012-#: gcc.c:8058
21013+#: gcc.c:8090
21014 #, c-format
21015 msgid ""
21016 "Assembler options\n"
21017@@ -709,7 +709,7 @@
21018 "=======================\n"
21019 "\n"
21020
21021-#: gcc.c:8059
21022+#: gcc.c:8091
21023 #, c-format
21024 msgid ""
21025 "Use \"-Wa,OPTION\" to pass \"OPTION\" to the assembler.\n"
21026@@ -1185,27 +1185,27 @@
21027 msgid "At top level:"
21028 msgstr "En el nivel principal:"
21029
21030-#: langhooks.c:394 cp/error.c:2985
21031+#: langhooks.c:394 cp/error.c:2987
21032 #, c-format
21033 msgid "In member function %qs"
21034 msgstr "En la función miembro %qs"
21035
21036-#: langhooks.c:398 cp/error.c:2988
21037+#: langhooks.c:398 cp/error.c:2990
21038 #, c-format
21039 msgid "In function %qs"
21040 msgstr "En la función %qs"
21041
21042-#: langhooks.c:449 cp/error.c:2938
21043+#: langhooks.c:449 cp/error.c:2940
21044 #, c-format
21045 msgid " inlined from %qs at %s:%d:%d"
21046 msgstr " incluído en línea de %qs en %s:%d:%d"
21047
21048-#: langhooks.c:454 cp/error.c:2943
21049+#: langhooks.c:454 cp/error.c:2945
21050 #, c-format
21051 msgid " inlined from %qs at %s:%d"
21052 msgstr " incluído en línea de %qs en %s:%d"
21053
21054-#: langhooks.c:460 cp/error.c:2949
21055+#: langhooks.c:460 cp/error.c:2951
21056 #, c-format
21057 msgid " inlined from %qs"
21058 msgstr " incluído en línea de %qs"
21059@@ -1397,7 +1397,7 @@
21060 msgid "VOIDmode on an output"
21061 msgstr "modoVOID en una salida"
21062
21063-#: reload1.c:8653
21064+#: reload1.c:8658
21065 msgid "failure trying to reload:"
21066 msgstr "falla al tratar de recargar:"
21067
21068@@ -1409,39 +1409,39 @@
21069 msgid "insn does not satisfy its constraints:"
21070 msgstr "la insn no satisface sus restricciones:"
21071
21072-#: targhooks.c:1403
21073+#: targhooks.c:1404
21074 #, c-format
21075 msgid "created and used with differing settings of '%s'"
21076 msgstr "creado y usado con diferentes opciones de '%s'"
21077
21078-#: targhooks.c:1405
21079+#: targhooks.c:1406
21080 msgid "out of memory"
21081 msgstr "memoria agotada"
21082
21083-#: targhooks.c:1420
21084+#: targhooks.c:1421
21085 msgid "created and used with different settings of -fpic"
21086 msgstr "creado y usado con diferentes opciones de -fpic"
21087
21088-#: targhooks.c:1422
21089+#: targhooks.c:1423
21090 msgid "created and used with different settings of -fpie"
21091 msgstr "creado y usado con diferentes opciones de -fpie"
21092
21093-#: tlink.c:387
21094+#: tlink.c:392
21095 #, c-format
21096 msgid "collect: reading %s\n"
21097 msgstr "collect: leyendo %s\n"
21098
21099-#: tlink.c:537
21100+#: tlink.c:548
21101 #, c-format
21102 msgid "collect: recompiling %s\n"
21103 msgstr "collect: recompilando %s\n"
21104
21105-#: tlink.c:744
21106+#: tlink.c:632
21107 #, c-format
21108 msgid "collect: tweaking %s in %s\n"
21109 msgstr "collect: alterando %s en %s\n"
21110
21111-#: tlink.c:794
21112+#: tlink.c:848
21113 #, c-format
21114 msgid "collect: relinking\n"
21115 msgstr "collect: reenlazando\n"
21116@@ -2523,121 +2523,121 @@
21117 msgid "<return-value>"
21118 msgstr "<valor-devolución>"
21119
21120-#: c-family/c-pretty-print.c:2138 cp/error.c:1802 cp/error.c:2711
21121+#: c-family/c-pretty-print.c:2138 cp/error.c:1802 cp/error.c:2713
21122 msgid "<unknown>"
21123 msgstr "<desconocido>"
21124
21125-#: config/alpha/alpha.c:5017
21126+#: config/alpha/alpha.c:5022
21127 #, c-format
21128 msgid "invalid %%H value"
21129 msgstr "valor %%H inválido"
21130
21131-#: config/alpha/alpha.c:5038 config/bfin/bfin.c:1423
21132+#: config/alpha/alpha.c:5043 config/bfin/bfin.c:1423
21133 #, c-format
21134 msgid "invalid %%J value"
21135 msgstr "valor %%J inválido"
21136
21137-#: config/alpha/alpha.c:5068 config/ia64/ia64.c:5291
21138+#: config/alpha/alpha.c:5073 config/ia64/ia64.c:5291
21139 #, c-format
21140 msgid "invalid %%r value"
21141 msgstr "valor %%r inválido"
21142
21143-#: config/alpha/alpha.c:5078 config/ia64/ia64.c:5245
21144-#: config/rs6000/rs6000.c:15003 config/xtensa/xtensa.c:2350
21145+#: config/alpha/alpha.c:5083 config/ia64/ia64.c:5245
21146+#: config/rs6000/rs6000.c:15019 config/xtensa/xtensa.c:2350
21147 #, c-format
21148 msgid "invalid %%R value"
21149 msgstr "valor %%R inválido"
21150
21151-#: config/alpha/alpha.c:5084 config/rs6000/rs6000.c:14922
21152+#: config/alpha/alpha.c:5089 config/rs6000/rs6000.c:14938
21153 #: config/xtensa/xtensa.c:2317
21154 #, c-format
21155 msgid "invalid %%N value"
21156 msgstr "valor %%N inválido"
21157
21158-#: config/alpha/alpha.c:5092 config/rs6000/rs6000.c:14950
21159+#: config/alpha/alpha.c:5097 config/rs6000/rs6000.c:14966
21160 #, c-format
21161 msgid "invalid %%P value"
21162 msgstr "valor %%P inválido"
21163
21164-#: config/alpha/alpha.c:5100
21165+#: config/alpha/alpha.c:5105
21166 #, c-format
21167 msgid "invalid %%h value"
21168 msgstr "valor %%h inválido"
21169
21170-#: config/alpha/alpha.c:5108 config/xtensa/xtensa.c:2343
21171+#: config/alpha/alpha.c:5113 config/xtensa/xtensa.c:2343
21172 #, c-format
21173 msgid "invalid %%L value"
21174 msgstr "valor %%L inválido"
21175
21176-#: config/alpha/alpha.c:5147 config/rs6000/rs6000.c:14904
21177+#: config/alpha/alpha.c:5152 config/rs6000/rs6000.c:14920
21178 #, c-format
21179 msgid "invalid %%m value"
21180 msgstr "valor %%m inválido"
21181
21182-#: config/alpha/alpha.c:5155 config/rs6000/rs6000.c:14912
21183+#: config/alpha/alpha.c:5160 config/rs6000/rs6000.c:14928
21184 #, c-format
21185 msgid "invalid %%M value"
21186 msgstr "valor %%M inválido"
21187
21188-#: config/alpha/alpha.c:5199
21189+#: config/alpha/alpha.c:5204
21190 #, c-format
21191 msgid "invalid %%U value"
21192 msgstr "valor %%U inválido"
21193
21194-#: config/alpha/alpha.c:5207 config/alpha/alpha.c:5218
21195-#: config/rs6000/rs6000.c:15011
21196+#: config/alpha/alpha.c:5212 config/alpha/alpha.c:5223
21197+#: config/rs6000/rs6000.c:15027
21198 #, c-format
21199 msgid "invalid %%s value"
21200 msgstr "valor %%s inválido"
21201
21202-#: config/alpha/alpha.c:5229
21203+#: config/alpha/alpha.c:5234
21204 #, c-format
21205 msgid "invalid %%C value"
21206 msgstr "valor %%C inválido"
21207
21208-#: config/alpha/alpha.c:5266 config/rs6000/rs6000.c:14769
21209+#: config/alpha/alpha.c:5271 config/rs6000/rs6000.c:14785
21210 #, c-format
21211 msgid "invalid %%E value"
21212 msgstr "valor %%E inválido"
21213
21214-#: config/alpha/alpha.c:5291 config/alpha/alpha.c:5339
21215+#: config/alpha/alpha.c:5296 config/alpha/alpha.c:5344
21216 #, c-format
21217 msgid "unknown relocation unspec"
21218 msgstr "reubicación unspec desconocida"
21219
21220-#: config/alpha/alpha.c:5300 config/rs6000/rs6000.c:15377
21221-#: config/spu/spu.c:1744
21222+#: config/alpha/alpha.c:5305 config/cr16/cr16.c:1537
21223+#: config/rs6000/rs6000.c:15393 config/spu/spu.c:1744
21224 #, c-format
21225 msgid "invalid %%xn code"
21226 msgstr "código %%xn inválido"
21227
21228-#: config/arm/arm.c:17110 config/arm/arm.c:17128
21229+#: config/arm/arm.c:17113 config/arm/arm.c:17131
21230 #, c-format
21231 msgid "predicated Thumb instruction"
21232 msgstr "instrucción de predicado Thumb"
21233
21234-#: config/arm/arm.c:17116
21235+#: config/arm/arm.c:17119
21236 #, c-format
21237 msgid "predicated instruction in conditional sequence"
21238 msgstr "instrucción de predicado en una secuencia condicional"
21239
21240-#: config/arm/arm.c:17247
21241+#: config/arm/arm.c:17250
21242 #, c-format
21243 msgid "Unsupported operand for code '%c'"
21244 msgstr "No se admite el operando para el código '%c'"
21245
21246-#: config/arm/arm.c:17295
21247+#: config/arm/arm.c:17298
21248 #, c-format
21249 msgid "invalid shift operand"
21250 msgstr "operando de desplazamiento inválido"
21251
21252-#: config/arm/arm.c:17352 config/arm/arm.c:17374 config/arm/arm.c:17384
21253-#: config/arm/arm.c:17394 config/arm/arm.c:17404 config/arm/arm.c:17443
21254-#: config/arm/arm.c:17461 config/arm/arm.c:17496 config/arm/arm.c:17515
21255-#: config/arm/arm.c:17530 config/arm/arm.c:17557 config/arm/arm.c:17564
21256-#: config/arm/arm.c:17582 config/arm/arm.c:17589 config/arm/arm.c:17597
21257-#: config/arm/arm.c:17618 config/arm/arm.c:17625 config/arm/arm.c:17750
21258-#: config/arm/arm.c:17757 config/arm/arm.c:17780 config/arm/arm.c:17787
21259+#: config/arm/arm.c:17355 config/arm/arm.c:17377 config/arm/arm.c:17387
21260+#: config/arm/arm.c:17397 config/arm/arm.c:17407 config/arm/arm.c:17446
21261+#: config/arm/arm.c:17464 config/arm/arm.c:17499 config/arm/arm.c:17518
21262+#: config/arm/arm.c:17533 config/arm/arm.c:17560 config/arm/arm.c:17567
21263+#: config/arm/arm.c:17585 config/arm/arm.c:17592 config/arm/arm.c:17600
21264+#: config/arm/arm.c:17621 config/arm/arm.c:17628 config/arm/arm.c:17753
21265+#: config/arm/arm.c:17760 config/arm/arm.c:17783 config/arm/arm.c:17790
21266 #: config/bfin/bfin.c:1436 config/bfin/bfin.c:1443 config/bfin/bfin.c:1450
21267 #: config/bfin/bfin.c:1457 config/bfin/bfin.c:1466 config/bfin/bfin.c:1473
21268 #: config/bfin/bfin.c:1480 config/bfin/bfin.c:1487
21269@@ -2645,78 +2645,79 @@
21270 msgid "invalid operand for code '%c'"
21271 msgstr "operando inválido para el código '%c'"
21272
21273-#: config/arm/arm.c:17456
21274+#: config/arm/arm.c:17459
21275 #, c-format
21276 msgid "instruction never executed"
21277 msgstr "la instrucción nunca se ejecuta"
21278
21279-#: config/arm/arm.c:17799
21280+#: config/arm/arm.c:17802
21281 #, c-format
21282 msgid "missing operand"
21283 msgstr "falta un operando"
21284
21285-#: config/arm/arm.c:20399
21286+#: config/arm/arm.c:20404
21287 msgid "function parameters cannot have __fp16 type"
21288 msgstr "los parámetros de la función no pueden tener el tipo __fp16"
21289
21290-#: config/arm/arm.c:20409
21291+#: config/arm/arm.c:20414
21292 msgid "functions cannot return __fp16 type"
21293 msgstr "la función no puede devolver el tipo __fp16"
21294
21295-#: config/avr/avr.c:1698
21296+#: config/avr/avr.c:1695
21297 #, c-format
21298 msgid "address operand requires constraint for X, Y, or Z register"
21299 msgstr "el operando de dirección requiere una restricción para los registros X, Y, o Z"
21300
21301-#: config/avr/avr.c:1851
21302+#: config/avr/avr.c:1848
21303 msgid "operands to %T/%t must be reg + const_int:"
21304 msgstr "los operandos para %T/%t deben ser reg + const_int:"
21305
21306-#: config/avr/avr.c:1883 config/avr/avr.c:1938
21307+#: config/avr/avr.c:1886 config/avr/avr.c:1941
21308 msgid "bad address, not an I/O address:"
21309 msgstr "dirección errónea, no es una dirección de E/S:"
21310
21311-#: config/avr/avr.c:1892
21312+#: config/avr/avr.c:1895
21313 msgid "bad address, not a constant:"
21314 msgstr "dirección errónea, no es una constante:"
21315
21316-#: config/avr/avr.c:1910
21317+#: config/avr/avr.c:1913
21318 msgid "bad address, not (reg+disp):"
21319 msgstr "dirección errónea, no (reg+disp):"
21320
21321-#: config/avr/avr.c:1917
21322+#: config/avr/avr.c:1920
21323 msgid "bad address, not post_inc or pre_dec:"
21324 msgstr "dirección errónea, no hay post_inc o pre_dec:"
21325
21326-#: config/avr/avr.c:1928
21327+#: config/avr/avr.c:1931
21328 msgid "internal compiler error. Bad address:"
21329 msgstr "error interno del compilador. Dirección errónea:"
21330
21331-#: config/avr/avr.c:1958
21332+#: config/avr/avr.c:1961
21333 msgid "internal compiler error. Unknown mode:"
21334 msgstr "error interno del compilador. Modo desconocido:"
21335
21336-#: config/avr/avr.c:2918 config/avr/avr.c:3491 config/avr/avr.c:3776
21337+#: config/avr/avr.c:2922 config/avr/avr.c:3495 config/avr/avr.c:3780
21338 msgid "invalid insn:"
21339 msgstr "insn inválida:"
21340
21341-#: config/avr/avr.c:2947 config/avr/avr.c:3022 config/avr/avr.c:3065
21342-#: config/avr/avr.c:3084 config/avr/avr.c:3175 config/avr/avr.c:3344
21343-#: config/avr/avr.c:3554 config/avr/avr.c:3669 config/avr/avr.c:3805
21344-#: config/avr/avr.c:3898
21345+#: config/avr/avr.c:2951 config/avr/avr.c:3026 config/avr/avr.c:3069
21346+#: config/avr/avr.c:3088 config/avr/avr.c:3179 config/avr/avr.c:3348
21347+#: config/avr/avr.c:3558 config/avr/avr.c:3673 config/avr/avr.c:3809
21348+#: config/avr/avr.c:3900 config/avr/avr.c:4022
21349 msgid "incorrect insn:"
21350 msgstr "insn incorrecta:"
21351
21352-#: config/avr/avr.c:3099 config/avr/avr.c:3260 config/avr/avr.c:3415
21353-#: config/avr/avr.c:3622 config/avr/avr.c:3715 config/avr/avr.c:3953
21354+#: config/avr/avr.c:3103 config/avr/avr.c:3264 config/avr/avr.c:3419
21355+#: config/avr/avr.c:3626 config/avr/avr.c:3719 config/avr/avr.c:3956
21356+#: config/avr/avr.c:4077
21357 msgid "unknown move insn:"
21358 msgstr "insn move desconocida:"
21359
21360-#: config/avr/avr.c:4367
21361+#: config/avr/avr.c:4491
21362 msgid "bad shift insn:"
21363 msgstr "insn shift errónea:"
21364
21365-#: config/avr/avr.c:4475 config/avr/avr.c:4958 config/avr/avr.c:5375
21366+#: config/avr/avr.c:4599 config/avr/avr.c:5080 config/avr/avr.c:5495
21367 msgid "internal compiler error. Incorrect shift:"
21368 msgstr "error interno del compilador. Desplazamiento incorrecto:"
21369
21370@@ -2731,7 +2732,7 @@
21371 msgstr "operando const_double inválido"
21372
21373 #: config/cris/cris.c:579 config/moxie/moxie.c:111 final.c:3129 final.c:3131
21374-#: fold-const.c:287 gcc.c:4603 gcc.c:4617 loop-iv.c:2968 loop-iv.c:2977
21375+#: fold-const.c:287 gcc.c:4609 gcc.c:4623 loop-iv.c:2968 loop-iv.c:2977
21376 #: rtl-error.c:103 toplev.c:346 tree-ssa-loop-niter.c:1916 tree-vrp.c:6041
21377 #: cp/typeck.c:5334 java/expr.c:390 lto/lto-object.c:184 lto/lto-object.c:282
21378 #: lto/lto-object.c:339 lto/lto-object.c:363
21379@@ -2832,7 +2833,7 @@
21380
21381 #. Unknown flag.
21382 #. Undocumented flag.
21383-#: config/epiphany/epiphany.c:1193 config/m32r/m32r.c:2217
21384+#: config/epiphany/epiphany.c:1196 config/m32r/m32r.c:2217
21385 #: config/sparc/sparc.c:8293
21386 #, c-format
21387 msgid "invalid operand output code"
21388@@ -2962,67 +2963,72 @@
21389 msgid "bad output_condmove_single operand"
21390 msgstr "operando output_condmove_single erróneo"
21391
21392-#: config/i386/i386.c:13111
21393+#: config/i386/i386.c:13125
21394 #, c-format
21395 msgid "invalid UNSPEC as operand"
21396 msgstr "UNSPEC inválido como operando"
21397
21398-#: config/i386/i386.c:13721
21399+#: config/i386/i386.c:13748
21400 #, c-format
21401 msgid "'%%&' used without any local dynamic TLS references"
21402 msgstr "se usó '%%&' sin ninguna referencia TLS dinámica local"
21403
21404-#: config/i386/i386.c:13812 config/i386/i386.c:13887
21405+#: config/i386/i386.c:13839 config/i386/i386.c:13914
21406 #, c-format
21407 msgid "invalid operand size for operand code '%c'"
21408 msgstr "tamaño de operando inválido para el código de operando '%c'"
21409
21410-#: config/i386/i386.c:13882
21411+#: config/i386/i386.c:13909
21412 #, c-format
21413 msgid "invalid operand type used with operand code '%c'"
21414 msgstr "se usó un tipo de operando inválido con el código de operando '%c'"
21415
21416-#: config/i386/i386.c:13963 config/i386/i386.c:14003
21417+#: config/i386/i386.c:13990 config/i386/i386.c:14030
21418 #, c-format
21419 msgid "operand is not a condition code, invalid operand code 'D'"
21420 msgstr "el operando no es un código de condición, código de operando 'D' inválido"
21421
21422-#: config/i386/i386.c:14029
21423+#: config/i386/i386.c:14056
21424 #, c-format
21425 msgid "operand is neither a constant nor a condition code, invalid operand code 'C'"
21426 msgstr "el operando no es una constante ni un código de condición, código de operando 'C' inválido"
21427
21428-#: config/i386/i386.c:14039
21429+#: config/i386/i386.c:14066
21430 #, c-format
21431 msgid "operand is neither a constant nor a condition code, invalid operand code 'F'"
21432 msgstr "el operando no es una constante ni un código de condición, código de operando 'F' inválido"
21433
21434-#: config/i386/i386.c:14057
21435+#: config/i386/i386.c:14084
21436 #, c-format
21437 msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
21438 msgstr "el operando no es una constante ni un código de condición, código de operando 'c' inválido"
21439
21440-#: config/i386/i386.c:14067
21441+#: config/i386/i386.c:14094
21442 #, c-format
21443 msgid "operand is neither a constant nor a condition code, invalid operand code 'f'"
21444 msgstr "el operando no es una constante ni un código de condición, código de operando 'f' inválido"
21445
21446-#: config/i386/i386.c:14170
21447+#: config/i386/i386.c:14109
21448 #, c-format
21449+msgid "operand is not an offsettable memory reference, invalid operand code 'H'"
21450+msgstr "el operando no es una referencia de memoria desplazable, código de operando 'H' inválido"
21451+
21452+#: config/i386/i386.c:14204
21453+#, c-format
21454 msgid "operand is not a condition code, invalid operand code 'Y'"
21455 msgstr "el operando no es un código de condición, código de operando 'Y' inválido"
21456
21457-#: config/i386/i386.c:14200
21458+#: config/i386/i386.c:14234
21459 #, c-format
21460 msgid "invalid operand code '%c'"
21461 msgstr "código de operando '%c' inválido"
21462
21463-#: config/i386/i386.c:14255
21464+#: config/i386/i386.c:14289
21465 #, c-format
21466 msgid "invalid constraints for operand"
21467 msgstr "restricciones inválidas para el operando"
21468
21469-#: config/i386/i386.c:23269
21470+#: config/i386/i386.c:23303
21471 msgid "unknown insn mode"
21472 msgstr "modo insn desconocido"
21473
21474@@ -3073,12 +3079,13 @@
21475 msgid "invalid operation on %<__fpreg%>"
21476 msgstr "operación inválida en %<__fpreg%>"
21477
21478-#: config/iq2000/iq2000.c:3130
21479+#: config/iq2000/iq2000.c:3130 config/tilegx/tilegx.c:5131
21480+#: config/tilepro/tilepro.c:4702
21481 #, c-format
21482 msgid "invalid %%P operand"
21483 msgstr "operando %%P inválido"
21484
21485-#: config/iq2000/iq2000.c:3138 config/rs6000/rs6000.c:14940
21486+#: config/iq2000/iq2000.c:3138 config/rs6000/rs6000.c:14956
21487 #, c-format
21488 msgid "invalid %%p value"
21489 msgstr "valor %%p inválido"
21490@@ -3157,7 +3164,7 @@
21491 msgstr "la dirección de post-incremento no es un registro"
21492
21493 #: config/m32r/m32r.c:2321 config/m32r/m32r.c:2335
21494-#: config/rs6000/rs6000.c:24531
21495+#: config/rs6000/rs6000.c:24548
21496 msgid "bad address"
21497 msgstr "dirección errónea"
21498
21499@@ -3204,19 +3211,19 @@
21500 msgid "letter %c was found & insn was not CONST_INT"
21501 msgstr "se encontró la letra %c y la insn no era CONS_INT"
21502
21503-#: config/mips/mips.c:7547 config/mips/mips.c:7568 config/mips/mips.c:7688
21504+#: config/mips/mips.c:7709 config/mips/mips.c:7730 config/mips/mips.c:7850
21505 #, c-format
21506 msgid "'%%%c' is not a valid operand prefix"
21507 msgstr "'%%%c' no es un prefijo de operando válido"
21508
21509-#: config/mips/mips.c:7625 config/mips/mips.c:7632 config/mips/mips.c:7639
21510-#: config/mips/mips.c:7646 config/mips/mips.c:7706 config/mips/mips.c:7720
21511-#: config/mips/mips.c:7733 config/mips/mips.c:7742
21512+#: config/mips/mips.c:7787 config/mips/mips.c:7794 config/mips/mips.c:7801
21513+#: config/mips/mips.c:7808 config/mips/mips.c:7868 config/mips/mips.c:7882
21514+#: config/mips/mips.c:7895 config/mips/mips.c:7904
21515 #, c-format
21516 msgid "invalid use of '%%%c'"
21517 msgstr "uso inválido de '%%%c'"
21518
21519-#: config/mips/mips.c:7964
21520+#: config/mips/mips.c:8126
21521 msgid "mips_debugger_offset called with non stack/frame/arg pointer"
21522 msgstr "se llamó a mips_debuger_offset con un puntero que no es stack/frame/arg"
21523
21524@@ -3292,194 +3299,194 @@
21525 msgid "Try running '%s' in the shell to raise its limit.\n"
21526 msgstr "Pruebe ejecutar '%s' en el intérprete de órdenes para elevar su límite.\n"
21527
21528-#: config/rs6000/rs6000.c:2745
21529+#: config/rs6000/rs6000.c:2758
21530 msgid "-mvsx requires hardware floating point"
21531 msgstr "-mvsx requiere coma flotante de hardware"
21532
21533-#: config/rs6000/rs6000.c:2750
21534+#: config/rs6000/rs6000.c:2763
21535 msgid "-mvsx and -mpaired are incompatible"
21536 msgstr "-mvsx y -mpaired son incompatibles"
21537
21538-#: config/rs6000/rs6000.c:2755
21539+#: config/rs6000/rs6000.c:2768
21540 msgid "-mvsx used with little endian code"
21541 msgstr "se usó -mvsx con código little endian"
21542
21543-#: config/rs6000/rs6000.c:2757
21544+#: config/rs6000/rs6000.c:2770
21545 msgid "-mvsx needs indexed addressing"
21546 msgstr "-mvsx necesita direccionamiento indizado"
21547
21548-#: config/rs6000/rs6000.c:2761
21549+#: config/rs6000/rs6000.c:2774
21550 msgid "-mvsx and -mno-altivec are incompatible"
21551 msgstr "-mvsx y -mno-altivec son incompatibles"
21552
21553-#: config/rs6000/rs6000.c:2763
21554+#: config/rs6000/rs6000.c:2776
21555 msgid "-mno-altivec disables vsx"
21556 msgstr "-mno-altivec desactiva vsx"
21557
21558-#: config/rs6000/rs6000.c:7311
21559+#: config/rs6000/rs6000.c:7324
21560 msgid "bad move"
21561 msgstr "move erróneo"
21562
21563-#: config/rs6000/rs6000.c:14750
21564+#: config/rs6000/rs6000.c:14766
21565 #, c-format
21566 msgid "invalid %%c value"
21567 msgstr "valor %%c inválido"
21568
21569-#: config/rs6000/rs6000.c:14778
21570+#: config/rs6000/rs6000.c:14794
21571 #, c-format
21572 msgid "invalid %%f value"
21573 msgstr "valor %%f inválido"
21574
21575-#: config/rs6000/rs6000.c:14787
21576+#: config/rs6000/rs6000.c:14803
21577 #, c-format
21578 msgid "invalid %%F value"
21579 msgstr "valor %%F inválido"
21580
21581-#: config/rs6000/rs6000.c:14796
21582+#: config/rs6000/rs6000.c:14812
21583 #, c-format
21584 msgid "invalid %%G value"
21585 msgstr "valor %%G inválido"
21586
21587-#: config/rs6000/rs6000.c:14831
21588+#: config/rs6000/rs6000.c:14847
21589 #, c-format
21590 msgid "invalid %%j code"
21591 msgstr "código %%j inválido"
21592
21593-#: config/rs6000/rs6000.c:14841
21594+#: config/rs6000/rs6000.c:14857
21595 #, c-format
21596 msgid "invalid %%J code"
21597 msgstr "código %%J inválido"
21598
21599-#: config/rs6000/rs6000.c:14851
21600+#: config/rs6000/rs6000.c:14867
21601 #, c-format
21602 msgid "invalid %%k value"
21603 msgstr "valor %%k inválido"
21604
21605-#: config/rs6000/rs6000.c:14866 config/xtensa/xtensa.c:2336
21606+#: config/rs6000/rs6000.c:14882 config/xtensa/xtensa.c:2336
21607 #, c-format
21608 msgid "invalid %%K value"
21609 msgstr "valor %%K inválido"
21610
21611-#: config/rs6000/rs6000.c:14930
21612+#: config/rs6000/rs6000.c:14946
21613 #, c-format
21614 msgid "invalid %%O value"
21615 msgstr "valor %%O inválido"
21616
21617-#: config/rs6000/rs6000.c:14977
21618+#: config/rs6000/rs6000.c:14993
21619 #, c-format
21620 msgid "invalid %%q value"
21621 msgstr "valor %%q inválido"
21622
21623-#: config/rs6000/rs6000.c:15021
21624+#: config/rs6000/rs6000.c:15037
21625 #, c-format
21626 msgid "invalid %%S value"
21627 msgstr "valor %%S inválido"
21628
21629-#: config/rs6000/rs6000.c:15061
21630+#: config/rs6000/rs6000.c:15077
21631 #, c-format
21632 msgid "invalid %%T value"
21633 msgstr "valor %%T inválido"
21634
21635-#: config/rs6000/rs6000.c:15071
21636+#: config/rs6000/rs6000.c:15087
21637 #, c-format
21638 msgid "invalid %%u value"
21639 msgstr "valor %%u inválido"
21640
21641-#: config/rs6000/rs6000.c:15080 config/xtensa/xtensa.c:2306
21642+#: config/rs6000/rs6000.c:15096 config/xtensa/xtensa.c:2306
21643 #, c-format
21644 msgid "invalid %%v value"
21645 msgstr "valor %%v inválido"
21646
21647-#: config/rs6000/rs6000.c:15179 config/xtensa/xtensa.c:2357
21648+#: config/rs6000/rs6000.c:15195 config/xtensa/xtensa.c:2357
21649 #, c-format
21650 msgid "invalid %%x value"
21651 msgstr "valor %%x inválido"
21652
21653-#: config/rs6000/rs6000.c:15325
21654+#: config/rs6000/rs6000.c:15341
21655 #, c-format
21656 msgid "invalid %%y value, try using the 'Z' constraint"
21657 msgstr "valor %%y inválido, pruebe usando la restricción 'Z'"
21658
21659-#: config/rs6000/rs6000.c:26941
21660+#: config/rs6000/rs6000.c:26958
21661 msgid "AltiVec argument passed to unprototyped function"
21662 msgstr "Se pasó un argumento Altivec a una función sin prototipo"
21663
21664-#: config/s390/s390.c:5135
21665+#: config/s390/s390.c:5140
21666 #, c-format
21667 msgid "symbolic memory references are only supported on z10 or later"
21668 msgstr "las referencias a memoria simbólica sólo se admiten en z10 o posterior"
21669
21670-#: config/s390/s390.c:5146
21671+#: config/s390/s390.c:5151
21672 #, c-format
21673 msgid "cannot decompose address"
21674 msgstr "no se puede descomponer la dirección"
21675
21676-#: config/s390/s390.c:5205
21677+#: config/s390/s390.c:5210
21678 #, c-format
21679 msgid "invalid comparison operator for 'E' output modifier"
21680 msgstr "operador de comparación inválido para el modificador de salida 'E'"
21681
21682-#: config/s390/s390.c:5226
21683+#: config/s390/s390.c:5231
21684 #, c-format
21685 msgid "invalid reference for 'J' output modifier"
21686 msgstr "referencia inválida para el modificador de salida 'J'"
21687
21688-#: config/s390/s390.c:5240
21689+#: config/s390/s390.c:5245
21690 #, c-format
21691 msgid "memory reference expected for 'O' output modifier"
21692 msgstr "se esperaba una referencia de memoria para el modificador de salida 'O'"
21693
21694-#: config/s390/s390.c:5251
21695+#: config/s390/s390.c:5256
21696 #, c-format
21697 msgid "invalid address for 'O' output modifier"
21698 msgstr "dirección inválida para el modificador de salida 'O'"
21699
21700-#: config/s390/s390.c:5269
21701+#: config/s390/s390.c:5274
21702 #, c-format
21703 msgid "memory reference expected for 'R' output modifier"
21704 msgstr "se esperaba una referencia de memoria para el modificador de salida 'R'"
21705
21706-#: config/s390/s390.c:5280
21707+#: config/s390/s390.c:5285
21708 #, c-format
21709 msgid "invalid address for 'R' output modifier"
21710 msgstr "dirección inválida para el modificador de salida 'R'"
21711
21712-#: config/s390/s390.c:5298
21713+#: config/s390/s390.c:5303
21714 #, c-format
21715 msgid "memory reference expected for 'S' output modifier"
21716 msgstr "se esperaba una referencia de memoria para el modificador de salida 'S'"
21717
21718-#: config/s390/s390.c:5308
21719+#: config/s390/s390.c:5313
21720 #, c-format
21721 msgid "invalid address for 'S' output modifier"
21722 msgstr "dirección inválida para el modificador de saida 'S'"
21723
21724-#: config/s390/s390.c:5328
21725+#: config/s390/s390.c:5333
21726 #, c-format
21727 msgid "register or memory expression expected for 'N' output modifier"
21728 msgstr "se esperaba un registro o expresión de memoria para el modificador de salida 'N'"
21729
21730-#: config/s390/s390.c:5338
21731+#: config/s390/s390.c:5343
21732 #, c-format
21733 msgid "register or memory expression expected for 'M' output modifier"
21734 msgstr "se esperaba un registro o expresión de memoria para el modificador de salida 'M'"
21735
21736-#: config/s390/s390.c:5403
21737+#: config/s390/s390.c:5408
21738 #, c-format
21739 msgid "invalid constant - try using an output modifier"
21740 msgstr "constante inválida - pruebe usar un modificador de salida"
21741
21742-#: config/s390/s390.c:5406
21743+#: config/s390/s390.c:5411
21744 #, c-format
21745 msgid "invalid constant for output modifier '%c'"
21746 msgstr "constante inválida para el modificador de salida '%c'"
21747
21748-#: config/s390/s390.c:5413
21749+#: config/s390/s390.c:5418
21750 #, c-format
21751 msgid "invalid expression - try using an output modifier"
21752 msgstr "expresión inválida - pruebe usar un modificador de salida"
21753
21754-#: config/s390/s390.c:5416
21755+#: config/s390/s390.c:5421
21756 #, c-format
21757 msgid "invalid expression for output modifier '%c'"
21758 msgstr "expresión inválida para el modificador de salida '%c'"
21759@@ -3489,25 +3496,25 @@
21760 msgid "invalid operand for code: '%c'"
21761 msgstr "operando inválido para code: '%c'"
21762
21763-#: config/sh/sh.c:1026
21764+#: config/sh/sh.c:1031
21765 #, c-format
21766 msgid "invalid operand to %%R"
21767 msgstr "operando inválido para %%R"
21768
21769-#: config/sh/sh.c:1053
21770+#: config/sh/sh.c:1058
21771 #, c-format
21772 msgid "invalid operand to %%S"
21773 msgstr "operando inválido para %%S"
21774
21775-#: config/sh/sh.c:9137
21776+#: config/sh/sh.c:9142
21777 msgid "created and used with different architectures / ABIs"
21778 msgstr "creado y usado con diferentes arquitecturas / ABIs"
21779
21780-#: config/sh/sh.c:9139
21781+#: config/sh/sh.c:9144
21782 msgid "created and used with different ABIs"
21783 msgstr "creado y usado con diferentes ABIs"
21784
21785-#: config/sh/sh.c:9141
21786+#: config/sh/sh.c:9146
21787 msgid "created and used with different endianness"
21788 msgstr "creado y usado con diferente orden de bits"
21789
21790@@ -3526,12 +3533,13 @@
21791 msgid "invalid %%B operand"
21792 msgstr "operando %%B inválido"
21793
21794-#: config/sparc/sparc.c:8232
21795+#: config/sparc/sparc.c:8232 config/tilegx/tilegx.c:4934
21796+#: config/tilepro/tilepro.c:4505
21797 #, c-format
21798 msgid "invalid %%C operand"
21799 msgstr "operando %%C inválido"
21800
21801-#: config/sparc/sparc.c:8249
21802+#: config/sparc/sparc.c:8249 config/tilegx/tilegx.c:4967
21803 #, c-format
21804 msgid "invalid %%D operand"
21805 msgstr "operando %%D inválido"
21806@@ -3576,6 +3584,91 @@
21807 msgid "xstormy16_print_operand: unknown code"
21808 msgstr "xstormy16_print_operand: código desconocido"
21809
21810+#: config/tilegx/tilegx.c:4919 config/tilepro/tilepro.c:4490
21811+#, c-format
21812+msgid "invalid %%c operand"
21813+msgstr "operando %%c inválido"
21814+
21815+#: config/tilegx/tilegx.c:4950
21816+#, c-format
21817+msgid "invalid %%d operand"
21818+msgstr "operando %%d inválido"
21819+
21820+#: config/tilegx/tilegx.c:5033
21821+#, c-format
21822+msgid "invalid %%H specifier"
21823+msgstr "especificador %%H inválido"
21824+
21825+#: config/tilegx/tilegx.c:5069 config/tilepro/tilepro.c:4519
21826+#, c-format
21827+msgid "invalid %%h operand"
21828+msgstr "operando %%h inválido"
21829+
21830+#: config/tilegx/tilegx.c:5081 config/tilepro/tilepro.c:4583
21831+#, c-format
21832+msgid "invalid %%I operand"
21833+msgstr "operando %%I inválido"
21834+
21835+#: config/tilegx/tilegx.c:5095 config/tilepro/tilepro.c:4597
21836+#, c-format
21837+msgid "invalid %%i operand"
21838+msgstr "operando %%i inválido"
21839+
21840+#: config/tilegx/tilegx.c:5118 config/tilepro/tilepro.c:4620
21841+#, c-format
21842+msgid "invalid %%j operand"
21843+msgstr "operando %%j inválido"
21844+
21845+#: config/tilegx/tilegx.c:5149
21846+#, c-format
21847+msgid "invalid %%%c operand"
21848+msgstr "operando %%%c inválido"
21849+
21850+#: config/tilegx/tilegx.c:5164 config/tilepro/tilepro.c:4734
21851+#, c-format
21852+msgid "invalid %%N operand"
21853+msgstr "operando %%N inválido"
21854+
21855+#: config/tilegx/tilegx.c:5208
21856+#, c-format
21857+msgid "invalid operand for 'r' specifier"
21858+msgstr "operando inválido para el especificador 'r'"
21859+
21860+#: config/tilegx/tilegx.c:5233 config/tilepro/tilepro.c:4816
21861+#, c-format
21862+msgid "unable to print out operand yet; code == %d (%c)"
21863+msgstr "aún no se puede mostrar el operando; code == %d (%c)"
21864+
21865+#: config/tilepro/tilepro.c:4555
21866+#, c-format
21867+msgid "invalid %%H operand"
21868+msgstr "operando %%H inválido"
21869+
21870+#: config/tilepro/tilepro.c:4659
21871+#, c-format
21872+msgid "invalid %%L operand"
21873+msgstr "operando %%L inválido"
21874+
21875+#: config/tilepro/tilepro.c:4719
21876+#, c-format
21877+msgid "invalid %%M operand"
21878+msgstr "operando %%M inválido"
21879+
21880+#: config/tilepro/tilepro.c:4762
21881+#, c-format
21882+msgid "invalid %%t operand"
21883+msgstr "operando %%t inválido"
21884+
21885+#: config/tilepro/tilepro.c:4769
21886+#, c-format
21887+msgid "invalid %%t operand '"
21888+msgstr "operando %%t inválido '"
21889+
21890+#: config/tilepro/tilepro.c:4790
21891+#, c-format
21892+msgid "invalid %%r operand"
21893+msgstr "operando %%r inválido"
21894+
21895 #: config/v850/v850.c:260
21896 msgid "const_double_split got a bad insn:"
21897 msgstr "const_double_split recibió una insn errónea:"
21898@@ -3724,7 +3817,7 @@
21899 msgid "<declaration error>"
21900 msgstr "<error de declaración>"
21901
21902-#: cp/error.c:1432 cp/error.c:2802
21903+#: cp/error.c:1432 cp/error.c:2804
21904 msgid "with"
21905 msgstr "con"
21906
21907@@ -3742,111 +3835,111 @@
21908 msgid "<throw-expression>"
21909 msgstr "<expresión-throw>"
21910
21911-#: cp/error.c:2334
21912+#: cp/error.c:2336
21913 msgid "<unparsed>"
21914 msgstr "<sidecodificar>"
21915
21916-#: cp/error.c:2484
21917+#: cp/error.c:2486
21918 msgid "<expression error>"
21919 msgstr "<error de expresión>"
21920
21921-#: cp/error.c:2498
21922+#: cp/error.c:2500
21923 msgid "<unknown operator>"
21924 msgstr "<operador desconocido>"
21925
21926-#: cp/error.c:2754
21927+#: cp/error.c:2756
21928 msgid "{unknown}"
21929 msgstr "{desconocida}"
21930
21931-#: cp/error.c:2869
21932+#: cp/error.c:2871
21933 msgid "At global scope:"
21934 msgstr "En el ámbito global:"
21935
21936-#: cp/error.c:2975
21937+#: cp/error.c:2977
21938 #, c-format
21939 msgid "In static member function %qs"
21940 msgstr "En la función miembro static %qs"
21941
21942-#: cp/error.c:2977
21943+#: cp/error.c:2979
21944 #, c-format
21945 msgid "In copy constructor %qs"
21946 msgstr "En el constructor copia %qs"
21947
21948-#: cp/error.c:2979
21949+#: cp/error.c:2981
21950 #, c-format
21951 msgid "In constructor %qs"
21952 msgstr "En el constructor %qs"
21953
21954-#: cp/error.c:2981
21955+#: cp/error.c:2983
21956 #, c-format
21957 msgid "In destructor %qs"
21958 msgstr "En el destructor %qs"
21959
21960-#: cp/error.c:2983
21961+#: cp/error.c:2985
21962 msgid "In lambda function"
21963 msgstr "En la función lambda"
21964
21965-#: cp/error.c:3003
21966+#: cp/error.c:3005
21967 #, c-format
21968 msgid "%s: In substitution of %qS:\n"
21969 msgstr "%s: En la sustitución de %qS:\n"
21970
21971-#: cp/error.c:3004
21972+#: cp/error.c:3006
21973 msgid "%s: In instantiation of %q#D:\n"
21974 msgstr "%s: En la instanciación de %q#D:\n"
21975
21976-#: cp/error.c:3027
21977+#: cp/error.c:3029
21978 #, c-format
21979 msgid "%s:%d:%d: "
21980 msgstr "%s:%d:%d: "
21981
21982-#: cp/error.c:3030
21983+#: cp/error.c:3032
21984 #, c-format
21985 msgid "%s:%d: "
21986 msgstr "%s:%d: "
21987
21988-#: cp/error.c:3038
21989+#: cp/error.c:3040
21990 #, c-format
21991 msgid "recursively required by substitution of %qS\n"
21992 msgstr "se requiere recursivamente para la sustitución de %qS\n"
21993
21994-#: cp/error.c:3039
21995+#: cp/error.c:3041
21996 #, c-format
21997 msgid "required by substitution of %qS\n"
21998 msgstr "se requiere para la sustitución de %qS\n"
21999
22000-#: cp/error.c:3044
22001+#: cp/error.c:3046
22002 msgid "recursively required from %q#D\n"
22003 msgstr "se requiere recursivamente desde %q#D\n"
22004
22005-#: cp/error.c:3045
22006+#: cp/error.c:3047
22007 msgid "required from %q#D\n"
22008 msgstr "se requiere desde %q#D\n"
22009
22010-#: cp/error.c:3052
22011+#: cp/error.c:3054
22012 msgid "recursively required from here"
22013 msgstr "se requiere recursivamente desde aquí"
22014
22015-#: cp/error.c:3053
22016+#: cp/error.c:3055
22017 msgid "required from here"
22018 msgstr "se requiere desde aquí"
22019
22020-#: cp/error.c:3095
22021+#: cp/error.c:3097
22022 #, c-format
22023 msgid "%s:%d:%d: [ skipping %d instantiation contexts ]\n"
22024 msgstr "%s:%d:%d: [ se saltan %d contextos de instanciación ]\n"
22025
22026-#: cp/error.c:3099
22027+#: cp/error.c:3101
22028 #, c-format
22029 msgid "%s:%d: [ skipping %d instantiation contexts ]\n"
22030 msgstr "%s:%d: [ se saltan %d contextos de instanciación ]\n"
22031
22032-#: cp/error.c:3161
22033+#: cp/error.c:3163
22034 #, c-format
22035 msgid "%s:%d:%d: in constexpr expansion of %qs"
22036 msgstr "%s:%d:%d: en la expansión de la expresión constante de %qs"
22037
22038-#: cp/error.c:3165
22039+#: cp/error.c:3167
22040 #, c-format
22041 msgid "%s:%d: in constexpr expansion of %qs"
22042 msgstr "%s:%d: en la expansión de la expresión constante de %qs"
22043@@ -3855,7 +3948,7 @@
22044 msgid "candidates are:"
22045 msgstr "los candidatos son:"
22046
22047-#: cp/pt.c:17792 cp/call.c:3289
22048+#: cp/pt.c:17805 cp/call.c:3289
22049 #, gcc-internal-format
22050 msgid "candidate is:"
22051 msgid_plural "candidates are:"
22052@@ -4046,7 +4139,7 @@
22053 msgid "Driving:"
22054 msgstr "Conduciendo:"
22055
22056-#: fortran/interface.c:2477 fortran/intrinsic.c:3641
22057+#: fortran/interface.c:2478 fortran/intrinsic.c:3641
22058 msgid "actual argument to INTENT = OUT/INOUT"
22059 msgstr "argumento actual de INTENT = OUT/INOUT"
22060
22061@@ -4112,13 +4205,13 @@
22062 msgid "%s tag"
22063 msgstr "etiqueta %s"
22064
22065-#: fortran/io.c:2872
22066+#: fortran/io.c:2868
22067 msgid "internal unit in WRITE"
22068 msgstr "unidad interna en WRITE"
22069
22070 #. For INQUIRE, all tags except FILE, ID and UNIT are variable definition
22071 #. contexts. Thus, use an extended RESOLVE_TAG macro for that.
22072-#: fortran/io.c:4066
22073+#: fortran/io.c:4062
22074 #, c-format
22075 msgid "%s tag with INQUIRE"
22076 msgstr "etiqueta %s con INQUIRE"
22077@@ -4128,75 +4221,75 @@
22078 msgid "Syntax error in expression at %C"
22079 msgstr "Error sintáctico en la expresión en %C"
22080
22081-#: fortran/module.c:1054
22082+#: fortran/module.c:1061
22083 msgid "Unexpected EOF"
22084 msgstr "Fin de fichero inesperado"
22085
22086-#: fortran/module.c:1139
22087+#: fortran/module.c:1146
22088 msgid "Integer overflow"
22089 msgstr "Desbordamiento entero"
22090
22091-#: fortran/module.c:1169
22092+#: fortran/module.c:1176
22093 msgid "Name too long"
22094 msgstr "Nombre demasiado largo"
22095
22096-#: fortran/module.c:1271 fortran/module.c:1374
22097+#: fortran/module.c:1278 fortran/module.c:1381
22098 msgid "Bad name"
22099 msgstr "Nombre erróneo"
22100
22101-#: fortran/module.c:1398
22102+#: fortran/module.c:1405
22103 msgid "Expected name"
22104 msgstr "Se esperaba un nombre"
22105
22106-#: fortran/module.c:1401
22107+#: fortran/module.c:1408
22108 msgid "Expected left parenthesis"
22109 msgstr "Se esperaba un paréntesis izquierdo"
22110
22111-#: fortran/module.c:1404
22112+#: fortran/module.c:1411
22113 msgid "Expected right parenthesis"
22114 msgstr "Se esperaba un paréntesis derecho"
22115
22116-#: fortran/module.c:1407
22117+#: fortran/module.c:1414
22118 msgid "Expected integer"
22119 msgstr "Se esperaba un entero"
22120
22121-#: fortran/module.c:1410 fortran/module.c:2312
22122+#: fortran/module.c:1417 fortran/module.c:2332
22123 msgid "Expected string"
22124 msgstr "Se esperaba una cadena"
22125
22126-#: fortran/module.c:1435
22127+#: fortran/module.c:1442
22128 msgid "find_enum(): Enum not found"
22129 msgstr "find_enum(): No se encontró el enumerador"
22130
22131-#: fortran/module.c:2065
22132+#: fortran/module.c:2085
22133 msgid "Expected attribute bit name"
22134 msgstr "Se esperaba un nombre de atributo de bit"
22135
22136-#: fortran/module.c:2963
22137+#: fortran/module.c:2983
22138 msgid "Expected integer string"
22139 msgstr "Se esperaba una cadena entera"
22140
22141-#: fortran/module.c:2967
22142+#: fortran/module.c:2987
22143 msgid "Error converting integer"
22144 msgstr "Error al convertir el entero"
22145
22146-#: fortran/module.c:2989
22147+#: fortran/module.c:3009
22148 msgid "Expected real string"
22149 msgstr "Se esperaba una cadena real"
22150
22151-#: fortran/module.c:3211
22152+#: fortran/module.c:3231
22153 msgid "Expected expression type"
22154 msgstr "Se esperaba un tipo de expresión"
22155
22156-#: fortran/module.c:3265
22157+#: fortran/module.c:3285
22158 msgid "Bad operator"
22159 msgstr "Operador erróneo"
22160
22161-#: fortran/module.c:3354
22162+#: fortran/module.c:3374
22163 msgid "Bad type in constant expression"
22164 msgstr "Tipo erróneo en la expresión constante"
22165
22166-#: fortran/module.c:6050
22167+#: fortran/module.c:6087
22168 msgid "Unexpected end of module"
22169 msgstr "Fin de módulo inesperado"
22170
22171@@ -4224,11 +4317,11 @@
22172 msgid "implied END DO"
22173 msgstr "END DO implícito"
22174
22175-#: fortran/parse.c:1475 fortran/resolve.c:9409
22176+#: fortran/parse.c:1475 fortran/resolve.c:9396
22177 msgid "assignment"
22178 msgstr "asignación"
22179
22180-#: fortran/parse.c:1478 fortran/resolve.c:9448 fortran/resolve.c:9451
22181+#: fortran/parse.c:1478 fortran/resolve.c:9435 fortran/resolve.c:9438
22182 msgid "pointer assignment"
22183 msgstr "asignación de puntero"
22184
22185@@ -4244,115 +4337,115 @@
22186 msgid "internal function"
22187 msgstr "función interna"
22188
22189-#: fortran/resolve.c:1983
22190+#: fortran/resolve.c:1973
22191 msgid "elemental procedure"
22192 msgstr "procedimiento elemental"
22193
22194-#: fortran/resolve.c:3811
22195+#: fortran/resolve.c:3798
22196 #, c-format
22197 msgid "Invalid context for NULL() pointer at %%L"
22198 msgstr "Contexto inválido para el puntero NULL() en %%L"
22199
22200-#: fortran/resolve.c:3827
22201+#: fortran/resolve.c:3814
22202 #, c-format
22203 msgid "Operand of unary numeric operator '%s' at %%L is %s"
22204 msgstr "El operando del operador numérico unario '%s' en %%L es %s"
22205
22206-#: fortran/resolve.c:3843
22207+#: fortran/resolve.c:3830
22208 #, c-format
22209 msgid "Operands of binary numeric operator '%s' at %%L are %s/%s"
22210 msgstr "Los operandos del operador binario numérico '%s' en %%L son %s/%s"
22211
22212-#: fortran/resolve.c:3858
22213+#: fortran/resolve.c:3845
22214 #, c-format
22215 msgid "Operands of string concatenation operator at %%L are %s/%s"
22216 msgstr "Los operandos del operador de concatenación de cadenas en %%L son %s/%s"
22217
22218-#: fortran/resolve.c:3877
22219+#: fortran/resolve.c:3864
22220 #, c-format
22221 msgid "Operands of logical operator '%s' at %%L are %s/%s"
22222 msgstr "Los operandos del operador lógico '%s' en %%L son %s/%s"
22223
22224-#: fortran/resolve.c:3891
22225+#: fortran/resolve.c:3878
22226 #, c-format
22227 msgid "Operand of .not. operator at %%L is %s"
22228 msgstr "El operando del operador .not. en %%L es %s"
22229
22230-#: fortran/resolve.c:3905
22231+#: fortran/resolve.c:3892
22232 msgid "COMPLEX quantities cannot be compared at %L"
22233 msgstr "Las cantidades COMPLEX no se pueden comparar en %L"
22234
22235-#: fortran/resolve.c:3934
22236+#: fortran/resolve.c:3921
22237 #, c-format
22238 msgid "Logicals at %%L must be compared with %s instead of %s"
22239 msgstr "Los lógicos en %%L se deben comparar con %s en lugar de %s"
22240
22241-#: fortran/resolve.c:3940
22242+#: fortran/resolve.c:3927
22243 #, c-format
22244 msgid "Operands of comparison operator '%s' at %%L are %s/%s"
22245 msgstr "Los operandos del operador de comparación '%s' en %%L son %s/%s"
22246
22247-#: fortran/resolve.c:3948
22248+#: fortran/resolve.c:3935
22249 #, c-format
22250 msgid "Unknown operator '%s' at %%L"
22251 msgstr "Operador '%s' desconocido en %%L"
22252
22253-#: fortran/resolve.c:3950
22254+#: fortran/resolve.c:3937
22255 #, c-format
22256 msgid "Operand of user operator '%s' at %%L is %s"
22257 msgstr "El operando del operador de usuario '%s' en %%L es %s"
22258
22259-#: fortran/resolve.c:3954
22260+#: fortran/resolve.c:3941
22261 #, c-format
22262 msgid "Operands of user operator '%s' at %%L are %s/%s"
22263 msgstr "Los operandos del operador de usuario '%s' en %%L son %s/%s"
22264
22265-#: fortran/resolve.c:4042
22266+#: fortran/resolve.c:4029
22267 #, c-format
22268 msgid "Inconsistent ranks for operator at %%L and %%L"
22269 msgstr "Rangos inconsistentes para el operador en %%L y %%L"
22270
22271-#: fortran/resolve.c:6415
22272+#: fortran/resolve.c:6402
22273 msgid "Loop variable"
22274 msgstr "Variable de ciclo"
22275
22276-#: fortran/resolve.c:6419
22277+#: fortran/resolve.c:6406
22278 msgid "iterator variable"
22279 msgstr "variable de iterador"
22280
22281-#: fortran/resolve.c:6424
22282+#: fortran/resolve.c:6411
22283 msgid "Start expression in DO loop"
22284 msgstr "Expresión de inicio en el bucle DO"
22285
22286-#: fortran/resolve.c:6428
22287+#: fortran/resolve.c:6415
22288 msgid "End expression in DO loop"
22289 msgstr "Expresión de fin en el bucle DO"
22290
22291-#: fortran/resolve.c:6432
22292+#: fortran/resolve.c:6419
22293 msgid "Step expression in DO loop"
22294 msgstr "Expresión de paso en el bucle DO"
22295
22296-#: fortran/resolve.c:6688 fortran/resolve.c:6691
22297+#: fortran/resolve.c:6675 fortran/resolve.c:6678
22298 msgid "DEALLOCATE object"
22299 msgstr "objeto DEALLOCATE"
22300
22301-#: fortran/resolve.c:7033 fortran/resolve.c:7035
22302+#: fortran/resolve.c:7020 fortran/resolve.c:7022
22303 msgid "ALLOCATE object"
22304 msgstr "objeto ALLOCATE"
22305
22306-#: fortran/resolve.c:7215 fortran/resolve.c:8448
22307+#: fortran/resolve.c:7202 fortran/resolve.c:8435
22308 msgid "STAT variable"
22309 msgstr "variable STAT"
22310
22311-#: fortran/resolve.c:7258 fortran/resolve.c:8460
22312+#: fortran/resolve.c:7245 fortran/resolve.c:8447
22313 msgid "ERRMSG variable"
22314 msgstr "variable ERRMSG"
22315
22316-#: fortran/resolve.c:8326
22317+#: fortran/resolve.c:8313
22318 msgid "item in READ"
22319 msgstr "elemento en READ"
22320
22321-#: fortran/resolve.c:8472
22322+#: fortran/resolve.c:8459
22323 msgid "ACQUIRED_LOCK variable"
22324 msgstr "variable ACQUIRED_LOCK"
22325
22326@@ -4365,17 +4458,17 @@
22327 msgid "Integer overflow when calculating the amount of memory to allocate"
22328 msgstr "Desborde entero al calcular la cantidad de memoria a reservar"
22329
22330-#: fortran/trans-decl.c:4776
22331+#: fortran/trans-decl.c:4791
22332 #, c-format
22333 msgid "Actual string length does not match the declared one for dummy argument '%s' (%ld/%ld)"
22334 msgstr "La longitud de la cadena actual no coincide con la declarada para el argumento dummy '%s' (%ld/%ld)"
22335
22336-#: fortran/trans-decl.c:4784
22337+#: fortran/trans-decl.c:4799
22338 #, c-format
22339 msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)"
22340 msgstr "La longitud de la cadena actual es más corta que la declarada para el argumento dummy '%s' (%ld/%ld)"
22341
22342-#: fortran/trans-expr.c:5960
22343+#: fortran/trans-expr.c:5964
22344 #, c-format
22345 msgid "Target of rank remapping is too small (%ld < %ld)"
22346 msgstr "El objetivo del remapeo de rango es demasiado pequeño (%ld < %ld)"
22347@@ -4406,16 +4499,16 @@
22348 msgid "Assigned label is not a target label"
22349 msgstr "La etiqueta asignada no es una etiqueta objetivo"
22350
22351-#: fortran/trans-stmt.c:771
22352+#: fortran/trans-stmt.c:793
22353 #, c-format
22354 msgid "Invalid image number %d in SYNC IMAGES"
22355 msgstr "Número de imagen %d inválido en SYNC IMAGES"
22356
22357-#: fortran/trans-stmt.c:1347 fortran/trans-stmt.c:1628
22358+#: fortran/trans-stmt.c:1369 fortran/trans-stmt.c:1650
22359 msgid "Loop variable has been modified"
22360 msgstr "Se modificó la variable de ciclo"
22361
22362-#: fortran/trans-stmt.c:1487
22363+#: fortran/trans-stmt.c:1509
22364 msgid "DO step value is zero"
22365 msgstr "El valor de paso de DO es cero"
22366
22367@@ -4616,47 +4709,77 @@
22368 msgid "-fuse-linker-plugin is not supported in this configuration"
22369 msgstr "-fuse-linker-plugin no se admite en esta configuración"
22370
22371-#: gcc.c:777 ada/gcc-interface/lang-specs.h:33 java/jvspec.c:80
22372+#: gcc.c:778 ada/gcc-interface/lang-specs.h:33 java/jvspec.c:80
22373 msgid "-pg and -fomit-frame-pointer are incompatible"
22374 msgstr "-pg y -fomit-frame-pointer son incompatibles"
22375
22376-#: gcc.c:939
22377+#: gcc.c:945
22378 msgid "GNU C no longer supports -traditional without -E"
22379 msgstr "C de GNU ya no admite -traditional sin usar -E"
22380
22381-#: gcc.c:948
22382+#: gcc.c:954
22383 msgid "-E or -x required when input is from standard input"
22384 msgstr "se requiere -E ó -x cuando la entrada es de entrada estándar"
22385
22386-#: config/alpha/freebsd.h:34 config/ia64/freebsd.h:26 config/i386/freebsd.h:96
22387-#: config/i386/freebsd64.h:35 config/arm/freebsd.h:31
22388-#: config/rs6000/sysv4.h:772 config/sparc/freebsd.h:46
22389+#: config/cris/cris.h:192
22390+msgid "do not specify both -march=... and -mcpu=..."
22391+msgstr "no especifique -march=... y -mcpu=... al mismo tiempo"
22392+
22393+#: config/alpha/freebsd.h:34 config/sparc/freebsd.h:46
22394+#: config/ia64/freebsd.h:26 config/arm/freebsd.h:31 config/i386/freebsd.h:96
22395+#: config/i386/freebsd64.h:35 config/rs6000/sysv4.h:772
22396 msgid "consider using '-pg' instead of '-p' with gprof(1)"
22397 msgstr "considere usar '-pg' en lugar de '-p' con gprof(1)"
22398
22399-#: fortran/lang-specs.h:55 fortran/lang-specs.h:69
22400-msgid "gfortran does not support -E without -cpp"
22401-msgstr "gfortran no admite -E sin usar -cpp"
22402+#: ada/gcc-interface/lang-specs.h:34
22403+msgid "-c or -S required for Ada"
22404+msgstr "se requiere -c o -S para Ada"
22405
22406-#: config/i386/mingw-w64.h:83 config/i386/mingw32.h:116
22407-#: config/i386/cygwin.h:114
22408-msgid "shared and mdll are not compatible"
22409-msgstr "shared y mdll no son compatibles"
22410+#: ada/gcc-interface/lang-specs.h:52
22411+msgid "-c required for gnat2why"
22412+msgstr "se requiere -c para gnat2why"
22413
22414-#: config/vax/netbsd-elf.h:51
22415-msgid "the -shared option is not currently supported for VAX ELF"
22416-msgstr "la opción -shared no se admite actualmente en ELF de VAX"
22417+#: config/rx/rx.h:57
22418+msgid "-mas100-syntax is incompatible with -gdwarf"
22419+msgstr "-mas100-syntax es incompatible con -gdwarf"
22420
22421+#: config/rx/rx.h:58
22422+msgid "rx200 cpu does not have FPU hardware"
22423+msgstr "el cpu rx200 no tiene FPU de hardware"
22424+
22425+#: config/sparc/linux64.h:158 config/sparc/linux64.h:165
22426 #: config/sparc/netbsd-elf.h:109 config/sparc/netbsd-elf.h:118
22427-#: config/sparc/sol2.h:201 config/sparc/sol2.h:207 config/sparc/linux64.h:158
22428-#: config/sparc/linux64.h:165
22429+#: config/sparc/sol2.h:201 config/sparc/sol2.h:207
22430 msgid "may not use both -m32 and -m64"
22431 msgstr "no se pueden usar -m32 y -m64 al mismo tiempo"
22432
22433-#: config/vax/vax.h:50 config/vax/vax.h:51
22434-msgid "profiling not supported with -mg"
22435-msgstr "el análisis de perfil no se admite con -mg"
22436+#: config/pa/pa64-hpux.h:30 config/pa/pa64-hpux.h:33 config/pa/pa64-hpux.h:42
22437+#: config/pa/pa64-hpux.h:45 config/pa/pa-hpux10.h:89 config/pa/pa-hpux10.h:92
22438+#: config/pa/pa-hpux10.h:100 config/pa/pa-hpux10.h:103
22439+#: config/pa/pa-hpux11.h:108 config/pa/pa-hpux11.h:111
22440+msgid "warning: consider linking with '-static' as system libraries with"
22441+msgstr "aviso: considere enlazar con '-static' como bibliotecas de sistema con"
22442
22443+#: config/pa/pa64-hpux.h:31 config/pa/pa64-hpux.h:34 config/pa/pa64-hpux.h:43
22444+#: config/pa/pa64-hpux.h:46 config/pa/pa-hpux10.h:90 config/pa/pa-hpux10.h:93
22445+#: config/pa/pa-hpux10.h:101 config/pa/pa-hpux10.h:104
22446+#: config/pa/pa-hpux11.h:109 config/pa/pa-hpux11.h:112
22447+msgid " profiling support are only provided in archive format"
22448+msgstr " soporte a análisis de perfil sólo se proveen en formato de archivo"
22449+
22450+#: config/lynx.h:70
22451+msgid "cannot use mthreads and mlegacy-threads together"
22452+msgstr "no se pueden usar mthreads y mlegacy-threads juntos"
22453+
22454+#: config/lynx.h:95
22455+msgid "cannot use mshared and static together"
22456+msgstr "no se pueden usar mshared y static juntos"
22457+
22458+#: config/i386/mingw-w64.h:83 config/i386/mingw32.h:116
22459+#: config/i386/cygwin.h:114
22460+msgid "shared and mdll are not compatible"
22461+msgstr "shared y mdll no son compatibles"
22462+
22463 #: config/s390/tpf.h:116
22464 msgid "static is not supported on TPF-OS"
22465 msgstr "static no se admite en TPF-OS"
22466@@ -4673,42 +4796,6 @@
22467 msgid "-msingle-float and -msoft-float cannot both be specified"
22468 msgstr "no se pueden especificar -msingle-float y -msoft-float al mismo tiempo"
22469
22470-#: config/lynx.h:70
22471-msgid "cannot use mthreads and mlegacy-threads together"
22472-msgstr "no se pueden usar mthreads y mlegacy-threads juntos"
22473-
22474-#: config/lynx.h:95
22475-msgid "cannot use mshared and static together"
22476-msgstr "no se pueden usar mshared y static juntos"
22477-
22478-#: objcp/lang-specs.h:58
22479-msgid "objc++-cpp-output is deprecated; please use objective-c++-cpp-output instead"
22480-msgstr "objc++-cpp-output es obsoleto; pr favor use en su lugar objective-c++-cpp-output"
22481-
22482-#: ada/gcc-interface/lang-specs.h:34
22483-msgid "-c or -S required for Ada"
22484-msgstr "se requiere -c o -S para Ada"
22485-
22486-#: ada/gcc-interface/lang-specs.h:52
22487-msgid "-c required for gnat2why"
22488-msgstr "se requiere -c para gnat2why"
22489-
22490-#: java/lang-specs.h:33
22491-msgid "-fjni and -femit-class-files are incompatible"
22492-msgstr "-fjni y -femit-class-files son incompatibles"
22493-
22494-#: java/lang-specs.h:34
22495-msgid "-fjni and -femit-class-file are incompatible"
22496-msgstr "-fjni y -femit-class-file son incompatibles"
22497-
22498-#: java/lang-specs.h:35 java/lang-specs.h:36
22499-msgid "-femit-class-file should used along with -fsyntax-only"
22500-msgstr "-femit-class-file se debe usar junto con -fsyntax-only"
22501-
22502-#: config/mcore/mcore.h:54
22503-msgid "the m210 does not have little endian support"
22504-msgstr "el m210 no admite little endian"
22505-
22506 #: config/sol2-bi.h:108 config/sol2-bi.h:113
22507 msgid "does not support multilib"
22508 msgstr "no se admite multilib"
22509@@ -4725,64 +4812,50 @@
22510 msgid "no processor type specified for linking"
22511 msgstr "no existe el tipo de procesador especificado para enlazar"
22512
22513-#: config/sh/sh.h:430 config/sh/sh.h:433
22514-msgid "SH2a does not support little-endian"
22515-msgstr "SH2a no se admite para little-endian"
22516+#: fortran/lang-specs.h:55 fortran/lang-specs.h:69
22517+msgid "gfortran does not support -E without -cpp"
22518+msgstr "gfortran no admite -E sin usar -cpp"
22519
22520-#: config/pa/pa-hpux10.h:89 config/pa/pa-hpux10.h:92 config/pa/pa-hpux10.h:100
22521-#: config/pa/pa-hpux10.h:103 config/pa/pa-hpux11.h:108
22522-#: config/pa/pa-hpux11.h:111 config/pa/pa64-hpux.h:30 config/pa/pa64-hpux.h:33
22523-#: config/pa/pa64-hpux.h:42 config/pa/pa64-hpux.h:45
22524-msgid "warning: consider linking with '-static' as system libraries with"
22525-msgstr "aviso: considere enlazar con '-static' como bibliotecas de sistema con"
22526+#: config/mcore/mcore.h:54
22527+msgid "the m210 does not have little endian support"
22528+msgstr "el m210 no admite little endian"
22529
22530-#: config/pa/pa-hpux10.h:90 config/pa/pa-hpux10.h:93 config/pa/pa-hpux10.h:101
22531-#: config/pa/pa-hpux10.h:104 config/pa/pa-hpux11.h:109
22532-#: config/pa/pa-hpux11.h:112 config/pa/pa64-hpux.h:31 config/pa/pa64-hpux.h:34
22533-#: config/pa/pa64-hpux.h:43 config/pa/pa64-hpux.h:46
22534-msgid " profiling support are only provided in archive format"
22535-msgstr " soporte a análisis de perfil sólo se proveen en formato de archivo"
22536-
22537 #: config/vxworks.h:71
22538 msgid "-Xbind-now and -Xbind-lazy are incompatible"
22539 msgstr "-Xbind-now y -Xbind-lazy son incompatibles"
22540
22541-#: config/darwin.h:242
22542+#: config/darwin.h:244
22543 msgid "-current_version only allowed with -dynamiclib"
22544 msgstr "sólo se permite -current_version con -dynamiclib"
22545
22546-#: config/darwin.h:244
22547+#: config/darwin.h:246
22548 msgid "-install_name only allowed with -dynamiclib"
22549 msgstr "sólo se permite -install_name con -dynamiclib"
22550
22551-#: config/darwin.h:249
22552+#: config/darwin.h:251
22553 msgid "-bundle not allowed with -dynamiclib"
22554 msgstr "no se permite -bundle con -dynamiclib"
22555
22556-#: config/darwin.h:250
22557+#: config/darwin.h:252
22558 msgid "-bundle_loader not allowed with -dynamiclib"
22559 msgstr "no se permite -bundle_loader con -dynamiclib"
22560
22561-#: config/darwin.h:251
22562+#: config/darwin.h:253
22563 msgid "-client_name not allowed with -dynamiclib"
22564 msgstr "no se permite -client_name con -dynamiclib"
22565
22566-#: config/darwin.h:256
22567+#: config/darwin.h:258
22568 msgid "-force_flat_namespace not allowed with -dynamiclib"
22569 msgstr "no se permite -force_flat_namespace con -dynamiclib"
22570
22571-#: config/darwin.h:258
22572+#: config/darwin.h:260
22573 msgid "-keep_private_externs not allowed with -dynamiclib"
22574 msgstr "no se permite keep_private_externs con -dynamiclib"
22575
22576-#: config/darwin.h:259
22577+#: config/darwin.h:261
22578 msgid "-private_bundle not allowed with -dynamiclib"
22579 msgstr "no se permite -private_bundle con -dynamiclib"
22580
22581-#: config/cris/cris.h:192
22582-msgid "do not specify both -march=... and -mcpu=..."
22583-msgstr "no especifique -march=... y -mcpu=... al mismo tiempo"
22584-
22585 #: objc/lang-specs.h:31 objc/lang-specs.h:42
22586 msgid "GNU Objective C no longer supports traditional compilation"
22587 msgstr "Objective C de GNU ya no admite compilación tradicional"
22588@@ -4791,18 +4864,38 @@
22589 msgid "objc-cpp-output is deprecated; please use objective-c-cpp-output instead"
22590 msgstr "objc-cpp-output es obsoleto; por favor use en su lugar objective-c-cpp-output"
22591
22592-#: config/rx/rx.h:57
22593-msgid "-mas100-syntax is incompatible with -gdwarf"
22594-msgstr "-mas100-syntax es incompatible con -gdwarf"
22595+#: config/vax/netbsd-elf.h:51
22596+msgid "the -shared option is not currently supported for VAX ELF"
22597+msgstr "la opción -shared no se admite actualmente en ELF de VAX"
22598
22599-#: config/rx/rx.h:58
22600-msgid "rx200 cpu does not have FPU hardware"
22601-msgstr "el cpu rx200 no tiene FPU de hardware"
22602+#: java/lang-specs.h:33
22603+msgid "-fjni and -femit-class-files are incompatible"
22604+msgstr "-fjni y -femit-class-files son incompatibles"
22605
22606+#: java/lang-specs.h:34
22607+msgid "-fjni and -femit-class-file are incompatible"
22608+msgstr "-fjni y -femit-class-file son incompatibles"
22609+
22610+#: java/lang-specs.h:35 java/lang-specs.h:36
22611+msgid "-femit-class-file should used along with -fsyntax-only"
22612+msgstr "-femit-class-file se debe usar junto con -fsyntax-only"
22613+
22614+#: config/sh/sh.h:430 config/sh/sh.h:433
22615+msgid "SH2a does not support little-endian"
22616+msgstr "SH2a no se admite para little-endian"
22617+
22618 #: config/rs6000/darwin.h:96
22619 msgid " conflicting code gen style switches are used"
22620 msgstr " se usan interruptores de estilo de generación de código en conflicto"
22621
22622+#: objcp/lang-specs.h:58
22623+msgid "objc++-cpp-output is deprecated; please use objective-c++-cpp-output instead"
22624+msgstr "objc++-cpp-output es obsoleto; pr favor use en su lugar objective-c++-cpp-output"
22625+
22626+#: config/vax/vax.h:50 config/vax/vax.h:51
22627+msgid "profiling not supported with -mg"
22628+msgstr "el análisis de perfil no se admite con -mg"
22629+
22630 #: java/lang.opt:122
22631 msgid "Warn if deprecated empty statements are found"
22632 msgstr "Avisa si se encuentran declaraciones vacías obsoletas"
22633@@ -5104,7 +5197,7 @@
22634 msgstr "Permite signos de dólar en nombres de entidades"
22635
22636 #: fortran/lang.opt:371 common.opt:659 common.opt:826 common.opt:830
22637-#: common.opt:834 common.opt:838 common.opt:1323
22638+#: common.opt:834 common.opt:838 common.opt:1320
22639 msgid "Does nothing. Preserved for backward compatibility."
22640 msgstr "No hace nada. Preservado por compatibilidad hacia atrás."
22641
22642@@ -5229,7 +5322,7 @@
22643 msgstr "Permite la revisión de rango durante la compilación"
22644
22645 #: fortran/lang.opt:503
22646-msgid "Interpret any REAl(4) as a REAL(8)"
22647+msgid "Interpret any REAL(4) as a REAL(8)"
22648 msgstr "Interpreta cualquier REAL(4) como un REAL(8)"
22649
22650 #: fortran/lang.opt:507
22651@@ -5237,7 +5330,7 @@
22652 msgstr "Interpreta cualquier REAL(4) como un REAL(10)"
22653
22654 #: fortran/lang.opt:511
22655-msgid "Interpret any REAL(4) as a REAl(16)"
22656+msgid "Interpret any REAL(4) as a REAL(16)"
22657 msgstr "Interpreta cualquier REAL(4) como un REAL(16)"
22658
22659 #: fortran/lang.opt:515
22660@@ -5249,7 +5342,7 @@
22661 msgstr "Interpreta cualquier REAL(8) como un REAL(10)"
22662
22663 #: fortran/lang.opt:523
22664-msgid "Interpret any REAL(8) as a REAl(16)"
22665+msgid "Interpret any REAL(8) as a REAL(16)"
22666 msgstr "Interpreta cualquier REAL(8) como un REAL(16)"
22667
22668 #: fortran/lang.opt:527
22669@@ -8679,6 +8772,58 @@
22670 msgid "Set register to hold -1."
22671 msgstr "Establece el registro para conservar -1."
22672
22673+#: config/cr16/cr16.opt:23
22674+msgid "-msim Use simulator runtime"
22675+msgstr "-msim Usa el simulador de tiempo de ejecución"
22676+
22677+#: config/cr16/cr16.opt:27
22678+msgid "Generate SBIT, CBIT instructions"
22679+msgstr "Genera instrucciones SBIT, CBIT"
22680+
22681+#: config/cr16/cr16.opt:31
22682+msgid "Support multiply accumulate instructions"
22683+msgstr "Da soporte a múltiples instrucciones de acumulador"
22684+
22685+#: config/cr16/cr16.opt:38
22686+msgid "Treat data references as near, far or medium. medium is default"
22687+msgstr "Trata las referencias a datos como near, far o medium. Por defecto es medium"
22688+
22689+#: config/cr16/cr16.opt:42
22690+msgid "Generate code for CR16C architecture"
22691+msgstr "Genera código para la arquitectura CR16C"
22692+
22693+#: config/cr16/cr16.opt:46
22694+msgid "Generate code for CR16C+ architecture (Default)"
22695+msgstr "Genera código para la arquitectura CR16C+ (Por defecto)"
22696+
22697+#: config/cr16/cr16.opt:50
22698+msgid "Treat integers as 32-bit."
22699+msgstr "Trata los enteros como 32-bit."
22700+
22701+#: config/tilegx/tilegx.opt:24 config/tilepro/tilepro.opt:29
22702+msgid "-mcpu=CPU\tUse features of and schedule code for given CPU"
22703+msgstr "-mcpu=CPU\tUsa las características y el código de calendarizador para el CPU dado"
22704+
22705+#: config/tilegx/tilegx.opt:28
22706+msgid "Known TILE-Gx CPUs (for use with the -mcpu= option):"
22707+msgstr "CPUs TILE-Gx conocidos (para usar con la opción -mcpu=):"
22708+
22709+#: config/tilegx/tilegx.opt:35
22710+msgid "Compile with 32 bit longs and pointers."
22711+msgstr "Compila con longs y punteros de 32 bit."
22712+
22713+#: config/tilegx/tilegx.opt:39
22714+msgid "Compile with 64 bit longs and pointers."
22715+msgstr "Compila con longs y punteros de 64 bit."
22716+
22717+#: config/tilepro/tilepro.opt:24
22718+msgid "Compile with 32 bit longs and pointers, which is the only supported"
22719+msgstr "Compila con longs y punteros de 32 bit, el cual es el único admitido"
22720+
22721+#: config/tilepro/tilepro.opt:33
22722+msgid "Known TILEPro CPUs (for use with the -mcpu= option):"
22723+msgstr "CPUs TILEPro conocidos (para uso con la opción -mcpu=):"
22724+
22725 #: config/picochip/picochip.opt:23
22726 msgid "Specify which type of AE to target. This option sets the mul-type and byte-access."
22727 msgstr "Especifica a qué tipo de AE se apunta. Esta opción establece el tipo muly el acceso a byte."
22728@@ -8714,7 +8859,7 @@
22729 #: config/darwin.opt:53 c-family/c.opt:71 c-family/c.opt:74 c-family/c.opt:77
22730 #: c-family/c.opt:80 c-family/c.opt:179 c-family/c.opt:182 c-family/c.opt:220
22731 #: c-family/c.opt:224 c-family/c.opt:236 c-family/c.opt:1125
22732-#: c-family/c.opt:1133 common.opt:301 common.opt:304 common.opt:2281
22733+#: c-family/c.opt:1133 common.opt:301 common.opt:304 common.opt:2278
22734 #, c-format
22735 msgid "missing filename after %qs"
22736 msgstr "falta un nombre de fichero después de %qs"
22737@@ -9577,8 +9722,8 @@
22738 msgstr "Avisa sobre constantes de coma flotante sin sufijo"
22739
22740 #: c-family/c.opt:666
22741-msgid "Warn about"
22742-msgstr "Avisa sobre"
22743+msgid "Warn when typedefs locally defined in a function are not used"
22744+msgstr "Avisa cuando se definen typedefs localmente en una función pero no se usan"
22745
22746 #: c-family/c.opt:670
22747 msgid "Warn about macros defined in the main file that are not used"
22748@@ -9681,9 +9826,9 @@
22749 msgstr "-fdeduce-init-list\tactiva la deducción de std::initializer_list para un parámetro de tipo de plantilla desde una lista de inicializador dentro de llaves"
22750
22751 #: c-family/c.opt:768 c-family/c.opt:955 common.opt:937 common.opt:1115
22752-#: common.opt:1393 common.opt:1647 common.opt:1683 common.opt:1768
22753-#: common.opt:1772 common.opt:1848 common.opt:1926 common.opt:1942
22754-#: common.opt:2026
22755+#: common.opt:1390 common.opt:1644 common.opt:1680 common.opt:1765
22756+#: common.opt:1769 common.opt:1845 common.opt:1923 common.opt:1939
22757+#: common.opt:2023
22758 msgid "Does nothing. Preserved for backward compatibility."
22759 msgstr "No hace nada. Se preserva por compatibilidad hacia atrás."
22760
22761@@ -10721,1126 +10866,1126 @@
22762 msgid "Perform indirect inlining"
22763 msgstr "Realiza la inclusión en línea indirecta"
22764
22765-#: common.opt:1255
22766-msgid "Pay attention to the \"inline\" keyword"
22767-msgstr "Pone atención a la palabra clave \"inline\""
22768+#: common.opt:1252
22769+msgid "Enable inlining of function declared \"inline\", disabling disables all inlining"
22770+msgstr "Activa la inclusión en línea de la la función declarada \"inline\", y desactiva todas las demás inclusiones en línea"
22771
22772-#: common.opt:1259
22773-msgid "Integrate simple functions into their callers when code size is known to not growth"
22774-msgstr "Integra las funciones simples en sus invocadores"
22775+#: common.opt:1256
22776+msgid "Integrate functions into their callers when code size is known not to grow"
22777+msgstr "Integra las funciones en sus invocadores cuando se sabe que el tamaño del código no crece"
22778
22779-#: common.opt:1263
22780-msgid "Integrate simple functions into their callers"
22781-msgstr "Integra las funciones simples en sus invocadores"
22782+#: common.opt:1260
22783+msgid "Integrate functions not declared \"inline\" into their callers when profitable"
22784+msgstr "Integra las funciones que no se declaran \"inline\" en sus invocadores cuando es rentable"
22785
22786-#: common.opt:1267
22787-msgid "Integrate functions called once into their callers"
22788-msgstr "Integra las funciones llamadas una vez en sus invocadores"
22789+#: common.opt:1264
22790+msgid "Integrate functions only required by their single caller"
22791+msgstr "Integra las funciones sólo requeridas por su invocador único"
22792
22793-#: common.opt:1274
22794+#: common.opt:1271
22795 msgid "-finline-limit=<number>\tLimit the size of inlined functions to <number>"
22796 msgstr "-finline-limit=<número>\tLimita el tamaño de las funciones incluídas en línea a <número>"
22797
22798-#: common.opt:1278
22799+#: common.opt:1275
22800 msgid "Inline __atomic operations when a lock free instruction sequence is available."
22801 msgstr "Coloca en línea las operaciones __atomic cuando una secuencia de instrucciones lock free está disponible"
22802
22803-#: common.opt:1282
22804+#: common.opt:1279
22805 msgid "Instrument function entry and exit with profiling calls"
22806 msgstr "Instrumenta funciones de entrada y salida con llamadas de análisis de perfil"
22807
22808-#: common.opt:1286
22809+#: common.opt:1283
22810 msgid "-finstrument-functions-exclude-function-list=name,... Do not instrument listed functions"
22811 msgstr "-finstrument-functions-exclude-functions-list=nombre,... No instrumenta las funciones enlistadas"
22812
22813-#: common.opt:1290
22814+#: common.opt:1287
22815 msgid "-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files"
22816 msgstr "-finstrument-functions-exclude-file-list=fichero,... No instrumenta las funciones enlistadas en ficheros"
22817
22818-#: common.opt:1294
22819+#: common.opt:1291
22820 msgid "Perform Interprocedural constant propagation"
22821 msgstr "Realiza la propagación interprocedural de las constantes"
22822
22823-#: common.opt:1298
22824+#: common.opt:1295
22825 msgid "Perform cloning to make Interprocedural constant propagation stronger"
22826 msgstr "Realiza la clonación para hacer la propagación constante Interprocedural más fuerte"
22827
22828-#: common.opt:1302
22829+#: common.opt:1299
22830 msgid "Perform interprocedural profile propagation"
22831 msgstr "Realiza la propagación de perfil interprocedural"
22832
22833-#: common.opt:1306
22834+#: common.opt:1303
22835 msgid "Perform interprocedural points-to analysis"
22836 msgstr "Realiza el análisis interprocedural de puntero-a"
22837
22838-#: common.opt:1310
22839+#: common.opt:1307
22840 msgid "Discover pure and const functions"
22841 msgstr "Descubre funciones pure y const"
22842
22843-#: common.opt:1314
22844+#: common.opt:1311
22845 msgid "Discover readonly and non addressable static variables"
22846 msgstr "Descubre variables estáticas de sólo lectura y no direccionables"
22847
22848-#: common.opt:1318
22849+#: common.opt:1315
22850 msgid "Perform matrix layout flattening and transposing based"
22851 msgstr "Realiza la ubicación de matriz basado en aplanado y transposición"
22852
22853-#: common.opt:1327
22854+#: common.opt:1324
22855 msgid "-fira-algorithm=[CB|priority] Set the used IRA algorithm"
22856 msgstr "-fira-algorithm=[CB|priority] Establece el algoritmo IRA a usar"
22857
22858-#: common.opt:1330
22859+#: common.opt:1327
22860 #, c-format
22861 msgid "unknown IRA algorithm %qs"
22862 msgstr "algoritmo IRA %qs desconocido"
22863
22864-#: common.opt:1340
22865+#: common.opt:1337
22866 msgid "-fira-region=[one|all|mixed] Set regions for IRA"
22867 msgstr "-fira-region=[one|all|mixed] Establece las regiones para IRA"
22868
22869-#: common.opt:1343
22870+#: common.opt:1340
22871 #, c-format
22872 msgid "unknown IRA region %qs"
22873 msgstr "región IRA %qs desconocida"
22874
22875-#: common.opt:1356
22876+#: common.opt:1353
22877 msgid "Use IRA based register pressure calculation"
22878 msgstr "Usa el cálculo de presión de registros basado en IRA"
22879
22880-#: common.opt:1361
22881+#: common.opt:1358
22882 msgid "Share slots for saving different hard registers."
22883 msgstr "Comparte ranuras para ahorrar registros hard diferentes."
22884
22885-#: common.opt:1365
22886+#: common.opt:1362
22887 msgid "Share stack slots for spilled pseudo-registers."
22888 msgstr "Comparte ranuras de pila para pseudo-registros derramados."
22889
22890-#: common.opt:1369
22891+#: common.opt:1366
22892 msgid "-fira-verbose=<number>\tControl IRA's level of diagnostic messages."
22893 msgstr "-fira-verbose=<número>\tControla el nivel de mensajes de diagnóstico de IRA."
22894
22895-#: common.opt:1373
22896+#: common.opt:1370
22897 msgid "Optimize induction variables on trees"
22898 msgstr "Optimiza la inducción de variables en los árboles"
22899
22900-#: common.opt:1377
22901+#: common.opt:1374
22902 msgid "Use jump tables for sufficiently large switch statements"
22903 msgstr "Usa tablas de salto para las declaraciones switch suficientemente grandes"
22904
22905-#: common.opt:1381
22906+#: common.opt:1378
22907 msgid "Generate code for functions even if they are fully inlined"
22908 msgstr "Genera código para las funciones aún si están completamente incluídas en línea"
22909
22910-#: common.opt:1385
22911+#: common.opt:1382
22912 msgid "Emit static const variables even if they are not used"
22913 msgstr "Emite variables static const aún si no se usan"
22914
22915-#: common.opt:1389
22916+#: common.opt:1386
22917 msgid "Give external symbols a leading underscore"
22918 msgstr "Da a los símbolos externos un subrayado inicial"
22919
22920-#: common.opt:1397
22921+#: common.opt:1394
22922 msgid "Enable link-time optimization."
22923 msgstr "Activa las optimizaciones de tiempo de enlace."
22924
22925-#: common.opt:1401
22926+#: common.opt:1398
22927 msgid "Link-time optimization with number of parallel jobs or jobserver."
22928 msgstr "Optimización en tiempo de enlace con el número de trabajos paralelos o el servidor de trabajos."
22929
22930-#: common.opt:1405
22931+#: common.opt:1402
22932 msgid "Partition functions and vars at linktime based on object files they originate from"
22933 msgstr "Particiona funciones y variables en tiempo de enlace basado en los ficheros objetos de los que se originaron"
22934
22935-#: common.opt:1409
22936+#: common.opt:1406
22937 msgid "Partition functions and vars at linktime into approximately same sized buckets"
22938 msgstr "Particiona funciones y variables en tiempo de enlace en cubos de aproximadamente el mismo tamaño"
22939
22940-#: common.opt:1413
22941+#: common.opt:1410
22942 msgid "Disable partioning and streaming"
22943 msgstr "Desactiva el particionamiento y flujo"
22944
22945-#: common.opt:1418
22946+#: common.opt:1415
22947 msgid "-flto-compression-level=<number>\tUse zlib compression level <number> for IL"
22948 msgstr "-flto-compression-level=<número>\tUsa el nivel de compresión de zlib <número> para IL"
22949
22950-#: common.opt:1422
22951+#: common.opt:1419
22952 msgid "Report various link-time optimization statistics"
22953 msgstr "Reporta varias estadísticas de optimización de tiempo de enlace"
22954
22955-#: common.opt:1426
22956+#: common.opt:1423
22957 msgid "Set errno after built-in math functions"
22958 msgstr "Establece errno después de las funciones matemáticas internas"
22959
22960-#: common.opt:1430
22961+#: common.opt:1427
22962 msgid "-fmax-errors=<number>\tMaximum number of errors to report"
22963 msgstr "-fmax-errors=<número>\tNúmero máximo de errores a reportar"
22964
22965-#: common.opt:1434
22966+#: common.opt:1431
22967 msgid "Report on permanent memory allocation"
22968 msgstr "Reporta el alojamiento en memoria permanente"
22969
22970-#: common.opt:1441
22971+#: common.opt:1438
22972 msgid "Attempt to merge identical constants and constant variables"
22973 msgstr "Intenta mezclar constantes idénticas y variables constantes"
22974
22975-#: common.opt:1445
22976+#: common.opt:1442
22977 msgid "Attempt to merge identical constants across compilation units"
22978 msgstr "Intenta mezclar constantes idénticas a través de las unidades de compilación"
22979
22980-#: common.opt:1449
22981+#: common.opt:1446
22982 msgid "Attempt to merge identical debug strings across compilation units"
22983 msgstr "Intenta mezclar cadenas de depuración idénticas a través de las unidades de compilación"
22984
22985-#: common.opt:1453
22986+#: common.opt:1450
22987 msgid "-fmessage-length=<number>\tLimit diagnostics to <number> characters per line. 0 suppresses line-wrapping"
22988 msgstr "-fmessage-length=<número>\tLimita los diagnósticos a <número> caracteres por línea. 0 suprime el corte de línea"
22989
22990-#: common.opt:1457
22991+#: common.opt:1454
22992 msgid "Perform SMS based modulo scheduling before the first scheduling pass"
22993 msgstr "Realiza la calendarización SMS basada en módulo antes del primer paso de calendarización"
22994
22995-#: common.opt:1461
22996+#: common.opt:1458
22997 msgid "Perform SMS based modulo scheduling with register moves allowed"
22998 msgstr "Realiza la calendarización módulo basada en SMS con movimientos permitidos de registros"
22999
23000-#: common.opt:1465
23001+#: common.opt:1462
23002 msgid "Move loop invariant computations out of loops"
23003 msgstr "Mueve las computaciones invariantes de bucles fuera de los bucles"
23004
23005-#: common.opt:1469
23006+#: common.opt:1466
23007 msgid "Use the RTL dead code elimination pass"
23008 msgstr "Usa el paso de eliminación de código muerto de RTL"
23009
23010-#: common.opt:1473
23011+#: common.opt:1470
23012 msgid "Use the RTL dead store elimination pass"
23013 msgstr "Usa la eliminación de almacenamiento muerto de RTL"
23014
23015-#: common.opt:1477
23016+#: common.opt:1474
23017 msgid "Enable/Disable the traditional scheduling in loops that already passed modulo scheduling"
23018 msgstr "Activa/Desactiva la calendarización tradicional en bucles que ya pasaron la calendarización módulo"
23019
23020-#: common.opt:1481
23021+#: common.opt:1478
23022 msgid "Support synchronous non-call exceptions"
23023 msgstr "Permite las excepciones síncronas que no son llamadas"
23024
23025-#: common.opt:1485
23026+#: common.opt:1482
23027 msgid "When possible do not generate stack frames"
23028 msgstr "Cuando sea posible no genera marcos de pila"
23029
23030-#: common.opt:1489
23031+#: common.opt:1486
23032 msgid "Do the full register move optimization pass"
23033 msgstr "Hace el paso completo de optimización de movimiento de registros"
23034
23035-#: common.opt:1493
23036+#: common.opt:1490
23037 msgid "Optimize sibling and tail recursive calls"
23038 msgstr "Optimiza las llamadas recursivas hermanadas y de extremo"
23039
23040-#: common.opt:1497
23041+#: common.opt:1494
23042 msgid "Perform partial inlining"
23043 msgstr "Realiza la inclusión en línea parcial"
23044
23045-#: common.opt:1501 common.opt:1505
23046+#: common.opt:1498 common.opt:1502
23047 msgid "Report on memory allocation before interprocedural optimization"
23048 msgstr "Reporta la ubicación de memoria antes de la optimización interprocedural"
23049
23050-#: common.opt:1509
23051+#: common.opt:1506
23052 msgid "Pack structure members together without holes"
23053 msgstr "Empaqueta juntos a los miembros de la estructura sin agujeros"
23054
23055-#: common.opt:1513
23056+#: common.opt:1510
23057 msgid "-fpack-struct=<number>\tSet initial maximum structure member alignment"
23058 msgstr "-fpack-struct=<número>\tEstablece la alineación inicial máxima de estructuras miembro"
23059
23060-#: common.opt:1517
23061+#: common.opt:1514
23062 msgid "Return small aggregates in memory, not registers"
23063 msgstr "Devuelve los agregados small en memoria, no en registros"
23064
23065-#: common.opt:1521
23066+#: common.opt:1518
23067 msgid "Perform loop peeling"
23068 msgstr "Realiza el pelado de bucles"
23069
23070-#: common.opt:1525
23071+#: common.opt:1522
23072 msgid "Enable machine specific peephole optimizations"
23073 msgstr "Activa las optimizaciones de mirilla específicas de la máquina"
23074
23075-#: common.opt:1529
23076+#: common.opt:1526
23077 msgid "Enable an RTL peephole pass before sched2"
23078 msgstr "Activa un paso de mirilla RTL antes de sched2"
23079
23080-#: common.opt:1533
23081+#: common.opt:1530
23082 msgid "Generate position-independent code if possible (large mode)"
23083 msgstr "Genera código independiente de posición si es posible (modo large)"
23084
23085-#: common.opt:1537
23086+#: common.opt:1534
23087 msgid "Generate position-independent code for executables if possible (large mode)"
23088 msgstr "Genera código independiente de posición para ejecutables si es posible (modo large)"
23089
23090-#: common.opt:1541
23091+#: common.opt:1538
23092 msgid "Generate position-independent code if possible (small mode)"
23093 msgstr "Genera código independiente de posición si es posible (modo small)"
23094
23095-#: common.opt:1545
23096+#: common.opt:1542
23097 msgid "Generate position-independent code for executables if possible (small mode)"
23098 msgstr "Genera código independiente de posición para ejecutables si es posible (modo small)"
23099
23100-#: common.opt:1549
23101+#: common.opt:1546
23102 msgid "Specify a plugin to load"
23103 msgstr "Especifica un plugin a cargar"
23104
23105-#: common.opt:1553
23106+#: common.opt:1550
23107 msgid "-fplugin-arg-<name>-<key>[=<value>]\tSpecify argument <key>=<value> for plugin <name>"
23108 msgstr "-fplugin-arg-<nom>-<clave>[=<valor>]\tEspecifica el argumento <clave>=<valor> para el plugin <nom>bre"
23109
23110-#: common.opt:1557
23111+#: common.opt:1554
23112 msgid "Run predictive commoning optimization."
23113 msgstr "Ejecuta la optimización comunizadora predictiva."
23114
23115-#: common.opt:1561
23116+#: common.opt:1558
23117 msgid "Generate prefetch instructions, if available, for arrays in loops"
23118 msgstr "Genera instrucciones de precargado, si están disponibles, para matrices en bucles"
23119
23120-#: common.opt:1565
23121+#: common.opt:1562
23122 msgid "Enable basic program profiling code"
23123 msgstr "Activa el código básico de análisis de perfil del programa"
23124
23125-#: common.opt:1569
23126+#: common.opt:1566
23127 msgid "Insert arc-based program profiling code"
23128 msgstr "Inserta el código de análisis de perfil de programa basado en arc"
23129
23130-#: common.opt:1573
23131+#: common.opt:1570
23132 msgid "Set the top-level directory for storing the profile data."
23133 msgstr "Establece el directorio de nivel principal para almacenar los datos de perfilado."
23134
23135-#: common.opt:1578
23136+#: common.opt:1575
23137 msgid "Enable correction of flow inconsistent profile data input"
23138 msgstr "Activa la corrección de datos de entrada de perfilado inconsistente de flujo"
23139
23140-#: common.opt:1582
23141+#: common.opt:1579
23142 msgid "Enable common options for generating profile info for profile feedback directed optimizations"
23143 msgstr "Activa las opciones comunes para generar información de análisis de perfil para optimizaciones dirigidas por retroalimentación de perfil"
23144
23145-#: common.opt:1586
23146+#: common.opt:1583
23147 msgid "Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir="
23148 msgstr "Activa las opciones comunes para generar información de análisis de perfil para optimizaciones dirigidas por retroalimentación de perfili, y establece -fprofile-dir="
23149
23150-#: common.opt:1590
23151+#: common.opt:1587
23152 msgid "Enable common options for performing profile feedback directed optimizations"
23153 msgstr "Activa las opciones comunes para realizar optimizaciones dirigidas por retroalimentación de perfil"
23154
23155-#: common.opt:1594
23156+#: common.opt:1591
23157 msgid "Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir="
23158 msgstr "Activa las opciones comunes para realizar optimizaciones dirigidas por retroalimentación de perfil, y establece -fprofile-dir="
23159
23160-#: common.opt:1598
23161+#: common.opt:1595
23162 msgid "Insert code to profile values of expressions"
23163 msgstr "Inserta el código para perfilar valores de expresiones"
23164
23165-#: common.opt:1605
23166+#: common.opt:1602
23167 msgid "-frandom-seed=<string>\tMake compile reproducible using <string>"
23168 msgstr "-frandom-seed=<cadena>\tHace que se pueda reproducir la compilación utilizando la <cadena>"
23169
23170-#: common.opt:1615
23171+#: common.opt:1612
23172 msgid "Record gcc command line switches in the object file."
23173 msgstr "Guarda las opciones de la línea de órdenes de gcc en el fichero objeto."
23174
23175-#: common.opt:1619
23176+#: common.opt:1616
23177 msgid "Return small aggregates in registers"
23178 msgstr "Devuelve agregados small en registros"
23179
23180-#: common.opt:1623
23181+#: common.opt:1620
23182 msgid "Enables a register move optimization"
23183 msgstr "Permite una optimización de movimiento de registros"
23184
23185-#: common.opt:1627
23186+#: common.opt:1624
23187 msgid "Perform a register renaming optimization pass"
23188 msgstr "Realiza el paso de optimización de renombrado de registros"
23189
23190-#: common.opt:1631
23191+#: common.opt:1628
23192 msgid "Reorder basic blocks to improve code placement"
23193 msgstr "Reordena los bloques básicos para mejorar la ubicación del código"
23194
23195-#: common.opt:1635
23196+#: common.opt:1632
23197 msgid "Reorder basic blocks and partition into hot and cold sections"
23198 msgstr "Reordena los bloques básicos y particionar en secciones caliente y fría"
23199
23200-#: common.opt:1639
23201+#: common.opt:1636
23202 msgid "Reorder functions to improve code placement"
23203 msgstr "Reordena las funciones para mejorar la ubicación del código"
23204
23205-#: common.opt:1643
23206+#: common.opt:1640
23207 msgid "Add a common subexpression elimination pass after loop optimizations"
23208 msgstr "Ejecuta un paso de eliminación de subexpresión común después de las optimizaciones de bucles"
23209
23210-#: common.opt:1651
23211+#: common.opt:1648
23212 msgid "Disable optimizations that assume default FP rounding behavior"
23213 msgstr "Desactiva las optimizaciones que asumen la conducta de un FP que redondea por defecto"
23214
23215-#: common.opt:1655
23216+#: common.opt:1652
23217 msgid "Enable scheduling across basic blocks"
23218 msgstr "Activa la calendarización entre bloques básicos"
23219
23220-#: common.opt:1659
23221+#: common.opt:1656
23222 msgid "Enable register pressure sensitive insn scheduling"
23223 msgstr "Activa la calendarización de insn sensible a la presión de registros"
23224
23225-#: common.opt:1663
23226+#: common.opt:1660
23227 msgid "Allow speculative motion of non-loads"
23228 msgstr "Permite el movimiento especulativo de insn que no son load"
23229
23230-#: common.opt:1667
23231+#: common.opt:1664
23232 msgid "Allow speculative motion of some loads"
23233 msgstr "Permite el movimiento especulativo de algunas loads"
23234
23235-#: common.opt:1671
23236+#: common.opt:1668
23237 msgid "Allow speculative motion of more loads"
23238 msgstr "Permite el movimiento especulativo de más loads"
23239
23240-#: common.opt:1675
23241+#: common.opt:1672
23242 msgid "-fsched-verbose=<number>\tSet the verbosity level of the scheduler"
23243 msgstr "-fsched-verbose=<número>\tEstablece el nivel de detalle del calendarizador"
23244
23245-#: common.opt:1679
23246+#: common.opt:1676
23247 msgid "If scheduling post reload, do superblock scheduling"
23248 msgstr "Si se calendariza después de la recarga, hace la calendarización de superbloque"
23249
23250-#: common.opt:1687
23251+#: common.opt:1684
23252 msgid "Reschedule instructions before register allocation"
23253 msgstr "Recalendariza las instrucciones antes del alojamiento de registros"
23254
23255-#: common.opt:1691
23256+#: common.opt:1688
23257 msgid "Reschedule instructions after register allocation"
23258 msgstr "Recalendariza las instrucciones después del alojamiento de registros"
23259
23260-#: common.opt:1698
23261+#: common.opt:1695
23262 msgid "Schedule instructions using selective scheduling algorithm"
23263 msgstr "Calendariza instrucciones usando el algoritmo de calendarización selectivo"
23264
23265-#: common.opt:1702
23266+#: common.opt:1699
23267 msgid "Run selective scheduling after reload"
23268 msgstr "Ejecuta la calendarización selectiva después de recargar"
23269
23270-#: common.opt:1706
23271+#: common.opt:1703
23272 msgid "Perform software pipelining of inner loops during selective scheduling"
23273 msgstr "Realiza el `pipelining' de software de los bucles internos durante la calendarización selectiva"
23274
23275-#: common.opt:1710
23276+#: common.opt:1707
23277 msgid "Perform software pipelining of outer loops during selective scheduling"
23278 msgstr "Realiza el `pipelining' de software de los bucles externos durante la calendarización selectiva"
23279
23280-#: common.opt:1714
23281+#: common.opt:1711
23282 msgid "Reschedule pipelined regions without pipelining"
23283 msgstr "Recalendariza las regiones `pipelined' sin `pipelining'"
23284
23285-#: common.opt:1720
23286+#: common.opt:1717
23287 msgid "Allow premature scheduling of queued insns"
23288 msgstr "Permite la calendarización prematura de insns encoladas"
23289
23290-#: common.opt:1724
23291+#: common.opt:1721
23292 msgid "-fsched-stalled-insns=<number>\tSet number of queued insns that can be prematurely scheduled"
23293 msgstr "-fsched-stalled-insns=<número>\tEstablece el número de insns encoladas que se pueden calendarizar prematuramente"
23294
23295-#: common.opt:1732
23296+#: common.opt:1729
23297 msgid "Set dependence distance checking in premature scheduling of queued insns"
23298 msgstr "Establece la revisión de distancia de dependencias en la calendarización prematura de insns encoladas"
23299
23300-#: common.opt:1736
23301+#: common.opt:1733
23302 msgid "-fsched-stalled-insns-dep=<number>\tSet dependence distance checking in premature scheduling of queued insns"
23303 msgstr "-fsched-stalled-insns-dep=<número>\tEstablece la revisión de distancia de dependencias en la calendarización prematura de insns encoladas"
23304
23305-#: common.opt:1740
23306+#: common.opt:1737
23307 msgid "Enable the group heuristic in the scheduler"
23308 msgstr "Activa la heurística de grupo en el calendarizador"
23309
23310-#: common.opt:1744
23311+#: common.opt:1741
23312 msgid "Enable the critical path heuristic in the scheduler"
23313 msgstr "Activa la heurística de ruta crítica en el calendarizador"
23314
23315-#: common.opt:1748
23316+#: common.opt:1745
23317 msgid "Enable the speculative instruction heuristic in the scheduler"
23318 msgstr "Activa la heurística de instrucción especulativa en el calendarizador"
23319
23320-#: common.opt:1752
23321+#: common.opt:1749
23322 msgid "Enable the rank heuristic in the scheduler"
23323 msgstr "Activa la heurística de rango en el calendarizador"
23324
23325-#: common.opt:1756
23326+#: common.opt:1753
23327 msgid "Enable the last instruction heuristic in the scheduler"
23328 msgstr "Activa la heurística de última instrucción en el calendarizador"
23329
23330-#: common.opt:1760
23331+#: common.opt:1757
23332 msgid "Enable the dependent count heuristic in the scheduler"
23333 msgstr "Activa la heurística de cuenta dependiente en el calendarizador"
23334
23335-#: common.opt:1764
23336+#: common.opt:1761
23337 msgid "Access data in the same section from shared anchor points"
23338 msgstr "Accede datos en la misma sección que los puntos de anclaje compartidos"
23339
23340-#: common.opt:1776
23341+#: common.opt:1773
23342 msgid "Turn on Redundant Extensions Elimination pass."
23343 msgstr "Activa el paso de Eliminación de Extensiones Redundantes."
23344
23345-#: common.opt:1780
23346+#: common.opt:1777
23347 msgid "Show column numbers in diagnostics, when available. Default on"
23348 msgstr "Muestra los números de columna en los diagnósticos, cuando estén disponible. Activado por defecto"
23349
23350-#: common.opt:1784
23351+#: common.opt:1781
23352 msgid "Emit function prologues only before parts of the function that need it,"
23353 msgstr "Emite prólogos de función sólo después de que las partes de la función que los necesitan,"
23354
23355-#: common.opt:1789
23356+#: common.opt:1786
23357 msgid "Disable optimizations observable by IEEE signaling NaNs"
23358 msgstr "Desactiva las optimizaciones observables con IEEE señalando NaNs"
23359
23360-#: common.opt:1793
23361+#: common.opt:1790
23362 msgid "Disable floating point optimizations that ignore the IEEE signedness of zero"
23363 msgstr "Desactiva las optimizaciones de coma flotante que ignoran el signo de IEEE para cero"
23364
23365-#: common.opt:1797
23366+#: common.opt:1794
23367 msgid "Convert floating point constants to single precision constants"
23368 msgstr "Convierte las constantes de coma flotante a constantes de precisión simple"
23369
23370-#: common.opt:1801
23371+#: common.opt:1798
23372 msgid "Split lifetimes of induction variables when loops are unrolled"
23373 msgstr "Divide los tiempos de vida de las variables de inducción cuando se desenrollen los bucles"
23374
23375-#: common.opt:1805
23376+#: common.opt:1802
23377 msgid "Generate discontiguous stack frames"
23378 msgstr "Genera marcos de pila discontiguos"
23379
23380-#: common.opt:1809
23381+#: common.opt:1806
23382 msgid "Split wide types into independent registers"
23383 msgstr "Divide los tipos anchos en registros independientes"
23384
23385-#: common.opt:1813
23386+#: common.opt:1810
23387 msgid "Apply variable expansion when loops are unrolled"
23388 msgstr "Aplica la expansión de variables cuando se desenrollan los bucles"
23389
23390-#: common.opt:1817
23391+#: common.opt:1814
23392 msgid "-fstack-check=[no|generic|specific]\tInsert stack checking code into the program"
23393 msgstr "-fstack-check=[no|generic|specific]\tInserta código de revisión de la pila en el programa"
23394
23395-#: common.opt:1821
23396+#: common.opt:1818
23397 msgid "Insert stack checking code into the program. Same as -fstack-check=specific"
23398 msgstr "Inserta código de revisión de la pila en el programai. Igual que -fstach-check=specific"
23399
23400-#: common.opt:1828
23401+#: common.opt:1825
23402 msgid "-fstack-limit-register=<register>\tTrap if the stack goes past <register>"
23403 msgstr "-fstack-limit-register=<register>\tCaptura si la pila pasa del <registro>"
23404
23405-#: common.opt:1832
23406+#: common.opt:1829
23407 msgid "-fstack-limit-symbol=<name>\tTrap if the stack goes past symbol <name>"
23408 msgstr "-fstack-limit-symbol=<nombre>\tCaptura si la pila pasa del símbolo <nombre>"
23409
23410-#: common.opt:1836
23411+#: common.opt:1833
23412 msgid "Use propolice as a stack protection method"
23413 msgstr "Usa propolice como un método de protección de pila"
23414
23415-#: common.opt:1840
23416+#: common.opt:1837
23417 msgid "Use a stack protection method for every function"
23418 msgstr "Usa un método de protección de pila para cada función"
23419
23420-#: common.opt:1844
23421+#: common.opt:1841
23422 msgid "Output stack usage information on a per-function basis"
23423 msgstr "Información de uso de pila de salida basada por función"
23424
23425-#: common.opt:1856
23426+#: common.opt:1853
23427 msgid "Assume strict aliasing rules apply"
23428 msgstr "Asume que se aplican las reglas estrictas de alias"
23429
23430-#: common.opt:1860
23431+#: common.opt:1857
23432 msgid "Treat signed overflow as undefined"
23433 msgstr "Trata el desbordamiento de signo como indefinido"
23434
23435-#: common.opt:1864
23436+#: common.opt:1861
23437 msgid "Check for syntax errors, then stop"
23438 msgstr "Busca errores de sintaxis, y termina"
23439
23440-#: common.opt:1868
23441+#: common.opt:1865
23442 msgid "Create data files needed by \"gcov\""
23443 msgstr "Crea ficheros de datos necesarios para \"gcov\""
23444
23445-#: common.opt:1872
23446+#: common.opt:1869
23447 msgid "Perform jump threading optimizations"
23448 msgstr "Realiza optimizaciones de hilado de saltos"
23449
23450-#: common.opt:1876
23451+#: common.opt:1873
23452 msgid "Report the time taken by each compiler pass"
23453 msgstr "Reporta el tiempo tomado por cada paso del compilador"
23454
23455-#: common.opt:1880
23456+#: common.opt:1877
23457 msgid "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tSet the default thread-local storage code generation model"
23458 msgstr "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tEstablece el modelo de generación de código por defecto para almacenamiento thread-local"
23459
23460-#: common.opt:1883
23461+#: common.opt:1880
23462 #, c-format
23463 msgid "unknown TLS model %qs"
23464 msgstr "modelo TLS %qs desconocido"
23465
23466-#: common.opt:1899
23467+#: common.opt:1896
23468 msgid "Reorder top level functions, variables, and asms"
23469 msgstr "Reordena las funciones de nivel superior, variables y asms"
23470
23471-#: common.opt:1903
23472+#: common.opt:1900
23473 msgid "Perform superblock formation via tail duplication"
23474 msgstr "Realiza la formación de superbloques a través de la duplicación de colas"
23475
23476-#: common.opt:1910
23477+#: common.opt:1907
23478 msgid "Assume floating-point operations can trap"
23479 msgstr "Asume que las operaciones de coma flotante pueden atrapar"
23480
23481-#: common.opt:1914
23482+#: common.opt:1911
23483 msgid "Trap for signed overflow in addition, subtraction and multiplication"
23484 msgstr "Atrapar desbordamientos signed en adición, sustracción y multiplicación"
23485
23486-#: common.opt:1918
23487+#: common.opt:1915
23488 msgid "Enable SSA-CCP optimization on trees"
23489 msgstr "Activa la optimización SSA-CCP en árboles"
23490
23491-#: common.opt:1922
23492+#: common.opt:1919
23493 msgid "Enable SSA-BIT-CCP optimization on trees"
23494 msgstr "Activa la optimización SSA-BIT-CCP en árboles"
23495
23496-#: common.opt:1930
23497+#: common.opt:1927
23498 msgid "Enable loop header copying on trees"
23499 msgstr "Activa la copia de encabezado de bucles en árboles"
23500
23501-#: common.opt:1934
23502+#: common.opt:1931
23503 msgid "Replace SSA temporaries with better names in copies"
23504 msgstr "Reemplaza temporales SSA con mejores nombres en las copias"
23505
23506-#: common.opt:1938
23507+#: common.opt:1935
23508 msgid "Enable copy propagation on trees"
23509 msgstr "Activa la propagación de copia en árboles"
23510
23511-#: common.opt:1946
23512+#: common.opt:1943
23513 msgid "Transform condition stores into unconditional ones"
23514 msgstr "Transforma los almacenamientos condicionales a incondicionales"
23515
23516-#: common.opt:1950
23517+#: common.opt:1947
23518 msgid "Perform conversions of switch initializations."
23519 msgstr "Realiza la conversión de las inicializaciones de switch."
23520
23521-#: common.opt:1954
23522+#: common.opt:1951
23523 msgid "Enable SSA dead code elimination optimization on trees"
23524 msgstr "Activa la optimización de eliminación de código muerto SSA en árboles"
23525
23526-#: common.opt:1958
23527+#: common.opt:1955
23528 msgid "Enable dominator optimizations"
23529 msgstr "Activa las optimizaciones dominadoras"
23530
23531-#: common.opt:1962
23532+#: common.opt:1959
23533 msgid "Enable tail merging on trees"
23534 msgstr "Activa la mezcla de colas en árboles"
23535
23536-#: common.opt:1966
23537+#: common.opt:1963
23538 msgid "Enable dead store elimination"
23539 msgstr "Activa la eliminación de almacenamiento muerto"
23540
23541-#: common.opt:1970
23542+#: common.opt:1967
23543 msgid "Enable forward propagation on trees"
23544 msgstr "Activa la propagación hacia adelante en árboles"
23545
23546-#: common.opt:1974
23547+#: common.opt:1971
23548 msgid "Enable Full Redundancy Elimination (FRE) on trees"
23549 msgstr "Activa la Eliminación de Redundancia Completa en árboles"
23550
23551-#: common.opt:1978
23552+#: common.opt:1975
23553 msgid "Enable string length optimizations on trees"
23554 msgstr "Activa la optimizaciones de longitud de cadenas en árboles"
23555
23556-#: common.opt:1982
23557+#: common.opt:1979
23558 msgid "Enable loop distribution on trees"
23559 msgstr "Activa la distribución de bucles en árboles"
23560
23561-#: common.opt:1986
23562+#: common.opt:1983
23563 msgid "Enable loop distribution for patterns transformed into a library call"
23564 msgstr "Activa la distribución de bucles por patrones transformados en una llamada a biblioteca"
23565
23566-#: common.opt:1990
23567+#: common.opt:1987
23568 msgid "Enable loop invariant motion on trees"
23569 msgstr "Permite el movimiento invariante de bucles en árboles"
23570
23571-#: common.opt:1994
23572+#: common.opt:1991
23573 msgid "Enable loop interchange transforms. Same as -floop-interchange"
23574 msgstr "Activa las transformaciones de intercambio de bucle. Igual que -floop-interchange"
23575
23576-#: common.opt:1998
23577+#: common.opt:1995
23578 msgid "Create canonical induction variables in loops"
23579 msgstr "Crea variables de inducción canónica en los bucles"
23580
23581-#: common.opt:2002
23582+#: common.opt:1999
23583 msgid "Enable loop optimizations on tree level"
23584 msgstr "Activa las optimizaciones de bucles a nivel de árbol"
23585
23586-#: common.opt:2006
23587+#: common.opt:2003
23588 msgid "Enable automatic parallelization of loops"
23589 msgstr "Activa la paralelización automática de bucles"
23590
23591-#: common.opt:2010
23592+#: common.opt:2007
23593 msgid "Enable hoisting loads from conditional pointers."
23594 msgstr "Activa las cargas de elevación de punteros condicionales."
23595
23596-#: common.opt:2014
23597+#: common.opt:2011
23598 msgid "Enable SSA-PRE optimization on trees"
23599 msgstr "Activa las optimizaciones SSA-PRE en árboles"
23600
23601-#: common.opt:2018
23602+#: common.opt:2015
23603 msgid "Perform function-local points-to analysis on trees."
23604 msgstr "Realiza el análisis puntero-a función-local en árboles."
23605
23606-#: common.opt:2022
23607+#: common.opt:2019
23608 msgid "Enable reassociation on tree level"
23609 msgstr "Activa la reasociación a nivel de árbol"
23610
23611-#: common.opt:2030
23612+#: common.opt:2027
23613 msgid "Enable SSA code sinking on trees"
23614 msgstr "Activa el hundimiento de código SSA en árboles"
23615
23616-#: common.opt:2034
23617+#: common.opt:2031
23618 msgid "Perform scalar replacement of aggregates"
23619 msgstr "Realiza el reemplazo escalar de agregados"
23620
23621-#: common.opt:2038
23622+#: common.opt:2035
23623 msgid "Replace temporary expressions in the SSA->normal pass"
23624 msgstr "Reemplaza expresiones temporales en el paso SSA->normal"
23625
23626-#: common.opt:2042
23627+#: common.opt:2039
23628 msgid "Perform live range splitting during the SSA->normal pass"
23629 msgstr "Realizar la división de rango vivo durante el paso SSA->normal"
23630
23631-#: common.opt:2046
23632+#: common.opt:2043
23633 msgid "Perform Value Range Propagation on trees"
23634 msgstr "Realiza la Propagación de Rango Valor en árboles"
23635
23636-#: common.opt:2050
23637+#: common.opt:2047
23638 msgid "Compile whole compilation unit at a time"
23639 msgstr "Compila la unidad de compilación completa a la vez"
23640
23641-#: common.opt:2054
23642+#: common.opt:2051
23643 msgid "Perform loop unrolling when iteration count is known"
23644 msgstr "Realiza el desenrollamiento del bucle cuando se conoce la cuenta de iteración"
23645
23646-#: common.opt:2058
23647+#: common.opt:2055
23648 msgid "Perform loop unrolling for all loops"
23649 msgstr "Realiza el desenrollamiento del bucle para todos los bucles"
23650
23651-#: common.opt:2065
23652+#: common.opt:2062
23653 msgid "Allow loop optimizations to assume that the loops behave in normal way"
23654 msgstr "Permite que las optimizaciones de bucle asuman que los bucles se comportan normalmente"
23655
23656-#: common.opt:2069
23657+#: common.opt:2066
23658 msgid "Allow optimization for floating-point arithmetic which may change the"
23659 msgstr "Permite la optimización para la aritmética de coma flotante la cual puede cambiar"
23660
23661-#: common.opt:2074
23662+#: common.opt:2071
23663 msgid "Same as -fassociative-math for expressions which include division."
23664 msgstr "Igual que -fassociative-math para las expresiones que incluyen división."
23665
23666-#: common.opt:2082
23667+#: common.opt:2079
23668 msgid "Allow math optimizations that may violate IEEE or ISO standards"
23669 msgstr "Permite optimizaciones matemáticas que pueden violar los estándares IEEE ó ISO"
23670
23671-#: common.opt:2086
23672+#: common.opt:2083
23673 msgid "Perform loop unswitching"
23674 msgstr "Realiza la eliminación de opciones de bucle"
23675
23676-#: common.opt:2090
23677+#: common.opt:2087
23678 msgid "Just generate unwind tables for exception handling"
23679 msgstr "Sólo genera tablas de desenredo para manejo de excepciones"
23680
23681-#: common.opt:2102
23682+#: common.opt:2099
23683 msgid "Perform variable tracking"
23684 msgstr "Realiza seguimiento de variables"
23685
23686-#: common.opt:2110
23687+#: common.opt:2107
23688 msgid "Perform variable tracking by annotating assignments"
23689 msgstr "Realiza seguimiento de variables con asignación de anotaciones"
23690
23691-#: common.opt:2116
23692+#: common.opt:2113
23693 msgid "Toggle -fvar-tracking-assignments"
23694 msgstr "Cambia -fvar-tracking-assignments"
23695
23696-#: common.opt:2120
23697+#: common.opt:2117
23698 msgid "Perform variable tracking and also tag variables that are uninitialized"
23699 msgstr "Realiza el seguimiento de variables y también marca las variables que no se inicializaron"
23700
23701-#: common.opt:2124
23702+#: common.opt:2121
23703 msgid "Enable loop vectorization on trees"
23704 msgstr "Activa la vectorización de bucles en árboles"
23705
23706-#: common.opt:2128
23707+#: common.opt:2125
23708 msgid "Enable basic block vectorization (SLP) on trees"
23709 msgstr "Activa la vectorización de bloque básico (SLP) en árboles"
23710
23711-#: common.opt:2132
23712+#: common.opt:2129
23713 msgid "Enable use of cost model in vectorization"
23714 msgstr "Activa el uso del modelo costo en la vectorización"
23715
23716-#: common.opt:2136
23717+#: common.opt:2133
23718 msgid "Enable loop versioning when doing loop vectorization on trees"
23719 msgstr "Activa las versiones de bucles cuando se hace vectorización de bucles en árboles"
23720
23721-#: common.opt:2140
23722+#: common.opt:2137
23723 msgid "-ftree-vectorizer-verbose=<number>\tSet the verbosity level of the vectorizer"
23724 msgstr "-ftree-vectorizer-verbose=<número>\tEstablece el nivel de detalle del vectorizador"
23725
23726-#: common.opt:2144
23727+#: common.opt:2141
23728 msgid "Enable copy propagation of scalar-evolution information."
23729 msgstr "Activa la propagación de copia de la información escalar-evolución."
23730
23731-#: common.opt:2154
23732+#: common.opt:2151
23733 msgid "Add extra commentary to assembler output"
23734 msgstr "Agrega comentarios extra a la salida de ensamblador"
23735
23736-#: common.opt:2158
23737+#: common.opt:2155
23738 msgid "-fvisibility=[default|internal|hidden|protected]\tSet the default symbol visibility"
23739 msgstr "-fvisibility=[default|internal|hidden|protected]\tEstablece la visibilidad de símbolos por defecto"
23740
23741-#: common.opt:2161
23742+#: common.opt:2158
23743 #, c-format
23744 msgid "unrecognized visibility value %qs"
23745 msgstr "no se reconoce el valor de visibilidad %qs"
23746
23747-#: common.opt:2177
23748+#: common.opt:2174
23749 msgid "Use expression value profiles in optimizations"
23750 msgstr "Usa perfiles de valor de expresión en las optimizaciones"
23751
23752-#: common.opt:2181
23753+#: common.opt:2178
23754 msgid "Construct webs and split unrelated uses of single variable"
23755 msgstr "Construye redes y divide usos no relacionados de una sola variable"
23756
23757-#: common.opt:2185
23758+#: common.opt:2182
23759 msgid "Enable conditional dead code elimination for builtin calls"
23760 msgstr "Activa la eliminación de código muerto condicional para llamadas internas"
23761
23762-#: common.opt:2189
23763+#: common.opt:2186
23764 msgid "Perform whole program optimizations"
23765 msgstr "Realiza optimizaciones del programa completo"
23766
23767 # wraps around? No entiendo bien. cfuga
23768-#: common.opt:2193
23769+#: common.opt:2190
23770 msgid "Assume signed arithmetic overflow wraps around"
23771 msgstr "Asume que el desbordamiento aritmético con signo se envuelve"
23772
23773-#: common.opt:2197
23774+#: common.opt:2194
23775 msgid "Put zero initialized data in the bss section"
23776 msgstr "Pone los datos inicializados a cero en la sección bss"
23777
23778-#: common.opt:2201
23779+#: common.opt:2198
23780 msgid "Generate debug information in default format"
23781 msgstr "Genera información de depuración en el formato por defecto"
23782
23783-#: common.opt:2205
23784+#: common.opt:2202
23785 msgid "Generate debug information in COFF format"
23786 msgstr "Genera información de depuración en el formato COFF"
23787
23788-#: common.opt:2209
23789+#: common.opt:2206
23790 msgid "Generate debug information in DWARF v2 (or later) format"
23791 msgstr "Genera información de depuración en el formato DWARF v2 (o posterior)"
23792
23793-#: common.opt:2213
23794+#: common.opt:2210
23795 msgid "Generate debug information in default extended format"
23796 msgstr "Genera información de depuración en el formato extendido por defecto"
23797
23798-#: common.opt:2217
23799+#: common.opt:2214
23800 msgid "Don't record gcc command line switches in DWARF DW_AT_producer."
23801 msgstr "No guarda las opciones de la línea de órdenes de gcc en DW_AT_producer de DWARF."
23802
23803-#: common.opt:2221
23804+#: common.opt:2218
23805 msgid "Record gcc command line switches in DWARF DW_AT_producer."
23806 msgstr "Guarda las opciones de la línea de órdenes de gcc en DW_AT_producer de DWARF."
23807
23808-#: common.opt:2225
23809+#: common.opt:2222
23810 msgid "Generate debug information in STABS format"
23811 msgstr "Genera información de depuración en el formato STABS"
23812
23813-#: common.opt:2229
23814+#: common.opt:2226
23815 msgid "Generate debug information in extended STABS format"
23816 msgstr "Genera información de depuración en el formato STABS extendido"
23817
23818-#: common.opt:2233
23819+#: common.opt:2230
23820 msgid "Emit DWARF additions beyond selected version"
23821 msgstr "Emite adiciones DWARF más allá de la versión seleccionada"
23822
23823-#: common.opt:2237
23824+#: common.opt:2234
23825 msgid "Don't emit DWARF additions beyond selected version"
23826 msgstr "No emite adiciones DWARF más allá de la versión seleccionada"
23827
23828-#: common.opt:2241
23829+#: common.opt:2238
23830 msgid "Toggle debug information generation"
23831 msgstr "Cambia la generación de información de depuración"
23832
23833-#: common.opt:2245
23834+#: common.opt:2242
23835 msgid "Generate debug information in VMS format"
23836 msgstr "Genera información de depuración en el formato VMS"
23837
23838-#: common.opt:2249
23839+#: common.opt:2246
23840 msgid "Generate debug information in XCOFF format"
23841 msgstr "Genera información de depuración en el formato XCOFF"
23842
23843-#: common.opt:2253
23844+#: common.opt:2250
23845 msgid "Generate debug information in extended XCOFF format"
23846 msgstr "Genera información de depuración en el formato XCOFF extendido"
23847
23848-#: common.opt:2260
23849+#: common.opt:2257
23850 msgid "-iplugindir=<dir>\tSet <dir> to be the default plugin directory"
23851 msgstr "-iplugindir=<dir>\tDefine <dir> como el directorio de plugins por defecto"
23852
23853-#: common.opt:2282
23854+#: common.opt:2279
23855 msgid "-o <file>\tPlace output into <file>"
23856 msgstr "-o <fichero>\tColoca la salida en el <fichero>"
23857
23858-#: common.opt:2286
23859+#: common.opt:2283
23860 msgid "Enable function profiling"
23861 msgstr "Activa el análisis de perfil de las funciones"
23862
23863-#: common.opt:2293
23864+#: common.opt:2290
23865 msgid "Issue warnings needed for strict compliance to the standard"
23866 msgstr "Activa los avisos necesarios para cumplir estrictamente con el estándar"
23867
23868-#: common.opt:2297
23869+#: common.opt:2294
23870 msgid "Like -pedantic but issue them as errors"
23871 msgstr "Como -pedantic pero los muestra como errores"
23872
23873-#: common.opt:2334
23874+#: common.opt:2331
23875 msgid "Do not display functions compiled or elapsed time"
23876 msgstr "No muestra las funciones compiladas o el tiempo transcurrido"
23877
23878-#: common.opt:2366
23879+#: common.opt:2363
23880 msgid "Enable verbose output"
23881 msgstr "Activa la salida detallada"
23882
23883-#: common.opt:2370
23884+#: common.opt:2367
23885 msgid "Display the compiler's version"
23886 msgstr "Muestra la versión del compilador"
23887
23888-#: common.opt:2374
23889+#: common.opt:2371
23890 msgid "Suppress warnings"
23891 msgstr "Suprime avisos"
23892
23893-#: common.opt:2384
23894+#: common.opt:2381
23895 msgid "Create a shared library"
23896 msgstr "Crea una biblioteca compartida"
23897
23898-#: common.opt:2417
23899+#: common.opt:2414
23900 msgid "Create a position independent executable"
23901 msgstr "Genera un ejecutable independiente de posición"
23902
23903-#: go/gofrontend/expressions.cc:912
23904+#: go/gofrontend/expressions.cc:917
23905 msgid "invalid use of type"
23906 msgstr "uso inválido del tipo"
23907
23908-#: go/gofrontend/expressions.cc:2273 go/gofrontend/expressions.cc:2991
23909+#: go/gofrontend/expressions.cc:2278 go/gofrontend/expressions.cc:2996
23910 msgid "floating point constant truncated to integer"
23911 msgstr "se truncó la constante de coma flotante a entero"
23912
23913-#: go/gofrontend/expressions.cc:2871 go/gofrontend/expressions.cc:2941
23914-#: go/gofrontend/expressions.cc:2957
23915+#: go/gofrontend/expressions.cc:2876 go/gofrontend/expressions.cc:2946
23916+#: go/gofrontend/expressions.cc:2962
23917 msgid "constant refers to itself"
23918 msgstr "la constante se refiere a sí misma"
23919
23920-#: go/gofrontend/expressions.cc:4537
23921+#: go/gofrontend/expressions.cc:4557
23922 msgid "expected numeric type"
23923 msgstr "se esperaba un tipo numérico"
23924
23925-#: go/gofrontend/expressions.cc:4544
23926+#: go/gofrontend/expressions.cc:4564
23927 msgid "expected integer or boolean type"
23928 msgstr "se esperaba un tipo entero o booleano"
23929
23930-#: go/gofrontend/expressions.cc:4551
23931+#: go/gofrontend/expressions.cc:4571
23932 msgid "invalid operand for unary %<&%>"
23933 msgstr "operando inválido para el unario %<&%>"
23934
23935-#: go/gofrontend/expressions.cc:4560
23936+#: go/gofrontend/expressions.cc:4580
23937 msgid "expected pointer"
23938 msgstr "se esperaba un puntero"
23939
23940-#: go/gofrontend/expressions.cc:6258 go/gofrontend/expressions.cc:6509
23941-#: go/gofrontend/expressions.cc:6527
23942+#: go/gofrontend/expressions.cc:6316 go/gofrontend/expressions.cc:6567
23943+#: go/gofrontend/expressions.cc:6585
23944 msgid "incompatible types in binary expression"
23945 msgstr "tipos incompatibles en la expresión binaria"
23946
23947-#: go/gofrontend/expressions.cc:6541
23948+#: go/gofrontend/expressions.cc:6599
23949 msgid "shift of non-integer operand"
23950 msgstr "desplazamiento de un operando que no es entero"
23951
23952-#: go/gofrontend/expressions.cc:6546
23953+#: go/gofrontend/expressions.cc:6604
23954 msgid "shift count not unsigned integer"
23955 msgstr "la cuenta de desplazamiento no es un entero sin signo"
23956
23957-#: go/gofrontend/expressions.cc:6556
23958+#: go/gofrontend/expressions.cc:6614
23959 msgid "negative shift count"
23960 msgstr "cuenta de desplazamiento negativa"
23961
23962-#: go/gofrontend/expressions.cc:7264
23963+#: go/gofrontend/expressions.cc:7322
23964 msgid "object is not a method"
23965 msgstr "el objeto no es un método"
23966
23967-#: go/gofrontend/expressions.cc:7273
23968+#: go/gofrontend/expressions.cc:7331
23969 msgid "method type does not match object type"
23970 msgstr "el tipo de método no coincide con el tipo de objeto"
23971
23972-#: go/gofrontend/expressions.cc:7553
23973+#: go/gofrontend/expressions.cc:7611
23974 msgid "invalid use of %<...%> with builtin function"
23975 msgstr "uso inválido de %<..%> con la función interna"
23976
23977-#: go/gofrontend/expressions.cc:7615 go/gofrontend/expressions.cc:7669
23978-#: go/gofrontend/expressions.cc:7714 go/gofrontend/expressions.cc:8421
23979-#: go/gofrontend/expressions.cc:8565 go/gofrontend/expressions.cc:8608
23980-#: go/gofrontend/expressions.cc:8657 go/gofrontend/expressions.cc:9829
23981-#: go/gofrontend/expressions.cc:9848
23982+#: go/gofrontend/expressions.cc:7673 go/gofrontend/expressions.cc:7730
23983+#: go/gofrontend/expressions.cc:7775 go/gofrontend/expressions.cc:8502
23984+#: go/gofrontend/expressions.cc:8647 go/gofrontend/expressions.cc:8690
23985+#: go/gofrontend/expressions.cc:8746 go/gofrontend/expressions.cc:9924
23986+#: go/gofrontend/expressions.cc:9943
23987 msgid "not enough arguments"
23988 msgstr "faltan argumentos"
23989
23990-#: go/gofrontend/expressions.cc:7617 go/gofrontend/expressions.cc:7671
23991-#: go/gofrontend/expressions.cc:8426 go/gofrontend/expressions.cc:8548
23992-#: go/gofrontend/expressions.cc:8570 go/gofrontend/expressions.cc:8613
23993-#: go/gofrontend/expressions.cc:8659 go/gofrontend/expressions.cc:9546
23994-#: go/gofrontend/expressions.cc:9834 go/gofrontend/expressions.cc:9855
23995+#: go/gofrontend/expressions.cc:7675 go/gofrontend/expressions.cc:7732
23996+#: go/gofrontend/expressions.cc:8507 go/gofrontend/expressions.cc:8630
23997+#: go/gofrontend/expressions.cc:8652 go/gofrontend/expressions.cc:8695
23998+#: go/gofrontend/expressions.cc:8748 go/gofrontend/expressions.cc:9638
23999+#: go/gofrontend/expressions.cc:9929 go/gofrontend/expressions.cc:9950
24000 msgid "too many arguments"
24001 msgstr "demasiados argumentos"
24002
24003-#: go/gofrontend/expressions.cc:7673
24004+#: go/gofrontend/expressions.cc:7734
24005 msgid "argument 1 must be a map"
24006 msgstr "el argumento 1 debe ser un mapa"
24007
24008-#: go/gofrontend/expressions.cc:7740
24009+#: go/gofrontend/expressions.cc:7801
24010 msgid "invalid type for make function"
24011 msgstr "tipo inválido para la función make"
24012
24013-#: go/gofrontend/expressions.cc:7750
24014+#: go/gofrontend/expressions.cc:7815
24015 msgid "length required when allocating a slice"
24016 msgstr "se requiere longitud al alojar una rebanada"
24017
24018-#: go/gofrontend/expressions.cc:7764
24019+#: go/gofrontend/expressions.cc:7829
24020 msgid "bad size for make"
24021 msgstr "tamaño erróneo para make"
24022
24023-#: go/gofrontend/expressions.cc:7776
24024+#: go/gofrontend/expressions.cc:7844
24025 msgid "bad capacity when making slice"
24026 msgstr "capacidad errónea al crear la rebanada"
24027
24028-#: go/gofrontend/expressions.cc:7784
24029+#: go/gofrontend/expressions.cc:7855
24030 msgid "too many arguments to make"
24031 msgstr "demasiados argumentos para make"
24032
24033-#: go/gofrontend/expressions.cc:8467
24034+#: go/gofrontend/expressions.cc:8549
24035 msgid "argument must be array or slice or channel"
24036 msgstr "el argumento debe ser matriz o rebanada o canal"
24037
24038-#: go/gofrontend/expressions.cc:8477
24039+#: go/gofrontend/expressions.cc:8559
24040 msgid "argument must be string or array or slice or map or channel"
24041 msgstr "el argumento debe ser cadena o matriz o rebanada o mapa o canal"
24042
24043-#: go/gofrontend/expressions.cc:8523
24044+#: go/gofrontend/expressions.cc:8605
24045 msgid "unsupported argument type to builtin function"
24046 msgstr "no se admite el tipo de argumento para la función interna"
24047
24048-#: go/gofrontend/expressions.cc:8534
24049+#: go/gofrontend/expressions.cc:8616
24050 msgid "argument must be channel"
24051 msgstr "el argumento debe ser canal"
24052
24053-#: go/gofrontend/expressions.cc:8536
24054+#: go/gofrontend/expressions.cc:8618
24055 msgid "cannot close receive-only channel"
24056 msgstr "no se puede cerrar un canal de sólo recepción"
24057
24058-#: go/gofrontend/expressions.cc:8556
24059+#: go/gofrontend/expressions.cc:8638
24060 msgid "argument must be a field reference"
24061 msgstr "el argumento debe ser una referencia de campo"
24062
24063-#: go/gofrontend/expressions.cc:8583
24064+#: go/gofrontend/expressions.cc:8665
24065 msgid "left argument must be a slice"
24066 msgstr "el argumento izquierdo debe ser una rebanada"
24067
24068-#: go/gofrontend/expressions.cc:8591
24069+#: go/gofrontend/expressions.cc:8673
24070 msgid "element types must be the same"
24071 msgstr "los tipos de elemento deben ser el mismo"
24072
24073-#: go/gofrontend/expressions.cc:8596
24074+#: go/gofrontend/expressions.cc:8678
24075 msgid "first argument must be []byte"
24076 msgstr "el primer argumento debe ser []byte"
24077
24078-#: go/gofrontend/expressions.cc:8599
24079+#: go/gofrontend/expressions.cc:8681
24080 msgid "second argument must be slice or string"
24081 msgstr "el segundo argumento debe ser una rebanada o una cadena"
24082
24083-#: go/gofrontend/expressions.cc:8632
24084-msgid "arguments 1 and 2 have different types"
24085-msgstr "los argumentos 1 y 2 tienen tipos diferentes"
24086+#: go/gofrontend/expressions.cc:8722
24087+msgid "argument 2 has invalid type"
24088+msgstr "el argumento 2 es de tipo inválido"
24089
24090-#: go/gofrontend/expressions.cc:8649
24091+#: go/gofrontend/expressions.cc:8738
24092 msgid "argument must have complex type"
24093 msgstr "el argumento debe tener tipo complejo"
24094
24095-#: go/gofrontend/expressions.cc:8667
24096+#: go/gofrontend/expressions.cc:8756
24097 msgid "complex arguments must have identical types"
24098 msgstr "los argumentos complejos deben tener tipos idénticos"
24099
24100-#: go/gofrontend/expressions.cc:8669
24101+#: go/gofrontend/expressions.cc:8758
24102 msgid "complex arguments must have floating-point type"
24103 msgstr "los argumentos complejos deben tener tipo de coma flotante"
24104
24105-#: go/gofrontend/expressions.cc:9792 go/gofrontend/expressions.cc:10217
24106+#: go/gofrontend/expressions.cc:9887 go/gofrontend/expressions.cc:10318
24107 msgid "expected function"
24108 msgstr "se esperaba función"
24109
24110-#: go/gofrontend/expressions.cc:9811
24111+#: go/gofrontend/expressions.cc:9906
24112 msgid "incompatible type for receiver"
24113 msgstr "tipo incompatible para el receptor"
24114
24115-#: go/gofrontend/expressions.cc:10226 go/gofrontend/expressions.cc:10240
24116+#: go/gofrontend/expressions.cc:10327 go/gofrontend/expressions.cc:10341
24117 msgid "number of results does not match number of values"
24118 msgstr "el número de resultados no coincide con el número de valores"
24119
24120-#: go/gofrontend/expressions.cc:10535 go/gofrontend/expressions.cc:10943
24121+#: go/gofrontend/expressions.cc:10645 go/gofrontend/expressions.cc:11065
24122 msgid "index must be integer"
24123 msgstr "el índice debe ser entero"
24124
24125-#: go/gofrontend/expressions.cc:10541 go/gofrontend/expressions.cc:10947
24126+#: go/gofrontend/expressions.cc:10651 go/gofrontend/expressions.cc:11069
24127 msgid "slice end must be integer"
24128 msgstr "el final de la rebanada debe ser entero"
24129
24130-#: go/gofrontend/expressions.cc:10596
24131+#: go/gofrontend/expressions.cc:10706
24132 msgid "slice of unaddressable value"
24133 msgstr "rebanada con valor que no es direccionable"
24134
24135-#: go/gofrontend/expressions.cc:11175
24136+#: go/gofrontend/expressions.cc:11297
24137 msgid "incompatible type for map index"
24138 msgstr "tipo incompatibles para el índice de mapa"
24139
24140-#: go/gofrontend/expressions.cc:11523
24141+#: go/gofrontend/expressions.cc:11645
24142 msgid "expected interface or pointer to interface"
24143 msgstr "se esperaba interfaz o puntero a interfaz"
24144
24145-#: go/gofrontend/expressions.cc:12049
24146+#: go/gofrontend/expressions.cc:12182
24147 msgid "too many expressions for struct"
24148 msgstr "demasiadas expresiones para struct"
24149
24150-#: go/gofrontend/expressions.cc:12062
24151+#: go/gofrontend/expressions.cc:12195
24152 msgid "too few expressions for struct"
24153 msgstr "faltan expresiones para struct"
24154
24155-#: go/gofrontend/expressions.cc:12342
24156+#: go/gofrontend/expressions.cc:12475
24157 msgid "too many elements in composite literal"
24158 msgstr "demasiados elementos en la literal compuesta"
24159
24160-#: go/gofrontend/expressions.cc:13611 go/gofrontend/expressions.cc:13619
24161+#: go/gofrontend/expressions.cc:13744 go/gofrontend/expressions.cc:13752
24162 msgid "invalid unsafe.Pointer conversion"
24163 msgstr "conversión unsafe.Pointer inválida"
24164
24165-#: go/gofrontend/expressions.cc:13624 go/gofrontend/statements.cc:1539
24166+#: go/gofrontend/expressions.cc:13757 go/gofrontend/statements.cc:1539
24167 msgid "type assertion only valid for interface types"
24168 msgstr "la aserción de tipo sólo es válida para los tipos de interfaz"
24169
24170-#: go/gofrontend/expressions.cc:13636
24171+#: go/gofrontend/expressions.cc:13769
24172 msgid "impossible type assertion: type does not implement interface"
24173 msgstr "aserción de tipo imposible: el tipo no implementa interfaz"
24174
24175-#: go/gofrontend/expressions.cc:13820 go/gofrontend/statements.cc:1387
24176+#: go/gofrontend/expressions.cc:13953 go/gofrontend/statements.cc:1387
24177 msgid "expected channel"
24178 msgstr "se esperaba canal"
24179
24180-#: go/gofrontend/expressions.cc:13825 go/gofrontend/statements.cc:1392
24181+#: go/gofrontend/expressions.cc:13958 go/gofrontend/statements.cc:1392
24182 msgid "invalid receive on send-only channel"
24183 msgstr "recepción inválida en canal de sólo envío"
24184
24185@@ -11888,117 +12033,117 @@
24186 msgid "range clause must have array, slice, string, map, or channel type"
24187 msgstr "la cláusula de rango debe tener tipo matriz, rebanada, cadena, mapa o canal"
24188
24189-#: go/gofrontend/types.cc:509
24190+#: go/gofrontend/types.cc:527
24191 msgid "invalid comparison of non-ordered type"
24192 msgstr "comparación inválida de tipo que no es ordenado"
24193
24194-#: go/gofrontend/types.cc:525
24195+#: go/gofrontend/types.cc:543
24196 msgid "slice can only be compared to nil"
24197 msgstr "la rebanada sólo se puede comparar con nil"
24198
24199-#: go/gofrontend/types.cc:527
24200+#: go/gofrontend/types.cc:545
24201 msgid "map can only be compared to nil"
24202 msgstr "el mapa sólo se puede comparar con nil"
24203
24204-#: go/gofrontend/types.cc:529
24205+#: go/gofrontend/types.cc:547
24206 msgid "func can only be compared to nil"
24207 msgstr "la función sólo se puede comparar con nil"
24208
24209-#: go/gofrontend/types.cc:535
24210+#: go/gofrontend/types.cc:553
24211 #, c-format
24212 msgid "invalid operation (%s)"
24213 msgstr "operación inválida (%s)"
24214
24215-#: go/gofrontend/types.cc:558
24216+#: go/gofrontend/types.cc:576
24217 msgid "invalid comparison of non-comparable type"
24218 msgstr "comparación inválida de tipo que no es comparable"
24219
24220-#: go/gofrontend/types.cc:576
24221+#: go/gofrontend/types.cc:594
24222 msgid "invalid comparison of non-comparable struct"
24223 msgstr "comparación inválida de struct que no es comparable"
24224
24225-#: go/gofrontend/types.cc:587
24226+#: go/gofrontend/types.cc:605
24227 msgid "invalid comparison of non-comparable array"
24228 msgstr "comparación inválida de matriz que no es comparable"
24229
24230-#: go/gofrontend/types.cc:699
24231+#: go/gofrontend/types.cc:636
24232+msgid "multiple value function call in single value context"
24233+msgstr "llamada a función de valor múltiple en un contexto de un solo valor"
24234+
24235+#: go/gofrontend/types.cc:723
24236 msgid "need explicit conversion"
24237 msgstr "necesita conversión implícita"
24238
24239-#: go/gofrontend/types.cc:701
24240-msgid "multiple value function call in single value context"
24241-msgstr "llamada a función de valor múltiple en un contexto de un solo valor"
24242-
24243-#: go/gofrontend/types.cc:709
24244+#: go/gofrontend/types.cc:730
24245 #, c-format
24246 msgid "cannot use type %s as type %s"
24247 msgstr "no se puede usar el tipo %s como tipo %s"
24248
24249-#: go/gofrontend/types.cc:2980
24250+#: go/gofrontend/types.cc:3205
24251 msgid "different receiver types"
24252 msgstr "tipos de receptor diferentes"
24253
24254-#: go/gofrontend/types.cc:3000 go/gofrontend/types.cc:3013
24255-#: go/gofrontend/types.cc:3028
24256+#: go/gofrontend/types.cc:3225 go/gofrontend/types.cc:3238
24257+#: go/gofrontend/types.cc:3253
24258 msgid "different number of parameters"
24259 msgstr "número diferente de parámetros"
24260
24261-#: go/gofrontend/types.cc:3021
24262+#: go/gofrontend/types.cc:3246
24263 msgid "different parameter types"
24264 msgstr "tipos de parámetro diferentes"
24265
24266-#: go/gofrontend/types.cc:3036
24267+#: go/gofrontend/types.cc:3261
24268 msgid "different varargs"
24269 msgstr "varargs diferentes"
24270
24271-#: go/gofrontend/types.cc:3045 go/gofrontend/types.cc:3058
24272-#: go/gofrontend/types.cc:3073
24273+#: go/gofrontend/types.cc:3270 go/gofrontend/types.cc:3283
24274+#: go/gofrontend/types.cc:3298
24275 msgid "different number of results"
24276 msgstr "número diferente de resultados"
24277
24278-#: go/gofrontend/types.cc:3066
24279+#: go/gofrontend/types.cc:3291
24280 msgid "different result types"
24281 msgstr "tipos de resultado diferentes"
24282
24283-#: go/gofrontend/types.cc:4054
24284+#: go/gofrontend/types.cc:4247
24285 #, c-format
24286 msgid "implicit assignment of %s%s%s hidden field %s%s%s"
24287 msgstr "asignación implícita de %s%s%s campo oculto %s%s%s"
24288
24289-#: go/gofrontend/types.cc:6423
24290+#: go/gofrontend/types.cc:6651
24291 #, c-format
24292 msgid "need explicit conversion; missing method %s%s%s"
24293 msgstr "se necesita conversión explícita; falta el método %s%s%s"
24294
24295-#: go/gofrontend/types.cc:6440 go/gofrontend/types.cc:6582
24296+#: go/gofrontend/types.cc:6668 go/gofrontend/types.cc:6810
24297 #, c-format
24298 msgid "incompatible type for method %s%s%s"
24299 msgstr "tipo incompatible para el método %s%s%s"
24300
24301-#: go/gofrontend/types.cc:6444 go/gofrontend/types.cc:6586
24302+#: go/gofrontend/types.cc:6672 go/gofrontend/types.cc:6814
24303 #, c-format
24304 msgid "incompatible type for method %s%s%s (%s)"
24305 msgstr "tipo incompatible para el método %s%s%s (%s)"
24306
24307-#: go/gofrontend/types.cc:6523 go/gofrontend/types.cc:6536
24308+#: go/gofrontend/types.cc:6751 go/gofrontend/types.cc:6764
24309 msgid "pointer to interface type has no methods"
24310 msgstr "el puntero a tipo de interfaz no tiene métodos"
24311
24312-#: go/gofrontend/types.cc:6525 go/gofrontend/types.cc:6538
24313+#: go/gofrontend/types.cc:6753 go/gofrontend/types.cc:6766
24314 msgid "type has no methods"
24315 msgstr "el tipo no tiene métodos"
24316
24317-#: go/gofrontend/types.cc:6559
24318+#: go/gofrontend/types.cc:6787
24319 #, c-format
24320 msgid "ambiguous method %s%s%s"
24321 msgstr "método ambiguo %s%s%s"
24322
24323-#: go/gofrontend/types.cc:6562
24324+#: go/gofrontend/types.cc:6790
24325 #, c-format
24326 msgid "missing method %s%s%s"
24327 msgstr "falta el método %s%s%s"
24328
24329-#: go/gofrontend/types.cc:6602
24330+#: go/gofrontend/types.cc:6830
24331 #, c-format
24332 msgid "method %s%s%s requires a pointer"
24333 msgstr "el método %s%s%s requiere un puntero"
24334@@ -12065,150 +12210,150 @@
24335 msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
24336 msgstr "el tercer argumento para %<__builtin_prefetch%> es inválido; se usa cero"
24337
24338-#: builtins.c:4214 gimplify.c:2406
24339+#: builtins.c:4243 gimplify.c:2407
24340 #, gcc-internal-format
24341 msgid "too few arguments to function %<va_start%>"
24342 msgstr "faltan argumentos para la función %<va_start%>"
24343
24344-#: builtins.c:4372
24345+#: builtins.c:4401
24346 #, gcc-internal-format
24347 msgid "first argument to %<va_arg%> not of type %<va_list%>"
24348 msgstr "el primer argumento para %<va_arg%> no es del tipo %<va_list%>"
24349
24350-#: builtins.c:4388
24351+#: builtins.c:4417
24352 #, gcc-internal-format
24353 msgid "%qT is promoted to %qT when passed through %<...%>"
24354 msgstr "%qT se promueve a %qT cuando pasa a través de %<...%>"
24355
24356-#: builtins.c:4393
24357+#: builtins.c:4422
24358 #, gcc-internal-format
24359 msgid "(so you should pass %qT not %qT to %<va_arg%>)"
24360 msgstr "(así que debe pasar %qT y no %qT a %<va_arg%>)"
24361
24362 #. We can, however, treat "undefined" any way we please.
24363 #. Call abort to encourage the user to fix the program.
24364-#: builtins.c:4400 c-typeck.c:2787
24365+#: builtins.c:4429 c-typeck.c:2787
24366 #, gcc-internal-format
24367 msgid "if this code is reached, the program will abort"
24368 msgstr "si se alcanza este código, el programa abortará"
24369
24370-#: builtins.c:4527
24371+#: builtins.c:4556
24372 #, gcc-internal-format
24373 msgid "invalid argument to %<__builtin_frame_address%>"
24374 msgstr "argumento inválido para %<__builtin_frame_address%>"
24375
24376-#: builtins.c:4529
24377+#: builtins.c:4558
24378 #, gcc-internal-format
24379 msgid "invalid argument to %<__builtin_return_address%>"
24380 msgstr "argumento inválido para %<__builtin_return_address%>"
24381
24382-#: builtins.c:4542
24383+#: builtins.c:4571
24384 #, gcc-internal-format
24385 msgid "unsupported argument to %<__builtin_frame_address%>"
24386 msgstr "argumento no admitido para %<__builtin_frame_address%>"
24387
24388-#: builtins.c:4544
24389+#: builtins.c:4573
24390 #, gcc-internal-format
24391 msgid "unsupported argument to %<__builtin_return_address%>"
24392 msgstr "argumento no admitido para %<__builtin_return_address%>"
24393
24394-#: builtins.c:4808
24395+#: builtins.c:4837
24396 #, gcc-internal-format
24397 msgid "both arguments to %<__builtin___clear_cache%> must be pointers"
24398 msgstr "ambos argumentos de %<__builtin_clear_cache%> deben ser punteros"
24399
24400-#: builtins.c:4903
24401+#: builtins.c:4937
24402 #, gcc-internal-format
24403 msgid "trampoline generated for nested function %qD"
24404 msgstr "se generó un trampolín para la función anidada %qD"
24405
24406-#: builtins.c:5198 builtins.c:5211
24407+#: builtins.c:5233 builtins.c:5246
24408 #, gcc-internal-format
24409 msgid "%qD changed semantics in GCC 4.4"
24410 msgstr "%qD cambió su semántica en GCC 4.4"
24411
24412-#: builtins.c:5310
24413+#: builtins.c:5345
24414 #, gcc-internal-format
24415 msgid "invalid memory model argument to builtin"
24416 msgstr "argumento de modelo de memoria inválido para la función interna"
24417
24418-#: builtins.c:5330
24419+#: builtins.c:5365
24420 #, gcc-internal-format
24421 msgid "invalid memory model for %<__atomic_exchange%>"
24422 msgstr "modelo de memoria inválido para %<__atomic_exchange%>"
24423
24424-#: builtins.c:5366
24425+#: builtins.c:5401
24426 #, gcc-internal-format
24427 msgid "invalid failure memory model for %<__atomic_compare_exchange%>"
24428 msgstr "falla de modelo de memoria inválido para %<__atomic_compare_exchange%>"
24429
24430-#: builtins.c:5372
24431+#: builtins.c:5407
24432 #, gcc-internal-format
24433 msgid "failure memory model cannot be stronger than success memory model for %<__atomic_compare_exchange%>"
24434 msgstr "la falla de modelo de memoria no puede ser más fuerte que el modelo de memoria exitoso para %<__atomic_compare_exchange%>"
24435
24436-#: builtins.c:5418
24437+#: builtins.c:5453
24438 #, gcc-internal-format
24439 msgid "invalid memory model for %<__atomic_load%>"
24440 msgstr "modelo de memoria inválido para %<__atomic_load%>"
24441
24442-#: builtins.c:5448 builtins.c:5554
24443+#: builtins.c:5483 builtins.c:5589
24444 #, gcc-internal-format
24445 msgid "invalid memory model for %<__atomic_store%>"
24446 msgstr "modelo de memoria inválido para %<__atomic_store%>"
24447
24448-#: builtins.c:5663
24449+#: builtins.c:5698
24450 #, gcc-internal-format
24451 msgid "non-constant argument 1 to __atomic_always_lock_free"
24452 msgstr "el argumento 1 para __atomic_always_lock_free no es una constante"
24453
24454-#: builtins.c:5705
24455+#: builtins.c:5740
24456 #, gcc-internal-format
24457 msgid "non-integer argument 1 to __atomic_is_lock_free"
24458 msgstr "el argumento 1 para __atomic_is_lock_free no es un entero"
24459
24460 #. All valid uses of __builtin_va_arg_pack () are removed during
24461 #. inlining.
24462-#: builtins.c:5989 expr.c:9944
24463+#: builtins.c:6023 expr.c:9989
24464 #, gcc-internal-format
24465 msgid "%Kinvalid use of %<__builtin_va_arg_pack ()%>"
24466 msgstr "%Kuso inválido de %<__builtin_va_arg_pack ()%>"
24467
24468 #. All valid uses of __builtin_va_arg_pack_len () are removed during
24469 #. inlining.
24470-#: builtins.c:5995
24471+#: builtins.c:6029
24472 #, gcc-internal-format
24473 msgid "%Kinvalid use of %<__builtin_va_arg_pack_len ()%>"
24474 msgstr "%Kuso inválido de %<__builtin_va_arg_pack_len ()%>"
24475
24476-#: builtins.c:6234
24477+#: builtins.c:6268
24478 #, gcc-internal-format
24479 msgid "%<__builtin_longjmp%> second argument must be 1"
24480 msgstr "el segundo argumento de %<__builtin_longjump%> debe ser 1"
24481
24482-#: builtins.c:7077
24483+#: builtins.c:7113
24484 #, gcc-internal-format
24485 msgid "target format does not support infinity"
24486 msgstr "el formato objetivo no soporta infinito"
24487
24488-#: builtins.c:12058
24489+#: builtins.c:12094
24490 #, gcc-internal-format
24491 msgid "%<va_start%> used in function with fixed args"
24492 msgstr "se usó %<va_start%> en una función con argumentos fijos"
24493
24494-#: builtins.c:12066
24495+#: builtins.c:12102
24496 #, gcc-internal-format
24497 msgid "wrong number of arguments to function %<va_start%>"
24498 msgstr "número erróneo argumentos para la función %<va_start%>"
24499
24500 #. Evidently an out of date version of <stdarg.h>; can't validate
24501 #. va_start's second argument, but can still work as intended.
24502-#: builtins.c:12079
24503+#: builtins.c:12115
24504 #, gcc-internal-format
24505 msgid "%<__builtin_next_arg%> called without an argument"
24506 msgstr "se llamó a %<__builtin_next_arg%> sin un argumento"
24507
24508-#: builtins.c:12084
24509+#: builtins.c:12120
24510 #, gcc-internal-format
24511 msgid "wrong number of arguments to function %<__builtin_next_arg%>"
24512 msgstr "número erróneo de argumentos para la función %<__builtin_next_arg%>"
24513@@ -12218,42 +12363,42 @@
24514 #. argument. We just warn and set the arg to be the last
24515 #. argument so that we will get wrong-code because of
24516 #. it.
24517-#: builtins.c:12114
24518+#: builtins.c:12150
24519 #, gcc-internal-format
24520 msgid "second parameter of %<va_start%> not last named argument"
24521 msgstr "el segundo parámetro de %<va_start%> no es el último argumento nombrado"
24522
24523-#: builtins.c:12124
24524+#: builtins.c:12160
24525 #, gcc-internal-format
24526 msgid "undefined behaviour when second parameter of %<va_start%> is declared with %<register%> storage"
24527 msgstr "la conducta es indefinida cuando el segundo parámetro de %<va_start%> se declara con almacenamiento %<register%>"
24528
24529-#: builtins.c:12360
24530+#: builtins.c:12396
24531 #, gcc-internal-format
24532 msgid "%Kfirst argument of %D must be a pointer, second integer constant"
24533 msgstr "%Kel primer argumento de %D debe ser un puntero, el segundo una constante entera"
24534
24535-#: builtins.c:12373
24536+#: builtins.c:12409
24537 #, gcc-internal-format
24538 msgid "%Klast argument of %D is not integer constant between 0 and 3"
24539 msgstr "%Kel último argumento de %D no es una constante entera entre 0 y 3"
24540
24541-#: builtins.c:12418 builtins.c:12569 builtins.c:12626
24542+#: builtins.c:12454 builtins.c:12605 builtins.c:12662
24543 #, gcc-internal-format
24544 msgid "%Kcall to %D will always overflow destination buffer"
24545 msgstr "%Kla llamada a %D siempre desbordará el almacenamiento temporal destino"
24546
24547-#: builtins.c:12559
24548+#: builtins.c:12595
24549 #, gcc-internal-format
24550 msgid "%Kcall to %D might overflow destination buffer"
24551 msgstr "%Kla llamada a %D puede desbordar el almacenamiento temporal destino"
24552
24553-#: builtins.c:12647
24554+#: builtins.c:12683
24555 #, gcc-internal-format
24556 msgid "%Kattempt to free a non-heap object %qD"
24557 msgstr "%Kse intenta liberar un objeto %qD que no es de pila"
24558
24559-#: builtins.c:12650
24560+#: builtins.c:12686
24561 #, gcc-internal-format
24562 msgid "%Kattempt to free a non-heap object"
24563 msgstr "%Kse intenta liberar un objeto que no es de pila"
24564@@ -12324,7 +12469,7 @@
24565 msgid "type of array %q+D completed incompatibly with implicit initialization"
24566 msgstr "el tipo de la matriz %q+D se completó de forma incompatible con la inicialización implícita"
24567
24568-#: c-decl.c:1462 c-decl.c:5851 c-decl.c:6681 c-decl.c:7393
24569+#: c-decl.c:1462 c-decl.c:5852 c-decl.c:6682 c-decl.c:7394
24570 #, gcc-internal-format
24571 msgid "originally defined here"
24572 msgstr "se definió originalmente aquí"
24573@@ -12386,7 +12531,7 @@
24574 msgid "built-in function %q+D declared as non-function"
24575 msgstr "la función interna %q+D no se declara como función"
24576
24577-#: c-decl.c:1674 c-decl.c:1847 c-decl.c:2558
24578+#: c-decl.c:1674 c-decl.c:1847 c-decl.c:2559
24579 #, gcc-internal-format
24580 msgid "declaration of %q+D shadows a built-in function"
24581 msgstr "la declaración de %q+D oscurece una función interna"
24582@@ -12519,212 +12664,212 @@
24583 msgid "redundant redeclaration of %q+D"
24584 msgstr "redeclaración redundante de %q+D"
24585
24586-#: c-decl.c:2545
24587+#: c-decl.c:2546
24588 #, gcc-internal-format
24589 msgid "declaration of %q+D shadows previous non-variable"
24590 msgstr "la declaración de %q+D oscurece a una declaración previa que no es variable"
24591
24592-#: c-decl.c:2550
24593+#: c-decl.c:2551
24594 #, gcc-internal-format
24595 msgid "declaration of %q+D shadows a parameter"
24596 msgstr "la declaración de %q+D oscurece un parámetro"
24597
24598-#: c-decl.c:2553
24599+#: c-decl.c:2554
24600 #, gcc-internal-format
24601 msgid "declaration of %q+D shadows a global declaration"
24602 msgstr "la declaración de %q+D oscurece a una declaración global"
24603
24604-#: c-decl.c:2563
24605+#: c-decl.c:2564
24606 #, gcc-internal-format
24607 msgid "declaration of %q+D shadows a previous local"
24608 msgstr "la declaración de %q+D oscurece a una declaración local previa"
24609
24610-#: c-decl.c:2567 cp/name-lookup.c:1150 cp/name-lookup.c:1193
24611+#: c-decl.c:2568 cp/name-lookup.c:1150 cp/name-lookup.c:1193
24612 #, gcc-internal-format
24613 msgid "shadowed declaration is here"
24614 msgstr "aquí está la declaración oscurecida"
24615
24616-#: c-decl.c:2694
24617+#: c-decl.c:2695
24618 #, gcc-internal-format
24619 msgid "nested extern declaration of %qD"
24620 msgstr "declaración externa anidada de %qD"
24621
24622-#: c-decl.c:2870 c-decl.c:2873
24623+#: c-decl.c:2871 c-decl.c:2874
24624 #, gcc-internal-format
24625 msgid "implicit declaration of function %qE"
24626 msgstr "declaración implícita de la función %qE"
24627
24628-#: c-decl.c:2936
24629+#: c-decl.c:2937
24630 #, gcc-internal-format
24631 msgid "incompatible implicit declaration of built-in function %qD"
24632 msgstr "declaración implícita incompatible de la función interna %qD"
24633
24634-#: c-decl.c:2945
24635+#: c-decl.c:2946
24636 #, gcc-internal-format
24637 msgid "incompatible implicit declaration of function %qD"
24638 msgstr "declaración implícita incompatible de la función %qD"
24639
24640-#: c-decl.c:2998
24641+#: c-decl.c:2999
24642 #, gcc-internal-format
24643 msgid "%qE undeclared here (not in a function)"
24644 msgstr "%qE no se declaró aquí (no en una función)"
24645
24646-#: c-decl.c:3004
24647+#: c-decl.c:3005
24648 #, gcc-internal-format
24649 msgid "%qE undeclared (first use in this function)"
24650 msgstr "%qE no se declaró aquí (primer uso en esta función)"
24651
24652-#: c-decl.c:3007
24653+#: c-decl.c:3008
24654 #, gcc-internal-format
24655 msgid "each undeclared identifier is reported only once for each function it appears in"
24656 msgstr "cada identificador sin declarar se reporta sólo una vez para cada función en el que aparece"
24657
24658-#: c-decl.c:3057 cp/decl.c:2593
24659+#: c-decl.c:3058 cp/decl.c:2598
24660 #, gcc-internal-format
24661 msgid "label %qE referenced outside of any function"
24662 msgstr "la etiqueta %qE es referenciada fuera de cualquier función"
24663
24664-#: c-decl.c:3093
24665+#: c-decl.c:3094
24666 #, gcc-internal-format
24667 msgid "jump into scope of identifier with variably modified type"
24668 msgstr "salto al ámbito de un identificador con tipo modificado variablemente"
24669
24670-#: c-decl.c:3096
24671+#: c-decl.c:3097
24672 #, gcc-internal-format
24673 msgid "jump skips variable initialization"
24674 msgstr "el salto evita la inicialización de la variable"
24675
24676-#: c-decl.c:3097 c-decl.c:3153 c-decl.c:3242
24677+#: c-decl.c:3098 c-decl.c:3154 c-decl.c:3243
24678 #, gcc-internal-format
24679 msgid "label %qD defined here"
24680 msgstr "la etiqueta %qD se define aquí"
24681
24682-#: c-decl.c:3098 c-decl.c:3370
24683+#: c-decl.c:3099 c-decl.c:3371
24684 #, gcc-internal-format
24685 msgid "%qD declared here"
24686 msgstr "%qD se declara aquí"
24687
24688-#: c-decl.c:3152 c-decl.c:3241
24689+#: c-decl.c:3153 c-decl.c:3242
24690 #, gcc-internal-format
24691 msgid "jump into statement expression"
24692 msgstr "salto a una expresión de declaración"
24693
24694-#: c-decl.c:3174
24695+#: c-decl.c:3175
24696 #, gcc-internal-format
24697 msgid "duplicate label declaration %qE"
24698 msgstr "declaración duplicada de la etiqueta %qE"
24699
24700-#: c-decl.c:3272 cp/decl.c:2916
24701+#: c-decl.c:3273 cp/decl.c:2921
24702 #, gcc-internal-format
24703 msgid "duplicate label %qD"
24704 msgstr "etiqueta %qD duplicada"
24705
24706-#: c-decl.c:3303
24707+#: c-decl.c:3304
24708 #, gcc-internal-format
24709 msgid "traditional C lacks a separate namespace for labels, identifier %qE conflicts"
24710 msgstr "C tradicional carece de un espacio de nombres separado para etiquetas, el identificador %qE genera un conflicto con"
24711
24712-#: c-decl.c:3368
24713+#: c-decl.c:3369
24714 #, gcc-internal-format
24715 msgid "switch jumps over variable initialization"
24716 msgstr "el switch salta sobre la inicialización de la variable"
24717
24718-#: c-decl.c:3369 c-decl.c:3380
24719+#: c-decl.c:3370 c-decl.c:3381
24720 #, gcc-internal-format
24721 msgid "switch starts here"
24722 msgstr "switch inicia aquí"
24723
24724-#: c-decl.c:3379
24725+#: c-decl.c:3380
24726 #, gcc-internal-format
24727 msgid "switch jumps into statement expression"
24728 msgstr "switch salta dentro de una expresión de declaración"
24729
24730-#: c-decl.c:3450
24731+#: c-decl.c:3451
24732 #, gcc-internal-format
24733 msgid "%qE defined as wrong kind of tag"
24734 msgstr "%qE definido como un tipo erróneo de etiqueta"
24735
24736-#: c-decl.c:3673 c-typeck.c:10999 c-family/c-common.c:4164
24737+#: c-decl.c:3674 c-typeck.c:10999 c-family/c-common.c:4164
24738 #, gcc-internal-format
24739 msgid "invalid use of %<restrict%>"
24740 msgstr "uso inválido de %<restrict%>"
24741
24742-#: c-decl.c:3683
24743+#: c-decl.c:3684
24744 #, gcc-internal-format
24745 msgid "unnamed struct/union that defines no instances"
24746 msgstr "struct/union sin nombre que no define ninguna instancia"
24747
24748-#: c-decl.c:3693
24749+#: c-decl.c:3694
24750 #, gcc-internal-format
24751 msgid "empty declaration with storage class specifier does not redeclare tag"
24752 msgstr "una declaración vacía con especificadores de clase de almacenamiento no redeclara la etiqueta"
24753
24754-#: c-decl.c:3707
24755+#: c-decl.c:3708
24756 #, gcc-internal-format
24757 msgid "empty declaration with type qualifier does not redeclare tag"
24758 msgstr "una declaración vacía con calificador de tipo no redeclara la etiqueta"
24759
24760-#: c-decl.c:3718
24761+#: c-decl.c:3719
24762 #, gcc-internal-format
24763 msgid "empty declaration with %<_Alignas%> does not redeclare tag"
24764 msgstr "una declaración vacía con %<_Alignas%> no redeclara la etiqueta"
24765
24766-#: c-decl.c:3740 c-decl.c:3747
24767+#: c-decl.c:3741 c-decl.c:3748
24768 #, gcc-internal-format
24769 msgid "useless type name in empty declaration"
24770 msgstr "nombre de tipo sin uso en una declaración vacía"
24771
24772-#: c-decl.c:3755
24773+#: c-decl.c:3756
24774 #, gcc-internal-format
24775 msgid "%<inline%> in empty declaration"
24776 msgstr "%<inline%> en una declaración vacía"
24777
24778-#: c-decl.c:3761
24779+#: c-decl.c:3762
24780 #, gcc-internal-format
24781 msgid "%<_Noreturn%> in empty declaration"
24782 msgstr "%<_Noreturn%> en una declaración vacía"
24783
24784-#: c-decl.c:3767
24785+#: c-decl.c:3768
24786 #, gcc-internal-format
24787 msgid "%<auto%> in file-scope empty declaration"
24788 msgstr "%<auto%> en una declaración vacía en ámbito de fichero"
24789
24790-#: c-decl.c:3773
24791+#: c-decl.c:3774
24792 #, gcc-internal-format
24793 msgid "%<register%> in file-scope empty declaration"
24794 msgstr "%<register%> en una declaración vacía en ámbito de fichero"
24795
24796-#: c-decl.c:3779
24797+#: c-decl.c:3780
24798 #, gcc-internal-format
24799 msgid "useless storage class specifier in empty declaration"
24800 msgstr "especificador de clase de almacenamiento sin uso en una declaración vacía"
24801
24802-#: c-decl.c:3785
24803+#: c-decl.c:3786
24804 #, gcc-internal-format
24805 msgid "useless %<__thread%> in empty declaration"
24806 msgstr "%<__thread%> sin uso en la declaración vacía"
24807
24808-#: c-decl.c:3794
24809+#: c-decl.c:3795
24810 #, gcc-internal-format
24811 msgid "useless type qualifier in empty declaration"
24812 msgstr "calificador de tipo sin uso en una declaración vacía"
24813
24814-#: c-decl.c:3800
24815+#: c-decl.c:3801
24816 #, gcc-internal-format
24817 msgid "useless %<_Alignas%> in empty declaration"
24818 msgstr "%<_Alignas%> sin uso en la declaración vacía"
24819
24820-#: c-decl.c:3807 c-parser.c:1498
24821+#: c-decl.c:3808 c-parser.c:1498
24822 #, gcc-internal-format
24823 msgid "empty declaration"
24824 msgstr "declaración vacía"
24825
24826-#: c-decl.c:3879
24827+#: c-decl.c:3880
24828 #, gcc-internal-format
24829 msgid "ISO C90 does not support %<static%> or type qualifiers in parameter array declarators"
24830 msgstr "ISO C90 no admite %<static%> o calificadores de tipo en los declaradores de parámetros de matrices"
24831
24832-#: c-decl.c:3883
24833+#: c-decl.c:3884
24834 #, gcc-internal-format
24835 msgid "ISO C90 does not support %<[*]%> array declarators"
24836 msgstr "ISO C90 no admite declaradores de matriz %<[*]%>"
24837@@ -12732,28 +12877,28 @@
24838 #. C99 6.7.5.2p4
24839 #. A function definition isn't function prototype scope C99 6.2.1p4.
24840 #. C99 6.7.5.2p4
24841-#: c-decl.c:3890 c-decl.c:6249
24842+#: c-decl.c:3891 c-decl.c:6250
24843 #, gcc-internal-format
24844 msgid "%<[*]%> not allowed in other than function prototype scope"
24845 msgstr "no se permite %<[*]%> en otro lugar que no sea el ámbido de prototipo de función"
24846
24847-#: c-decl.c:4003
24848+#: c-decl.c:4004
24849 #, gcc-internal-format
24850 msgid "%q+D is usually a function"
24851 msgstr "%q+D generalmente es una función"
24852
24853-#: c-decl.c:4012
24854+#: c-decl.c:4013
24855 #, gcc-internal-format
24856 msgid "typedef %qD is initialized (use __typeof__ instead)"
24857 msgstr "typedef %qD está inicializado (utilice __typeof__ en su lugar)"
24858
24859-#: c-decl.c:4017
24860+#: c-decl.c:4018
24861 #, gcc-internal-format
24862 msgid "function %qD is initialized like a variable"
24863 msgstr "la función %qD está inicializada como una variable"
24864
24865 #. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
24866-#: c-decl.c:4023
24867+#: c-decl.c:4024
24868 #, gcc-internal-format
24869 msgid "parameter %qD is initialized"
24870 msgstr "el parámetro %qD está inicializado"
24871@@ -12762,272 +12907,272 @@
24872 #. of VLAs themselves count as VLAs, it does not make
24873 #. sense to permit them to be initialized given that
24874 #. ordinary VLAs may not be initialized.
24875-#: c-decl.c:4042 c-decl.c:4057 c-typeck.c:6374
24876+#: c-decl.c:4043 c-decl.c:4058 c-typeck.c:6374
24877 #, gcc-internal-format
24878 msgid "variable-sized object may not be initialized"
24879 msgstr "un objeto de tamaño variable puede no ser inicializado"
24880
24881-#: c-decl.c:4048
24882+#: c-decl.c:4049
24883 #, gcc-internal-format
24884 msgid "variable %qD has initializer but incomplete type"
24885 msgstr "la variable %qD tiene inicializador pero de tipo de dato incompleto"
24886
24887-#: c-decl.c:4137 cp/decl.c:4418 cp/decl.c:12643
24888+#: c-decl.c:4138 cp/decl.c:4428 cp/decl.c:12657
24889 #, gcc-internal-format
24890 msgid "inline function %q+D given attribute noinline"
24891 msgstr "se le dió a la función incluída en línea %q+D un atributo noinline"
24892
24893-#: c-decl.c:4188
24894+#: c-decl.c:4189
24895 #, gcc-internal-format
24896 msgid "uninitialized const member in %qT is invalid in C++"
24897 msgstr "el miembro const sin inicializar en %qT es inválido en C++"
24898
24899-#: c-decl.c:4190 cp/init.c:2115 cp/init.c:2130
24900+#: c-decl.c:4191 cp/init.c:2115 cp/init.c:2130
24901 #, gcc-internal-format
24902 msgid "%qD should be initialized"
24903 msgstr "%qD se debe inicializar"
24904
24905-#: c-decl.c:4268
24906+#: c-decl.c:4269
24907 #, gcc-internal-format
24908 msgid "initializer fails to determine size of %q+D"
24909 msgstr "el inicializador no puede determinar el tamaño de %q+D"
24910
24911-#: c-decl.c:4273
24912+#: c-decl.c:4274
24913 #, gcc-internal-format
24914 msgid "array size missing in %q+D"
24915 msgstr "falta el tamaño de la matriz en %q+D"
24916
24917-#: c-decl.c:4285
24918+#: c-decl.c:4286
24919 #, gcc-internal-format
24920 msgid "zero or negative size array %q+D"
24921 msgstr "matriz %q+D de tamaño cero o negativo"
24922
24923-#: c-decl.c:4340 varasm.c:1966
24924+#: c-decl.c:4341 varasm.c:1966
24925 #, gcc-internal-format
24926 msgid "storage size of %q+D isn%'t known"
24927 msgstr "no se conoce el tamaño de almacenamiento de %q+D"
24928
24929-#: c-decl.c:4351
24930+#: c-decl.c:4352
24931 #, gcc-internal-format
24932 msgid "storage size of %q+D isn%'t constant"
24933 msgstr "el tamaño de almacenamiento de %q+D no es constante"
24934
24935-#: c-decl.c:4401
24936+#: c-decl.c:4402
24937 #, gcc-internal-format
24938 msgid "ignoring asm-specifier for non-static local variable %q+D"
24939 msgstr "se descarta el especificador asm para la variable local que no es estática %q+D"
24940
24941-#: c-decl.c:4431
24942+#: c-decl.c:4432
24943 #, gcc-internal-format
24944 msgid "cannot put object with volatile field into register"
24945 msgstr "no se puede poner un objeto con un campo volatile en register"
24946
24947-#: c-decl.c:4518
24948+#: c-decl.c:4519
24949 #, gcc-internal-format
24950 msgid "uninitialized const %qD is invalid in C++"
24951 msgstr "const %qD sin inicializar es inválida en C++"
24952
24953-#: c-decl.c:4576
24954+#: c-decl.c:4577
24955 #, gcc-internal-format
24956 msgid "ISO C forbids forward parameter declarations"
24957 msgstr "ISO C prohíbe declaraciones adelantadas de parámetros"
24958
24959-#: c-decl.c:4666
24960+#: c-decl.c:4667
24961 #, gcc-internal-format
24962 msgid "defining a type in a compound literal is invalid in C++"
24963 msgstr "definir un tipo en una literal compuesta es inválido en C++"
24964
24965-#: c-decl.c:4718 c-decl.c:4733
24966+#: c-decl.c:4719 c-decl.c:4734
24967 #, gcc-internal-format
24968 msgid "bit-field %qs width not an integer constant"
24969 msgstr "la anchura del campo de bits %qs no es una constante entera"
24970
24971-#: c-decl.c:4728
24972+#: c-decl.c:4729
24973 #, gcc-internal-format
24974 msgid "bit-field %qs width not an integer constant expression"
24975 msgstr "la anchura del campo de bits %qs no es una expresión constante entera"
24976
24977-#: c-decl.c:4739
24978+#: c-decl.c:4740
24979 #, gcc-internal-format
24980 msgid "negative width in bit-field %qs"
24981 msgstr "anchura negativa en el campo de bit %qs"
24982
24983-#: c-decl.c:4744
24984+#: c-decl.c:4745
24985 #, gcc-internal-format
24986 msgid "zero width for bit-field %qs"
24987 msgstr "anchura cero para el campo de bits %qs"
24988
24989-#: c-decl.c:4754
24990+#: c-decl.c:4755
24991 #, gcc-internal-format
24992 msgid "bit-field %qs has invalid type"
24993 msgstr "el campo de bits %qs tiene un tipo inválido"
24994
24995-#: c-decl.c:4764
24996+#: c-decl.c:4765
24997 #, gcc-internal-format
24998 msgid "type of bit-field %qs is a GCC extension"
24999 msgstr "el tipo de campo de bits %qs es una extensión de GCC"
25000
25001-#: c-decl.c:4770
25002+#: c-decl.c:4771
25003 #, gcc-internal-format
25004 msgid "width of %qs exceeds its type"
25005 msgstr "la anchura de %qs excede su tipo"
25006
25007-#: c-decl.c:4783
25008+#: c-decl.c:4784
25009 #, gcc-internal-format
25010 msgid "%qs is narrower than values of its type"
25011 msgstr "%qs es más estrecho que los valores de su tipo"
25012
25013-#: c-decl.c:4802
25014+#: c-decl.c:4803
25015 #, gcc-internal-format
25016 msgid "ISO C90 forbids array %qE whose size can%'t be evaluated"
25017 msgstr "ISO C90 prohíbe la matriz %qE cuyo tamaño no se puede evaluar"
25018
25019-#: c-decl.c:4806
25020+#: c-decl.c:4807
25021 #, gcc-internal-format
25022 msgid "ISO C90 forbids array whose size can%'t be evaluated"
25023 msgstr "ISO C90 prohíbe la matriz cuyo tamaño no se puede evaluar"
25024
25025-#: c-decl.c:4813
25026+#: c-decl.c:4814
25027 #, gcc-internal-format
25028 msgid "ISO C90 forbids variable length array %qE"
25029 msgstr "ISO C90 prohíbe la matriz de longitud variable %qE"
25030
25031-#: c-decl.c:4816
25032+#: c-decl.c:4817
25033 #, gcc-internal-format
25034 msgid "ISO C90 forbids variable length array"
25035 msgstr "ISO C90 prohíbe la matriz de longitud variable"
25036
25037-#: c-decl.c:4825
25038+#: c-decl.c:4826
25039 #, gcc-internal-format
25040 msgid "the size of array %qE can%'t be evaluated"
25041 msgstr "el tamaño de la matriz %qE no se puede evaluar"
25042
25043-#: c-decl.c:4829
25044+#: c-decl.c:4830
25045 #, gcc-internal-format
25046 msgid "the size of array can %'t be evaluated"
25047 msgstr "el tamaño de la matriz no se puede evaluar"
25048
25049-#: c-decl.c:4835
25050+#: c-decl.c:4836
25051 #, gcc-internal-format
25052 msgid "variable length array %qE is used"
25053 msgstr "se usó la matriz de longitud variable %qE"
25054
25055-#: c-decl.c:4839 cp/decl.c:8053
25056+#: c-decl.c:4840 cp/decl.c:8063
25057 #, gcc-internal-format
25058 msgid "variable length array is used"
25059 msgstr "se usó la matriz de longitud variable"
25060
25061-#: c-decl.c:4998 c-decl.c:5346 c-decl.c:5356
25062+#: c-decl.c:4999 c-decl.c:5347 c-decl.c:5357
25063 #, gcc-internal-format
25064 msgid "variably modified %qE at file scope"
25065 msgstr "%qE variablemente modificado en el ámbito del fichero"
25066
25067-#: c-decl.c:5000
25068+#: c-decl.c:5001
25069 #, gcc-internal-format
25070 msgid "variably modified field at file scope"
25071 msgstr "campo variablemente modificado en el ámbito del fichero"
25072
25073-#: c-decl.c:5020
25074+#: c-decl.c:5021
25075 #, gcc-internal-format
25076 msgid "type defaults to %<int%> in declaration of %qE"
25077 msgstr "el tipo de dato por defecto es %<int%> en la declaración de %qE"
25078
25079-#: c-decl.c:5024
25080+#: c-decl.c:5025
25081 #, gcc-internal-format
25082 msgid "type defaults to %<int%> in type name"
25083 msgstr "el tipo de dato por defecto es %<int%> en el nombre de tipo"
25084
25085-#: c-decl.c:5057
25086+#: c-decl.c:5058
25087 #, gcc-internal-format
25088 msgid "duplicate %<const%>"
25089 msgstr "%<const%> duplicado"
25090
25091-#: c-decl.c:5059
25092+#: c-decl.c:5060
25093 #, gcc-internal-format
25094 msgid "duplicate %<restrict%>"
25095 msgstr "%<restrict%> duplicado"
25096
25097-#: c-decl.c:5061
25098+#: c-decl.c:5062
25099 #, gcc-internal-format
25100 msgid "duplicate %<volatile%>"
25101 msgstr "%<volatile%> duplicado"
25102
25103-#: c-decl.c:5065
25104+#: c-decl.c:5066
25105 #, gcc-internal-format, gfc-internal-format
25106 msgid "conflicting named address spaces (%s vs %s)"
25107 msgstr "espacios de direcciones nombrados generan un conflicto (%s vs %s)"
25108
25109-#: c-decl.c:5089
25110+#: c-decl.c:5090
25111 #, gcc-internal-format
25112 msgid "function definition declared %<auto%>"
25113 msgstr "la definición de la función se declaró como %<auto%>"
25114
25115-#: c-decl.c:5091
25116+#: c-decl.c:5092
25117 #, gcc-internal-format
25118 msgid "function definition declared %<register%>"
25119 msgstr "la definición de la función se declaró como %<register%>"
25120
25121-#: c-decl.c:5093
25122+#: c-decl.c:5094
25123 #, gcc-internal-format
25124 msgid "function definition declared %<typedef%>"
25125 msgstr "la definición de la función se declaró como %<typedef%>"
25126
25127-#: c-decl.c:5095
25128+#: c-decl.c:5096
25129 #, gcc-internal-format
25130 msgid "function definition declared %<__thread%>"
25131 msgstr "la definición de la función se declaró como %<__thread%>"
25132
25133-#: c-decl.c:5112
25134+#: c-decl.c:5113
25135 #, gcc-internal-format
25136 msgid "storage class specified for structure field %qE"
25137 msgstr "se especificó una clase de almacenamiento para el campo de la estructura %qE"
25138
25139-#: c-decl.c:5115
25140+#: c-decl.c:5116
25141 #, gcc-internal-format
25142 msgid "storage class specified for structure field"
25143 msgstr "se especificó una clase de almacenamiento para el campo de la estructura"
25144
25145-#: c-decl.c:5119
25146+#: c-decl.c:5120
25147 #, gcc-internal-format
25148 msgid "storage class specified for parameter %qE"
25149 msgstr "se especificó una clase de almacenamiento para el parámetro %qE"
25150
25151-#: c-decl.c:5122
25152+#: c-decl.c:5123
25153 #, gcc-internal-format
25154 msgid "storage class specified for unnamed parameter"
25155 msgstr "se especificó una clase de almacenamiento para un parámetro sin nombre"
25156
25157-#: c-decl.c:5125 cp/decl.c:9020
25158+#: c-decl.c:5126 cp/decl.c:9030
25159 #, gcc-internal-format
25160 msgid "storage class specified for typename"
25161 msgstr "se especificó una clase de almacenamiento para el nombre de tipo"
25162
25163-#: c-decl.c:5142
25164+#: c-decl.c:5143
25165 #, gcc-internal-format
25166 msgid "%qE initialized and declared %<extern%>"
25167 msgstr "%qE se inicializó y declaró como %<extern%>"
25168
25169-#: c-decl.c:5146
25170+#: c-decl.c:5147
25171 #, gcc-internal-format
25172 msgid "%qE has both %<extern%> and initializer"
25173 msgstr "%qE tiene %<extern%> e inicializador al mismo tiempo"
25174
25175-#: c-decl.c:5151
25176+#: c-decl.c:5152
25177 #, gcc-internal-format
25178 msgid "file-scope declaration of %qE specifies %<auto%>"
25179 msgstr "la declaración del ámbito de fichero de %qE especifica %<auto%>"
25180
25181-#: c-decl.c:5155
25182+#: c-decl.c:5156
25183 #, gcc-internal-format
25184 msgid "file-scope declaration of %qE specifies %<register%>"
25185 msgstr "la declaración del ámbito de fichero de %qE especifica %<register%>"
25186
25187-#: c-decl.c:5160
25188+#: c-decl.c:5161
25189 #, gcc-internal-format
25190 msgid "nested function %qE declared %<extern%>"
25191 msgstr "la función anidada %qE se declaró %<extern%>"
25192
25193-#: c-decl.c:5163
25194+#: c-decl.c:5164
25195 #, gcc-internal-format
25196 msgid "function-scope %qE implicitly auto and declared %<__thread%>"
25197 msgstr "el ámbito de la función %qE es implícitamente auto y declarado %<__thread%>"
25198@@ -13035,657 +13180,657 @@
25199 #. Only the innermost declarator (making a parameter be of
25200 #. array type which is converted to pointer type)
25201 #. may have static or type qualifiers.
25202-#: c-decl.c:5210 c-decl.c:5540
25203+#: c-decl.c:5211 c-decl.c:5541
25204 #, gcc-internal-format
25205 msgid "static or type qualifiers in non-parameter array declarator"
25206 msgstr "static o calificadores de tipo en un declarador de matriz que no es parámetro"
25207
25208-#: c-decl.c:5258
25209+#: c-decl.c:5259
25210 #, gcc-internal-format
25211 msgid "declaration of %qE as array of voids"
25212 msgstr "la declaración de %qE como una matriz de voids"
25213
25214-#: c-decl.c:5260
25215+#: c-decl.c:5261
25216 #, gcc-internal-format
25217 msgid "declaration of type name as array of voids"
25218 msgstr "declaración de nombre de tipo como una matriz de voids"
25219
25220-#: c-decl.c:5267
25221+#: c-decl.c:5268
25222 #, gcc-internal-format
25223 msgid "declaration of %qE as array of functions"
25224 msgstr "declaración de %qE como una matriz de funciones"
25225
25226-#: c-decl.c:5270
25227+#: c-decl.c:5271
25228 #, gcc-internal-format
25229 msgid "declaration of type name as array of functions"
25230 msgstr "declaración de nombre de tipo como una matriz de funciones"
25231
25232-#: c-decl.c:5277 c-decl.c:7177
25233+#: c-decl.c:5278 c-decl.c:7178
25234 #, gcc-internal-format
25235 msgid "invalid use of structure with flexible array member"
25236 msgstr "uso inválido de una estructura con un miembro de matriz flexible"
25237
25238-#: c-decl.c:5303
25239+#: c-decl.c:5304
25240 #, gcc-internal-format
25241 msgid "size of array %qE has non-integer type"
25242 msgstr "el tamaño de la matriz %qE es de un tipo no entero"
25243
25244-#: c-decl.c:5307
25245+#: c-decl.c:5308
25246 #, gcc-internal-format
25247 msgid "size of unnamed array has non-integer type"
25248 msgstr "el tamaño de la matriz sin nombre es de un tipo no entero"
25249
25250-#: c-decl.c:5317
25251+#: c-decl.c:5318
25252 #, gcc-internal-format
25253 msgid "ISO C forbids zero-size array %qE"
25254 msgstr "ISO C prohíbe la matriz %qE de tamaño cero"
25255
25256-#: c-decl.c:5320
25257+#: c-decl.c:5321
25258 #, gcc-internal-format
25259 msgid "ISO C forbids zero-size array"
25260 msgstr "ISO C prohíbe matrices de tamaño cero"
25261
25262-#: c-decl.c:5329
25263+#: c-decl.c:5330
25264 #, gcc-internal-format
25265 msgid "size of array %qE is negative"
25266 msgstr "el tamaño de la matriz %qE es negativo"
25267
25268-#: c-decl.c:5331
25269+#: c-decl.c:5332
25270 #, gcc-internal-format
25271 msgid "size of unnamed array is negative"
25272 msgstr "el tamaño de la matriz sin nombre es negativo"
25273
25274-#: c-decl.c:5405 c-decl.c:5808
25275+#: c-decl.c:5406 c-decl.c:5809
25276 #, gcc-internal-format
25277 msgid "size of array %qE is too large"
25278 msgstr "el tamaño de la matriz %qE es demasiado grande"
25279
25280-#: c-decl.c:5408 c-decl.c:5810
25281+#: c-decl.c:5409 c-decl.c:5811
25282 #, gcc-internal-format
25283 msgid "size of unnamed array is too large"
25284 msgstr "el tamaño de la matriz sin nombre es demasiado grande"
25285
25286-#: c-decl.c:5445
25287+#: c-decl.c:5446
25288 #, gcc-internal-format
25289 msgid "ISO C90 does not support flexible array members"
25290 msgstr "ISO C90 no admite miembros de matriz flexibles"
25291
25292 #. C99 6.7.5.2p4
25293-#: c-decl.c:5466
25294+#: c-decl.c:5467
25295 #, gcc-internal-format
25296 msgid "%<[*]%> not in a declaration"
25297 msgstr "%<[*]%> fuera de una declaración"
25298
25299-#: c-decl.c:5479
25300+#: c-decl.c:5480
25301 #, gcc-internal-format
25302 msgid "array type has incomplete element type"
25303 msgstr "el tipo matriz tiene tipo de elemento incompleto"
25304
25305-#: c-decl.c:5573
25306+#: c-decl.c:5574
25307 #, gcc-internal-format
25308 msgid "%qE declared as function returning a function"
25309 msgstr "%qE que se declaró como función devuelve una función"
25310
25311-#: c-decl.c:5576
25312+#: c-decl.c:5577
25313 #, gcc-internal-format
25314 msgid "type name declared as function returning a function"
25315 msgstr "el nombre de tipo que se declaró como función devuelve una función"
25316
25317-#: c-decl.c:5583
25318+#: c-decl.c:5584
25319 #, gcc-internal-format
25320 msgid "%qE declared as function returning an array"
25321 msgstr "%qE que se declaró como función devuelve una matriz"
25322
25323-#: c-decl.c:5586
25324+#: c-decl.c:5587
25325 #, gcc-internal-format
25326 msgid "type name declared as function returning an array"
25327 msgstr "el nombre de tipo que se declaró como función devuelve una matriz"
25328
25329-#: c-decl.c:5614
25330+#: c-decl.c:5615
25331 #, gcc-internal-format
25332 msgid "function definition has qualified void return type"
25333 msgstr "la definición de la función tiene un tipo de devolución void calificado"
25334
25335-#: c-decl.c:5617 cp/decl.c:9126
25336+#: c-decl.c:5618 cp/decl.c:9136
25337 #, gcc-internal-format
25338 msgid "type qualifiers ignored on function return type"
25339 msgstr "se descartan los calificadores de tipo en el tipo de devolución de la función"
25340
25341-#: c-decl.c:5646 c-decl.c:5824 c-decl.c:5936 c-decl.c:6031
25342+#: c-decl.c:5647 c-decl.c:5825 c-decl.c:5937 c-decl.c:6032
25343 #, gcc-internal-format
25344 msgid "ISO C forbids qualified function types"
25345 msgstr "ISO C prohíbe los tipos de función calificados"
25346
25347-#: c-decl.c:5713
25348+#: c-decl.c:5714
25349 #, gcc-internal-format
25350 msgid "%qs combined with %<auto%> qualifier for %qE"
25351 msgstr "%qs combinado con el calificador %<auto%> para %qE"
25352
25353-#: c-decl.c:5717
25354+#: c-decl.c:5718
25355 #, gcc-internal-format
25356 msgid "%qs combined with %<register%> qualifier for %qE"
25357 msgstr "%qs combinado con el calificador %<register%> para %qE"
25358
25359-#: c-decl.c:5723
25360+#: c-decl.c:5724
25361 #, gcc-internal-format
25362 msgid "%qs specified for auto variable %qE"
25363 msgstr "se especificó %qs para la variable auto %qE"
25364
25365-#: c-decl.c:5739
25366+#: c-decl.c:5740
25367 #, gcc-internal-format
25368 msgid "%qs specified for parameter %qE"
25369 msgstr "se especificó %qs para el parámetro %qE"
25370
25371-#: c-decl.c:5742
25372+#: c-decl.c:5743
25373 #, gcc-internal-format
25374 msgid "%qs specified for unnamed parameter"
25375 msgstr "se especificó %qs para el parámetro sin nombre"
25376
25377-#: c-decl.c:5748
25378+#: c-decl.c:5749
25379 #, gcc-internal-format
25380 msgid "%qs specified for structure field %qE"
25381 msgstr "se especificó %qs para el campo de estructura %qE"
25382
25383-#: c-decl.c:5751
25384+#: c-decl.c:5752
25385 #, gcc-internal-format
25386 msgid "%qs specified for structure field"
25387 msgstr "se especificó %qs para el campo de estructura"
25388
25389-#: c-decl.c:5764
25390+#: c-decl.c:5765
25391 #, gcc-internal-format
25392 msgid "alignment specified for typedef %qE"
25393 msgstr "se especificó la alineación para la definición de tipo %qE"
25394
25395-#: c-decl.c:5766
25396+#: c-decl.c:5767
25397 #, gcc-internal-format
25398 msgid "alignment specified for %<register%> object %qE"
25399 msgstr "se especificó la alineación para el objeto %<register%> %qE"
25400
25401-#: c-decl.c:5771
25402+#: c-decl.c:5772
25403 #, gcc-internal-format
25404 msgid "alignment specified for parameter %qE"
25405 msgstr "se especificó la alineación para el parámetro %qE"
25406
25407-#: c-decl.c:5773
25408+#: c-decl.c:5774
25409 #, gcc-internal-format
25410 msgid "alignment specified for unnamed parameter"
25411 msgstr "se especificó la alineación para el parámetro sin nombre"
25412
25413-#: c-decl.c:5778
25414+#: c-decl.c:5779
25415 #, gcc-internal-format
25416 msgid "alignment specified for bit-field %qE"
25417 msgstr "se especificó la alineación para el campo de bits %qE"
25418
25419-#: c-decl.c:5780
25420+#: c-decl.c:5781
25421 #, gcc-internal-format
25422 msgid "alignment specified for unnamed bit-field"
25423 msgstr "se especificó la alineación para el campo de bits sin nombre"
25424
25425-#: c-decl.c:5783
25426+#: c-decl.c:5784
25427 #, gcc-internal-format
25428 msgid "alignment specified for function %qE"
25429 msgstr "se especificó la alineación para la función %qE"
25430
25431-#: c-decl.c:5790
25432+#: c-decl.c:5791
25433 #, gcc-internal-format
25434 msgid "%<_Alignas%> specifiers cannot reduce alignment of %qE"
25435 msgstr "los especificadores %<_Alignas%> no pueden reducir la alineación de %qE"
25436
25437-#: c-decl.c:5793
25438+#: c-decl.c:5794
25439 #, gcc-internal-format
25440 msgid "%<_Alignas%> specifiers cannot reduce alignment of unnamed field"
25441 msgstr "los especificadores %<_Alignas%> no pueden reducir la alineación del campo sin nombre"
25442
25443-#: c-decl.c:5832
25444+#: c-decl.c:5833
25445 #, gcc-internal-format
25446 msgid "typedef %q+D declared %<inline%>"
25447 msgstr "la definición de tipo %q+D se declaró como %<inline%>"
25448
25449-#: c-decl.c:5834
25450+#: c-decl.c:5835
25451 #, gcc-internal-format
25452 msgid "typedef %q+D declared %<_Noreturn%>"
25453 msgstr "la definición de tipo %q+D se declaró como %<_Noreturn%>"
25454
25455-#: c-decl.c:5870
25456+#: c-decl.c:5871
25457 #, gcc-internal-format
25458 msgid "ISO C forbids const or volatile function types"
25459 msgstr "ISO C prohíbe los tipos de función const o volatile"
25460
25461 #. C99 6.7.2.1p8
25462-#: c-decl.c:5880
25463+#: c-decl.c:5881
25464 #, gcc-internal-format
25465 msgid "a member of a structure or union cannot have a variably modified type"
25466 msgstr "un miembro de una estructura o union no puede tener un tipo modificado variablemente"
25467
25468-#: c-decl.c:5897 cp/decl.c:8281
25469+#: c-decl.c:5898 cp/decl.c:8291
25470 #, gcc-internal-format
25471 msgid "variable or field %qE declared void"
25472 msgstr "se declaró la variable o campo %qE como void"
25473
25474-#: c-decl.c:5928
25475+#: c-decl.c:5929
25476 #, gcc-internal-format
25477 msgid "attributes in parameter array declarator ignored"
25478 msgstr "se descartan los atributos en los declaradores de parámetros de matriz"
25479
25480-#: c-decl.c:5962
25481+#: c-decl.c:5963
25482 #, gcc-internal-format
25483 msgid "parameter %q+D declared %<inline%>"
25484 msgstr "el parámetro %q+D se declaró %<inline%>"
25485
25486-#: c-decl.c:5964
25487+#: c-decl.c:5965
25488 #, gcc-internal-format
25489 msgid "parameter %q+D declared %<_Noreturn%>"
25490 msgstr "el parámetro %q+D se declaró %<_Noreturn%>"
25491
25492-#: c-decl.c:5977
25493+#: c-decl.c:5978
25494 #, gcc-internal-format
25495 msgid "field %qE declared as a function"
25496 msgstr "el campo %qE se declaró como una función"
25497
25498-#: c-decl.c:5984
25499+#: c-decl.c:5985
25500 #, gcc-internal-format
25501 msgid "field %qE has incomplete type"
25502 msgstr "el campo %qE tiene tipo de dato incompleto"
25503
25504-#: c-decl.c:5986
25505+#: c-decl.c:5987
25506 #, gcc-internal-format
25507 msgid "unnamed field has incomplete type"
25508 msgstr "el campo sin nombre tiene tipo de dato incompleto"
25509
25510-#: c-decl.c:6003 c-decl.c:6014 c-decl.c:6017
25511+#: c-decl.c:6004 c-decl.c:6015 c-decl.c:6018
25512 #, gcc-internal-format
25513 msgid "invalid storage class for function %qE"
25514 msgstr "clase de almacenamiento inválida para la función %qE"
25515
25516-#: c-decl.c:6068
25517+#: c-decl.c:6069
25518 #, gcc-internal-format
25519 msgid "cannot inline function %<main%>"
25520 msgstr "no se puede incluir en línea la función %<main%>"
25521
25522-#: c-decl.c:6070
25523+#: c-decl.c:6071
25524 #, gcc-internal-format
25525 msgid "%<main%> declared %<_Noreturn%>"
25526 msgstr "%<main%> se declaró como %<_Noreturn%>"
25527
25528-#: c-decl.c:6083
25529+#: c-decl.c:6084
25530 #, gcc-internal-format
25531 msgid "ISO C99 does not support %<_Noreturn%>"
25532 msgstr "ISO C99 no admite %<_Noreturn%>"
25533
25534-#: c-decl.c:6086
25535+#: c-decl.c:6087
25536 #, gcc-internal-format
25537 msgid "ISO C90 does not support %<_Noreturn%>"
25538 msgstr "ISO C90 no admite %<_Noreturn%>"
25539
25540-#: c-decl.c:6115
25541+#: c-decl.c:6116
25542 #, gcc-internal-format
25543 msgid "variable previously declared %<static%> redeclared %<extern%>"
25544 msgstr "una variable previamente declarada como %<static%> se redeclara como %<extern%>"
25545
25546-#: c-decl.c:6125
25547+#: c-decl.c:6126
25548 #, gcc-internal-format
25549 msgid "variable %q+D declared %<inline%>"
25550 msgstr "la variable %q+D se declaró como %<inline%>"
25551
25552-#: c-decl.c:6127
25553+#: c-decl.c:6128
25554 #, gcc-internal-format
25555 msgid "variable %q+D declared %<_Noreturn%>"
25556 msgstr "la variable %q+D se declaró como %<_Noreturn%>"
25557
25558-#: c-decl.c:6162
25559+#: c-decl.c:6163
25560 #, gcc-internal-format
25561 msgid "non-nested function with variably modified type"
25562 msgstr "función no anidada con tipo modificado variablemente"
25563
25564-#: c-decl.c:6164
25565+#: c-decl.c:6165
25566 #, gcc-internal-format
25567 msgid "object with variably modified type must have no linkage"
25568 msgstr "un objeto con tipo modificado variablemente no debe tener enlace"
25569
25570-#: c-decl.c:6254 c-decl.c:7813
25571+#: c-decl.c:6255 c-decl.c:7815
25572 #, gcc-internal-format
25573 msgid "function declaration isn%'t a prototype"
25574 msgstr "la declaración de la función no es un prototipo"
25575
25576-#: c-decl.c:6263
25577+#: c-decl.c:6264
25578 #, gcc-internal-format
25579 msgid "parameter names (without types) in function declaration"
25580 msgstr "nombres de parámetros (sin tipos) en la declaración de la función"
25581
25582-#: c-decl.c:6301
25583+#: c-decl.c:6302
25584 #, gcc-internal-format
25585 msgid "parameter %u (%q+D) has incomplete type"
25586 msgstr "el parámetro %u (%q+D) tiene tipo incompleto"
25587
25588-#: c-decl.c:6305
25589+#: c-decl.c:6306
25590 #, gcc-internal-format, gfc-internal-format
25591 msgid "parameter %u has incomplete type"
25592 msgstr "el parámetro %u tiene tipo incompleto"
25593
25594-#: c-decl.c:6316
25595+#: c-decl.c:6317
25596 #, gcc-internal-format
25597 msgid "parameter %u (%q+D) has void type"
25598 msgstr "el parámetro %u (%q+D) tiene tipo void"
25599
25600-#: c-decl.c:6320
25601+#: c-decl.c:6321
25602 #, gcc-internal-format, gfc-internal-format
25603 msgid "parameter %u has void type"
25604 msgstr "el parámetro %u tiene tipo void"
25605
25606-#: c-decl.c:6405
25607+#: c-decl.c:6406
25608 #, gcc-internal-format
25609 msgid "%<void%> as only parameter may not be qualified"
25610 msgstr "no se puede calificar %<void%> si es el único parámetro"
25611
25612-#: c-decl.c:6409 c-decl.c:6444
25613+#: c-decl.c:6410 c-decl.c:6445
25614 #, gcc-internal-format
25615 msgid "%<void%> must be the only parameter"
25616 msgstr "%<void%> debe ser el único parámetro"
25617
25618-#: c-decl.c:6438
25619+#: c-decl.c:6439
25620 #, gcc-internal-format
25621 msgid "parameter %q+D has just a forward declaration"
25622 msgstr "el parámetro %q+D sólo tiene una declaración posterior"
25623
25624 #. The %s will be one of 'struct', 'union', or 'enum'.
25625-#: c-decl.c:6483
25626+#: c-decl.c:6484
25627 #, gcc-internal-format
25628 msgid "%<%s %E%> declared inside parameter list"
25629 msgstr "se declaró %<%s %E%> dentro de la lista de parámetros"
25630
25631 #. The %s will be one of 'struct', 'union', or 'enum'.
25632-#: c-decl.c:6487
25633+#: c-decl.c:6488
25634 #, gcc-internal-format, gfc-internal-format
25635 msgid "anonymous %s declared inside parameter list"
25636 msgstr "el %s anónimo se declaró dentro de una lista de parámetros"
25637
25638-#: c-decl.c:6492
25639+#: c-decl.c:6493
25640 #, gcc-internal-format
25641 msgid "its scope is only this definition or declaration, which is probably not what you want"
25642 msgstr "su ámbito es solamente esta definición o declaración, lo cual probablemente no es lo que desea"
25643
25644-#: c-decl.c:6592
25645+#: c-decl.c:6593
25646 #, gcc-internal-format
25647 msgid "enum type defined here"
25648 msgstr "se definió el tipo enum aquí"
25649
25650-#: c-decl.c:6598
25651+#: c-decl.c:6599
25652 #, gcc-internal-format
25653 msgid "struct defined here"
25654 msgstr "se definió struct aquí"
25655
25656-#: c-decl.c:6604
25657+#: c-decl.c:6605
25658 #, gcc-internal-format
25659 msgid "union defined here"
25660 msgstr "se definió union aquí"
25661
25662-#: c-decl.c:6677
25663+#: c-decl.c:6678
25664 #, gcc-internal-format
25665 msgid "redefinition of %<union %E%>"
25666 msgstr "redefinición de %<union %E%>"
25667
25668-#: c-decl.c:6679
25669+#: c-decl.c:6680
25670 #, gcc-internal-format
25671 msgid "redefinition of %<struct %E%>"
25672 msgstr "redefinición de %<struct %E%>"
25673
25674-#: c-decl.c:6688
25675+#: c-decl.c:6689
25676 #, gcc-internal-format
25677 msgid "nested redefinition of %<union %E%>"
25678 msgstr "redefinición anidada de %<union %E%>"
25679
25680-#: c-decl.c:6690
25681+#: c-decl.c:6691
25682 #, gcc-internal-format
25683 msgid "nested redefinition of %<struct %E%>"
25684 msgstr "redefinición anidada de %<struct %E%>"
25685
25686-#: c-decl.c:6722 c-decl.c:7411
25687+#: c-decl.c:6723 c-decl.c:7412
25688 #, gcc-internal-format
25689 msgid "defining type in %qs expression is invalid in C++"
25690 msgstr "la definición de tipo en %qs es inválida en C++"
25691
25692-#: c-decl.c:6791 cp/decl.c:4147
25693+#: c-decl.c:6792 cp/decl.c:4152
25694 #, gcc-internal-format
25695 msgid "declaration does not declare anything"
25696 msgstr "la declaración no declara nada"
25697
25698-#: c-decl.c:6798
25699+#: c-decl.c:6799
25700 #, gcc-internal-format
25701 msgid "ISO C99 doesn%'t support unnamed structs/unions"
25702 msgstr "ISO C99 no admite structs/unions sin nombre"
25703
25704-#: c-decl.c:6801
25705+#: c-decl.c:6802
25706 #, gcc-internal-format
25707 msgid "ISO C90 doesn%'t support unnamed structs/unions"
25708 msgstr "ISO C90 no admite structs/unions sin nombre"
25709
25710-#: c-decl.c:6893 c-decl.c:6912 c-decl.c:6975
25711+#: c-decl.c:6894 c-decl.c:6913 c-decl.c:6976
25712 #, gcc-internal-format
25713 msgid "duplicate member %q+D"
25714 msgstr "miembro %q+D duplicado"
25715
25716-#: c-decl.c:7085
25717+#: c-decl.c:7086
25718 #, gcc-internal-format
25719 msgid "union has no named members"
25720 msgstr "union no tiene miembros nombrados"
25721
25722-#: c-decl.c:7087
25723+#: c-decl.c:7088
25724 #, gcc-internal-format
25725 msgid "union has no members"
25726 msgstr "union no tiene miembros"
25727
25728-#: c-decl.c:7092
25729+#: c-decl.c:7093
25730 #, gcc-internal-format
25731 msgid "struct has no named members"
25732 msgstr "struct no tiene miembros nombrados"
25733
25734-#: c-decl.c:7094
25735+#: c-decl.c:7095
25736 #, gcc-internal-format
25737 msgid "struct has no members"
25738 msgstr "struct no tiene miembros"
25739
25740-#: c-decl.c:7157
25741+#: c-decl.c:7158
25742 #, gcc-internal-format
25743 msgid "flexible array member in union"
25744 msgstr "miembro de matriz flexible en union"
25745
25746-#: c-decl.c:7163
25747+#: c-decl.c:7164
25748 #, gcc-internal-format
25749 msgid "flexible array member not at end of struct"
25750 msgstr "el miembro de matriz flexible no está al final del struct"
25751
25752-#: c-decl.c:7169
25753+#: c-decl.c:7170
25754 #, gcc-internal-format
25755 msgid "flexible array member in otherwise empty struct"
25756 msgstr "el miembro de matriz flexible sería de otra manera un struct vacío"
25757
25758-#: c-decl.c:7288
25759+#: c-decl.c:7289
25760 #, gcc-internal-format
25761 msgid "union cannot be made transparent"
25762 msgstr "union no se puede hacer transparente"
25763
25764-#: c-decl.c:7384
25765+#: c-decl.c:7385
25766 #, gcc-internal-format
25767 msgid "nested redefinition of %<enum %E%>"
25768 msgstr "redefinición anidada de %<enum %E%>"
25769
25770 #. This enum is a named one that has been declared already.
25771-#: c-decl.c:7391
25772+#: c-decl.c:7392
25773 #, gcc-internal-format
25774 msgid "redeclaration of %<enum %E%>"
25775 msgstr "redeclaración de %<enum %E%>"
25776
25777-#: c-decl.c:7466
25778+#: c-decl.c:7467
25779 #, gcc-internal-format
25780 msgid "enumeration values exceed range of largest integer"
25781 msgstr "los valores de enumeración exceden el rango del entero más grande"
25782
25783-#: c-decl.c:7483
25784+#: c-decl.c:7484
25785 #, gcc-internal-format
25786 msgid "specified mode too small for enumeral values"
25787 msgstr "el modo especificado es demasiado pequeño para valores enumerados"
25788
25789-#: c-decl.c:7588 c-decl.c:7604
25790+#: c-decl.c:7589 c-decl.c:7605
25791 #, gcc-internal-format
25792 msgid "enumerator value for %qE is not an integer constant"
25793 msgstr "el valor de enumerador para %qE no es una constante entera"
25794
25795-#: c-decl.c:7599
25796+#: c-decl.c:7600
25797 #, gcc-internal-format
25798 msgid "enumerator value for %qE is not an integer constant expression"
25799 msgstr "el valor de enumerador para %qE no es una expresión constante entera"
25800
25801-#: c-decl.c:7623
25802+#: c-decl.c:7624
25803 #, gcc-internal-format
25804 msgid "overflow in enumeration values"
25805 msgstr "desbordamiento en valores de enumeración"
25806
25807-#: c-decl.c:7631
25808+#: c-decl.c:7632
25809 #, gcc-internal-format
25810 msgid "ISO C restricts enumerator values to range of %<int%>"
25811 msgstr "ISO C restringe los valores de enumeración al rango de %<int%>"
25812
25813-#: c-decl.c:7715
25814+#: c-decl.c:7717
25815 #, gcc-internal-format
25816 msgid "inline function %qD given attribute noinline"
25817 msgstr "se le dió a la función incluída en línea %qD un atributo noinline"
25818
25819-#: c-decl.c:7733
25820+#: c-decl.c:7735
25821 #, gcc-internal-format
25822 msgid "return type is an incomplete type"
25823 msgstr "el tipo de devolución es un tipo de dato incompleto"
25824
25825-#: c-decl.c:7743
25826+#: c-decl.c:7745
25827 #, gcc-internal-format
25828 msgid "return type defaults to %<int%>"
25829 msgstr "el tipo de devolución por defecto es %<int%>"
25830
25831-#: c-decl.c:7821
25832+#: c-decl.c:7823
25833 #, gcc-internal-format
25834 msgid "no previous prototype for %qD"
25835 msgstr "no hay un prototipo previo para %qD"
25836
25837-#: c-decl.c:7830
25838+#: c-decl.c:7832
25839 #, gcc-internal-format
25840 msgid "%qD was used with no prototype before its definition"
25841 msgstr "se usó %qD sin prototipo antes de su definición"
25842
25843-#: c-decl.c:7837
25844+#: c-decl.c:7839
25845 #, gcc-internal-format
25846 msgid "no previous declaration for %qD"
25847 msgstr "no hay declaración previa para %qD"
25848
25849-#: c-decl.c:7847
25850+#: c-decl.c:7849
25851 #, gcc-internal-format
25852 msgid "%qD was used with no declaration before its definition"
25853 msgstr "se usó %qD sin declaración antes de su definición"
25854
25855-#: c-decl.c:7866
25856+#: c-decl.c:7868
25857 #, gcc-internal-format
25858 msgid "return type of %qD is not %<int%>"
25859 msgstr "el tipo de devolución de %qD no es %<int%>"
25860
25861-#: c-decl.c:7872
25862+#: c-decl.c:7874
25863 #, gcc-internal-format
25864 msgid "%qD is normally a non-static function"
25865 msgstr "%qD generalmente es una función que no es static"
25866
25867-#: c-decl.c:7909
25868+#: c-decl.c:7911
25869 #, gcc-internal-format
25870 msgid "old-style parameter declarations in prototyped function definition"
25871 msgstr "declaraciones de parámetros de estilo antiguo en la definición de una función prototipo"
25872
25873-#: c-decl.c:7923
25874+#: c-decl.c:7925
25875 #, gcc-internal-format
25876 msgid "traditional C rejects ISO C style function definitions"
25877 msgstr "C tradicional rechaza la definición de funciones de estilo ISO C"
25878
25879-#: c-decl.c:7939
25880+#: c-decl.c:7941
25881 #, gcc-internal-format
25882 msgid "parameter name omitted"
25883 msgstr "se omitió el nombre del parámetro"
25884
25885-#: c-decl.c:7976
25886+#: c-decl.c:7978
25887 #, gcc-internal-format
25888 msgid "old-style function definition"
25889 msgstr "definición de función de estilo antiguo"
25890
25891-#: c-decl.c:7985
25892+#: c-decl.c:7987
25893 #, gcc-internal-format
25894 msgid "parameter name missing from parameter list"
25895 msgstr "falta el nombre del parámetro de la lista de parámetros"
25896
25897-#: c-decl.c:8000
25898+#: c-decl.c:8002
25899 #, gcc-internal-format
25900 msgid "%qD declared as a non-parameter"
25901 msgstr "%qD se declaró como un no-parámetro"
25902
25903-#: c-decl.c:8006
25904+#: c-decl.c:8008
25905 #, gcc-internal-format
25906 msgid "multiple parameters named %qD"
25907 msgstr "múltiples parámetros nombrados %qD"
25908
25909-#: c-decl.c:8015
25910+#: c-decl.c:8017
25911 #, gcc-internal-format
25912 msgid "parameter %qD declared with void type"
25913 msgstr "el parámetro %qD se declaró con tipo void"
25914
25915-#: c-decl.c:8044 c-decl.c:8048
25916+#: c-decl.c:8046 c-decl.c:8050
25917 #, gcc-internal-format
25918 msgid "type of %qD defaults to %<int%>"
25919 msgstr "el tipo de %qD es %<int%> por defecto"
25920
25921-#: c-decl.c:8068
25922+#: c-decl.c:8070
25923 #, gcc-internal-format
25924 msgid "parameter %qD has incomplete type"
25925 msgstr "el parámetro %qD tiene tipo incompleto"
25926
25927-#: c-decl.c:8075
25928+#: c-decl.c:8077
25929 #, gcc-internal-format
25930 msgid "declaration for parameter %qD but no such parameter"
25931 msgstr "existe la declaración para el parámetro %qD pero no hay tal parámetro"
25932
25933-#: c-decl.c:8127
25934+#: c-decl.c:8129
25935 #, gcc-internal-format
25936 msgid "number of arguments doesn%'t match built-in prototype"
25937 msgstr "el número de argumentos no coinciden con el prototipo interno"
25938
25939-#: c-decl.c:8138
25940+#: c-decl.c:8140
25941 #, gcc-internal-format
25942 msgid "number of arguments doesn%'t match prototype"
25943 msgstr "el número de argumentos no coinciden con el prototipo"
25944
25945-#: c-decl.c:8141 c-decl.c:8183 c-decl.c:8197
25946+#: c-decl.c:8143 c-decl.c:8185 c-decl.c:8199
25947 #, gcc-internal-format
25948 msgid "prototype declaration"
25949 msgstr "declaración de prototipo"
25950
25951-#: c-decl.c:8175
25952+#: c-decl.c:8177
25953 #, gcc-internal-format
25954 msgid "promoted argument %qD doesn%'t match built-in prototype"
25955 msgstr "el argumento promovido %qD no coincide con el prototipo interno"
25956
25957-#: c-decl.c:8180
25958+#: c-decl.c:8182
25959 #, gcc-internal-format
25960 msgid "promoted argument %qD doesn%'t match prototype"
25961 msgstr "el argumento promovido %qD no coincide con el prototipo"
25962
25963-#: c-decl.c:8190
25964+#: c-decl.c:8192
25965 #, gcc-internal-format
25966 msgid "argument %qD doesn%'t match built-in prototype"
25967 msgstr "el argumento %qD no coincide con el prototipo interno"
25968
25969-#: c-decl.c:8195
25970+#: c-decl.c:8197
25971 #, gcc-internal-format
25972 msgid "argument %qD doesn%'t match prototype"
25973 msgstr "el argumento %qD no coincide con el prototipo"
25974
25975-#: c-decl.c:8378 cp/decl.c:13501
25976+#: c-decl.c:8380 cp/decl.c:13515
25977 #, gcc-internal-format
25978 msgid "no return statement in function returning non-void"
25979 msgstr "no hay una declaración de devolución en la función que no devuelve void"
25980
25981-#: c-decl.c:8398
25982+#: c-decl.c:8400
25983 #, gcc-internal-format
25984 msgid "parameter %qD set but not used"
25985 msgstr "se definió el parámetro %qD pero no se usa"
25986@@ -13693,172 +13838,172 @@
25987 #. If we get here, declarations have been used in a for loop without
25988 #. the C99 for loop scope. This doesn't make much sense, so don't
25989 #. allow it.
25990-#: c-decl.c:8487
25991+#: c-decl.c:8489
25992 #, gcc-internal-format
25993 msgid "%<for%> loop initial declarations are only allowed in C99 mode"
25994 msgstr "sólo se permiten las declaraciones iniciales del bucle %<for%> en modo C99"
25995
25996-#: c-decl.c:8492
25997+#: c-decl.c:8494
25998 #, gcc-internal-format
25999 msgid "use option -std=c99 or -std=gnu99 to compile your code"
26000 msgstr "use la opción -std=c99 o -std=gnu99 para compilar su código"
26001
26002-#: c-decl.c:8526
26003+#: c-decl.c:8528
26004 #, gcc-internal-format
26005 msgid "declaration of static variable %qD in %<for%> loop initial declaration"
26006 msgstr "declaración de la variable static %qD en la declaración inicial del bucle %<for%>"
26007
26008-#: c-decl.c:8530
26009+#: c-decl.c:8532
26010 #, gcc-internal-format
26011 msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
26012 msgstr "declaración de la variable %<extern%> %qD en la declaración inicial del bucle %<for%>"
26013
26014-#: c-decl.c:8537
26015+#: c-decl.c:8539
26016 #, gcc-internal-format
26017 msgid "%<struct %E%> declared in %<for%> loop initial declaration"
26018 msgstr "%<struct %E%> se declaró en la declaración inicial del bucle %<for%>"
26019
26020-#: c-decl.c:8542
26021+#: c-decl.c:8544
26022 #, gcc-internal-format
26023 msgid "%<union %E%> declared in %<for%> loop initial declaration"
26024 msgstr "%<union %E%> se declaró en la declaración inicial del bucle %<for%>"
26025
26026-#: c-decl.c:8546
26027+#: c-decl.c:8548
26028 #, gcc-internal-format
26029 msgid "%<enum %E%> declared in %<for%> loop initial declaration"
26030 msgstr "%<enum %E%> se declaró en la declaración inicial del bucle %<for%>"
26031
26032-#: c-decl.c:8550
26033+#: c-decl.c:8552
26034 #, gcc-internal-format
26035 msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
26036 msgstr "declaración de %qD que no es variable en la declaración inicial del bucle %<for%>"
26037
26038-#: c-decl.c:8819
26039+#: c-decl.c:8821
26040 #, gcc-internal-format
26041 msgid "incompatible address space qualifiers %qs and %qs"
26042 msgstr "calificadores de espacio de direcciones incompatibles %qs y %qs"
26043
26044-#: c-decl.c:8858 c-decl.c:9169 c-decl.c:9563
26045+#: c-decl.c:8860 c-decl.c:9171 c-decl.c:9565
26046 #, gcc-internal-format
26047 msgid "duplicate %qE"
26048 msgstr "%qE duplicado"
26049
26050-#: c-decl.c:8884 c-decl.c:9180 c-decl.c:9437
26051+#: c-decl.c:8886 c-decl.c:9182 c-decl.c:9439
26052 #, gcc-internal-format
26053 msgid "two or more data types in declaration specifiers"
26054 msgstr "dos o más tipos de datos en los especificadores de la declaración"
26055
26056-#: c-decl.c:8896 cp/parser.c:2512
26057+#: c-decl.c:8898 cp/parser.c:2512
26058 #, gcc-internal-format
26059 msgid "%<long long long%> is too long for GCC"
26060 msgstr "%<long long long%> es demasiado largo para GCC"
26061
26062-#: c-decl.c:8909
26063+#: c-decl.c:8911
26064 #, gcc-internal-format
26065 msgid "ISO C90 does not support %<long long%>"
26066 msgstr "ISO C90 no admite %<long long%>"
26067
26068-#: c-decl.c:9075 c-parser.c:6639
26069+#: c-decl.c:9077 c-parser.c:6639
26070 #, gcc-internal-format
26071 msgid "ISO C90 does not support complex types"
26072 msgstr "ISO C90 no admite tipos complejos"
26073
26074-#: c-decl.c:9114
26075+#: c-decl.c:9116
26076 #, gcc-internal-format
26077 msgid "ISO C does not support saturating types"
26078 msgstr "ISO C no admite tipos saturantes"
26079
26080-#: c-decl.c:9188
26081+#: c-decl.c:9190
26082 #, gcc-internal-format
26083 msgid "%<__int128%> is not supported for this target"
26084 msgstr "no se admite %<__int128%> para este objetivo"
26085
26086-#: c-decl.c:9193
26087+#: c-decl.c:9195
26088 #, gcc-internal-format
26089 msgid "ISO C does not support %<__int128%> type"
26090 msgstr "ISO C no admite el tipo %<__int128%>"
26091
26092-#: c-decl.c:9396
26093+#: c-decl.c:9398
26094 #, gcc-internal-format
26095 msgid "ISO C does not support decimal floating point"
26096 msgstr "ISO C no admite coma flotante decimal"
26097
26098-#: c-decl.c:9418 c-decl.c:9644 c-parser.c:6232
26099+#: c-decl.c:9420 c-decl.c:9646 c-parser.c:6232
26100 #, gcc-internal-format
26101 msgid "fixed-point types not supported for this target"
26102 msgstr "no se admiten tipos de coma fija para este objetivo"
26103
26104-#: c-decl.c:9420
26105+#: c-decl.c:9422
26106 #, gcc-internal-format
26107 msgid "ISO C does not support fixed-point types"
26108 msgstr "ISO C no admite tipos de coma fija"
26109
26110-#: c-decl.c:9454
26111+#: c-decl.c:9456
26112 #, gcc-internal-format
26113 msgid "C++ lookup of %qD would return a field, not a type"
26114 msgstr "la búsqueda en C++ de %qD devolvería un campo, no un tipo"
26115
26116-#: c-decl.c:9467
26117+#: c-decl.c:9469
26118 #, gcc-internal-format
26119 msgid "%qE fails to be a typedef or built in type"
26120 msgstr "%qE falla al ser un typedef o un tipo interno del compilador"
26121
26122-#: c-decl.c:9509
26123+#: c-decl.c:9511
26124 #, gcc-internal-format
26125 msgid "%qE is not at beginning of declaration"
26126 msgstr "%qE no está al inicio de la declaración"
26127
26128-#: c-decl.c:9528
26129+#: c-decl.c:9530
26130 #, gcc-internal-format
26131 msgid "%<__thread%> used with %<auto%>"
26132 msgstr "se usó %<__thread%> con %<auto%>"
26133
26134-#: c-decl.c:9530
26135+#: c-decl.c:9532
26136 #, gcc-internal-format
26137 msgid "%<__thread%> used with %<register%>"
26138 msgstr "se usó %<__thread%> con %<register%>"
26139
26140-#: c-decl.c:9532
26141+#: c-decl.c:9534
26142 #, gcc-internal-format
26143 msgid "%<__thread%> used with %<typedef%>"
26144 msgstr "se usó %<__thread%> con %<typedef%>"
26145
26146-#: c-decl.c:9543
26147+#: c-decl.c:9545
26148 #, gcc-internal-format
26149 msgid "%<__thread%> before %<extern%>"
26150 msgstr "%<__thread%> antes de %<extern%>"
26151
26152-#: c-decl.c:9552
26153+#: c-decl.c:9554
26154 #, gcc-internal-format
26155 msgid "%<__thread%> before %<static%>"
26156 msgstr "%<__thread%> antes de %<static%>"
26157
26158-#: c-decl.c:9568
26159+#: c-decl.c:9570
26160 #, gcc-internal-format
26161 msgid "multiple storage classes in declaration specifiers"
26162 msgstr "múltiples clases de almacenamiento en los especificadores de declaración"
26163
26164-#: c-decl.c:9575
26165+#: c-decl.c:9577
26166 #, gcc-internal-format
26167 msgid "%<__thread%> used with %qE"
26168 msgstr "se usó %<__thread%> con %qE"
26169
26170-#: c-decl.c:9642
26171+#: c-decl.c:9644
26172 #, gcc-internal-format
26173 msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
26174 msgstr "se usó %<_Sat%> sin %<_Fract%> o %<_Accum%>"
26175
26176-#: c-decl.c:9656
26177+#: c-decl.c:9658
26178 #, gcc-internal-format
26179 msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
26180 msgstr "ISO C no admite %<complex%> simples que significan %<double complex%>"
26181
26182-#: c-decl.c:9701 c-decl.c:9714 c-decl.c:9740
26183+#: c-decl.c:9703 c-decl.c:9716 c-decl.c:9742
26184 #, gcc-internal-format
26185 msgid "ISO C does not support complex integer types"
26186 msgstr "ISO C no admite tipos enteros complejos"
26187
26188-#: c-decl.c:9894 toplev.c:484
26189+#: c-decl.c:9896 toplev.c:484
26190 #, gcc-internal-format
26191 msgid "%q+F used but never defined"
26192 msgstr "se usa %q+F pero nunca se define"
26193@@ -14458,7 +14603,7 @@
26194 msgid "collapsed loops not perfectly nested"
26195 msgstr "los bucles colapsados no están perfectamente anidados"
26196
26197-#: c-parser.c:10102 cp/parser.c:26364 cp/parser.c:26402 cp/pt.c:12677
26198+#: c-parser.c:10102 cp/parser.c:26364 cp/parser.c:26402 cp/pt.c:12690
26199 #, gcc-internal-format
26200 msgid "iteration variable %qD should not be firstprivate"
26201 msgstr "la variable de iteración %qD no debe ser firstprivate"
26202@@ -14687,7 +14832,7 @@
26203 msgid "too many arguments to method %qE"
26204 msgstr "demasiados argumentos para el método %qE"
26205
26206-#: c-typeck.c:3036 c-family/c-common.c:8433 c-family/c-common.c:9359
26207+#: c-typeck.c:3036 c-family/c-common.c:8433 c-family/c-common.c:9361
26208 #, gcc-internal-format
26209 msgid "too many arguments to function %qE"
26210 msgstr "demasiados argumentos para la función %qE"
26211@@ -14912,7 +15057,7 @@
26212 msgid "pointer/integer type mismatch in conditional expression"
26213 msgstr "los tipos de datos punteros/enteros no coinciden en la expresión condicional"
26214
26215-#: c-typeck.c:4373 tree-cfg.c:3824
26216+#: c-typeck.c:4373 tree-cfg.c:3821
26217 #, gcc-internal-format
26218 msgid "type mismatch in conditional expression"
26219 msgstr "los tipos de datos no coinciden en la expresión condicional"
26220@@ -15322,7 +15467,7 @@
26221 msgid "invalid initializer"
26222 msgstr "inicializador inválido"
26223
26224-#: c-typeck.c:6652 cp/decl.c:5526
26225+#: c-typeck.c:6652 cp/decl.c:5536
26226 #, gcc-internal-format
26227 msgid "opaque vector types cannot be initialized"
26228 msgstr "no se pueden inicializar los tipos de vector opacos"
26229@@ -15703,7 +15848,7 @@
26230 msgid "C++ requires promoted type, not enum type, in %<va_arg%>"
26231 msgstr "C++ requiere un tipo promovido, no un tipo enum, en %<va_arg%>"
26232
26233-#: calls.c:2311
26234+#: calls.c:2316
26235 #, gcc-internal-format
26236 msgid "function call has aggregate value"
26237 msgstr "la llamada a la función tiene valor agregado"
26238@@ -16168,217 +16313,222 @@
26239 msgid "caller edge frequency %i does not match BB frequency %i"
26240 msgstr "la frecuencia de borde llamador %i no coincide con la frecuencia BB %i"
26241
26242-#: cgraphunit.c:501
26243+#: cgraphunit.c:507
26244 #, gcc-internal-format, gfc-internal-format
26245 msgid "aux field set for edge %s->%s"
26246 msgstr "campo aux establecido para el borde %s->%s"
26247
26248-#: cgraphunit.c:508
26249+#: cgraphunit.c:514
26250 #, gcc-internal-format
26251 msgid "execution count is negative"
26252 msgstr "la cuenta de ejecución es negativa"
26253
26254-#: cgraphunit.c:513
26255+#: cgraphunit.c:519
26256 #, gcc-internal-format
26257 msgid "externally visible inline clone"
26258 msgstr "clon incluído en línea visible externamente"
26259
26260-#: cgraphunit.c:518
26261+#: cgraphunit.c:524
26262 #, gcc-internal-format
26263 msgid "inline clone with address taken"
26264 msgstr "clon incluído en línea con dirección tomada"
26265
26266-#: cgraphunit.c:523
26267+#: cgraphunit.c:529
26268 #, gcc-internal-format
26269 msgid "inline clone is needed"
26270 msgstr "se necesita un clon incluído en línea"
26271
26272-#: cgraphunit.c:530
26273+#: cgraphunit.c:536
26274 #, gcc-internal-format, gfc-internal-format
26275 msgid "aux field set for indirect edge from %s"
26276 msgstr "se define el campo aux para el borde indirecto desde %s"
26277
26278-#: cgraphunit.c:537
26279+#: cgraphunit.c:543
26280 #, gcc-internal-format, gfc-internal-format
26281 msgid "An indirect edge from %s is not marked as indirect or has associated indirect_info, the corresponding statement is: "
26282 msgstr "Un borde indirecto de %s no está marcado como indirecto o tiene indirect_info asociado, la declaración correspondiente es: "
26283
26284-#: cgraphunit.c:554
26285+#: cgraphunit.c:560
26286 #, gcc-internal-format
26287 msgid "inlined_to pointer is wrong"
26288 msgstr "el puntero inlined_to está mal"
26289
26290-#: cgraphunit.c:559
26291+#: cgraphunit.c:565
26292 #, gcc-internal-format
26293 msgid "multiple inline callers"
26294 msgstr "múltiples llamantes inline"
26295
26296-#: cgraphunit.c:566
26297+#: cgraphunit.c:572
26298 #, gcc-internal-format
26299 msgid "inlined_to pointer set for noninline callers"
26300 msgstr "se estableció el puntero inlined_to para llamantes no-inline"
26301
26302-#: cgraphunit.c:575
26303+#: cgraphunit.c:581
26304 #, gcc-internal-format
26305 msgid "inlined_to pointer is set but no predecessors found"
26306 msgstr "se estableció el puntero inlined_to, pero no se encontraron predecesores"
26307
26308-#: cgraphunit.c:580
26309+#: cgraphunit.c:586
26310 #, gcc-internal-format
26311 msgid "inlined_to pointer refers to itself"
26312 msgstr "el puntero inlined_to se refiere a sí mismo"
26313
26314-#: cgraphunit.c:586
26315+#: cgraphunit.c:592
26316 #, gcc-internal-format
26317 msgid "node not found in cgraph_hash"
26318 msgstr "no se encontró un nodo en cgraph_hash"
26319
26320-#: cgraphunit.c:598
26321+#: cgraphunit.c:604
26322 #, gcc-internal-format
26323 msgid "node has wrong clone_of"
26324 msgstr "el nodo tiene un clone_of erróneo"
26325
26326-#: cgraphunit.c:610
26327+#: cgraphunit.c:616
26328 #, gcc-internal-format
26329 msgid "node has wrong clone list"
26330 msgstr "el nodo tiene una lista de clones errónea"
26331
26332-#: cgraphunit.c:616
26333+#: cgraphunit.c:622
26334 #, gcc-internal-format
26335 msgid "node is in clone list but it is not clone"
26336 msgstr "el nodo está en la lista de clones pero no es clon"
26337
26338-#: cgraphunit.c:621
26339+#: cgraphunit.c:627
26340 #, gcc-internal-format
26341 msgid "node has wrong prev_clone pointer"
26342 msgstr "el nodo tiene un puntero prev_clone erróneo"
26343
26344-#: cgraphunit.c:626
26345+#: cgraphunit.c:632
26346 #, gcc-internal-format
26347 msgid "double linked list of clones corrupted"
26348 msgstr "lista de clones doblemente ligada corrrupta"
26349
26350-#: cgraphunit.c:635
26351+#: cgraphunit.c:641
26352 #, gcc-internal-format
26353 msgid "non-DECL_ONE_ONLY node in a same_comdat_group list"
26354 msgstr "nodo que no es DECL_ONE_ONLY en una lista same_comdat_group"
26355
26356-#: cgraphunit.c:640
26357+#: cgraphunit.c:646
26358 #, gcc-internal-format
26359 msgid "node is alone in a comdat group"
26360 msgstr "el nodo está solo en un grupo comdat"
26361
26362-#: cgraphunit.c:647
26363+#: cgraphunit.c:653
26364 #, gcc-internal-format
26365 msgid "same_comdat_group is not a circular list"
26366 msgstr "same_comdat_group no es una lista circular"
26367
26368-#: cgraphunit.c:664
26369+#: cgraphunit.c:670
26370 #, gcc-internal-format
26371 msgid "Alias has call edges"
26372 msgstr "Alias tiene bordes de llamada"
26373
26374-#: cgraphunit.c:670
26375+#: cgraphunit.c:676
26376 #, gcc-internal-format
26377-msgid "Alias has non-alias refernece"
26378+msgid "Alias has non-alias reference"
26379 msgstr "Alias tiene una referencia que no es alias"
26380
26381-#: cgraphunit.c:675
26382+#: cgraphunit.c:681
26383 #, gcc-internal-format
26384 msgid "Alias has more than one alias reference"
26385 msgstr "Alias tiene más de una referencia alias"
26386
26387-#: cgraphunit.c:682
26388+#: cgraphunit.c:688
26389 #, gcc-internal-format
26390 msgid "Analyzed alias has no reference"
26391 msgstr "El alias analizado no tiene referencia"
26392
26393-#: cgraphunit.c:690
26394+#: cgraphunit.c:696
26395 #, gcc-internal-format
26396 msgid "No edge out of thunk node"
26397 msgstr "No hay un borde fuera de un nodo thunk"
26398
26399-#: cgraphunit.c:695
26400+#: cgraphunit.c:701
26401 #, gcc-internal-format
26402 msgid "More than one edge out of thunk node"
26403 msgstr "Más de un borde fuera de un nodo thunk"
26404
26405-#: cgraphunit.c:700
26406+#: cgraphunit.c:706
26407 #, gcc-internal-format
26408 msgid "Thunk is not supposed to have body"
26409 msgstr "No se supone que thunk tenga cuerpo"
26410
26411-#: cgraphunit.c:730
26412+#: cgraphunit.c:736
26413 #, gcc-internal-format
26414 msgid "shared call_stmt:"
26415 msgstr "call_stmt compartida:"
26416
26417-#: cgraphunit.c:738
26418+#: cgraphunit.c:744
26419 #, gcc-internal-format
26420 msgid "edge points to wrong declaration:"
26421 msgstr "puntos de borde para una declaración errónea:"
26422
26423-#: cgraphunit.c:747
26424+#: cgraphunit.c:753
26425 #, gcc-internal-format
26426 msgid "an indirect edge with unknown callee corresponding to a call_stmt with a known declaration:"
26427 msgstr "un borde indirecto con un llamante desconocido que corresponde a call_stmt con una declaración conocida:"
26428
26429-#: cgraphunit.c:757
26430+#: cgraphunit.c:763
26431 #, gcc-internal-format
26432 msgid "missing callgraph edge for call stmt:"
26433 msgstr "falta el borde de callgraph para la llamada stmt:"
26434
26435-#: cgraphunit.c:773
26436+#: cgraphunit.c:779
26437 #, gcc-internal-format, gfc-internal-format
26438 msgid "edge %s->%s has no corresponding call_stmt"
26439 msgstr "el borde %s->%s no tiene un call_stmt correspondiente"
26440
26441-#: cgraphunit.c:785
26442+#: cgraphunit.c:791
26443 #, gcc-internal-format, gfc-internal-format
26444 msgid "an indirect edge from %s has no corresponding call_stmt"
26445 msgstr "un borde indirecto desde %s no tiene un call_stmt correspondiente"
26446
26447-#: cgraphunit.c:796
26448+#: cgraphunit.c:802
26449 #, gcc-internal-format
26450 msgid "verify_cgraph_node failed"
26451 msgstr "falló verify_cgraph_node"
26452
26453-#: cgraphunit.c:940
26454+#: cgraphunit.c:851
26455 #, gcc-internal-format
26456+msgid "function %q+D part of alias cycle"
26457+msgstr "la función %q+D es parte de un ciclo de alias"
26458+
26459+#: cgraphunit.c:956
26460+#, gcc-internal-format
26461 msgid "%<weakref%> attribute should be accompanied with an %<alias%> attribute"
26462 msgstr "el atributo %<weakref%> se debe acompañar con un atributo %<alias%>"
26463
26464-#: cgraphunit.c:995 cgraphunit.c:1040
26465+#: cgraphunit.c:1011 cgraphunit.c:1056
26466 #, gcc-internal-format
26467 msgid "%<externally_visible%> attribute have effect only on public objects"
26468 msgstr "el atributo %<externally_visible%> sólo tiene efecto en objetos públicos"
26469
26470-#: cgraphunit.c:1004
26471+#: cgraphunit.c:1020
26472 #, gcc-internal-format
26473 msgid "%<weakref%> attribute ignored because function is defined"
26474 msgstr "se descarta el atributo %<weakref%> porque ya se definió la función"
26475
26476-#: cgraphunit.c:1016
26477+#: cgraphunit.c:1032
26478 #, gcc-internal-format
26479 msgid "always_inline function might not be inlinable"
26480 msgstr "una función always_inline tal vez no se puede incluir en línea"
26481
26482-#: cgraphunit.c:1050
26483+#: cgraphunit.c:1066
26484 #, gcc-internal-format
26485 msgid "%<weakref%> attribute ignored because variable is initialized"
26486 msgstr "se descarta el atributo %<weakref%> porque ya se inicializó la variable"
26487
26488-#: cgraphunit.c:1404
26489+#: cgraphunit.c:1420
26490 #, gcc-internal-format
26491 msgid "failed to reclaim unneeded function"
26492 msgstr "falló al reclamar una función innecesaria"
26493
26494-#: cgraphunit.c:1430
26495+#: cgraphunit.c:1447
26496 #, gcc-internal-format
26497-msgid "failed to reclaim unneeded functionin same comdat group"
26498+msgid "failed to reclaim unneeded function in same comdat group"
26499 msgstr "falló al reclamar una función innecesaria en el mismo grupo comdat"
26500
26501-#: cgraphunit.c:2233
26502+#: cgraphunit.c:2251
26503 #, gcc-internal-format
26504 msgid "nodes with unreleased memory found"
26505 msgstr "se encontraron nodos sin memoria liberada"
26506@@ -16448,12 +16598,12 @@
26507 msgid "cannot find '%s'"
26508 msgstr "no se puede encontrar '%s'"
26509
26510-#: collect2.c:2081 collect2.c:2617 collect2.c:2813 gcc.c:2652
26511+#: collect2.c:2081 collect2.c:2617 collect2.c:2813 gcc.c:2658
26512 #, gcc-internal-format
26513 msgid "pex_init failed: %m"
26514 msgstr "falló pex_init: %m"
26515
26516-#: collect2.c:2090 collect2.c:2626 collect2.c:2821 gcc.c:6995
26517+#: collect2.c:2090 collect2.c:2626 collect2.c:2821 gcc.c:7027
26518 #, gcc-internal-format
26519 msgid "%s: %m"
26520 msgstr "%s: %m"
26521@@ -16563,82 +16713,82 @@
26522 msgid "aggregate value used where a fixed-point was expected"
26523 msgstr "se usó un valor agregado donde se esperaba uno de coma fija"
26524
26525-#: coverage.c:188
26526+#: coverage.c:189
26527 #, gcc-internal-format
26528 msgid "%qs is not a gcov data file"
26529 msgstr "%qs no es un fichero de datos gcov"
26530
26531-#: coverage.c:199
26532+#: coverage.c:200
26533 #, gcc-internal-format
26534 msgid "%qs is version %q.*s, expected version %q.*s"
26535 msgstr "%qs es versión %q.*s, se esperaba la versión %q.*s"
26536
26537-#: coverage.c:275 coverage.c:284
26538+#: coverage.c:276 coverage.c:285
26539 #, gcc-internal-format, gfc-internal-format
26540 msgid "Profile data for function %u is corrupted"
26541 msgstr "La información de análisis de perfil para la función %u está corrupta"
26542
26543-#: coverage.c:276
26544+#: coverage.c:277
26545 #, gcc-internal-format
26546 msgid "checksum is (%x,%x) instead of (%x,%x)"
26547 msgstr "la suma de comprobación es (%x,%x) en lugar de (%x,%x)"
26548
26549-#: coverage.c:285
26550+#: coverage.c:286
26551 #, gcc-internal-format, gfc-internal-format
26552 msgid "number of counters is %d instead of %d"
26553 msgstr "el número de contadores es %d en lugar de %d"
26554
26555-#: coverage.c:291
26556+#: coverage.c:292
26557 #, gcc-internal-format, gfc-internal-format
26558 msgid "cannot merge separate %s counters for function %u"
26559 msgstr "no se pueden mezclar contadores %s separados para la función %u"
26560
26561-#: coverage.c:310
26562+#: coverage.c:311
26563 #, gcc-internal-format
26564 msgid "%qs has overflowed"
26565 msgstr "%qs se ha desbordado"
26566
26567-#: coverage.c:360
26568+#: coverage.c:361
26569 #, gcc-internal-format
26570 msgid "the control flow of function %qE does not match its profile data (counter %qs)"
26571 msgstr "el flujo de control de la función %qE no coincide con sus datos de análisis de perfil (contador %qs)"
26572
26573-#: coverage.c:364
26574+#: coverage.c:365
26575 #, gcc-internal-format
26576 msgid "use -Wno-error=coverage-mismatch to tolerate the mismatch but performance may drop if the function is hot"
26577 msgstr "use -Wno-error=coverage-mismatch para tolerar la diferencia pero el rendmiento puede disminuir si la función está caliente"
26578
26579-#: coverage.c:370
26580+#: coverage.c:371
26581 #, gcc-internal-format
26582 msgid "coverage mismatch ignored"
26583 msgstr "se descarta la diferencia de cobertura"
26584
26585-#: coverage.c:372
26586+#: coverage.c:373
26587 #, gcc-internal-format
26588 msgid "execution counts estimated"
26589 msgstr "cuentas de ejecución estimadas"
26590
26591-#: coverage.c:373
26592+#: coverage.c:374
26593 #, gcc-internal-format
26594 msgid "execution counts assumed to be zero"
26595 msgstr "se asume que las cuentas de ejecución son cero"
26596
26597-#: coverage.c:376
26598+#: coverage.c:377
26599 #, gcc-internal-format
26600 msgid "this can result in poorly optimized code"
26601 msgstr "esto puede resultar en código probremente optimizado"
26602
26603-#: coverage.c:384
26604+#: coverage.c:385
26605 #, gcc-internal-format
26606 msgid "source locations for function %qE have changed, the profile data may be out of date"
26607 msgstr "cambiaron las ubicaciones de fuente para la función %qE, los datos de análisis de perfil pueden estar desactualizados"
26608
26609-#: coverage.c:602
26610+#: coverage.c:603
26611 #, gcc-internal-format
26612 msgid "error writing %qs"
26613 msgstr "error al escribir %qs"
26614
26615-#: coverage.c:1098
26616+#: coverage.c:1111
26617 #, gcc-internal-format, gfc-internal-format
26618 msgid "cannot open %s"
26619 msgstr "no se puede abrir %s"
26620@@ -16713,27 +16863,27 @@
26621 msgid "multiple EH personalities are supported only with assemblers supporting .cfi_personality directive"
26622 msgstr "sólo se admiten múltiples personalidades EH con ensambladores que admiten la directiva cfi.personality"
26623
26624-#: dwarf2out.c:10672
26625+#: dwarf2out.c:10704
26626 #, gcc-internal-format, gfc-internal-format
26627 msgid "non-delegitimized UNSPEC %s (%d) found in variable location"
26628 msgstr "se encontró UNSPEC %s (%d) que no está delegitimado la ubicación de variable"
26629
26630-#: emit-rtl.c:2541
26631+#: emit-rtl.c:2556
26632 #, gcc-internal-format
26633 msgid "invalid rtl sharing found in the insn"
26634 msgstr "se encontró una compartición de rtl inválida en la insn"
26635
26636-#: emit-rtl.c:2543
26637+#: emit-rtl.c:2558
26638 #, gcc-internal-format
26639 msgid "shared rtx"
26640 msgstr "rtx compartido"
26641
26642-#: emit-rtl.c:2545
26643+#: emit-rtl.c:2560
26644 #, gcc-internal-format
26645 msgid "internal consistency failure"
26646 msgstr "falla interna de consistencia"
26647
26648-#: emit-rtl.c:3676
26649+#: emit-rtl.c:3691
26650 #, gcc-internal-format
26651 msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
26652 msgstr "ICE: se usa emit_insn donde se necesita emit_jump_insn:\n"
26653@@ -16828,17 +16978,17 @@
26654 msgid "when a volatile object spans multiple type-sized locations, the compiler must choose between using a single mis-aligned access to preserve the volatility, or using multiple aligned accesses to avoid runtime faults; this code may fail at runtime if the hardware does not allow this access"
26655 msgstr "cuando un objeto volatile abarca múltiples ubicaciones con tamaño de tipo, el compilador debe escoger entre usar un solo acceso desalineado para preservar la volatilidad, o usar múltiples accesos alineados para evitar faltas en tiempo de ejecución; este código puede fallar en tiempo de ejecución si el hardware no permite este acceso"
26656
26657-#: expr.c:7479
26658+#: expr.c:7523
26659 #, gcc-internal-format
26660 msgid "local frame unavailable (naked function?)"
26661 msgstr "el marco local no está disponible (¿Función desnuda?)"
26662
26663-#: expr.c:9951
26664+#: expr.c:9996
26665 #, gcc-internal-format
26666 msgid "%Kcall to %qs declared with attribute error: %s"
26667 msgstr "%Kla llamada a %qs se redeclaró con error de atributo: %s"
26668
26669-#: expr.c:9958
26670+#: expr.c:10003
26671 #, gcc-internal-format
26672 msgid "%Kcall to %qs declared with attribute warning: %s"
26673 msgstr "%Kla llamada a %qs se redecló con aviso de atributo: %s"
26674@@ -16853,12 +17003,12 @@
26675 msgid "the frame size of %wd bytes is larger than %wd bytes"
26676 msgstr "el tamaño de marco de %wd bytes es mayor que %wd bytes"
26677
26678-#: final.c:4430 toplev.c:1421 tree-optimize.c:171
26679+#: final.c:4430 toplev.c:1421 tree-optimize.c:173
26680 #, gcc-internal-format
26681 msgid "could not open final insn dump file %qs: %m"
26682 msgstr "no se puede abrir el fichero de volcado de insn final %qs: %m"
26683
26684-#: final.c:4483 tree-optimize.c:187
26685+#: final.c:4483 tree-optimize.c:189
26686 #, gcc-internal-format
26687 msgid "could not close final insn dump file %qs: %m"
26688 msgstr "no se puede cerrar el fichero de volcado de insn final %qs: %m"
26689@@ -16913,7 +17063,7 @@
26690 msgid "assuming signed overflow does not occur when combining constants around a comparison"
26691 msgstr "se asume que el desbordamiento con signo no sucede cuando se combinan constantes alrededor de una comparación"
26692
26693-#: fold-const.c:14205
26694+#: fold-const.c:14219
26695 #, gcc-internal-format
26696 msgid "fold check: original tree changed by fold"
26697 msgstr "fold check: el árbol original cambió por un pliegue"
26698@@ -16923,7 +17073,7 @@
26699 msgid "total size of local objects too large"
26700 msgstr "el tamaño total de los objetos locales es demasiado grande"
26701
26702-#: function.c:1732 gimplify.c:5155
26703+#: function.c:1732 gimplify.c:5156
26704 #, gcc-internal-format
26705 msgid "impossible constraint in %<asm%>"
26706 msgstr "restricción imposible en %<asm%>"
26707@@ -16948,132 +17098,132 @@
26708 msgid "unused parameter %q+D"
26709 msgstr "parámetro %q+D sin uso"
26710
26711-#: gcc.c:1726 gcc.c:1746
26712+#: gcc.c:1732 gcc.c:1752
26713 #, gcc-internal-format, gfc-internal-format
26714 msgid "specs %%include syntax malformed after %ld characters"
26715 msgstr "sintaxis de specs %%include mal formada después de %ld caracteres"
26716
26717-#: gcc.c:1772 gcc.c:1781 gcc.c:1791 gcc.c:1801
26718+#: gcc.c:1778 gcc.c:1787 gcc.c:1797 gcc.c:1807
26719 #, gcc-internal-format, gfc-internal-format
26720 msgid "specs %%rename syntax malformed after %ld characters"
26721 msgstr "sintaxis de specs %%rename mal formada después de %ld caracteres"
26722
26723-#: gcc.c:1811
26724+#: gcc.c:1817
26725 #, gcc-internal-format, gfc-internal-format
26726 msgid "specs %s spec was not found to be renamed"
26727 msgstr "la especificación specs %s no se encontró para ser renombrada"
26728
26729-#: gcc.c:1818
26730+#: gcc.c:1824
26731 #, gcc-internal-format
26732 msgid "%s: attempt to rename spec %qs to already defined spec %qs"
26733 msgstr "%s: se intentó renombrar la especificación %qs a la especificación %qs que ya estaba definida"
26734
26735-#: gcc.c:1839
26736+#: gcc.c:1845
26737 #, gcc-internal-format, gfc-internal-format
26738 msgid "specs unknown %% command after %ld characters"
26739 msgstr "orden specs %% desconocida después de %ld caracteres"
26740
26741-#: gcc.c:1850 gcc.c:1863
26742+#: gcc.c:1856 gcc.c:1869
26743 #, gcc-internal-format, gfc-internal-format
26744 msgid "specs file malformed after %ld characters"
26745 msgstr "fichero specs mal formado después de %ld caracteres"
26746
26747-#: gcc.c:1915
26748+#: gcc.c:1921
26749 #, gcc-internal-format
26750 msgid "spec file has no spec for linking"
26751 msgstr "el fichero de especificación no tiene especificaciones para enlazar"
26752
26753-#: gcc.c:2444
26754+#: gcc.c:2450
26755 #, gcc-internal-format
26756 msgid "system path %qs is not absolute"
26757 msgstr "la ruta del sistema %qs no es absoluta"
26758
26759-#: gcc.c:2529
26760+#: gcc.c:2535
26761 #, gcc-internal-format
26762 msgid "-pipe not supported"
26763 msgstr "no se admite -pipe"
26764
26765-#: gcc.c:2691
26766+#: gcc.c:2697
26767 #, gcc-internal-format
26768 msgid "failed to get exit status: %m"
26769 msgstr "no se puede obtener el estado de salida: %m"
26770
26771-#: gcc.c:2697
26772+#: gcc.c:2703
26773 #, gcc-internal-format
26774 msgid "failed to get process times: %m"
26775 msgstr "no se pueden obtener los tiempos de proceso: %m"
26776
26777-#: gcc.c:2723
26778+#: gcc.c:2729
26779 #, gcc-internal-format, gfc-internal-format
26780 msgid "%s (program %s)"
26781 msgstr "%s (programa %s)"
26782
26783-#: gcc.c:3142 opts-common.c:986 opts-common.c:1058
26784+#: gcc.c:3148 opts-common.c:986 opts-common.c:1058
26785 #, gcc-internal-format
26786 msgid "unrecognized command line option %qs"
26787 msgstr "no se reconoce la opción de línea de órdenes %qs"
26788
26789-#: gcc.c:3395
26790+#: gcc.c:3401
26791 #, gcc-internal-format
26792 msgid "%qs is an unknown -save-temps option"
26793 msgstr "%qs es una opción desconocida para -save-temps"
26794
26795-#: gcc.c:3856
26796+#: gcc.c:3862
26797 #, gcc-internal-format
26798 msgid "-pipe ignored because -save-temps specified"
26799 msgstr "se descarta -pipe porque se especificó -save-temps"
26800
26801-#: gcc.c:3942
26802+#: gcc.c:3948
26803 #, gcc-internal-format
26804 msgid "%<-x %s%> after last input file has no effect"
26805 msgstr "%<-x %s%> después del último fichero de entrada no tiene efecto"
26806
26807-#: gcc.c:4109
26808+#: gcc.c:4115
26809 #, gcc-internal-format
26810 msgid "unable to locate default linker script %qs in the library search paths"
26811 msgstr "no se puede localizar el guión de enlazador por defecto %qs en las rutas de búsqueda de bibliotecas"
26812
26813-#: gcc.c:4312
26814+#: gcc.c:4318
26815 #, gcc-internal-format
26816 msgid "switch %qs does not start with %<-%>"
26817 msgstr "la opción %qs no inicia con %<-%>"
26818
26819-#: gcc.c:4315
26820+#: gcc.c:4321
26821 #, gcc-internal-format
26822 msgid "spec-generated switch is just %<-%>"
26823 msgstr "la opción generada de especificación sólo es %<-%>"
26824
26825-#: gcc.c:4406
26826+#: gcc.c:4412
26827 #, gcc-internal-format, gfc-internal-format
26828 msgid "could not open temporary response file %s"
26829 msgstr "no se puede abrir el fichero de respuesta temporal %s"
26830
26831-#: gcc.c:4412
26832+#: gcc.c:4418
26833 #, gcc-internal-format, gfc-internal-format
26834 msgid "could not write to temporary response file %s"
26835 msgstr "no se puede escribir en el fichero de respuesta temporal %s"
26836
26837-#: gcc.c:4418
26838+#: gcc.c:4424
26839 #, gcc-internal-format, gfc-internal-format
26840 msgid "could not close temporary response file %s"
26841 msgstr "no se puede cerrar el fichero de respuesta temporal %s"
26842
26843-#: gcc.c:4541
26844+#: gcc.c:4547
26845 #, gcc-internal-format
26846 msgid "spec %qs invalid"
26847 msgstr "la especificación %qs es inválida"
26848
26849-#: gcc.c:4690
26850+#: gcc.c:4696
26851 #, gcc-internal-format
26852 msgid "spec %qs has invalid %<%%0%c%>"
26853 msgstr "la especificación %qs tiene un %<%%0%c%> inválido"
26854
26855-#: gcc.c:5000
26856+#: gcc.c:5006
26857 #, gcc-internal-format
26858 msgid "spec %qs has invalid %<%%W%c%>"
26859 msgstr "la especificación %qs tiene un %<%%W%c%> inválido"
26860
26861-#: gcc.c:5022
26862+#: gcc.c:5028
26863 #, gcc-internal-format
26864 msgid "spec %qs has invalid %<%%x%c%>"
26865 msgstr "la especificación %qs tiene un %<%%x%c%> inválido"
26866@@ -17081,210 +17231,210 @@
26867 #. Catch the case where a spec string contains something like
26868 #. '%{foo:%*}'. i.e. there is no * in the pattern on the left
26869 #. hand side of the :.
26870-#: gcc.c:5210
26871+#: gcc.c:5216
26872 #, gcc-internal-format
26873 msgid "spec failure: %<%%*%> has not been initialized by pattern match"
26874 msgstr "falla de especificación: %<%%*%> no ha sido inicializado por coincidencia de patrón"
26875
26876-#: gcc.c:5253
26877+#: gcc.c:5259
26878 #, gcc-internal-format
26879 msgid "spec failure: unrecognized spec option %qc"
26880 msgstr "falla de especificación: no se reconoce la opción de especificación %qc"
26881
26882-#: gcc.c:5313
26883+#: gcc.c:5319
26884 #, gcc-internal-format
26885 msgid "unknown spec function %qs"
26886 msgstr "función de especificación %qs desconocida"
26887
26888-#: gcc.c:5331
26889+#: gcc.c:5337
26890 #, gcc-internal-format
26891 msgid "error in args to spec function %qs"
26892 msgstr "error en los argumentos para la función de especificación %qs"
26893
26894-#: gcc.c:5379
26895+#: gcc.c:5385
26896 #, gcc-internal-format
26897 msgid "malformed spec function name"
26898 msgstr "nombre de la función de especificación malformado"
26899
26900 #. )
26901-#: gcc.c:5382
26902+#: gcc.c:5388
26903 #, gcc-internal-format
26904 msgid "no arguments for spec function"
26905 msgstr "no hay argumentos para la función de especificación"
26906
26907-#: gcc.c:5401
26908+#: gcc.c:5407
26909 #, gcc-internal-format
26910 msgid "malformed spec function arguments"
26911 msgstr "argumentos de la función de especificación malformados"
26912
26913-#: gcc.c:5647
26914+#: gcc.c:5668
26915 #, gcc-internal-format
26916 msgid "braced spec %qs is invalid at %qc"
26917 msgstr "la especificación entre llaves %qs es inválida en %qc"
26918
26919-#: gcc.c:5735
26920+#: gcc.c:5756
26921 #, gcc-internal-format
26922 msgid "braced spec body %qs is invalid"
26923 msgstr "el cuerpo de la especificación entre llaves %qs es inválido"
26924
26925-#: gcc.c:5984
26926+#: gcc.c:6005
26927 #, gcc-internal-format, gfc-internal-format
26928 msgid "%s: could not determine length of compare-debug file %s"
26929 msgstr "%s: no se puede determinar la longitud del fichero para comparar depuración %s"
26930
26931-#: gcc.c:5995
26932+#: gcc.c:6016
26933 #, gcc-internal-format, gfc-internal-format
26934 msgid "%s: -fcompare-debug failure (length)"
26935 msgstr "%s: falló -fcompare-debug (longitud)"
26936
26937-#: gcc.c:6005 gcc.c:6046
26938+#: gcc.c:6026 gcc.c:6067
26939 #, gcc-internal-format, gfc-internal-format
26940 msgid "%s: could not open compare-debug file %s"
26941 msgstr "%s: no se puede abrir el fichero para comparar depuración %s"
26942
26943-#: gcc.c:6025 gcc.c:6062
26944+#: gcc.c:6046 gcc.c:6083
26945 #, gcc-internal-format, gfc-internal-format
26946 msgid "%s: -fcompare-debug failure"
26947 msgstr "%s: falló -fcompare-debug"
26948
26949-#: gcc.c:6140
26950+#: gcc.c:6161
26951 #, gcc-internal-format
26952 msgid "atexit failed"
26953 msgstr "falló atexit"
26954
26955-#: gcc.c:6281
26956+#: gcc.c:6302
26957 #, gcc-internal-format
26958 msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC"
26959 msgstr "falla de especificación: más de un argumento para SYSROOT_SUFFIX_SPEC"
26960
26961-#: gcc.c:6304
26962+#: gcc.c:6325
26963 #, gcc-internal-format
26964 msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC"
26965 msgstr "falla de especificación: más de un argumento para SYSROOT_HEADERS_SUFFIX_SPEC"
26966
26967-#: gcc.c:6466
26968+#: gcc.c:6491
26969 #, gcc-internal-format
26970 msgid "unrecognized option %<-%s%>"
26971 msgstr "no se reconoce la opción %<-%s%>"
26972
26973 #. The error status indicates that only one set of fixed
26974 #. headers should be built.
26975-#: gcc.c:6543
26976+#: gcc.c:6568
26977 #, gcc-internal-format
26978 msgid "not configured with sysroot headers suffix"
26979 msgstr "no se configuró con el sufijo de encabezados sysroot"
26980
26981-#: gcc.c:6626
26982+#: gcc.c:6651
26983 #, gcc-internal-format
26984 msgid "no input files"
26985 msgstr "no hay ficheros de entrada"
26986
26987-#: gcc.c:6675
26988+#: gcc.c:6700
26989 #, gcc-internal-format
26990 msgid "cannot specify -o with -c, -S or -E with multiple files"
26991 msgstr "no se puede especificar -o con -c, -S o -E y con múltiples ficheros"
26992
26993-#: gcc.c:6705
26994+#: gcc.c:6730
26995 #, gcc-internal-format, gfc-internal-format
26996 msgid "%s: %s compiler not installed on this system"
26997 msgstr "%s: el compilador %s no está instalado en este sistema"
26998
26999-#: gcc.c:6727
27000+#: gcc.c:6752
27001 #, gcc-internal-format
27002 msgid "recompiling with -fcompare-debug"
27003 msgstr "se recompila con -fcompare-debug"
27004
27005-#: gcc.c:6743
27006+#: gcc.c:6768
27007 #, gcc-internal-format
27008 msgid "during -fcompare-debug recompilation"
27009 msgstr "durante la recompilación -fcompare-debug"
27010
27011-#: gcc.c:6752
27012+#: gcc.c:6777
27013 #, gcc-internal-format
27014 msgid "comparing final insns dumps"
27015 msgstr "se comparan volcados finales de insns"
27016
27017-#: gcc.c:6853
27018+#: gcc.c:6883
27019 #, gcc-internal-format, gfc-internal-format
27020 msgid "-fuse-linker-plugin, but %s not found"
27021 msgstr "-fuse-linker-plugin, pero no se encontró %s"
27022
27023-#: gcc.c:6883
27024+#: gcc.c:6915
27025 #, gcc-internal-format, gfc-internal-format
27026 msgid "%s: linker input file unused because linking not done"
27027 msgstr "%s: no se usó el fichero de entrada del enlazador porque no se hizo enlace"
27028
27029-#: gcc.c:6924
27030+#: gcc.c:6956
27031 #, gcc-internal-format, gfc-internal-format
27032 msgid "language %s not recognized"
27033 msgstr "no se reconoce el lenguaje %s"
27034
27035-#: gcc.c:7150
27036+#: gcc.c:7182
27037 #, gcc-internal-format
27038 msgid "multilib spec %qs is invalid"
27039 msgstr "la especificación multilib %qs es inválida"
27040
27041-#: gcc.c:7342
27042+#: gcc.c:7374
27043 #, gcc-internal-format
27044 msgid "multilib exclusions %qs is invalid"
27045 msgstr "las exclusiones multilib %qs son inválidas"
27046
27047-#: gcc.c:7400 gcc.c:7541
27048+#: gcc.c:7432 gcc.c:7573
27049 #, gcc-internal-format
27050 msgid "multilib select %qs is invalid"
27051 msgstr "la selección multilib %qs es inválida"
27052
27053-#: gcc.c:7579
27054+#: gcc.c:7611
27055 #, gcc-internal-format
27056 msgid "multilib exclusion %qs is invalid"
27057 msgstr "la exclusión multilib %qs es inválida"
27058
27059-#: gcc.c:7785
27060+#: gcc.c:7817
27061 #, gcc-internal-format
27062 msgid "environment variable %qs not defined"
27063 msgstr "no se definió la variable de ambiente %qs"
27064
27065-#: gcc.c:7897 gcc.c:7902
27066+#: gcc.c:7929 gcc.c:7934
27067 #, gcc-internal-format
27068 msgid "invalid version number %qs"
27069 msgstr "número de versión %qs inválido"
27070
27071-#: gcc.c:7945
27072+#: gcc.c:7977
27073 #, gcc-internal-format, gfc-internal-format
27074 msgid "too few arguments to %%:version-compare"
27075 msgstr "faltan argumentos para %%:version-compare"
27076
27077-#: gcc.c:7951
27078+#: gcc.c:7983
27079 #, gcc-internal-format, gfc-internal-format
27080 msgid "too many arguments to %%:version-compare"
27081 msgstr "demasiados argumentos para %%:version-compare"
27082
27083-#: gcc.c:7992
27084+#: gcc.c:8024
27085 #, gcc-internal-format
27086 msgid "unknown operator %qs in %%:version-compare"
27087 msgstr "operador %qs desconocido en %%:version-compare"
27088
27089-#: gcc.c:8115
27090+#: gcc.c:8147
27091 #, gcc-internal-format, gfc-internal-format
27092 msgid "too many arguments to %%:compare-debug-dump-opt"
27093 msgstr "demasiados argumentos para %%:compare-debug-dump-opt"
27094
27095-#: gcc.c:8183
27096+#: gcc.c:8215
27097 #, gcc-internal-format, gfc-internal-format
27098 msgid "too many arguments to %%:compare-debug-self-opt"
27099 msgstr "demasiados argumentos para %%:compare-debug-self-opt"
27100
27101-#: gcc.c:8218
27102+#: gcc.c:8250
27103 #, gcc-internal-format, gfc-internal-format
27104 msgid "too few arguments to %%:compare-debug-auxbase-opt"
27105 msgstr "faltan argumentos para %%:compare-debug-auxbase-opt"
27106
27107-#: gcc.c:8221
27108+#: gcc.c:8253
27109 #, gcc-internal-format, gfc-internal-format
27110 msgid "too many arguments to %%:compare-debug-auxbase-opt"
27111 msgstr "demasiados argumentos para %%:compare-debug-auxbase-opt"
27112
27113-#: gcc.c:8228
27114+#: gcc.c:8260
27115 #, gcc-internal-format, gfc-internal-format
27116 msgid "argument to %%:compare-debug-auxbase-opt does not end in .gk"
27117 msgstr "el argumento para %%:compare-debug-auxbase-opt no termina en .gk"
27118@@ -17367,67 +17517,67 @@
27119 msgid "gimple check: expected %s(%s), have %s(%s) in %s, at %s:%d"
27120 msgstr "revisión gimple: se esperaba %s(%s), se tiene %s(%s) en %s, en %s:%d"
27121
27122-#: gimplify.c:2510
27123+#: gimplify.c:2511
27124 #, gcc-internal-format
27125 msgid "using result of function returning %<void%>"
27126 msgstr "se usa el resultado de una función que devuelve %<void%>"
27127
27128-#: gimplify.c:5040
27129+#: gimplify.c:5041
27130 #, gcc-internal-format, gfc-internal-format
27131 msgid "invalid lvalue in asm output %d"
27132 msgstr "l-valor inválido en la salida asm %d"
27133
27134-#: gimplify.c:5156
27135+#: gimplify.c:5157
27136 #, gcc-internal-format, gfc-internal-format
27137 msgid "non-memory input %d must stay in memory"
27138 msgstr "la entrada que no es de memoria %d debe permanecer en memoria"
27139
27140-#: gimplify.c:5178
27141+#: gimplify.c:5179
27142 #, gcc-internal-format, gfc-internal-format
27143 msgid "memory input %d is not directly addressable"
27144 msgstr "la entrada de memoria %d no es directamente direccionable"
27145
27146-#: gimplify.c:5673
27147+#: gimplify.c:5674
27148 #, gcc-internal-format
27149 msgid "threadprivate variable %qE used in untied task"
27150 msgstr "se usó la variable threadprivate %qE en una tarea sin atar"
27151
27152-#: gimplify.c:5675 gimplify.c:5737
27153+#: gimplify.c:5676 gimplify.c:5738
27154 #, gcc-internal-format
27155 msgid "enclosing task"
27156 msgstr "tarea contenedora"
27157
27158-#: gimplify.c:5734
27159+#: gimplify.c:5735
27160 #, gcc-internal-format
27161 msgid "%qE not specified in enclosing parallel"
27162 msgstr "no se especificó %qE en el paralelo que lo contiene"
27163
27164-#: gimplify.c:5739
27165+#: gimplify.c:5740
27166 #, gcc-internal-format
27167 msgid "enclosing parallel"
27168 msgstr "paralelo contenedor"
27169
27170-#: gimplify.c:5844
27171+#: gimplify.c:5845
27172 #, gcc-internal-format
27173 msgid "iteration variable %qE should be private"
27174 msgstr "la variable de iteración %qE debe ser private"
27175
27176-#: gimplify.c:5858
27177+#: gimplify.c:5859
27178 #, gcc-internal-format
27179 msgid "iteration variable %qE should not be firstprivate"
27180 msgstr "la variable de iteración %qE no debe ser firstprivate"
27181
27182-#: gimplify.c:5861
27183+#: gimplify.c:5862
27184 #, gcc-internal-format
27185 msgid "iteration variable %qE should not be reduction"
27186 msgstr "la variable de iteración %qE no debe ser reduction"
27187
27188-#: gimplify.c:6024
27189+#: gimplify.c:6025
27190 #, gcc-internal-format
27191 msgid "%s variable %qE is private in outer context"
27192 msgstr "la variable %s %qE es private en el contexto externo"
27193
27194-#: gimplify.c:7778
27195+#: gimplify.c:7787
27196 #, gcc-internal-format
27197 msgid "gimplification failed"
27198 msgstr "falló la gimplificación"
27199@@ -17661,18 +17811,18 @@
27200 msgid "critical region may not be nested inside a critical region with the same name"
27201 msgstr "la región crítica puede no estar bien anidada dentro de una región crítica con el mismo nombre"
27202
27203-#: omp-low.c:7011 cp/decl.c:2880 cp/parser.c:9853 cp/parser.c:9873
27204+#: omp-low.c:7012 cp/decl.c:2885 cp/parser.c:9853 cp/parser.c:9873
27205 #, gcc-internal-format
27206 msgid "invalid exit from OpenMP structured block"
27207 msgstr "salida inválida de un bloque estructurado OpenMP"
27208
27209-#: omp-low.c:7013 omp-low.c:7018
27210+#: omp-low.c:7014 omp-low.c:7019
27211 #, gcc-internal-format
27212 msgid "invalid entry to OpenMP structured block"
27213 msgstr "entrada inválida a un bloque estructurado OpenMP"
27214
27215 #. Otherwise, be vague and lazy, but efficient.
27216-#: omp-low.c:7021
27217+#: omp-low.c:7022
27218 #, gcc-internal-format
27219 msgid "invalid branch to/from an OpenMP structured block"
27220 msgstr "ramificación inválida desde/para un bloque estructurado OpenMP"
27221@@ -17768,12 +17918,12 @@
27222 msgid "section anchors must be disabled when toplevel reorder is disabled"
27223 msgstr "las anclas de seccions se deben desactivar cando el reordenamiento de nivel principal se desactiva"
27224
27225-#: opts.c:721 config/darwin.c:3002 config/sh/sh.c:804
27226+#: opts.c:721 config/darwin.c:3002 config/sh/sh.c:809
27227 #, gcc-internal-format
27228 msgid "-freorder-blocks-and-partition does not work with exceptions on this architecture"
27229 msgstr "-freorder-blocks-and-partition no funciona con excepciones en esta arquitectura"
27230
27231-#: opts.c:736 config/sh/sh.c:812
27232+#: opts.c:736 config/sh/sh.c:817
27233 #, gcc-internal-format
27234 msgid "-freorder-blocks-and-partition does not support unwind info on this architecture"
27235 msgstr "-freorder-blocks-and-partition no admite información de desenredo en esta arquitectura"
27236@@ -17911,7 +18061,7 @@
27237
27238 #: passes.c:712
27239 #, gcc-internal-format, gfc-internal-format
27240-msgid "unknown pass %s specified in -fdisble"
27241+msgid "unknown pass %s specified in -fdisable"
27242 msgstr "se especificó el paso desconocido %s en -fdisable"
27243
27244 #: passes.c:739 passes.c:829
27245@@ -18127,49 +18277,49 @@
27246 msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
27247 msgstr "validate_value_data: [%u] Registro no vacío en la cadena (%s %u %i)"
27248
27249-#: reginfo.c:820
27250+#: reginfo.c:822
27251 #, gcc-internal-format
27252 msgid "can%'t use %qs as a call-saved register"
27253 msgstr "no se puede usar %qs como un registro guardado de llamada"
27254
27255-#: reginfo.c:824
27256+#: reginfo.c:826
27257 #, gcc-internal-format
27258 msgid "can%'t use %qs as a call-used register"
27259 msgstr "no se puede usar %qs como un registro usado de llamada"
27260
27261-#: reginfo.c:836
27262+#: reginfo.c:838
27263 #, gcc-internal-format
27264 msgid "can%'t use %qs as a fixed register"
27265 msgstr "no se puede usar %qs como un registro fijo"
27266
27267-#: reginfo.c:862 config/ia64/ia64.c:5749 config/ia64/ia64.c:5756
27268-#: config/pa/pa.c:424 config/pa/pa.c:431 config/sh/sh.c:8744
27269-#: config/sh/sh.c:8751 config/spu/spu.c:5198 config/spu/spu.c:5205
27270+#: reginfo.c:864 config/ia64/ia64.c:5749 config/ia64/ia64.c:5756
27271+#: config/pa/pa.c:424 config/pa/pa.c:431 config/sh/sh.c:8749
27272+#: config/sh/sh.c:8756 config/spu/spu.c:5198 config/spu/spu.c:5205
27273 #, gcc-internal-format, gfc-internal-format
27274 msgid "unknown register name: %s"
27275 msgstr "nombre de registro desconocido: %s"
27276
27277-#: reginfo.c:875
27278+#: reginfo.c:877
27279 #, gcc-internal-format
27280 msgid "stack register used for global register variable"
27281 msgstr "se usó un nombre de registro para una variable de registro global"
27282
27283-#: reginfo.c:881
27284+#: reginfo.c:883
27285 #, gcc-internal-format
27286 msgid "global register variable follows a function definition"
27287 msgstr "la variable de registro global después de una definición de función"
27288
27289-#: reginfo.c:886
27290+#: reginfo.c:888
27291 #, gcc-internal-format
27292 msgid "register of %qD used for multiple global register variables"
27293 msgstr "se usó el registro de %qD para múltiples variables de registro globales"
27294
27295-#: reginfo.c:889
27296+#: reginfo.c:891
27297 #, gcc-internal-format
27298 msgid "conflicts with %qD"
27299 msgstr "genera un conflicto con %qD"
27300
27301-#: reginfo.c:894
27302+#: reginfo.c:896
27303 #, gcc-internal-format
27304 msgid "call-clobbered register used for global register variable"
27305 msgstr "se usó un registro de llamada alterada para una variable de registro global"
27306@@ -18414,7 +18564,7 @@
27307 msgid "packed attribute is unnecessary for %q+D"
27308 msgstr "el atributo packed es innecesario para %q+D"
27309
27310-#: stor-layout.c:1153
27311+#: stor-layout.c:1152
27312 #, gcc-internal-format
27313 msgid "padding struct to align %q+D"
27314 msgstr "estructura de relleno para alinear %q+D"
27315@@ -18459,47 +18609,47 @@
27316 msgid "__builtin_saveregs not supported by this target"
27317 msgstr "no se admite __builtin_saveregs en este objetivo"
27318
27319-#: targhooks.c:806
27320+#: targhooks.c:807
27321 #, gcc-internal-format
27322 msgid "nested functions not supported on this target"
27323 msgstr "no se admiten funciones anidadas en este objetivo"
27324
27325-#: targhooks.c:819
27326+#: targhooks.c:820
27327 #, gcc-internal-format
27328 msgid "nested function trampolines not supported on this target"
27329 msgstr "no se admiten trampolines de funciones anidadas para este objetivo"
27330
27331-#: targhooks.c:1153
27332+#: targhooks.c:1154
27333 #, gcc-internal-format
27334 msgid "target attribute is not supported on this machine"
27335 msgstr "el atributo target no se admite en esta plataforma"
27336
27337-#: targhooks.c:1163
27338+#: targhooks.c:1164
27339 #, gcc-internal-format
27340 msgid "#pragma GCC target is not supported for this machine"
27341 msgstr "No se admite #pragma GCC target en este objetivo"
27342
27343-#: tlink.c:481
27344+#: tlink.c:492
27345 #, gcc-internal-format
27346 msgid "removing .rpo file: %m"
27347 msgstr "se elimina el fichero .rpo: %m"
27348
27349-#: tlink.c:483
27350+#: tlink.c:494
27351 #, gcc-internal-format
27352 msgid "renaming .rpo file: %m"
27353 msgstr "se renombra el fichero .rpo: %m"
27354
27355-#: tlink.c:487
27356+#: tlink.c:498
27357 #, gcc-internal-format, gfc-internal-format
27358 msgid "repository file '%s' does not contain command-line arguments"
27359 msgstr "el fichero de repositorio '%s' no contiene argumentos de línea de órdenes"
27360
27361-#: tlink.c:735
27362+#: tlink.c:624
27363 #, gcc-internal-format, gfc-internal-format
27364 msgid "'%s' was assigned to '%s', but was not defined during recompilation, or vice versa"
27365 msgstr "'%s' se asignó a '%s', pero no se definió durante la recompilación, o viceversa"
27366
27367-#: tlink.c:805
27368+#: tlink.c:859
27369 #, gcc-internal-format, gfc-internal-format
27370 msgid "ld returned %d exit status"
27371 msgstr "ld devolvió el estado de salida %d"
27372@@ -18664,7 +18814,7 @@
27373 msgid "%<transaction_may_cancel_outer%> function call not within outer transaction or %<transaction_may_cancel_outer%>"
27374 msgstr "la llamada a la función %<transaction_may_cancel_outer%> no está en una transacción más externa o %<transaction_may_cancel_outer%>"
27375
27376-#: trans-mem.c:664 trans-mem.c:4137
27377+#: trans-mem.c:664 trans-mem.c:4191
27378 #, gcc-internal-format
27379 msgid "unsafe function call %qD within atomic transaction"
27380 msgstr "llamada a función %qD insegura dentro de una transacción atómica"
27381@@ -18679,7 +18829,7 @@
27382 msgid "unsafe indirect function call within atomic transaction"
27383 msgstr "llamada a función indirecta insegura dentro de una transacción atómica"
27384
27385-#: trans-mem.c:682 trans-mem.c:4070
27386+#: trans-mem.c:682 trans-mem.c:4124
27387 #, gcc-internal-format
27388 msgid "unsafe function call %qD within %<transaction_safe%> function"
27389 msgstr "llamada a función %qD insegura dentro de la función %<transaction_safe%>"
27390@@ -18694,7 +18844,7 @@
27391 msgid "unsafe indirect function call within %<transaction_safe%> function"
27392 msgstr "llamada a función indirecta insegura dentro de la función %<transaction_safe%>"
27393
27394-#: trans-mem.c:707 trans-mem.c:4109
27395+#: trans-mem.c:707 trans-mem.c:4163
27396 #, gcc-internal-format
27397 msgid "asm not allowed in atomic transaction"
27398 msgstr "no se permite asm en una transacción atómica"
27399@@ -18729,6 +18879,11 @@
27400 msgid "outer transaction in %<transaction_safe%> function"
27401 msgstr "transacción más externa en la función %<transaction_safe%>"
27402
27403+#: trans-mem.c:3789
27404+#, gcc-internal-format
27405+msgid "%Kasm not allowed in %<transaction_safe%> function"
27406+msgstr "%Kno se permite asm en una función %<transaction_safe%>"
27407+
27408 #: tree-cfg.c:2616
27409 #, gcc-internal-format
27410 msgid "constant not recomputed when ADDR_EXPR changed"
27411@@ -18749,7 +18904,7 @@
27412 msgid "SSA name in freelist but still referenced"
27413 msgstr "hay un nombre SSA en la lista libre, pero aún está referenciado"
27414
27415-#: tree-cfg.c:2667 tree-cfg.c:3953
27416+#: tree-cfg.c:2667 tree-cfg.c:3950
27417 #, gcc-internal-format
27418 msgid "INDIRECT_REF in gimple IL"
27419 msgstr "INDIRECT_REF en gimple IL"
27420@@ -18989,347 +19144,347 @@
27421 msgid "invalid operand in unary operation"
27422 msgstr "operando inválido en la operación unaria"
27423
27424-#: tree-cfg.c:3369
27425+#: tree-cfg.c:3366
27426 #, gcc-internal-format
27427 msgid "invalid types in nop conversion"
27428 msgstr "tipos inválidos en la conversión nop"
27429
27430-#: tree-cfg.c:3384
27431+#: tree-cfg.c:3381
27432 #, gcc-internal-format
27433 msgid "invalid types in address space conversion"
27434 msgstr "tipos inválidos en la conversión nop"
27435
27436-#: tree-cfg.c:3398
27437+#: tree-cfg.c:3395
27438 #, gcc-internal-format
27439 msgid "invalid types in fixed-point conversion"
27440 msgstr "tipos inválidos en la conversión de coma fija"
27441
27442-#: tree-cfg.c:3413
27443+#: tree-cfg.c:3410
27444 #, gcc-internal-format
27445 msgid "invalid types in conversion to floating point"
27446 msgstr "tipos inválidos en la conversión a coma flotante"
27447
27448-#: tree-cfg.c:3428
27449+#: tree-cfg.c:3425
27450 #, gcc-internal-format
27451 msgid "invalid types in conversion to integer"
27452 msgstr "tipos inválidos en la conversión a entero"
27453
27454-#: tree-cfg.c:3462
27455+#: tree-cfg.c:3459
27456 #, gcc-internal-format
27457 msgid "non-trivial conversion in unary operation"
27458 msgstr "conversión que no es trivial en la operación unaria"
27459
27460-#: tree-cfg.c:3487
27461+#: tree-cfg.c:3484
27462 #, gcc-internal-format
27463 msgid "non-register as LHS of binary operation"
27464 msgstr "el LHS de una operación binaria no es un registro"
27465
27466-#: tree-cfg.c:3494
27467+#: tree-cfg.c:3491
27468 #, gcc-internal-format
27469 msgid "invalid operands in binary operation"
27470 msgstr "operandos inválidos en la operación binaria"
27471
27472-#: tree-cfg.c:3509
27473+#: tree-cfg.c:3506
27474 #, gcc-internal-format
27475 msgid "type mismatch in complex expression"
27476 msgstr "los tipos de datos no coinciden en la expresión compleja"
27477
27478-#: tree-cfg.c:3538
27479+#: tree-cfg.c:3535
27480 #, gcc-internal-format
27481 msgid "type mismatch in shift expression"
27482 msgstr "los tipos de datos no coinciden en la expresión shift"
27483
27484-#: tree-cfg.c:3561
27485+#: tree-cfg.c:3558
27486 #, gcc-internal-format
27487 msgid "type mismatch in vector shift expression"
27488 msgstr "los tipos de datos no coinciden en la expresión shift de vector"
27489
27490-#: tree-cfg.c:3574
27491+#: tree-cfg.c:3571
27492 #, gcc-internal-format
27493 msgid "non-element sized vector shift of floating point vector"
27494 msgstr "desplazamiento de vector de tamaño que no es elemento de vector de coma flotante"
27495
27496-#: tree-cfg.c:3588 tree-cfg.c:3609
27497+#: tree-cfg.c:3585 tree-cfg.c:3606
27498 #, gcc-internal-format
27499 msgid "type mismatch in widening vector shift expression"
27500 msgstr "los tipos no coinciden en la expresión shift de ensanchamiento de vector"
27501
27502-#: tree-cfg.c:3631
27503+#: tree-cfg.c:3628
27504 #, gcc-internal-format
27505 msgid "invalid non-vector operands to vector valued plus"
27506 msgstr "operandos que no son vectores inválidos para un vector valuado con más"
27507
27508-#: tree-cfg.c:3651
27509+#: tree-cfg.c:3648
27510 #, gcc-internal-format
27511 msgid "invalid (pointer) operands to plus/minus"
27512 msgstr "operandos (punteros) inválidos para más/menos"
27513
27514-#: tree-cfg.c:3666
27515+#: tree-cfg.c:3663
27516 #, gcc-internal-format
27517 msgid "type mismatch in pointer plus expression"
27518 msgstr "los tipos de datos no coinciden en la expresión puntero más"
27519
27520-#: tree-cfg.c:3743
27521+#: tree-cfg.c:3740
27522 #, gcc-internal-format
27523 msgid "type mismatch in binary expression"
27524 msgstr "los tipos de datos no coinciden en la expresión binaria"
27525
27526-#: tree-cfg.c:3771
27527+#: tree-cfg.c:3768
27528 #, gcc-internal-format
27529 msgid "non-register as LHS of ternary operation"
27530 msgstr "el LHS de una operación terniaria no es un registro"
27531
27532-#: tree-cfg.c:3780
27533+#: tree-cfg.c:3777
27534 #, gcc-internal-format
27535 msgid "invalid operands in ternary operation"
27536 msgstr "operandos inválidos en la operación terniaria"
27537
27538-#: tree-cfg.c:3796
27539+#: tree-cfg.c:3793
27540 #, gcc-internal-format
27541 msgid "type mismatch in widening multiply-accumulate expression"
27542 msgstr "los tipos no coinciden en la expresión de ensanchado multiplicar-acumular"
27543
27544-#: tree-cfg.c:3810
27545+#: tree-cfg.c:3807
27546 #, gcc-internal-format
27547 msgid "type mismatch in fused multiply-add expression"
27548 msgstr "los tipos no coinciden en la expresión fusionada multiplicar-sumar"
27549
27550-#: tree-cfg.c:3836
27551+#: tree-cfg.c:3833
27552 #, gcc-internal-format
27553 msgid "type mismatch in vector permute expression"
27554 msgstr "los tipos no coinciden en la expresión de permutación de vector"
27555
27556-#: tree-cfg.c:3848
27557+#: tree-cfg.c:3845
27558 #, gcc-internal-format
27559 msgid "vector types expected in vector permute expression"
27560 msgstr "se esperaban tipos vector en una expresión de permutación de vector"
27561
27562-#: tree-cfg.c:3862
27563+#: tree-cfg.c:3859
27564 #, gcc-internal-format
27565 msgid "vectors with different element number found in vector permute expression"
27566 msgstr "se encontraron vectores con número de elementos diferentes en la expresión de permutación"
27567
27568-#: tree-cfg.c:3875
27569+#: tree-cfg.c:3872
27570 #, gcc-internal-format
27571 msgid "invalid mask type in vector permute expression"
27572 msgstr "tipo de máscara inválido en la expresión de permutación de vector"
27573
27574-#: tree-cfg.c:3911
27575+#: tree-cfg.c:3908
27576 #, gcc-internal-format
27577 msgid "non-trivial conversion at assignment"
27578 msgstr "conversión que no es trivial en la asignación"
27579
27580-#: tree-cfg.c:3928
27581+#: tree-cfg.c:3925
27582 #, gcc-internal-format
27583 msgid "invalid operand in unary expression"
27584 msgstr "operando inválido en la expresión unaria"
27585
27586-#: tree-cfg.c:3942
27587+#: tree-cfg.c:3939
27588 #, gcc-internal-format
27589 msgid "type mismatch in address expression"
27590 msgstr "no coincide el tipo en la expresión de dirección"
27591
27592-#: tree-cfg.c:3968 tree-cfg.c:3994
27593+#: tree-cfg.c:3965 tree-cfg.c:3991
27594 #, gcc-internal-format
27595 msgid "invalid rhs for gimple memory store"
27596 msgstr "rhs inválido para el almacenamiento de memoria gimple"
27597
27598-#: tree-cfg.c:4056
27599+#: tree-cfg.c:4053
27600 #, gcc-internal-format
27601 msgid "invalid operand in return statement"
27602 msgstr "operando inválido en la declaración return"
27603
27604-#: tree-cfg.c:4070
27605+#: tree-cfg.c:4067
27606 #, gcc-internal-format
27607 msgid "invalid conversion in return statement"
27608 msgstr "conversión inválida en la declaración return"
27609
27610-#: tree-cfg.c:4094
27611+#: tree-cfg.c:4091
27612 #, gcc-internal-format
27613 msgid "goto destination is neither a label nor a pointer"
27614 msgstr "el destino de goto no es una etiqueta ni un puntero"
27615
27616-#: tree-cfg.c:4109
27617+#: tree-cfg.c:4106
27618 #, gcc-internal-format
27619 msgid "invalid operand to switch statement"
27620 msgstr "operando inválido para la declaración switch"
27621
27622-#: tree-cfg.c:4151
27623+#: tree-cfg.c:4148
27624 #, gcc-internal-format
27625 msgid "incorrect entry in label_to_block_map"
27626 msgstr "entrada incorrecta en label_to_block_map"
27627
27628-#: tree-cfg.c:4161
27629+#: tree-cfg.c:4158
27630 #, gcc-internal-format
27631 msgid "incorrect setting of landing pad number"
27632 msgstr "definición incorrecta del número de relleno de aterrizaje"
27633
27634-#: tree-cfg.c:4189
27635+#: tree-cfg.c:4186
27636 #, gcc-internal-format
27637 msgid "invalid comparison code in gimple cond"
27638 msgstr "código de comparación inválido en la condición gimple"
27639
27640-#: tree-cfg.c:4197
27641+#: tree-cfg.c:4194
27642 #, gcc-internal-format
27643 msgid "invalid labels in gimple cond"
27644 msgstr "etiquetas inválidas en la condición gimple"
27645
27646-#: tree-cfg.c:4258 tree-cfg.c:4267
27647+#: tree-cfg.c:4255 tree-cfg.c:4264
27648 #, gcc-internal-format
27649 msgid "invalid PHI result"
27650 msgstr "resultado PHI inválido"
27651
27652-#: tree-cfg.c:4277
27653+#: tree-cfg.c:4274
27654 #, gcc-internal-format
27655 msgid "missing PHI def"
27656 msgstr "falta la definición PHI"
27657
27658-#: tree-cfg.c:4291
27659+#: tree-cfg.c:4288
27660 #, gcc-internal-format
27661 msgid "invalid PHI argument"
27662 msgstr "argumento PHI inválido"
27663
27664-#: tree-cfg.c:4298
27665+#: tree-cfg.c:4295
27666 #, gcc-internal-format, gfc-internal-format
27667 msgid "incompatible types in PHI argument %u"
27668 msgstr "tipos incompatibles en el argumento PHI %u"
27669
27670-#: tree-cfg.c:4382 tree-cfg.c:4578
27671+#: tree-cfg.c:4379 tree-cfg.c:4575
27672 #, gcc-internal-format
27673 msgid "verify_gimple failed"
27674 msgstr "falló verify_gimple"
27675
27676-#: tree-cfg.c:4443
27677+#: tree-cfg.c:4440
27678 #, gcc-internal-format
27679 msgid "dead STMT in EH table"
27680 msgstr "STMT muerto en la tabla EH"
27681
27682-#: tree-cfg.c:4477
27683+#: tree-cfg.c:4474
27684 #, gcc-internal-format
27685 msgid "gimple_bb (phi) is set to a wrong basic block"
27686 msgstr "se estableció gimple_bb (phi) a un bloque básico erróneo"
27687
27688-#: tree-cfg.c:4489 tree-cfg.c:4523
27689+#: tree-cfg.c:4486 tree-cfg.c:4520
27690 #, gcc-internal-format
27691 msgid "incorrect sharing of tree nodes"
27692 msgstr "compartición incorrecta de nodos de árbol"
27693
27694-#: tree-cfg.c:4512
27695+#: tree-cfg.c:4509
27696 #, gcc-internal-format
27697 msgid "gimple_bb (stmt) is set to a wrong basic block"
27698 msgstr "se estableció gimple_bb (stmt) a un bloque básico erróneo"
27699
27700-#: tree-cfg.c:4538
27701+#: tree-cfg.c:4535
27702 #, gcc-internal-format
27703 msgid "in statement"
27704 msgstr "en la sentencia"
27705
27706-#: tree-cfg.c:4553
27707+#: tree-cfg.c:4550
27708 #, gcc-internal-format
27709 msgid "statement marked for throw, but doesn%'t"
27710 msgstr "se marcó la sentencia para throw, pero no lo hace"
27711
27712-#: tree-cfg.c:4560
27713+#: tree-cfg.c:4557
27714 #, gcc-internal-format
27715 msgid "statement marked for throw in middle of block"
27716 msgstr "se marcó la sentencia para throw en medio del bloque"
27717
27718-#: tree-cfg.c:4601
27719+#: tree-cfg.c:4598
27720 #, gcc-internal-format
27721 msgid "ENTRY_BLOCK has IL associated with it"
27722 msgstr "ENTRY_BLOCK tiene IL asociado con él"
27723
27724-#: tree-cfg.c:4607
27725+#: tree-cfg.c:4604
27726 #, gcc-internal-format
27727 msgid "EXIT_BLOCK has IL associated with it"
27728 msgstr "EXIT_BLOCK tiene IL asociado con él"
27729
27730-#: tree-cfg.c:4614
27731+#: tree-cfg.c:4611
27732 #, gcc-internal-format, gfc-internal-format
27733 msgid "fallthru to exit from bb %d"
27734 msgstr "caida para salir del bb %d"
27735
27736-#: tree-cfg.c:4638
27737+#: tree-cfg.c:4635
27738 #, gcc-internal-format
27739 msgid "nonlocal label "
27740 msgstr "etiqueta no local "
27741
27742-#: tree-cfg.c:4647
27743+#: tree-cfg.c:4644
27744 #, gcc-internal-format
27745 msgid "EH landing pad label "
27746 msgstr "etiqueta de relleno de aterrizaje EH "
27747
27748-#: tree-cfg.c:4656 tree-cfg.c:4665 tree-cfg.c:4690
27749+#: tree-cfg.c:4653 tree-cfg.c:4662 tree-cfg.c:4687
27750 #, gcc-internal-format
27751 msgid "label "
27752 msgstr "etiqueta "
27753
27754-#: tree-cfg.c:4680
27755+#: tree-cfg.c:4677
27756 #, gcc-internal-format, gfc-internal-format
27757 msgid "control flow in the middle of basic block %d"
27758 msgstr "control de flujo enmedio del bloque básico %d"
27759
27760-#: tree-cfg.c:4713
27761+#: tree-cfg.c:4710
27762 #, gcc-internal-format, gfc-internal-format
27763 msgid "fallthru edge after a control statement in bb %d"
27764 msgstr "borde de caída después de una sentencia de control en bb %d"
27765
27766-#: tree-cfg.c:4726
27767+#: tree-cfg.c:4723
27768 #, gcc-internal-format, gfc-internal-format
27769 msgid "true/false edge after a non-GIMPLE_COND in bb %d"
27770 msgstr "borde verdadero/falso después de una expresión que no es GIMPLE_COND en bb %d"
27771
27772-#: tree-cfg.c:4749 tree-cfg.c:4771 tree-cfg.c:4788 tree-cfg.c:4857
27773+#: tree-cfg.c:4746 tree-cfg.c:4768 tree-cfg.c:4785 tree-cfg.c:4854
27774 #, gcc-internal-format, gfc-internal-format
27775 msgid "wrong outgoing edge flags at end of bb %d"
27776 msgstr "banderas de borde de salida erróneas al final del bb %d"
27777
27778-#: tree-cfg.c:4759
27779+#: tree-cfg.c:4756
27780 #, gcc-internal-format, gfc-internal-format
27781 msgid "explicit goto at end of bb %d"
27782 msgstr "goto explícito al final del bb %d"
27783
27784-#: tree-cfg.c:4793
27785+#: tree-cfg.c:4790
27786 #, gcc-internal-format, gfc-internal-format
27787 msgid "return edge does not point to exit in bb %d"
27788 msgstr "el borde de devolución no apunta a exit en el bb %d"
27789
27790-#: tree-cfg.c:4823
27791+#: tree-cfg.c:4820
27792 #, gcc-internal-format
27793 msgid "found default case not at the start of case vector"
27794 msgstr "se encontró un case por defecto que no está al inicio del vector case"
27795
27796-#: tree-cfg.c:4831
27797+#: tree-cfg.c:4828
27798 #, gcc-internal-format
27799 msgid "case labels not sorted: "
27800 msgstr "las etiquetas case no están ordenadas:"
27801
27802-#: tree-cfg.c:4848
27803+#: tree-cfg.c:4845
27804 #, gcc-internal-format, gfc-internal-format
27805 msgid "extra outgoing edge %d->%d"
27806 msgstr "borde de salida extra %d->%d"
27807
27808-#: tree-cfg.c:4871
27809+#: tree-cfg.c:4868
27810 #, gcc-internal-format, gfc-internal-format
27811 msgid "missing edge %i->%i"
27812 msgstr "falta el borde %i->%i"
27813
27814-#: tree-cfg.c:7527
27815+#: tree-cfg.c:7524
27816 #, gcc-internal-format
27817 msgid "%<noreturn%> function does return"
27818 msgstr "la función %<noreturn%> devuelve"
27819
27820-#: tree-cfg.c:7547
27821+#: tree-cfg.c:7544
27822 #, gcc-internal-format
27823 msgid "control reaches end of non-void function"
27824 msgstr "el control alcanza el final de una función que no es void"
27825
27826-#: tree-cfg.c:7685
27827+#: tree-cfg.c:7682
27828 #, gcc-internal-format
27829 msgid "ignoring return value of %qD, declared with attribute warn_unused_result"
27830 msgstr "se descarta el valor de devolución de %qD, se declaró con el atributo warn_unused_result"
27831
27832-#: tree-cfg.c:7690
27833+#: tree-cfg.c:7687
27834 #, gcc-internal-format
27835 msgid "ignoring return value of function declared with attribute warn_unused_result"
27836 msgstr "se descarta el valor de devolución de la función declarada con atributo warn_unused_result"
27837@@ -19479,12 +19634,12 @@
27838 msgid "mudflap: this language is not supported"
27839 msgstr "mudflap: este lenguaje no se admite"
27840
27841-#: tree-optimize.c:448
27842+#: tree-optimize.c:450
27843 #, gcc-internal-format
27844 msgid "size of return value of %q+D is %u bytes"
27845 msgstr "el tamaño del valor de devolución de %q+D es de %u bytes"
27846
27847-#: tree-optimize.c:451
27848+#: tree-optimize.c:453
27849 #, gcc-internal-format
27850 msgid "size of return value of %q+D is larger than %wd bytes"
27851 msgstr "el tamaño del valor de devolución de %q+D es más grande que %wd bytes"
27852@@ -19500,52 +19655,52 @@
27853 msgid "unimplemented functionality"
27854 msgstr "funcionalidad sin implementar"
27855
27856-#: tree-ssa-operands.c:1116
27857+#: tree-ssa-operands.c:1127
27858 #, gcc-internal-format
27859 msgid "virtual definition of statement not up-to-date"
27860 msgstr "la definición virtual de la declaración no está actualizada"
27861
27862-#: tree-ssa-operands.c:1123
27863+#: tree-ssa-operands.c:1134
27864 #, gcc-internal-format
27865 msgid "virtual def operand missing for stmt"
27866 msgstr "falta el operando def virtual para stmt"
27867
27868-#: tree-ssa-operands.c:1133
27869+#: tree-ssa-operands.c:1144
27870 #, gcc-internal-format
27871 msgid "virtual use of statement not up-to-date"
27872 msgstr "el uso de la declaración virtual no está actualizada"
27873
27874-#: tree-ssa-operands.c:1140
27875+#: tree-ssa-operands.c:1151
27876 #, gcc-internal-format
27877 msgid "virtual use operand missing for stmt"
27878 msgstr "falta el operando use virtual para stmt"
27879
27880-#: tree-ssa-operands.c:1156
27881+#: tree-ssa-operands.c:1167
27882 #, gcc-internal-format
27883 msgid "excess use operand for stmt"
27884 msgstr "operando use en exceso para stmt"
27885
27886-#: tree-ssa-operands.c:1164
27887+#: tree-ssa-operands.c:1175
27888 #, gcc-internal-format
27889 msgid "use operand missing for stmt"
27890 msgstr "falta el operando use para stmt"
27891
27892-#: tree-ssa-operands.c:1181
27893+#: tree-ssa-operands.c:1192
27894 #, gcc-internal-format
27895 msgid "excess def operand for stmt"
27896 msgstr "operando def en exceso para stmt"
27897
27898-#: tree-ssa-operands.c:1189
27899+#: tree-ssa-operands.c:1200
27900 #, gcc-internal-format
27901 msgid "def operand missing for stmt"
27902 msgstr "falta el operando def para stmt"
27903
27904-#: tree-ssa-operands.c:1196
27905+#: tree-ssa-operands.c:1207
27906 #, gcc-internal-format
27907 msgid "stmt volatile flag not up-to-date"
27908 msgstr "la opción volatile de stmt no está actualizada"
27909
27910-#: tree-ssa-uninit.c:1958 tree-ssa.c:1655
27911+#: tree-ssa-uninit.c:1958 tree-ssa.c:1653
27912 #, gcc-internal-format
27913 msgid "%qD may be used uninitialized in this function"
27914 msgstr "puede ser que se utilice %qD sin inicializar en esta función"
27915@@ -19595,7 +19750,7 @@
27916 msgid "SSA_NAME created in two different blocks %i and %i"
27917 msgstr "se creó SSA_NAME en dos bloques diferentes %i y %i"
27918
27919-#: tree-ssa.c:709 tree-ssa.c:1023
27920+#: tree-ssa.c:709 tree-ssa.c:1021
27921 #, gcc-internal-format
27922 msgid "SSA_NAME_DEF_STMT is wrong"
27923 msgstr "SSA_NAME_DEF_STMT es erróneo"
27924@@ -19650,37 +19805,37 @@
27925 msgid "wrong edge %d->%d for PHI argument"
27926 msgstr "borde erróneo %d->%d para el argumento PHI"
27927
27928-#: tree-ssa.c:970
27929+#: tree-ssa.c:968
27930 #, gcc-internal-format, gfc-internal-format
27931 msgid "AUX pointer initialized for edge %d->%d"
27932 msgstr "se inicializó el puntero AUX para el borde %d->%d"
27933
27934-#: tree-ssa.c:995
27935+#: tree-ssa.c:993
27936 #, gcc-internal-format
27937 msgid "stmt (%p) marked modified after optimization pass: "
27938 msgstr "se modificó el stmt (%p) marcado después del paso de optimización: "
27939
27940-#: tree-ssa.c:1052
27941+#: tree-ssa.c:1050
27942 #, gcc-internal-format
27943 msgid "verify_ssa failed"
27944 msgstr "falló verify_ssa"
27945
27946-#: tree-ssa.c:1618 varasm.c:321
27947+#: tree-ssa.c:1616 varasm.c:321
27948 #, gcc-internal-format
27949 msgid "%qD was declared here"
27950 msgstr "%qD se declaró aquí"
27951
27952-#: tree-ssa.c:1650
27953+#: tree-ssa.c:1648
27954 #, gcc-internal-format
27955 msgid "%qD is used uninitialized in this function"
27956 msgstr "se utiliza %qD sin inicializar en esta función"
27957
27958-#: tree-ssa.c:1687
27959+#: tree-ssa.c:1685
27960 #, gcc-internal-format
27961 msgid "%qE is used uninitialized in this function"
27962 msgstr "se utiliza %qE sin inicializar en esta función"
27963
27964-#: tree-ssa.c:1692
27965+#: tree-ssa.c:1690
27966 #, gcc-internal-format
27967 msgid "%qE may be used uninitialized in this function"
27968 msgstr "puede ser que se utilice %qE sin inicializar en esta función"
27969@@ -19780,22 +19935,22 @@
27970 msgid "ignoring attributes applied to %qT after definition"
27971 msgstr "se descartan los atributos aplicados al %qT después de la definición"
27972
27973-#: tree.c:5457
27974+#: tree.c:5459
27975 #, gcc-internal-format
27976 msgid "%q+D already declared with dllexport attribute: dllimport ignored"
27977 msgstr "%q+D se declaró anteriormente con el atributo dllimport: se descarta dllimport"
27978
27979-#: tree.c:5469
27980+#: tree.c:5471
27981 #, gcc-internal-format
27982 msgid "%q+D redeclared without dllimport attribute after being referenced with dll linkage"
27983 msgstr "%q+D se redeclara sin el atributo dllimport después de ser referenciado con enlace dllimport"
27984
27985-#: tree.c:5484
27986+#: tree.c:5486
27987 #, gcc-internal-format
27988 msgid "%q+D redeclared without dllimport attribute: previous dllimport ignored"
27989 msgstr "%q+D se redeclara sin el atributo dllimport: se descarta el dllimport previo"
27990
27991-#: tree.c:5527 tree.c:5539 tree.c:5549 c-family/c-common.c:5865
27992+#: tree.c:5529 tree.c:5541 tree.c:5551 c-family/c-common.c:5865
27993 #: c-family/c-common.c:5884 c-family/c-common.c:5902 c-family/c-common.c:5930
27994 #: c-family/c-common.c:5957 c-family/c-common.c:5983 c-family/c-common.c:6002
27995 #: c-family/c-common.c:6019 c-family/c-common.c:6043 c-family/c-common.c:6066
27996@@ -19810,140 +19965,140 @@
27997 #: c-family/c-common.c:7680 c-family/c-common.c:7971 c-family/c-common.c:7994
27998 #: c-family/c-common.c:8033 c-family/c-common.c:8111 c-family/c-common.c:8260
27999 #: config/darwin.c:1942 config/arm/arm.c:5007 config/arm/arm.c:5035
28000-#: config/arm/arm.c:5052 config/avr/avr.c:6728 config/h8300/h8300.c:5418
28001-#: config/h8300/h8300.c:5442 config/i386/i386.c:4944 config/i386/i386.c:31811
28002-#: config/ia64/ia64.c:734 config/rs6000/rs6000.c:24318 config/spu/spu.c:4035
28003-#: ada/gcc-interface/utils.c:5482 lto/lto-lang.c:215
28004+#: config/arm/arm.c:5052 config/avr/avr.c:6846 config/h8300/h8300.c:5418
28005+#: config/h8300/h8300.c:5442 config/i386/i386.c:4944 config/i386/i386.c:31845
28006+#: config/ia64/ia64.c:734 config/rs6000/rs6000.c:24335 config/spu/spu.c:4035
28007+#: ada/gcc-interface/utils.c:5488 lto/lto-lang.c:215
28008 #, gcc-internal-format
28009 msgid "%qE attribute ignored"
28010 msgstr "se descarta el atributo %qE"
28011
28012-#: tree.c:5567
28013+#: tree.c:5569
28014 #, gcc-internal-format
28015 msgid "inline function %q+D declared as dllimport: attribute ignored"
28016 msgstr "la función inline %q+D se declara como dllimport: se descarta el atributo"
28017
28018-#: tree.c:5575
28019+#: tree.c:5577
28020 #, gcc-internal-format
28021 msgid "function %q+D definition is marked dllimport"
28022 msgstr "la definición de la función %q+D se marca como dllimport"
28023
28024-#: tree.c:5583
28025+#: tree.c:5585
28026 #, gcc-internal-format
28027 msgid "variable %q+D definition is marked dllimport"
28028 msgstr "la definición de la variable %q+D se marca como dllimport"
28029
28030-#: tree.c:5611
28031+#: tree.c:5613
28032 #, gcc-internal-format
28033 msgid "external linkage required for symbol %q+D because of %qE attribute"
28034 msgstr "se requiere enlace externo para el símbolo %q+D debido al atributo %qE"
28035
28036-#: tree.c:5625
28037+#: tree.c:5627
28038 #, gcc-internal-format
28039 msgid "%qE implies default visibility, but %qD has already been declared with a different visibility"
28040 msgstr "%qE implica visibilidad por defecto, pero %qD ya se había declarado con una visibilidad diferente"
28041
28042-#: tree.c:7375
28043+#: tree.c:7377
28044 #, gcc-internal-format
28045 msgid "arrays of functions are not meaningful"
28046 msgstr "las matrices de funciones no tienen significado"
28047
28048-#: tree.c:7542
28049+#: tree.c:7544
28050 #, gcc-internal-format
28051 msgid "function return type cannot be function"
28052 msgstr "el tipo de devolución de función no puede ser función"
28053
28054-#: tree.c:8838 tree.c:8923 tree.c:8984
28055+#: tree.c:8840 tree.c:8925 tree.c:8986
28056 #, gcc-internal-format, gfc-internal-format
28057 msgid "tree check: %s, have %s in %s, at %s:%d"
28058 msgstr "revisión de árbol: %s, se tiene %s en %s, en %s:%d"
28059
28060-#: tree.c:8875
28061+#: tree.c:8877
28062 #, gcc-internal-format, gfc-internal-format
28063 msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
28064 msgstr "revisión de árbol: no se esperaba ninguno de %s, se tiene %s en %s, en %s:%d"
28065
28066-#: tree.c:8888
28067+#: tree.c:8890
28068 #, gcc-internal-format
28069 msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
28070 msgstr "revisión de árbol: se esperaba la clase %qs, se tiene %qs (%s) en %s, en %s:%d"
28071
28072-#: tree.c:8937
28073+#: tree.c:8939
28074 #, gcc-internal-format
28075 msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
28076 msgstr "revisión de árbol: no se esperaba la clase %qs, se tiene %qs (%s) en %s, en %s:%d"
28077
28078-#: tree.c:8950
28079+#: tree.c:8952
28080 #, gcc-internal-format, gfc-internal-format
28081 msgid "tree check: expected omp_clause %s, have %s in %s, at %s:%d"
28082 msgstr "revisión de árbol: se esperaba omp_clause %s, se tiene %s en %s, en %s:%d"
28083
28084-#: tree.c:9010
28085+#: tree.c:9012
28086 #, gcc-internal-format
28087 msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
28088 msgstr "revisión de árbol: se esperaba un árbol que contenga la estructura %qs, se tiene %qs en %s, en %s:%d"
28089
28090-#: tree.c:9024
28091+#: tree.c:9026
28092 #, gcc-internal-format, gfc-internal-format
28093 msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
28094 msgstr "revisión de árbol: acceso de elt %d de tree_vec con %d elts en %s, en %s:%d"
28095
28096-#: tree.c:9037
28097+#: tree.c:9039
28098 #, gcc-internal-format, gfc-internal-format
28099 msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
28100 msgstr "revisión de árbol: acceso del operando %d de %s con %d operandos en %s, en %s:%d"
28101
28102-#: tree.c:9050
28103+#: tree.c:9052
28104 #, gcc-internal-format, gfc-internal-format
28105 msgid "tree check: accessed operand %d of omp_clause %s with %d operands in %s, at %s:%d"
28106 msgstr "revisión de árbol: acceso del operando %d de omp_clause %s con %d operandos en %s, en %s:%d"
28107
28108-#: tree.c:11330
28109+#: tree.c:11336
28110 #, gcc-internal-format
28111 msgid "%qD is deprecated (declared at %s:%d): %s"
28112 msgstr "%qD es obsoleto (declarado en %s:%d): %s"
28113
28114-#: tree.c:11334
28115+#: tree.c:11340
28116 #, gcc-internal-format
28117 msgid "%qD is deprecated (declared at %s:%d)"
28118 msgstr "%qD es obsoleto (declarado en %s:%d)"
28119
28120-#: tree.c:11359
28121+#: tree.c:11365
28122 #, gcc-internal-format
28123 msgid "%qE is deprecated (declared at %s:%d): %s"
28124 msgstr "%qE es obsoleto (declarado en %s:%d): %s"
28125
28126-#: tree.c:11363
28127+#: tree.c:11369
28128 #, gcc-internal-format
28129 msgid "%qE is deprecated (declared at %s:%d)"
28130 msgstr "%qE es obsoleto (declarado en %s:%d)"
28131
28132-#: tree.c:11370
28133+#: tree.c:11376
28134 #, gcc-internal-format, gfc-internal-format
28135 msgid "type is deprecated (declared at %s:%d): %s"
28136 msgstr "el tipo es obsoleto (declarado en %s:%d): %s"
28137
28138-#: tree.c:11374
28139+#: tree.c:11380
28140 #, gcc-internal-format, gfc-internal-format
28141 msgid "type is deprecated (declared at %s:%d)"
28142 msgstr "el tipo es obsoleto (declarado en %s:%d)"
28143
28144-#: tree.c:11383
28145+#: tree.c:11389
28146 #, gcc-internal-format
28147 msgid "%qE is deprecated: %s"
28148 msgstr "%qE es obsoleto: %s"
28149
28150-#: tree.c:11386
28151+#: tree.c:11392
28152 #, gcc-internal-format
28153 msgid "%qE is deprecated"
28154 msgstr "%qE es obsoleto"
28155
28156-#: tree.c:11391
28157+#: tree.c:11397
28158 #, gcc-internal-format, gfc-internal-format
28159 msgid "type is deprecated: %s"
28160 msgstr "el tipo es obsoleto: %s"
28161
28162-#: tree.c:11394
28163+#: tree.c:11400
28164 #, gcc-internal-format
28165 msgid "type is deprecated"
28166 msgstr "el tipo es obsoleto"
28167@@ -19983,12 +20138,12 @@
28168 msgid "Skipping target %s with mismatching types for icall "
28169 msgstr "Se salta el objetivo %s con tipos que no coinciden para icall "
28170
28171-#: var-tracking.c:6582
28172+#: var-tracking.c:6586
28173 #, gcc-internal-format
28174 msgid "variable tracking size limit exceeded with -fvar-tracking-assignments, retrying without"
28175 msgstr "se excedió el límite de tamaño de rastreo de variable con -fvar-tracking-assignments, se reintenta sin esa opción"
28176
28177-#: var-tracking.c:6586
28178+#: var-tracking.c:6590
28179 #, gcc-internal-format
28180 msgid "variable tracking size limit exceeded"
28181 msgstr "se excedió el límite de tamaño de rastreo de variable"
28182@@ -20138,6 +20293,11 @@
28183 msgid "visibility attribute not supported in this configuration; ignored"
28184 msgstr "no se admiten los atributos de visibilidad en esta configuración; descartados"
28185
28186+#: varpool.c:486
28187+#, gcc-internal-format
28188+msgid "variable %q+D part of alias cycle"
28189+msgstr "la variable %q+D es parte de un ciclo de alias"
28190+
28191 #: vec.c:527
28192 #, gcc-internal-format, gfc-internal-format
28193 msgid "vector %s %s domain error, in %s at %s:%u"
28194@@ -20169,8 +20329,8 @@
28195 msgid "string length %qd is greater than the length %qd ISO C%d compilers are required to support"
28196 msgstr "la longitud de la cadena %qd es mayor que la longitud %qd, la máxima que los compiladores ISO C%d deben admitir"
28197
28198-#: c-family/c-common.c:1494 c-family/c-common.c:1506 cp/semantics.c:6634
28199-#: cp/semantics.c:8017
28200+#: c-family/c-common.c:1494 c-family/c-common.c:1506 cp/semantics.c:6649
28201+#: cp/semantics.c:8032
28202 #, gcc-internal-format
28203 msgid "overflow in constant expression"
28204 msgstr "desbordamiento en la expresión constante"
28205@@ -20798,40 +20958,40 @@
28206 msgid "invalid vector type for attribute %qE"
28207 msgstr "tipo de vector inválido para el atributo %qE"
28208
28209-#: c-family/c-common.c:7720 ada/gcc-interface/utils.c:5600
28210-#: ada/gcc-interface/utils.c:5694
28211+#: c-family/c-common.c:7720 ada/gcc-interface/utils.c:5606
28212+#: ada/gcc-interface/utils.c:5700
28213 #, gcc-internal-format
28214 msgid "vector size not an integral multiple of component size"
28215 msgstr "el tamaño del vector no es un múltiplo integral del tamaño del componente"
28216
28217-#: c-family/c-common.c:7726 ada/gcc-interface/utils.c:5606
28218-#: ada/gcc-interface/utils.c:5700
28219+#: c-family/c-common.c:7726 ada/gcc-interface/utils.c:5612
28220+#: ada/gcc-interface/utils.c:5706
28221 #, gcc-internal-format
28222 msgid "zero vector size"
28223 msgstr "vector de tamaño cero"
28224
28225-#: c-family/c-common.c:7734 ada/gcc-interface/utils.c:5614
28226-#: ada/gcc-interface/utils.c:5707
28227+#: c-family/c-common.c:7734 ada/gcc-interface/utils.c:5620
28228+#: ada/gcc-interface/utils.c:5713
28229 #, gcc-internal-format
28230 msgid "number of components of the vector not a power of two"
28231 msgstr "el número de componentes del vector no es una potencia de dos"
28232
28233-#: c-family/c-common.c:7762 ada/gcc-interface/utils.c:5341
28234+#: c-family/c-common.c:7762 ada/gcc-interface/utils.c:5347
28235 #, gcc-internal-format
28236 msgid "nonnull attribute without arguments on a non-prototype"
28237 msgstr "un atributo que no es nulo sin argumento es un atributo que no es prototipo"
28238
28239-#: c-family/c-common.c:7776 ada/gcc-interface/utils.c:5355
28240+#: c-family/c-common.c:7776 ada/gcc-interface/utils.c:5361
28241 #, gcc-internal-format, gfc-internal-format
28242 msgid "nonnull argument has invalid operand number (argument %lu)"
28243 msgstr "un argumento que no es nulo tiene un número de operando inválido (argumento %lu)"
28244
28245-#: c-family/c-common.c:7798 ada/gcc-interface/utils.c:5377
28246+#: c-family/c-common.c:7798 ada/gcc-interface/utils.c:5383
28247 #, gcc-internal-format, gfc-internal-format
28248 msgid "nonnull argument with out-of-range operand number (argument %lu, operand %lu)"
28249 msgstr "un argumento que no es nulo con número de operando fuera de rango (argumento %lu, operando %lu)"
28250
28251-#: c-family/c-common.c:7806 ada/gcc-interface/utils.c:5386
28252+#: c-family/c-common.c:7806 ada/gcc-interface/utils.c:5392
28253 #, gcc-internal-format, gfc-internal-format
28254 msgid "nonnull argument references non-pointer operand (argument %lu, operand %lu)"
28255 msgstr "un argumento que no es nulo hace referencia a un operando que no es puntero (argumento %lu, operando %lu)"
28256@@ -20871,12 +21031,12 @@
28257 msgid "%qE attribute only applies to variadic functions"
28258 msgstr "el atributo %qE se aplica solamente a funciones variadic"
28259
28260-#: c-family/c-common.c:8069 ada/gcc-interface/utils.c:5428
28261+#: c-family/c-common.c:8069 ada/gcc-interface/utils.c:5434
28262 #, gcc-internal-format
28263 msgid "requested position is not an integer constant"
28264 msgstr "la posición solicitada no es una constante entera"
28265
28266-#: c-family/c-common.c:8077 ada/gcc-interface/utils.c:5435
28267+#: c-family/c-common.c:8077 ada/gcc-interface/utils.c:5441
28268 #, gcc-internal-format
28269 msgid "requested position is less than zero"
28270 msgstr "la posición solicitada es menor a cero"
28271@@ -21126,177 +21286,177 @@
28272 msgid "size of array is too large"
28273 msgstr "el tamaño de la matriz es demasiado grande"
28274
28275-#: c-family/c-common.c:9425
28276+#: c-family/c-common.c:9427
28277 #, gcc-internal-format
28278 msgid "incorrect number of arguments to function %qE"
28279 msgstr "número incorrecto de argumentos para la función %qE"
28280
28281-#: c-family/c-common.c:9433
28282+#: c-family/c-common.c:9435
28283 #, gcc-internal-format
28284 msgid "argument 1 of %qE must be a non-void pointer type"
28285 msgstr "el argumento 1 de %qE debe ser un tipo puntero que no sea void"
28286
28287-#: c-family/c-common.c:9442
28288+#: c-family/c-common.c:9444
28289 #, gcc-internal-format
28290 msgid "argument 1 of %qE must be a pointer to a constant size type"
28291 msgstr "el argumento 1 de %qE debe ser un puntero a un tipo de tamaño constante"
28292
28293-#: c-family/c-common.c:9453
28294+#: c-family/c-common.c:9455
28295 #, gcc-internal-format
28296 msgid "argument 1 of %qE must be a pointer to a nonzero size object"
28297 msgstr "el argumento 1 de %qE debe ser un puntero a un objeto de tamaño diferente de cero"
28298
28299-#: c-family/c-common.c:9468
28300+#: c-family/c-common.c:9470
28301 #, gcc-internal-format
28302 msgid "argument %d of %qE must be a pointer type"
28303 msgstr "el argumento %d de %qE debe ser un tipo puntero"
28304
28305-#: c-family/c-common.c:9475
28306+#: c-family/c-common.c:9477
28307 #, gcc-internal-format
28308 msgid "size mismatch in argument %d of %qE"
28309 msgstr "no coincide el tamaño en el argumento %d de %qE"
28310
28311-#: c-family/c-common.c:9491
28312+#: c-family/c-common.c:9493
28313 #, gcc-internal-format
28314 msgid "invalid memory model argument %d of %qE"
28315 msgstr "argumento de modelo de memoria %d inválido de %qE"
28316
28317-#: c-family/c-common.c:9498
28318+#: c-family/c-common.c:9500
28319 #, gcc-internal-format
28320 msgid "non-integer memory model argument %d of %qE"
28321 msgstr "argumento de modelo de memoria %d que no es entero de %qE"
28322
28323-#: c-family/c-common.c:10024
28324+#: c-family/c-common.c:10026
28325 #, gcc-internal-format
28326 msgid "array subscript has type %<char%>"
28327 msgstr "el subíndice de la matriz es de tipo %<char%>"
28328
28329-#: c-family/c-common.c:10059
28330+#: c-family/c-common.c:10061
28331 #, gcc-internal-format
28332 msgid "suggest parentheses around %<+%> inside %<<<%>"
28333 msgstr "se sugieren paréntesis alrededor de %<+%> dentro de %<<<%>"
28334
28335-#: c-family/c-common.c:10062
28336+#: c-family/c-common.c:10064
28337 #, gcc-internal-format
28338 msgid "suggest parentheses around %<-%> inside %<<<%>"
28339 msgstr "se sugieren paréntesis alrededor de %<-%> dentro de %<<<%>"
28340
28341-#: c-family/c-common.c:10068
28342+#: c-family/c-common.c:10070
28343 #, gcc-internal-format
28344 msgid "suggest parentheses around %<+%> inside %<>>%>"
28345 msgstr "se sugieren paréntesis alrededor de %<+%> dentro de %<>>%>"
28346
28347-#: c-family/c-common.c:10071
28348+#: c-family/c-common.c:10073
28349 #, gcc-internal-format
28350 msgid "suggest parentheses around %<-%> inside %<>>%>"
28351 msgstr "se sugieren paréntesis alrededor de %<-%> dentro de %<>>%>"
28352
28353-#: c-family/c-common.c:10077
28354+#: c-family/c-common.c:10079
28355 #, gcc-internal-format
28356 msgid "suggest parentheses around %<&&%> within %<||%>"
28357 msgstr "se sugieren paréntesis alrededor de %<&&%> junto con %<||%>"
28358
28359-#: c-family/c-common.c:10086
28360+#: c-family/c-common.c:10088
28361 #, gcc-internal-format
28362 msgid "suggest parentheses around arithmetic in operand of %<|%>"
28363 msgstr "se sugieren paréntesis alrededor de la aritmética para un operando de %<|%>"
28364
28365-#: c-family/c-common.c:10091
28366+#: c-family/c-common.c:10093
28367 #, gcc-internal-format
28368 msgid "suggest parentheses around comparison in operand of %<|%>"
28369 msgstr "se sugieren paréntesis alrededor de la comparación para un operando de %<|%>"
28370
28371-#: c-family/c-common.c:10095
28372+#: c-family/c-common.c:10097
28373 #, gcc-internal-format
28374 msgid "suggest parentheses around operand of %<!%> or change %<|%> to %<||%> or %<!%> to %<~%>"
28375 msgstr "se sugieren paréntesis alrededor del operando de %<!%> o cambie %<|%> a %<||%> o %<!%> a %<~%>"
28376
28377-#: c-family/c-common.c:10105
28378+#: c-family/c-common.c:10107
28379 #, gcc-internal-format
28380 msgid "suggest parentheses around arithmetic in operand of %<^%>"
28381 msgstr "se sugieren paréntesis alrededor de la aritmética para un operando de %<^%>"
28382
28383-#: c-family/c-common.c:10110
28384+#: c-family/c-common.c:10112
28385 #, gcc-internal-format
28386 msgid "suggest parentheses around comparison in operand of %<^%>"
28387 msgstr "se sugieren paréntesis alrededor de la comparación para un operando de %<^%>"
28388
28389-#: c-family/c-common.c:10116
28390+#: c-family/c-common.c:10118
28391 #, gcc-internal-format
28392 msgid "suggest parentheses around %<+%> in operand of %<&%>"
28393 msgstr "se sugieren paréntesis alrededor de %<+%> para un operando de %<&%>"
28394
28395-#: c-family/c-common.c:10119
28396+#: c-family/c-common.c:10121
28397 #, gcc-internal-format
28398 msgid "suggest parentheses around %<-%> in operand of %<&%>"
28399 msgstr "se sugieren paréntesis alrededor de %<-%> para un operando de %<&%>"
28400
28401-#: c-family/c-common.c:10124
28402+#: c-family/c-common.c:10126
28403 #, gcc-internal-format
28404 msgid "suggest parentheses around comparison in operand of %<&%>"
28405 msgstr "se sugieren paréntesis alrededor de la comparación para un operando de %<&%>"
28406
28407-#: c-family/c-common.c:10128
28408+#: c-family/c-common.c:10130
28409 #, gcc-internal-format
28410 msgid "suggest parentheses around operand of %<!%> or change %<&%> to %<&&%> or %<!%> to %<~%>"
28411 msgstr "se sugieren paréntesis alrededor de un operando de %<!%> o cambie %<&%> a %<&&%> o %<!%> a %<~%>"
28412
28413-#: c-family/c-common.c:10136
28414+#: c-family/c-common.c:10138
28415 #, gcc-internal-format
28416 msgid "suggest parentheses around comparison in operand of %<==%>"
28417 msgstr "se sugieren paréntesis alrededor de la comparación en un operando de %<==%>"
28418
28419-#: c-family/c-common.c:10142
28420+#: c-family/c-common.c:10144
28421 #, gcc-internal-format
28422 msgid "suggest parentheses around comparison in operand of %<!=%>"
28423 msgstr "se sugieren paréntesis alrededor de la comparación en un operando de %<!=%>"
28424
28425-#: c-family/c-common.c:10153
28426+#: c-family/c-common.c:10155
28427 #, gcc-internal-format
28428 msgid "comparisons like %<X<=Y<=Z%> do not have their mathematical meaning"
28429 msgstr "las comparaciones como %<X<=Y<=Z%> no tienen su significado matemático"
28430
28431-#: c-family/c-common.c:10168
28432+#: c-family/c-common.c:10170
28433 #, gcc-internal-format
28434 msgid "label %q+D defined but not used"
28435 msgstr "se define la etiqueta %q+D pero no se usa"
28436
28437-#: c-family/c-common.c:10170
28438+#: c-family/c-common.c:10172
28439 #, gcc-internal-format
28440 msgid "label %q+D declared but not defined"
28441 msgstr "se declara la etiqueta %q+D pero no está definida"
28442
28443-#: c-family/c-common.c:10186
28444+#: c-family/c-common.c:10188
28445 #, gcc-internal-format
28446 msgid "division by zero"
28447 msgstr "división por cero"
28448
28449-#: c-family/c-common.c:10218
28450+#: c-family/c-common.c:10220
28451 #, gcc-internal-format
28452 msgid "comparison between types %qT and %qT"
28453 msgstr "comparación entre los tipos %qT y %qT"
28454
28455-#: c-family/c-common.c:10269
28456+#: c-family/c-common.c:10271
28457 #, gcc-internal-format
28458 msgid "comparison between signed and unsigned integer expressions"
28459 msgstr "comparación entre expresiones enteras signed y unsigned"
28460
28461-#: c-family/c-common.c:10320
28462+#: c-family/c-common.c:10322
28463 #, gcc-internal-format
28464 msgid "promoted ~unsigned is always non-zero"
28465 msgstr "el ~unsigned promovido es siempre diferente de cero"
28466
28467-#: c-family/c-common.c:10323
28468+#: c-family/c-common.c:10325
28469 #, gcc-internal-format
28470 msgid "comparison of promoted ~unsigned with constant"
28471 msgstr "comparación de un ~unsigned promovido con una constante"
28472
28473-#: c-family/c-common.c:10333
28474+#: c-family/c-common.c:10335
28475 #, gcc-internal-format
28476 msgid "comparison of promoted ~unsigned with unsigned"
28477 msgstr "comparación de un ~unsigned promovido con unsigned"
28478
28479-#: c-family/c-common.c:10511
28480+#: c-family/c-common.c:10513
28481 #, gcc-internal-format
28482 msgid "typedef %qD locally defined but not used"
28483 msgstr "se define tipo %qD localmente pero no se usa"
28484@@ -22560,7 +22720,7 @@
28485 #. coalesced sections. Weak aliases (or any other kind of aliases) are
28486 #. not supported. Weak symbols that aren't visible outside the .s file
28487 #. are not supported.
28488-#: config/darwin.h:439
28489+#: config/darwin.h:441
28490 #, gcc-internal-format
28491 msgid "alias definitions not supported in Mach-O; ignored"
28492 msgstr "las definiciones de alias no se admiten en Mach-O; descartadas"
28493@@ -22571,284 +22731,285 @@
28494 msgid "profiler support for VxWorks"
28495 msgstr "soporte de análisis de perfil para VxWorks"
28496
28497-#: config/alpha/alpha.c:277
28498+#: config/alpha/alpha.c:282
28499 #, gcc-internal-format
28500 msgid "bad value %qs for -mtrap-precision switch"
28501 msgstr "valor %qs erróneo para el interruptor -mtrap-precision"
28502
28503-#: config/alpha/alpha.c:291
28504+#: config/alpha/alpha.c:296
28505 #, gcc-internal-format
28506 msgid "bad value %qs for -mfp-rounding-mode switch"
28507 msgstr "valor %qs erróneo para el interruptor -mfp-rounding-mode"
28508
28509-#: config/alpha/alpha.c:306
28510+#: config/alpha/alpha.c:311
28511 #, gcc-internal-format
28512 msgid "bad value %qs for -mfp-trap-mode switch"
28513 msgstr "valor %qs erróneo para el interruptor -mfp-trap-mode"
28514
28515-#: config/alpha/alpha.c:320
28516+#: config/alpha/alpha.c:325
28517 #, gcc-internal-format
28518 msgid "bad value %qs for -mcpu switch"
28519 msgstr "valor %qs erróneo para el interruptor -mcpu"
28520
28521-#: config/alpha/alpha.c:332
28522+#: config/alpha/alpha.c:337
28523 #, gcc-internal-format
28524 msgid "bad value %qs for -mtune switch"
28525 msgstr "valor erróneo %qs para la opción -mtune"
28526
28527-#: config/alpha/alpha.c:340
28528+#: config/alpha/alpha.c:345
28529 #, gcc-internal-format
28530 msgid "fp software completion requires -mtrap-precision=i"
28531 msgstr "el completado por software de fp requiere una opción -mtrap-precision=i"
28532
28533-#: config/alpha/alpha.c:356
28534+#: config/alpha/alpha.c:361
28535 #, gcc-internal-format
28536 msgid "rounding mode not supported for VAX floats"
28537 msgstr "el modo de redondeo no se admite para floats de VAX"
28538
28539-#: config/alpha/alpha.c:361
28540+#: config/alpha/alpha.c:366
28541 #, gcc-internal-format
28542 msgid "trap mode not supported for VAX floats"
28543 msgstr "el modo de captura no se admite para valores de coma flotante VAX"
28544
28545-#: config/alpha/alpha.c:365
28546+#: config/alpha/alpha.c:370
28547 #, gcc-internal-format
28548 msgid "128-bit long double not supported for VAX floats"
28549 msgstr "los long double de 128 bits no se admiten para valores de coma flotante VAX"
28550
28551-#: config/alpha/alpha.c:393
28552+#: config/alpha/alpha.c:398
28553 #, gcc-internal-format, gfc-internal-format
28554 msgid "L%d cache latency unknown for %s"
28555 msgstr "latencia de caché L%d desconocida para %s"
28556
28557-#: config/alpha/alpha.c:408
28558+#: config/alpha/alpha.c:413
28559 #, gcc-internal-format
28560 msgid "bad value %qs for -mmemory-latency"
28561 msgstr "valor %qs erróneo para -mmemory-latency"
28562
28563-#: config/alpha/alpha.c:6551 config/alpha/alpha.c:6554 config/s390/s390.c:9157
28564-#: config/s390/s390.c:9160
28565+#: config/alpha/alpha.c:6556 config/alpha/alpha.c:6559 config/s390/s390.c:9162
28566+#: config/s390/s390.c:9165 config/tilegx/tilegx.c:3394
28567+#: config/tilepro/tilepro.c:3098
28568 #, gcc-internal-format
28569 msgid "bad builtin fcode"
28570 msgstr "fcode interno erróneo"
28571
28572-#: config/arm/arm.c:1523
28573+#: config/arm/arm.c:1512
28574 #, gcc-internal-format, gfc-internal-format
28575 msgid "switch -mcpu=%s conflicts with -march=%s switch"
28576 msgstr "la opción -mcpu=%s genera un conflicto con la opción -march=%s"
28577
28578-#: config/arm/arm.c:1640
28579+#: config/arm/arm.c:1629
28580 #, gcc-internal-format
28581 msgid "target CPU does not support ARM mode"
28582 msgstr "el CPU objetivo no tiene soporte para el modo ARM"
28583
28584-#: config/arm/arm.c:1646
28585+#: config/arm/arm.c:1635
28586 #, gcc-internal-format
28587 msgid "target CPU does not support interworking"
28588 msgstr "el CPU objetivo no admite trabajo interno"
28589
28590-#: config/arm/arm.c:1652
28591+#: config/arm/arm.c:1641
28592 #, gcc-internal-format
28593 msgid "target CPU does not support THUMB instructions"
28594 msgstr "el CPU objetivo no admite las instrucciones THUMB"
28595
28596-#: config/arm/arm.c:1670
28597+#: config/arm/arm.c:1659
28598 #, gcc-internal-format
28599 msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
28600 msgstr "habilitar el soporte de rastreo hacia atrás sólo tiene significado cuando se compila para el Thumb"
28601
28602-#: config/arm/arm.c:1673
28603+#: config/arm/arm.c:1662
28604 #, gcc-internal-format
28605 msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
28606 msgstr "habilitar el soporte de trabajo interno de llamado sólo tiene significado cuando se compila para el Thumb"
28607
28608-#: config/arm/arm.c:1677
28609+#: config/arm/arm.c:1666
28610 #, gcc-internal-format
28611 msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
28612 msgstr "-mapcs-stack-check es incompatible con -mno-apcs-frame"
28613
28614-#: config/arm/arm.c:1685
28615+#: config/arm/arm.c:1674
28616 #, gcc-internal-format
28617 msgid "-fpic and -mapcs-reent are incompatible"
28618 msgstr "-fpic y -mapcs-reent son incompatibles"
28619
28620-#: config/arm/arm.c:1688
28621+#: config/arm/arm.c:1677
28622 #, gcc-internal-format
28623 msgid "APCS reentrant code not supported. Ignored"
28624 msgstr "no se admite el código reentrante APCS. Descartado"
28625
28626-#: config/arm/arm.c:1696
28627+#: config/arm/arm.c:1685
28628 #, gcc-internal-format
28629 msgid "-g with -mno-apcs-frame may not give sensible debugging"
28630 msgstr "-g con -mno-apcs-frame no permite una depuración sensible"
28631
28632-#: config/arm/arm.c:1699
28633+#: config/arm/arm.c:1688
28634 #, gcc-internal-format
28635 msgid "passing floating point arguments in fp regs not yet supported"
28636 msgstr "aún no se admite el paso de argumentos de coma flotante en registros fp"
28637
28638-#: config/arm/arm.c:1702
28639+#: config/arm/arm.c:1691
28640 #, gcc-internal-format
28641 msgid "%<mwords-little-endian%> is deprecated and will be removed in a future release"
28642 msgstr "%<mwords-little-endian%> es obsoleto y se eliminará en una versión futura"
28643
28644-#: config/arm/arm.c:1764
28645+#: config/arm/arm.c:1753
28646 #, gcc-internal-format
28647 msgid "iwmmxt requires an AAPCS compatible ABI for proper operation"
28648 msgstr "iwmmxt requiere una ABI compatible con AAPCS para una operación adecuada"
28649
28650-#: config/arm/arm.c:1767
28651+#: config/arm/arm.c:1756
28652 #, gcc-internal-format
28653 msgid "iwmmxt abi requires an iwmmxt capable cpu"
28654 msgstr "el abi iwmmxt requiere un cpu capaz de iwmmxt"
28655
28656-#: config/arm/arm.c:1815
28657+#: config/arm/arm.c:1804
28658 #, gcc-internal-format
28659 msgid "FPA is unsupported in the AAPCS"
28660 msgstr "no se admite FPA en el AAPCS"
28661
28662-#: config/arm/arm.c:1820
28663+#: config/arm/arm.c:1809
28664 #, gcc-internal-format
28665 msgid "AAPCS does not support -mcaller-super-interworking"
28666 msgstr "AAPCS no admite -mcaller-super-interworking"
28667
28668-#: config/arm/arm.c:1823
28669+#: config/arm/arm.c:1812
28670 #, gcc-internal-format
28671 msgid "AAPCS does not support -mcallee-super-interworking"
28672 msgstr "AAPCS no admite -mcallee-super-interworking"
28673
28674-#: config/arm/arm.c:1830
28675+#: config/arm/arm.c:1819
28676 #, gcc-internal-format
28677 msgid "iWMMXt and hardware floating point"
28678 msgstr "coma flotante iWMMXt y de hardware"
28679
28680-#: config/arm/arm.c:1834
28681+#: config/arm/arm.c:1823
28682 #, gcc-internal-format
28683 msgid "Thumb-2 iWMMXt"
28684 msgstr "iWMMXt de Thumb-2"
28685
28686-#: config/arm/arm.c:1838
28687+#: config/arm/arm.c:1827
28688 #, gcc-internal-format
28689 msgid "__fp16 and no ldrh"
28690 msgstr "__fp16 sin ldrh"
28691
28692-#: config/arm/arm.c:1858
28693+#: config/arm/arm.c:1847
28694 #, gcc-internal-format
28695 msgid "-mfloat-abi=hard and VFP"
28696 msgstr "-mfloat-abi=hard y VFP"
28697
28698-#: config/arm/arm.c:1883
28699+#: config/arm/arm.c:1872
28700 #, gcc-internal-format
28701 msgid "can not use -mtp=cp15 with 16-bit Thumb"
28702 msgstr "no se puede usar -mtp=cp15 con Thumb de 16-bit"
28703
28704-#: config/arm/arm.c:1899
28705+#: config/arm/arm.c:1888
28706 #, gcc-internal-format
28707 msgid "structure size boundary can only be set to 8, 32 or 64"
28708 msgstr "el límite del tamaño de la estructura sólo se puede establecer a 8, 32 o 64"
28709
28710-#: config/arm/arm.c:1901
28711+#: config/arm/arm.c:1890
28712 #, gcc-internal-format
28713 msgid "structure size boundary can only be set to 8 or 32"
28714 msgstr "el límite del tamaño de la estructura sólo se puede establecer a 8 o 32"
28715
28716-#: config/arm/arm.c:1909
28717+#: config/arm/arm.c:1898
28718 #, gcc-internal-format
28719 msgid "RTP PIC is incompatible with Thumb"
28720 msgstr "El PIC de RTP es incompatible con Thumb"
28721
28722-#: config/arm/arm.c:1918
28723+#: config/arm/arm.c:1907
28724 #, gcc-internal-format
28725 msgid "RTP PIC is incompatible with -msingle-pic-base"
28726 msgstr "El PIC de RTP es incompatible con -msingle-pic-base"
28727
28728-#: config/arm/arm.c:1930
28729+#: config/arm/arm.c:1919
28730 #, gcc-internal-format
28731 msgid "-mpic-register= is useless without -fpic"
28732 msgstr "-mpic-register= es inútil sin -fpic"
28733
28734-#: config/arm/arm.c:1939
28735+#: config/arm/arm.c:1928
28736 #, gcc-internal-format, gfc-internal-format
28737 msgid "unable to use '%s' for PIC register"
28738 msgstr "no se puede usar '%s' para registro PIC"
28739
28740-#: config/arm/arm.c:1971
28741+#: config/arm/arm.c:1960
28742 #, gcc-internal-format
28743 msgid "target CPU does not support unaligned accesses"
28744 msgstr "el CPU objetivo no admite accesos sin alinear"
28745
28746-#: config/arm/arm.c:1995
28747+#: config/arm/arm.c:1984
28748 #, gcc-internal-format
28749 msgid "-freorder-blocks-and-partition not supported on this architecture"
28750 msgstr "no se admite -freorder-blocks-and-partition en esta arquitectura"
28751
28752-#: config/arm/arm.c:4043
28753+#: config/arm/arm.c:4036
28754 #, gcc-internal-format
28755 msgid "non-AAPCS derived PCS variant"
28756 msgstr "variante PCS derivada de un no AAPCS"
28757
28758-#: config/arm/arm.c:4045
28759+#: config/arm/arm.c:4038
28760 #, gcc-internal-format
28761 msgid "variadic functions must use the base AAPCS variant"
28762 msgstr "las funciones variadic debe usar la variante AAPCS base"
28763
28764-#: config/arm/arm.c:4064
28765+#: config/arm/arm.c:4057
28766 #, gcc-internal-format
28767 msgid "PCS variant"
28768 msgstr "variante PCS"
28769
28770-#: config/arm/arm.c:4259
28771+#: config/arm/arm.c:4252
28772 #, gcc-internal-format
28773 msgid "Thumb-1 hard-float VFP ABI"
28774 msgstr "ABI de VFP de coma flotante dura de Thumb-1"
28775
28776-#: config/arm/arm.c:4975 config/arm/arm.c:4993 config/avr/avr.c:6748
28777-#: config/avr/avr.c:6764 config/bfin/bfin.c:4636 config/bfin/bfin.c:4697
28778+#: config/arm/arm.c:4975 config/arm/arm.c:4993 config/avr/avr.c:6866
28779+#: config/avr/avr.c:6882 config/bfin/bfin.c:4636 config/bfin/bfin.c:4697
28780 #: config/bfin/bfin.c:4726 config/h8300/h8300.c:5394 config/i386/i386.c:4899
28781-#: config/i386/i386.c:31712 config/i386/i386.c:31763 config/i386/i386.c:31836
28782+#: config/i386/i386.c:31746 config/i386/i386.c:31797 config/i386/i386.c:31870
28783 #: config/m68k/m68k.c:725 config/mcore/mcore.c:3076 config/mep/mep.c:4011
28784 #: config/mep/mep.c:4025 config/mep/mep.c:4099 config/rl78/rl78.c:478
28785-#: config/rs6000/rs6000.c:24244 config/rx/rx.c:2502 config/sh/sh.c:8885
28786-#: config/sh/sh.c:8903 config/sh/sh.c:8932 config/sh/sh.c:9014
28787-#: config/sh/sh.c:9037 config/spu/spu.c:3977 config/stormy16/stormy16.c:2200
28788+#: config/rs6000/rs6000.c:24261 config/rx/rx.c:2502 config/sh/sh.c:8890
28789+#: config/sh/sh.c:8908 config/sh/sh.c:8937 config/sh/sh.c:9019
28790+#: config/sh/sh.c:9042 config/spu/spu.c:3977 config/stormy16/stormy16.c:2200
28791 #: config/v850/v850.c:2057
28792 #, gcc-internal-format
28793 msgid "%qE attribute only applies to functions"
28794 msgstr "el atributo %qE se aplica solamente a funciones"
28795
28796-#: config/arm/arm.c:18922
28797+#: config/arm/arm.c:18925
28798 #, gcc-internal-format
28799 msgid "unable to compute real location of stacked parameter"
28800 msgstr "no se puede calcular la ubicación real del parámetro apilado"
28801
28802-#: config/arm/arm.c:20660
28803+#: config/arm/arm.c:20665
28804 #, gcc-internal-format
28805 msgid "argument must be a constant"
28806 msgstr "el argumento debe ser una constante"
28807
28808 #. @@@ better error message
28809-#: config/arm/arm.c:21029 config/arm/arm.c:21066
28810+#: config/arm/arm.c:21034 config/arm/arm.c:21071
28811 #, gcc-internal-format
28812 msgid "selector must be an immediate"
28813 msgstr "el selector debe ser un inmediato"
28814
28815 #. @@@ better error message
28816-#: config/arm/arm.c:21109
28817+#: config/arm/arm.c:21114
28818 #, gcc-internal-format
28819 msgid "mask must be an immediate"
28820 msgstr "la máscara debe ser un inmediato"
28821
28822-#: config/arm/arm.c:21893
28823+#: config/arm/arm.c:21898
28824 #, gcc-internal-format
28825 msgid "no low registers available for popping high registers"
28826 msgstr "no hay registros inferiores disponibles para extraer registros superiores"
28827
28828-#: config/arm/arm.c:22118
28829+#: config/arm/arm.c:22123
28830 #, gcc-internal-format
28831 msgid "interrupt Service Routines cannot be coded in Thumb mode"
28832 msgstr "no se pueden codificar las Rutinas de Servicios de Interrupción en el modo Thumb"
28833
28834-#: config/arm/arm.c:24404
28835+#: config/arm/arm.c:24409
28836 #, gcc-internal-format
28837 msgid "the mangling of %<va_list%> has changed in GCC 4.4"
28838 msgstr "la decodificación de %<va_list%> cambió en GCC 4.4"
28839@@ -22863,91 +23024,101 @@
28840 msgid "static variable %q+D is marked dllimport"
28841 msgstr "la variable estática %q+D se marcó como dllimport"
28842
28843-#: config/avr/avr.c:742
28844+#: config/avr/avr.c:666
28845 #, gcc-internal-format
28846 msgid "'builtin_return_address' contains only 2 bytes of address"
28847 msgstr "'builtin_return_address' sólo contiene 2 bytes de dirección"
28848
28849-#: config/avr/avr.c:1778
28850+#: config/avr/avr.c:1775
28851 #, gcc-internal-format
28852 msgid "pointer offset from symbol maybe incorrect"
28853 msgstr "el desplazamiento del puntero desde el símbolo tal vez es incorrecto"
28854
28855-#: config/avr/avr.c:1895
28856+#: config/avr/avr.c:1898
28857 #, gcc-internal-format
28858 msgid "accessing data memory with program memory address"
28859 msgstr "se accede a memoria de datos con dirección de memoria de programa"
28860
28861-#: config/avr/avr.c:1944
28862+#: config/avr/avr.c:1947
28863 #, gcc-internal-format
28864 msgid "accessing program memory with data memory address"
28865 msgstr "se accede a memoria de programa con dirección de memoria de datos"
28866
28867-#: config/avr/avr.c:2350
28868+#: config/avr/avr.c:2353
28869 #, gcc-internal-format, gfc-internal-format
28870 msgid "fixed register %s used to pass parameter to function"
28871 msgstr "se usó el registro fijo %s para pasar un parámetro a la función"
28872
28873-#: config/avr/avr.c:2622
28874+#: config/avr/avr.c:2625
28875 #, gcc-internal-format
28876 msgid "writing to address space %qs not supported"
28877 msgstr "no se admite escribir al espacio de direcciones %qs"
28878
28879-#: config/avr/avr.c:6660
28880+#: config/avr/avr.c:6778
28881 #, gcc-internal-format
28882 msgid "%qs appears to be a misspelled interrupt handler"
28883 msgstr "%qs parece ser un manejador de interrupciones mal escrito"
28884
28885-#: config/avr/avr.c:6669
28886+#: config/avr/avr.c:6787
28887 #, gcc-internal-format
28888 msgid "%qs appears to be a misspelled signal handler"
28889 msgstr "%qs parece ser un manejador de señales mal escrito"
28890
28891-#: config/avr/avr.c:6932
28892+#: config/avr/avr.c:7060
28893 #, gcc-internal-format
28894+msgid "%qT uses address space %qs beyond flash of %qs"
28895+msgstr "%qT usa el espacio de direcciones %qs más allá del destello de %qs"
28896+
28897+#: config/avr/avr.c:7063
28898+#, gcc-internal-format
28899+msgid "%s %q+D uses address space %qs beyond flash of %qs"
28900+msgstr "%s %q+D usa el espacio de direcciones %qs más allá del destello de %qs"
28901+
28902+#: config/avr/avr.c:7070
28903+#, gcc-internal-format
28904 msgid "pointer targeting address space %qs must be const in %qT"
28905 msgstr "el espacio de direcciones %qs que apuntan a punteros debe ser const en %qT"
28906
28907-#: config/avr/avr.c:6935
28908+#: config/avr/avr.c:7073
28909 #, gcc-internal-format
28910 msgid "pointer targeting address space %qs must be const in %s %q+D"
28911 msgstr "el espacio de direcciones %qs que apuntan a punteros debe ser const en %s %q+D"
28912
28913-#: config/avr/avr.c:6978
28914+#: config/avr/avr.c:7111
28915 #, gcc-internal-format
28916+msgid "variable %q+D located in address space %qs beyond flash of %qs"
28917+msgstr "la variable %q+D se ubica en el espacio de direcciones %qs más allá del destello de %qs"
28918+
28919+#: config/avr/avr.c:7127
28920+#, gcc-internal-format
28921 msgid "variable %q+D must be const in order to be put into read-only section by means of %qs"
28922 msgstr "la variable %q+D debe ser const para que se ponga en la sección de sólo lectura a través de %qs"
28923
28924-#: config/avr/avr.c:7188
28925+#: config/avr/avr.c:7341
28926 #, gcc-internal-format
28927 msgid "only uninitialized variables can be placed in the .noinit section"
28928 msgstr "Sólo las variables sin inicializar se pueden colocar en la sección .noinit"
28929
28930-#: config/avr/avr.c:7229
28931+#: config/avr/avr.c:7382
28932 #, gcc-internal-format
28933 msgid "uninitialized variable %q+D put into program memory area"
28934 msgstr "se colocó la variable %q+D sin inicializar en el área de memoria del programa"
28935
28936-#: config/avr/avr.c:7296
28937+#: config/avr/avr.c:7449
28938 #, gcc-internal-format
28939 msgid "MCU %qs supported for assembler only"
28940 msgstr "MCU %qs sólo se admite para ensamblador"
28941
28942-#: config/avr/avr.c:10519
28943+#: config/avr/avr.c:10677
28944 #, gcc-internal-format, gfc-internal-format
28945 msgid "%s expects a compile time integer constant"
28946 msgstr "%s expera una constante entera en tiempo de compilación"
28947
28948-#: config/avr/avr.c:10532
28949+#: config/avr/avr.c:10691
28950 #, gcc-internal-format, gfc-internal-format
28951 msgid "%s expects a compile time long integer constant as first argument"
28952 msgstr "%s espera una constante entera long en tiempo de compilación como primer argumento"
28953
28954-#: config/avr/avr.c:10545
28955-#, gcc-internal-format, gfc-internal-format
28956-msgid "%s expects a compile time long long integer constant as first argument"
28957-msgstr "%s espera una constante entera long long en tiempo de compilación como primer argumento"
28958-
28959 #: config/bfin/bfin.c:2348
28960 #, gcc-internal-format
28961 msgid "-mfdpic is not supported, please use a bfin-linux-uclibc target"
28962@@ -23029,6 +23200,21 @@
28963 msgid "profiling is not yet implemented for this architecture"
28964 msgstr "el análisis de perfil aún no se implementa en esta arquitectura"
28965
28966+#: config/cr16/cr16.c:294
28967+#, gcc-internal-format
28968+msgid "data-model=far not valid for cr16c architecture"
28969+msgstr "data-model=far no es válido para la arquitectura cr16c"
28970+
28971+#: config/cr16/cr16.c:297
28972+#, gcc-internal-format, gfc-internal-format
28973+msgid "invalid data model option -mdata-model=%s"
28974+msgstr "opción de modelo de datos -mdata-model=%s inválida"
28975+
28976+#: config/cr16/cr16.h:431
28977+#, gcc-internal-format
28978+msgid "profiler support for CR16"
28979+msgstr "soporte de análisis de perfil para CR16"
28980+
28981 #. This function is for retrieving a part of an instruction name for
28982 #. an operator, for immediate output. If that ever happens for
28983 #. MULT, we need to apply TARGET_MUL_BUG in the caller. Make sure
28984@@ -23168,22 +23354,22 @@
28985 msgid "no FUNCTION_PROFILER for CRIS"
28986 msgstr "no hay FUNCTION_PROFILER para CRIS"
28987
28988-#: config/epiphany/epiphany.c:433
28989+#: config/epiphany/epiphany.c:441 config/epiphany/epiphany.c:481
28990 #, gcc-internal-format
28991 msgid "argument of %qE attribute is not a string constant"
28992 msgstr "el argumento del atributo %qE no es una cadena constante"
28993
28994-#: config/epiphany/epiphany.c:448
28995+#: config/epiphany/epiphany.c:456
28996 #, gcc-internal-format
28997 msgid "argument of %qE attribute is not \"reset\", \"software_exception\", \"page_miss\", \"timer0\", \"timer1\", \"message\", \"dma0\", \"dma1\", \"wand\" or \"swi\""
28998 msgstr "el argumento del atributo %qE no es \"reset\", \"software_exception\", \"page_miss\", \"timer0\", \"timer1\", \"message\", \"dma0\", \"dma1\", \"wand\" o \"swi\""
28999
29000-#: config/epiphany/epiphany.c:1428
29001+#: config/epiphany/epiphany.c:1431
29002 #, gcc-internal-format
29003 msgid "stack_offset must be at least 4"
29004 msgstr "stack_offset debe ser por lo menos 4"
29005
29006-#: config/epiphany/epiphany.c:1430
29007+#: config/epiphany/epiphany.c:1433
29008 #, gcc-internal-format
29009 msgid "stack_offset must be a multiple of 4"
29010 msgstr "stack_offset debe ser un múltiplo de 4"
29011@@ -23390,7 +23576,7 @@
29012 msgid "-mno-fentry isn%'t compatible with SEH"
29013 msgstr "-mno-fentry no es compatible con SEH"
29014
29015-#: config/i386/i386.c:3861 config/rs6000/rs6000.c:3318
29016+#: config/i386/i386.c:3861 config/rs6000/rs6000.c:3331
29017 #, gcc-internal-format, gfc-internal-format
29018 msgid "unknown option for -mrecip=%s"
29019 msgstr "opción desconocida para -mrecip=%s"
29020@@ -23415,7 +23601,7 @@
29021 msgid "regparam and thiscall attributes are not compatible"
29022 msgstr "los atributos regparam y thiscall no son compatibles"
29023
29024-#: config/i386/i386.c:4924 config/i386/i386.c:31732
29025+#: config/i386/i386.c:4924 config/i386/i386.c:31766
29026 #, gcc-internal-format
29027 msgid "%qE attribute requires an integer constant argument"
29028 msgstr "el atributo %qE requiere un argumento constante entero"
29029@@ -23567,112 +23753,112 @@
29030 msgid "-fsplit-stack does not support 3 register parameters"
29031 msgstr "-fsplit-stack no admite 3 parámetros de registro"
29032
29033-#: config/i386/i386.c:13557
29034+#: config/i386/i386.c:13584
29035 #, gcc-internal-format
29036 msgid "extended registers have no high halves"
29037 msgstr "los registros extendidos no tiene mitades superiores"
29038
29039-#: config/i386/i386.c:13572
29040+#: config/i386/i386.c:13599
29041 #, gcc-internal-format
29042 msgid "unsupported operand size for extended register"
29043 msgstr "no se admite el tamaño de operando para el registro extendido"
29044
29045-#: config/i386/i386.c:13819
29046+#: config/i386/i386.c:13846
29047 #, gcc-internal-format, gfc-internal-format
29048 msgid "non-integer operand used with operand code '%c'"
29049 msgstr "se usó un operando que no es entero con el código de operando '%c'"
29050
29051-#: config/i386/i386.c:27703 config/i386/i386.c:28640
29052+#: config/i386/i386.c:27737 config/i386/i386.c:28674
29053 #, gcc-internal-format
29054 msgid "the last argument must be a 2-bit immediate"
29055 msgstr "el tercer argumento debe ser un inmediato de 2-bit"
29056
29057-#: config/i386/i386.c:28109
29058+#: config/i386/i386.c:28143
29059 #, gcc-internal-format
29060 msgid "the fifth argument must be an 8-bit immediate"
29061 msgstr "el quinto argumento debe ser un inmediato de 8-bit"
29062
29063-#: config/i386/i386.c:28204
29064+#: config/i386/i386.c:28238
29065 #, gcc-internal-format
29066 msgid "the third argument must be an 8-bit immediate"
29067 msgstr "el tercer argumento debe ser un inmediato de 8-bit"
29068
29069-#: config/i386/i386.c:28612
29070+#: config/i386/i386.c:28646
29071 #, gcc-internal-format
29072 msgid "the last argument must be an 1-bit immediate"
29073 msgstr "el último argumento debe ser un inmediato de 1-bit"
29074
29075-#: config/i386/i386.c:28631
29076+#: config/i386/i386.c:28665
29077 #, gcc-internal-format
29078 msgid "the last argument must be a 4-bit immediate"
29079 msgstr "el último argumento debe ser un inmediato de 4-bit"
29080
29081-#: config/i386/i386.c:28649
29082+#: config/i386/i386.c:28683
29083 #, gcc-internal-format
29084 msgid "the last argument must be a 1-bit immediate"
29085 msgstr "el último argumento debe ser un inmediato de 1-bit"
29086
29087-#: config/i386/i386.c:28658
29088+#: config/i386/i386.c:28692
29089 #, gcc-internal-format
29090 msgid "the last argument must be a 5-bit immediate"
29091 msgstr "el tercer argumento debe ser un inmediato de 5-bit"
29092
29093-#: config/i386/i386.c:28667
29094+#: config/i386/i386.c:28701
29095 #, gcc-internal-format
29096 msgid "the next to last argument must be an 8-bit immediate"
29097 msgstr "el penúltimo argumento debe ser un inmediato de 8-bit"
29098
29099-#: config/i386/i386.c:28671 config/i386/i386.c:28895
29100+#: config/i386/i386.c:28705 config/i386/i386.c:28929
29101 #, gcc-internal-format
29102 msgid "the last argument must be an 8-bit immediate"
29103 msgstr "el último argumento debe ser un inmediato de 8-bit"
29104
29105-#: config/i386/i386.c:28893
29106+#: config/i386/i386.c:28927
29107 #, gcc-internal-format
29108 msgid "the last argument must be a 32-bit immediate"
29109 msgstr "el último argumento debe ser un inmediato de 32-bit"
29110
29111-#: config/i386/i386.c:28961 config/rs6000/rs6000.c:10535
29112+#: config/i386/i386.c:28995 config/rs6000/rs6000.c:10551
29113 #, gcc-internal-format
29114 msgid "selector must be an integer constant in the range 0..%wi"
29115 msgstr "el selector debe ser una constante entera en el rango 0..%wi"
29116
29117-#: config/i386/i386.c:29104
29118+#: config/i386/i386.c:29138
29119 #, gcc-internal-format
29120 msgid "%qE needs unknown isa option"
29121 msgstr "%qE necesita la opción isa desconocida"
29122
29123-#: config/i386/i386.c:29108
29124+#: config/i386/i386.c:29142
29125 #, gcc-internal-format
29126 msgid "%qE needs isa option %s"
29127 msgstr "%qE necesita la opción isa %s"
29128
29129-#: config/i386/i386.c:29279
29130+#: config/i386/i386.c:29313
29131 #, gcc-internal-format
29132 msgid "last argument must be an immediate"
29133 msgstr "el último argumento debe ser un inmediato"
29134
29135-#: config/i386/i386.c:29473
29136+#: config/i386/i386.c:29507
29137 #, gcc-internal-format
29138 msgid "last argument must be scale 1, 2, 4, 8"
29139 msgstr "el argumento izquierdo debe ser un escalar 1, 2, 4, 8"
29140
29141-#: config/i386/i386.c:31719
29142+#: config/i386/i386.c:31753
29143 #, gcc-internal-format
29144 msgid "%qE attribute only available for 32-bit"
29145 msgstr "el atributo %qE solamente está disponible para 64-bit"
29146
29147-#: config/i386/i386.c:31740
29148+#: config/i386/i386.c:31774
29149 #, gcc-internal-format
29150 msgid "argument to %qE attribute is neither zero, nor one"
29151 msgstr "el argumento del atributo %qE no es cero ni uno"
29152
29153-#: config/i386/i386.c:31774 config/i386/i386.c:31783
29154+#: config/i386/i386.c:31808 config/i386/i386.c:31817
29155 #, gcc-internal-format
29156 msgid "ms_abi and sysv_abi attributes are not compatible"
29157 msgstr "los atributos ms_abi y sysv_abi no son compatibles"
29158
29159-#: config/i386/i386.c:31821 config/rs6000/rs6000.c:24327
29160+#: config/i386/i386.c:31855 config/rs6000/rs6000.c:24344
29161 #, gcc-internal-format
29162 msgid "%qE incompatible attribute ignored"
29163 msgstr "se descarta el atributo incompatible %qE"
29164@@ -23742,13 +23928,13 @@
29165 msgid "%qE attribute requires a string constant argument"
29166 msgstr "el atributo %qE requiere una constante entera como argumento"
29167
29168-#: config/ia64/ia64.c:5737 config/pa/pa.c:412 config/sh/sh.c:8733
29169+#: config/ia64/ia64.c:5737 config/pa/pa.c:412 config/sh/sh.c:8738
29170 #: config/spu/spu.c:5187
29171 #, gcc-internal-format
29172 msgid "value of -mfixed-range must have form REG1-REG2"
29173 msgstr "el valor de -mfixed-range debe ser de la forma REG1-REG2"
29174
29175-#: config/ia64/ia64.c:5764 config/pa/pa.c:439 config/sh/sh.c:8759
29176+#: config/ia64/ia64.c:5764 config/pa/pa.c:439 config/sh/sh.c:8764
29177 #: config/spu/spu.c:5213
29178 #, gcc-internal-format, gfc-internal-format
29179 msgid "%s-%s is an empty range"
29180@@ -23820,7 +24006,7 @@
29181 msgstr "no se admite el atributo %qE para el objetivo R8C"
29182
29183 #. The argument must be a constant integer.
29184-#: config/m32c/m32c.c:3169 config/sh/sh.c:8940 config/sh/sh.c:9046
29185+#: config/m32c/m32c.c:3169 config/sh/sh.c:8945 config/sh/sh.c:9051
29186 #, gcc-internal-format
29187 msgid "%qE attribute argument not an integer constant"
29188 msgstr "el argumento del atributo %qE no es una constante entera"
29189@@ -23875,7 +24061,7 @@
29190 msgid "interrupt_thread is available only on fido"
29191 msgstr "interrupt_thread sólo está disponible en fido"
29192
29193-#: config/m68k/m68k.c:1072 config/rs6000/rs6000.c:18605
29194+#: config/m68k/m68k.c:1072 config/rs6000/rs6000.c:18621
29195 #, gcc-internal-format
29196 msgid "stack limit expression is not supported"
29197 msgstr "no se admite la expresión del límite de la pila"
29198@@ -24168,112 +24354,112 @@
29199 msgid "-mxl-multiply-high requires -mno-xl-soft-mul"
29200 msgstr "-mxl-multiply-high requiere -mno-xl-soft-mul"
29201
29202-#: config/mips/mips.c:1273 config/mips/mips.c:1275
29203+#: config/mips/mips.c:1282 config/mips/mips.c:1284
29204 #, gcc-internal-format
29205 msgid "%qs attribute only applies to functions"
29206 msgstr "el atributo %qs se aplica solamente a funciones"
29207
29208-#: config/mips/mips.c:1285
29209+#: config/mips/mips.c:1294
29210 #, gcc-internal-format
29211 msgid "%qE cannot have both %<mips16%> and %<nomips16%> attributes"
29212 msgstr "%qE no puede tener atributos %<mips16%> y %<nomips16%> al mismo tiempo"
29213
29214-#: config/mips/mips.c:1307 config/mips/mips.c:1310
29215+#: config/mips/mips.c:1316 config/mips/mips.c:1319
29216 #, gcc-internal-format
29217 msgid "%qE redeclared with conflicting %qs attributes"
29218 msgstr "%qE se redeclaró con los atributos %qs en conflicto"
29219
29220-#: config/mips/mips.c:6408
29221+#: config/mips/mips.c:6570
29222 #, gcc-internal-format
29223 msgid "cannot handle inconsistent calls to %qs"
29224 msgstr "no se pueden manejar llamadas inconsistentes a %qs"
29225
29226-#: config/mips/mips.c:9352
29227+#: config/mips/mips.c:9523
29228 #, gcc-internal-format
29229 msgid "the %<interrupt%> attribute requires a MIPS32r2 processor"
29230 msgstr "el atributo %<interrupt%> requiere un procesador MIPS32r2"
29231
29232-#: config/mips/mips.c:9354
29233+#: config/mips/mips.c:9525
29234 #, gcc-internal-format
29235 msgid "the %<interrupt%> attribute requires %<-msoft-float%>"
29236 msgstr "el atributo %<interrupt%> requiere %<-msoft-float%>"
29237
29238-#: config/mips/mips.c:9356
29239+#: config/mips/mips.c:9527
29240 #, gcc-internal-format
29241 msgid "interrupt handlers cannot be MIPS16 functions"
29242 msgstr "los manejadores de interrupciones no pueden ser funciones MIPS16"
29243
29244-#: config/mips/mips.c:13418
29245+#: config/mips/mips.c:13589
29246 #, gcc-internal-format
29247 msgid "invalid argument to built-in function"
29248 msgstr "argumento inválido para la función interna"
29249
29250-#: config/mips/mips.c:13618
29251+#: config/mips/mips.c:13789
29252 #, gcc-internal-format
29253 msgid "built-in function %qE not supported for MIPS16"
29254 msgstr "no se admite la función interna %qE para MIPS16"
29255
29256-#: config/mips/mips.c:14210
29257+#: config/mips/mips.c:14381
29258 #, gcc-internal-format
29259 msgid "%qs does not support MIPS16 code"
29260 msgstr "%qs no admite código MIPS16"
29261
29262-#: config/mips/mips.c:15452
29263+#: config/mips/mips.c:15623
29264 #, gcc-internal-format
29265 msgid "MIPS16 PIC for ABIs other than o32 and o64"
29266 msgstr "PIC MIPS16 para ABIs diferentes de o32 y o64"
29267
29268-#: config/mips/mips.c:15455
29269+#: config/mips/mips.c:15626
29270 #, gcc-internal-format
29271 msgid "MIPS16 -mxgot code"
29272 msgstr "código MIPS16 -mxgot"
29273
29274-#: config/mips/mips.c:15458
29275+#: config/mips/mips.c:15629
29276 #, gcc-internal-format
29277 msgid "hard-float MIPS16 code for ABIs other than o32 and o64"
29278 msgstr "código MIPS16 de coma flotante hard para ABIs diferentes de o32 y o64"
29279
29280-#: config/mips/mips.c:15647
29281+#: config/mips/mips.c:15818
29282 #, gcc-internal-format
29283 msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
29284 msgstr "%<-%s%> genera un conflicto con las otras opciones de la arquitectura, las cuales especifican un procesador %s"
29285
29286-#: config/mips/mips.c:15657
29287+#: config/mips/mips.c:15828
29288 #, gcc-internal-format
29289 msgid "%<-march=%s%> is not compatible with the selected ABI"
29290 msgstr "%<-march=%s%> no es compatible con la ABI seleccionada"
29291
29292-#: config/mips/mips.c:15672
29293+#: config/mips/mips.c:15843
29294 #, gcc-internal-format
29295 msgid "%<-mgp64%> used with a 32-bit processor"
29296 msgstr "se utiliza %<-mgp64%> con un procesador de 32-bit"
29297
29298-#: config/mips/mips.c:15674
29299+#: config/mips/mips.c:15845
29300 #, gcc-internal-format
29301 msgid "%<-mgp32%> used with a 64-bit ABI"
29302 msgstr "se utiliza %<-mgp32%> con una ABI de 64-bit"
29303
29304-#: config/mips/mips.c:15676
29305+#: config/mips/mips.c:15847
29306 #, gcc-internal-format
29307 msgid "%<-mgp64%> used with a 32-bit ABI"
29308 msgstr "se utiliza %<-mgp64%> con una ABI de 32-bit"
29309
29310-#: config/mips/mips.c:15692 config/mips/mips.c:15694 config/mips/mips.c:15785
29311+#: config/mips/mips.c:15863 config/mips/mips.c:15865 config/mips/mips.c:15956
29312 #, gcc-internal-format, gfc-internal-format
29313 msgid "unsupported combination: %s"
29314 msgstr "no se admite la combinación: %s"
29315
29316-#: config/mips/mips.c:15698
29317+#: config/mips/mips.c:15869
29318 #, gcc-internal-format
29319 msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions"
29320 msgstr "%<-mgp32%> y %<-mfp64%> sólo se pueden combinar si el objetivo admite las instrucciones mfhc1 y mthc1"
29321
29322-#: config/mips/mips.c:15701
29323+#: config/mips/mips.c:15872
29324 #, gcc-internal-format
29325 msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
29326 msgstr "%<-mgp32%> y %<-mfp64%> sólo se pueden combinar al usar la ABI o32"
29327
29328-#: config/mips/mips.c:15724 config/mips/mips.c:15726 config/mips/mips.c:15739
29329+#: config/mips/mips.c:15895 config/mips/mips.c:15897 config/mips/mips.c:15910
29330 #, gcc-internal-format
29331 msgid "%qs is incompatible with %qs"
29332 msgstr "%qs es incompatible con %qs"
29333@@ -24283,57 +24469,57 @@
29334 #. effort to support the combination of 32-bit GOT entries
29335 #. and 64-bit pointers, so we treat the abicalls case as
29336 #. an error.
29337-#: config/mips/mips.c:15733
29338+#: config/mips/mips.c:15904
29339 #, gcc-internal-format
29340 msgid "the combination of %qs and %qs is incompatible with %qs"
29341 msgstr "la combinacion de %qs y %qs es incompatible con %qs"
29342
29343-#: config/mips/mips.c:15779
29344+#: config/mips/mips.c:15950
29345 #, gcc-internal-format
29346 msgid "the %qs architecture does not support branch-likely instructions"
29347 msgstr "la arquitectura %qs no admite las instrucciones con probabilidad de ramificación"
29348
29349-#: config/mips/mips.c:15819
29350+#: config/mips/mips.c:15990
29351 #, gcc-internal-format
29352 msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
29353 msgstr "%<-mno-gpopt%> necesita %<-mexplicit-relocs%>"
29354
29355-#: config/mips/mips.c:15827 config/mips/mips.c:15830
29356+#: config/mips/mips.c:15998 config/mips/mips.c:16001
29357 #, gcc-internal-format
29358 msgid "cannot use small-data accesses for %qs"
29359 msgstr "no se pueden usar accesos de data small para %qs"
29360
29361-#: config/mips/mips.c:15844
29362+#: config/mips/mips.c:16015
29363 #, gcc-internal-format
29364 msgid "%<-mips3d%> requires %<-mpaired-single%>"
29365 msgstr "%<-mips3d%> requiere %<-mpaired-single%>"
29366
29367-#: config/mips/mips.c:15853
29368+#: config/mips/mips.c:16024
29369 #, gcc-internal-format
29370 msgid "%qs must be used with %qs"
29371 msgstr "%qs se debe usar con %qs"
29372
29373-#: config/mips/mips.c:15860
29374+#: config/mips/mips.c:16031
29375 #, gcc-internal-format
29376 msgid "the %qs architecture does not support paired-single instructions"
29377 msgstr "la arquitectura %qs no admite las instrucciones par-sencillo"
29378
29379-#: config/mips/mips.c:15866
29380+#: config/mips/mips.c:16037
29381 #, gcc-internal-format
29382 msgid "%qs requires a target that provides the %qs instruction"
29383 msgstr "%qs requiere un objetivo que provea la instrucción %qs"
29384
29385-#: config/mips/mips.c:15971
29386+#: config/mips/mips.c:16142
29387 #, gcc-internal-format
29388 msgid "%qs requires branch-likely instructions"
29389 msgstr "%qs requiere instrucciones con probabilidad de ramificación"
29390
29391-#: config/mips/mips.c:15975
29392+#: config/mips/mips.c:16146
29393 #, gcc-internal-format
29394 msgid "the %qs architecture does not support the synci instruction"
29395 msgstr "la arquitectura %qs no admite la instrucción synci"
29396
29397-#: config/mips/mips.c:16425
29398+#: config/mips/mips.c:16596
29399 #, gcc-internal-format
29400 msgid "mips16 function profiling"
29401 msgstr "análisis de perfil de las funciones mips16"
29402@@ -24414,7 +24600,7 @@
29403 msgid "-g option disabled"
29404 msgstr "opción -g desactivada"
29405
29406-#: config/pa/pa.c:8598
29407+#: config/pa/pa.c:8619
29408 #, gcc-internal-format, gfc-internal-format
29409 msgid "alignment (%u) for %s exceeds maximum alignment for global common data. Using %u"
29410 msgstr "la alineación (%u) para %s excede la alineación máxima para los datos comunes globales. Se usará %u"
29411@@ -24634,288 +24820,288 @@
29412 msgid "-m64 requires PowerPC64 architecture, enabling"
29413 msgstr "-m64 requiere la arquitectura PowerPC64, activando"
29414
29415-#: config/rs6000/rs6000.c:2615
29416+#: config/rs6000/rs6000.c:2616
29417 #, gcc-internal-format
29418 msgid "-malign-power is not supported for 64-bit Darwin; it is incompatible with the installed C and C++ libraries"
29419 msgstr "no se admite -malign-power para Darwin de 64-bit; es incompatible con las bibliotecas C y C++ instaladas"
29420
29421-#: config/rs6000/rs6000.c:2621
29422+#: config/rs6000/rs6000.c:2622
29423 #, gcc-internal-format
29424 msgid "not configured for SPE ABI"
29425 msgstr "no se configuró para ABI SPE"
29426
29427-#: config/rs6000/rs6000.c:2697
29428+#: config/rs6000/rs6000.c:2710
29429 #, gcc-internal-format
29430 msgid "AltiVec not supported in this target"
29431 msgstr "no se admite AltiVec en este objetivo"
29432
29433-#: config/rs6000/rs6000.c:2699
29434+#: config/rs6000/rs6000.c:2712
29435 #, gcc-internal-format
29436 msgid "SPE not supported in this target"
29437 msgstr "no se admite SPE en este objetivo"
29438
29439-#: config/rs6000/rs6000.c:2726
29440+#: config/rs6000/rs6000.c:2739
29441 #, gcc-internal-format
29442 msgid "-mmultiple is not supported on little endian systems"
29443 msgstr "no se admite -mmultiple en sistemas little endian"
29444
29445-#: config/rs6000/rs6000.c:2733
29446+#: config/rs6000/rs6000.c:2746
29447 #, gcc-internal-format
29448 msgid "-mstring is not supported on little endian systems"
29449 msgstr "no se admite -mstring en sistemas little endian"
29450
29451-#: config/rs6000/rs6000.c:2839
29452+#: config/rs6000/rs6000.c:2852
29453 #, gcc-internal-format, gfc-internal-format
29454 msgid "unknown vectorization library ABI type (%s) for -mveclibabi= switch"
29455 msgstr "tipo de ABI de biblioteca de vectorización desconocida (%s) para la opción -mveclibabi="
29456
29457-#: config/rs6000/rs6000.c:2851
29458+#: config/rs6000/rs6000.c:2864
29459 #, gcc-internal-format
29460 msgid "target attribute or pragma changes long double size"
29461 msgstr "el atributo o pragma target cambia el tamaño de double long"
29462
29463-#: config/rs6000/rs6000.c:2872 config/rs6000/rs6000.c:2887
29464+#: config/rs6000/rs6000.c:2885 config/rs6000/rs6000.c:2900
29465 #, gcc-internal-format
29466 msgid "target attribute or pragma changes AltiVec ABI"
29467 msgstr "el atributo o pragma target cambia la ABI Altivec"
29468
29469-#: config/rs6000/rs6000.c:2904
29470+#: config/rs6000/rs6000.c:2917
29471 #, gcc-internal-format
29472 msgid "target attribute or pragma changes darwin64 ABI"
29473 msgstr "el atributo o pragma target cambia la ABI darwin64"
29474
29475-#: config/rs6000/rs6000.c:2945
29476+#: config/rs6000/rs6000.c:2958
29477 #, gcc-internal-format
29478 msgid "target attribute or pragma changes SPE ABI"
29479 msgstr "el atributo o pragma target cabia la ABI SPE"
29480
29481-#: config/rs6000/rs6000.c:3268
29482+#: config/rs6000/rs6000.c:3281
29483 #, gcc-internal-format
29484 msgid "target attribute or pragma changes single precision floating point"
29485 msgstr "el atributo o pragma target cambia la coma flotante de precisión sencilla"
29486
29487-#: config/rs6000/rs6000.c:3271
29488+#: config/rs6000/rs6000.c:3284
29489 #, gcc-internal-format
29490 msgid "target attribute or pragma changes double precision floating point"
29491 msgstr "el atributo o pragma target cambia la coma flotante de precisión doble"
29492
29493-#: config/rs6000/rs6000.c:7407
29494+#: config/rs6000/rs6000.c:7420
29495 #, gcc-internal-format
29496 msgid "GCC vector returned by reference: non-standard ABI extension with no compatibility guarantee"
29497 msgstr "Se devolvió un vector GCC por referencia: extensión de ABI no estándar sin garantía de compatibilidad"
29498
29499-#: config/rs6000/rs6000.c:7545
29500+#: config/rs6000/rs6000.c:7561
29501 #, gcc-internal-format
29502 msgid "cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them"
29503 msgstr "no se puede devolver un valor en el registro vector porque las instrucciones altivec están desactivadas, use -maltivec para activarlas"
29504
29505-#: config/rs6000/rs6000.c:7888
29506+#: config/rs6000/rs6000.c:7904
29507 #, gcc-internal-format
29508 msgid "cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them"
29509 msgstr "no se puede pasar argumentos en el registro vector porque las instrucciones altivec están desactivadas, use -maltivec para activarlas"
29510
29511-#: config/rs6000/rs6000.c:8814
29512+#: config/rs6000/rs6000.c:8830
29513 #, gcc-internal-format
29514 msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
29515 msgstr "vector GCC pasado por referencia: extensión ABI que no es estándar sin garantía de compatibilidad"
29516
29517-#: config/rs6000/rs6000.c:9443
29518+#: config/rs6000/rs6000.c:9459
29519 #, gcc-internal-format, gfc-internal-format
29520 msgid "internal error: builtin function %s already processed"
29521 msgstr "error interno: la función interna %s ya se procesó"
29522
29523-#: config/rs6000/rs6000.c:9816
29524+#: config/rs6000/rs6000.c:9832
29525 #, gcc-internal-format
29526 msgid "argument 1 must be a 5-bit signed literal"
29527 msgstr "el argumento 1 debe ser una literal con signo de 5-bit"
29528
29529-#: config/rs6000/rs6000.c:9919 config/rs6000/rs6000.c:10936
29530+#: config/rs6000/rs6000.c:9935 config/rs6000/rs6000.c:10952
29531 #, gcc-internal-format
29532 msgid "argument 2 must be a 5-bit unsigned literal"
29533 msgstr "el argumento 2 debe ser una literal sin signo de 5-bit"
29534
29535-#: config/rs6000/rs6000.c:9958
29536+#: config/rs6000/rs6000.c:9974
29537 #, gcc-internal-format
29538 msgid "argument 1 of __builtin_altivec_predicate must be a constant"
29539 msgstr "el argumento 1 de __builtin_altivec_predicate debe ser una constante"
29540
29541-#: config/rs6000/rs6000.c:10010
29542+#: config/rs6000/rs6000.c:10026
29543 #, gcc-internal-format
29544 msgid "argument 1 of __builtin_altivec_predicate is out of range"
29545 msgstr "el argumento 1 de __builtin_altivec_predicate está fuera de rango"
29546
29547-#: config/rs6000/rs6000.c:10267
29548+#: config/rs6000/rs6000.c:10283
29549 #, gcc-internal-format
29550 msgid "argument 3 must be a 4-bit unsigned literal"
29551 msgstr "el argumento 3 debe ser una literal sin signo de 4-bit"
29552
29553-#: config/rs6000/rs6000.c:10285
29554+#: config/rs6000/rs6000.c:10301
29555 #, gcc-internal-format
29556 msgid "argument 3 must be a 2-bit unsigned literal"
29557 msgstr "el argumento 3 debe ser una literal sin signo de 2-bit"
29558
29559-#: config/rs6000/rs6000.c:10297
29560+#: config/rs6000/rs6000.c:10313
29561 #, gcc-internal-format
29562 msgid "argument 3 must be a 1-bit unsigned literal"
29563 msgstr "el argumento 3 debe ser una literal sin signo de 1-bit"
29564
29565-#: config/rs6000/rs6000.c:10480
29566+#: config/rs6000/rs6000.c:10496
29567 #, gcc-internal-format
29568 msgid "argument to %qs must be a 2-bit unsigned literal"
29569 msgstr "el argumento para %qs debe ser una literal sin signo de 2-bit"
29570
29571-#: config/rs6000/rs6000.c:10621
29572+#: config/rs6000/rs6000.c:10637
29573 #, gcc-internal-format
29574 msgid "unresolved overload for Altivec builtin %qF"
29575 msgstr "sobrecarga sin resolver para el interno Altivec %qF"
29576
29577-#: config/rs6000/rs6000.c:10727
29578+#: config/rs6000/rs6000.c:10743
29579 #, gcc-internal-format
29580 msgid "argument to dss must be a 2-bit unsigned literal"
29581 msgstr "el argumento para dss debe ser una literal sin signo de 2-bit"
29582
29583 # continuar aqui
29584-#: config/rs6000/rs6000.c:11056
29585+#: config/rs6000/rs6000.c:11072
29586 #, gcc-internal-format
29587 msgid "argument 1 of __builtin_paired_predicate must be a constant"
29588 msgstr "el argumento 1 de __builtin_paired_predicate debe ser una constante"
29589
29590-#: config/rs6000/rs6000.c:11103
29591+#: config/rs6000/rs6000.c:11119
29592 #, gcc-internal-format
29593 msgid "argument 1 of __builtin_paired_predicate is out of range"
29594 msgstr "el argumento 1 de __builtin_paired_predicate está fuera de rango"
29595
29596-#: config/rs6000/rs6000.c:11128
29597+#: config/rs6000/rs6000.c:11144
29598 #, gcc-internal-format
29599 msgid "argument 1 of __builtin_spe_predicate must be a constant"
29600 msgstr "el argumento 1 de __builtin_spe_predicate debe ser una constante"
29601
29602-#: config/rs6000/rs6000.c:11200
29603+#: config/rs6000/rs6000.c:11216
29604 #, gcc-internal-format
29605 msgid "argument 1 of __builtin_spe_predicate is out of range"
29606 msgstr "el argumento 1 de __builtin_spe_predicate está fuera de rango"
29607
29608-#: config/rs6000/rs6000.c:11282
29609+#: config/rs6000/rs6000.c:11298
29610 #, gcc-internal-format, gfc-internal-format
29611 msgid "Builtin function %s is only valid for the cell processor"
29612 msgstr "La función interna %s sólo es válida para el procesador cell"
29613
29614-#: config/rs6000/rs6000.c:11284
29615+#: config/rs6000/rs6000.c:11300
29616 #, gcc-internal-format, gfc-internal-format
29617 msgid "Builtin function %s requires the -mvsx option"
29618 msgstr "La función interna %s requiere la opción -mvsx"
29619
29620-#: config/rs6000/rs6000.c:11286
29621+#: config/rs6000/rs6000.c:11302
29622 #, gcc-internal-format, gfc-internal-format
29623 msgid "Builtin function %s requires the -maltivec option"
29624 msgstr "La función interna %s requiere la opción -maltivec"
29625
29626-#: config/rs6000/rs6000.c:11288
29627+#: config/rs6000/rs6000.c:11304
29628 #, gcc-internal-format, gfc-internal-format
29629 msgid "Builtin function %s requires the -mpaired option"
29630 msgstr "La función interna %s requiere la opción -mpaired"
29631
29632-#: config/rs6000/rs6000.c:11290
29633+#: config/rs6000/rs6000.c:11306
29634 #, gcc-internal-format, gfc-internal-format
29635 msgid "Builtin function %s requires the -mspe option"
29636 msgstr "La función interna %s requiere la opción -mspe"
29637
29638-#: config/rs6000/rs6000.c:11292
29639+#: config/rs6000/rs6000.c:11308
29640 #, gcc-internal-format, gfc-internal-format
29641 msgid "Builtin function %s is not supported with the current options"
29642 msgstr "La función interna %s no se admite con las opciones actuales"
29643
29644-#: config/rs6000/rs6000.c:12552
29645+#: config/rs6000/rs6000.c:12568
29646 #, gcc-internal-format, gfc-internal-format
29647 msgid "internal error: builtin function %s had no type"
29648 msgstr "error interno: la función interna %s no tiene tipo"
29649
29650-#: config/rs6000/rs6000.c:12559
29651+#: config/rs6000/rs6000.c:12575
29652 #, gcc-internal-format, gfc-internal-format
29653 msgid "internal error: builtin function %s had an unexpected return type %s"
29654 msgstr "error interno: la función interna %s tiene un tipo de devolución inesperado %s"
29655
29656-#: config/rs6000/rs6000.c:12575
29657+#: config/rs6000/rs6000.c:12591
29658 #, gcc-internal-format, gfc-internal-format
29659 msgid "internal error: builtin function %s, argument %d had unexpected argument type %s"
29660 msgstr "error interno: función interna %s, el argumento %d tiene el tipo de argumento inesperado %s"
29661
29662-#: config/rs6000/rs6000.c:18575
29663+#: config/rs6000/rs6000.c:18591
29664 #, gcc-internal-format
29665 msgid "stack frame too large"
29666 msgstr "marco de pila demasiado grande"
29667
29668-#: config/rs6000/rs6000.c:22049
29669+#: config/rs6000/rs6000.c:22065
29670 #, gcc-internal-format
29671 msgid "no profiling of 64-bit code for this ABI"
29672 msgstr "no hay análisis de perfil del código de 64-bit para esta ABI"
29673
29674-#: config/rs6000/rs6000.c:24034
29675+#: config/rs6000/rs6000.c:24050
29676 #, gcc-internal-format
29677-msgid "-mno-r11 must not be used if you have trampolines"
29678-msgstr "no se debe usar -mno-r11 si tiene trampolines"
29679+msgid "You cannot take the address of a nested function if you use the -mno-pointers-to-nested-functions option."
29680+msgstr "No se puede tomar la dirección de una función anindada si se usa la opción -mno-pointers-to-nested-functions."
29681
29682-#: config/rs6000/rs6000.c:24114
29683+#: config/rs6000/rs6000.c:24131
29684 #, gcc-internal-format
29685 msgid "use of %<long double%> in AltiVec types is invalid"
29686 msgstr "el uso de %<long double%> en tipos AltiVec es inválido"
29687
29688-#: config/rs6000/rs6000.c:24116
29689+#: config/rs6000/rs6000.c:24133
29690 #, gcc-internal-format
29691 msgid "use of boolean types in AltiVec types is invalid"
29692 msgstr "el uso de tipos booleanos en tipos AltiVec es inválido"
29693
29694-#: config/rs6000/rs6000.c:24118
29695+#: config/rs6000/rs6000.c:24135
29696 #, gcc-internal-format
29697 msgid "use of %<complex%> in AltiVec types is invalid"
29698 msgstr "el uso de %<complex%> en tipos AltiVec es inválido"
29699
29700-#: config/rs6000/rs6000.c:24120
29701+#: config/rs6000/rs6000.c:24137
29702 #, gcc-internal-format
29703 msgid "use of decimal floating point types in AltiVec types is invalid"
29704 msgstr "el uso de tipos de coma flotante decimal en tipos AltiVec es inválido"
29705
29706-#: config/rs6000/rs6000.c:24126
29707+#: config/rs6000/rs6000.c:24143
29708 #, gcc-internal-format
29709 msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without -mvsx"
29710 msgstr "el uso de %<long%> en tipos AltiVec es inválido para código de 64 bit sin -mvsx"
29711
29712-#: config/rs6000/rs6000.c:24129
29713+#: config/rs6000/rs6000.c:24146
29714 #, gcc-internal-format
29715 msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
29716 msgstr "el uso de %<long%> en tipos AltiVec es obsoleto; use %<int%>"
29717
29718-#: config/rs6000/rs6000.c:24134
29719+#: config/rs6000/rs6000.c:24151
29720 #, gcc-internal-format
29721 msgid "use of %<long long%> in AltiVec types is invalid without -mvsx"
29722 msgstr "el uso de %<long long%> en tipos AltiVec es inválido sin -mvsx"
29723
29724-#: config/rs6000/rs6000.c:24137
29725+#: config/rs6000/rs6000.c:24154
29726 #, gcc-internal-format
29727 msgid "use of %<double%> in AltiVec types is invalid without -mvsx"
29728 msgstr "el uso de %<double%> en tipos AltiVec es inválido sin -mvsx"
29729
29730-#: config/rs6000/rs6000.c:26976
29731+#: config/rs6000/rs6000.c:26993
29732 #, gcc-internal-format, gfc-internal-format
29733 msgid "emitting microcode insn %s\t[%s] #%d"
29734 msgstr "se emite el insn de microcódigo %s\t[%s] #%d"
29735
29736-#: config/rs6000/rs6000.c:26980
29737+#: config/rs6000/rs6000.c:26997
29738 #, gcc-internal-format, gfc-internal-format
29739 msgid "emitting conditional microcode insn %s\t[%s] #%d"
29740 msgstr "se emite el insn de microcódigo condicional %s\t[%s] #%d"
29741
29742-#: config/rs6000/rs6000.c:27204
29743+#: config/rs6000/rs6000.c:27221
29744 #, gcc-internal-format, gfc-internal-format
29745 msgid "invalid cpu \"%s\" for %s\"%s\"%s"
29746 msgstr "cpu \"%s\" inválido para %s\"%s\"%s"
29747
29748-#: config/rs6000/rs6000.c:27207
29749+#: config/rs6000/rs6000.c:27224
29750 #, gcc-internal-format, gfc-internal-format
29751 msgid "%s\"%s\"%s is not allowed"
29752 msgstr "%s\"%s\"%s no está definido"
29753
29754-#: config/rs6000/rs6000.c:27209
29755+#: config/rs6000/rs6000.c:27226
29756 #, gcc-internal-format, gfc-internal-format
29757 msgid "%s\"%s\"%s is invalid"
29758 msgstr "%s\"%s\"%s es inválido"
29759@@ -25088,123 +25274,123 @@
29760 msgid "64-bit ABI not supported in ESA/390 mode"
29761 msgstr "no se admite la ABI de 64-bit en el modo ESA/390"
29762
29763-#: config/s390/s390.c:1548
29764+#: config/s390/s390.c:1553
29765 #, gcc-internal-format, gfc-internal-format
29766 msgid "hardware decimal floating point instructions not available on %s"
29767 msgstr "las instrucciones de coma flotante decimal de hardware no están disponibles en %s"
29768
29769-#: config/s390/s390.c:1551
29770+#: config/s390/s390.c:1556
29771 #, gcc-internal-format
29772 msgid "hardware decimal floating point instructions not available in ESA/390 mode"
29773 msgstr "las instrucciones de coma flotante decimal de hardware no están disponibles en el modo ESA/390"
29774
29775-#: config/s390/s390.c:1561
29776+#: config/s390/s390.c:1566
29777 #, gcc-internal-format
29778 msgid "-mhard-dfp can%'t be used in conjunction with -msoft-float"
29779 msgstr "-mhard-dfp no se puede usar en conjunción con -msoft-float"
29780
29781-#: config/s390/s390.c:1585
29782+#: config/s390/s390.c:1590
29783 #, gcc-internal-format
29784 msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination"
29785 msgstr "no se admiten -mbackchain -mpacked-stack -mhard-float en combinación"
29786
29787-#: config/s390/s390.c:1591
29788+#: config/s390/s390.c:1596
29789 #, gcc-internal-format
29790 msgid "stack size must be greater than the stack guard value"
29791 msgstr "el tamaño de la pila debe ser mayor que el valor de la guardia de pila"
29792
29793-#: config/s390/s390.c:1593
29794+#: config/s390/s390.c:1598
29795 #, gcc-internal-format
29796 msgid "stack size must not be greater than 64k"
29797 msgstr "el tamaño de la pila no debe ser mayor a 64k"
29798
29799-#: config/s390/s390.c:1596
29800+#: config/s390/s390.c:1601
29801 #, gcc-internal-format
29802 msgid "-mstack-guard implies use of -mstack-size"
29803 msgstr "-mstack-guard implica el uso de -mstack-size"
29804
29805-#: config/s390/s390.c:7365
29806+#: config/s390/s390.c:7370
29807 #, gcc-internal-format
29808 msgid "total size of local variables exceeds architecture limit"
29809 msgstr "el tamaño total de las variables locales excede el límite de la arquitectura"
29810
29811-#: config/s390/s390.c:8072
29812+#: config/s390/s390.c:8077
29813 #, gcc-internal-format
29814 msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes. An unconditional trap is added."
29815 msgstr "el tamaño de marco de la función %qs de %wd bytes excede el límite de pila definido por el usuario de %d bytes. Se agrega una trampa incondicional."
29816
29817-#: config/s390/s390.c:8087
29818+#: config/s390/s390.c:8092
29819 #, gcc-internal-format
29820 msgid "frame size of function %qs is %wd bytes which is more than half the stack size. The dynamic check would not be reliable. No check emitted for this function."
29821 msgstr "el tamaño de marco de la función %qs de %wd bytes es mayor que la mitad del tamaño de la pila. La revisión dinámica no será confiable. No se emitirá revisión para esta función."
29822
29823-#: config/s390/s390.c:8115
29824+#: config/s390/s390.c:8120
29825 #, gcc-internal-format
29826 msgid "frame size of %qs is %wd bytes"
29827 msgstr "el tamaño de marco de %qs es de %wd bytes"
29828
29829-#: config/s390/s390.c:8119
29830+#: config/s390/s390.c:8124
29831 #, gcc-internal-format
29832 msgid "%qs uses dynamic stack allocation"
29833 msgstr "%qs utiliza alojamiento dinámico de pila"
29834
29835-#: config/sh/sh.c:770
29836+#: config/sh/sh.c:775
29837 #, gcc-internal-format
29838 msgid "ignoring -fschedule-insns because of exception handling bug"
29839 msgstr "se descarta -fschedule-insns debido a un error de manejo de excepciones"
29840
29841-#: config/sh/sh.c:791
29842+#: config/sh/sh.c:796
29843 #, gcc-internal-format
29844 msgid "unwind tables currently require either a frame pointer or -maccumulate-outgoing-args for correctness"
29845 msgstr "actualmente las tablas de desenredo requieren un puntero de marco o -maccumulate-outgoing-args para ser correctas"
29846
29847-#: config/sh/sh.c:7655
29848+#: config/sh/sh.c:7660
29849 #, gcc-internal-format
29850 msgid "__builtin_saveregs not supported by this subtarget"
29851 msgstr "no se admite __builtin_saveregs en este subobjetivo"
29852
29853-#: config/sh/sh.c:8821
29854+#: config/sh/sh.c:8826
29855 #, gcc-internal-format
29856 msgid "%qE attribute only applies to interrupt functions"
29857 msgstr "el atributo %qE se aplica solamente a funciones de interrupción"
29858
29859-#: config/sh/sh.c:8879
29860+#: config/sh/sh.c:8884
29861 #, gcc-internal-format
29862 msgid "%qE attribute is supported only for SH2A"
29863 msgstr "el atributo %qE solo se admite para SH2A"
29864
29865-#: config/sh/sh.c:8909
29866+#: config/sh/sh.c:8914
29867 #, gcc-internal-format
29868 msgid "attribute interrupt_handler is not compatible with -m5-compact"
29869 msgstr "el atributo interrupt_handler no es compatible con -m5-compact"
29870
29871-#: config/sh/sh.c:8926
29872+#: config/sh/sh.c:8931
29873 #, gcc-internal-format
29874 msgid "%qE attribute only applies to SH2A"
29875 msgstr "el atributo %qE solo se aplica a SH2A"
29876
29877-#: config/sh/sh.c:8948
29878+#: config/sh/sh.c:8953
29879 #, gcc-internal-format
29880 msgid "%qE attribute argument should be between 0 to 255"
29881 msgstr "el argumento del atributo %qE debe estar entre 0 y 255"
29882
29883 #. The argument must be a constant string.
29884-#: config/sh/sh.c:9021
29885+#: config/sh/sh.c:9026
29886 #, gcc-internal-format
29887 msgid "%qE attribute argument not a string constant"
29888 msgstr "el argumento del atributo %qE no es una constante de cadena"
29889
29890-#: config/sh/sh.c:11601
29891+#: config/sh/sh.c:11599
29892 #, gcc-internal-format
29893 msgid "r0 needs to be available as a call-clobbered register"
29894 msgstr "r0 necesita estar disponible como un registro sobreescrito por llamada"
29895
29896-#: config/sh/sh.c:11622
29897+#: config/sh/sh.c:11620
29898 #, gcc-internal-format
29899 msgid "need a second call-clobbered general purpose register"
29900 msgstr "se necesita un segundo registro de propósito general sobreescrito por llamada"
29901
29902-#: config/sh/sh.c:11630
29903+#: config/sh/sh.c:11628
29904 #, gcc-internal-format
29905 msgid "need a call-clobbered target register"
29906 msgstr "se necesita un registro objetivo sobreescrito por llamada"
29907@@ -25326,6 +25512,16 @@
29908 msgid "__BELOW100__ attribute not allowed with auto storage class"
29909 msgstr "no se permite el atributo __BELOW100__ con una clase de auto almacenamiento"
29910
29911+#: config/tilegx/tilegx.c:3397 config/tilepro/tilepro.c:3101
29912+#, gcc-internal-format
29913+msgid "bad builtin icode"
29914+msgstr "icode interno erróneo"
29915+
29916+#: config/tilegx/tilegx.c:3438 config/tilepro/tilepro.c:3127
29917+#, gcc-internal-format
29918+msgid "operand must be an immediate of the right size"
29919+msgstr "el operando debe ser un inmediato del tamaño correcto"
29920+
29921 #: config/v850/v850-c.c:67
29922 #, gcc-internal-format
29923 msgid "#pragma GHS endXXXX found without previous startXXX"
29924@@ -25536,38 +25732,38 @@
29925 msgid "-fexcess-precision=standard for Ada"
29926 msgstr "-fexcess-precision=standard para Ada"
29927
29928-#: ada/gcc-interface/utils.c:5289 ada/gcc-interface/utils.c:5464
29929-#: ada/gcc-interface/utils.c:5506 ada/gcc-interface/utils.c:5560
29930+#: ada/gcc-interface/utils.c:5295 ada/gcc-interface/utils.c:5470
29931+#: ada/gcc-interface/utils.c:5512 ada/gcc-interface/utils.c:5566
29932 #, gcc-internal-format
29933 msgid "%qs attribute ignored"
29934 msgstr "se descarta el atributo %qs"
29935
29936-#: ada/gcc-interface/utils.c:5407
29937+#: ada/gcc-interface/utils.c:5413
29938 #, gcc-internal-format
29939 msgid "%qs attribute requires prototypes with named arguments"
29940 msgstr "el atributo %qs requiere prototipos con argumentos nombrados"
29941
29942-#: ada/gcc-interface/utils.c:5416
29943+#: ada/gcc-interface/utils.c:5422
29944 #, gcc-internal-format
29945 msgid "%qs attribute only applies to variadic functions"
29946 msgstr "el atributo %qs se aplica solamente a funciones variadic"
29947
29948-#: ada/gcc-interface/utils.c:5487
29949+#: ada/gcc-interface/utils.c:5493
29950 #, gcc-internal-format
29951 msgid "%qE attribute has no effect"
29952 msgstr "el atributo %qE no tiene efecto"
29953
29954-#: ada/gcc-interface/utils.c:5593
29955+#: ada/gcc-interface/utils.c:5599
29956 #, gcc-internal-format
29957 msgid "invalid vector type for attribute %qs"
29958 msgstr "tipo de vector inválido para el atributo %qs"
29959
29960-#: ada/gcc-interface/utils.c:5656
29961+#: ada/gcc-interface/utils.c:5662
29962 #, gcc-internal-format
29963 msgid "attribute %qs applies to array types only"
29964 msgstr "el atributo %qs solamente se aplica a tipos de matriz"
29965
29966-#: ada/gcc-interface/utils.c:5683
29967+#: ada/gcc-interface/utils.c:5689
29968 #, gcc-internal-format
29969 msgid "invalid element type for attribute %qs"
29970 msgstr "tipo de elemento inválido para el atributo %qs"
29971@@ -25583,7 +25779,7 @@
29972 msgid " no known conversion for argument %d from %qT to %qT"
29973 msgstr " no hay una conversión conocida para el argumento %d de %qT a %qT"
29974
29975-#: cp/call.c:3125 cp/pt.c:5560
29976+#: cp/call.c:3125 cp/pt.c:5562
29977 #, gcc-internal-format, gfc-internal-format
29978 msgid " candidate expects %d argument, %d provided"
29979 msgid_plural " candidate expects %d arguments, %d provided"
29980@@ -25903,7 +26099,7 @@
29981 msgid "cannot bind rvalue %qE to %qT"
29982 msgstr "no se puede unir el r-valor %qE a %qT"
29983
29984-#: cp/call.c:6012 cp/cvt.c:1643
29985+#: cp/call.c:6012 cp/cvt.c:1654
29986 #, gcc-internal-format
29987 msgid "scoped enum %qT will not promote to an integral type in a future version of GCC"
29988 msgstr "el enum en ámbito %qT no se promoverá a un tipo integral en una versión futura de GCC"
29989@@ -26346,144 +26542,144 @@
29990 msgid " %q+T is not an aggregate, does not have a trivial default constructor, and has no constexpr constructor that is not a copy or move constructor"
29991 msgstr " %q+T no es un agregado, no tiene un constructor trivial por defecto y no tiene un constructor constexpr que no es un constructor copy o move"
29992
29993-#: cp/class.c:4924
29994+#: cp/class.c:4944
29995 #, gcc-internal-format
29996 msgid " base class %qT of %q+T is non-literal"
29997 msgstr " la clase base %qT de %q+T no es literal"
29998
29999-#: cp/class.c:4938
30000+#: cp/class.c:4958
30001 #, gcc-internal-format
30002 msgid " non-static data member %q+D has non-literal type"
30003 msgstr " el dato miembro que no es estático %q+D tiene un tipo que no es literal"
30004
30005-#: cp/class.c:5050
30006+#: cp/class.c:5070
30007 #, gcc-internal-format
30008 msgid "non-static reference %q+#D in class without a constructor"
30009 msgstr "referencia %q+#D que no es static en una clase sin un constructor"
30010
30011-#: cp/class.c:5055
30012+#: cp/class.c:5075
30013 #, gcc-internal-format
30014 msgid "non-static const member %q+#D in class without a constructor"
30015 msgstr "miembro const %q+#D que no es static en una clase sin un constructor"
30016
30017 #. If the function is defaulted outside the class, we just
30018 #. give the synthesis error.
30019-#: cp/class.c:5081
30020+#: cp/class.c:5101
30021 #, gcc-internal-format
30022 msgid "%q+D declared to take const reference, but implicit declaration would take non-const"
30023 msgstr "se declaró %q+D para tomar referencia const, pero la declaración implícita tomaría algo que no es const"
30024
30025-#: cp/class.c:5084
30026+#: cp/class.c:5104
30027 #, gcc-internal-format
30028 msgid "%q+D declared to take non-const reference cannot be defaulted in the class body"
30029 msgstr "se declaró %q+D para tomar referencia que no es const y no se puede definir por omisión en el cuerpo de clase"
30030
30031-#: cp/class.c:5308
30032+#: cp/class.c:5328
30033 #, gcc-internal-format
30034 msgid "offset of virtual base %qT is not ABI-compliant and may change in a future version of GCC"
30035 msgstr "el desplazamiento de la base virtual %qT no cumple con la ABI y puede cambiar en una versión futura de GCC"
30036
30037-#: cp/class.c:5409
30038+#: cp/class.c:5429
30039 #, gcc-internal-format
30040 msgid "direct base %qT inaccessible in %qT due to ambiguity"
30041 msgstr "base directa %qT inaccesible en %qT debido a ambigüedad"
30042
30043-#: cp/class.c:5421
30044+#: cp/class.c:5441
30045 #, gcc-internal-format
30046 msgid "virtual base %qT inaccessible in %qT due to ambiguity"
30047 msgstr "base virtual %qT inaccesible en %qT debido a ambigüedad"
30048
30049-#: cp/class.c:5607
30050+#: cp/class.c:5627
30051 #, gcc-internal-format
30052 msgid "size assigned to %qT may not be ABI-compliant and may change in a future version of GCC"
30053 msgstr "el tamaño asignado a %qT puede no cumplir con la ABI y puede cambiar en una versión futura de GCC"
30054
30055-#: cp/class.c:5647
30056+#: cp/class.c:5667
30057 #, gcc-internal-format
30058 msgid "the offset of %qD may not be ABI-compliant and may change in a future version of GCC"
30059 msgstr "el desplazamiento de %qD tal vez no cumple con la ABI y puede cambiar en una versión futura de GCC"
30060
30061-#: cp/class.c:5675
30062+#: cp/class.c:5695
30063 #, gcc-internal-format
30064 msgid "offset of %q+D is not ABI-compliant and may change in a future version of GCC"
30065 msgstr "el desplazamiento de %q+D no cumple con la ABI y puede cambiar en una versión futura de GCC"
30066
30067-#: cp/class.c:5685
30068+#: cp/class.c:5705
30069 #, gcc-internal-format
30070 msgid "%q+D contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
30071 msgstr "%q+D contiene clases vacías las cuales pueden causar que las clases base se coloquen en diferentes ubicaciones en una versión futura de GCC"
30072
30073-#: cp/class.c:5773
30074+#: cp/class.c:5793
30075 #, gcc-internal-format
30076 msgid "layout of classes derived from empty class %qT may change in a future version of GCC"
30077 msgstr "la disposición de clases derivadas de la clase vacía %qT puede cambiar en una versión futura de GCC"
30078
30079-#: cp/class.c:5942 cp/decl.c:11802 cp/parser.c:18577
30080+#: cp/class.c:5962 cp/decl.c:11816 cp/parser.c:18577
30081 #, gcc-internal-format
30082 msgid "redefinition of %q#T"
30083 msgstr "redefinición de %q#T"
30084
30085-#: cp/class.c:6093
30086+#: cp/class.c:6113
30087 #, gcc-internal-format
30088 msgid "%q#T has virtual functions and accessible non-virtual destructor"
30089 msgstr "%q#T tiene funciones virtuales y destructor no virtual accesible"
30090
30091-#: cp/class.c:6119
30092+#: cp/class.c:6139
30093 #, gcc-internal-format
30094 msgid "type transparent class %qT does not have any fields"
30095 msgstr "la clase transparente tipo %qT no tiene ningún campo"
30096
30097-#: cp/class.c:6125
30098+#: cp/class.c:6145
30099 #, gcc-internal-format
30100 msgid "type transparent class %qT has base classes"
30101 msgstr "la clase transparente tipo %qT tiene clases base"
30102
30103-#: cp/class.c:6129
30104+#: cp/class.c:6149
30105 #, gcc-internal-format
30106 msgid "type transparent class %qT has virtual functions"
30107 msgstr "la clase transparente tipo %qT tiene funciones virtuales"
30108
30109-#: cp/class.c:6231
30110+#: cp/class.c:6251
30111 #, gcc-internal-format
30112 msgid "trying to finish struct, but kicked out due to previous parse errors"
30113 msgstr "se trató de terminar struct, pero fue sacado debido a errores previos de decodificación"
30114
30115-#: cp/class.c:6737
30116+#: cp/class.c:6757
30117 #, gcc-internal-format
30118 msgid "language string %<\"%E\"%> not recognized"
30119 msgstr "no se reconoce la cadena de lenguaje %<\"%E\"%>"
30120
30121-#: cp/class.c:6827
30122+#: cp/class.c:6847
30123 #, gcc-internal-format
30124 msgid "cannot resolve overloaded function %qD based on conversion to type %qT"
30125 msgstr "no se puede resolver la función sobrecargada %qD basándose en la conversión al tipo %qT"
30126
30127-#: cp/class.c:6951
30128+#: cp/class.c:6971
30129 #, gcc-internal-format
30130 msgid "no matches converting function %qD to type %q#T"
30131 msgstr "no hay coincidencias al convertir la función %qD al tipo %q#T"
30132
30133-#: cp/class.c:6974
30134+#: cp/class.c:6994
30135 #, gcc-internal-format
30136 msgid "converting overloaded function %qD to type %q#T is ambiguous"
30137 msgstr "la conversión de la función sobrecargada %qD al tipo %q#T es ambigua"
30138
30139-#: cp/class.c:7001
30140+#: cp/class.c:7021
30141 #, gcc-internal-format
30142 msgid "assuming pointer to member %qD"
30143 msgstr "asumiendo el puntero a miembro %qD"
30144
30145-#: cp/class.c:7004
30146+#: cp/class.c:7024
30147 #, gcc-internal-format
30148 msgid "(a pointer to member can only be formed with %<&%E%>)"
30149 msgstr "(un puntero a miembro solamente se puede formar con %<&%E%>)"
30150
30151-#: cp/class.c:7066 cp/class.c:7100
30152+#: cp/class.c:7086 cp/class.c:7120
30153 #, gcc-internal-format
30154 msgid "not enough type information"
30155 msgstr "no hay suficiente información de tipo"
30156
30157-#: cp/class.c:7083 cp/cvt.c:169 cp/cvt.c:194 cp/cvt.c:244
30158+#: cp/class.c:7103 cp/cvt.c:169 cp/cvt.c:194 cp/cvt.c:244
30159 #, gcc-internal-format
30160 msgid "cannot convert %qE from type %qT to type %qT"
30161 msgstr "no se puede convertir %qE desde el tipo %qT al tipo %qT"
30162@@ -26493,12 +26689,12 @@
30163 #. A name N used in a class S shall refer to the same declaration
30164 #. in its context and when re-evaluated in the completed scope of
30165 #. S.
30166-#: cp/class.c:7394 cp/decl.c:1287
30167+#: cp/class.c:7414 cp/decl.c:1287
30168 #, gcc-internal-format
30169 msgid "declaration of %q#D"
30170 msgstr "la declaración de %q#D"
30171
30172-#: cp/class.c:7395
30173+#: cp/class.c:7415
30174 #, gcc-internal-format
30175 msgid "changes meaning of %qD from %q+#D"
30176 msgstr "cambia el significado de %qD a partir de %q+#D"
30177@@ -26828,13 +27024,18 @@
30178 msgid "converting NULL to non-pointer type"
30179 msgstr "se convierte NULL a un tipo que no es puntero"
30180
30181-#: cp/cvt.c:1584
30182+#: cp/cvt.c:1546 cp/cvt.c:1595
30183 #, gcc-internal-format
30184 msgid "ambiguous default type conversion from %qT"
30185 msgstr "conversión de tipo por defecto ambigua desde %qT"
30186
30187-#: cp/cvt.c:1586
30188+#: cp/cvt.c:1548
30189 #, gcc-internal-format
30190+msgid " candidate conversions include %qD"
30191+msgstr " las conversiones candidatas incluyen %qD"
30192+
30193+#: cp/cvt.c:1597
30194+#, gcc-internal-format
30195 msgid " candidate conversions include %qD and %qD"
30196 msgstr " las conversiones candidatas incluyen %qD y %qD"
30197
30198@@ -27076,27 +27277,27 @@
30199 msgstr "genera un conflicto con la declaración previa aquí"
30200
30201 #. Reject two definitions.
30202-#: cp/decl.c:2364 cp/decl.c:2393 cp/decl.c:2422 cp/decl.c:2439 cp/decl.c:2511
30203+#: cp/decl.c:2369 cp/decl.c:2398 cp/decl.c:2427 cp/decl.c:2444 cp/decl.c:2516
30204 #, gcc-internal-format
30205 msgid "redefinition of %q#D"
30206 msgstr "redefinición de %q#D"
30207
30208-#: cp/decl.c:2380
30209+#: cp/decl.c:2385
30210 #, gcc-internal-format
30211 msgid "%qD conflicts with used function"
30212 msgstr "%qD genera un conflicto con la función utilizada"
30213
30214-#: cp/decl.c:2390
30215+#: cp/decl.c:2395
30216 #, gcc-internal-format
30217 msgid "%q#D not declared in class"
30218 msgstr "%q#D no se declaró en la clase"
30219
30220-#: cp/decl.c:2404 cp/decl.c:2449
30221+#: cp/decl.c:2409 cp/decl.c:2454
30222 #, gcc-internal-format
30223 msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
30224 msgstr "%q+D se redeclaró incluída en línea con el atributo %<gnu_inline%>"
30225
30226-#: cp/decl.c:2407 cp/decl.c:2452
30227+#: cp/decl.c:2412 cp/decl.c:2457
30228 #, gcc-internal-format
30229 msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
30230 msgstr "%q+D se redeclaró incluída en línea sin el atributo %<gnu_inline%>"
30231@@ -27104,339 +27305,339 @@
30232 #. is_primary=
30233 #. is_partial=
30234 #. is_friend_decl=
30235-#: cp/decl.c:2468
30236+#: cp/decl.c:2473
30237 #, gcc-internal-format
30238 msgid "redeclaration of friend %q#D may not have default template arguments"
30239 msgstr "la redeclaración de friend %q#D no puede tener argumentos de plantilla por defecto"
30240
30241-#: cp/decl.c:2482
30242+#: cp/decl.c:2487
30243 #, gcc-internal-format
30244 msgid "thread-local declaration of %q#D follows non-thread-local declaration"
30245 msgstr "declaración thread-local de %q#D después de una declaración que no es thread-local"
30246
30247-#: cp/decl.c:2485
30248+#: cp/decl.c:2490
30249 #, gcc-internal-format
30250 msgid "non-thread-local declaration of %q#D follows thread-local declaration"
30251 msgstr "declaración que no es thread-local de %q#D después de una declaración thread-local"
30252
30253-#: cp/decl.c:2500 cp/decl.c:2519 cp/name-lookup.c:550 cp/name-lookup.c:1132
30254+#: cp/decl.c:2505 cp/decl.c:2524 cp/name-lookup.c:550 cp/name-lookup.c:1132
30255 #, gcc-internal-format
30256 msgid "redeclaration of %q#D"
30257 msgstr "redeclaración de %q#D"
30258
30259-#: cp/decl.c:2674
30260+#: cp/decl.c:2679
30261 #, gcc-internal-format
30262 msgid "jump to label %qD"
30263 msgstr "salto a la etiqueta %qD"
30264
30265-#: cp/decl.c:2676
30266+#: cp/decl.c:2681
30267 #, gcc-internal-format
30268 msgid "jump to case label"
30269 msgstr "salto a la etiqueta case"
30270
30271-#: cp/decl.c:2678 cp/decl.c:2820 cp/decl.c:2860
30272+#: cp/decl.c:2683 cp/decl.c:2825 cp/decl.c:2865
30273 #, gcc-internal-format
30274 msgid " from here"
30275 msgstr " desde aquí"
30276
30277-#: cp/decl.c:2697 cp/decl.c:2863
30278+#: cp/decl.c:2702 cp/decl.c:2868
30279 #, gcc-internal-format
30280 msgid " exits OpenMP structured block"
30281 msgstr " sale del bloque estructurado OpenMP"
30282
30283-#: cp/decl.c:2719
30284+#: cp/decl.c:2724
30285 #, gcc-internal-format
30286 msgid " crosses initialization of %q+#D"
30287 msgstr " cruza la inicialización de %q+#D"
30288
30289-#: cp/decl.c:2721 cp/decl.c:2837
30290+#: cp/decl.c:2726 cp/decl.c:2842
30291 #, gcc-internal-format
30292 msgid " enters scope of %q+#D which has non-trivial destructor"
30293 msgstr " entra al ámbito de %q+#D el cual tiene un destructor que no es trivial"
30294
30295-#: cp/decl.c:2735 cp/decl.c:2842
30296+#: cp/decl.c:2740 cp/decl.c:2847
30297 #, gcc-internal-format
30298 msgid " enters try block"
30299 msgstr " entra al bloque try"
30300
30301 #. Can't skip init of __exception_info.
30302-#: cp/decl.c:2737 cp/decl.c:2831 cp/decl.c:2844
30303+#: cp/decl.c:2742 cp/decl.c:2836 cp/decl.c:2849
30304 #, gcc-internal-format
30305 msgid " enters catch block"
30306 msgstr " entra al bloque catch"
30307
30308-#: cp/decl.c:2747 cp/decl.c:2847
30309+#: cp/decl.c:2752 cp/decl.c:2852
30310 #, gcc-internal-format
30311 msgid " enters OpenMP structured block"
30312 msgstr " entra al bloque estructurado OpenMP"
30313
30314-#: cp/decl.c:2819 cp/decl.c:2859
30315+#: cp/decl.c:2824 cp/decl.c:2864
30316 #, gcc-internal-format
30317 msgid "jump to label %q+D"
30318 msgstr "salto a la etiqueta %q+D"
30319
30320-#: cp/decl.c:2835
30321+#: cp/decl.c:2840
30322 #, gcc-internal-format
30323 msgid " skips initialization of %q+#D"
30324 msgstr " salta la inicialización de %q+#D"
30325
30326-#: cp/decl.c:2912
30327+#: cp/decl.c:2917
30328 #, gcc-internal-format
30329 msgid "label named wchar_t"
30330 msgstr "etiqueta nombrada wchar_t"
30331
30332-#: cp/decl.c:3220
30333+#: cp/decl.c:3225
30334 #, gcc-internal-format
30335 msgid "%qD is not a type"
30336 msgstr "%qD no es un tipo"
30337
30338-#: cp/decl.c:3226 cp/parser.c:5049
30339+#: cp/decl.c:3231 cp/parser.c:5049
30340 #, gcc-internal-format
30341 msgid "%qD used without template parameters"
30342 msgstr "se usa %qD sin parámetros de plantilla"
30343
30344-#: cp/decl.c:3235
30345+#: cp/decl.c:3240
30346 #, gcc-internal-format
30347 msgid "%q#T is not a class"
30348 msgstr "%q#T no es una clase"
30349
30350-#: cp/decl.c:3259 cp/decl.c:3349
30351+#: cp/decl.c:3264 cp/decl.c:3354
30352 #, gcc-internal-format
30353 msgid "no class template named %q#T in %q#T"
30354 msgstr "no hay una plantilla de clase llamada %q#T en %q#T"
30355
30356-#: cp/decl.c:3260
30357+#: cp/decl.c:3265
30358 #, gcc-internal-format
30359 msgid "no type named %q#T in %q#T"
30360 msgstr "no hay un tipo llamado %q#T en %q#T"
30361
30362-#: cp/decl.c:3272
30363+#: cp/decl.c:3277
30364 #, gcc-internal-format
30365 msgid "lookup of %qT in %qT is ambiguous"
30366 msgstr "la búsqueda de %qT en %qT es ambigua"
30367
30368-#: cp/decl.c:3281
30369+#: cp/decl.c:3286
30370 #, gcc-internal-format
30371 msgid "%<typename %T::%D%> names %q#T, which is not a class template"
30372 msgstr "%<typename %T::%D%> nombra a %q#T, el cual no es una plantilla de clase"
30373
30374-#: cp/decl.c:3288
30375+#: cp/decl.c:3293
30376 #, gcc-internal-format
30377 msgid "%<typename %T::%D%> names %q#T, which is not a type"
30378 msgstr "%<typename %T::%D%> nombra a %q#T, el cual no es un tipo"
30379
30380-#: cp/decl.c:3358
30381+#: cp/decl.c:3363
30382 #, gcc-internal-format
30383 msgid "template parameters do not match template"
30384 msgstr "los parámetros de la plantilla no coinciden con la plantilla"
30385
30386-#: cp/decl.c:3359 cp/friend.c:327 cp/friend.c:335
30387+#: cp/decl.c:3364 cp/friend.c:327 cp/friend.c:335
30388 #, gcc-internal-format
30389 msgid "%q+D declared here"
30390 msgstr "%q+D declarado aquí"
30391
30392-#: cp/decl.c:4077
30393+#: cp/decl.c:4082
30394 #, gcc-internal-format
30395 msgid "an anonymous struct cannot have function members"
30396 msgstr "un struct anónimo no puede tener funciones miembro"
30397
30398-#: cp/decl.c:4080
30399+#: cp/decl.c:4085
30400 #, gcc-internal-format
30401 msgid "an anonymous union cannot have function members"
30402 msgstr "un union anónimo no puede tener funciones miembro"
30403
30404-#: cp/decl.c:4098
30405+#: cp/decl.c:4103
30406 #, gcc-internal-format
30407 msgid "member %q+#D with constructor not allowed in anonymous aggregate"
30408 msgstr "no se permite el miembro %q+#D con constructor en un agregado anónimo"
30409
30410-#: cp/decl.c:4101
30411+#: cp/decl.c:4106
30412 #, gcc-internal-format
30413 msgid "member %q+#D with destructor not allowed in anonymous aggregate"
30414 msgstr "no se permite el miembro %q+#D con destructor en un agregado anónimo"
30415
30416-#: cp/decl.c:4104
30417+#: cp/decl.c:4109
30418 #, gcc-internal-format
30419 msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
30420 msgstr "no se permite el miembro %q+#D con operador de asignación de copia en un agregado anónimo"
30421
30422-#: cp/decl.c:4129
30423+#: cp/decl.c:4134
30424 #, gcc-internal-format
30425 msgid "multiple types in one declaration"
30426 msgstr "tipos múltiples en una declaración"
30427
30428-#: cp/decl.c:4133
30429+#: cp/decl.c:4138
30430 #, gcc-internal-format
30431 msgid "redeclaration of C++ built-in type %qT"
30432 msgstr "redeclaración del tipo interno de C++ %qT"
30433
30434-#: cp/decl.c:4150
30435+#: cp/decl.c:4155
30436 #, gcc-internal-format
30437 msgid "%<auto%> can only be specified for variables or function declarations"
30438 msgstr "%<auto%> sólo se puede especificar para variables o declaraciones de función"
30439
30440-#: cp/decl.c:4176
30441+#: cp/decl.c:4181
30442 #, gcc-internal-format
30443 msgid "missing type-name in typedef-declaration"
30444 msgstr "falta el nombre del tipo en la declaración typedef"
30445
30446-#: cp/decl.c:4183
30447+#: cp/decl.c:4188
30448 #, gcc-internal-format
30449 msgid "ISO C++ prohibits anonymous structs"
30450 msgstr "ISO C++ prohíbe structs anónimos"
30451
30452-#: cp/decl.c:4190
30453+#: cp/decl.c:4195
30454 #, gcc-internal-format
30455 msgid "%qs can only be specified for functions"
30456 msgstr "%qs sólo se puede especificar para funciones"
30457
30458-#: cp/decl.c:4196
30459+#: cp/decl.c:4201
30460 #, gcc-internal-format
30461 msgid "%<friend%> can only be specified inside a class"
30462 msgstr "%<friend%> sólo se puede especificar dentro de una clase"
30463
30464-#: cp/decl.c:4198
30465+#: cp/decl.c:4203
30466 #, gcc-internal-format
30467 msgid "%<explicit%> can only be specified for constructors"
30468 msgstr "%<explicit%> sólo se puede especificar para constructores"
30469
30470-#: cp/decl.c:4200
30471+#: cp/decl.c:4205
30472 #, gcc-internal-format
30473 msgid "a storage class can only be specified for objects and functions"
30474 msgstr "una clase de almacenamiento sólo se puede especificar para objetos y funciones"
30475
30476-#: cp/decl.c:4206
30477+#: cp/decl.c:4211
30478 #, gcc-internal-format
30479 msgid "qualifiers can only be specified for objects and functions"
30480 msgstr "los calificadores sólo se pueden especificar para objetos y funciones"
30481
30482-#: cp/decl.c:4209
30483+#: cp/decl.c:4214
30484 #, gcc-internal-format
30485 msgid "%<typedef%> was ignored in this declaration"
30486 msgstr "se descartó %<typedef%> en esta declaración"
30487
30488-#: cp/decl.c:4211
30489+#: cp/decl.c:4216
30490 #, gcc-internal-format
30491 msgid "%<constexpr%> cannot be used for type declarations"
30492 msgstr "%<constexpr%> no se puede usar en declaraciones de tipo"
30493
30494-#: cp/decl.c:4240
30495+#: cp/decl.c:4226
30496 #, gcc-internal-format
30497-msgid "attribute ignored in declaration of %q+#T"
30498-msgstr "se descarta el atributo en la declaración de %q+#T"
30499+msgid "attribute ignored in declaration of %q#T"
30500+msgstr "se descarta el atributo en la declaración de %q#T"
30501
30502-#: cp/decl.c:4241
30503+#: cp/decl.c:4227
30504 #, gcc-internal-format
30505-msgid "attribute for %q+#T must follow the %qs keyword"
30506-msgstr "el atributo para %q+#T debe estar a continuación de la palabra clave %qs"
30507+msgid "attribute for %q#T must follow the %qs keyword"
30508+msgstr "el atributo para %q#T debe estar a continuación de la palabra clave %qs"
30509
30510-#: cp/decl.c:4286
30511+#: cp/decl.c:4296
30512 #, gcc-internal-format
30513 msgid "ignoring attributes applied to class type %qT outside of definition"
30514 msgstr "se descartan los atributos aplicados al tipo de clase %qT fuera de la definición"
30515
30516 #. A template type parameter or other dependent type.
30517-#: cp/decl.c:4290
30518+#: cp/decl.c:4300
30519 #, gcc-internal-format
30520 msgid "ignoring attributes applied to dependent type %qT without an associated declaration"
30521 msgstr "se descartan los atributos aplicados al tipo dependiente %qT sin una declaración asociada"
30522
30523-#: cp/decl.c:4360 cp/decl2.c:815
30524+#: cp/decl.c:4370 cp/decl2.c:815
30525 #, gcc-internal-format
30526 msgid "typedef %qD is initialized (use decltype instead)"
30527 msgstr "typedef %qD está inicializado (utilice decltype en su lugar)"
30528
30529-#: cp/decl.c:4378
30530+#: cp/decl.c:4388
30531 #, gcc-internal-format
30532 msgid "declaration of %q#D has %<extern%> and is initialized"
30533 msgstr "la declaración de %q#D tiene %<extern%> y está inicializada"
30534
30535-#: cp/decl.c:4407
30536+#: cp/decl.c:4417
30537 #, gcc-internal-format
30538 msgid "definition of %q#D is marked %<dllimport%>"
30539 msgstr "la definición de %q#D se marca como %<dllimport%>"
30540
30541-#: cp/decl.c:4426
30542+#: cp/decl.c:4436
30543 #, gcc-internal-format
30544 msgid "%q#D is not a static member of %q#T"
30545 msgstr "%q#D no es un miembro static de %q#T"
30546
30547-#: cp/decl.c:4432
30548+#: cp/decl.c:4442
30549 #, gcc-internal-format
30550 msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
30551 msgstr "ISO C++ no permite que %<%T::%D%> se defina como %<%T::%D%>"
30552
30553-#: cp/decl.c:4441
30554+#: cp/decl.c:4451
30555 #, gcc-internal-format
30556 msgid "template header not allowed in member definition of explicitly specialized class"
30557 msgstr "no se permite un encabezado de plantilla en la definición de miembro de una clase explícitamente especializada"
30558
30559-#: cp/decl.c:4449
30560+#: cp/decl.c:4459
30561 #, gcc-internal-format
30562 msgid "duplicate initialization of %qD"
30563 msgstr "inicialización duplicada de %qD"
30564
30565-#: cp/decl.c:4454
30566+#: cp/decl.c:4464
30567 #, gcc-internal-format
30568 msgid "%qD declared %<constexpr%> outside its class"
30569 msgstr "%qD se declaró %<constexpr%> fuera de su clase"
30570
30571-#: cp/decl.c:4493
30572+#: cp/decl.c:4503
30573 #, gcc-internal-format
30574 msgid "declaration of %q#D outside of class is not definition"
30575 msgstr "la declaración de %q#D fuera de la clase no es una definición"
30576
30577-#: cp/decl.c:4588
30578+#: cp/decl.c:4598
30579 #, gcc-internal-format
30580 msgid "variable %q#D has initializer but incomplete type"
30581 msgstr "la variable %q#D tiene inicializador pero de tipo de dato incompleto"
30582
30583-#: cp/decl.c:4594 cp/decl.c:5389
30584+#: cp/decl.c:4604 cp/decl.c:5399
30585 #, gcc-internal-format
30586 msgid "elements of array %q#D have incomplete type"
30587 msgstr "elementos de la matriz %q#D con tipo de dato incompleto"
30588
30589-#: cp/decl.c:4601 cp/decl.c:5999
30590+#: cp/decl.c:4611 cp/decl.c:6009
30591 #, gcc-internal-format
30592 msgid "declaration of %q#D has no initializer"
30593 msgstr "la declaración de %q#D no tiene inicializadores"
30594
30595-#: cp/decl.c:4603
30596+#: cp/decl.c:4613
30597 #, gcc-internal-format
30598 msgid "aggregate %q#D has incomplete type and cannot be defined"
30599 msgstr "el agregado %q#D tiene un tipo incompleto y no se puede definir"
30600
30601-#: cp/decl.c:4637
30602+#: cp/decl.c:4647
30603 #, gcc-internal-format
30604 msgid "%qD declared as reference but not initialized"
30605 msgstr "%qD declarado como referencia pero no se inicializa"
30606
30607-#: cp/decl.c:4678
30608+#: cp/decl.c:4688
30609 #, gcc-internal-format
30610 msgid "name used in a GNU-style designated initializer for an array"
30611 msgstr "se usó un nombre en un inicializador designado de estilo GNU para una matriz"
30612
30613-#: cp/decl.c:4686 cp/typeck2.c:1084 cp/typeck2.c:1189
30614+#: cp/decl.c:4696 cp/typeck2.c:1084 cp/typeck2.c:1189
30615 #, gcc-internal-format
30616 msgid "non-trivial designated initializers not supported"
30617 msgstr "no se admiten los inicializadores designados como no triviales"
30618
30619-#: cp/decl.c:4691
30620+#: cp/decl.c:4701
30621 #, gcc-internal-format
30622 msgid "name %qD used in a GNU-style designated initializer for an array"
30623 msgstr "el nombre %qD se utiliza en un inicializador designado en estilo GNU para una matriz"
30624
30625-#: cp/decl.c:4739
30626+#: cp/decl.c:4749
30627 #, gcc-internal-format
30628 msgid "initializer fails to determine size of %qD"
30629 msgstr "el inicializador no puede determinar el tamaño de %qD"
30630
30631-#: cp/decl.c:4746
30632+#: cp/decl.c:4756
30633 #, gcc-internal-format
30634 msgid "array size missing in %qD"
30635 msgstr "falta el tamaño de la matriz en %qD"
30636
30637-#: cp/decl.c:4758
30638+#: cp/decl.c:4768
30639 #, gcc-internal-format
30640 msgid "zero-size array %qD"
30641 msgstr "matriz %qD de tamaño cero"
30642@@ -27444,389 +27645,389 @@
30643 #. An automatic variable with an incomplete type: that is an error.
30644 #. Don't talk about array types here, since we took care of that
30645 #. message in grokdeclarator.
30646-#: cp/decl.c:4801
30647+#: cp/decl.c:4811
30648 #, gcc-internal-format
30649 msgid "storage size of %qD isn%'t known"
30650 msgstr "no se conoce el tamaño de almacenamiento de %qD"
30651
30652-#: cp/decl.c:4824
30653+#: cp/decl.c:4834
30654 #, gcc-internal-format
30655 msgid "storage size of %qD isn%'t constant"
30656 msgstr "el tamaño de almacenamiento de %qD no es constante"
30657
30658-#: cp/decl.c:4870
30659+#: cp/decl.c:4880
30660 #, gcc-internal-format
30661 msgid "sorry: semantics of inline function static data %q+#D are wrong (you%'ll wind up with multiple copies)"
30662 msgstr "perdón: la semántica de los datos static de la función inline %q+#D es errónea (terminará con múltiples copias)"
30663
30664-#: cp/decl.c:4874
30665+#: cp/decl.c:4884
30666 #, gcc-internal-format
30667 msgid " you can work around this by removing the initializer"
30668 msgstr " puede evitar esto eliminando el inicializador"
30669
30670-#: cp/decl.c:4905
30671+#: cp/decl.c:4915
30672 #, gcc-internal-format
30673 msgid "uninitialized const %qD"
30674 msgstr "const %qD sin inicializar"
30675
30676-#: cp/decl.c:4912
30677+#: cp/decl.c:4922
30678 #, gcc-internal-format
30679 msgid "%q#T has no user-provided default constructor"
30680 msgstr "%q#T no tiene constructor por defecto proporcionado por el usuario"
30681
30682-#: cp/decl.c:4916
30683+#: cp/decl.c:4926
30684 #, gcc-internal-format
30685 msgid "constructor is not user-provided because it is explicitly defaulted in the class body"
30686 msgstr "el constructor no es proporcionado por el usuario porque está marcado explícitamente por defecto en el cuerpo de la clase"
30687
30688-#: cp/decl.c:4918
30689+#: cp/decl.c:4928
30690 #, gcc-internal-format
30691 msgid "and the implicitly-defined constructor does not initialize %q+#D"
30692 msgstr "y el constructor implícitamente definido no inicializa %q+#D"
30693
30694-#: cp/decl.c:5037
30695+#: cp/decl.c:5047
30696 #, gcc-internal-format
30697 msgid "invalid type %qT as initializer for a vector of type %qT"
30698 msgstr "tipo %qT inválido como inicializador para un vector de tipo %qT"
30699
30700-#: cp/decl.c:5078
30701+#: cp/decl.c:5088
30702 #, gcc-internal-format
30703 msgid "initializer for %qT must be brace-enclosed"
30704 msgstr "el inicializador para %qT debe estar encerrado entre llaves"
30705
30706-#: cp/decl.c:5095
30707+#: cp/decl.c:5105
30708 #, gcc-internal-format
30709 msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
30710 msgstr "se usa %<[%E] =%> en un inicializador designado en estilo GNU para la clase %qT"
30711
30712-#: cp/decl.c:5105
30713+#: cp/decl.c:5115
30714 #, gcc-internal-format
30715 msgid "%qT has no non-static data member named %qD"
30716 msgstr "%qT no tiene un dato miembro que no es static llamado %qD"
30717
30718-#: cp/decl.c:5146
30719+#: cp/decl.c:5156
30720 #, gcc-internal-format
30721 msgid "C99 designator %qE outside aggregate initializer"
30722 msgstr "asignador C99 %qE fuera del inicializador agregado"
30723
30724-#: cp/decl.c:5183 cp/decl.c:5368 cp/typeck2.c:1071 cp/typeck2.c:1270
30725+#: cp/decl.c:5193 cp/decl.c:5378 cp/typeck2.c:1071 cp/typeck2.c:1270
30726 #: cp/typeck2.c:1299 cp/typeck2.c:1346
30727 #, gcc-internal-format
30728 msgid "too many initializers for %qT"
30729 msgstr "demasiados inicializadores para %qT"
30730
30731-#: cp/decl.c:5216
30732+#: cp/decl.c:5226
30733 #, gcc-internal-format
30734 msgid "braces around scalar initializer for type %qT"
30735 msgstr "llaves alrededor del inicializador escalar para el tipo %qT"
30736
30737-#: cp/decl.c:5309
30738+#: cp/decl.c:5319
30739 #, gcc-internal-format
30740 msgid "missing braces around initializer for %qT"
30741 msgstr "faltan llaves alrededor del inicializador para %qT"
30742
30743-#: cp/decl.c:5391
30744+#: cp/decl.c:5401
30745 #, gcc-internal-format
30746 msgid "elements of array %q#T have incomplete type"
30747 msgstr "elementos de la matriz %q#T tienen tipo de dato incompleto"
30748
30749-#: cp/decl.c:5400
30750+#: cp/decl.c:5410
30751 #, gcc-internal-format
30752 msgid "variable-sized object %qD may not be initialized"
30753 msgstr "el objeto de tamaño variable %qD no se puede inicializar"
30754
30755-#: cp/decl.c:5402
30756+#: cp/decl.c:5412
30757 #, gcc-internal-format
30758 msgid "variable-sized compound literal"
30759 msgstr "literal compuesta de tamaño variable"
30760
30761-#: cp/decl.c:5457
30762+#: cp/decl.c:5467
30763 #, gcc-internal-format
30764 msgid "%q#D has incomplete type"
30765 msgstr "%q#D tiene un tipo incompleto"
30766
30767-#: cp/decl.c:5477
30768+#: cp/decl.c:5487
30769 #, gcc-internal-format
30770 msgid "scalar object %qD requires one element in initializer"
30771 msgstr "el objeto escalar %qD requiere un elemento en el inicializador"
30772
30773-#: cp/decl.c:5520
30774+#: cp/decl.c:5530
30775 #, gcc-internal-format
30776 msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
30777 msgstr "en C++98 %qD debe ser inicializado por un constructor, no por %<{...}%>"
30778
30779-#: cp/decl.c:5600
30780+#: cp/decl.c:5610
30781 #, gcc-internal-format
30782 msgid "array %qD initialized by parenthesized string literal %qE"
30783 msgstr "matriz %qD inicializada con una constante de cadena entre paréntesis %qE"
30784
30785-#: cp/decl.c:5627
30786+#: cp/decl.c:5637
30787 #, gcc-internal-format
30788 msgid "initializer invalid for static member with constructor"
30789 msgstr "inicializador inválido para el miembro static con constructor"
30790
30791-#: cp/decl.c:5629
30792+#: cp/decl.c:5639
30793 #, gcc-internal-format
30794 msgid "non-constant in-class initialization invalid for static member %qD"
30795 msgstr "inicialización en clase que no es constante inválida para el miembro static %qD"
30796
30797-#: cp/decl.c:5633
30798+#: cp/decl.c:5643
30799 #, gcc-internal-format
30800 msgid "(an out of class initialization is required)"
30801 msgstr "(se requiere una inicialización fuera de la clase)"
30802
30803-#: cp/decl.c:5968
30804+#: cp/decl.c:5978
30805 #, gcc-internal-format
30806 msgid "assignment (not initialization) in declaration"
30807 msgstr "asignación (no inicialización) en la declaración"
30808
30809-#: cp/decl.c:6126
30810+#: cp/decl.c:6136
30811 #, gcc-internal-format
30812 msgid "shadowing previous type declaration of %q#D"
30813 msgstr "se oscurece la declaración de tipo previa de %q#D"
30814
30815-#: cp/decl.c:6158
30816+#: cp/decl.c:6168
30817 #, gcc-internal-format
30818 msgid "%qD cannot be thread-local because it has non-trivial type %qT"
30819 msgstr "%qD no puede ser thread-local porque es de tipo %qT que no es trivial"
30820
30821-#: cp/decl.c:6200
30822+#: cp/decl.c:6210
30823 #, gcc-internal-format
30824 msgid "Java object %qD not allocated with %<new%>"
30825 msgstr "El objeto Java %qD no se aloja con %<new%>"
30826
30827-#: cp/decl.c:6208
30828+#: cp/decl.c:6218
30829 #, gcc-internal-format
30830 msgid "%qD is thread-local and so cannot be dynamically initialized"
30831 msgstr "q%D es thread-local y por lo tanto no se puede inicializar dinámicamente"
30832
30833-#: cp/decl.c:6226
30834+#: cp/decl.c:6236
30835 #, gcc-internal-format
30836 msgid "%qD cannot be initialized by a non-constant expression when being declared"
30837 msgstr "%qD no se puede inicializar con una expresion no constante al declararse"
30838
30839-#: cp/decl.c:6274
30840+#: cp/decl.c:6284
30841 #, gcc-internal-format
30842 msgid "non-static data member %qD has Java class type"
30843 msgstr "el dato miembro que no es estático %qD tiene un tipo de clase Java"
30844
30845-#: cp/decl.c:6339
30846+#: cp/decl.c:6349
30847 #, gcc-internal-format
30848 msgid "function %q#D is initialized like a variable"
30849 msgstr "la función %q#D se inicializa como una variable"
30850
30851-#: cp/decl.c:6938
30852+#: cp/decl.c:6948
30853 #, gcc-internal-format
30854 msgid "initializer fails to determine size of %qT"
30855 msgstr "el inicializador no puede determinar el tamaño de %qT"
30856
30857-#: cp/decl.c:6942
30858+#: cp/decl.c:6952
30859 #, gcc-internal-format
30860 msgid "array size missing in %qT"
30861 msgstr "falta el tamaño de la matriz en %qT"
30862
30863-#: cp/decl.c:6945
30864+#: cp/decl.c:6955
30865 #, gcc-internal-format
30866 msgid "zero-size array %qT"
30867 msgstr "matriz %qT de tamaño cero"
30868
30869-#: cp/decl.c:6961
30870+#: cp/decl.c:6971
30871 #, gcc-internal-format
30872 msgid "destructor for alien class %qT cannot be a member"
30873 msgstr "el destructor para la clase extranjera %qT no puede ser un miembro"
30874
30875-#: cp/decl.c:6963
30876+#: cp/decl.c:6973
30877 #, gcc-internal-format
30878 msgid "constructor for alien class %qT cannot be a member"
30879 msgstr "el constructor para la clase extranjera %qT no puede ser un miembro"
30880
30881-#: cp/decl.c:6987
30882+#: cp/decl.c:6997
30883 #, gcc-internal-format
30884 msgid "%qD declared as a %<virtual%> variable"
30885 msgstr "%qD se declaró como una variable %<virtual%>"
30886
30887-#: cp/decl.c:6989
30888+#: cp/decl.c:6999
30889 #, gcc-internal-format
30890 msgid "%qD declared as an %<inline%> variable"
30891 msgstr "%qD se declaró como una variable %<inline%>"
30892
30893-#: cp/decl.c:6991
30894+#: cp/decl.c:7001
30895 #, gcc-internal-format
30896 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration"
30897 msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son inválidos en la declaración de variable"
30898
30899-#: cp/decl.c:6996
30900+#: cp/decl.c:7006
30901 #, gcc-internal-format
30902 msgid "%qD declared as a %<virtual%> parameter"
30903 msgstr "%qD se declaró como un parámetro %<virtual%>"
30904
30905-#: cp/decl.c:6998
30906+#: cp/decl.c:7008
30907 #, gcc-internal-format
30908 msgid "%qD declared as an %<inline%> parameter"
30909 msgstr "%qD se declaró como un parámetro %<inline%>"
30910
30911-#: cp/decl.c:7000
30912+#: cp/decl.c:7010
30913 #, gcc-internal-format
30914 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration"
30915 msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son inválidos en la declaración de parámetro"
30916
30917-#: cp/decl.c:7005
30918+#: cp/decl.c:7015
30919 #, gcc-internal-format
30920 msgid "%qD declared as a %<virtual%> type"
30921 msgstr "%qD se declaró como un tipo %<virtual%>"
30922
30923-#: cp/decl.c:7007
30924+#: cp/decl.c:7017
30925 #, gcc-internal-format
30926 msgid "%qD declared as an %<inline%> type"
30927 msgstr "%qD se declaró como un tipo %<inline%>"
30928
30929-#: cp/decl.c:7009
30930+#: cp/decl.c:7019
30931 #, gcc-internal-format
30932 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration"
30933 msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son inválidos en la declaración de tipo"
30934
30935-#: cp/decl.c:7014
30936+#: cp/decl.c:7024
30937 #, gcc-internal-format
30938 msgid "%qD declared as a %<virtual%> field"
30939 msgstr "%qD se declaró como un campo %<virtual%>"
30940
30941-#: cp/decl.c:7016
30942+#: cp/decl.c:7026
30943 #, gcc-internal-format
30944 msgid "%qD declared as an %<inline%> field"
30945 msgstr "%qD se declaró como un campo %<inline%>"
30946
30947-#: cp/decl.c:7018
30948+#: cp/decl.c:7028
30949 #, gcc-internal-format
30950 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration"
30951 msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son inválidos en la declaración de campo"
30952
30953-#: cp/decl.c:7025
30954+#: cp/decl.c:7035
30955 #, gcc-internal-format
30956 msgid "%q+D declared as a friend"
30957 msgstr "%q+D se declaró como friend"
30958
30959-#: cp/decl.c:7031
30960+#: cp/decl.c:7041
30961 #, gcc-internal-format
30962 msgid "%q+D declared with an exception specification"
30963 msgstr "%q+D se declaró con una especificación de excepción"
30964
30965-#: cp/decl.c:7065
30966+#: cp/decl.c:7075
30967 #, gcc-internal-format
30968 msgid "definition of %qD is not in namespace enclosing %qT"
30969 msgstr "la definición de %qD no está en un espacio de nombres que contenga a %qT"
30970
30971-#: cp/decl.c:7105
30972+#: cp/decl.c:7115
30973 #, gcc-internal-format
30974 msgid "static member function %q#D declared with type qualifiers"
30975 msgstr "la función miembro static %q#D se declara con calificadores de tipo"
30976
30977-#: cp/decl.c:7204
30978+#: cp/decl.c:7214
30979 #, gcc-internal-format
30980 msgid "defining explicit specialization %qD in friend declaration"
30981 msgstr "definiendo la especialización explícita %qD en la declaración friend"
30982
30983 #. Something like `template <class T> friend void f<T>()'.
30984-#: cp/decl.c:7214
30985+#: cp/decl.c:7224
30986 #, gcc-internal-format
30987 msgid "invalid use of template-id %qD in declaration of primary template"
30988 msgstr "uso inválido del id de plantilla %qD en la declaración de la plantilla primaria"
30989
30990-#: cp/decl.c:7244
30991+#: cp/decl.c:7254
30992 #, gcc-internal-format
30993 msgid "default arguments are not allowed in declaration of friend template specialization %qD"
30994 msgstr "no se permiten los argumentos por defecto en la declaración de la especialización friend de la plantilla %qD"
30995
30996-#: cp/decl.c:7252
30997+#: cp/decl.c:7262
30998 #, gcc-internal-format
30999 msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
31000 msgstr "no se permite %<inline%> en la declaración de la especialización friend de la plantilla %qD"
31001
31002-#: cp/decl.c:7294
31003+#: cp/decl.c:7304
31004 #, gcc-internal-format
31005 msgid "cannot declare %<::main%> to be a template"
31006 msgstr "no se puede declarar %<::main%> como plantilla"
31007
31008-#: cp/decl.c:7296
31009+#: cp/decl.c:7306
31010 #, gcc-internal-format
31011 msgid "cannot declare %<::main%> to be inline"
31012 msgstr "no se puede declarar %<::main%> como inline"
31013
31014-#: cp/decl.c:7298
31015+#: cp/decl.c:7308
31016 #, gcc-internal-format
31017 msgid "cannot declare %<::main%> to be static"
31018 msgstr "no se puede declarar %<::main%> como static"
31019
31020-#: cp/decl.c:7326
31021+#: cp/decl.c:7336
31022 #, gcc-internal-format
31023 msgid "anonymous type with no linkage used to declare function %q#D with linkage"
31024 msgstr "se usó un tipo anónimo sin enlace para declarar la función %q#D con enlace"
31025
31026-#: cp/decl.c:7330 cp/decl.c:7687 cp/decl2.c:3673
31027+#: cp/decl.c:7340 cp/decl.c:7697 cp/decl2.c:3673
31028 #, gcc-internal-format
31029 msgid "%q+#D does not refer to the unqualified type, so it is not used for linkage"
31030 msgstr "%q+#D no se refiere al tipo sin calificar, así que no se usa para el enlace"
31031
31032-#: cp/decl.c:7336
31033+#: cp/decl.c:7346
31034 #, gcc-internal-format
31035 msgid "type %qT with no linkage used to declare function %q#D with linkage"
31036 msgstr "se usó el tipo %qT sin enlace para declarar la función %q#D con enlace"
31037
31038-#: cp/decl.c:7358
31039+#: cp/decl.c:7368
31040 #, gcc-internal-format
31041 msgid "static member function %qD cannot have cv-qualifier"
31042 msgstr "la función miembro static %qD no puede tener calificador-cv"
31043
31044-#: cp/decl.c:7359
31045+#: cp/decl.c:7369
31046 #, gcc-internal-format
31047 msgid "non-member function %qD cannot have cv-qualifier"
31048 msgstr "la función que no es miembro %qD no puede tener calificador-cv"
31049
31050-#: cp/decl.c:7375
31051+#: cp/decl.c:7385
31052 #, gcc-internal-format
31053 msgid "literal operator with C linkage"
31054 msgstr "operador literal con enlace C"
31055
31056-#: cp/decl.c:7384
31057+#: cp/decl.c:7394
31058 #, gcc-internal-format
31059 msgid "%qD has invalid argument list"
31060 msgstr "%qD tien una lista de argumentos inválida"
31061
31062-#: cp/decl.c:7392
31063+#: cp/decl.c:7402
31064 #, gcc-internal-format
31065 msgid "integer suffix %<%s%> shadowed by implementation"
31066 msgstr "se oscurece el sufijo entero %<%s%> por la implementación"
31067
31068-#: cp/decl.c:7398
31069+#: cp/decl.c:7408
31070 #, gcc-internal-format
31071 msgid "floating point suffix %<%s%> shadowed by implementation"
31072 msgstr "se oscurece el sufijo de coma flotante %<%s%> por la implementación"
31073
31074-#: cp/decl.c:7404
31075+#: cp/decl.c:7414
31076 #, gcc-internal-format
31077 msgid "%qD must be a non-member function"
31078 msgstr "%qD debe ser una función que no sea miembro"
31079
31080-#: cp/decl.c:7448
31081+#: cp/decl.c:7458
31082 #, gcc-internal-format
31083 msgid "%<::main%> must return %<int%>"
31084 msgstr "%<::main%> debe devolver %<int%>"
31085
31086-#: cp/decl.c:7490
31087+#: cp/decl.c:7500
31088 #, gcc-internal-format
31089 msgid "definition of implicitly-declared %qD"
31090 msgstr "la definición de %qD declarado implícitamente"
31091
31092-#: cp/decl.c:7495
31093+#: cp/decl.c:7505
31094 #, gcc-internal-format
31095 msgid "definition of explicitly-defaulted %q+D"
31096 msgstr "la definición de %qD explícitamente por defecto"
31097
31098-#: cp/decl.c:7496
31099+#: cp/decl.c:7506
31100 #, gcc-internal-format
31101 msgid "%q+#D explicitly defaulted here"
31102 msgstr "%q+#D explícitamente por defecto aquí"
31103
31104-#: cp/decl.c:7513 cp/decl2.c:736
31105+#: cp/decl.c:7523 cp/decl2.c:736
31106 #, gcc-internal-format
31107 msgid "no %q#D member function declared in class %qT"
31108 msgstr "no hay una función miembro %q#D declarada en la clase %qT"
31109@@ -27835,886 +28036,891 @@
31110 #. no linkage can only be used to declare extern "C"
31111 #. entities. Since it's not always an error in the
31112 #. ISO C++ 90 Standard, we only issue a warning.
31113-#: cp/decl.c:7684
31114+#: cp/decl.c:7694
31115 #, gcc-internal-format
31116 msgid "anonymous type with no linkage used to declare variable %q#D with linkage"
31117 msgstr "se usó un tipo anónimo sin enlace para declarar la variable %q#D sin enlace"
31118
31119-#: cp/decl.c:7693
31120+#: cp/decl.c:7703
31121 #, gcc-internal-format
31122 msgid "type %qT with no linkage used to declare variable %q#D with linkage"
31123 msgstr "se usó el tipo %qT sin enlace para declarar la variable %q#D con enlace"
31124
31125-#: cp/decl.c:7816
31126+#: cp/decl.c:7826
31127 #, gcc-internal-format
31128 msgid "in-class initialization of static data member %q#D of incomplete type"
31129 msgstr "inicialización en la clase del miembro de datos static %q#D de tipo incompleto"
31130
31131-#: cp/decl.c:7820
31132+#: cp/decl.c:7830
31133 #, gcc-internal-format
31134 msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type"
31135 msgstr "se necesita %<constexpr%> para la inicialización en la clase inválida del miembro de datos static %q#D de tipo que no es integral"
31136
31137-#: cp/decl.c:7823
31138+#: cp/decl.c:7833
31139 #, gcc-internal-format
31140 msgid "in-class initialization of static data member %q#D of non-literal type"
31141 msgstr "inicialización en la clase del miembro de datos static %q#D de tipo que no es literal"
31142
31143-#: cp/decl.c:7836
31144+#: cp/decl.c:7846
31145 #, gcc-internal-format
31146 msgid "invalid in-class initialization of static data member of non-integral type %qT"
31147 msgstr "inicialización en la clase inválida para el miembro de datos static de tipo %qT que no es integral"
31148
31149-#: cp/decl.c:7842
31150+#: cp/decl.c:7852
31151 #, gcc-internal-format
31152 msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
31153 msgstr "ISO C++ prohíbe la inicialización en la clase del miembro static %qD que no es constante"
31154
31155-#: cp/decl.c:7846
31156+#: cp/decl.c:7856
31157 #, gcc-internal-format
31158 msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
31159 msgstr "ISO C++ prohíbe la inicialización de la constante miembro %qD del tipo %qT que no es entero"
31160
31161-#: cp/decl.c:7923 cp/decl.c:7951
31162+#: cp/decl.c:7933 cp/decl.c:7961
31163 #, gcc-internal-format
31164 msgid "size of array %qD has non-integral type %qT"
31165 msgstr "el tamaño de la matriz %qD tiene un tipo %qT que no es integral"
31166
31167-#: cp/decl.c:7926 cp/decl.c:7953
31168+#: cp/decl.c:7936 cp/decl.c:7963
31169 #, gcc-internal-format
31170 msgid "size of array has non-integral type %qT"
31171 msgstr "el tamaño de la matriz tiene un tipo %qT que no es integral"
31172
31173-#: cp/decl.c:8003
31174+#: cp/decl.c:8013
31175 #, gcc-internal-format
31176 msgid "size of array %qD is negative"
31177 msgstr "el tamaño de la matriz %qD es negativo"
31178
31179-#: cp/decl.c:8005
31180+#: cp/decl.c:8015
31181 #, gcc-internal-format
31182 msgid "size of array is negative"
31183 msgstr "el tamaño de la matriz es negativo"
31184
31185-#: cp/decl.c:8019
31186+#: cp/decl.c:8029
31187 #, gcc-internal-format
31188 msgid "ISO C++ forbids zero-size array %qD"
31189 msgstr "ISO C++ prohíbe la matriz %qD de tamaño cero"
31190
31191-#: cp/decl.c:8021
31192+#: cp/decl.c:8031
31193 #, gcc-internal-format
31194 msgid "ISO C++ forbids zero-size array"
31195 msgstr "ISO C++ prohíbe matrices de tamaño cero"
31196
31197-#: cp/decl.c:8033
31198+#: cp/decl.c:8043
31199 #, gcc-internal-format
31200 msgid "size of array %qD is not an integral constant-expression"
31201 msgstr "el tamaño de la matriz %qD no es una expresion constante integral"
31202
31203-#: cp/decl.c:8036
31204+#: cp/decl.c:8046
31205 #, gcc-internal-format
31206 msgid "size of array is not an integral constant-expression"
31207 msgstr "el tamaño de la matriz no es una expresion constante integral"
31208
31209-#: cp/decl.c:8042
31210+#: cp/decl.c:8052
31211 #, gcc-internal-format
31212 msgid "ISO C++ forbids variable length array %qD"
31213 msgstr "ISO C++ prohíbe la matriz %qD de longitud variable"
31214
31215-#: cp/decl.c:8044
31216+#: cp/decl.c:8054
31217 #, gcc-internal-format
31218 msgid "ISO C++ forbids variable length array"
31219 msgstr "ISO C++ prohíbe las matrices de longitud variable"
31220
31221-#: cp/decl.c:8050
31222+#: cp/decl.c:8060
31223 #, gcc-internal-format
31224 msgid "variable length array %qD is used"
31225 msgstr "se usa la matriz de longitud variable %qD"
31226
31227-#: cp/decl.c:8088
31228+#: cp/decl.c:8098
31229 #, gcc-internal-format
31230 msgid "overflow in array dimension"
31231 msgstr "desbordamiento en la dimensión de la matriz"
31232
31233-#: cp/decl.c:8148
31234+#: cp/decl.c:8158
31235 #, gcc-internal-format
31236 msgid "declaration of %qD as array of %<auto%>"
31237 msgstr "la declaración de %qD como una matriz %<auto%>"
31238
31239-#: cp/decl.c:8156
31240+#: cp/decl.c:8166
31241 #, gcc-internal-format
31242 msgid "declaration of %qD as array of void"
31243 msgstr "la declaración de %qD como una matriz de voids"
31244
31245-#: cp/decl.c:8158
31246+#: cp/decl.c:8168
31247 #, gcc-internal-format
31248 msgid "creating array of void"
31249 msgstr "se crea la matriz de voids"
31250
31251-#: cp/decl.c:8163
31252+#: cp/decl.c:8173
31253 #, gcc-internal-format
31254 msgid "declaration of %qD as array of functions"
31255 msgstr "la declaración de %qD como una matriz de funciones"
31256
31257-#: cp/decl.c:8165
31258+#: cp/decl.c:8175
31259 #, gcc-internal-format
31260 msgid "creating array of functions"
31261 msgstr "se crea la matriz de funciones"
31262
31263-#: cp/decl.c:8170
31264+#: cp/decl.c:8180
31265 #, gcc-internal-format
31266 msgid "declaration of %qD as array of references"
31267 msgstr "la declaración de %qD como una matriz de referencias"
31268
31269-#: cp/decl.c:8172
31270+#: cp/decl.c:8182
31271 #, gcc-internal-format
31272 msgid "creating array of references"
31273 msgstr "se crea la matriz de referencias"
31274
31275-#: cp/decl.c:8177
31276+#: cp/decl.c:8187
31277 #, gcc-internal-format
31278 msgid "declaration of %qD as array of function members"
31279 msgstr "la declaración de %qD como una matriz de miembros de función"
31280
31281-#: cp/decl.c:8179
31282+#: cp/decl.c:8189
31283 #, gcc-internal-format
31284 msgid "creating array of function members"
31285 msgstr "se crea la matriz de miembros de función"
31286
31287-#: cp/decl.c:8193
31288+#: cp/decl.c:8203
31289 #, gcc-internal-format
31290 msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
31291 msgstr "la declaración de %qD como una matriz multidimensional debe tener límites para todas las dimensiones excepto la primera"
31292
31293-#: cp/decl.c:8197
31294+#: cp/decl.c:8207
31295 #, gcc-internal-format
31296 msgid "multidimensional array must have bounds for all dimensions except the first"
31297 msgstr "una matriz multidimensional debe tener límites para todas las dimensiones excepto para la primera"
31298
31299-#: cp/decl.c:8232
31300+#: cp/decl.c:8242
31301 #, gcc-internal-format
31302 msgid "return type specification for constructor invalid"
31303 msgstr "la especificación del tipo de devolución para el constructor es inválida"
31304
31305-#: cp/decl.c:8242
31306+#: cp/decl.c:8252
31307 #, gcc-internal-format
31308 msgid "return type specification for destructor invalid"
31309 msgstr "la especificación del tipo de devolución para el destructor es inválida"
31310
31311-#: cp/decl.c:8255
31312+#: cp/decl.c:8265
31313 #, gcc-internal-format
31314 msgid "return type specified for %<operator %T%>"
31315 msgstr "se especificó un tipo de devolución para %<operator %T%>"
31316
31317-#: cp/decl.c:8277
31318+#: cp/decl.c:8287
31319 #, gcc-internal-format
31320 msgid "unnamed variable or field declared void"
31321 msgstr "se declaró la variable o campo sin nombre como void"
31322
31323-#: cp/decl.c:8284
31324+#: cp/decl.c:8294
31325 #, gcc-internal-format
31326 msgid "variable or field declared void"
31327 msgstr "se declaró la variable o campo como void"
31328
31329-#: cp/decl.c:8468
31330+#: cp/decl.c:8478
31331 #, gcc-internal-format
31332 msgid "invalid use of qualified-name %<::%D%>"
31333 msgstr "uso inválido del nombre calificado %<::%D%>"
31334
31335-#: cp/decl.c:8471
31336+#: cp/decl.c:8481
31337 #, gcc-internal-format
31338 msgid "invalid use of qualified-name %<%T::%D%>"
31339 msgstr "uso inválido del nombre calificado %<%T::%D%>"
31340
31341-#: cp/decl.c:8474
31342+#: cp/decl.c:8484
31343 #, gcc-internal-format
31344 msgid "invalid use of qualified-name %<%D::%D%>"
31345 msgstr "uso inválido del nombre calificado %<%D::%D%>"
31346
31347-#: cp/decl.c:8483
31348+#: cp/decl.c:8493
31349 #, gcc-internal-format
31350 msgid "%q#T is not a class or a namespace"
31351 msgstr "%q#T no es una clase o un espacio de nombres"
31352
31353-#: cp/decl.c:8491
31354+#: cp/decl.c:8501
31355 #, gcc-internal-format
31356 msgid "type %qT is not derived from type %qT"
31357 msgstr "el tipo %qT no es derivado del tipo %T"
31358
31359 # FIXME traducción
31360-#: cp/decl.c:8507 cp/decl.c:8599 cp/decl.c:8608 cp/decl.c:9951
31361+#: cp/decl.c:8517 cp/decl.c:8609 cp/decl.c:8618 cp/decl.c:9961
31362 #, gcc-internal-format
31363 msgid "declaration of %qD as non-function"
31364 msgstr "la declaración de %qD como algo que no es función"
31365
31366 # FIXME traducción
31367-#: cp/decl.c:8513
31368+#: cp/decl.c:8523
31369 #, gcc-internal-format
31370 msgid "declaration of %qD as non-member"
31371 msgstr "declaración de %qD como algo que no es miembro"
31372
31373-#: cp/decl.c:8544
31374+#: cp/decl.c:8554
31375 #, gcc-internal-format
31376 msgid "declarator-id missing; using reserved word %qD"
31377 msgstr "falta el id del declarador; se utiliza la palabra reservada %qD"
31378
31379-#: cp/decl.c:8591
31380+#: cp/decl.c:8601
31381 #, gcc-internal-format
31382 msgid "function definition does not declare parameters"
31383 msgstr "la definición de la función no declara parámetros"
31384
31385-#: cp/decl.c:8616
31386+#: cp/decl.c:8626
31387 #, gcc-internal-format
31388 msgid "declaration of %qD as %<typedef%>"
31389 msgstr "declaración de %qD como %<typedef%>"
31390
31391-#: cp/decl.c:8621
31392+#: cp/decl.c:8631
31393 #, gcc-internal-format
31394 msgid "declaration of %qD as parameter"
31395 msgstr "la declaración de %qD como parámetro"
31396
31397-#: cp/decl.c:8654
31398+#: cp/decl.c:8664
31399 #, gcc-internal-format
31400 msgid "%<constexpr%> cannot appear in a typedef declaration"
31401 msgstr "%<constexpr%> no puede aparecer en una declaración typedef"
31402
31403-#: cp/decl.c:8662
31404+#: cp/decl.c:8672
31405 #, gcc-internal-format
31406 msgid "two or more data types in declaration of %qs"
31407 msgstr "dos o más tipos de datos en la declaración de %qs"
31408
31409-#: cp/decl.c:8668
31410+#: cp/decl.c:8678
31411 #, gcc-internal-format
31412 msgid "conflicting specifiers in declaration of %qs"
31413 msgstr "especificadores en conflicto en la declaración de %qs"
31414
31415-#: cp/decl.c:8740 cp/decl.c:8743 cp/decl.c:8746
31416+#: cp/decl.c:8750 cp/decl.c:8753 cp/decl.c:8756
31417 #, gcc-internal-format
31418 msgid "ISO C++ forbids declaration of %qs with no type"
31419 msgstr "ISO C++ prohíbe la declaración de %qs sin tipo"
31420
31421-#: cp/decl.c:8757
31422+#: cp/decl.c:8767
31423 #, gcc-internal-format
31424 msgid "%<__int128%> is not supported by this target"
31425 msgstr "no se admite %<__int128%> en este objetivo"
31426
31427-#: cp/decl.c:8762
31428+#: cp/decl.c:8772
31429 #, gcc-internal-format
31430 msgid "ISO C++ does not support %<__int128%> for %qs"
31431 msgstr "ISO C++ no admite %<__int128%> para %qs"
31432
31433-#: cp/decl.c:8783 cp/decl.c:8803
31434+#: cp/decl.c:8793 cp/decl.c:8813
31435 #, gcc-internal-format
31436 msgid "%<signed%> or %<unsigned%> invalid for %qs"
31437 msgstr "%<signed%> o %<unsigned%> inválido para %qs"
31438
31439-#: cp/decl.c:8785
31440+#: cp/decl.c:8795
31441 #, gcc-internal-format
31442 msgid "%<signed%> and %<unsigned%> specified together for %qs"
31443 msgstr "%<signed%> y %<unsigned%> se especificaron juntos para %qs"
31444
31445-#: cp/decl.c:8787
31446+#: cp/decl.c:8797
31447 #, gcc-internal-format
31448 msgid "%<long long%> invalid for %qs"
31449 msgstr "%<long long%> inválido para %qs"
31450
31451-#: cp/decl.c:8789
31452+#: cp/decl.c:8799
31453 #, gcc-internal-format
31454 msgid "%<long%> invalid for %qs"
31455 msgstr "%<long%> inválido para %qs"
31456
31457-#: cp/decl.c:8791
31458+#: cp/decl.c:8801
31459 #, gcc-internal-format
31460 msgid "%<short%> invalid for %qs"
31461 msgstr "%<short%> inválido para %qs"
31462
31463-#: cp/decl.c:8793
31464+#: cp/decl.c:8803
31465 #, gcc-internal-format
31466 msgid "%<long%> or %<short%> invalid for %qs"
31467 msgstr "%<long%> o %<short%> inválidos para %qs"
31468
31469-#: cp/decl.c:8795
31470+#: cp/decl.c:8805
31471 #, gcc-internal-format
31472 msgid "%<long%>, %<int%>, %<short%>, or %<char%> invalid for %qs"
31473 msgstr "%<long%>, %<int%>, %<short%>, o %<char%> inválido para %qs"
31474
31475-#: cp/decl.c:8797
31476+#: cp/decl.c:8807
31477 #, gcc-internal-format
31478 msgid "%<long%> or %<short%> specified with char for %qs"
31479 msgstr "se especificó %<long%> o %<short%> con char para %qs"
31480
31481-#: cp/decl.c:8799
31482+#: cp/decl.c:8809
31483 #, gcc-internal-format
31484 msgid "%<long%> and %<short%> specified together for %qs"
31485 msgstr "%<long%> y %<short%> se especificaron juntos para %qs"
31486
31487-#: cp/decl.c:8805
31488+#: cp/decl.c:8815
31489 #, gcc-internal-format
31490 msgid "%<short%> or %<long%> invalid for %qs"
31491 msgstr "%<short%> o %<long%> inválidos para %qs"
31492
31493-#: cp/decl.c:8813
31494+#: cp/decl.c:8823
31495 #, gcc-internal-format
31496 msgid "long, short, signed or unsigned used invalidly for %qs"
31497 msgstr "uso inválido de long, short, signed ó unsigned para %qs"
31498
31499-#: cp/decl.c:8881
31500+#: cp/decl.c:8891
31501 #, gcc-internal-format
31502 msgid "complex invalid for %qs"
31503 msgstr "complex inválido para %qs"
31504
31505-#: cp/decl.c:8909
31506+#: cp/decl.c:8919
31507 #, gcc-internal-format
31508 msgid "qualifiers are not allowed on declaration of %<operator %T%>"
31509 msgstr "no se permiten calificadores en la declaración de %<operator %T%>"
31510
31511-#: cp/decl.c:8930
31512+#: cp/decl.c:8940
31513 #, gcc-internal-format
31514 msgid "member %qD cannot be declared both virtual and static"
31515 msgstr "el miembro %qD no se puede declarar como virtual y static al mismo tiempo"
31516
31517-#: cp/decl.c:8938
31518+#: cp/decl.c:8948
31519 #, gcc-internal-format
31520 msgid "%<%T::%D%> is not a valid declarator"
31521 msgstr "%<%T::%D%> no es un declarador válido"
31522
31523-#: cp/decl.c:8947
31524+#: cp/decl.c:8957
31525 #, gcc-internal-format
31526 msgid "typedef declaration invalid in parameter declaration"
31527 msgstr "declaración typedef inválida en la declaración de parámetros"
31528
31529-#: cp/decl.c:8952
31530+#: cp/decl.c:8962
31531 #, gcc-internal-format
31532 msgid "storage class specified for template parameter %qs"
31533 msgstr "se especificó una clase de almacenamiento para el parámetro de plantilla %qs"
31534
31535-#: cp/decl.c:8958
31536+#: cp/decl.c:8968
31537 #, gcc-internal-format
31538 msgid "storage class specifiers invalid in parameter declarations"
31539 msgstr "especificadores de clase de almacenamiento inválidos en las declaraciones de parámetros"
31540
31541-#: cp/decl.c:8964
31542+#: cp/decl.c:8974
31543 #, gcc-internal-format
31544 msgid "a parameter cannot be declared %<constexpr%>"
31545 msgstr "un parámetro no se puede declarar %<constexpr%>"
31546
31547-#: cp/decl.c:8973
31548+#: cp/decl.c:8983
31549 #, gcc-internal-format
31550 msgid "%<virtual%> outside class declaration"
31551 msgstr "declaración de clase fuera de %<virtual%>"
31552
31553-#: cp/decl.c:8991
31554+#: cp/decl.c:9001
31555 #, gcc-internal-format
31556 msgid "multiple storage classes in declaration of %qs"
31557 msgstr "múltiples clases de almacenamiento en la declaración de %qs"
31558
31559-#: cp/decl.c:9014
31560+#: cp/decl.c:9024
31561 #, gcc-internal-format
31562 msgid "storage class specified for %qs"
31563 msgstr "se especificó una clase de almacenamiento para %qs"
31564
31565-#: cp/decl.c:9018
31566+#: cp/decl.c:9028
31567 #, gcc-internal-format
31568 msgid "storage class specified for parameter %qs"
31569 msgstr "se especificó una clase de almacenamiento para el parámetro %qs"
31570
31571-#: cp/decl.c:9031
31572+#: cp/decl.c:9041
31573 #, gcc-internal-format
31574 msgid "nested function %qs declared %<extern%>"
31575 msgstr "la función anidada %qs se declaró %<extern%>"
31576
31577-#: cp/decl.c:9035
31578+#: cp/decl.c:9045
31579 #, gcc-internal-format
31580 msgid "top-level declaration of %qs specifies %<auto%>"
31581 msgstr "la declaración del nivel superior de %qs especifica %<auto%>"
31582
31583-#: cp/decl.c:9041
31584+#: cp/decl.c:9051
31585 #, gcc-internal-format
31586 msgid "function-scope %qs implicitly auto and declared %<__thread%>"
31587 msgstr "el ámbito de la función %qs es implícitamente auto y declarado %<__thread%>"
31588
31589-#: cp/decl.c:9048
31590+#: cp/decl.c:9058
31591 #, gcc-internal-format
31592 msgid "storage class specifiers invalid in friend function declarations"
31593 msgstr "especificadores de clase de almacenamiento inválidos en las declaraciones de funciones friend"
31594
31595-#: cp/decl.c:9142
31596+#: cp/decl.c:9152
31597 #, gcc-internal-format
31598 msgid "%qs declared as function returning a function"
31599 msgstr "%qs que se declaró como función devuelve una función"
31600
31601-#: cp/decl.c:9147
31602+#: cp/decl.c:9157
31603 #, gcc-internal-format
31604 msgid "%qs declared as function returning an array"
31605 msgstr "%qs que se declaró como función devuelve una matriz"
31606
31607-#: cp/decl.c:9173
31608+#: cp/decl.c:9183
31609 #, gcc-internal-format
31610 msgid "%qs function uses %<auto%> type specifier without trailing return type"
31611 msgstr "la función %qs usa el especificador de tipo %<auto%> sin un tipo de devolución trailing"
31612
31613-#: cp/decl.c:9179
31614+#: cp/decl.c:9189
31615 #, gcc-internal-format
31616 msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
31617 msgstr "la función %qs con tipo de devolución trailing tiene %qT como su tipo en lugar de un simple %<auto%>"
31618
31619 #. Not using maybe_warn_cpp0x because this should
31620 #. always be an error.
31621-#: cp/decl.c:9190
31622+#: cp/decl.c:9200
31623 #, gcc-internal-format
31624 msgid "trailing return type only available with -std=c++11 or -std=gnu++11"
31625 msgstr "el tipo de devolución trailing sólo está disponible con -std=c++11 o -std=gnu++11"
31626
31627-#: cp/decl.c:9193
31628+#: cp/decl.c:9203
31629 #, gcc-internal-format
31630 msgid "%qs function with trailing return type not declared with %<auto%> type specifier"
31631 msgstr "no se declaró la función %qs con tipo de devolución trailing con el especificador de tipo %<auto%>"
31632
31633-#: cp/decl.c:9226
31634+#: cp/decl.c:9236
31635 #, gcc-internal-format
31636 msgid "destructor cannot be static member function"
31637 msgstr "el destructor no puede ser una función miembro de tipo static"
31638
31639-#: cp/decl.c:9227
31640+#: cp/decl.c:9237
31641 #, gcc-internal-format
31642 msgid "constructor cannot be static member function"
31643 msgstr "el constructor no puede ser una función miembro de tipo static"
31644
31645-#: cp/decl.c:9231
31646+#: cp/decl.c:9241
31647 #, gcc-internal-format
31648 msgid "destructors may not be cv-qualified"
31649 msgstr "los destructores no pueden ser cv-calificados"
31650
31651-#: cp/decl.c:9232
31652+#: cp/decl.c:9242
31653 #, gcc-internal-format
31654 msgid "constructors may not be cv-qualified"
31655 msgstr "los constructores tal vez no sean cv-calificados"
31656
31657-#: cp/decl.c:9249
31658+#: cp/decl.c:9259
31659 #, gcc-internal-format
31660 msgid "constructors cannot be declared virtual"
31661 msgstr "los constructores no se pueden declarar virtual"
31662
31663-#: cp/decl.c:9262
31664+#: cp/decl.c:9272
31665 #, gcc-internal-format
31666 msgid "can%'t initialize friend function %qs"
31667 msgstr "no se puede inicializar la función friend %qs"
31668
31669 #. Cannot be both friend and virtual.
31670-#: cp/decl.c:9266
31671+#: cp/decl.c:9276
31672 #, gcc-internal-format
31673 msgid "virtual functions cannot be friends"
31674 msgstr "las funciones virtual no pueden ser friend"
31675
31676-#: cp/decl.c:9270
31677+#: cp/decl.c:9280
31678 #, gcc-internal-format
31679 msgid "friend declaration not in class definition"
31680 msgstr "la declaración friend no está en una definición de clase"
31681
31682-#: cp/decl.c:9272
31683+#: cp/decl.c:9282
31684 #, gcc-internal-format
31685 msgid "can%'t define friend function %qs in a local class definition"
31686 msgstr "no se puede definir la función friend %qs en una definición de clase local"
31687
31688-#: cp/decl.c:9293
31689+#: cp/decl.c:9303
31690 #, gcc-internal-format
31691 msgid "destructors may not have parameters"
31692 msgstr "los destructores no pueden tener parámetros"
31693
31694-#: cp/decl.c:9312
31695+#: cp/decl.c:9322
31696 #, gcc-internal-format
31697 msgid "cannot declare pointer to %q#T"
31698 msgstr "no se puede declarar el puntero a %q#T"
31699
31700-#: cp/decl.c:9325 cp/decl.c:9332
31701+#: cp/decl.c:9335 cp/decl.c:9342
31702 #, gcc-internal-format
31703 msgid "cannot declare reference to %q#T"
31704 msgstr "no se puede declarar la referencia a %q#T"
31705
31706-#: cp/decl.c:9334
31707+#: cp/decl.c:9344
31708 #, gcc-internal-format
31709 msgid "cannot declare pointer to %q#T member"
31710 msgstr "no se puede declarar el puntero al miembro %q#T"
31711
31712-#: cp/decl.c:9357
31713+#: cp/decl.c:9367
31714 #, gcc-internal-format
31715 msgid "cannot declare reference to qualified function type %qT"
31716 msgstr "no se puede declarar la referencia para el tipo de función calificado %qT"
31717
31718-#: cp/decl.c:9358
31719+#: cp/decl.c:9368
31720 #, gcc-internal-format
31721 msgid "cannot declare pointer to qualified function type %qT"
31722 msgstr "no se puede declarar el puntero para el tipo de función calificado %qT"
31723
31724-#: cp/decl.c:9432
31725+#: cp/decl.c:9442
31726 #, gcc-internal-format
31727 msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument"
31728 msgstr "no se puede declarar la referencia a %q#T, el cual no es una definición de tipo o un argumento de tipo de plantilla"
31729
31730-#: cp/decl.c:9485
31731+#: cp/decl.c:9495
31732 #, gcc-internal-format
31733 msgid "both %<const%> and %<constexpr%> cannot be used here"
31734 msgstr "no se pueden usar aquí %<const%> ni %<constexpr%>"
31735
31736-#: cp/decl.c:9487
31737+#: cp/decl.c:9497
31738 #, gcc-internal-format
31739 msgid "both %<volatile%> and %<constexpr%> cannot be used here"
31740 msgstr "no se pueden usar aquí %<volatile%> ni %<constexpr%>"
31741
31742-#: cp/decl.c:9499
31743+#: cp/decl.c:9509
31744 #, gcc-internal-format
31745 msgid "template-id %qD used as a declarator"
31746 msgstr "el id de plantilla %qD se usa como un declarador"
31747
31748-#: cp/decl.c:9550
31749+#: cp/decl.c:9560
31750 #, gcc-internal-format
31751 msgid "member functions are implicitly friends of their class"
31752 msgstr "las funciones miembros son implícitamente friends de su clase"
31753
31754-#: cp/decl.c:9555
31755+#: cp/decl.c:9565
31756 #, gcc-internal-format
31757 msgid "extra qualification %<%T::%> on member %qs"
31758 msgstr "calificación extra %<%T::%> en el miembro %qs"
31759
31760-#: cp/decl.c:9585
31761+#: cp/decl.c:9595
31762 #, gcc-internal-format
31763 msgid "cannot define member function %<%T::%s%> within %<%T%>"
31764 msgstr "no se puede definir la función miembro %<%T::%s%> dentro de %<%T%>"
31765
31766-#: cp/decl.c:9587
31767+#: cp/decl.c:9597
31768 #, gcc-internal-format
31769 msgid "cannot declare member function %<%T::%s%> within %<%T%>"
31770 msgstr "no se puede declarar la función miembro %<%T::%s%> dentro de %<%T%>"
31771
31772-#: cp/decl.c:9596
31773+#: cp/decl.c:9606
31774 #, gcc-internal-format
31775 msgid "cannot declare member %<%T::%s%> within %qT"
31776 msgstr "no se puede declarar el miembro %<%T::%s%> dentro de %qT"
31777
31778-#: cp/decl.c:9622
31779+#: cp/decl.c:9632
31780 #, gcc-internal-format
31781 msgid "non-parameter %qs cannot be a parameter pack"
31782 msgstr "%qs que no es parámetro no puede ser un paquete de parámetro"
31783
31784-#: cp/decl.c:9632
31785+#: cp/decl.c:9642
31786 #, gcc-internal-format
31787 msgid "size of array %qs is too large"
31788 msgstr "el tamaño de la matriz %qs es demasiado grande"
31789
31790-#: cp/decl.c:9643
31791+#: cp/decl.c:9653
31792 #, gcc-internal-format
31793 msgid "data member may not have variably modified type %qT"
31794 msgstr "los datos miembro pueden no tener el tipo modificado variablemente %qT"
31795
31796-#: cp/decl.c:9645
31797+#: cp/decl.c:9655
31798 #, gcc-internal-format
31799 msgid "parameter may not have variably modified type %qT"
31800 msgstr "el parámetro puede no tener el tipo modificado variablemente %qT"
31801
31802 #. [dcl.fct.spec] The explicit specifier shall only be used in
31803 #. declarations of constructors within a class definition.
31804-#: cp/decl.c:9653
31805+#: cp/decl.c:9663
31806 #, gcc-internal-format
31807 msgid "only declarations of constructors can be %<explicit%>"
31808 msgstr "solamente las declaraciones de constructores pueden ser %<explicit%>"
31809
31810-#: cp/decl.c:9661
31811+#: cp/decl.c:9671
31812 #, gcc-internal-format
31813 msgid "non-member %qs cannot be declared %<mutable%>"
31814 msgstr "el no-miembro %qs no se puede declarar %<mutable%>"
31815
31816-#: cp/decl.c:9666
31817+#: cp/decl.c:9676
31818 #, gcc-internal-format
31819 msgid "non-object member %qs cannot be declared %<mutable%>"
31820 msgstr "el miembro que no es objeto %qs no se puede declarar %<mutable%>"
31821
31822-#: cp/decl.c:9672
31823+#: cp/decl.c:9682
31824 #, gcc-internal-format
31825 msgid "function %qs cannot be declared %<mutable%>"
31826 msgstr "la función %qs no se puede declarar %<mutable%>"
31827
31828-#: cp/decl.c:9677
31829+#: cp/decl.c:9687
31830 #, gcc-internal-format
31831 msgid "static %qs cannot be declared %<mutable%>"
31832 msgstr "static %qs no se puede declarar %<mutable%>"
31833
31834-#: cp/decl.c:9682
31835+#: cp/decl.c:9692
31836 #, gcc-internal-format
31837 msgid "const %qs cannot be declared %<mutable%>"
31838 msgstr "const %qs no se puede declarar %<mutable%>"
31839
31840-#: cp/decl.c:9687
31841+#: cp/decl.c:9697
31842 #, gcc-internal-format
31843 msgid "reference %qs cannot be declared %<mutable%>"
31844 msgstr "la referencia %qs no se puede declarar %<mutable%>"
31845
31846-#: cp/decl.c:9722
31847+#: cp/decl.c:9732
31848 #, gcc-internal-format
31849 msgid "typedef declared %<auto%>"
31850 msgstr "la definición de tipo se declaró %<auto%>"
31851
31852-#: cp/decl.c:9732
31853+#: cp/decl.c:9742
31854 #, gcc-internal-format
31855 msgid "typedef name may not be a nested-name-specifier"
31856 msgstr "el nombre del typedef puede no ser un especificador-de-nombre-anidado"
31857
31858-#: cp/decl.c:9750
31859+#: cp/decl.c:9760
31860 #, gcc-internal-format
31861 msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
31862 msgstr "ISO C++ prohíbe el tipo anidado %qD con el mismo nombre que la clase que lo contiene"
31863
31864-#: cp/decl.c:9852
31865+#: cp/decl.c:9862
31866 #, gcc-internal-format
31867 msgid "qualified function types cannot be used to declare static member functions"
31868 msgstr "los tipos de función calificados no se pueden usar para declarar una función miembro estática"
31869
31870-#: cp/decl.c:9854
31871+#: cp/decl.c:9864
31872 #, gcc-internal-format
31873 msgid "qualified function types cannot be used to declare free functions"
31874 msgstr "los tipos de función calificados no se pueden usar para declarar funciones libres"
31875
31876-#: cp/decl.c:9881
31877+#: cp/decl.c:9891
31878 #, gcc-internal-format
31879 msgid "type qualifiers specified for friend class declaration"
31880 msgstr "se especificaron calificadores de tipo para la declaración de clase friend"
31881
31882-#: cp/decl.c:9886
31883+#: cp/decl.c:9896
31884 #, gcc-internal-format
31885 msgid "%<inline%> specified for friend class declaration"
31886 msgstr "se especificó %<inline%> para la declaración de clase friend"
31887
31888-#: cp/decl.c:9894
31889+#: cp/decl.c:9904
31890 #, gcc-internal-format
31891 msgid "template parameters cannot be friends"
31892 msgstr "los parámetros de la plantilla no pueden ser friends"
31893
31894-#: cp/decl.c:9896
31895+#: cp/decl.c:9906
31896 #, gcc-internal-format
31897 msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
31898 msgstr "la declaración friend requere una llave de clase, p.e. %<friend class %T::%D%>"
31899
31900-#: cp/decl.c:9900
31901+#: cp/decl.c:9910
31902 #, gcc-internal-format
31903 msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
31904 msgstr "la declaración friend requiere una llave de clase, p.e. %<friend %#T%>"
31905
31906-#: cp/decl.c:9913
31907+#: cp/decl.c:9923
31908 #, gcc-internal-format
31909 msgid "trying to make class %qT a friend of global scope"
31910 msgstr "se intenta hacer que la clase %qT sea un friend de ámbito global"
31911
31912-#: cp/decl.c:9931
31913+#: cp/decl.c:9941
31914 #, gcc-internal-format
31915 msgid "invalid qualifiers on non-member function type"
31916 msgstr "calificadores inválidos en el tipo de función que no es miembro"
31917
31918-#: cp/decl.c:9941
31919+#: cp/decl.c:9951
31920 #, gcc-internal-format
31921 msgid "abstract declarator %qT used as declaration"
31922 msgstr "el declarador abstracto %qT se usó como declaración"
31923
31924-#: cp/decl.c:9970
31925+#: cp/decl.c:9980
31926 #, gcc-internal-format
31927 msgid "cannot use %<::%> in parameter declaration"
31928 msgstr "no se puede usar %<::%> en la declaración de parámetros"
31929
31930-#: cp/decl.c:9974
31931+#: cp/decl.c:9984
31932 #, gcc-internal-format
31933 msgid "parameter declared %<auto%>"
31934 msgstr "el parámetro se declaró %<auto%>"
31935
31936-#: cp/decl.c:10016
31937+#: cp/decl.c:10026
31938 #, gcc-internal-format
31939 msgid "non-static data member declared %<auto%>"
31940 msgstr "se declaró el miembro dato que no es static como %<auto%>"
31941
31942 #. Something like struct S { int N::j; };
31943-#: cp/decl.c:10038
31944+#: cp/decl.c:10048
31945 #, gcc-internal-format
31946 msgid "invalid use of %<::%>"
31947 msgstr "uso inválido de %<::%>"
31948
31949-#: cp/decl.c:10060
31950+#: cp/decl.c:10070
31951 #, gcc-internal-format
31952 msgid "declaration of function %qD in invalid context"
31953 msgstr "declaración de la función %qD en un contexto inválido"
31954
31955-#: cp/decl.c:10069
31956+#: cp/decl.c:10079
31957 #, gcc-internal-format
31958 msgid "function %qD declared virtual inside a union"
31959 msgstr "la función %qD se declaró virtual dentro de un union"
31960
31961-#: cp/decl.c:10078
31962+#: cp/decl.c:10088
31963 #, gcc-internal-format
31964 msgid "%qD cannot be declared virtual, since it is always static"
31965 msgstr "%qD no se puede declarar virtual, ya que siempre es static"
31966
31967-#: cp/decl.c:10094
31968+#: cp/decl.c:10104
31969 #, gcc-internal-format
31970 msgid "expected qualified name in friend declaration for destructor %qD"
31971 msgstr "se esperaba un nombre calificado en la declaración friend para el destructor %qD"
31972
31973-#: cp/decl.c:10101
31974+#: cp/decl.c:10111
31975 #, gcc-internal-format
31976 msgid "declaration of %qD as member of %qT"
31977 msgstr "declaración de %qD como miembro de %qT"
31978
31979-#: cp/decl.c:10107
31980+#: cp/decl.c:10117
31981 #, gcc-internal-format
31982 msgid "a destructor cannot be %<constexpr%>"
31983 msgstr "un destructor no puede ser %<constexpr%>"
31984
31985-#: cp/decl.c:10113
31986+#: cp/decl.c:10123
31987 #, gcc-internal-format
31988 msgid "expected qualified name in friend declaration for constructor %qD"
31989 msgstr "se esperaba un nombre calificado en la declaración friend para el constructor %qD"
31990
31991-#: cp/decl.c:10159
31992+#: cp/decl.c:10169
31993 #, gcc-internal-format
31994 msgid "field %qD has incomplete type"
31995 msgstr "el campo %qD tiene tipo de dato incompleto"
31996
31997-#: cp/decl.c:10161
31998+#: cp/decl.c:10171
31999 #, gcc-internal-format
32000 msgid "name %qT has incomplete type"
32001 msgstr "el nombre %qT tiene tipo de dato incompleto"
32002
32003-#: cp/decl.c:10170
32004+#: cp/decl.c:10180
32005 #, gcc-internal-format
32006 msgid " in instantiation of template %qT"
32007 msgstr " en la instanciación de la plantilla %qT"
32008
32009-#: cp/decl.c:10179
32010+#: cp/decl.c:10189
32011 #, gcc-internal-format
32012 msgid "%qE is neither function nor member function; cannot be declared friend"
32013 msgstr "%qE no es ni función ni función miembro; no se puede declarar friend"
32014
32015-#: cp/decl.c:10231
32016+#: cp/decl.c:10241
32017 #, gcc-internal-format
32018 msgid "constexpr static data member %qD must have an initializer"
32019 msgstr "el miembro dato static constexpr %qD debe tener un inicializador"
32020
32021-#: cp/decl.c:10240
32022+#: cp/decl.c:10250
32023 #, gcc-internal-format
32024 msgid "non-static data member %qE declared %<constexpr%>"
32025 msgstr "se declaró el miembro dato que no es static %qE como %<constexpr%>"
32026
32027-#: cp/decl.c:10290
32028+#: cp/decl.c:10300
32029 #, gcc-internal-format
32030 msgid "storage class %<auto%> invalid for function %qs"
32031 msgstr "la clase de almacenamiento %<auto%> es inválida para la función %qs"
32032
32033-#: cp/decl.c:10292
32034+#: cp/decl.c:10302
32035 #, gcc-internal-format
32036 msgid "storage class %<register%> invalid for function %qs"
32037 msgstr "la clase de almacenamiento %<register%> es inválida para la función %qs"
32038
32039-#: cp/decl.c:10294
32040+#: cp/decl.c:10304
32041 #, gcc-internal-format
32042 msgid "storage class %<__thread%> invalid for function %qs"
32043 msgstr "la clase de almacenamiento %<__thread%> es inválida para la función %qs"
32044
32045-#: cp/decl.c:10297
32046+#: cp/decl.c:10307
32047 #, gcc-internal-format
32048 msgid "virt-specifiers in %qs not allowed outside a class definition"
32049 msgstr "no se permiten los especificadores-virt en %qs fuera de una definición de clase"
32050
32051-#: cp/decl.c:10308
32052+#: cp/decl.c:10318
32053 #, gcc-internal-format
32054 msgid "%<static%> specified invalid for function %qs declared out of global scope"
32055 msgstr "el especificador %<static%> es inválido para la función %qs declarada fuera del ámbito global"
32056
32057-#: cp/decl.c:10312
32058+#: cp/decl.c:10322
32059 #, gcc-internal-format
32060 msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
32061 msgstr "el especificador %<inline%> es inválido para la función %qs declarada fuera del ámbito global"
32062
32063-#: cp/decl.c:10320
32064+#: cp/decl.c:10330
32065 #, gcc-internal-format
32066 msgid "virtual non-class function %qs"
32067 msgstr "función virtual %qs que no es clase"
32068
32069-#: cp/decl.c:10327
32070+#: cp/decl.c:10337
32071 #, gcc-internal-format
32072 msgid "%qs defined in a non-class scope"
32073 msgstr "se definió %qs en un ámbito que no es una clase"
32074
32075-#: cp/decl.c:10328
32076+#: cp/decl.c:10338
32077 #, gcc-internal-format
32078 msgid "%qs declared in a non-class scope"
32079 msgstr "se declaró %qs en un ámbito que no es una clase"
32080
32081-#: cp/decl.c:10356
32082+#: cp/decl.c:10366
32083 #, gcc-internal-format
32084 msgid "cannot declare member function %qD to have static linkage"
32085 msgstr "no se puede declarar que la función miembro %qD tenga enlace estático"
32086
32087 #. FIXME need arm citation
32088-#: cp/decl.c:10363
32089+#: cp/decl.c:10373
32090 #, gcc-internal-format
32091 msgid "cannot declare static function inside another function"
32092 msgstr "no se puede declarar una función static dentro de otra función"
32093
32094-#: cp/decl.c:10393
32095+#: cp/decl.c:10403
32096 #, gcc-internal-format
32097 msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
32098 msgstr "%<static%> puede no ser utilizado cuando se define (opuesto a la declaración) un dato miembro static"
32099
32100-#: cp/decl.c:10400
32101+#: cp/decl.c:10410
32102 #, gcc-internal-format
32103 msgid "static member %qD declared %<register%>"
32104 msgstr "se declaró el miembro static %qD como %<register%>"
32105
32106-#: cp/decl.c:10406
32107+#: cp/decl.c:10416
32108 #, gcc-internal-format
32109 msgid "cannot explicitly declare member %q#D to have extern linkage"
32110 msgstr "no se puede declarar explícitamente que el miembro %q#D tenga un enlace externo"
32111
32112-#: cp/decl.c:10413
32113+#: cp/decl.c:10423
32114 #, gcc-internal-format
32115 msgid "declaration of constexpr variable %qD is not a definition"
32116 msgstr "la declaración de la variable constexpr %qD no es una definición"
32117
32118-#: cp/decl.c:10426
32119+#: cp/decl.c:10436
32120 #, gcc-internal-format
32121 msgid "%qs initialized and declared %<extern%>"
32122 msgstr "%qs inicializado y declarado como %<extern%>"
32123
32124-#: cp/decl.c:10430
32125+#: cp/decl.c:10440
32126 #, gcc-internal-format
32127 msgid "%qs has both %<extern%> and initializer"
32128 msgstr "%qs tiene %<extern%> e inicializador al mismo tiempo"
32129
32130-#: cp/decl.c:10557
32131+#: cp/decl.c:10568
32132 #, gcc-internal-format
32133 msgid "default argument for %q#D has type %qT"
32134 msgstr "el argumento por defecto de %q#D tiene tipo %qT"
32135
32136-#: cp/decl.c:10560
32137+#: cp/decl.c:10571
32138 #, gcc-internal-format
32139 msgid "default argument for parameter of type %qT has type %qT"
32140 msgstr "el argumento por defecto para el parámetro del tipo %qT tiene el tipo %qT"
32141
32142-#: cp/decl.c:10576
32143+#: cp/decl.c:10588
32144 #, gcc-internal-format
32145+msgid "default argument %qE uses %qD"
32146+msgstr "el argumento por defecto %qE usa %qD"
32147+
32148+#: cp/decl.c:10590
32149+#, gcc-internal-format
32150 msgid "default argument %qE uses local variable %qD"
32151 msgstr "el argumento por defecto %qE usa la variable local %qD"
32152
32153-#: cp/decl.c:10664
32154+#: cp/decl.c:10678
32155 #, gcc-internal-format
32156 msgid "parameter %qD has Java class type"
32157 msgstr "el parámetro %qD tiene tipo de clase Java"
32158
32159-#: cp/decl.c:10692
32160+#: cp/decl.c:10706
32161 #, gcc-internal-format
32162 msgid "parameter %qD invalidly declared method type"
32163 msgstr "el parámetro %qD se declaró inválidamente como tipo de método"
32164
32165-#: cp/decl.c:10717
32166+#: cp/decl.c:10731
32167 #, gcc-internal-format
32168 msgid "parameter %qD includes pointer to array of unknown bound %qT"
32169 msgstr "el parámetro %qD incluye un puntero a matriz %qT de límite desconocido"
32170
32171-#: cp/decl.c:10719
32172+#: cp/decl.c:10733
32173 #, gcc-internal-format
32174 msgid "parameter %qD includes reference to array of unknown bound %qT"
32175 msgstr "el parámetro %qD incluye una referencia a matriz %qT de límite desconocido"
32176@@ -28734,170 +28940,170 @@
32177 #. or implicitly defined), there's no need to worry about their
32178 #. existence. Theoretically, they should never even be
32179 #. instantiated, but that's hard to forestall.
32180-#: cp/decl.c:10960
32181+#: cp/decl.c:10974
32182 #, gcc-internal-format
32183 msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
32184 msgstr "constructor inválido; tal vez quiso decir %<%T (const %T&)%>"
32185
32186-#: cp/decl.c:11082
32187+#: cp/decl.c:11096
32188 #, gcc-internal-format
32189 msgid "%qD may not be declared within a namespace"
32190 msgstr "%qD no se puede declarar dentro de un espacio de nombres"
32191
32192-#: cp/decl.c:11087
32193+#: cp/decl.c:11101
32194 #, gcc-internal-format
32195 msgid "%qD may not be declared as static"
32196 msgstr "%qD no se puede declarar como static"
32197
32198-#: cp/decl.c:11113
32199+#: cp/decl.c:11127
32200 #, gcc-internal-format
32201 msgid "%qD must be a nonstatic member function"
32202 msgstr "%qD debe ser una función miembro que no sea static"
32203
32204-#: cp/decl.c:11122
32205+#: cp/decl.c:11136
32206 #, gcc-internal-format
32207 msgid "%qD must be either a non-static member function or a non-member function"
32208 msgstr "%qD debe ser una función miembro que no sea static o una función que no sea miembro"
32209
32210-#: cp/decl.c:11144
32211+#: cp/decl.c:11158
32212 #, gcc-internal-format
32213 msgid "%qD must have an argument of class or enumerated type"
32214 msgstr "%qD debe tener un argumento de tipo clase o enumerado"
32215
32216-#: cp/decl.c:11173
32217+#: cp/decl.c:11187
32218 #, gcc-internal-format
32219 msgid "conversion to a reference to void will never use a type conversion operator"
32220 msgstr "la conversión a una referencia a void nunca usará un operador de conversión de tipo"
32221
32222-#: cp/decl.c:11175
32223+#: cp/decl.c:11189
32224 #, gcc-internal-format
32225 msgid "conversion to void will never use a type conversion operator"
32226 msgstr "la conversión a void nunca usará un operador de conversión de tipo"
32227
32228-#: cp/decl.c:11182
32229+#: cp/decl.c:11196
32230 #, gcc-internal-format
32231 msgid "conversion to a reference to the same type will never use a type conversion operator"
32232 msgstr "la conversión a una referencia al mismo tipo nunca usará un operador de conversión de tipo"
32233
32234-#: cp/decl.c:11184
32235+#: cp/decl.c:11198
32236 #, gcc-internal-format
32237 msgid "conversion to the same type will never use a type conversion operator"
32238 msgstr "la conversión al mismo tipo nunca usará un operador de conversión de tipo"
32239
32240-#: cp/decl.c:11192
32241+#: cp/decl.c:11206
32242 #, gcc-internal-format
32243 msgid "conversion to a reference to a base class will never use a type conversion operator"
32244 msgstr "la conversión a una referencia a una clase base nunca usará un operador de conversión de tipo"
32245
32246-#: cp/decl.c:11194
32247+#: cp/decl.c:11208
32248 #, gcc-internal-format
32249 msgid "conversion to a base class will never use a type conversion operator"
32250 msgstr "la conversión a una clase base nunca usará un operador de conversión de tipo"
32251
32252 #. 13.4.0.3
32253-#: cp/decl.c:11203
32254+#: cp/decl.c:11217
32255 #, gcc-internal-format
32256 msgid "ISO C++ prohibits overloading operator ?:"
32257 msgstr "ISO C++ prohíbe la sobrecarga del operador ?:"
32258
32259-#: cp/decl.c:11208
32260+#: cp/decl.c:11222
32261 #, gcc-internal-format
32262 msgid "%qD must not have variable number of arguments"
32263 msgstr "%qD no debe tener un número variable de argumentos"
32264
32265-#: cp/decl.c:11259
32266+#: cp/decl.c:11273
32267 #, gcc-internal-format
32268 msgid "postfix %qD must take %<int%> as its argument"
32269 msgstr "el postfijo %qD debe tomar %<int%> como su argumento"
32270
32271-#: cp/decl.c:11262
32272+#: cp/decl.c:11276
32273 #, gcc-internal-format
32274 msgid "postfix %qD must take %<int%> as its second argument"
32275 msgstr "el postfijo %qD debe tomar %<int%> como su segundo argumento"
32276
32277-#: cp/decl.c:11270
32278+#: cp/decl.c:11284
32279 #, gcc-internal-format
32280 msgid "%qD must take either zero or one argument"
32281 msgstr "%qD debe tomar cero o un argumentos"
32282
32283-#: cp/decl.c:11272
32284+#: cp/decl.c:11286
32285 #, gcc-internal-format
32286 msgid "%qD must take either one or two arguments"
32287 msgstr "%qD debe tomar uno o dos argumentos"
32288
32289 # En esta traducción se emplea 'devolver' por 'return'. Si embargo, aquí
32290 # se cambió por cacofonía: no es agradable escuchar 'debe devolver'. cfuga
32291-#: cp/decl.c:11294
32292+#: cp/decl.c:11308
32293 #, gcc-internal-format
32294 msgid "prefix %qD should return %qT"
32295 msgstr "el prefijo %qD debe regresar %qT"
32296
32297-#: cp/decl.c:11300
32298+#: cp/decl.c:11314
32299 #, gcc-internal-format
32300 msgid "postfix %qD should return %qT"
32301 msgstr "el postfijo %qD debe regresar %qT"
32302
32303-#: cp/decl.c:11309
32304+#: cp/decl.c:11323
32305 #, gcc-internal-format
32306 msgid "%qD must take %<void%>"
32307 msgstr "%qD debe tomar %<void%>"
32308
32309-#: cp/decl.c:11311 cp/decl.c:11320
32310+#: cp/decl.c:11325 cp/decl.c:11334
32311 #, gcc-internal-format
32312 msgid "%qD must take exactly one argument"
32313 msgstr "%qD debe tomar un argumento exactamente"
32314
32315-#: cp/decl.c:11322
32316+#: cp/decl.c:11336
32317 #, gcc-internal-format
32318 msgid "%qD must take exactly two arguments"
32319 msgstr "%qD debe tomar dos argumentos exactamente"
32320
32321-#: cp/decl.c:11331
32322+#: cp/decl.c:11345
32323 #, gcc-internal-format
32324 msgid "user-defined %qD always evaluates both arguments"
32325 msgstr "el %qD definido por el usuario siempre evalúa ambos argumentos"
32326
32327-#: cp/decl.c:11345
32328+#: cp/decl.c:11359
32329 #, gcc-internal-format
32330 msgid "%qD should return by value"
32331 msgstr "%qD debe devolver por valor"
32332
32333-#: cp/decl.c:11356 cp/decl.c:11361
32334+#: cp/decl.c:11370 cp/decl.c:11375
32335 #, gcc-internal-format
32336 msgid "%qD cannot have default arguments"
32337 msgstr "%qD no puede tener argumentos por defecto"
32338
32339-#: cp/decl.c:11422
32340+#: cp/decl.c:11436
32341 #, gcc-internal-format
32342 msgid "using template type parameter %qT after %qs"
32343 msgstr "usando el parámetro de tipo plantilla %qT después de %qs"
32344
32345-#: cp/decl.c:11444
32346+#: cp/decl.c:11458
32347 #, gcc-internal-format
32348 msgid "using alias template specialization %qT after %qs"
32349 msgstr "se usa especialización de plantilla %qT alias después de %qs"
32350
32351-#: cp/decl.c:11447
32352+#: cp/decl.c:11461
32353 #, gcc-internal-format
32354 msgid "using typedef-name %qD after %qs"
32355 msgstr "se usó el nombre de definición de tipo %qD después de %qs"
32356
32357-#: cp/decl.c:11449
32358+#: cp/decl.c:11463
32359 #, gcc-internal-format
32360 msgid "%qD has a previous declaration here"
32361 msgstr "%qD tiene una declaración previa aquí"
32362
32363-#: cp/decl.c:11457
32364+#: cp/decl.c:11471
32365 #, gcc-internal-format
32366 msgid "%qT referred to as %qs"
32367 msgstr "se refirió a %qT como %qs"
32368
32369-#: cp/decl.c:11458 cp/decl.c:11465
32370+#: cp/decl.c:11472 cp/decl.c:11479
32371 #, gcc-internal-format
32372 msgid "%q+T has a previous declaration here"
32373 msgstr "%q+T tiene una declaración previa aquí"
32374
32375-#: cp/decl.c:11464
32376+#: cp/decl.c:11478
32377 #, gcc-internal-format
32378 msgid "%qT referred to as enum"
32379 msgstr "se refirió a %qT como un enum"
32380@@ -28909,90 +29115,90 @@
32381 #. void f(class C); // No template header here
32382 #.
32383 #. then the required template argument is missing.
32384-#: cp/decl.c:11479
32385+#: cp/decl.c:11493
32386 #, gcc-internal-format
32387 msgid "template argument required for %<%s %T%>"
32388 msgstr "se requiere un argumento de plantilla para %<%s %T%>"
32389
32390-#: cp/decl.c:11527 cp/name-lookup.c:3049
32391+#: cp/decl.c:11541 cp/name-lookup.c:3049
32392 #, gcc-internal-format
32393 msgid "%qD has the same name as the class in which it is declared"
32394 msgstr "%qD tiene el mismo nombre que la clase en la cual se declaró"
32395
32396-#: cp/decl.c:11557 cp/name-lookup.c:2548 cp/name-lookup.c:3373
32397+#: cp/decl.c:11571 cp/name-lookup.c:2548 cp/name-lookup.c:3373
32398 #: cp/name-lookup.c:3418 cp/parser.c:5054 cp/parser.c:20501
32399 #, gcc-internal-format
32400 msgid "reference to %qD is ambiguous"
32401 msgstr "la referencia a %qD es ambigua"
32402
32403-#: cp/decl.c:11669
32404+#: cp/decl.c:11683
32405 #, gcc-internal-format
32406 msgid "use of enum %q#D without previous declaration"
32407 msgstr "uso del enum %q#D sin declaración previa"
32408
32409-#: cp/decl.c:11690
32410+#: cp/decl.c:11704
32411 #, gcc-internal-format
32412 msgid "redeclaration of %qT as a non-template"
32413 msgstr "redeclaración de %qT como algo que no es plantilla"
32414
32415-#: cp/decl.c:11691
32416+#: cp/decl.c:11705
32417 #, gcc-internal-format
32418 msgid "previous declaration %q+D"
32419 msgstr "declaración previa de %q+D"
32420
32421-#: cp/decl.c:11825
32422+#: cp/decl.c:11839
32423 #, gcc-internal-format
32424 msgid "derived union %qT invalid"
32425 msgstr "union derivada %qT inválida"
32426
32427-#: cp/decl.c:11834
32428+#: cp/decl.c:11848
32429 #, gcc-internal-format
32430 msgid "Java class %qT cannot have multiple bases"
32431 msgstr "la clase Java %qT no puede tener bases múltiples"
32432
32433-#: cp/decl.c:11845
32434+#: cp/decl.c:11859
32435 #, gcc-internal-format
32436 msgid "Java class %qT cannot have virtual bases"
32437 msgstr "la clase Java %qT no puede tener bases virtuales"
32438
32439 # No me gusta mucho esta traducción. Creo que es mejor
32440 # "el tipo base %qT no es de tipo struct o clase". cfuga
32441-#: cp/decl.c:11865
32442+#: cp/decl.c:11879
32443 #, gcc-internal-format
32444 msgid "base type %qT fails to be a struct or class type"
32445 msgstr "el tipo base %qT falla en ser un tipo struct o clase"
32446
32447-#: cp/decl.c:11898
32448+#: cp/decl.c:11912
32449 #, gcc-internal-format
32450 msgid "recursive type %qT undefined"
32451 msgstr "tipo recursivo %qT sin definir"
32452
32453-#: cp/decl.c:11900
32454+#: cp/decl.c:11914
32455 #, gcc-internal-format
32456 msgid "duplicate base type %qT invalid"
32457 msgstr "tipo base duplicado %qT inválido"
32458
32459-#: cp/decl.c:12024
32460+#: cp/decl.c:12038
32461 #, gcc-internal-format
32462 msgid "scoped/unscoped mismatch in enum %q#T"
32463 msgstr "no coinciden scoped/unscoped en el enum %q#T"
32464
32465-#: cp/decl.c:12027 cp/decl.c:12035 cp/decl.c:12047 cp/parser.c:14514
32466+#: cp/decl.c:12041 cp/decl.c:12049 cp/decl.c:12061 cp/parser.c:14514
32467 #, gcc-internal-format
32468 msgid "previous definition here"
32469 msgstr "la definición previa está aquí"
32470
32471-#: cp/decl.c:12032
32472+#: cp/decl.c:12046
32473 #, gcc-internal-format
32474 msgid "underlying type mismatch in enum %q#T"
32475 msgstr "no coincide el tipo subyacente en el enum %q#T"
32476
32477-#: cp/decl.c:12044
32478+#: cp/decl.c:12058
32479 #, gcc-internal-format
32480 msgid "different underlying type in enum %q#T"
32481 msgstr "tipos subyacentes diferentes en el enum %q#T"
32482
32483-#: cp/decl.c:12111
32484+#: cp/decl.c:12125
32485 #, gcc-internal-format
32486 msgid "underlying type %<%T%> of %<%T%> must be an integral type"
32487 msgstr "el tipo subyacente %<%T%> de %<%T%> debe ser un tipo integral"
32488@@ -29001,72 +29207,72 @@
32489 #.
32490 #. IF no integral type can represent all the enumerator values, the
32491 #. enumeration is ill-formed.
32492-#: cp/decl.c:12245
32493+#: cp/decl.c:12259
32494 #, gcc-internal-format
32495 msgid "no integral type can represent all of the enumerator values for %qT"
32496 msgstr "ningún tipo integral puede representar todos los valores de enumerador de %qT"
32497
32498-#: cp/decl.c:12380
32499+#: cp/decl.c:12394
32500 #, gcc-internal-format
32501 msgid "enumerator value for %qD is not an integer constant"
32502 msgstr "el valor de enumerador para %qD no es una constante entera"
32503
32504-#: cp/decl.c:12430
32505+#: cp/decl.c:12444
32506 #, gcc-internal-format
32507 msgid "incremented enumerator value is too large for %<unsigned long%>"
32508 msgstr "el valor del enumerador incrementado es demasiado grande para %<unsigned long%>"
32509
32510-#: cp/decl.c:12442
32511+#: cp/decl.c:12456
32512 #, gcc-internal-format
32513 msgid "overflow in enumeration values at %qD"
32514 msgstr "desbordamiento en valores de enumeración en %qD"
32515
32516-#: cp/decl.c:12462
32517+#: cp/decl.c:12476
32518 #, gcc-internal-format
32519 msgid "enumerator value %E is too large for underlying type %<%T%>"
32520 msgstr "el valor de enumerador %E es demasiado grande para el tipo subyacente %<%T%>"
32521
32522-#: cp/decl.c:12559
32523+#: cp/decl.c:12573
32524 #, gcc-internal-format
32525 msgid "return type %q#T is incomplete"
32526 msgstr "el tipo de devolución %q#T es un tipo de dato incompleto"
32527
32528-#: cp/decl.c:12561
32529+#: cp/decl.c:12575
32530 #, gcc-internal-format
32531 msgid "return type has Java class type %q#T"
32532 msgstr "el tipo de devolución tiene tipo de clase Java %q#T"
32533
32534-#: cp/decl.c:12685 cp/typeck.c:7896
32535+#: cp/decl.c:12699 cp/typeck.c:7896
32536 #, gcc-internal-format
32537 msgid "%<operator=%> should return a reference to %<*this%>"
32538 msgstr "%<operator=%> debe devolver una referencia a %<*this%>"
32539
32540-#: cp/decl.c:12780
32541+#: cp/decl.c:12794
32542 #, gcc-internal-format
32543 msgid "no previous declaration for %q+D"
32544 msgstr "no hay declaración previa para %q+D"
32545
32546-#: cp/decl.c:12995
32547+#: cp/decl.c:13009
32548 #, gcc-internal-format
32549 msgid "invalid function declaration"
32550 msgstr "declaración de función inválida"
32551
32552-#: cp/decl.c:13079
32553+#: cp/decl.c:13093
32554 #, gcc-internal-format
32555 msgid "parameter %qD declared void"
32556 msgstr "el parámetro %qD se declaró void"
32557
32558-#: cp/decl.c:13532
32559+#: cp/decl.c:13546
32560 #, gcc-internal-format
32561 msgid "parameter %q+D set but not used"
32562 msgstr "se define el parámetro %q+D pero no se usa"
32563
32564-#: cp/decl.c:13627
32565+#: cp/decl.c:13641
32566 #, gcc-internal-format
32567 msgid "invalid member function declaration"
32568 msgstr "declaración de la función miembro inválida"
32569
32570-#: cp/decl.c:13641
32571+#: cp/decl.c:13655
32572 #, gcc-internal-format
32573 msgid "%qD is already defined in class %qT"
32574 msgstr "%qD ya se definió en la clase %qT"
32575@@ -29106,7 +29312,7 @@
32576 msgid "deleting %qT is undefined"
32577 msgstr "el borrado de %qT está indefinido"
32578
32579-#: cp/decl2.c:512 cp/pt.c:4875
32580+#: cp/decl2.c:512 cp/pt.c:4877
32581 #, gcc-internal-format
32582 msgid "template declaration of %q#D"
32583 msgstr "declaración plantilla de %q#D"
32584@@ -29297,87 +29503,87 @@
32585 msgid "use of deleted function %qD"
32586 msgstr "se usó la función borrada %q+D"
32587
32588-#: cp/error.c:3261
32589+#: cp/error.c:3263
32590 #, gcc-internal-format
32591 msgid "extended initializer lists only available with -std=c++11 or -std=gnu++11"
32592 msgstr "las listas de inicializador extendidas sólo está disponibles con -std=c++11 o -std=gnu++11"
32593
32594-#: cp/error.c:3266
32595+#: cp/error.c:3268
32596 #, gcc-internal-format
32597 msgid "explicit conversion operators only available with -std=c++11 or -std=gnu++11"
32598 msgstr "los operadores de conversión explícita sólo están disponibles con -std=c++11 o -std=gnu++11"
32599
32600-#: cp/error.c:3271
32601+#: cp/error.c:3273
32602 #, gcc-internal-format
32603 msgid "variadic templates only available with -std=c++11 or -std=gnu++11"
32604 msgstr "las plantillas variadic sólo están disponibles con -std=c++11 o -std=gnu++11"
32605
32606-#: cp/error.c:3276
32607+#: cp/error.c:3278
32608 #, gcc-internal-format
32609 msgid "lambda expressions only available with -std=c++11 or -std=gnu++11"
32610 msgstr "las expresiones lambda sólo están disponibles con -std=c++11 o -std=gnu++11"
32611
32612-#: cp/error.c:3281
32613+#: cp/error.c:3283
32614 #, gcc-internal-format
32615 msgid "C++0x auto only available with -std=c++11 or -std=gnu++11"
32616 msgstr "C++0x automático sólo está disponible con -std=c++11 o -std=gnu++11"
32617
32618-#: cp/error.c:3285
32619+#: cp/error.c:3287
32620 #, gcc-internal-format
32621 msgid "scoped enums only available with -std=c++11 or -std=gnu++11"
32622 msgstr "los enums con ámbito sólo están disponibles con -std=c++11 o -std=gnu++11"
32623
32624-#: cp/error.c:3289
32625+#: cp/error.c:3291
32626 #, gcc-internal-format
32627 msgid "defaulted and deleted functions only available with -std=c++11 or -std=gnu++11"
32628 msgstr "las funciones por defecto y borradas sólo están disponibles con -std=c++11 o -std=gnu++11"
32629
32630-#: cp/error.c:3294
32631+#: cp/error.c:3296
32632 #, gcc-internal-format
32633 msgid "inline namespaces only available with -std=c++11 or -std=gnu++11"
32634 msgstr "los nombres de espacio incluídos en línea sólo están disponibles con -std=c++11 o -std=gnu++11"
32635
32636-#: cp/error.c:3299
32637+#: cp/error.c:3301
32638 #, gcc-internal-format
32639 msgid "override controls (override/final) only available with -std=c++11 or -std=gnu++11"
32640 msgstr "los controles de anulación (override/final) sólo están disponibles con -std=c++11 o -std=gnu++11"
32641
32642-#: cp/error.c:3304
32643+#: cp/error.c:3306
32644 #, gcc-internal-format
32645 msgid "non-static data member initializers only available with -std=c++11 or -std=gnu++11"
32646 msgstr "los inicializadores de datos miembro que no son static sólo está disponibles con -std=c++11 o -std=gnu++11"
32647
32648-#: cp/error.c:3309
32649+#: cp/error.c:3311
32650 #, gcc-internal-format
32651 msgid "user-defined literals only available with -std=c++11 or -std=gnu++11"
32652 msgstr "las literales definidas por el usuario sólo está disponibles con -std=c++11 o -std=gnu++11"
32653
32654-#: cp/error.c:3314
32655+#: cp/error.c:3316
32656 #, gcc-internal-format
32657 msgid "delegating constructors only available with -std=c++11 or -std=gnu++11"
32658 msgstr "los constructores delegadores sólo están disponibles con -std=c++11 o -std=gnu++11"
32659
32660-#: cp/error.c:3361
32661+#: cp/error.c:3363
32662 #, gcc-internal-format
32663 msgid "incomplete type %qT used in nested name specifier"
32664 msgstr "se utilizó el tipo incompleto %qT en un especificador de nombre anidado"
32665
32666-#: cp/error.c:3365
32667+#: cp/error.c:3367
32668 #, gcc-internal-format
32669 msgid "reference to %<%T::%D%> is ambiguous"
32670 msgstr "la referencia a %<%T::%D%> es ambigua"
32671
32672-#: cp/error.c:3370 cp/typeck.c:2178
32673+#: cp/error.c:3372 cp/typeck.c:2178
32674 #, gcc-internal-format
32675 msgid "%qD is not a member of %qT"
32676 msgstr "%qD no es un miembro de %qT"
32677
32678-#: cp/error.c:3374
32679+#: cp/error.c:3376
32680 #, gcc-internal-format
32681 msgid "%qD is not a member of %qD"
32682 msgstr "%qD no es un miembro de %qD"
32683
32684-#: cp/error.c:3379
32685+#: cp/error.c:3381
32686 #, gcc-internal-format
32687 msgid "%<::%D%> has not been declared"
32688 msgstr "%<::%D%> no se ha declarado"
32689@@ -29878,42 +30084,42 @@
32690 msgid "(if you use %<-fpermissive%>, G++ will accept your code, but allowing the use of an undeclared name is deprecated)"
32691 msgstr "(si utiliza %<-fpermissive%>, G++ aceptará su código, pero permitir el uso de un nombre sin declarar es obsoleto)"
32692
32693-#: cp/mangle.c:2024
32694+#: cp/mangle.c:2022
32695 #, gcc-internal-format
32696 msgid "mangling typeof, use decltype instead"
32697 msgstr "se decodifica typeof, utilice decltype en su lugar"
32698
32699-#: cp/mangle.c:2028
32700+#: cp/mangle.c:2026
32701 #, gcc-internal-format
32702 msgid "mangling __underlying_type"
32703 msgstr "se decodifica __underlying_type"
32704
32705-#: cp/mangle.c:2252
32706+#: cp/mangle.c:2250
32707 #, gcc-internal-format
32708 msgid "mangling unknown fixed point type"
32709 msgstr "se decodifica el tipo de coma fija desconocido"
32710
32711-#: cp/mangle.c:2811
32712+#: cp/mangle.c:2809
32713 #, gcc-internal-format, gfc-internal-format
32714 msgid "mangling %C"
32715 msgstr "decodificando %C"
32716
32717-#: cp/mangle.c:2886
32718+#: cp/mangle.c:2884
32719 #, gcc-internal-format
32720 msgid "omitted middle operand to %<?:%> operand cannot be mangled"
32721 msgstr "se omitió el operando de enmedio de %<?%>: no se puede revolver el operando"
32722
32723-#: cp/mangle.c:2950
32724+#: cp/mangle.c:2948
32725 #, gcc-internal-format
32726 msgid "string literal in function template signature"
32727 msgstr "literal de cadena en la firma de plantilla de función"
32728
32729-#: cp/mangle.c:3239
32730+#: cp/mangle.c:3237
32731 #, gcc-internal-format
32732 msgid "the mangled name of %qD will change in a future version of GCC"
32733 msgstr "el nombre revuelto de %qD cambiará en una versión futura de GCC"
32734
32735-#: cp/mangle.c:3383
32736+#: cp/mangle.c:3381
32737 #, gcc-internal-format
32738 msgid "-fabi-version=6 (or =0) avoids this error with a change in mangling"
32739 msgstr "-fabi-version=6 (o =0) evita este error con un cambio en la decodificación"
32740@@ -30428,7 +30634,7 @@
32741 msgid "(perhaps a semicolon is missing after the definition of %qT)"
32742 msgstr "(tal vez falta un punto y coma después de la definición de %qT)"
32743
32744-#: cp/parser.c:2604 cp/parser.c:5102 cp/pt.c:7239
32745+#: cp/parser.c:2604 cp/parser.c:5102 cp/pt.c:7241
32746 #, gcc-internal-format
32747 msgid "%qT is not a template"
32748 msgstr "%qT no es una plantilla"
32749@@ -30448,7 +30654,7 @@
32750 msgid "floating-point literal cannot appear in a constant-expression"
32751 msgstr "una literal de coma flotante no puede aparecer en una expresión constante"
32752
32753-#: cp/parser.c:2645 cp/pt.c:13485
32754+#: cp/parser.c:2645 cp/pt.c:13498
32755 #, gcc-internal-format
32756 msgid "a cast to a type other than an integral or enumeration type cannot appear in a constant-expression"
32757 msgstr "una conversión a un tipo diferente de un tipo integral o de enumeración no puede aparecer en una expresión constante"
32758@@ -31838,7 +32044,7 @@
32759 msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
32760 msgstr "no se permite la inicialización entre paréntesis para el bucle %<for%> en OpenMP"
32761
32762-#: cp/parser.c:26407 cp/pt.c:12680
32763+#: cp/parser.c:26407 cp/pt.c:12693
32764 #, gcc-internal-format
32765 msgid "iteration variable %qD should not be reduction"
32766 msgstr "la variable de iteración %qD no debe ser reduction"
32767@@ -32060,109 +32266,109 @@
32768 msgid "expansion pattern %<%E%> contains no argument packs"
32769 msgstr "el patrón de expansión %<%E%> no contiene paquetes de argumento"
32770
32771-#: cp/pt.c:3277
32772+#: cp/pt.c:3279
32773 #, gcc-internal-format
32774 msgid "parameter packs not expanded with %<...%>:"
32775 msgstr "no se expanden los paquetes de parámetro con %<...%>"
32776
32777-#: cp/pt.c:3292 cp/pt.c:4370
32778+#: cp/pt.c:3294 cp/pt.c:4372
32779 #, gcc-internal-format
32780 msgid " %qD"
32781 msgstr " %qD"
32782
32783-#: cp/pt.c:3294
32784+#: cp/pt.c:3296
32785 #, gcc-internal-format
32786 msgid " <anonymous>"
32787 msgstr " <anónimo>"
32788
32789-#: cp/pt.c:3411
32790+#: cp/pt.c:3413
32791 #, gcc-internal-format
32792 msgid "declaration of %q+#D"
32793 msgstr "la declaración de %q+#D"
32794
32795-#: cp/pt.c:3412
32796+#: cp/pt.c:3414
32797 #, gcc-internal-format
32798 msgid " shadows template parm %q+#D"
32799 msgstr " oscurece el parámetro de plantilla %q+#D"
32800
32801-#: cp/pt.c:4366
32802+#: cp/pt.c:4368
32803 #, gcc-internal-format
32804 msgid "template parameters not used in partial specialization:"
32805 msgstr "no se usan los parámetros de plantilla en la especialización parcial:"
32806
32807-#: cp/pt.c:4384
32808+#: cp/pt.c:4386
32809 #, gcc-internal-format
32810 msgid "partial specialization %qT does not specialize any template arguments"
32811 msgstr "la especialización parcial %qT no especializa ningún argumento de plantilla"
32812
32813-#: cp/pt.c:4429
32814+#: cp/pt.c:4431
32815 #, gcc-internal-format
32816 msgid "parameter pack argument %qE must be at the end of the template argument list"
32817 msgstr "el argumento de paquete de parámetro %qE debe estar al final de la lista de argumentos de plantilla"
32818
32819-#: cp/pt.c:4432
32820+#: cp/pt.c:4434
32821 #, gcc-internal-format
32822 msgid "parameter pack argument %qT must be at the end of the template argument list"
32823 msgstr "el argumento de paquete de parámetro %qT debe estar al final de la lista de argumentos de plantilla"
32824
32825-#: cp/pt.c:4451
32826+#: cp/pt.c:4453
32827 #, gcc-internal-format
32828 msgid "template argument %qE involves template parameter(s)"
32829 msgstr "el argumento de plantilla %qE involucra a el(los) parámetro(s) de plantilla"
32830
32831-#: cp/pt.c:4497
32832+#: cp/pt.c:4499
32833 #, gcc-internal-format
32834 msgid "type %qT of template argument %qE depends on a template parameter"
32835 msgid_plural "type %qT of template argument %qE depends on template parameters"
32836 msgstr[0] "el tipo %qT del argumento de plantilla %qE depende de un parámetro de plantilla"
32837 msgstr[1] "el tipo %qT del argumento de plantilla %qE depende de parámetros de plantilla"
32838
32839-#: cp/pt.c:4527
32840+#: cp/pt.c:4529
32841 #, gcc-internal-format
32842 msgid "partial specialization of %qT after instantiation of %qT"
32843 msgstr "especialización parcial de %qT después de la instanciación %qT"
32844
32845-#: cp/pt.c:4620
32846+#: cp/pt.c:4622
32847 #, gcc-internal-format
32848 msgid "no default argument for %qD"
32849 msgstr "no hay un argumento por defecto para %qD"
32850
32851-#: cp/pt.c:4641
32852+#: cp/pt.c:4643
32853 #, gcc-internal-format
32854 msgid "parameter pack %qE must be at the end of the template parameter list"
32855 msgstr "el parámetro de paquete %qE debe estar al final de la lista de parámetros de plantilla"
32856
32857-#: cp/pt.c:4644
32858+#: cp/pt.c:4646
32859 #, gcc-internal-format
32860 msgid "parameter pack %qT must be at the end of the template parameter list"
32861 msgstr "el parámetro de paquete %qT debe estar al final de la lista de parámetros de plantilla"
32862
32863-#: cp/pt.c:4681
32864+#: cp/pt.c:4683
32865 #, gcc-internal-format
32866 msgid "default template arguments may not be used in function template friend re-declaration"
32867 msgstr "no se pueden usar los argumentos de plantilla por defecto en la re-declaración friend de la plantilla de función"
32868
32869-#: cp/pt.c:4684
32870+#: cp/pt.c:4686
32871 #, gcc-internal-format
32872 msgid "default template arguments may not be used in function template friend declarations"
32873 msgstr "no se pueden usar los argumentos de plantilla por defecto en las declaraciones friend de la plantilla de función"
32874
32875-#: cp/pt.c:4687
32876+#: cp/pt.c:4689
32877 #, gcc-internal-format
32878 msgid "default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11"
32879 msgstr "los argumentos de plantilla por defecto no se pueden usar en las plantillas de función sin -std=c++11 o -std=gnu++11"
32880
32881-#: cp/pt.c:4690
32882+#: cp/pt.c:4692
32883 #, gcc-internal-format
32884 msgid "default template arguments may not be used in partial specializations"
32885 msgstr "no se pueden usar los argumentos de plantilla por defecto en las especializaciones parciales"
32886
32887-#: cp/pt.c:4693 cp/pt.c:4744
32888+#: cp/pt.c:4695 cp/pt.c:4746
32889 #, gcc-internal-format
32890 msgid "default argument for template parameter for class enclosing %qD"
32891 msgstr "argumento por defecto para el parámetro de plantilla para la clase incluyente %qD"
32892
32893-#: cp/pt.c:4837
32894+#: cp/pt.c:4839
32895 #, gcc-internal-format
32896 msgid "template class without a name"
32897 msgstr "clase de plantilla sin nombre"
32898@@ -32170,7 +32376,7 @@
32899 #. [temp.mem]
32900 #.
32901 #. A destructor shall not be a member template.
32902-#: cp/pt.c:4847
32903+#: cp/pt.c:4849
32904 #, gcc-internal-format
32905 msgid "destructor %qD declared as member template"
32906 msgstr "se declaró el destructor %qD como una plantilla miembro"
32907@@ -32180,76 +32386,76 @@
32908 #. An allocation function can be a function
32909 #. template. ... Template allocation functions shall
32910 #. have two or more parameters.
32911-#: cp/pt.c:4862
32912+#: cp/pt.c:4864
32913 #, gcc-internal-format
32914 msgid "invalid template declaration of %qD"
32915 msgstr "declaración de la plantilla de %qD inválida"
32916
32917-#: cp/pt.c:4986
32918+#: cp/pt.c:4988
32919 #, gcc-internal-format
32920 msgid "template definition of non-template %q#D"
32921 msgstr "definición de plantilla de %q#D que no es plantilla"
32922
32923-#: cp/pt.c:5029
32924+#: cp/pt.c:5031
32925 #, gcc-internal-format
32926 msgid "expected %d levels of template parms for %q#D, got %d"
32927 msgstr "se esperaban %d niveles de parámetros de plantilla para %q#D, se obtuvieron %d"
32928
32929-#: cp/pt.c:5041
32930+#: cp/pt.c:5043
32931 #, gcc-internal-format
32932 msgid "got %d template parameters for %q#D"
32933 msgstr "se obtuvieron %d parámetros de plantilla para %q#D"
32934
32935-#: cp/pt.c:5044
32936+#: cp/pt.c:5046
32937 #, gcc-internal-format
32938 msgid "got %d template parameters for %q#T"
32939 msgstr "se obtuvieron %d parámetros de plantilla para %q#T"
32940
32941-#: cp/pt.c:5046
32942+#: cp/pt.c:5048
32943 #, gcc-internal-format, gfc-internal-format
32944 msgid " but %d required"
32945 msgstr " pero se requieren %d"
32946
32947-#: cp/pt.c:5067
32948+#: cp/pt.c:5069
32949 #, gcc-internal-format
32950 msgid "template arguments to %qD do not match original template %qD"
32951 msgstr "los argumentos de plantilla para %qD no coinciden con la plantilla original %qD"
32952
32953-#: cp/pt.c:5071
32954+#: cp/pt.c:5073
32955 #, gcc-internal-format
32956 msgid "use template<> for an explicit specialization"
32957 msgstr "utilice template<> para una especialización explícita"
32958
32959-#: cp/pt.c:5172
32960+#: cp/pt.c:5174
32961 #, gcc-internal-format
32962 msgid "%qT is not a template type"
32963 msgstr "%qT no es un tipo plantilla"
32964
32965-#: cp/pt.c:5185
32966+#: cp/pt.c:5187
32967 #, gcc-internal-format
32968 msgid "template specifiers not specified in declaration of %qD"
32969 msgstr "no se especificaron los especificadores de plantilla en la declaración de %qD"
32970
32971-#: cp/pt.c:5196
32972+#: cp/pt.c:5198
32973 #, gcc-internal-format, gfc-internal-format
32974 msgid "redeclared with %d template parameter"
32975 msgid_plural "redeclared with %d template parameters"
32976 msgstr[0] "se redeclaró con %d parámetro de plantilla"
32977 msgstr[1] "se redeclaró con %d parámetros de plantilla"
32978
32979-#: cp/pt.c:5200
32980+#: cp/pt.c:5202
32981 #, gcc-internal-format
32982 msgid "previous declaration %q+D used %d template parameter"
32983 msgid_plural "previous declaration %q+D used %d template parameters"
32984 msgstr[0] "la declaración previa de %q+#D usó %d parámetro de plantilla"
32985 msgstr[1] "la declaración previa de %q+#D usó %d parámetros de plantilla"
32986
32987-#: cp/pt.c:5237
32988+#: cp/pt.c:5239
32989 #, gcc-internal-format
32990 msgid "template parameter %q+#D"
32991 msgstr "parámetro de plantilla %q+#D"
32992
32993-#: cp/pt.c:5238
32994+#: cp/pt.c:5240
32995 #, gcc-internal-format
32996 msgid "redeclared here as %q#D"
32997 msgstr "redeclarado aquí como %q#D"
32998@@ -32258,328 +32464,328 @@
32999 #.
33000 #. A template-parameter may not be given default arguments
33001 #. by two different declarations in the same scope.
33002-#: cp/pt.c:5248
33003+#: cp/pt.c:5250
33004 #, gcc-internal-format
33005 msgid "redefinition of default argument for %q#D"
33006 msgstr "redefinición del argumento por defecto para %q#D"
33007
33008-#: cp/pt.c:5250
33009+#: cp/pt.c:5252
33010 #, gcc-internal-format
33011 msgid "original definition appeared here"
33012 msgstr "la definición original apareció aquí"
33013
33014-#: cp/pt.c:5368
33015+#: cp/pt.c:5370
33016 #, gcc-internal-format
33017 msgid "%qE is not a valid template argument for type %qT because %qD has no linkage"
33018 msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque %qD no tiene enlace"
33019
33020-#: cp/pt.c:5372
33021+#: cp/pt.c:5374
33022 #, gcc-internal-format
33023 msgid "%qE is not a valid template argument for type %qT because %qD does not have external linkage"
33024 msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque %qD no tiene enlace externo"
33025
33026-#: cp/pt.c:5396 cp/pt.c:5997
33027+#: cp/pt.c:5398 cp/pt.c:5999
33028 #, gcc-internal-format
33029 msgid "%qE is not a valid template argument for type %qT"
33030 msgstr "%qE no es un argumento de plantilla válido para el tipo %qT"
33031
33032-#: cp/pt.c:5398
33033+#: cp/pt.c:5400
33034 #, gcc-internal-format
33035 msgid "it must be a pointer-to-member of the form %<&X::Y%>"
33036 msgstr "debe ser un puntero-a-miembro de la forma %<&X::Y%>"
33037
33038-#: cp/pt.c:5449
33039+#: cp/pt.c:5451
33040 #, gcc-internal-format
33041 msgid " couldn't deduce template parameter %qD"
33042 msgstr " no se puede deducir el parámetro de plantilla %qD"
33043
33044-#: cp/pt.c:5464
33045+#: cp/pt.c:5466
33046 #, gcc-internal-format
33047 msgid " types %qT and %qT have incompatible cv-qualifiers"
33048 msgstr " los tipos %qT y %qT tiene calificadores-cv incompatibles"
33049
33050-#: cp/pt.c:5473
33051+#: cp/pt.c:5475
33052 #, gcc-internal-format
33053 msgid " mismatched types %qT and %qT"
33054 msgstr " no coinciden los tipos %qT y %qT"
33055
33056-#: cp/pt.c:5482
33057+#: cp/pt.c:5484
33058 #, gcc-internal-format
33059 msgid " template parameter %qD is not a parameter pack, but argument %qD is"
33060 msgstr " el parámetro de plantilla %qD no es un paquete de parámetro, pero el argumento %qD sí"
33061
33062-#: cp/pt.c:5493
33063+#: cp/pt.c:5495
33064 #, gcc-internal-format
33065 msgid " template argument %qE does not match pointer-to-member constant %qE"
33066 msgstr " el argumento de plantilla %qE no coincide con la constante puntero-a-miembro %qE"
33067
33068-#: cp/pt.c:5503
33069+#: cp/pt.c:5505
33070 #, gcc-internal-format
33071 msgid " %qE is not equivalent to %qE"
33072 msgstr " %qE no es equivalente a %qE"
33073
33074-#: cp/pt.c:5512
33075+#: cp/pt.c:5514
33076 #, gcc-internal-format
33077 msgid " inconsistent parameter pack deduction with %qT and %qT"
33078 msgstr " deducción de paquete de parámetros inconsistente con %qT y %qT"
33079
33080-#: cp/pt.c:5524
33081+#: cp/pt.c:5526
33082 #, gcc-internal-format
33083 msgid " deduced conflicting types for parameter %qT (%qT and %qT)"
33084 msgstr " se deducen tipos en conflicto para el parámetro %qT (%qT y %qT)"
33085
33086-#: cp/pt.c:5528
33087+#: cp/pt.c:5530
33088 #, gcc-internal-format
33089 msgid " deduced conflicting values for non-type parameter %qE (%qE and %qE)"
33090 msgstr " se deducen valores en conflicto para el parámetro %qE que no es tipo (%qE y %qE)"
33091
33092-#: cp/pt.c:5539
33093+#: cp/pt.c:5541
33094 #, gcc-internal-format
33095 msgid " variable-sized array type %qT is not a valid template argument"
33096 msgstr " el tipo matriz de tamaño variable %qT no es un argumento de plantilla válido"
33097
33098-#: cp/pt.c:5550
33099+#: cp/pt.c:5552
33100 #, gcc-internal-format
33101 msgid " member function type %qT is not a valid template argument"
33102 msgstr " el tipo de función miembro %qT no es un argumento de plantilla válido"
33103
33104-#: cp/pt.c:5583
33105+#: cp/pt.c:5585
33106 #, gcc-internal-format
33107 msgid " cannot convert %qE (type %qT) to type %qT"
33108 msgstr " no se puede convertir %qE (tipo %qT) al tipo %qT"
33109
33110-#: cp/pt.c:5596
33111+#: cp/pt.c:5598
33112 #, gcc-internal-format
33113 msgid " %qT is an ambiguous base class of %qT"
33114 msgstr " %qT es una clase base ambigua de %qT"
33115
33116-#: cp/pt.c:5600
33117+#: cp/pt.c:5602
33118 #, gcc-internal-format
33119 msgid " %qT is not derived from %qT"
33120 msgstr " %qT no es derivado de %qT"
33121
33122-#: cp/pt.c:5611
33123+#: cp/pt.c:5613
33124 #, gcc-internal-format
33125 msgid " template parameters of a template template argument are inconsistent with other deduced template arguments"
33126 msgstr " los parámetros de plantilla de un argumento de plantilla plantilla son inconsistentes con otros argumentos de plantilla deducidos"
33127
33128-#: cp/pt.c:5621
33129+#: cp/pt.c:5623
33130 #, gcc-internal-format
33131 msgid " can't deduce a template for %qT from non-template type %qT"
33132 msgstr " no se puede deducir una plantilla para %qT del tipo %qT que no es plantilla"
33133
33134-#: cp/pt.c:5631
33135+#: cp/pt.c:5633
33136 #, gcc-internal-format
33137 msgid " template argument %qE does not match %qD"
33138 msgstr " el argumento de plantilla %qE no coincide con %qD"
33139
33140-#: cp/pt.c:5640
33141+#: cp/pt.c:5642
33142 #, gcc-internal-format
33143 msgid " could not resolve address from overloaded function %qE"
33144 msgstr " no se puede resolver la dirección de la función sobrecargada %qE"
33145
33146-#: cp/pt.c:5679
33147+#: cp/pt.c:5681
33148 #, gcc-internal-format
33149 msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
33150 msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque las literales de cadena nunca se pueden usar en este contexto"
33151
33152-#: cp/pt.c:5816
33153+#: cp/pt.c:5818
33154 #, gcc-internal-format
33155 msgid "in template argument for type %qT "
33156 msgstr "en el argumento de plantilla para el tipo %qT "
33157
33158-#: cp/pt.c:5858
33159+#: cp/pt.c:5860
33160 #, gcc-internal-format
33161 msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
33162 msgstr "%qD no es un argumento válido de plantilla porque %qD es una variable, no la dirección de una variable"
33163
33164-#: cp/pt.c:5876
33165+#: cp/pt.c:5878
33166 #, gcc-internal-format
33167 msgid "%qE is not a valid template argument of type %qT because %qE is not a variable"
33168 msgstr "%qE no es un argumento válido de plantilla de tipo %qT porque %qE no es una variable"
33169
33170-#: cp/pt.c:5883
33171+#: cp/pt.c:5885
33172 #, gcc-internal-format
33173 msgid "%qE is not a valid template argument of type %qT because %qD does not have external linkage"
33174 msgstr "%qE no es un argumento válido de plantilla de tipo %qT porque %qD no tiene enlace externo"
33175
33176-#: cp/pt.c:5890
33177+#: cp/pt.c:5892
33178 #, gcc-internal-format
33179 msgid "%qE is not a valid template argument of type %qT because %qD has no linkage"
33180 msgstr "%qE no es un argumento válido de plantilla de tipo %qT porque %qD no tiene enlace"
33181
33182-#: cp/pt.c:5920
33183+#: cp/pt.c:5922
33184 #, gcc-internal-format
33185 msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
33186 msgstr "%qE no es un argumento de plantilla válido para el tipo %qT debido a conflictos en la calificación cv"
33187
33188-#: cp/pt.c:5927
33189+#: cp/pt.c:5929
33190 #, gcc-internal-format
33191 msgid "%qE is not a valid template argument for type %qT because it is not an lvalue"
33192 msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque no es un l-valor"
33193
33194-#: cp/pt.c:5944
33195+#: cp/pt.c:5946
33196 #, gcc-internal-format
33197 msgid "%q#D is not a valid template argument for type %qT because a reference variable does not have a constant address"
33198 msgstr "%q#D no es un argumento válido de plantilla para el tipo %qT porque una referencia variable no tiene una dirección constante"
33199
33200-#: cp/pt.c:5953
33201+#: cp/pt.c:5955
33202 #, gcc-internal-format
33203 msgid "%qE is not a valid template argument for type %qT because it is not an object with external linkage"
33204 msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque no es un objeto con enlace externo"
33205
33206-#: cp/pt.c:5961
33207+#: cp/pt.c:5963
33208 #, gcc-internal-format
33209 msgid "%qE is not a valid template argument for type %qT because object %qD has not external linkage"
33210 msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque el objeto %qD no tiene enlace externo"
33211
33212-#: cp/pt.c:5998
33213+#: cp/pt.c:6000
33214 #, gcc-internal-format
33215 msgid "it must be the address of a function with external linkage"
33216 msgstr "debe ser la dirección de una función con enlace externo"
33217
33218-#: cp/pt.c:6012
33219+#: cp/pt.c:6014
33220 #, gcc-internal-format
33221 msgid "%qE is not a valid template argument for type %qT because it is a pointer"
33222 msgstr "%qE no es un argumento de plantilla válido para el tipo %qT porque es un puntero"
33223
33224-#: cp/pt.c:6014
33225+#: cp/pt.c:6016
33226 #, gcc-internal-format
33227 msgid "try using %qE instead"
33228 msgstr "intente utilizar %qE en su lugar"
33229
33230-#: cp/pt.c:6052 cp/pt.c:6081
33231+#: cp/pt.c:6054 cp/pt.c:6083
33232 #, gcc-internal-format
33233 msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
33234 msgstr "%qE no es un argumento de plantilla válido para el tipo %qT porque es de tipo %qT"
33235
33236-#: cp/pt.c:6058
33237+#: cp/pt.c:6060
33238 #, gcc-internal-format
33239 msgid "standard conversions are not allowed in this context"
33240 msgstr "no se permiten las conversiones estándar en este contexto"
33241
33242-#: cp/pt.c:6368
33243+#: cp/pt.c:6370
33244 #, gcc-internal-format
33245 msgid "ignoring attributes on template argument %qT"
33246 msgstr "se descartan los atributos en el argumento de plantilla %qT"
33247
33248-#: cp/pt.c:6426
33249+#: cp/pt.c:6428
33250 #, gcc-internal-format
33251 msgid "injected-class-name %qD used as template template argument"
33252 msgstr "se usó el nombre-de-clase-inyectada %qD como un argumento de plantilla plantilla"
33253
33254-#: cp/pt.c:6454
33255+#: cp/pt.c:6456
33256 #, gcc-internal-format
33257 msgid "invalid use of destructor %qE as a type"
33258 msgstr "uso inválido del destructor %qE como un tipo"
33259
33260-#: cp/pt.c:6459
33261+#: cp/pt.c:6461
33262 #, gcc-internal-format
33263 msgid "to refer to a type member of a template parameter, use %<typename %E%>"
33264 msgstr "para hacer referencia a un tipo miembro de un parámetro de plantilla, use %<typename %E%>"
33265
33266-#: cp/pt.c:6475 cp/pt.c:6494 cp/pt.c:6540
33267+#: cp/pt.c:6477 cp/pt.c:6496 cp/pt.c:6542
33268 #, gcc-internal-format
33269 msgid "type/value mismatch at argument %d in template parameter list for %qD"
33270 msgstr "no coincide el tipo/valor en el argumento %d en la lista de parámetros de plantilla para %qD"
33271
33272-#: cp/pt.c:6479
33273+#: cp/pt.c:6481
33274 #, gcc-internal-format
33275 msgid " expected a constant of type %qT, got %qT"
33276 msgstr " se esperaba una constante de tipo %qT, se obtuvo %qT"
33277
33278-#: cp/pt.c:6483
33279+#: cp/pt.c:6485
33280 #, gcc-internal-format
33281 msgid " expected a class template, got %qE"
33282 msgstr " se esperaba una plantilla de clase, se obtuvo %qE"
33283
33284-#: cp/pt.c:6485
33285+#: cp/pt.c:6487
33286 #, gcc-internal-format
33287 msgid " expected a type, got %qE"
33288 msgstr " se esperaba un tipo, se obtuvo %qE"
33289
33290-#: cp/pt.c:6498
33291+#: cp/pt.c:6500
33292 #, gcc-internal-format
33293 msgid " expected a type, got %qT"
33294 msgstr " se esperaba un tipo, se obtuvo %qT"
33295
33296-#: cp/pt.c:6500
33297+#: cp/pt.c:6502
33298 #, gcc-internal-format
33299 msgid " expected a class template, got %qT"
33300 msgstr " se esperaba una plantilla de clase, se obtuvo %qT"
33301
33302-#: cp/pt.c:6543
33303+#: cp/pt.c:6545
33304 #, gcc-internal-format
33305 msgid " expected a template of type %qD, got %qT"
33306 msgstr " se esperaba una plantilla de tipo %qD, se obtuvo %qT"
33307
33308 #. Not sure if this is reachable, but it doesn't hurt
33309 #. to be robust.
33310-#: cp/pt.c:6576
33311+#: cp/pt.c:6578
33312 #, gcc-internal-format
33313 msgid "type mismatch in nontype parameter pack"
33314 msgstr "los tipos no coinciden en el parámetro pack que no es de tipo"
33315
33316-#: cp/pt.c:6598
33317+#: cp/pt.c:6600
33318 #, gcc-internal-format
33319 msgid "could not convert template argument %qE to %qT"
33320 msgstr "no se puede convertir el argumento de plantilla %qE a %qT"
33321
33322-#: cp/pt.c:6664 cp/pt.c:6813
33323+#: cp/pt.c:6666 cp/pt.c:6815
33324 #, gcc-internal-format, gfc-internal-format
33325 msgid "wrong number of template arguments (%d, should be %d)"
33326 msgstr "número erróneo de argumentos de plantilla (%d, debe ser %d)"
33327
33328-#: cp/pt.c:6809
33329+#: cp/pt.c:6811
33330 #, gcc-internal-format, gfc-internal-format
33331 msgid "wrong number of template arguments (%d, should be %d or more)"
33332 msgstr "número erróneo de argumentos de plantilla (%d, debe ser %d o más)"
33333
33334-#: cp/pt.c:6817
33335+#: cp/pt.c:6819
33336 #, gcc-internal-format
33337 msgid "provided for %q+D"
33338 msgstr "provisto por %q+D"
33339
33340-#: cp/pt.c:6898
33341+#: cp/pt.c:6900
33342 #, gcc-internal-format, gfc-internal-format
33343 msgid "template argument %d is invalid"
33344 msgstr "el argumento de plantilla %d es inválido"
33345
33346-#: cp/pt.c:7087
33347+#: cp/pt.c:7089
33348 #, gcc-internal-format
33349 msgid "%q#D is not a function template"
33350 msgstr "%q#D no es una plantilla de función"
33351
33352-#: cp/pt.c:7251
33353+#: cp/pt.c:7253
33354 #, gcc-internal-format
33355 msgid "non-template type %qT used as a template"
33356 msgstr "se usa el tipo %qT que no es plantilla como una plantilla"
33357
33358-#: cp/pt.c:7253
33359+#: cp/pt.c:7255
33360 #, gcc-internal-format
33361 msgid "for template declaration %q+D"
33362 msgstr "para la declaración de plantilla %q+D"
33363
33364-#: cp/pt.c:8058
33365+#: cp/pt.c:8060
33366 msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth= to increase the maximum) substituting %qS"
33367 msgstr "la profundidad de instanciación de la plantilla excede el máximo de %d (use -ftemplate-depth= para incrementar el máximo) al sustituir %qS"
33368
33369-#: cp/pt.c:8062
33370+#: cp/pt.c:8064
33371 #, gcc-internal-format
33372 msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth= to increase the maximum) instantiating %qD"
33373 msgstr "la profundidad de instanciación de la plantilla excede el máximo de %d (use -ftemplate-depth= para incrementar el máximo) al instanciar %qD"
33374
33375-#: cp/pt.c:9409
33376+#: cp/pt.c:9411
33377 #, gcc-internal-format
33378 msgid "mismatched argument pack lengths while expanding %<%T%>"
33379 msgstr "no coinciden las longitudes de los paquetes de argumentos al expandir %<%T%>"
33380
33381-#: cp/pt.c:9413
33382+#: cp/pt.c:9415
33383 #, gcc-internal-format
33384 msgid "mismatched argument pack lengths while expanding %<%E%>"
33385 msgstr "no coinciden las longitudes de los paquetes de argumentos al expandir %<%E%>"
33386
33387-#: cp/pt.c:10539
33388+#: cp/pt.c:10541
33389 #, gcc-internal-format
33390 msgid "instantiation of %q+D as type %qT"
33391 msgstr "instanciación de %q+D como tipo %qT"
33392@@ -32597,257 +32803,257 @@
33393 #.
33394 #. is an attempt to declare a variable with function
33395 #. type.
33396-#: cp/pt.c:10695
33397+#: cp/pt.c:10697
33398 #, gcc-internal-format
33399 msgid "variable %qD has function type"
33400 msgstr "la variable %qD tiene tipo de función"
33401
33402-#: cp/pt.c:10864
33403+#: cp/pt.c:10866
33404 #, gcc-internal-format
33405 msgid "invalid parameter type %qT"
33406 msgstr "tipo de parámetro %qT inválido"
33407
33408-#: cp/pt.c:10866
33409+#: cp/pt.c:10868
33410 #, gcc-internal-format
33411 msgid "in declaration %q+D"
33412 msgstr "en la declaración %q+D"
33413
33414-#: cp/pt.c:10943
33415+#: cp/pt.c:10945
33416 #, gcc-internal-format
33417 msgid "function returning an array"
33418 msgstr "la función devuelve una matriz"
33419
33420-#: cp/pt.c:10945
33421+#: cp/pt.c:10947
33422 #, gcc-internal-format
33423 msgid "function returning a function"
33424 msgstr "la función devuelve una función"
33425
33426-#: cp/pt.c:10975
33427+#: cp/pt.c:10977
33428 #, gcc-internal-format
33429 msgid "creating pointer to member function of non-class type %qT"
33430 msgstr "se crea un puntero a función miembro del tipo %qT que no es clase"
33431
33432-#: cp/pt.c:11514
33433+#: cp/pt.c:11518
33434 #, gcc-internal-format
33435 msgid "forming reference to void"
33436 msgstr "se forma la referencia a void"
33437
33438-#: cp/pt.c:11516
33439+#: cp/pt.c:11520
33440 #, gcc-internal-format
33441 msgid "forming pointer to reference type %qT"
33442 msgstr "se forma un puntero para referenciar al tipo %qT"
33443
33444-#: cp/pt.c:11518
33445+#: cp/pt.c:11522
33446 #, gcc-internal-format
33447 msgid "forming reference to reference type %qT"
33448 msgstr "se forma una referencia para referenciar al tipo %qT"
33449
33450-#: cp/pt.c:11567
33451+#: cp/pt.c:11571
33452 #, gcc-internal-format
33453 msgid "creating pointer to member of non-class type %qT"
33454 msgstr "se crea un puntero al miembro del tipo %qT que no es clase"
33455
33456-#: cp/pt.c:11573
33457+#: cp/pt.c:11577
33458 #, gcc-internal-format
33459 msgid "creating pointer to member reference type %qT"
33460 msgstr "se crea un puntero al miembro de referencia de tipo %qT"
33461
33462-#: cp/pt.c:11579
33463+#: cp/pt.c:11583
33464 #, gcc-internal-format
33465 msgid "creating pointer to member of type void"
33466 msgstr "se crea un puntero al miembro de tipo void"
33467
33468-#: cp/pt.c:11641
33469+#: cp/pt.c:11645
33470 #, gcc-internal-format
33471 msgid "creating array of %qT"
33472 msgstr "se crea la matriz de %qT"
33473
33474-#: cp/pt.c:11647
33475+#: cp/pt.c:11651
33476 #, gcc-internal-format
33477 msgid "creating array of %qT, which is an abstract class type"
33478 msgstr "se crea la matriz de %qT, la cual es un tipo de clase abstracta"
33479
33480-#: cp/pt.c:11676
33481+#: cp/pt.c:11680
33482 #, gcc-internal-format
33483 msgid "%qT is not a class, struct, or union type"
33484 msgstr "%qT no es de tipo clase, struct o union"
33485
33486-#: cp/pt.c:11713
33487+#: cp/pt.c:11717
33488 #, gcc-internal-format
33489 msgid "%qT resolves to %qT, which is not an enumeration type"
33490 msgstr "%qT resuelve a %qT, el cual no es un tipo enumerado"
33491
33492-#: cp/pt.c:11721
33493+#: cp/pt.c:11725
33494 #, gcc-internal-format
33495 msgid "%qT resolves to %qT, which is is not a class type"
33496 msgstr "%qT resuelve a %qT, el cual no es un tipo de clase"
33497
33498-#: cp/pt.c:11838
33499+#: cp/pt.c:11842
33500 #, gcc-internal-format
33501 msgid "use of %qs in template"
33502 msgstr "uso de %qs en la plantilla"
33503
33504-#: cp/pt.c:11974
33505+#: cp/pt.c:11978
33506 #, gcc-internal-format
33507 msgid "qualifying type %qT does not match destructor name ~%qT"
33508 msgstr "el tipo calificador %qT no coincide con el nombre del destructor ~%qT"
33509
33510-#: cp/pt.c:11989
33511+#: cp/pt.c:11993
33512 #, gcc-internal-format
33513 msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
33514 msgstr "el nombre dependiente %qE se decodifica como un no tipo, pero la instanciación genera un tipo"
33515
33516-#: cp/pt.c:11991
33517+#: cp/pt.c:11995
33518 #, gcc-internal-format
33519 msgid "say %<typename %E%> if a type is meant"
33520 msgstr "escriba %<typename %E%> si quiere un tipo"
33521
33522-#: cp/pt.c:12144
33523+#: cp/pt.c:12148
33524 #, gcc-internal-format
33525 msgid "using invalid field %qD"
33526 msgstr "se usa el campo inválido %qD"
33527
33528-#: cp/pt.c:12499 cp/pt.c:13300
33529+#: cp/pt.c:12503 cp/pt.c:13313
33530 #, gcc-internal-format
33531 msgid "invalid use of pack expansion expression"
33532 msgstr "uso inválido de la expresión de expansión de paquete"
33533
33534-#: cp/pt.c:12503 cp/pt.c:13304
33535+#: cp/pt.c:12507 cp/pt.c:13317
33536 #, gcc-internal-format
33537 msgid "use %<...%> to expand argument pack"
33538 msgstr "use %<...%> para expandir el paquete de argumentos"
33539
33540-#: cp/pt.c:13880
33541+#: cp/pt.c:13893
33542 #, gcc-internal-format
33543 msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"
33544 msgstr "%qD no se declaró en este ámbito, y no se encontraron declaraciones en la búsqueda dependiente de argumentos en el punto de la instanciación"
33545
33546-#: cp/pt.c:13889
33547+#: cp/pt.c:13902
33548 #, gcc-internal-format
33549 msgid "declarations in dependent base %qT are not found by unqualified lookup"
33550 msgstr "no se encontraron declaraciones en la base dependiente %qT pur la búsqueda no calificada"
33551
33552-#: cp/pt.c:13894
33553+#: cp/pt.c:13907
33554 #, gcc-internal-format
33555 msgid "use %<this->%D%> instead"
33556 msgstr "use %<this->%D%> en su lugar"
33557
33558-#: cp/pt.c:13897
33559+#: cp/pt.c:13910
33560 #, gcc-internal-format
33561 msgid "use %<%T::%D%> instead"
33562 msgstr "use %<%T::%D%> en su lugar"
33563
33564-#: cp/pt.c:13901
33565+#: cp/pt.c:13914
33566 #, gcc-internal-format
33567 msgid "%q+D declared here, later in the translation unit"
33568 msgstr "%q+D se declaró aquí, después en la unidad de translación"
33569
33570-#: cp/pt.c:14134
33571+#: cp/pt.c:14147
33572 #, gcc-internal-format
33573 msgid "%qT is not a class or namespace"
33574 msgstr "%qT no es una clase o un espacio de nombres"
33575
33576-#: cp/pt.c:14137
33577+#: cp/pt.c:14150
33578 #, gcc-internal-format
33579 msgid "%qD is not a class or namespace"
33580 msgstr "%qD no es una clase o un espacio de nombres"
33581
33582-#: cp/pt.c:14429
33583+#: cp/pt.c:14442
33584 #, gcc-internal-format
33585 msgid "%qT is/uses anonymous type"
33586 msgstr "%qT es/usa un tipo anónimo"
33587
33588-#: cp/pt.c:14431
33589+#: cp/pt.c:14444
33590 #, gcc-internal-format
33591 msgid "template argument for %qD uses local type %qT"
33592 msgstr "el argumento de plantilla para %qD usa el tipo local %qT"
33593
33594-#: cp/pt.c:14441
33595+#: cp/pt.c:14454
33596 #, gcc-internal-format
33597 msgid "%qT is a variably modified type"
33598 msgstr "%qT es un tipo modificado variablemente"
33599
33600-#: cp/pt.c:14452
33601+#: cp/pt.c:14465
33602 #, gcc-internal-format
33603 msgid "integral expression %qE is not constant"
33604 msgstr "la expresión integral %qE no es una constante"
33605
33606-#: cp/pt.c:14470
33607+#: cp/pt.c:14483
33608 #, gcc-internal-format
33609 msgid " trying to instantiate %qD"
33610 msgstr " se trata de instanciar %qD"
33611
33612-#: cp/pt.c:17791
33613+#: cp/pt.c:17804
33614 #, gcc-internal-format
33615 msgid "ambiguous class template instantiation for %q#T"
33616 msgstr "instanciación de plantilla clase ambigua para %q#T"
33617
33618-#: cp/pt.c:17795
33619+#: cp/pt.c:17808
33620 #, gcc-internal-format
33621 msgid "%s %+#T"
33622 msgstr "%s %+#T"
33623
33624-#: cp/pt.c:17819 cp/pt.c:17902
33625+#: cp/pt.c:17832 cp/pt.c:17915
33626 #, gcc-internal-format
33627 msgid "explicit instantiation of non-template %q#D"
33628 msgstr "instanciación explícita de %q#D que no es plantilla"
33629
33630-#: cp/pt.c:17834
33631+#: cp/pt.c:17847
33632 #, gcc-internal-format
33633 msgid "%qD is not a static data member of a class template"
33634 msgstr "%qD no es un dato miembro static de una plantilla de clase"
33635
33636-#: cp/pt.c:17840 cp/pt.c:17897
33637+#: cp/pt.c:17853 cp/pt.c:17910
33638 #, gcc-internal-format
33639 msgid "no matching template for %qD found"
33640 msgstr "no se encontró una plantilla coincidente para %qD"
33641
33642-#: cp/pt.c:17845
33643+#: cp/pt.c:17858
33644 #, gcc-internal-format
33645 msgid "type %qT for explicit instantiation %qD does not match declared type %qT"
33646 msgstr "el tipo %qT para la instanciación explícita %qD no coincide con el tipo declarado %qT"
33647
33648-#: cp/pt.c:17853
33649+#: cp/pt.c:17866
33650 #, gcc-internal-format
33651 msgid "explicit instantiation of %q#D"
33652 msgstr "instanciación explícita de %q#D"
33653
33654-#: cp/pt.c:17889
33655+#: cp/pt.c:17902
33656 #, gcc-internal-format
33657 msgid "duplicate explicit instantiation of %q#D"
33658 msgstr "instanciación explícita duplicada de %q#D"
33659
33660-#: cp/pt.c:17912 cp/pt.c:18009
33661+#: cp/pt.c:17925 cp/pt.c:18022
33662 #, gcc-internal-format
33663 msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
33664 msgstr "ISO C++ 1998 prohíbe el uso de %<extern%> en instanciaciones explícitas"
33665
33666-#: cp/pt.c:17917 cp/pt.c:18026
33667+#: cp/pt.c:17930 cp/pt.c:18039
33668 #, gcc-internal-format
33669 msgid "storage class %qD applied to template instantiation"
33670 msgstr "clase de almacenamiento %qD aplicada a la instanciación de una plantilla"
33671
33672-#: cp/pt.c:17985
33673+#: cp/pt.c:17998
33674 #, gcc-internal-format
33675 msgid "explicit instantiation of non-class template %qD"
33676 msgstr "instanciación explícita de la plantilla %qD que no es clase"
33677
33678-#: cp/pt.c:17987
33679+#: cp/pt.c:18000
33680 #, gcc-internal-format
33681 msgid "explicit instantiation of non-template type %qT"
33682 msgstr "instanciación explícita del tipo %qT que no es plantilla"
33683
33684-#: cp/pt.c:17996
33685+#: cp/pt.c:18009
33686 #, gcc-internal-format
33687 msgid "explicit instantiation of %q#T before definition of template"
33688 msgstr "instanciación explícita de %q#T antes de la definición de la plantilla"
33689
33690-#: cp/pt.c:18014
33691+#: cp/pt.c:18027
33692 #, gcc-internal-format
33693 msgid "ISO C++ forbids the use of %qE on explicit instantiations"
33694 msgstr "ISO C++ prohíbe el uso de %qE en las instanciaciones explícitas"
33695
33696-#: cp/pt.c:18060
33697+#: cp/pt.c:18073
33698 #, gcc-internal-format
33699 msgid "duplicate explicit instantiation of %q#T"
33700 msgstr "instanciación explícita duplicada de %q#T"
33701@@ -32859,32 +33065,32 @@
33702 #. member function or static data member of a class template
33703 #. shall be present in every translation unit in which it is
33704 #. explicitly instantiated.
33705-#: cp/pt.c:18614
33706+#: cp/pt.c:18627
33707 #, gcc-internal-format
33708 msgid "explicit instantiation of %qD but no definition available"
33709 msgstr "instanciación explícita de %qD pero no hay una definición disponible"
33710
33711-#: cp/pt.c:18790
33712+#: cp/pt.c:18803
33713 #, gcc-internal-format
33714 msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use -ftemplate-depth= to increase the maximum)"
33715 msgstr "la profundidad de instanciación de la plantilla excede el máximo de %d al instanciar %q+D, posiblemente de la generación de tabla virtual (use -ftemplate-depth= para incrementar el máximo)"
33716
33717-#: cp/pt.c:19161
33718+#: cp/pt.c:19175
33719 #, gcc-internal-format
33720 msgid "invalid template non-type parameter"
33721 msgstr "parámetro que no es tipo plantilla inválido"
33722
33723-#: cp/pt.c:19163
33724+#: cp/pt.c:19177
33725 #, gcc-internal-format
33726 msgid "%q#T is not a valid type for a template non-type parameter"
33727 msgstr "%q#T no es un tipo válido para un parámetro que no es tipo plantilla"
33728
33729-#: cp/pt.c:20249
33730+#: cp/pt.c:20263
33731 #, gcc-internal-format
33732 msgid "deducing from brace-enclosed initializer list requires #include <initializer_list>"
33733 msgstr "la deducción de una lista inicializadora encerrada entre llaves requiere #include <initializer_list>"
33734
33735-#: cp/pt.c:20308
33736+#: cp/pt.c:20322
33737 #, gcc-internal-format
33738 msgid "variable %q#D with %<auto%> type used in its own initializer"
33739 msgstr "se usó la variable %q#D con tipo %<auto%> en su propio inicializador"
33740@@ -32892,12 +33098,12 @@
33741 #. If type is error_mark_node a diagnostic must have been
33742 #. emitted by now. Also, having a mention to '<type error>'
33743 #. in the diagnostic is not really useful to the user.
33744-#: cp/pt.c:20340
33745+#: cp/pt.c:20354
33746 #, gcc-internal-format
33747 msgid "unable to deduce %qT from %qE"
33748 msgstr "no se puede deducir %qT de %qE"
33749
33750-#: cp/pt.c:20351
33751+#: cp/pt.c:20365
33752 #, gcc-internal-format
33753 msgid "inconsistent deduction for %qT: %qT and then %qT"
33754 msgstr "deducción inconsistente para %qT: %qT y después %qT"
33755@@ -33134,7 +33340,7 @@
33756 msgid "invalid base-class specification"
33757 msgstr "especificación de clase base inválida"
33758
33759-#: cp/semantics.c:2999 cp/semantics.c:8802
33760+#: cp/semantics.c:2999 cp/semantics.c:8817
33761 #, gcc-internal-format
33762 msgid "%qD is not captured"
33763 msgstr "%qD no se capturó"
33764@@ -33312,203 +33518,208 @@
33765 msgid "constexpr constructor does not have empty body"
33766 msgstr "el constructor constexpr no tiene cuerpo vacío"
33767
33768-#: cp/semantics.c:6065
33769+#: cp/semantics.c:6042
33770 #, gcc-internal-format
33771+msgid "%<constexpr%> constructor for union %qT must initialize exactly one non-static data member"
33772+msgstr "el constructor %<constexpr%> para union %qT debe inicializar exactamente un dato miembro que no es static"
33773+
33774+#: cp/semantics.c:6080
33775+#, gcc-internal-format
33776 msgid "uninitialized member %qD in %<constexpr%> constructor"
33777 msgstr "miembro %qD sin inicializar en el constructor %<constexpr%>"
33778
33779-#: cp/semantics.c:6096
33780+#: cp/semantics.c:6111
33781 #, gcc-internal-format
33782 msgid "body of constexpr function %qD not a return-statement"
33783 msgstr "el cuerpo de la función constexpr %qD no es una declaración de devolución"
33784
33785-#: cp/semantics.c:6151
33786+#: cp/semantics.c:6166
33787 #, gcc-internal-format
33788 msgid "%q+D is not usable as a constexpr function because:"
33789 msgstr "%q+D no se puede usar como una función constexpr porque:"
33790
33791-#: cp/semantics.c:6475
33792+#: cp/semantics.c:6490
33793 #, gcc-internal-format
33794 msgid "expression %qE does not designate a constexpr function"
33795 msgstr "la expresión %qE no designa una función constexpr"
33796
33797-#: cp/semantics.c:6489 cp/semantics.c:8072
33798+#: cp/semantics.c:6504 cp/semantics.c:8087
33799 #, gcc-internal-format
33800 msgid "call to non-constexpr function %qD"
33801 msgstr "llamada a la función %qD que no es constexpr"
33802
33803 #. The definition of fun was somehow unsuitable.
33804-#: cp/semantics.c:6517
33805+#: cp/semantics.c:6532
33806 #, gcc-internal-format
33807 msgid "%qD called in a constant expression"
33808 msgstr "se llamó %qD en una expresión constante"
33809
33810-#: cp/semantics.c:6521
33811+#: cp/semantics.c:6536
33812 #, gcc-internal-format
33813 msgid "%qD used before its definition"
33814 msgstr "se usó %qD antes de su definición"
33815
33816-#: cp/semantics.c:6555
33817+#: cp/semantics.c:6570
33818 #, gcc-internal-format
33819 msgid "call has circular dependency"
33820 msgstr "la llamada tiene una dependencia circular"
33821
33822-#: cp/semantics.c:6563
33823+#: cp/semantics.c:6578
33824 #, gcc-internal-format, gfc-internal-format
33825 msgid "constexpr evaluation depth exceeds maximum of %d (use -fconstexpr-depth= to increase the maximum)"
33826 msgstr "la profundidad de evaluación de constexpr excede el máximo de %d (use -fconstexpr-depth= para incrementar el máximo)"
33827
33828-#: cp/semantics.c:6641
33829+#: cp/semantics.c:6656
33830 #, gcc-internal-format
33831 msgid "%q+E is not a constant expression"
33832 msgstr "%q+E no es una expresión constante"
33833
33834-#: cp/semantics.c:6781
33835+#: cp/semantics.c:6796
33836 #, gcc-internal-format
33837 msgid "array subscript out of bound"
33838 msgstr "el subíndice de la matriz está fuera de los límites"
33839
33840-#: cp/semantics.c:6827 cp/semantics.c:6887 cp/semantics.c:7523
33841+#: cp/semantics.c:6842 cp/semantics.c:6902 cp/semantics.c:7538
33842 #, gcc-internal-format
33843 msgid "%qE is not a constant expression"
33844 msgstr "%qE no es una expresión constante"
33845
33846-#: cp/semantics.c:6833
33847+#: cp/semantics.c:6848
33848 #, gcc-internal-format
33849 msgid "mutable %qD is not usable in a constant expression"
33850 msgstr "%qD mutable no se puede usar en una expresión constante"
33851
33852-#: cp/semantics.c:6848
33853+#: cp/semantics.c:6863
33854 #, gcc-internal-format
33855 msgid "accessing %qD member instead of initialized %qD member in constant expression"
33856 msgstr "se accede al miembro %qD en lugar del miembro inicializado %qD en la expresión constante"
33857
33858-#: cp/semantics.c:7388
33859+#: cp/semantics.c:7403
33860 #, gcc-internal-format
33861 msgid "accessing value of %qE through a %qT glvalue in a constant expression"
33862 msgstr "se accede al valor de %qE a través de glvalue %qT en una expresión constante"
33863
33864-#: cp/semantics.c:7419
33865+#: cp/semantics.c:7434
33866 #, gcc-internal-format
33867 msgid "the value of %qD is not usable in a constant expression"
33868 msgstr "el valor de %qD no se puede usar en una expresión constante"
33869
33870-#: cp/semantics.c:7426
33871+#: cp/semantics.c:7441
33872 #, gcc-internal-format
33873 msgid "%qD used in its own initializer"
33874 msgstr "se usó %qD en su propio inicializador"
33875
33876-#: cp/semantics.c:7431
33877+#: cp/semantics.c:7446
33878 #, gcc-internal-format
33879 msgid "%q#D is not const"
33880 msgstr "%q#D no es const"
33881
33882-#: cp/semantics.c:7434
33883+#: cp/semantics.c:7449
33884 #, gcc-internal-format
33885 msgid "%q#D is volatile"
33886 msgstr "%q+#D es volatile"
33887
33888-#: cp/semantics.c:7438
33889+#: cp/semantics.c:7453
33890 #, gcc-internal-format
33891 msgid "%qD was not initialized with a constant expression"
33892 msgstr "%qD no se inicializó con una expresion constante"
33893
33894-#: cp/semantics.c:7447
33895+#: cp/semantics.c:7462
33896 #, gcc-internal-format
33897 msgid "%qD was not declared %<constexpr%>"
33898 msgstr "%qD no se declaró %<constexpr%>"
33899
33900-#: cp/semantics.c:7450
33901+#: cp/semantics.c:7465
33902 #, gcc-internal-format
33903 msgid "%qD does not have integral or enumeration type"
33904 msgstr "%qD no tiene tipo integral o de enumeración"
33905
33906-#: cp/semantics.c:7511 cp/semantics.c:8204
33907+#: cp/semantics.c:7526 cp/semantics.c:8219
33908 #, gcc-internal-format
33909 msgid "use of the value of the object being constructed in a constant expression"
33910 msgstr "uso del valor del objeto en construcción en una expresión constante"
33911
33912-#: cp/semantics.c:7539 cp/semantics.c:8342
33913+#: cp/semantics.c:7554 cp/semantics.c:8357
33914 #, gcc-internal-format
33915 msgid "temporary of non-literal type %qT in a constant expression"
33916 msgstr "temporal del tipo %qT que no es literal en una expresión constante"
33917
33918-#: cp/semantics.c:7787 cp/semantics.c:8246 cp/semantics.c:8495
33919+#: cp/semantics.c:7802 cp/semantics.c:8261 cp/semantics.c:8510
33920 #, gcc-internal-format
33921 msgid "expression %qE is not a constant-expression"
33922 msgstr "la expresión %qE no es una expresión constante"
33923
33924-#: cp/semantics.c:7792
33925+#: cp/semantics.c:7807
33926 #, gcc-internal-format
33927 msgid "unexpected expression %qE of kind %s"
33928 msgstr "expresión %qE inesperada de género %s"
33929
33930-#: cp/semantics.c:7823
33931+#: cp/semantics.c:7838
33932 #, gcc-internal-format
33933 msgid "%qT cannot be the type of a complete constant expression because it has mutable sub-objects"
33934 msgstr "%qT no puede ser el tipo de una expresión constante completa porque tiene sub-objetos mutables"
33935
33936-#: cp/semantics.c:7836
33937+#: cp/semantics.c:7851
33938 #, gcc-internal-format
33939 msgid "conversion from pointer type %qT to arithmetic type %qT in a constant-expression"
33940 msgstr "conversión del tipo puntero %qT al tipo aritmético %qT en una expresión constante"
33941
33942-#: cp/semantics.c:8007
33943+#: cp/semantics.c:8022
33944 #, gcc-internal-format
33945 msgid "expression %qE has side-effects"
33946 msgstr "la expresión %qE tiene efectos colaterales"
33947
33948-#: cp/semantics.c:8090
33949+#: cp/semantics.c:8105
33950 #, gcc-internal-format
33951 msgid "calling a member function of the object being constructed in a constant expression"
33952 msgstr "se llamó a una función miembro del objeto en construcción en una expresión constante"
33953
33954-#: cp/semantics.c:8172
33955+#: cp/semantics.c:8187
33956 #, gcc-internal-format
33957 msgid "address-of an object %qE with thread local or automatic storage is not a constant expression"
33958 msgstr "la dirección de un objeto %qE con hilo local o almacenamiento automático no es una expresión constante"
33959
33960-#: cp/semantics.c:8258
33961+#: cp/semantics.c:8273
33962 #, gcc-internal-format
33963 msgid "typeid-expression is not a constant expression because %qE is of polymorphic type"
33964 msgstr "la expresión id de tipo no es una expresión constante porque %qE es de tipo polimórfico"
33965
33966-#: cp/semantics.c:8271
33967+#: cp/semantics.c:8286
33968 #, gcc-internal-format
33969 msgid "difference of two pointer expressions is not a constant expression"
33970 msgstr "la diferencia de dos expresiones puntero no es una expresión constante"
33971
33972-#: cp/semantics.c:8290
33973+#: cp/semantics.c:8305
33974 #, gcc-internal-format
33975 msgid "pointer comparison expression is not a constant expression"
33976 msgstr "la expresión de comparación de punteros no es una expresión constante"
33977
33978-#: cp/semantics.c:8391
33979+#: cp/semantics.c:8406
33980 #, gcc-internal-format
33981 msgid "division by zero is not a constant-expression"
33982 msgstr "la división entre cero no es una expresión constante"
33983
33984-#: cp/semantics.c:8503
33985+#: cp/semantics.c:8518
33986 #, gcc-internal-format
33987 msgid "non-constant array initialization"
33988 msgstr "inicialización de una matriz que no es constante"
33989
33990-#: cp/semantics.c:8509
33991+#: cp/semantics.c:8524
33992 #, gcc-internal-format, gfc-internal-format
33993 msgid "unexpected AST of kind %s"
33994 msgstr "AST inesperado de género %s"
33995
33996-#: cp/semantics.c:8999
33997+#: cp/semantics.c:9014
33998 #, gcc-internal-format
33999 msgid "cannot capture %qE by reference"
34000 msgstr "no se puede capturar %qE por referencia"
34001
34002-#: cp/semantics.c:9022
34003+#: cp/semantics.c:9037
34004 #, gcc-internal-format
34005 msgid "already captured %qD in lambda expression"
34006 msgstr "ya se capturó %qD en la expresión lambda"
34007
34008-#: cp/semantics.c:9168
34009+#: cp/semantics.c:9183
34010 #, gcc-internal-format
34011 msgid "%<this%> was not captured for this lambda function"
34012 msgstr "no se capturó %<this%> para esta función lambda"
34013@@ -34703,7 +34914,7 @@
34014
34015 #: fortran/array.c:216 fortran/array.c:576 fortran/check.c:2149
34016 #: fortran/check.c:3915 fortran/check.c:3953 fortran/check.c:4120
34017-#: fortran/match.c:1767 fortran/match.c:2834 fortran/match.c:3030
34018+#: fortran/match.c:1766 fortran/match.c:2833 fortran/match.c:3029
34019 #: fortran/simplify.c:4538
34020 #, gcc-internal-format, gfc-internal-format
34021 msgid "Coarrays disabled at %C, use -fcoarray= to enable"
34022@@ -34824,7 +35035,7 @@
34023 msgid "Fortran 2003: Array constructor including type specification at %C"
34024 msgstr "Fortran 2003: Los constructores de matriz incluyen especificación de tipo en %C"
34025
34026-#: fortran/array.c:1055 fortran/match.c:3466
34027+#: fortran/array.c:1055 fortran/match.c:3465
34028 #, gcc-internal-format, gfc-internal-format
34029 msgid "Type-spec at %L cannot contain a deferred type parameter"
34030 msgstr "La especificación de tipo en %L no puede tener un parámetro de tipo diferido"
34031@@ -34846,7 +35057,7 @@
34032
34033 #. Problems occur when we get something like
34034 #. integer :: a(lots) = (/(i, i=1, lots)/)
34035-#: fortran/array.c:1621 fortran/expr.c:1538 fortran/trans-array.c:5260
34036+#: fortran/array.c:1621 fortran/expr.c:1538 fortran/trans-array.c:5259
34037 #, gcc-internal-format, gfc-internal-format
34038 msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See -fmax-array-constructor option"
34039 msgstr "El número de elementos en el constructor de matriz en %L requiere un incremento del límite superior %d permitido. Vea la opción -fmax-array-constructor"
34040@@ -35016,7 +35227,7 @@
34041
34042 #: fortran/check.c:910 fortran/check.c:946 fortran/check.c:2853
34043 #, gcc-internal-format, gfc-internal-format
34044-msgid "'%s' argument of '%s' intrinsic at %L shall not be conindexed"
34045+msgid "'%s' argument of '%s' intrinsic at %L shall not be coindexed"
34046 msgstr "El argumento '%s' del intrínseco '%s' en %L no debe ser coindizado"
34047
34048 #: fortran/check.c:928
34049@@ -35397,19 +35608,19 @@
34050 msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER or LOGICAL"
34051 msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser INTEGER o LOGICAL"
34052
34053-#: fortran/class.c:345
34054+#: fortran/class.c:470
34055 #, gcc-internal-format, gfc-internal-format
34056 msgid "Assumed size polymorphic objects or components, such as that at %C, have not yet been implemented"
34057 msgstr "Objetos o componentes polimórficos de tamaño asumido, tales como el que está en %C, aún no están implementados"
34058
34059 #. Since the extension field is 8 bit wide, we can only have
34060 #. up to 255 extension levels.
34061-#: fortran/class.c:431 fortran/decl.c:7562
34062+#: fortran/class.c:556 fortran/decl.c:7561
34063 #, gcc-internal-format, gfc-internal-format
34064 msgid "Maximum extension level reached with type '%s' at %L"
34065 msgstr "Se alcanzó el nivel de extensión máximo con el tipo '%s' en %L"
34066
34067-#: fortran/class.c:822 fortran/class.c:896
34068+#: fortran/class.c:948 fortran/class.c:1022
34069 #, gcc-internal-format, gfc-internal-format
34070 msgid "'%s' of '%s' is PRIVATE at %L"
34071 msgstr "'%s' de '%s' es PRIVATE en %L"
34072@@ -35459,227 +35670,227 @@
34073 msgid "Extension: re-initialization of '%s' at %L"
34074 msgstr "Extensión: reinicialización de '%s' en %L"
34075
34076-#: fortran/decl.c:260
34077+#: fortran/decl.c:264
34078 #, gcc-internal-format, gfc-internal-format
34079 msgid "Host associated variable '%s' may not be in the DATA statement at %C"
34080 msgstr "La variable asociada al anfitrión '%s' no debe estar en la declaración DATA en %C"
34081
34082-#: fortran/decl.c:267
34083+#: fortran/decl.c:271
34084 #, gcc-internal-format, gfc-internal-format
34085 msgid "Extension: initialization of common block variable '%s' in DATA statement at %C"
34086 msgstr "Extensión: inicialización de la variable de bloque común '%s' en la declaración DATA en %C"
34087
34088-#: fortran/decl.c:376
34089+#: fortran/decl.c:380
34090 #, gcc-internal-format, gfc-internal-format
34091 msgid "Symbol '%s' must be a PARAMETER in DATA statement at %C"
34092 msgstr "El símbolo '%s' debe ser un PARAMETER en la declaración DATA en %C"
34093
34094-#: fortran/decl.c:401
34095+#: fortran/decl.c:405
34096 #, gcc-internal-format, gfc-internal-format
34097 msgid "Invalid initializer %s in Data statement at %C"
34098 msgstr "Inicializador %s inválido en la declaración Data en %C"
34099
34100-#: fortran/decl.c:504
34101+#: fortran/decl.c:508
34102 #, gcc-internal-format, gfc-internal-format
34103 msgid "Initialization at %C is not allowed in a PURE procedure"
34104 msgstr "No se permite la inicialización de %C en un procedimiento PURE"
34105
34106-#: fortran/decl.c:566
34107+#: fortran/decl.c:570
34108 #, gcc-internal-format, gfc-internal-format
34109 msgid "DATA statement at %C is not allowed in a PURE procedure"
34110 msgstr "No se permite la declaración DATA en %C en un procedimiento PURE"
34111
34112-#: fortran/decl.c:654
34113+#: fortran/decl.c:658
34114 #, gcc-internal-format, gfc-internal-format
34115 msgid "Bad INTENT specification at %C"
34116 msgstr "Especificación INTENT errónea en %C"
34117
34118-#: fortran/decl.c:675
34119+#: fortran/decl.c:679
34120 #, gcc-internal-format, gfc-internal-format
34121 msgid "Fortran 2003: deferred type parameter at %C"
34122 msgstr "Fortran 2003: parámetro de tipo diferido en %C"
34123
34124-#: fortran/decl.c:712
34125+#: fortran/decl.c:716
34126 #, gcc-internal-format, gfc-internal-format
34127 msgid "Conflict in attributes of function argument at %C"
34128 msgstr "Conflicto en los atributos de los argumentos de la función en %C"
34129
34130-#: fortran/decl.c:737
34131+#: fortran/decl.c:741
34132 #, gcc-internal-format, gfc-internal-format
34133 msgid "Obsolescent feature: Old-style character length at %C"
34134 msgstr "Característica obsoleta: Longitud de carácter de estilo antiguo en %C"
34135
34136-#: fortran/decl.c:769
34137+#: fortran/decl.c:773
34138 #, gcc-internal-format, gfc-internal-format
34139 msgid "Syntax error in character length specification at %C"
34140 msgstr "Error sintáctico en la especificación de longitud de carácter en %C"
34141
34142-#: fortran/decl.c:892
34143+#: fortran/decl.c:896
34144 #, gcc-internal-format, gfc-internal-format
34145 msgid "Procedure '%s' at %C is already defined at %L"
34146 msgstr "El procedimiento '%s' en %C ya se había definido en %L"
34147
34148-#: fortran/decl.c:900
34149+#: fortran/decl.c:904
34150 #, gcc-internal-format, gfc-internal-format
34151 msgid "Name '%s' at %C is already defined as a generic interface at %L"
34152 msgstr "El nombre '%s' en %C ya se definió como una interfaz genérica en %L"
34153
34154-#: fortran/decl.c:913
34155+#: fortran/decl.c:917
34156 #, gcc-internal-format, gfc-internal-format
34157 msgid "Procedure '%s' at %C has an explicit interface and must not have attributes declared at %L"
34158 msgstr "El procedimiento '%s' en %C tiene una interfaz explícita y no debe tener atributos declarados en %L"
34159
34160-#: fortran/decl.c:985
34161+#: fortran/decl.c:989
34162 #, gcc-internal-format, gfc-internal-format
34163 msgid "Procedure '%s' at %L must have the BIND(C) attribute to be C interoperable"
34164 msgstr "El procedimiento '%s' en %L debe tener el atributo BIND(C) para que sea interoperable con C"
34165
34166-#: fortran/decl.c:1013
34167+#: fortran/decl.c:1017
34168 #, gcc-internal-format, gfc-internal-format
34169 msgid "Variable '%s' at %L is a dummy argument to the BIND(C) procedure '%s' but is not C interoperable because derived type '%s' is not C interoperable"
34170 msgstr "La variable '%s' en %L es un argumento dummy del procedimiento BIND(C) '%s' pero no es interoperable con C porque el tipo derivado '%s' no es interoperable con C"
34171
34172-#: fortran/decl.c:1020
34173+#: fortran/decl.c:1024
34174 #, gcc-internal-format, gfc-internal-format
34175 msgid "Variable '%s' at %L is a dummy argument to the BIND(C) procedure '%s' but is not C interoperable because it is polymorphic"
34176 msgstr "La variable '%s' en %L es un argumento dummy del procedimiento BIND(C) '%s' pero puede no ser interoperable con C porque es polimórfica"
34177
34178-#: fortran/decl.c:1026
34179+#: fortran/decl.c:1030
34180 #, gcc-internal-format, gfc-internal-format
34181 msgid "Variable '%s' at %L is a parameter to the BIND(C) procedure '%s' but may not be C interoperable"
34182 msgstr "La variable '%s' en %L es un parámetro del procedimiento BIND(C) '%s' pero puede no ser interoperable con C"
34183
34184-#: fortran/decl.c:1041
34185+#: fortran/decl.c:1045
34186 #, gcc-internal-format, gfc-internal-format
34187 msgid "Character argument '%s' at %L must be length 1 because procedure '%s' is BIND(C)"
34188 msgstr "El argumento de carácter '%s' en %L debe ser de longitud 1 porque el procedimiento '%s' es BIND(C)"
34189
34190-#: fortran/decl.c:1055
34191+#: fortran/decl.c:1059
34192 #, gcc-internal-format, gfc-internal-format
34193 msgid "Variable '%s' at %L cannot have the ALLOCATABLE attribute because procedure '%s' is BIND(C)"
34194 msgstr "La variable '%s' en %L no puede tener el atributo ALLOCATABLE porque el procedimiento '%s' es BIND(C)"
34195
34196-#: fortran/decl.c:1064
34197+#: fortran/decl.c:1068
34198 #, gcc-internal-format, gfc-internal-format
34199 msgid "Variable '%s' at %L cannot have the POINTER attribute because procedure '%s' is BIND(C)"
34200 msgstr "La variable '%s' en %L no puede tener el atributo POINTER porque el procedimiento '%s' es BIND(C)"
34201
34202-#: fortran/decl.c:1073
34203+#: fortran/decl.c:1077
34204 #, gcc-internal-format, gfc-internal-format
34205 msgid "Variable '%s' at %L cannot have both the OPTIONAL and the VALUE attribute because procedure '%s' is BIND(C)"
34206 msgstr "La variable '%s' en %L no puede tener los atributos OPTIONAL y VALUE al mismo tiempo porque el procedimiento '%s' es BIND(C)"
34207
34208-#: fortran/decl.c:1080
34209+#: fortran/decl.c:1084
34210 #, gcc-internal-format, gfc-internal-format
34211 msgid "TS29113: Variable '%s' at %L with OPTIONAL attribute in procedure '%s' which is BIND(C)"
34212 msgstr "TS29113: La variable '%s' en %L con atributo OPTIONAL en el procedimiento '%s' que es BIND(C)"
34213
34214-#: fortran/decl.c:1094
34215+#: fortran/decl.c:1098
34216 #, gcc-internal-format, gfc-internal-format
34217 msgid "Assumed-shape array '%s' at %L cannot be an argument to the procedure '%s' at %L because the procedure is BIND(C)"
34218 msgstr "La matriz de forma asumida '%s' en %L no puede ser un argumento para el procedimiento '%s' en %L porque el procedimiento es BIND(C)"
34219
34220-#: fortran/decl.c:1104
34221+#: fortran/decl.c:1108
34222 #, gcc-internal-format, gfc-internal-format
34223 msgid "Deferred-shape array '%s' at %L cannot be an argument to the procedure '%s' at %L because the procedure is BIND(C)"
34224 msgstr "La matriz de forma diferida '%s' en %L no puede ser un argumento para el procedimiento '%s' en %L porque el procedimiento es BIND(C)"
34225
34226-#: fortran/decl.c:1185
34227+#: fortran/decl.c:1189
34228 #, gcc-internal-format, gfc-internal-format
34229 msgid "Variable '%s' in common block '%s' at %C must be declared with a C interoperable kind since common block '%s' is BIND(C)"
34230 msgstr "La variable '%s' en el bloque común '%s' en %C se debe declarar con un género interoperable con C porque el bloque común '%s' es BIND(C)"
34231
34232-#: fortran/decl.c:1227
34233+#: fortran/decl.c:1231
34234 #, gcc-internal-format, gfc-internal-format
34235 msgid "CHARACTER expression at %L is being truncated (%d/%d)"
34236 msgstr "Se trunca la expresión CHARACTER en %L (%d/%d)"
34237
34238-#: fortran/decl.c:1234
34239+#: fortran/decl.c:1238
34240 #, gcc-internal-format, gfc-internal-format
34241 msgid "The CHARACTER elements of the array constructor at %L must have the same length (%d/%d)"
34242 msgstr "Los elementos CHARACTER del constructor de matriz en %L deben tener la misma longitud (%d/%d)"
34243
34244-#: fortran/decl.c:1324
34245+#: fortran/decl.c:1328
34246 #, gcc-internal-format, gfc-internal-format
34247 msgid "Initializer not allowed for PARAMETER '%s' at %C"
34248 msgstr "No se permite un inicializador para el PARAMETER '%s' en %C"
34249
34250-#: fortran/decl.c:1334
34251+#: fortran/decl.c:1338
34252 #, gcc-internal-format, gfc-internal-format
34253 msgid "PARAMETER at %L is missing an initializer"
34254 msgstr "Falta un inicializador para el PARAMETER en %L"
34255
34256-#: fortran/decl.c:1344
34257+#: fortran/decl.c:1348
34258 #, gcc-internal-format, gfc-internal-format
34259 msgid "Variable '%s' at %C with an initializer already appears in a DATA statement"
34260 msgstr "La variable '%s' en %C con un inicializador ya aparecía en una declaración DATA"
34261
34262-#: fortran/decl.c:1425
34263+#: fortran/decl.c:1429
34264 #, gcc-internal-format, gfc-internal-format
34265 msgid "Can't initialize implied-shape array at %L with scalar"
34266 msgstr "No se puede inicializar la matriz de tamaño implícito en %L con un escalar"
34267
34268-#: fortran/decl.c:1443
34269+#: fortran/decl.c:1447
34270 #, gcc-internal-format, gfc-internal-format
34271 msgid "Non-constant lower bound in implied-shape declaration at %L"
34272 msgstr "El límite inferior no es constante en la declaración de forma implícita en %L"
34273
34274-#: fortran/decl.c:1538
34275+#: fortran/decl.c:1542
34276 #, gcc-internal-format, gfc-internal-format
34277 msgid "Component at %C must have the POINTER attribute"
34278 msgstr "El componente en %C debe tener el atributo POINTER"
34279
34280-#: fortran/decl.c:1546
34281+#: fortran/decl.c:1550
34282 #, gcc-internal-format, gfc-internal-format
34283 msgid "Array component of structure at %C must have explicit or deferred shape"
34284 msgstr "El componente de matriz de la estructura en %C debe tener una forma explícita o diferida"
34285
34286-#: fortran/decl.c:1627
34287+#: fortran/decl.c:1631
34288 #, gcc-internal-format, gfc-internal-format
34289 msgid "Pointer array component of structure at %C must have a deferred shape"
34290 msgstr "El componente de matriz de puntero de la estructura en %C debe tener una forma diferida"
34291
34292-#: fortran/decl.c:1636
34293+#: fortran/decl.c:1640
34294 #, gcc-internal-format, gfc-internal-format
34295 msgid "Allocatable component of structure at %C must have a deferred shape"
34296 msgstr "El componente allocatable de la estructura en %C debe tener una forma diferida"
34297
34298-#: fortran/decl.c:1645
34299+#: fortran/decl.c:1649
34300 #, gcc-internal-format, gfc-internal-format
34301 msgid "Array component of structure at %C must have an explicit shape"
34302 msgstr "El componente de matriz de la estructura en %C debe tener una forma explícita"
34303
34304-#: fortran/decl.c:1679
34305+#: fortran/decl.c:1683
34306 #, gcc-internal-format, gfc-internal-format
34307 msgid "NULL() initialization at %C is ambiguous"
34308 msgstr "La inicialización NULL() en %C es ambigua"
34309
34310-#: fortran/decl.c:1706
34311+#: fortran/decl.c:1710
34312 #, gcc-internal-format, gfc-internal-format
34313 msgid "Initialization of pointer at %C is not allowed in a PURE procedure"
34314 msgstr "No se permite la inicialización de un puntero en %C en un procedimiento PURE"
34315
34316-#: fortran/decl.c:1726
34317+#: fortran/decl.c:1730
34318 #, gcc-internal-format, gfc-internal-format
34319 msgid "Error in pointer initialization at %C"
34320 msgstr "Error en la inicialización de puntero en %C"
34321
34322-#: fortran/decl.c:1733
34323+#: fortran/decl.c:1737
34324 #, gcc-internal-format, gfc-internal-format
34325 msgid "Fortran 2008: non-NULL pointer initialization at %C"
34326 msgstr "Fortran 2008: inicialización de puntero que no es NULL en %C"
34327
34328-#: fortran/decl.c:1756
34329+#: fortran/decl.c:1760
34330 #, gcc-internal-format, gfc-internal-format
34331 msgid "Function name '%s' not allowed at %C"
34332 msgstr "No se permite el nombre de función '%s' en %C"
34333
34334-#: fortran/decl.c:1819
34335+#: fortran/decl.c:1823
34336 #, gcc-internal-format, gfc-internal-format
34337 msgid "Non-PARAMETER symbol '%s' at %L can't be implied-shape"
34338 msgstr "El símbolo '%s' que no es PARAMETER en %L no puede ser de forma implícita"
34339
34340-#: fortran/decl.c:1830
34341+#: fortran/decl.c:1834
34342 #, gcc-internal-format, gfc-internal-format
34343 msgid "Fortran 2008: Implied-shape array at %L"
34344 msgstr "Fortran 2008: Matriz de forma implícita en %L"
34345@@ -35689,1076 +35900,1076 @@
34346 # como `apuntado'. cfuga
34347 # Referencia: http://gcc.gnu.org/onlinedocs/gfortran/Cray-pointers.html
34348 #
34349-#: fortran/decl.c:1894 fortran/decl.c:6419
34350+#: fortran/decl.c:1898 fortran/decl.c:6418
34351 #, gcc-internal-format, gfc-internal-format
34352 msgid "Duplicate array spec for Cray pointee at %C"
34353 msgstr "Especificación de matriz duplicada para el apuntado Cray en %C"
34354
34355-#: fortran/decl.c:1965
34356+#: fortran/decl.c:1969
34357 #, gcc-internal-format, gfc-internal-format
34358 msgid "The type of '%s' at %C has not been declared within the interface"
34359 msgstr "No se declaró el tipo de '%s' en %C en la interfaz"
34360
34361-#: fortran/decl.c:1989
34362+#: fortran/decl.c:1993
34363 #, gcc-internal-format, gfc-internal-format
34364 msgid "Extension: Old-style initialization at %C"
34365 msgstr "Extensión: Inicialización de estilo antiguo en %C"
34366
34367-#: fortran/decl.c:2004 fortran/decl.c:4911
34368+#: fortran/decl.c:2008 fortran/decl.c:4916
34369 #, gcc-internal-format, gfc-internal-format
34370 msgid "Initialization at %C isn't for a pointer variable"
34371 msgstr "La inicialización en %C no es para una variable puntero"
34372
34373-#: fortran/decl.c:2017
34374+#: fortran/decl.c:2021
34375 #, gcc-internal-format, gfc-internal-format
34376 msgid "Pointer initialization at %C requires '=>', not '='"
34377 msgstr "La inicialización de puntero en %C requiere '=>', no '='"
34378
34379-#: fortran/decl.c:2026 fortran/decl.c:7714
34380+#: fortran/decl.c:2030 fortran/decl.c:7713
34381 #, gcc-internal-format, gfc-internal-format
34382 msgid "Expected an initialization expression at %C"
34383 msgstr "Se esperaba una expresión de inicialización en %C"
34384
34385-#: fortran/decl.c:2033
34386+#: fortran/decl.c:2037
34387 #, gcc-internal-format, gfc-internal-format
34388 msgid "Initialization of variable at %C is not allowed in a PURE procedure"
34389 msgstr "No se permite la inicialización de una variable en %C en un procedimiento PURE"
34390
34391-#: fortran/decl.c:2046
34392+#: fortran/decl.c:2050
34393 #, gcc-internal-format, gfc-internal-format
34394 msgid "Initialization of allocatable component at %C is not allowed"
34395 msgstr "No se permite la inicialización del componente allocatable en %C"
34396
34397-#: fortran/decl.c:2100 fortran/decl.c:2136
34398+#: fortran/decl.c:2104 fortran/decl.c:2140
34399 #, gcc-internal-format, gfc-internal-format
34400 msgid "Old-style type declaration %s*%d not supported at %C"
34401 msgstr "No se admite la declaración de tipo de estilo antiguo %s*%d en %C"
34402
34403-#: fortran/decl.c:2141
34404+#: fortran/decl.c:2145
34405 #, gcc-internal-format, gfc-internal-format
34406 msgid "Nonstandard type declaration %s*%d at %C"
34407 msgstr "Declaración de tipo %s*%d no estándar en %C"
34408
34409-#: fortran/decl.c:2192 fortran/decl.c:2268
34410+#: fortran/decl.c:2196 fortran/decl.c:2272
34411 #, gcc-internal-format, gfc-internal-format
34412 msgid "Missing right parenthesis at %C"
34413 msgstr "Falta el paréntesis derecho en %C"
34414
34415-#: fortran/decl.c:2205 fortran/decl.c:2339
34416+#: fortran/decl.c:2209 fortran/decl.c:2343
34417 #, gcc-internal-format, gfc-internal-format
34418 msgid "Expected initialization expression at %C"
34419 msgstr "Se esperaba una expresión de inicialización en %C"
34420
34421-#: fortran/decl.c:2213 fortran/decl.c:2345
34422+#: fortran/decl.c:2217 fortran/decl.c:2349
34423 #, gcc-internal-format, gfc-internal-format
34424 msgid "Expected scalar initialization expression at %C"
34425 msgstr "Se esperaba una expresión de inicialización escalar en %C"
34426
34427-#: fortran/decl.c:2244
34428+#: fortran/decl.c:2248
34429 #, gcc-internal-format, gfc-internal-format
34430 msgid "Kind %d not supported for type %s at %C"
34431 msgstr "No se admite el género %d para el tipo %s en %C"
34432
34433-#: fortran/decl.c:2257
34434+#: fortran/decl.c:2261
34435 #, gcc-internal-format, gfc-internal-format
34436 msgid "C kind type parameter is for type %s but type at %L is %s"
34437 msgstr "El parámetro de tipo de género C es para el tipo %s, pero el tipo en %L es %s"
34438
34439-#: fortran/decl.c:2266
34440+#: fortran/decl.c:2270
34441 #, gcc-internal-format, gfc-internal-format
34442 msgid "Missing right parenthesis or comma at %C"
34443 msgstr "Falta el paréntesis derecho o una coma en %C"
34444
34445-#: fortran/decl.c:2365
34446+#: fortran/decl.c:2369
34447 #, gcc-internal-format, gfc-internal-format
34448 msgid "Kind %d is not supported for CHARACTER at %C"
34449 msgstr "No se admite el género %d para CHARACTER en %C"
34450
34451-#: fortran/decl.c:2497
34452+#: fortran/decl.c:2501
34453 #, gcc-internal-format, gfc-internal-format
34454 msgid "Syntax error in CHARACTER declaration at %C"
34455 msgstr "Error sintáctico en la declaración CHARACTER en %C"
34456
34457-#: fortran/decl.c:2582
34458+#: fortran/decl.c:2586
34459 #, gcc-internal-format, gfc-internal-format
34460 msgid "Extension: BYTE type at %C"
34461 msgstr "Extensión: tipo BYTE en %C"
34462
34463-#: fortran/decl.c:2588
34464+#: fortran/decl.c:2592
34465 #, gcc-internal-format, gfc-internal-format
34466 msgid "BYTE type used at %C is not available on the target machine"
34467 msgstr "El tipo BYTE usado en %C no está disponible en la máquina objetivo"
34468
34469-#: fortran/decl.c:2614 fortran/decl.c:2645 fortran/decl.c:2675
34470-#: fortran/decl.c:2825
34471+#: fortran/decl.c:2618 fortran/decl.c:2649 fortran/decl.c:2679
34472+#: fortran/decl.c:2829
34473 #, gcc-internal-format, gfc-internal-format
34474 msgid "Fortran 2008: TYPE with intrinsic-type-spec at %C"
34475 msgstr "Fortran 2008: TYPE con especificación de tipo intrínseco en %C"
34476
34477-#: fortran/decl.c:2670
34478+#: fortran/decl.c:2674
34479 #, gcc-internal-format, gfc-internal-format
34480 msgid "Extension: DOUBLE COMPLEX at %C"
34481 msgstr "Extensión: DOUBLE COMPLEX en %C"
34482
34483-#: fortran/decl.c:2708
34484+#: fortran/decl.c:2712
34485 #, gcc-internal-format, gfc-internal-format
34486 msgid "Unlimited polymorphism at %C not yet supported"
34487 msgstr "Aún no se admite polimorfismo ilimitado en %C"
34488
34489-#: fortran/decl.c:2717
34490+#: fortran/decl.c:2721
34491 #, gcc-internal-format, gfc-internal-format
34492 msgid "Fortran 2003: CLASS statement at %C"
34493 msgstr "Fortran 2003: Declaración CLASS en %C"
34494
34495-#: fortran/decl.c:2753 fortran/decl.c:2766 fortran/decl.c:3140
34496-#: fortran/decl.c:3148
34497+#: fortran/decl.c:2757 fortran/decl.c:2770 fortran/decl.c:3144
34498+#: fortran/decl.c:3152
34499 #, gcc-internal-format, gfc-internal-format
34500 msgid "Type name '%s' at %C is ambiguous"
34501 msgstr "El nombre de tipo '%s' en %C es ambiguo"
34502
34503-#: fortran/decl.c:2781
34504+#: fortran/decl.c:2785
34505 #, gcc-internal-format, gfc-internal-format
34506 msgid "Type name '%s' at %C conflicts with previously declared entity at %L, which has the same name"
34507 msgstr "El nombre de tipo '%s' en %C tiene conflictos con la entidad declarada previamente en %L, la cual tiene el mismo nombre"
34508
34509-#: fortran/decl.c:2901
34510+#: fortran/decl.c:2905
34511 #, gcc-internal-format, gfc-internal-format
34512 msgid "Missing character range in IMPLICIT at %C"
34513 msgstr "Falta el rango de carácter en IMPLICIT en %C"
34514
34515-#: fortran/decl.c:2947
34516+#: fortran/decl.c:2951
34517 #, gcc-internal-format, gfc-internal-format
34518 msgid "Letters must be in alphabetic order in IMPLICIT statement at %C"
34519 msgstr "Las letras debe estar en orden alfabético en la declaración IMPLICIT en %C"
34520
34521-#: fortran/decl.c:3003
34522+#: fortran/decl.c:3007
34523 #, gcc-internal-format, gfc-internal-format
34524 msgid "Empty IMPLICIT statement at %C"
34525 msgstr "Declaración IMPLICIT vacía en %C"
34526
34527-#: fortran/decl.c:3105
34528+#: fortran/decl.c:3109
34529 #, gcc-internal-format, gfc-internal-format
34530 msgid "IMPORT statement at %C only permitted in an INTERFACE body"
34531 msgstr "La declaración IMPORT en %C sólo se permite en un cuerpo INTERFACE"
34532
34533-#: fortran/decl.c:3110
34534+#: fortran/decl.c:3114
34535 #, gcc-internal-format, gfc-internal-format
34536 msgid "Fortran 2003: IMPORT statement at %C"
34537 msgstr "Fortran 2003: Declaración IMPORT en %C"
34538
34539-#: fortran/decl.c:3125
34540+#: fortran/decl.c:3129
34541 #, gcc-internal-format, gfc-internal-format
34542 msgid "Expecting list of named entities at %C"
34543 msgstr "Se espera la lista de entidades nombradas %C"
34544
34545-#: fortran/decl.c:3154
34546+#: fortran/decl.c:3158
34547 #, gcc-internal-format, gfc-internal-format
34548 msgid "Cannot IMPORT '%s' from host scoping unit at %C - does not exist."
34549 msgstr "No se puede IMPORTar '%s' desde la unidad de ámbito del anfitrión en %C - no existe."
34550
34551-#: fortran/decl.c:3161
34552+#: fortran/decl.c:3165
34553 #, gcc-internal-format, gfc-internal-format
34554 msgid "'%s' is already IMPORTed from host scoping unit at %C."
34555 msgstr "'%s' ya se IMPORTó desde la unidad de ámbito del anfitrión en %C."
34556
34557-#: fortran/decl.c:3204
34558+#: fortran/decl.c:3208
34559 #, gcc-internal-format, gfc-internal-format
34560 msgid "Syntax error in IMPORT statement at %C"
34561 msgstr "Error sintáctico en la declaración IMPORT en %C"
34562
34563-#: fortran/decl.c:3503
34564+#: fortran/decl.c:3507
34565 #, gcc-internal-format, gfc-internal-format
34566 msgid "Missing codimension specification at %C"
34567 msgstr "Falta la especificación de codimensión en %C"
34568
34569-#: fortran/decl.c:3505
34570+#: fortran/decl.c:3509
34571 #, gcc-internal-format, gfc-internal-format
34572 msgid "Missing dimension specification at %C"
34573 msgstr "Falta la especificación de dimensión en %C"
34574
34575-#: fortran/decl.c:3588
34576+#: fortran/decl.c:3592
34577 #, gcc-internal-format, gfc-internal-format
34578 msgid "Duplicate %s attribute at %L"
34579 msgstr "Atributo %s duplicado en %L"
34580
34581-#: fortran/decl.c:3607
34582+#: fortran/decl.c:3611
34583 #, gcc-internal-format, gfc-internal-format
34584 msgid "Fortran 2003: ALLOCATABLE attribute at %C in a TYPE definition"
34585 msgstr "Fortran 2003: atributo ALLOCATABLE en %C en una definición TYPE"
34586
34587-#: fortran/decl.c:3617
34588+#: fortran/decl.c:3621
34589 #, gcc-internal-format, gfc-internal-format
34590 msgid "Attribute at %L is not allowed in a TYPE definition"
34591 msgstr "No se permite el atributo %L en una definición TYPE"
34592
34593-#: fortran/decl.c:3635
34594+#: fortran/decl.c:3639
34595 #, gcc-internal-format, gfc-internal-format
34596 msgid "Fortran 2003: Attribute %s at %L in a TYPE definition"
34597 msgstr "Fortran 2003: Atributo %s en %L en una definición TYPE"
34598
34599-#: fortran/decl.c:3646
34600+#: fortran/decl.c:3650
34601 #, gcc-internal-format, gfc-internal-format
34602 msgid "%s attribute at %L is not allowed outside of the specification part of a module"
34603 msgstr "No se permite el atributo %s en %L fuera de la parte de especificación de un módulo"
34604
34605-#: fortran/decl.c:3661
34606+#: fortran/decl.c:3665
34607 #, gcc-internal-format, gfc-internal-format
34608 msgid "Fortran 2003: ASYNCHRONOUS attribute at %C"
34609 msgstr "Fortran 2003: Atributo ASYNCHRONOUS en %C"
34610
34611-#: fortran/decl.c:3674
34612+#: fortran/decl.c:3678
34613 #, gcc-internal-format, gfc-internal-format
34614 msgid "Fortran 2008: CONTIGUOUS attribute at %C"
34615 msgstr "Fortran 2008: Atributo CONTIGUOUS en %C"
34616
34617-#: fortran/decl.c:3720 fortran/decl.c:6714
34618+#: fortran/decl.c:3724 fortran/decl.c:6713
34619 #, gcc-internal-format, gfc-internal-format
34620 msgid "PROTECTED at %C only allowed in specification part of a module"
34621 msgstr "Sólo se permite PROTECTED en %C en la parte de especificación de un módulo"
34622
34623-#: fortran/decl.c:3726
34624+#: fortran/decl.c:3730
34625 #, gcc-internal-format, gfc-internal-format
34626 msgid "Fortran 2003: PROTECTED attribute at %C"
34627 msgstr "Fortran 2003: Atributo PROTECTED en %C"
34628
34629-#: fortran/decl.c:3757
34630+#: fortran/decl.c:3761
34631 #, gcc-internal-format, gfc-internal-format
34632 msgid "Fortran 2003: VALUE attribute at %C"
34633 msgstr "Fortran 2003: Atributo VALUE en %C"
34634
34635-#: fortran/decl.c:3767
34636+#: fortran/decl.c:3771
34637 #, gcc-internal-format, gfc-internal-format
34638 msgid "Fortran 2003: VOLATILE attribute at %C"
34639 msgstr "Fortran 2003: Atributo VOLATILE en %C"
34640
34641-#: fortran/decl.c:3811
34642+#: fortran/decl.c:3816
34643 #, gcc-internal-format, gfc-internal-format
34644 msgid "Multiple identifiers provided with single NAME= specifier at %C"
34645 msgstr "Se proveen múltiples identificadores con un sólo especificador NAME= en %C"
34646
34647-#: fortran/decl.c:3910
34648+#: fortran/decl.c:3913
34649 #, gcc-internal-format, gfc-internal-format
34650 msgid "Implicitly declared BIND(C) function '%s' at %L may not be C interoperable"
34651 msgstr "La función implícitamente declarada BIND(C) '%s' en %L no puede ser interoperable con C"
34652
34653-#: fortran/decl.c:3931
34654+#: fortran/decl.c:3934
34655 #, gcc-internal-format, gfc-internal-format
34656 msgid "Variable '%s' in common block '%s' at %L may not be a C interoperable kind though common block '%s' is BIND(C)"
34657 msgstr "La variable '%s' en el bloque común '%s' en %L no puede ser un género interoperable con C ya que el bloque común '%s' es BIND(C)"
34658
34659-#: fortran/decl.c:3940
34660+#: fortran/decl.c:3943
34661 #, gcc-internal-format, gfc-internal-format
34662 msgid "Type declaration '%s' at %L is not C interoperable but it is BIND(C)"
34663 msgstr "La declaración de tipo '%s' en %L no es interoperable con C pero es BIND(C)"
34664
34665-#: fortran/decl.c:3944
34666+#: fortran/decl.c:3947
34667 #, gcc-internal-format, gfc-internal-format
34668 msgid "Variable '%s' at %L may not be a C interoperable kind but it is bind(c)"
34669 msgstr "La variable '%s' en %L no es de un género interoperable con C pero es BIND(C)"
34670
34671-#: fortran/decl.c:3956
34672+#: fortran/decl.c:3959
34673 #, gcc-internal-format, gfc-internal-format
34674 msgid "Variable '%s' in common block '%s' at %L cannot be declared with BIND(C) since it is not a global"
34675 msgstr "La variable '%s' en el bloque común '%s' en %L no se puede declarar con BIND(C) porque no es un global"
34676
34677-#: fortran/decl.c:3970
34678+#: fortran/decl.c:3973
34679 #, gcc-internal-format, gfc-internal-format
34680 msgid "Variable '%s' at %L cannot have both the POINTER and BIND(C) attributes"
34681 msgstr "La variable '%s' en %L no puede tener los atributos POINTER y BIND(C) al mismo tiempo"
34682
34683-#: fortran/decl.c:3978
34684+#: fortran/decl.c:3981
34685 #, gcc-internal-format, gfc-internal-format
34686 msgid "Variable '%s' at %L cannot have both the ALLOCATABLE and BIND(C) attributes"
34687 msgstr "La variable '%s' en %L no puede tener los atributos ALLOCATABLE y BIND(C) al mismo tiempo"
34688
34689-#: fortran/decl.c:3990
34690+#: fortran/decl.c:3993
34691 #, gcc-internal-format, gfc-internal-format
34692 msgid "Return type of BIND(C) function '%s' at %L cannot be an array"
34693 msgstr "El tipo de devolución de la función BIND(C) '%s' en %L no puede ser una matriz"
34694
34695-#: fortran/decl.c:3998
34696+#: fortran/decl.c:4001
34697 #, gcc-internal-format, gfc-internal-format
34698 msgid "Return type of BIND(C) function '%s' at %L cannot be a character string"
34699 msgstr "El tipo de devolución de la función BIND(C) '%s' en %L no puede ser una cadena de caracteres"
34700
34701 #. Use gfc_warning_now because we won't say that the symbol fails
34702 #. just because of this.
34703-#: fortran/decl.c:4009
34704+#: fortran/decl.c:4012
34705 #, gcc-internal-format, gfc-internal-format
34706 msgid "Symbol '%s' at %L is marked PRIVATE but has been given the binding label '%s'"
34707 msgstr "El símbolo '%s' en %L se marcó PRIVATE pero se le dio la etiqueta de asignación '%s'"
34708
34709-#: fortran/decl.c:4084
34710+#: fortran/decl.c:4088
34711 #, gcc-internal-format, gfc-internal-format
34712 msgid "Need either entity or common block name for attribute specification statement at %C"
34713 msgstr "Se necesita una entidad o un nombre de bloque común para la declaración de especificación de atributo en %C"
34714
34715-#: fortran/decl.c:4131
34716+#: fortran/decl.c:4135
34717 #, gcc-internal-format, gfc-internal-format
34718 msgid "Missing entity or common block name for attribute specification statement at %C"
34719 msgstr "Falta la entidad o el nombre de bloque común para la declaración de especificación de atributo en %C"
34720
34721 #. Now we have an error, which we signal, and then fix up
34722 #. because the knock-on is plain and simple confusing.
34723-#: fortran/decl.c:4240
34724+#: fortran/decl.c:4244
34725 #, gcc-internal-format, gfc-internal-format
34726 msgid "Derived type at %C has not been previously defined and so cannot appear in a derived type definition"
34727 msgstr "El tipo derivado en %C no se definió previamente y no puede aparecer en una definición de tipo derivado"
34728
34729-#: fortran/decl.c:4272
34730+#: fortran/decl.c:4276
34731 #, gcc-internal-format, gfc-internal-format
34732 msgid "Syntax error in data declaration at %C"
34733 msgstr "Error sintáctico en la declaración de datos en %C"
34734
34735-#: fortran/decl.c:4346
34736+#: fortran/decl.c:4350
34737 #, gcc-internal-format, gfc-internal-format
34738 msgid "Fortran 2008: IMPURE procedure at %C"
34739 msgstr "Fortran 2008: Procedimiento IMPURE en %C"
34740
34741-#: fortran/decl.c:4359
34742+#: fortran/decl.c:4363
34743 #, gcc-internal-format, gfc-internal-format
34744 msgid "PURE and IMPURE must not appear both at %C"
34745 msgstr "No deben aparecer PURE con IMPURE en %C"
34746
34747-#: fortran/decl.c:4465
34748+#: fortran/decl.c:4469
34749 #, gcc-internal-format, gfc-internal-format
34750 msgid "Name '%s' at %C is the name of the procedure"
34751 msgstr "El nombre '%s' en %C es el nombre del procedimiento"
34752
34753-#: fortran/decl.c:4477
34754+#: fortran/decl.c:4481
34755 #, gcc-internal-format, gfc-internal-format
34756 msgid "Unexpected junk in formal argument list at %C"
34757 msgstr "Basura inesperada en la lista de argumentos formales en %C"
34758
34759-#: fortran/decl.c:4494
34760+#: fortran/decl.c:4498
34761 #, gcc-internal-format, gfc-internal-format
34762 msgid "Duplicate symbol '%s' in formal argument list at %C"
34763 msgstr "Símbolo '%s' duplicado en la lista de argumentos formales en %C"
34764
34765-#: fortran/decl.c:4545
34766+#: fortran/decl.c:4549
34767 #, gcc-internal-format, gfc-internal-format
34768 msgid "RESULT variable at %C must be different than function name"
34769 msgstr "La variable RESULT en %C debe ser diferente que el nombre de la función"
34770
34771-#: fortran/decl.c:4622
34772+#: fortran/decl.c:4626
34773 #, gcc-internal-format, gfc-internal-format
34774 msgid "Unexpected junk after function declaration at %C"
34775 msgstr "Basura inesperada después de la declaración de la función en %C"
34776
34777-#: fortran/decl.c:4632 fortran/decl.c:5665
34778+#: fortran/decl.c:4636 fortran/decl.c:5670
34779 #, gcc-internal-format, gfc-internal-format
34780 msgid "Fortran 2008: BIND(C) attribute at %L may not be specified for an internal procedure"
34781 msgstr "Fortran 2008: El atributo BIND(C) en %L no se puede especificar para un procedimiento internal"
34782
34783-#: fortran/decl.c:4776
34784+#: fortran/decl.c:4780
34785 #, gcc-internal-format, gfc-internal-format
34786 msgid "Interface '%s' at %C may not be generic"
34787 msgstr "La interfaz '%s' en %C puede no ser generic"
34788
34789-#: fortran/decl.c:4782
34790+#: fortran/decl.c:4786
34791 #, gcc-internal-format, gfc-internal-format
34792 msgid "Interface '%s' at %C may not be a statement function"
34793 msgstr "La interfaz '%s' en %C puede no ser una función de declaración"
34794
34795-#: fortran/decl.c:4795
34796+#: fortran/decl.c:4799
34797 #, gcc-internal-format, gfc-internal-format
34798 msgid "Intrinsic procedure '%s' not allowed in PROCEDURE statement at %C"
34799 msgstr "El procedimiento intrínseco '%s' no se permite en la declaración PROCEDURE en %C"
34800
34801-#: fortran/decl.c:4850
34802+#: fortran/decl.c:4854
34803 #, gcc-internal-format, gfc-internal-format
34804 msgid "BIND(C) attribute at %C requires an interface with BIND(C)"
34805 msgstr "El atributo BIND(C) en %C requiere una interfaz con BIND(C)"
34806
34807-#: fortran/decl.c:4857
34808+#: fortran/decl.c:4861
34809 #, gcc-internal-format, gfc-internal-format
34810 msgid "BIND(C) procedure with NAME may not have POINTER attribute at %C"
34811 msgstr "El procedimiento BIND(C) con NAME no debe tener atributo POINTER en %C"
34812
34813-#: fortran/decl.c:4863
34814+#: fortran/decl.c:4867
34815 #, gcc-internal-format, gfc-internal-format
34816 msgid "Dummy procedure at %C may not have BIND(C) attribute with NAME"
34817 msgstr "El procedimiento dummy en %C no puede tener atributo BIND(C) con NAME"
34818
34819-#: fortran/decl.c:4886
34820+#: fortran/decl.c:4891
34821 #, gcc-internal-format, gfc-internal-format
34822 msgid "Procedure '%s' at %L already has basic type of %s"
34823 msgstr "El procedimiento '%s' en %L ya tenía el tipo básico de %s"
34824
34825-#: fortran/decl.c:4935 fortran/decl.c:5103 fortran/decl.c:8196
34826+#: fortran/decl.c:4940 fortran/decl.c:5108 fortran/decl.c:8195
34827 #, gcc-internal-format, gfc-internal-format
34828 msgid "Syntax error in PROCEDURE statement at %C"
34829 msgstr "Error sintáctico en la declaración PROCEDURE en %C"
34830
34831-#: fortran/decl.c:4984 fortran/decl.c:8097
34832+#: fortran/decl.c:4989 fortran/decl.c:8096
34833 #, gcc-internal-format, gfc-internal-format
34834 msgid "Expected '::' after binding-attributes at %C"
34835 msgstr "Se esperaba '::' después de los atributos de enlazado en %C"
34836
34837-#: fortran/decl.c:4991
34838+#: fortran/decl.c:4996
34839 #, gcc-internal-format, gfc-internal-format
34840 msgid "NOPASS or explicit interface required at %C"
34841 msgstr "Se requiere NOPASS o una interfaz explícita en %C"
34842
34843-#: fortran/decl.c:4995
34844+#: fortran/decl.c:5000
34845 #, gcc-internal-format, gfc-internal-format
34846 msgid "Fortran 2003: Procedure pointer component at %C"
34847 msgstr "Fortran 2003: Procedimiento de componente puntero en %C"
34848
34849-#: fortran/decl.c:5060
34850+#: fortran/decl.c:5065
34851 #, gcc-internal-format, gfc-internal-format
34852 msgid "Syntax error in procedure pointer component at %C"
34853 msgstr "Error sintáctico en el procedimiento de componente puntero en %C"
34854
34855-#: fortran/decl.c:5077
34856+#: fortran/decl.c:5082
34857 #, gcc-internal-format, gfc-internal-format
34858 msgid "PROCEDURE at %C must be in a generic interface"
34859 msgstr "PROCEDURE en %C debe estar en una interfaz genérica"
34860
34861-#: fortran/decl.c:5143
34862+#: fortran/decl.c:5148
34863 #, gcc-internal-format, gfc-internal-format
34864 msgid "Fortran 2003: PROCEDURE statement at %C"
34865 msgstr "Fortran 2003: Declaración PROCEDURE en %C"
34866
34867-#: fortran/decl.c:5211
34868+#: fortran/decl.c:5216
34869 #, gcc-internal-format, gfc-internal-format
34870 msgid "Expected formal argument list in function definition at %C"
34871 msgstr "Se esperaba una lista de argumentos formales en la definición de la función en %C"
34872
34873-#: fortran/decl.c:5235 fortran/decl.c:5239 fortran/decl.c:5443
34874-#: fortran/decl.c:5447 fortran/decl.c:5633 fortran/decl.c:5637
34875+#: fortran/decl.c:5240 fortran/decl.c:5244 fortran/decl.c:5448
34876+#: fortran/decl.c:5452 fortran/decl.c:5638 fortran/decl.c:5642
34877 #: fortran/symbol.c:1588
34878 #, gcc-internal-format, gfc-internal-format
34879 msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
34880 msgstr "El atributo BIND(C) en %L sólo se puede usar para variables o bloques comunes"
34881
34882-#: fortran/decl.c:5354
34883+#: fortran/decl.c:5359
34884 #, gcc-internal-format, gfc-internal-format
34885 msgid "Fortran 2008 obsolescent feature: ENTRY statement at %C"
34886 msgstr "Característica obsoleta de Fortran 2008: declaración ENTRY en %C"
34887
34888-#: fortran/decl.c:5364
34889+#: fortran/decl.c:5369
34890 #, gcc-internal-format, gfc-internal-format
34891 msgid "ENTRY statement at %C cannot appear within a PROGRAM"
34892 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un PROGRAM"
34893
34894-#: fortran/decl.c:5367
34895+#: fortran/decl.c:5372
34896 #, gcc-internal-format, gfc-internal-format
34897 msgid "ENTRY statement at %C cannot appear within a MODULE"
34898 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un MODULE"
34899
34900-#: fortran/decl.c:5370
34901+#: fortran/decl.c:5375
34902 #, gcc-internal-format, gfc-internal-format
34903 msgid "ENTRY statement at %C cannot appear within a BLOCK DATA"
34904 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un BLOCK DATA"
34905
34906-#: fortran/decl.c:5374
34907+#: fortran/decl.c:5379
34908 #, gcc-internal-format, gfc-internal-format
34909 msgid "ENTRY statement at %C cannot appear within an INTERFACE"
34910 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un INTERFACE"
34911
34912-#: fortran/decl.c:5378
34913+#: fortran/decl.c:5383
34914 #, gcc-internal-format, gfc-internal-format
34915 msgid "ENTRY statement at %C cannot appear within a DERIVED TYPE block"
34916 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque DERIVED TYPE"
34917
34918-#: fortran/decl.c:5382
34919+#: fortran/decl.c:5387
34920 #, gcc-internal-format, gfc-internal-format
34921 msgid "ENTRY statement at %C cannot appear within an IF-THEN block"
34922 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque IF-THEN"
34923
34924-#: fortran/decl.c:5387
34925+#: fortran/decl.c:5392
34926 #, gcc-internal-format, gfc-internal-format
34927 msgid "ENTRY statement at %C cannot appear within a DO block"
34928 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque DO"
34929
34930-#: fortran/decl.c:5391
34931+#: fortran/decl.c:5396
34932 #, gcc-internal-format, gfc-internal-format
34933 msgid "ENTRY statement at %C cannot appear within a SELECT block"
34934 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque SELECT"
34935
34936-#: fortran/decl.c:5395
34937+#: fortran/decl.c:5400
34938 #, gcc-internal-format, gfc-internal-format
34939 msgid "ENTRY statement at %C cannot appear within a FORALL block"
34940 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque FORALL"
34941
34942-#: fortran/decl.c:5399
34943+#: fortran/decl.c:5404
34944 #, gcc-internal-format, gfc-internal-format
34945 msgid "ENTRY statement at %C cannot appear within a WHERE block"
34946 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque WHERE"
34947
34948-#: fortran/decl.c:5403
34949+#: fortran/decl.c:5408
34950 #, gcc-internal-format, gfc-internal-format
34951 msgid "ENTRY statement at %C cannot appear within a contained subprogram"
34952 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un subprograma contenido"
34953
34954-#: fortran/decl.c:5421
34955+#: fortran/decl.c:5426
34956 #, gcc-internal-format, gfc-internal-format
34957 msgid "ENTRY statement at %C cannot appear in a contained procedure"
34958 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un procedimiento contenido"
34959
34960-#: fortran/decl.c:5475 fortran/decl.c:5673
34961+#: fortran/decl.c:5480 fortran/decl.c:5678
34962 #, gcc-internal-format, gfc-internal-format
34963 msgid "Missing required parentheses before BIND(C) at %C"
34964 msgstr "Faltan los paréntesis requeridos antes de BIND(C) en %C"
34965
34966-#: fortran/decl.c:5735 fortran/decl.c:5751
34967+#: fortran/decl.c:5736 fortran/decl.c:5752
34968 #, gcc-internal-format, gfc-internal-format
34969 msgid "Syntax error in NAME= specifier for binding label at %C"
34970 msgstr "Error sintáctico en el especificador NAME= para la etiqueta de asignación %C"
34971
34972-#: fortran/decl.c:5766
34973+#: fortran/decl.c:5767
34974 #, gcc-internal-format, gfc-internal-format
34975 msgid "Missing closing quote '\"' for binding label at %C"
34976 msgstr "Falta la comilla '\"' que cierra en la etiqueta de asignación en %C"
34977
34978-#: fortran/decl.c:5775
34979+#: fortran/decl.c:5776
34980 #, gcc-internal-format, gfc-internal-format
34981 msgid "Missing closing quote ''' for binding label at %C"
34982 msgstr "Falta la comilla ''' que cierra en la etiqueta de asignación en %C"
34983
34984-#: fortran/decl.c:5785
34985+#: fortran/decl.c:5786
34986 #, gcc-internal-format, gfc-internal-format
34987 msgid "Missing closing paren for binding label at %C"
34988 msgstr "Falta el paréntesis que cierra en la etiqueta de asignación en %C"
34989
34990-#: fortran/decl.c:5791
34991+#: fortran/decl.c:5792
34992 #, gcc-internal-format, gfc-internal-format
34993 msgid "No binding name is allowed in BIND(C) at %C"
34994 msgstr "No se permite un nombre de enlazado en BIND(C) en %C"
34995
34996-#: fortran/decl.c:5797
34997+#: fortran/decl.c:5798
34998 #, gcc-internal-format, gfc-internal-format
34999 msgid "For dummy procedure %s, no binding name is allowed in BIND(C) at %C"
35000 msgstr "Para el procedimiento dummy %s, no se permite un nombre de enlazado en BIND(C) en %C"
35001
35002-#: fortran/decl.c:5828
35003+#: fortran/decl.c:5827
35004 #, gcc-internal-format, gfc-internal-format
35005 msgid "NAME not allowed on BIND(C) for ABSTRACT INTERFACE at %C"
35006 msgstr "No se permite NAME en BIND(C) para ABSTRACT INTERFACE en %C"
35007
35008-#: fortran/decl.c:6033
35009+#: fortran/decl.c:6032
35010 #, gcc-internal-format, gfc-internal-format
35011 msgid "Unexpected END statement at %C"
35012 msgstr "Declaración END inesperada en %C"
35013
35014-#: fortran/decl.c:6041
35015+#: fortran/decl.c:6040
35016 #, gcc-internal-format, gfc-internal-format
35017 msgid "Fortran 2008: END statement instead of %s statement at %L"
35018 msgstr "Fortran 2008: Declaración END en lugar de una declaración %s en %L"
35019
35020 #. We would have required END [something].
35021-#: fortran/decl.c:6049
35022+#: fortran/decl.c:6048
35023 #, gcc-internal-format, gfc-internal-format
35024 msgid "%s statement expected at %L"
35025 msgstr "Se esperaba %s en la declaración en %L"
35026
35027-#: fortran/decl.c:6060
35028+#: fortran/decl.c:6059
35029 #, gcc-internal-format, gfc-internal-format
35030 msgid "Expecting %s statement at %C"
35031 msgstr "Se esperaba la declaración %s en %C"
35032
35033-#: fortran/decl.c:6076
35034+#: fortran/decl.c:6075
35035 #, gcc-internal-format, gfc-internal-format
35036 msgid "Expected block name of '%s' in %s statement at %C"
35037 msgstr "Se esperaba el nombre de bloque de '%s' en la declaración %s en %C"
35038
35039-#: fortran/decl.c:6093
35040+#: fortran/decl.c:6092
35041 #, gcc-internal-format, gfc-internal-format
35042 msgid "Expected terminating name at %C"
35043 msgstr "Se esperaba un nombre terminal en %C"
35044
35045-#: fortran/decl.c:6102 fortran/decl.c:6110
35046+#: fortran/decl.c:6101 fortran/decl.c:6109
35047 #, gcc-internal-format, gfc-internal-format
35048 msgid "Expected label '%s' for %s statement at %C"
35049 msgstr "Se esperaba la etiqueta '%s' para la declaración %s en %C"
35050
35051-#: fortran/decl.c:6175
35052+#: fortran/decl.c:6174
35053 #, gcc-internal-format, gfc-internal-format
35054 msgid "Missing array specification at %L in DIMENSION statement"
35055 msgstr "Falta la especificación de matriz en %L en la declaración DIMENSION"
35056
35057-#: fortran/decl.c:6183
35058+#: fortran/decl.c:6182
35059 #, gcc-internal-format, gfc-internal-format
35060 msgid "Dimensions specified for %s at %L after its initialisation"
35061 msgstr "Se especificarion dimensiones para %s en %L después de su inicialización"
35062
35063-#: fortran/decl.c:6191
35064+#: fortran/decl.c:6190
35065 #, gcc-internal-format, gfc-internal-format
35066 msgid "Missing array specification at %L in CODIMENSION statement"
35067 msgstr "Falta la especificación de matriz en %L en la declaración CODIMENSION"
35068
35069-#: fortran/decl.c:6200
35070+#: fortran/decl.c:6199
35071 #, gcc-internal-format, gfc-internal-format
35072 msgid "Array specification must be deferred at %L"
35073 msgstr "La especificación de matriz se debe diferir en %L"
35074
35075-#: fortran/decl.c:6299
35076+#: fortran/decl.c:6298
35077 #, gcc-internal-format, gfc-internal-format
35078 msgid "Unexpected character in variable list at %C"
35079 msgstr "Carácter inesperado en la lista de variables en %C"
35080
35081-#: fortran/decl.c:6336
35082+#: fortran/decl.c:6335
35083 #, gcc-internal-format, gfc-internal-format
35084 msgid "Expected '(' at %C"
35085 msgstr "Se esperaba '(' en %C"
35086
35087-#: fortran/decl.c:6350 fortran/decl.c:6390
35088+#: fortran/decl.c:6349 fortran/decl.c:6389
35089 #, gcc-internal-format, gfc-internal-format
35090 msgid "Expected variable name at %C"
35091 msgstr "se esperaba un nombre variable en %C"
35092
35093-#: fortran/decl.c:6366
35094+#: fortran/decl.c:6365
35095 #, gcc-internal-format, gfc-internal-format
35096 msgid "Cray pointer at %C must be an integer"
35097 msgstr "El puntero Cray en %C debe ser un entero"
35098
35099-#: fortran/decl.c:6370
35100+#: fortran/decl.c:6369
35101 #, gcc-internal-format, gfc-internal-format
35102 msgid "Cray pointer at %C has %d bytes of precision; memory addresses require %d bytes"
35103 msgstr "El puntero Cray en %C tiene %d bytes de precisión; las direcciones de memoria requieren %d bytes"
35104
35105-#: fortran/decl.c:6376
35106+#: fortran/decl.c:6375
35107 #, gcc-internal-format, gfc-internal-format
35108 msgid "Expected \",\" at %C"
35109 msgstr "Se esperaba \",\" en %C"
35110
35111-#: fortran/decl.c:6439
35112+#: fortran/decl.c:6438
35113 #, gcc-internal-format, gfc-internal-format
35114 msgid "Expected \")\" at %C"
35115 msgstr "Se esperaba \")\" en %C"
35116
35117-#: fortran/decl.c:6451
35118+#: fortran/decl.c:6450
35119 #, gcc-internal-format, gfc-internal-format
35120 msgid "Expected \",\" or end of statement at %C"
35121 msgstr "Se esperaba \",\" o el final de la declaración en %C"
35122
35123-#: fortran/decl.c:6477
35124+#: fortran/decl.c:6476
35125 #, gcc-internal-format, gfc-internal-format
35126 msgid "INTENT is not allowed inside of BLOCK at %C"
35127 msgstr "No se permite INTENT dentro de BLOCK en %C"
35128
35129-#: fortran/decl.c:6509
35130+#: fortran/decl.c:6508
35131 #, gcc-internal-format, gfc-internal-format
35132 msgid "OPTIONAL is not allowed inside of BLOCK at %C"
35133 msgstr "No se permite OPTIONAL dentro de BLOCK en %C"
35134
35135-#: fortran/decl.c:6528
35136+#: fortran/decl.c:6527
35137 #, gcc-internal-format, gfc-internal-format
35138 msgid "Cray pointer declaration at %C requires -fcray-pointer flag"
35139 msgstr "La declaración de punteros Cray en %C requiere la opción -fcray-pointer"
35140
35141-#: fortran/decl.c:6567
35142+#: fortran/decl.c:6566
35143 #, gcc-internal-format, gfc-internal-format
35144 msgid "Fortran 2008: CONTIGUOUS statement at %C"
35145 msgstr "Fortran 2008: Declaración CONTIGUOUS en %C"
35146
35147-#: fortran/decl.c:6665
35148+#: fortran/decl.c:6664
35149 #, gcc-internal-format, gfc-internal-format
35150 msgid "Access specification of the %s operator at %C has already been specified"
35151 msgstr "La especificación de acceso del operador %s en %C ya se había especificado"
35152
35153-#: fortran/decl.c:6682
35154+#: fortran/decl.c:6681
35155 #, gcc-internal-format, gfc-internal-format
35156 msgid "Access specification of the .%s. operator at %C has already been specified"
35157 msgstr "La especificación de acceso del operador .%s. en %C ya se había especificado"
35158
35159-#: fortran/decl.c:6720
35160+#: fortran/decl.c:6719
35161 #, gcc-internal-format, gfc-internal-format
35162 msgid "Fortran 2003: PROTECTED statement at %C"
35163 msgstr "Fortran 2003: Declaración PROTECTED en %C"
35164
35165-#: fortran/decl.c:6760
35166+#: fortran/decl.c:6759
35167 #, gcc-internal-format, gfc-internal-format
35168 msgid "Syntax error in PROTECTED statement at %C"
35169 msgstr "Error sintáctico en la declaración PROTECTED en %C"
35170
35171-#: fortran/decl.c:6784
35172+#: fortran/decl.c:6783
35173 #, gcc-internal-format, gfc-internal-format
35174 msgid "PRIVATE statement at %C is only allowed in the specification part of a module"
35175 msgstr "Sólo se permite la declaración PRIVATE en %C en la parte de especificación de un módulo"
35176
35177-#: fortran/decl.c:6821
35178+#: fortran/decl.c:6820
35179 #, gcc-internal-format, gfc-internal-format
35180 msgid "PUBLIC statement at %C is only allowed in the specification part of a module"
35181 msgstr "Sólo se permite la declaración PRIVATE en %C en la parte de especificación de un módulo"
35182
35183-#: fortran/decl.c:6849
35184+#: fortran/decl.c:6848
35185 #, gcc-internal-format, gfc-internal-format
35186 msgid "Expected variable name at %C in PARAMETER statement"
35187 msgstr "Se esperaba un nombre de variable en %C en la declaración PARAMETER"
35188
35189-#: fortran/decl.c:6856
35190+#: fortran/decl.c:6855
35191 #, gcc-internal-format, gfc-internal-format
35192 msgid "Expected = sign in PARAMETER statement at %C"
35193 msgstr "Se esperaba un signo = en la declaración PARAMETER en %C"
35194
35195-#: fortran/decl.c:6862
35196+#: fortran/decl.c:6861
35197 #, gcc-internal-format, gfc-internal-format
35198 msgid "Expected expression at %C in PARAMETER statement"
35199 msgstr "Se esperaba una expresión en %C en la declaración PARAMETER"
35200
35201-#: fortran/decl.c:6882
35202+#: fortran/decl.c:6881
35203 #, gcc-internal-format, gfc-internal-format
35204 msgid "Initializing already initialized variable at %C"
35205 msgstr "Se inicializa una variable ya inicializada en %C"
35206
35207-#: fortran/decl.c:6917
35208+#: fortran/decl.c:6916
35209 #, gcc-internal-format, gfc-internal-format
35210 msgid "Unexpected characters in PARAMETER statement at %C"
35211 msgstr "Caracteres inesperados en la declaración PARAMETER en %C"
35212
35213-#: fortran/decl.c:6941
35214+#: fortran/decl.c:6940
35215 #, gcc-internal-format, gfc-internal-format
35216 msgid "Blanket SAVE statement at %C follows previous SAVE statement"
35217 msgstr "Declaración SAVE incondicional en %C después de una declaración SAVE previa"
35218
35219-#: fortran/decl.c:6953
35220+#: fortran/decl.c:6952
35221 #, gcc-internal-format, gfc-internal-format
35222 msgid "SAVE statement at %C follows blanket SAVE statement"
35223 msgstr "Declaración SAVE en %C después de una declaración SAVE incondicional"
35224
35225-#: fortran/decl.c:7000
35226+#: fortran/decl.c:6999
35227 #, gcc-internal-format, gfc-internal-format
35228 msgid "Syntax error in SAVE statement at %C"
35229 msgstr "Error sintáctico en la declaración SAVE en %C"
35230
35231-#: fortran/decl.c:7014
35232+#: fortran/decl.c:7013
35233 #, gcc-internal-format, gfc-internal-format
35234 msgid "VALUE is not allowed inside of BLOCK at %C"
35235 msgstr "No se permite VALUE dentro de BLOCK en %C"
35236
35237-#: fortran/decl.c:7018
35238+#: fortran/decl.c:7017
35239 #, gcc-internal-format, gfc-internal-format
35240 msgid "Fortran 2003: VALUE statement at %C"
35241 msgstr "Fortran 2003: Declaración VALUE en %C"
35242
35243-#: fortran/decl.c:7058
35244+#: fortran/decl.c:7057
35245 #, gcc-internal-format, gfc-internal-format
35246 msgid "Syntax error in VALUE statement at %C"
35247 msgstr "Error sintáctico en la declaración VALUE en %C"
35248
35249-#: fortran/decl.c:7069
35250+#: fortran/decl.c:7068
35251 #, gcc-internal-format, gfc-internal-format
35252 msgid "Fortran 2003: VOLATILE statement at %C"
35253 msgstr "Fortran 2003: Declaración VOLATILE en %C"
35254
35255-#: fortran/decl.c:7093
35256+#: fortran/decl.c:7092
35257 #, gcc-internal-format, gfc-internal-format
35258 msgid "Specifying VOLATILE for coarray variable '%s' at %C, which is use-/host-associated"
35259 msgstr "Se especifica VOLATILE para la variable de comatriz '%s' en %C, la cual es asociada a uso/anfitrión"
35260
35261-#: fortran/decl.c:7119
35262+#: fortran/decl.c:7118
35263 #, gcc-internal-format, gfc-internal-format
35264 msgid "Syntax error in VOLATILE statement at %C"
35265 msgstr "Error sintáctico en la declaración VOLATILE en %C"
35266
35267-#: fortran/decl.c:7130
35268+#: fortran/decl.c:7129
35269 #, gcc-internal-format, gfc-internal-format
35270 msgid "Fortran 2003: ASYNCHRONOUS statement at %C"
35271 msgstr "Fortran 2003: Declaración ASYNCHRONOUS en %C"
35272
35273-#: fortran/decl.c:7172
35274+#: fortran/decl.c:7171
35275 #, gcc-internal-format, gfc-internal-format
35276 msgid "Syntax error in ASYNCHRONOUS statement at %C"
35277 msgstr "Error sintáctico en la declaración ASYNCHRONOUS en %C"
35278
35279-#: fortran/decl.c:7196
35280+#: fortran/decl.c:7195
35281 #, gcc-internal-format, gfc-internal-format
35282 msgid "MODULE PROCEDURE at %C must be in a generic module interface"
35283 msgstr "MODULE PROCEDURE en %C debe estar en una interfaz genérica de módulo"
35284
35285-#: fortran/decl.c:7221
35286+#: fortran/decl.c:7220
35287 #, gcc-internal-format, gfc-internal-format
35288 msgid "Fortran 2008: double colon in MODULE PROCEDURE statement at %L"
35289 msgstr "Fortran 2008: dos puntos dobles en la declaración MODULE PROCEDURE en %L"
35290
35291-#: fortran/decl.c:7255
35292+#: fortran/decl.c:7254
35293 #, gcc-internal-format, gfc-internal-format
35294 msgid "Intrinsic procedure at %L cannot be a MODULE PROCEDURE"
35295 msgstr "El procedimiento intrínseco en %L no puede ser un MODULE PROCEDURE"
35296
35297-#: fortran/decl.c:7304
35298+#: fortran/decl.c:7303
35299 #, gcc-internal-format, gfc-internal-format
35300 msgid "Ambiguous symbol in TYPE definition at %C"
35301 msgstr "Símbolo ambiguo en la definición TYPE en %C"
35302
35303-#: fortran/decl.c:7310
35304+#: fortran/decl.c:7309
35305 #, gcc-internal-format, gfc-internal-format
35306 msgid "No such symbol in TYPE definition at %C"
35307 msgstr "No existe ese símbolo en la definición TYPE en %C"
35308
35309-#: fortran/decl.c:7318
35310+#: fortran/decl.c:7317
35311 #, gcc-internal-format, gfc-internal-format
35312 msgid "'%s' in EXTENDS expression at %C is not a derived type"
35313 msgstr "'%s' en la expresión EXTENDS en %C no es un tipo derivado"
35314
35315-#: fortran/decl.c:7325
35316+#: fortran/decl.c:7324
35317 #, gcc-internal-format, gfc-internal-format
35318 msgid "'%s' cannot be extended at %C because it is BIND(C)"
35319 msgstr "'%s' no se puede extender en %C porque es BIND(C)"
35320
35321-#: fortran/decl.c:7332
35322+#: fortran/decl.c:7331
35323 #, gcc-internal-format, gfc-internal-format
35324 msgid "'%s' cannot be extended at %C because it is a SEQUENCE type"
35325 msgstr "'%s' no se puede extender en %C porque es un tipo SEQUENCE"
35326
35327-#: fortran/decl.c:7355
35328+#: fortran/decl.c:7354
35329 #, gcc-internal-format, gfc-internal-format
35330 msgid "Derived type at %C can only be PRIVATE in the specification part of a module"
35331 msgstr "El tipo derivado en %C sólo puede ser PRIVATE en la parte de especificación de un módulo"
35332
35333-#: fortran/decl.c:7367
35334+#: fortran/decl.c:7366
35335 #, gcc-internal-format, gfc-internal-format
35336 msgid "Derived type at %C can only be PUBLIC in the specification part of a module"
35337 msgstr "El tipo derivado en %C sólo puede ser PUBLIC en la parte de especificación de un módulo"
35338
35339-#: fortran/decl.c:7388
35340+#: fortran/decl.c:7387
35341 #, gcc-internal-format, gfc-internal-format
35342 msgid "Fortran 2003: ABSTRACT type at %C"
35343 msgstr "Fortran 2003: Tipo ABSTRACT en %C"
35344
35345-#: fortran/decl.c:7453
35346+#: fortran/decl.c:7452
35347 #, gcc-internal-format, gfc-internal-format
35348 msgid "Expected :: in TYPE definition at %C"
35349 msgstr "Se esperaba :: en la definición TYPE en %C"
35350
35351-#: fortran/decl.c:7464
35352+#: fortran/decl.c:7463
35353 #, gcc-internal-format, gfc-internal-format
35354 msgid "Type name '%s' at %C cannot be the same as an intrinsic type"
35355 msgstr "El nombre de tipo '%s' en %C no puede ser el mismo que un tipo intrínseco"
35356
35357-#: fortran/decl.c:7474
35358+#: fortran/decl.c:7473
35359 #, gcc-internal-format, gfc-internal-format
35360 msgid "Derived type name '%s' at %C already has a basic type of %s"
35361 msgstr "El nombre de tipo derivado '%s' en %C ya tiene un tipo básico de %s"
35362
35363-#: fortran/decl.c:7491
35364+#: fortran/decl.c:7490
35365 #, gcc-internal-format, gfc-internal-format
35366 msgid "Derived type definition of '%s' at %C has already been defined"
35367 msgstr "La definición del tipo derivado de '%s' en %C ya se había definido"
35368
35369-#: fortran/decl.c:7599
35370+#: fortran/decl.c:7598
35371 #, gcc-internal-format, gfc-internal-format
35372 msgid "Cray Pointee at %C cannot be assumed shape array"
35373 msgstr "El Apuntado Cray en %C no puede ser una matriz de forma asumida"
35374
35375-#: fortran/decl.c:7619
35376+#: fortran/decl.c:7618
35377 #, gcc-internal-format, gfc-internal-format
35378 msgid "Fortran 2003: ENUM and ENUMERATOR at %C"
35379 msgstr "Fortran 2003: ENUM y ENUMERATOR en %C"
35380
35381-#: fortran/decl.c:7652
35382+#: fortran/decl.c:7651
35383 #, gcc-internal-format, gfc-internal-format
35384 msgid "Enumerator exceeds the C integer type at %C"
35385 msgstr "El enumerador excede el tipo entero de C en %C"
35386
35387-#: fortran/decl.c:7731
35388+#: fortran/decl.c:7730
35389 #, gcc-internal-format, gfc-internal-format
35390 msgid "ENUMERATOR %L not initialized with integer expression"
35391 msgstr "ENUMERATOR %L no se inicializó con una expresión entera"
35392
35393-#: fortran/decl.c:7779
35394+#: fortran/decl.c:7778
35395 #, gcc-internal-format, gfc-internal-format
35396 msgid "ENUM definition statement expected before %C"
35397 msgstr "Se esperaba una declaración de definición ENUM antes de %C"
35398
35399-#: fortran/decl.c:7815
35400+#: fortran/decl.c:7814
35401 #, gcc-internal-format, gfc-internal-format
35402 msgid "Syntax error in ENUMERATOR definition at %C"
35403 msgstr "Error sintáctico en la definición ENUMERATOR en %C"
35404
35405-#: fortran/decl.c:7862 fortran/decl.c:7877
35406+#: fortran/decl.c:7861 fortran/decl.c:7876
35407 #, gcc-internal-format, gfc-internal-format
35408 msgid "Duplicate access-specifier at %C"
35409 msgstr "Especificador de acceso duplicado en %C"
35410
35411-#: fortran/decl.c:7897
35412+#: fortran/decl.c:7896
35413 #, gcc-internal-format, gfc-internal-format
35414 msgid "Binding attributes already specify passing, illegal NOPASS at %C"
35415 msgstr "Los atributos de enlace ya especifican paso, NOPASS ilegal en %C"
35416
35417-#: fortran/decl.c:7917
35418+#: fortran/decl.c:7916
35419 #, gcc-internal-format, gfc-internal-format
35420 msgid "Binding attributes already specify passing, illegal PASS at %C"
35421 msgstr "Los atributos de enlace ya especifican paso, PASS ilegal en %C"
35422
35423-#: fortran/decl.c:7944
35424+#: fortran/decl.c:7943
35425 #, gcc-internal-format, gfc-internal-format
35426 msgid "Duplicate POINTER attribute at %C"
35427 msgstr "Atributo POINTER duplicado en %C"
35428
35429-#: fortran/decl.c:7962
35430+#: fortran/decl.c:7961
35431 #, gcc-internal-format, gfc-internal-format
35432 msgid "Duplicate NON_OVERRIDABLE at %C"
35433 msgstr "NON_OVERRIDABLE duplicado en %C"
35434
35435-#: fortran/decl.c:7978
35436+#: fortran/decl.c:7977
35437 #, gcc-internal-format, gfc-internal-format
35438 msgid "Duplicate DEFERRED at %C"
35439 msgstr "DEFERRED duplicado en %C"
35440
35441-#: fortran/decl.c:7991
35442+#: fortran/decl.c:7990
35443 #, gcc-internal-format, gfc-internal-format
35444 msgid "Expected access-specifier at %C"
35445 msgstr "Se esperaba un especificador de acceso en %C"
35446
35447-#: fortran/decl.c:7993
35448+#: fortran/decl.c:7992
35449 #, gcc-internal-format, gfc-internal-format
35450 msgid "Expected binding attribute at %C"
35451 msgstr "Se esperaba un atributo de enlace en %C"
35452
35453-#: fortran/decl.c:8001
35454+#: fortran/decl.c:8000
35455 #, gcc-internal-format, gfc-internal-format
35456 msgid "NON_OVERRIDABLE and DEFERRED can't both appear at %C"
35457 msgstr "No pueden aparecer NON_OVERRIDABLE y DEFERRED al mismo tiempo en %C"
35458
35459-#: fortran/decl.c:8013
35460+#: fortran/decl.c:8012
35461 #, gcc-internal-format, gfc-internal-format
35462 msgid "POINTER attribute is required for procedure pointer component at %C"
35463 msgstr "Se requiere el atributo POINTER para el procedimiento de componente puntero en %C"
35464
35465-#: fortran/decl.c:8055
35466+#: fortran/decl.c:8054
35467 #, gcc-internal-format, gfc-internal-format
35468 msgid "Interface-name expected after '(' at %C"
35469 msgstr "Se esperaba un nombre de interfaz después de '(' en %C"
35470
35471-#: fortran/decl.c:8061
35472+#: fortran/decl.c:8060
35473 #, gcc-internal-format, gfc-internal-format
35474 msgid "')' expected at %C"
35475 msgstr "Se esperaba ')' en %C"
35476
35477-#: fortran/decl.c:8081
35478+#: fortran/decl.c:8080
35479 #, gcc-internal-format, gfc-internal-format
35480 msgid "Interface must be specified for DEFERRED binding at %C"
35481 msgstr "Se debe especificar una interfaz para el enlace DEFERRED en %C"
35482
35483-#: fortran/decl.c:8086
35484+#: fortran/decl.c:8085
35485 #, gcc-internal-format, gfc-internal-format
35486 msgid "PROCEDURE(interface) at %C should be declared DEFERRED"
35487 msgstr "PROCEDURE(interface) en %C se debe declarar DEFERRED"
35488
35489-#: fortran/decl.c:8109
35490+#: fortran/decl.c:8108
35491 #, gcc-internal-format, gfc-internal-format
35492 msgid "Expected binding name at %C"
35493 msgstr "Se esperaba un nombre de enlace en %C"
35494
35495-#: fortran/decl.c:8113
35496+#: fortran/decl.c:8112
35497 #, gcc-internal-format, gfc-internal-format
35498 msgid "Fortran 2008: PROCEDURE list at %C"
35499 msgstr "Fortran 2008: Lista PROCEDURE en %C"
35500
35501-#: fortran/decl.c:8126
35502+#: fortran/decl.c:8125
35503 #, gcc-internal-format, gfc-internal-format
35504 msgid "'=> target' is invalid for DEFERRED binding at %C"
35505 msgstr "'=> objetivo' es inválido para el enlace DEFERRED en %C"
35506
35507-#: fortran/decl.c:8132
35508+#: fortran/decl.c:8131
35509 #, gcc-internal-format, gfc-internal-format
35510 msgid "'::' needed in PROCEDURE binding with explicit target at %C"
35511 msgstr "Se necesita '::' en el enlace PROCEDURE con objetivo explícito en %C"
35512
35513-#: fortran/decl.c:8142
35514+#: fortran/decl.c:8141
35515 #, gcc-internal-format, gfc-internal-format
35516 msgid "Expected binding target after '=>' at %C"
35517 msgstr "Se esperaba un objetivo de enlace después de '=>' en %C"
35518
35519-#: fortran/decl.c:8159
35520+#: fortran/decl.c:8158
35521 #, gcc-internal-format, gfc-internal-format
35522 msgid "Type '%s' containing DEFERRED binding at %C is not ABSTRACT"
35523 msgstr "El tipo '%s' que contiene el enlace DEFERRED en %C no es ABSTRACT"
35524
35525-#: fortran/decl.c:8170
35526+#: fortran/decl.c:8169
35527 #, gcc-internal-format, gfc-internal-format
35528 msgid "There is already a procedure with binding name '%s' for the derived type '%s' at %C"
35529 msgstr "Ya existe un procedimiento con nombre de enlazado '%s' para el tipo derivado '%s' en %C"
35530
35531-#: fortran/decl.c:8219
35532+#: fortran/decl.c:8218
35533 #, gcc-internal-format, gfc-internal-format
35534 msgid "GENERIC at %C must be inside a derived-type CONTAINS"
35535 msgstr "GENERIC en %C debe estar dentro de un tipo derivado CONTAINS"
35536
35537-#: fortran/decl.c:8239
35538+#: fortran/decl.c:8238
35539 #, gcc-internal-format, gfc-internal-format
35540 msgid "Expected '::' at %C"
35541 msgstr "Se esperaba '::' en %C"
35542
35543-#: fortran/decl.c:8251
35544+#: fortran/decl.c:8250
35545 #, gcc-internal-format, gfc-internal-format
35546 msgid "Expected generic name or operator descriptor at %C"
35547 msgstr "Se esperaba un nombre genérico o un descriptor de operador en %C"
35548
35549-#: fortran/decl.c:8277
35550+#: fortran/decl.c:8276
35551 #, gcc-internal-format, gfc-internal-format
35552 msgid "Expected '=>' at %C"
35553 msgstr "Se esperaba '=>' en %C"
35554
35555-#: fortran/decl.c:8319
35556+#: fortran/decl.c:8318
35557 #, gcc-internal-format, gfc-internal-format
35558 msgid "There's already a non-generic procedure with binding name '%s' for the derived type '%s' at %C"
35559 msgstr "Ya existe un procedimiento que no es genérico con el nombre de enlace '%s' para el tipo derivado '%s' en %C"
35560
35561-#: fortran/decl.c:8327
35562+#: fortran/decl.c:8326
35563 #, gcc-internal-format, gfc-internal-format
35564 msgid "Binding at %C must have the same access as already defined binding '%s'"
35565 msgstr "El enlace en %C debe tener el mismo acceso que el enlace '%s' que ya está definido"
35566
35567-#: fortran/decl.c:8376
35568+#: fortran/decl.c:8375
35569 #, gcc-internal-format, gfc-internal-format
35570 msgid "Expected specific binding name at %C"
35571 msgstr "Se esperaba un nombre de enlace específico en %C"
35572
35573-#: fortran/decl.c:8386
35574+#: fortran/decl.c:8385
35575 #, gcc-internal-format, gfc-internal-format
35576 msgid "'%s' already defined as specific binding for the generic '%s' at %C"
35577 msgstr "Ya se definió '%s' como un enlace específico para el genérico '%s' en %C"
35578
35579-#: fortran/decl.c:8402
35580+#: fortran/decl.c:8403
35581 #, gcc-internal-format, gfc-internal-format
35582 msgid "Junk after GENERIC binding at %C"
35583 msgstr "Basura después del enlace GENERIC en %C"
35584
35585-#: fortran/decl.c:8437
35586+#: fortran/decl.c:8438
35587 #, gcc-internal-format, gfc-internal-format
35588 msgid "FINAL declaration at %C must be inside a derived type CONTAINS section"
35589 msgstr "La declaración FINAL en %C debe estar dentro de una sección de tipo derivado CONTAINS"
35590
35591-#: fortran/decl.c:8448
35592+#: fortran/decl.c:8449
35593 #, gcc-internal-format, gfc-internal-format
35594 msgid "Derived type declaration with FINAL at %C must be in the specification part of a MODULE"
35595 msgstr "La declaración de tipo derivado con FINAL en %C debe estar en la parte de especificación de un MODULE"
35596
35597-#: fortran/decl.c:8470
35598+#: fortran/decl.c:8471
35599 #, gcc-internal-format, gfc-internal-format
35600 msgid "Empty FINAL at %C"
35601 msgstr "FINAL vacío en %C"
35602
35603-#: fortran/decl.c:8477
35604+#: fortran/decl.c:8478
35605 #, gcc-internal-format, gfc-internal-format
35606 msgid "Expected module procedure name at %C"
35607 msgstr "Se esperaba un nombre de procedimiento de módulo en %C"
35608
35609-#: fortran/decl.c:8487
35610+#: fortran/decl.c:8488
35611 #, gcc-internal-format, gfc-internal-format
35612 msgid "Expected ',' at %C"
35613 msgstr "Se esperaba ',' en %C"
35614
35615-#: fortran/decl.c:8493
35616+#: fortran/decl.c:8494
35617 #, gcc-internal-format, gfc-internal-format
35618 msgid "Unknown procedure name \"%s\" at %C"
35619 msgstr "Nombre de procedimiento \"%s\" desconocido en %C"
35620
35621-#: fortran/decl.c:8507
35622+#: fortran/decl.c:8508
35623 #, gcc-internal-format, gfc-internal-format
35624 msgid "'%s' at %C is already defined as FINAL procedure!"
35625 msgstr "¡'%s' en %C ya se había definido como un procedimiento FINAL!"
35626
35627-#: fortran/decl.c:8576
35628+#: fortran/decl.c:8577
35629 #, gcc-internal-format, gfc-internal-format
35630 msgid "Unknown attribute in !GCC$ ATTRIBUTES statement at %C"
35631 msgstr "Atributo desconocido en la declaración !GCC$ ATTRIBUTES en %C"
35632
35633-#: fortran/decl.c:8623
35634+#: fortran/decl.c:8624
35635 #, gcc-internal-format, gfc-internal-format
35636 msgid "Syntax error in !GCC$ ATTRIBUTES statement at %C"
35637 msgstr "Error sintáctico en la declaración !GCC$ ATTRIBUTES en %C"
35638@@ -36998,27 +37209,27 @@
35639 msgid "Extension: BOZ literal at %L used to initialize non-integer variable '%s'"
35640 msgstr "Extensión: se usa la literal BOZ en %L para inicializar la variable '%s' que no es entera"
35641
35642-#: fortran/expr.c:3177 fortran/resolve.c:9109
35643+#: fortran/expr.c:3177 fortran/resolve.c:9096
35644 #, gcc-internal-format, gfc-internal-format
35645 msgid "Extension: BOZ literal at %L outside a DATA statement and outside INT/REAL/DBLE/CMPLX"
35646 msgstr "Extensión: la literal BOZ en %L está fuera de una declaración DATA y fuera de INT/REAL/DBLE/CMPLX"
35647
35648-#: fortran/expr.c:3187 fortran/resolve.c:9119
35649+#: fortran/expr.c:3187 fortran/resolve.c:9106
35650 #, gcc-internal-format, gfc-internal-format
35651 msgid "BOZ literal at %L is bitwise transferred non-integer symbol '%s'"
35652 msgstr "La literal BOZ en %L se transfiere por bits al símbolo '%s' que no es entero"
35653
35654-#: fortran/expr.c:3195 fortran/resolve.c:9128
35655+#: fortran/expr.c:3195 fortran/resolve.c:9115
35656 #, gcc-internal-format, gfc-internal-format
35657 msgid "Arithmetic underflow of bit-wise transferred BOZ at %L. This check can be disabled with the option -fno-range-check"
35658 msgstr "Desborde aritmético por debajo del BOZ transferido por bits en %L. Esta revisión se puede desactivar con la opción -fno-range-check"
35659
35660-#: fortran/expr.c:3199 fortran/resolve.c:9132
35661+#: fortran/expr.c:3199 fortran/resolve.c:9119
35662 #, gcc-internal-format, gfc-internal-format
35663 msgid "Arithmetic overflow of bit-wise transferred BOZ at %L. This check can be disabled with the option -fno-range-check"
35664 msgstr "Desborde aritmético del BOZ transferido por bits en %L. Esta revisión se puede desactivar con la opción -fno-range-check"
35665
35666-#: fortran/expr.c:3203 fortran/resolve.c:9136
35667+#: fortran/expr.c:3203 fortran/resolve.c:9123
35668 #, gcc-internal-format, gfc-internal-format
35669 msgid "Arithmetic NaN of bit-wise transferred BOZ at %L. This check can be disabled with the option -fno-range-check"
35670 msgstr "NaN aritmético del BOZ transferido por bits en %L. Esta revisión se puede desactivar con la opción -fno-range-check"
35671@@ -37198,72 +37409,72 @@
35672 msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
35673 msgstr "El objetivo de inicialización de puntero a procedimiento en %L tal vez no es un puntero a procedimiento"
35674
35675-#: fortran/expr.c:4587
35676+#: fortran/expr.c:4593
35677 #, gcc-internal-format, gfc-internal-format
35678 msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L"
35679 msgstr "Fortran 2008: Funciones puntero en un contexto de definición variable (%s) en %L"
35680
35681-#: fortran/expr.c:4595
35682+#: fortran/expr.c:4601
35683 #, gcc-internal-format, gfc-internal-format
35684 msgid "Non-variable expression in variable definition context (%s) at %L"
35685 msgstr "Expresión que no es variable en el contexto de definición variable (%s) en %L"
35686
35687-#: fortran/expr.c:4603
35688+#: fortran/expr.c:4609
35689 #, gcc-internal-format, gfc-internal-format
35690 msgid "Named constant '%s' in variable definition context (%s) at %L"
35691 msgstr "Constante nombrada '%s' en el contexto de definición variable (%s) en %L"
35692
35693-#: fortran/expr.c:4612
35694+#: fortran/expr.c:4618
35695 #, gcc-internal-format, gfc-internal-format
35696 msgid "'%s' in variable definition context (%s) at %L is not a variable"
35697 msgstr "'%s' en el contexto de definición variable (%s) en %L no es una variable"
35698
35699-#: fortran/expr.c:4623
35700+#: fortran/expr.c:4629
35701 #, gcc-internal-format, gfc-internal-format
35702 msgid "Non-POINTER in pointer association context (%s) at %L"
35703 msgstr "Uno que no es POINTER en el contexto de asociación de puntero (%s) en %L"
35704
35705-#: fortran/expr.c:4636
35706+#: fortran/expr.c:4642
35707 #, gcc-internal-format, gfc-internal-format
35708 msgid "LOCK_TYPE in variable definition context (%s) at %L"
35709 msgstr "LOCK_TYPE en el contexto de definición variable (%s) en %L"
35710
35711-#: fortran/expr.c:4658
35712+#: fortran/expr.c:4664
35713 #, gcc-internal-format, gfc-internal-format
35714 msgid "Dummy argument '%s' with INTENT(IN) in pointer association context (%s) at %L"
35715 msgstr "Argumento dummy '%s' con INTENT(IN) en el contexto de asociación de puntero (%s) en %L"
35716
35717-#: fortran/expr.c:4666
35718+#: fortran/expr.c:4672
35719 #, gcc-internal-format, gfc-internal-format
35720 msgid "Dummy argument '%s' with INTENT(IN) in variable definition context (%s) at %L"
35721 msgstr "Argumento dummy '%s' con INTENT(IN) en el contexto de definición de variable (%s) en %L"
35722
35723-#: fortran/expr.c:4679
35724+#: fortran/expr.c:4685
35725 #, gcc-internal-format, gfc-internal-format
35726 msgid "Variable '%s' is PROTECTED and can not appear in a pointer association context (%s) at %L"
35727 msgstr "La variable '%s' es PROTECTED y no puede aparecer en un contexto de asociación de puntero (%s) en %L"
35728
35729-#: fortran/expr.c:4687
35730+#: fortran/expr.c:4693
35731 #, gcc-internal-format, gfc-internal-format
35732 msgid "Variable '%s' is PROTECTED and can not appear in a variable definition context (%s) at %L"
35733 msgstr "La variable '%s' es PROTECTED y no puede aparecer en un contexto de definición variable (%s) en %L"
35734
35735-#: fortran/expr.c:4699
35736+#: fortran/expr.c:4705
35737 #, gcc-internal-format, gfc-internal-format
35738 msgid "Variable '%s' can not appear in a variable definition context (%s) at %L in PURE procedure"
35739 msgstr "La variable '%s' no puede aparecer en un contexto de definición variable (%s) en %L en el procedimiento PURE"
35740
35741-#: fortran/expr.c:4758
35742+#: fortran/expr.c:4764
35743 #, gcc-internal-format, gfc-internal-format
35744 msgid "'%s' at %L associated to vector-indexed target can not be used in a variable definition context (%s)"
35745 msgstr "No se puede usar '%s' en %L asociado al objetivo con índice vectorial en un contexto de definición variable (%s)"
35746
35747-#: fortran/expr.c:4762
35748+#: fortran/expr.c:4768
35749 #, gcc-internal-format, gfc-internal-format
35750 msgid "'%s' at %L associated to expression can not be used in a variable definition context (%s)"
35751 msgstr "No se puede usar '%s' en %L asociado a una expresión en un contexto de definición variable (%s)"
35752
35753-#: fortran/expr.c:4774
35754+#: fortran/expr.c:4780
35755 #, gcc-internal-format, gfc-internal-format
35756 msgid "Associate-name '%s' can not appear in a variable definition context (%s) at %L because its target at %L can not, either"
35757 msgstr "El nombre asociado '%s' no puede aparecer en un contexto de definición variable (%s) en %L porque su obtetivo en %L tampoco puede aparecer"
35758@@ -37279,7 +37490,7 @@
35759 msgstr "no se puede abrir el fichero de entrada: %s"
35760
35761 #: fortran/frontend-passes.c:334 fortran/trans-array.c:1024
35762-#: fortran/trans-array.c:5756 fortran/trans-array.c:7002
35763+#: fortran/trans-array.c:5755 fortran/trans-array.c:7001
35764 #: fortran/trans-intrinsic.c:5422
35765 #, gcc-internal-format, gfc-internal-format
35766 msgid "Creating array temporary at %L"
35767@@ -37395,12 +37606,12 @@
35768 msgid "Second argument of defined assignment at %L must be INTENT(IN)"
35769 msgstr "El segundo argumento de la asignación definida en %L debe ser INTENT(IN)"
35770
35771-#: fortran/interface.c:705 fortran/resolve.c:13770
35772+#: fortran/interface.c:705 fortran/resolve.c:13758
35773 #, gcc-internal-format, gfc-internal-format
35774 msgid "First argument of operator interface at %L must be INTENT(IN)"
35775 msgstr "El primer argumento de la interfaz de operador en %L debe ser INTENT(IN)"
35776
35777-#: fortran/interface.c:712 fortran/resolve.c:13788
35778+#: fortran/interface.c:712 fortran/resolve.c:13776
35779 #, gcc-internal-format, gfc-internal-format
35780 msgid "Second argument of operator interface at %L must be INTENT(IN)"
35781 msgstr "El segundo argumento de la interfaz de operador en %L debe ser INTENT(IN)"
35782@@ -37430,447 +37641,447 @@
35783 msgid "In %s at %L procedures must be all FUNCTIONs as the generic name is also the name of a derived type"
35784 msgstr "En %s en %L los procedimientos deben ser puras FUNCTIONs ya que el nombre genérico es también el nombre de un tipo derivado"
35785
35786-#: fortran/interface.c:1296
35787+#: fortran/interface.c:1297
35788 #, gcc-internal-format, gfc-internal-format
35789-msgid "Extension: Internal procedure '%s' in %s at %L"
35790-msgstr "Extensión: Procedimiento interno '%s' en %s en %L"
35791+msgid "Fortran 2008: Internal procedure '%s' in %s at %L"
35792+msgstr "Fortran 2008: Procedimiento interno '%s' en %s en %L"
35793
35794-#: fortran/interface.c:1353 fortran/interface.c:1357
35795+#: fortran/interface.c:1354 fortran/interface.c:1358
35796 #, gcc-internal-format, gfc-internal-format
35797 msgid "Ambiguous interfaces '%s' and '%s' in %s at %L"
35798 msgstr "Las interfaces '%s' y '%s' son ambiguas en %s en %L"
35799
35800-#: fortran/interface.c:1361
35801+#: fortran/interface.c:1362
35802 #, gcc-internal-format, gfc-internal-format
35803 msgid "Although not referenced, '%s' has ambiguous interfaces at %L"
35804 msgstr "Aunque no esté referenciado, '%s' tiene interfaces ambiguas en %L"
35805
35806-#: fortran/interface.c:1395
35807+#: fortran/interface.c:1396
35808 #, gcc-internal-format, gfc-internal-format
35809 msgid "'%s' at %L is not a module procedure"
35810 msgstr "'%s' en %L no es un procedimiento de módulo"
35811
35812-#: fortran/interface.c:1605
35813+#: fortran/interface.c:1606
35814 #, gcc-internal-format, gfc-internal-format
35815 msgid "Rank mismatch in argument '%s' at %L (scalar and rank-%d)"
35816 msgstr "No coincide el rango en el argumento '%s' en %L (escalar y rango %d)"
35817
35818-#: fortran/interface.c:1610
35819+#: fortran/interface.c:1611
35820 #, gcc-internal-format, gfc-internal-format
35821 msgid "Rank mismatch in argument '%s' at %L (rank-%d and scalar)"
35822 msgstr "No coincide el rango en el argumento '%s' en %L (rango %d y escalar)"
35823
35824-#: fortran/interface.c:1615
35825+#: fortran/interface.c:1616
35826 #, gcc-internal-format, gfc-internal-format
35827 msgid "Rank mismatch in argument '%s' at %L (rank-%d and rank-%d)"
35828 msgstr "No coincide el rango en el argumento '%s' en %L (rango %d y rango %d)"
35829
35830-#: fortran/interface.c:1657
35831+#: fortran/interface.c:1658
35832 #, gcc-internal-format, gfc-internal-format
35833 msgid "Invalid procedure argument at %L"
35834 msgstr "Argumento de procedimiento inválido en %L"
35835
35836-#: fortran/interface.c:1665
35837+#: fortran/interface.c:1666
35838 #, gcc-internal-format, gfc-internal-format
35839 msgid "Interface mismatch in dummy procedure '%s' at %L: %s"
35840 msgstr "La interfaz no coincide en el procedimiento dummy '%s' en %L: %s"
35841
35842-#: fortran/interface.c:1690
35843+#: fortran/interface.c:1691
35844 #, gcc-internal-format, gfc-internal-format
35845 msgid "Actual argument to contiguous pointer dummy '%s' at %L must be simply contigous"
35846 msgstr "El argumento actual para el puntero dummy contiguo '%s' en %L debe ser simplemente contiguo"
35847
35848-#: fortran/interface.c:1703
35849+#: fortran/interface.c:1704
35850 #, gcc-internal-format, gfc-internal-format
35851 msgid "Type mismatch in argument '%s' at %L; passed %s to %s"
35852 msgstr "No coincide el tipo en el argumento '%s' en %L; se pasa %s a %s"
35853
35854-#: fortran/interface.c:1717
35855+#: fortran/interface.c:1718
35856 #, gcc-internal-format, gfc-internal-format
35857 msgid "Actual argument to '%s' at %L must be polymorphic"
35858 msgstr "El argumento actual para '%s' en %L debe ser polimórfico"
35859
35860-#: fortran/interface.c:1725
35861+#: fortran/interface.c:1726
35862 #, gcc-internal-format, gfc-internal-format
35863 msgid "Actual argument to '%s' at %L must have the same declared type"
35864 msgstr "El argumento actual para '%s' en %L debe tener el mismo tipo declarado"
35865
35866-#: fortran/interface.c:1734
35867+#: fortran/interface.c:1735
35868 #, gcc-internal-format, gfc-internal-format
35869 msgid "Actual argument to '%s' at %L must be a coarray"
35870 msgstr "El argumento actual para '%s' en %L debe ser una comatriz"
35871
35872-#: fortran/interface.c:1753
35873+#: fortran/interface.c:1754
35874 #, gcc-internal-format, gfc-internal-format
35875 msgid "Corank mismatch in argument '%s' at %L (%d and %d)"
35876 msgstr "No coincide el corango en el argumento '%s' en %L (%d y %d)"
35877
35878-#: fortran/interface.c:1770
35879+#: fortran/interface.c:1771
35880 #, gcc-internal-format, gfc-internal-format
35881 msgid "Actual argument to '%s' at %L must be simply contiguous"
35882 msgstr "El argumento actual para '%s' en %L debe ser simplemente contiguo"
35883
35884-#: fortran/interface.c:1784
35885+#: fortran/interface.c:1785
35886 #, gcc-internal-format, gfc-internal-format
35887 msgid "Actual argument to non-INTENT(INOUT) dummy '%s' at %L, which is LOCK_TYPE or has a LOCK_TYPE component"
35888 msgstr "Argumento actual para el dummy que no es INTENT(OUT) '%s' en %L, el cual es LOCK_TYPE o tiene un componente LOCK_TYPE"
35889
35890-#: fortran/interface.c:1801
35891+#: fortran/interface.c:1802
35892 #, gcc-internal-format, gfc-internal-format
35893 msgid "Dummy argument '%s' has to be a pointer or assumed-shape array without CONTIGUOUS attribute - as actual argument at %L is not simply contiguous and both are ASYNCHRONOUS or VOLATILE"
35894 msgstr "El argumento dummy '%s' tiene que ser un puntero o una matriz de tamaño asumida sin atributo CONTIGUOUS - porque el argumento actual en %L no es simplemente contiguo y ambos son ASYNCHRONOUS o VOLATILE"
35895
35896-#: fortran/interface.c:1814
35897+#: fortran/interface.c:1815
35898 #, gcc-internal-format, gfc-internal-format
35899 msgid "Passing coarray at %L to allocatable, noncoarray, INTENT(OUT) dummy argument '%s'"
35900 msgstr "Se pasa una comatriz en %L al argumento dummy INTENT(OUT) '%s', que no es comatriz, alojable"
35901
35902-#: fortran/interface.c:1821
35903+#: fortran/interface.c:1822
35904 #, gcc-internal-format, gfc-internal-format
35905 msgid "Passing coarray at %L to allocatable, noncoarray dummy argument '%s', which is invalid if the allocation status is modified"
35906 msgstr "Se pasa una comatriz en %L al argumento dummy '%s' que no es comatriz, el cual es inválido si se modifica el estado de alojamiento"
35907
35908-#: fortran/interface.c:1883
35909+#: fortran/interface.c:1884
35910 #, gcc-internal-format, gfc-internal-format
35911 msgid "Polymorphic scalar passed to array dummy argument '%s' at %L"
35912 msgstr "Se pasó un escalar polimórfico al argumento dummy de matriz '%s' en %L"
35913
35914-#: fortran/interface.c:1892
35915+#: fortran/interface.c:1893
35916 #, gcc-internal-format, gfc-internal-format
35917 msgid "Element of assumed-shaped or pointer array passed to array dummy argument '%s' at %L"
35918 msgstr "Se pasó un elemento de forma asumida o puntero a matriz al argumento dummy de matriz '%s' en %L"
35919
35920-#: fortran/interface.c:1904
35921+#: fortran/interface.c:1905
35922 #, gcc-internal-format, gfc-internal-format
35923 msgid "Extension: Scalar non-default-kind, non-C_CHAR-kind CHARACTER actual argument with array dummy argument '%s' at %L"
35924 msgstr "Extensión: Argumento actual CHARACTER de género diferente a C_CHAR, sin género por defecto escalar con argumento dummy de matriz '%s' en %L"
35925
35926-#: fortran/interface.c:1912
35927+#: fortran/interface.c:1913
35928 #, gcc-internal-format, gfc-internal-format
35929 msgid "Fortran 2003: Scalar CHARACTER actual argument with array dummy argument '%s' at %L"
35930 msgstr "Fortran 2003: Argumento actual CHARACTER escalar con argumento dummy de matriz '%s' en %L"
35931
35932-#: fortran/interface.c:2212
35933+#: fortran/interface.c:2213
35934 #, gcc-internal-format, gfc-internal-format
35935 msgid "Keyword argument '%s' at %L is not in the procedure"
35936 msgstr "El argumento de palabra clave '%s' en %L no está en el procedimiento"
35937
35938-#: fortran/interface.c:2220
35939+#: fortran/interface.c:2221
35940 #, gcc-internal-format, gfc-internal-format
35941 msgid "Keyword argument '%s' at %L is already associated with another actual argument"
35942 msgstr "El argumento de palabra clave '%s' en %L ya está asociado con otro argumento actual"
35943
35944-#: fortran/interface.c:2230
35945+#: fortran/interface.c:2231
35946 #, gcc-internal-format, gfc-internal-format
35947 msgid "More actual than formal arguments in procedure call at %L"
35948 msgstr "Más argumentos actuales que formales en la llamada a procedimento en %L"
35949
35950-#: fortran/interface.c:2242 fortran/interface.c:2568
35951+#: fortran/interface.c:2243 fortran/interface.c:2569
35952 #, gcc-internal-format, gfc-internal-format
35953 msgid "Missing alternate return spec in subroutine call at %L"
35954 msgstr "Falta la especificación de devolución alternativa en la llamada a subrutina en %L"
35955
35956-#: fortran/interface.c:2250
35957+#: fortran/interface.c:2251
35958 #, gcc-internal-format, gfc-internal-format
35959 msgid "Unexpected alternate return spec in subroutine call at %L"
35960 msgstr "Especificación de devolución alternativa inesperada en la llamada a subrutina en %L"
35961
35962-#: fortran/interface.c:2260
35963+#: fortran/interface.c:2261
35964 #, gcc-internal-format, gfc-internal-format
35965 msgid "Unexpected NULL() intrinsic at %L to dummy '%s'"
35966 msgstr "Intrínseco NULL inesperado en %L para el dummy '%s'"
35967
35968-#: fortran/interface.c:2263
35969+#: fortran/interface.c:2264
35970 #, gcc-internal-format, gfc-internal-format
35971 msgid "Fortran 2008: Null pointer at %L to non-pointer dummy '%s'"
35972 msgstr "Fortran 2008: Puntero nulo en %L a un dummy '%s' que no es puntero"
35973
35974-#: fortran/interface.c:2287
35975+#: fortran/interface.c:2288
35976 #, gcc-internal-format, gfc-internal-format
35977 msgid "Character length mismatch (%ld/%ld) between actual argument and pointer or allocatable dummy argument '%s' at %L"
35978 msgstr "No coincide la longitud de carácter (%ld/%ld) entre el argumento actual y el argumento dummy puntero o alojable '%s' en %L"
35979
35980-#: fortran/interface.c:2294
35981+#: fortran/interface.c:2295
35982 #, gcc-internal-format, gfc-internal-format
35983 msgid "Character length mismatch (%ld/%ld) between actual argument and assumed-shape dummy argument '%s' at %L"
35984 msgstr "No coincide la longitud de carácter (%ld/%ld) entre el argumento actual y el argumento dummy de forma asumida '%s' en %L"
35985
35986-#: fortran/interface.c:2308
35987+#: fortran/interface.c:2309
35988 #, gcc-internal-format, gfc-internal-format
35989-msgid "Actual argument argument at %L to allocatable or pointer dummy argument '%s' must have a deferred length type parameter if and only if the dummy has one"
35990-msgstr "El argumento actual del argumento en %L para el argumento alojable o dummy puntero '%s' debe tener un parámetro de tipo de longitud diferido si y sólo si el dummy tiene uno"
35991+msgid "Actual argument at %L to allocatable or pointer dummy argument '%s' must have a deferred length type parameter if and only if the dummy has one"
35992+msgstr "El argumento actual en %L para el argumento alojable o dummy puntero '%s' debe tener un parámetro de tipo de longitud diferido si y sólo si el dummy tiene uno"
35993
35994-#: fortran/interface.c:2325
35995+#: fortran/interface.c:2326
35996 #, gcc-internal-format, gfc-internal-format
35997 msgid "Character length of actual argument shorter than of dummy argument '%s' (%lu/%lu) at %L"
35998 msgstr "La longitud del carácter del argumento actual es más corta que la del argumento dummy '%s' (%lu/%lu) en %L"
35999
36000-#: fortran/interface.c:2330
36001+#: fortran/interface.c:2331
36002 #, gcc-internal-format, gfc-internal-format
36003 msgid "Actual argument contains too few elements for dummy argument '%s' (%lu/%lu) at %L"
36004 msgstr "El argumento actual contiene muy pocos elementos para el argumento dummy '%s' (%lu/%lu) en %L"
36005
36006-#: fortran/interface.c:2349
36007+#: fortran/interface.c:2350
36008 #, gcc-internal-format, gfc-internal-format
36009 msgid "Expected a procedure pointer for argument '%s' at %L"
36010 msgstr "Se esperaba un puntero procedimiento para el argumento '%s' en %L"
36011
36012-#: fortran/interface.c:2361
36013+#: fortran/interface.c:2362
36014 #, gcc-internal-format, gfc-internal-format
36015 msgid "Expected a procedure for argument '%s' at %L"
36016 msgstr "Falta un procedimiento para el argumento '%s' en %L"
36017
36018-#: fortran/interface.c:2375
36019+#: fortran/interface.c:2376
36020 #, gcc-internal-format, gfc-internal-format
36021 msgid "Actual argument for '%s' cannot be an assumed-size array at %L"
36022 msgstr "El argumento actual para '%s' no puede ser una matriz de tamaño asumido en %L"
36023
36024-#: fortran/interface.c:2384
36025+#: fortran/interface.c:2385
36026 #, gcc-internal-format, gfc-internal-format
36027 msgid "Actual argument for '%s' must be a pointer at %L"
36028 msgstr "El argumento actual para '%s' debe ser un puntero en %L"
36029
36030-#: fortran/interface.c:2394
36031+#: fortran/interface.c:2395
36032 #, gcc-internal-format, gfc-internal-format
36033 msgid "Fortran 2008: Non-pointer actual argument at %L to pointer dummy '%s'"
36034 msgstr "Fortran 2008: El argumento actual que no es puntero en %L para el puntero dummy '%s'"
36035
36036-#: fortran/interface.c:2404
36037+#: fortran/interface.c:2405
36038 #, gcc-internal-format, gfc-internal-format
36039 msgid "Coindexed actual argument at %L to pointer dummy '%s'"
36040 msgstr "Argumento actual coindizado en %L para el puntero dummy '%s'"
36041
36042-#: fortran/interface.c:2417
36043+#: fortran/interface.c:2418
36044 #, gcc-internal-format, gfc-internal-format
36045 msgid "Coindexed actual argument at %L to allocatable dummy '%s' requires INTENT(IN)"
36046 msgstr "El argumento actual coindizado en %L para el dummy alojable '%s' requiere INTENT(IN)"
36047
36048-#: fortran/interface.c:2431
36049+#: fortran/interface.c:2432
36050 #, gcc-internal-format, gfc-internal-format
36051-msgid "Coindexed ASYNCHRONOUS or VOLATILE actual argument at at %L requires that dummy %s' has neither ASYNCHRONOUS nor VOLATILE"
36052+msgid "Coindexed ASYNCHRONOUS or VOLATILE actual argument at %L requires that dummy '%s' has neither ASYNCHRONOUS nor VOLATILE"
36053 msgstr "El argumento actual coindizado ASYNCHRONOUS o VOLATILE en %L requiere que el dummy '%s' no tenga ASYNCHRONOUS ni VOLATILE"
36054
36055-#: fortran/interface.c:2445
36056+#: fortran/interface.c:2446
36057 #, gcc-internal-format, gfc-internal-format
36058 msgid "Coindexed actual argument at %L with allocatable ultimate component to dummy '%s' requires either VALUE or INTENT(IN)"
36059 msgstr "El argumento actual coindizado en %L con componente último alojable para el dummy '%s' requiere uno de VALUE o INTENT(IN)"
36060
36061-#: fortran/interface.c:2457
36062+#: fortran/interface.c:2458
36063 #, gcc-internal-format, gfc-internal-format
36064 msgid "Actual CLASS array argument for '%s' must be a full array at %L"
36065 msgstr "El argumento de la matriz CLASS actual para '%s' debe ser una matriz completa en %L"
36066
36067-#: fortran/interface.c:2467
36068+#: fortran/interface.c:2468
36069 #, gcc-internal-format, gfc-internal-format
36070 msgid "Actual argument for '%s' must be ALLOCATABLE at %L"
36071 msgstr "El argumento actual para '%s' debe ser ALLOCATABLE en %L"
36072
36073-#: fortran/interface.c:2496
36074+#: fortran/interface.c:2497
36075 #, gcc-internal-format, gfc-internal-format
36076 msgid "Array-section actual argument with vector subscripts at %L is incompatible with INTENT(OUT), INTENT(INOUT), VOLATILE or ASYNCHRONOUS attribute of the dummy argument '%s'"
36077 msgstr "El argumento actual de sección de matriz con subíndices vectoriales en %L es incompatible con el atributo INTENT(OUT), INTENT(INOUT), VOLATILE o ASYNCHRONOUS del argumento dummy '%s'"
36078
36079-#: fortran/interface.c:2514
36080+#: fortran/interface.c:2515
36081 #, gcc-internal-format, gfc-internal-format
36082 msgid "Assumed-shape actual argument at %L is incompatible with the non-assumed-shape dummy argument '%s' due to VOLATILE attribute"
36083 msgstr "El argumento actual de forma asumida en %L es incompatible con el argumento dummy de forma no asumida '%s' debido al atributo VOLATILE"
36084
36085-#: fortran/interface.c:2526
36086+#: fortran/interface.c:2527
36087 #, gcc-internal-format, gfc-internal-format
36088 msgid "Array-section actual argument at %L is incompatible with the non-assumed-shape dummy argument '%s' due to VOLATILE attribute"
36089 msgstr "El argumento actual de sección de matriz en %L es incompatible con el argumento dummy de forma no asumida '%s' debido al atributo VOLATILE"
36090
36091-#: fortran/interface.c:2545
36092+#: fortran/interface.c:2546
36093 #, gcc-internal-format, gfc-internal-format
36094 msgid "Pointer-array actual argument at %L requires an assumed-shape or pointer-array dummy argument '%s' due to VOLATILE attribute"
36095 msgstr "El argumento actual de matriz de puntero en %L requiere un argumento dummy de forma asumida o matriz de puntero '%s' debido al atributo VOLATILE"
36096
36097-#: fortran/interface.c:2575
36098+#: fortran/interface.c:2576
36099 #, gcc-internal-format, gfc-internal-format
36100 msgid "Missing actual argument for argument '%s' at %L"
36101 msgstr "Falta el argumento actual para el argumento '%s' en %L"
36102
36103-#: fortran/interface.c:2761
36104+#: fortran/interface.c:2762
36105 #, gcc-internal-format, gfc-internal-format
36106 msgid "Same actual argument associated with INTENT(%s) argument '%s' and INTENT(%s) argument '%s' at %L"
36107 msgstr "El mismo argumento actual está asociado con el argumento INTENT(%s) '%s' y el argumento INTENT(%s) '%s' en %L"
36108
36109-#: fortran/interface.c:2817
36110+#: fortran/interface.c:2818
36111 #, gcc-internal-format, gfc-internal-format
36112 msgid "Procedure argument at %L is INTENT(IN) while interface specifies INTENT(%s)"
36113 msgstr "El argumento del procedimiento en %L es INTENT(IN) mientras que la interfaz especifica INTENT(%s)"
36114
36115-#: fortran/interface.c:2827
36116+#: fortran/interface.c:2828
36117 #, gcc-internal-format, gfc-internal-format
36118 msgid "Procedure argument at %L is local to a PURE procedure and is passed to an INTENT(%s) argument"
36119 msgstr "El argumento del procedimiento en %L es local a un procedimiento PURE y se pasa a un argumento INTENT(%s)"
36120
36121-#: fortran/interface.c:2835
36122+#: fortran/interface.c:2836
36123 #, gcc-internal-format, gfc-internal-format
36124 msgid "Procedure argument at %L is local to a PURE procedure and has the POINTER attribute"
36125 msgstr "El argumento del procedimiento en %L es local a un procedimiento PURE y tiene el atributo POINTER"
36126
36127-#: fortran/interface.c:2847
36128+#: fortran/interface.c:2848
36129 #, gcc-internal-format, gfc-internal-format
36130 msgid "Coindexed actual argument at %L in PURE procedure is passed to an INTENT(%s) argument"
36131 msgstr "El argumento coindizado en %L en un procedimiento PURE se pasa a un argumento INTENT(%s)"
36132
36133-#: fortran/interface.c:2855
36134+#: fortran/interface.c:2856
36135 #, gcc-internal-format, gfc-internal-format
36136 msgid "Coindexed actual argument at %L in PURE procedure is passed to a POINTER dummy argument"
36137 msgstr "El argumento actual coindizado en %L es un procedimiento PURE se pasa a un argumento dummy POINTER"
36138
36139-#: fortran/interface.c:2866
36140+#: fortran/interface.c:2867
36141 #, gcc-internal-format, gfc-internal-format
36142 msgid "Coindexed polymorphic actual argument at %L is passed polymorphic dummy argument '%s'"
36143 msgstr "El argumento actual polimórfico coindizado en %L se pasa al argumento dummy polimórfico '%s'"
36144
36145-#: fortran/interface.c:2892
36146+#: fortran/interface.c:2893
36147 #, gcc-internal-format, gfc-internal-format
36148 msgid "Procedure '%s' called with an implicit interface at %L"
36149 msgstr "Se llamó al procedimiento '%s' con una interfaz implícita en %L"
36150
36151-#: fortran/interface.c:2896
36152+#: fortran/interface.c:2897
36153 #, gcc-internal-format, gfc-internal-format
36154 msgid "Procedure '%s' called at %L is not explicitly declared"
36155 msgstr "El procedimiento '%s' que se llama en %L no tiene una interfaz explícita"
36156
36157-#: fortran/interface.c:2906
36158+#: fortran/interface.c:2907
36159 #, gcc-internal-format, gfc-internal-format
36160 msgid "The pointer object '%s' at %L must have an explicit function interface or be declared as array"
36161 msgstr "El objeto puntero '%s' en %L debe tener una interfaz de función explícita o declrararse como matriz"
36162
36163-#: fortran/interface.c:2914
36164+#: fortran/interface.c:2915
36165 #, gcc-internal-format, gfc-internal-format
36166 msgid "The allocatable object '%s' at %L must have an explicit function interface or be declared as array"
36167 msgstr "El objeto allocatable '%s' en %L debe tener una interfaz de función explícita o declararse como matriz"
36168
36169-#: fortran/interface.c:2922
36170+#: fortran/interface.c:2923
36171 #, gcc-internal-format, gfc-internal-format
36172 msgid "Allocatable function '%s' at %L must have an explicit function interface"
36173 msgstr "La función allocatable '%s' en %L debe tener una interfaz de función explícita"
36174
36175-#: fortran/interface.c:2932
36176+#: fortran/interface.c:2933
36177 #, gcc-internal-format, gfc-internal-format
36178 msgid "Keyword argument requires explicit interface for procedure '%s' at %L"
36179 msgstr "El argumento de palabra clave requiere una interfaz explícita para el procedimiento '%s' en %L"
36180
36181-#: fortran/interface.c:2944
36182+#: fortran/interface.c:2945
36183 #, gcc-internal-format, gfc-internal-format
36184 msgid "Actual argument of LOCK_TYPE or with LOCK_TYPE component at %L requires an explicit interface for procedure '%s'"
36185 msgstr "El argumento actual de LOCK_TYPE o con componente LOCK_TYPE en %L requiere una interfaz explícita para el procedimiento '%s'"
36186
36187-#: fortran/interface.c:2953
36188+#: fortran/interface.c:2954
36189 #, gcc-internal-format, gfc-internal-format
36190 msgid "MOLD argument to NULL required at %L"
36191 msgstr "se requiere el argumento MOLD para NULL en %L"
36192
36193-#: fortran/interface.c:2984
36194+#: fortran/interface.c:2985
36195 #, gcc-internal-format, gfc-internal-format
36196 msgid "Procedure pointer component '%s' called with an implicit interface at %L"
36197 msgstr "Se llamó al procedimiento de componente puntero '%s' con una interfaz implícita en %L"
36198
36199-#: fortran/interface.c:2995
36200+#: fortran/interface.c:2996
36201 #, gcc-internal-format, gfc-internal-format
36202 msgid "Keyword argument requires explicit interface for procedure pointer component '%s' at %L"
36203 msgstr "El argumento de palabra clave requiere una interfaz explícita para el procedimiento de componente puntero '%s' en %L"
36204
36205-#: fortran/interface.c:3075
36206+#: fortran/interface.c:3076
36207 #, gcc-internal-format, gfc-internal-format
36208 msgid "MOLD= required in NULL() argument at %L: Ambiguity between specific functions %s and %s"
36209 msgstr "Se require MOLD= en un argumento NULL en %L: Ambigüedad entre las funciones específicas %s y %s "
36210
36211-#: fortran/interface.c:3526
36212+#: fortran/interface.c:3527
36213 #, gcc-internal-format, gfc-internal-format
36214 msgid "Entity '%s' at %C is already present in the interface"
36215 msgstr "La entidad '%s' en %C ya está presente en la interfaz"
36216
36217-#: fortran/interface.c:3723
36218+#: fortran/interface.c:3724
36219 #, gcc-internal-format, gfc-internal-format
36220 msgid "Can't overwrite GENERIC '%s' at %L"
36221 msgstr "No se puede sobreescribir el GENERIC '%s' en %L"
36222
36223-#: fortran/interface.c:3735
36224+#: fortran/interface.c:3736
36225 #, gcc-internal-format, gfc-internal-format
36226 msgid "'%s' at %L overrides a procedure binding declared NON_OVERRIDABLE"
36227 msgstr "'%s' en %L sobreescribe un enlace de procedimiento declarad como NON_OVERRIDABLE"
36228
36229-#: fortran/interface.c:3743
36230+#: fortran/interface.c:3744
36231 #, gcc-internal-format, gfc-internal-format
36232 msgid "'%s' at %L must not be DEFERRED as it overrides a non-DEFERRED binding"
36233 msgstr "'%s' en %L no debe ser DEFERRED porque sobreescribe un enlazado que no es DEFERRED"
36234
36235-#: fortran/interface.c:3751
36236+#: fortran/interface.c:3752
36237 #, gcc-internal-format, gfc-internal-format
36238 msgid "'%s' at %L overrides a PURE procedure and must also be PURE"
36239 msgstr "'%s' en %L sobreescribe un procedimiento PURE y también debe ser PURE"
36240
36241-#: fortran/interface.c:3760
36242+#: fortran/interface.c:3761
36243 #, gcc-internal-format, gfc-internal-format
36244 msgid "'%s' at %L overrides an ELEMENTAL procedure and must also be ELEMENTAL"
36245 msgstr "'%s' en %L sobreescribe un procedimiento ELEMENTAL y también debe ser ELEMENTAL"
36246
36247-#: fortran/interface.c:3766
36248+#: fortran/interface.c:3767
36249 #, gcc-internal-format, gfc-internal-format
36250 msgid "'%s' at %L overrides a non-ELEMENTAL procedure and must not be ELEMENTAL, either"
36251 msgstr "'%s' en %L sobreeescribe un procedimiento que no es ELEMENTAL y tampoco debe ser ELEMENTAL"
36252
36253-#: fortran/interface.c:3775
36254+#: fortran/interface.c:3776
36255 #, gcc-internal-format, gfc-internal-format
36256 msgid "'%s' at %L overrides a SUBROUTINE and must also be a SUBROUTINE"
36257 msgstr "'%s' en %L sobreescribe una SUBROUTINE y también debe ser una SUBROUTINE"
36258
36259-#: fortran/interface.c:3786
36260+#: fortran/interface.c:3787
36261 #, gcc-internal-format, gfc-internal-format
36262 msgid "'%s' at %L overrides a FUNCTION and must also be a FUNCTION"
36263 msgstr "'%s' en %L sobreescribe una FUNCTION y también debe ser una FUNCTION"
36264
36265-#: fortran/interface.c:3796
36266+#: fortran/interface.c:3797
36267 #, gcc-internal-format, gfc-internal-format
36268 msgid "'%s' at %L and the overridden FUNCTION should have matching result types and ranks"
36269 msgstr "'%s' en %L y la FUNCION sobreescrita deben tener tipos de resultado y rangos coincidentes"
36270
36271-#: fortran/interface.c:3812
36272+#: fortran/interface.c:3813
36273 #, gcc-internal-format, gfc-internal-format
36274 msgid "Character length mismatch between '%s' at '%L' and overridden FUNCTION"
36275 msgstr "No coincide la longitud de caracteres entre '%s' en %L y FUNCTION sobreescrita"
36276
36277-#: fortran/interface.c:3817
36278+#: fortran/interface.c:3818
36279 #, gcc-internal-format, gfc-internal-format
36280 msgid "Possible character length mismatch between '%s' at '%L' and overridden FUNCTION"
36281 msgstr "Tal vez no coincide la longitud de caracteres entre '%s' en '%L' y FUNCTION sobreescrita"
36282
36283-#: fortran/interface.c:3837
36284+#: fortran/interface.c:3838
36285 #, gcc-internal-format, gfc-internal-format
36286 msgid "'%s' at %L overrides a PUBLIC procedure and must not be PRIVATE"
36287 msgstr "'%s' en %L sobreescribe un procedimiento PUBLIC y no debe ser PRIVATE"
36288
36289-#: fortran/interface.c:3866
36290+#: fortran/interface.c:3867
36291 #, gcc-internal-format, gfc-internal-format
36292 msgid "Dummy argument '%s' of '%s' at %L should be named '%s' as to match the corresponding argument of the overridden procedure"
36293 msgstr "El argumento dummy '%s' de '%s' en %L se debe llamar '%s' para que coincida con el argumento correspondiente al procedimiento sobreescrito"
36294
36295-#: fortran/interface.c:3877
36296+#: fortran/interface.c:3878
36297 #, gcc-internal-format, gfc-internal-format
36298 msgid "Argument mismatch for the overriding procedure '%s' at %L: %s"
36299 msgstr "La interfaz no coincide en el procedimiento '%s' que sobreescribe en %L: %s"
36300
36301-#: fortran/interface.c:3886
36302+#: fortran/interface.c:3887
36303 #, gcc-internal-format, gfc-internal-format
36304 msgid "'%s' at %L must have the same number of formal arguments as the overridden procedure"
36305 msgstr "'%s' en %L debe tener el mismo nombre de argumentos formales que el procedimiento sobreeescrito"
36306
36307-#: fortran/interface.c:3895
36308+#: fortran/interface.c:3896
36309 #, gcc-internal-format, gfc-internal-format
36310 msgid "'%s' at %L overrides a NOPASS binding and must also be NOPASS"
36311 msgstr "'%s' en %L sobreescribe un enlace NOPASS y también debe ser NOPASS"
36312
36313-#: fortran/interface.c:3906
36314+#: fortran/interface.c:3907
36315 #, gcc-internal-format, gfc-internal-format
36316 msgid "'%s' at %L overrides a binding with PASS and must also be PASS"
36317 msgstr "'%s' en %L sobreescribe un enlace con PASS y también debe ser PASS"
36318
36319-#: fortran/interface.c:3913
36320+#: fortran/interface.c:3914
36321 #, gcc-internal-format, gfc-internal-format
36322 msgid "Passed-object dummy argument of '%s' at %L must be at the same position as the passed-object dummy argument of the overridden procedure"
36323 msgstr "El argumento dummy del objeto pasado de '%s' en %L debe estar en la misma posición que el argumento dummy del objeto pasado del procedimiento sobreescrito"
36324@@ -38195,801 +38406,796 @@
36325 msgid "Fortran 2003: ASYNCHRONOUS= at %C not allowed in Fortran 95"
36326 msgstr "Fortran 2003: no se permite ASYNCHRONOUS= en %C en Fortran 95"
36327
36328-#: fortran/io.c:1914 fortran/io.c:3367
36329+#: fortran/io.c:1914 fortran/io.c:3363
36330 #, gcc-internal-format, gfc-internal-format
36331 msgid "Fortran 2003: BLANK= at %C not allowed in Fortran 95"
36332 msgstr "Fortran 2003: no se permite BLANK= en %C en Fortran 95"
36333
36334-#: fortran/io.c:1932 fortran/io.c:3346
36335+#: fortran/io.c:1932 fortran/io.c:3342
36336 #, gcc-internal-format, gfc-internal-format
36337 msgid "Fortran 2003: DECIMAL= at %C not allowed in Fortran 95"
36338 msgstr "Fortran 2003: no se permite DECIMAL= en %C en Fortran 95"
36339
36340-#: fortran/io.c:1950 fortran/io.c:3454
36341+#: fortran/io.c:1964
36342 #, gcc-internal-format, gfc-internal-format
36343-msgid "Fortran 2003: DELIM= at %C not allowed in Fortran 95"
36344-msgstr "Fortran 2003: no se permite DELIM= en %C en Fortran 95"
36345-
36346-#: fortran/io.c:1968
36347-#, gcc-internal-format, gfc-internal-format
36348 msgid "Fortran 2003: ENCODING= at %C not allowed in Fortran 95"
36349 msgstr "Fortran 2003: no se permite ENCODING= en %C en Fortran 95"
36350
36351-#: fortran/io.c:2019
36352+#: fortran/io.c:2015 fortran/io.c:3405
36353 #, gcc-internal-format, gfc-internal-format
36354-msgid "Fortran F2003: ROUND= at %C not allowed in Fortran 95"
36355-msgstr "Fortran F2003: No se permite ROUND= en %C en Fortran 95"
36356+msgid "Fortran 2003: ROUND= at %C not allowed in Fortran 95"
36357+msgstr "Fortran 2003: No se permite ROUND= en %C en Fortran 95"
36358
36359-#: fortran/io.c:2039
36360+#: fortran/io.c:2035
36361 #, gcc-internal-format, gfc-internal-format
36362 msgid "Fortran 2003: SIGN= at %C not allowed in Fortran 95"
36363 msgstr "Fortran 2003: no se permite SIGN= en %C en Fortran 95"
36364
36365-#: fortran/io.c:2252
36366+#: fortran/io.c:2248
36367 #, gcc-internal-format, gfc-internal-format
36368 msgid "CLOSE statement not allowed in PURE procedure at %C"
36369 msgstr "No se permite una declaración CLOSE en el procedimiento PURE en %C"
36370
36371-#: fortran/io.c:2312
36372+#: fortran/io.c:2308
36373 #, gcc-internal-format, gfc-internal-format
36374 msgid "CLOSE statement at %L requires a UNIT number"
36375 msgstr "La declaración CLOSE en %L requiere un número UNIT"
36376
36377-#: fortran/io.c:2320
36378+#: fortran/io.c:2316
36379 #, gcc-internal-format, gfc-internal-format
36380 msgid "UNIT number in CLOSE statement at %L must be non-negative"
36381 msgstr "El número UNIT en la declaración CLOSE en %L debe ser no negativo"
36382
36383-#: fortran/io.c:2418 fortran/match.c:2683
36384+#: fortran/io.c:2414 fortran/match.c:2682
36385 #, gcc-internal-format, gfc-internal-format
36386 msgid "%s statement not allowed in PURE procedure at %C"
36387 msgstr "No se permite una declaración %s en el procedimiento PURE en %C"
36388
36389-#: fortran/io.c:2453 fortran/io.c:2885
36390+#: fortran/io.c:2449 fortran/io.c:2881
36391 #, gcc-internal-format, gfc-internal-format
36392 msgid "UNIT number in statement at %L must be non-negative"
36393 msgstr "El número UNIT en la declaración en %L debe ser no negativo"
36394
36395-#: fortran/io.c:2485
36396+#: fortran/io.c:2481
36397 #, gcc-internal-format, gfc-internal-format
36398 msgid "Fortran 2003: FLUSH statement at %C"
36399 msgstr "Fortran 2003: Declaración FLUSH en %C"
36400
36401-#: fortran/io.c:2541
36402+#: fortran/io.c:2537
36403 #, gcc-internal-format, gfc-internal-format
36404 msgid "Duplicate UNIT specification at %C"
36405 msgstr "Especificación UNIT duplicada en %C"
36406
36407-#: fortran/io.c:2615
36408+#: fortran/io.c:2611
36409 #, gcc-internal-format, gfc-internal-format
36410 msgid "Duplicate format specification at %C"
36411 msgstr "Especificación de formato duplicada en %C"
36412
36413-#: fortran/io.c:2632
36414+#: fortran/io.c:2628
36415 #, gcc-internal-format, gfc-internal-format
36416 msgid "Symbol '%s' in namelist '%s' is INTENT(IN) at %C"
36417 msgstr "El símbolo '%s' en la lista de nombres '%s' es INTENT(IN) en %C"
36418
36419-#: fortran/io.c:2668
36420+#: fortran/io.c:2664
36421 #, gcc-internal-format, gfc-internal-format
36422 msgid "Duplicate NML specification at %C"
36423 msgstr "Especificación NML duplicada en %C"
36424
36425-#: fortran/io.c:2677
36426+#: fortran/io.c:2673
36427 #, gcc-internal-format, gfc-internal-format
36428 msgid "Symbol '%s' at %C must be a NAMELIST group name"
36429 msgstr "El símbolo '%s' en %C debe ser un nombre de grupo NAMELIST"
36430
36431-#: fortran/io.c:2742
36432+#: fortran/io.c:2738
36433 #, gcc-internal-format, gfc-internal-format
36434 msgid "END tag at %C not allowed in output statement"
36435 msgstr "No se permite la etiqueta END en %C en la declaración de salida"
36436
36437-#: fortran/io.c:2819
36438+#: fortran/io.c:2815
36439 #, gcc-internal-format, gfc-internal-format
36440 msgid "UNIT not specified at %L"
36441 msgstr "No se especificó UNIT en %L"
36442
36443-#: fortran/io.c:2831
36444+#: fortran/io.c:2827
36445 #, gcc-internal-format, gfc-internal-format
36446 msgid "UNIT specification at %L must be an INTEGER expression or a CHARACTER variable"
36447 msgstr "La especificación UNIT en %L debe ser una expresión INTEGER o una variable CHARACTER"
36448
36449-#: fortran/io.c:2853
36450+#: fortran/io.c:2849
36451 #, gcc-internal-format, gfc-internal-format
36452 msgid "Invalid form of WRITE statement at %L, UNIT required"
36453 msgstr "Forma inválida de la declaración WRITE en %L, se requiere UNIT"
36454
36455-#: fortran/io.c:2864
36456+#: fortran/io.c:2860
36457 #, gcc-internal-format, gfc-internal-format
36458 msgid "Internal unit with vector subscript at %L"
36459 msgstr "Unidad interna con subíndice vectorial en %L"
36460
36461-#: fortran/io.c:2878
36462+#: fortran/io.c:2874
36463 #, gcc-internal-format, gfc-internal-format
36464 msgid "External IO UNIT cannot be an array at %L"
36465 msgstr "Un IO UNIT externo no puede ser una matriz en %L"
36466
36467-#: fortran/io.c:2906
36468+#: fortran/io.c:2902
36469 #, gcc-internal-format, gfc-internal-format
36470 msgid "NAMELIST '%s' in READ statement at %L contains the symbol '%s' which may not appear in a variable definition context"
36471 msgstr "NAMELIST '%s' en la declaración READ en %L contiene el símbolo '%s' el cual puede no aparecer en un contexto de definición de variable"
36472
36473-#: fortran/io.c:2916
36474+#: fortran/io.c:2912
36475 #, gcc-internal-format, gfc-internal-format
36476 msgid "Extension: Comma before i/o item list at %L"
36477 msgstr "Extensión: Una coma antes de una lista de elementos de e/s en %L"
36478
36479-#: fortran/io.c:2926
36480+#: fortran/io.c:2922
36481 #, gcc-internal-format, gfc-internal-format
36482 msgid "ERR tag label %d at %L not defined"
36483 msgstr "La etiqueta ERR %d en %L no está definida"
36484
36485-#: fortran/io.c:2938
36486+#: fortran/io.c:2934
36487 #, gcc-internal-format, gfc-internal-format
36488 msgid "END tag label %d at %L not defined"
36489 msgstr "La etiqueta END %d en %L no está definida"
36490
36491-#: fortran/io.c:2950
36492+#: fortran/io.c:2946
36493 #, gcc-internal-format, gfc-internal-format
36494 msgid "EOR tag label %d at %L not defined"
36495 msgstr "La etiqueta EOR %d en %L no está definida"
36496
36497-#: fortran/io.c:2960
36498+#: fortran/io.c:2956
36499 #, gcc-internal-format, gfc-internal-format
36500 msgid "FORMAT label %d at %L not defined"
36501 msgstr "La etiqueta FORMAT %d en %L no está definida"
36502
36503-#: fortran/io.c:3082
36504+#: fortran/io.c:3078
36505 #, gcc-internal-format, gfc-internal-format
36506 msgid "Syntax error in I/O iterator at %C"
36507 msgstr "Error sintáctico en el iterador de E/S en %C"
36508
36509-#: fortran/io.c:3113
36510+#: fortran/io.c:3109
36511 #, gcc-internal-format, gfc-internal-format
36512 msgid "Expected variable in READ statement at %C"
36513 msgstr "Se esperaba una variable en la declaración READ en %C"
36514
36515-#: fortran/io.c:3119
36516+#: fortran/io.c:3115
36517 #, gcc-internal-format, gfc-internal-format
36518 msgid "Expected expression in %s statement at %C"
36519 msgstr "Se esperaba una expresión en la declaración %s en %C"
36520
36521 #. A general purpose syntax error.
36522-#: fortran/io.c:3177 fortran/io.c:3776 fortran/gfortran.h:2465
36523+#: fortran/io.c:3173 fortran/io.c:3772 fortran/gfortran.h:2465
36524 #, gcc-internal-format, gfc-internal-format
36525 msgid "Syntax error in %s statement at %C"
36526 msgstr "Error sintáctico en la declaración %s en %C"
36527
36528-#: fortran/io.c:3262
36529+#: fortran/io.c:3258
36530 #, gcc-internal-format, gfc-internal-format
36531 msgid "Fortran 2003: Internal file at %L with namelist"
36532 msgstr "Fortran 2003: Fichero interno en %L con lista de nombres"
36533
36534-#: fortran/io.c:3320
36535+#: fortran/io.c:3316
36536 #, gcc-internal-format, gfc-internal-format
36537 msgid "ASYNCHRONOUS= specifier at %L must be an initialization expression"
36538 msgstr "El especificador ASYNCHRONOUS= en %L debe ser una expresión de inicialización"
36539
36540-#: fortran/io.c:3388
36541+#: fortran/io.c:3384
36542 #, gcc-internal-format, gfc-internal-format
36543 msgid "Fortran 2003: PAD= at %C not allowed in Fortran 95"
36544 msgstr "Fortran 2003: No se permite PAD= en %C en Fortran 95"
36545
36546-#: fortran/io.c:3409
36547+#: fortran/io.c:3450
36548 #, gcc-internal-format, gfc-internal-format
36549-msgid "Fortran 2003: ROUND= at %C not allowed in Fortran 95"
36550-msgstr "Fortran 2003: No se permite ROUND= en %C en Fortran 95"
36551+msgid "Fortran 2003: DELIM= at %C not allowed in Fortran 95"
36552+msgstr "Fortran 2003: no se permite DELIM= en %C en Fortran 95"
36553
36554-#: fortran/io.c:3603
36555+#: fortran/io.c:3599
36556 #, gcc-internal-format, gfc-internal-format
36557 msgid "PRINT namelist at %C is an extension"
36558 msgstr "La lista de nombres PRINT en %C es una extensión"
36559
36560-#: fortran/io.c:3746
36561+#: fortran/io.c:3742
36562 #, gcc-internal-format, gfc-internal-format
36563 msgid "Expected comma in I/O list at %C"
36564 msgstr "Se esperaba una coma en la lista E/S en %C"
36565
36566-#: fortran/io.c:3810
36567+#: fortran/io.c:3806
36568 #, gcc-internal-format, gfc-internal-format
36569 msgid "PRINT statement at %C not allowed within PURE procedure"
36570 msgstr "No se permite la declaración PRINT en %C dentro un procedimiento PURE"
36571
36572-#: fortran/io.c:3969 fortran/io.c:4023
36573+#: fortran/io.c:3965 fortran/io.c:4019
36574 #, gcc-internal-format, gfc-internal-format
36575 msgid "INQUIRE statement not allowed in PURE procedure at %C"
36576 msgstr "No se permite la declaración INQUIRE en el procedimiento PURE en %C"
36577
36578-#: fortran/io.c:3999
36579+#: fortran/io.c:3995
36580 #, gcc-internal-format, gfc-internal-format
36581 msgid "IOLENGTH tag invalid in INQUIRE statement at %C"
36582 msgstr "La etiqueta IOLENGHT es inválida en la declaración INQUIRE en %C"
36583
36584-#: fortran/io.c:4009 fortran/trans-io.c:1229
36585+#: fortran/io.c:4005 fortran/trans-io.c:1229
36586 #, gcc-internal-format, gfc-internal-format
36587 msgid "INQUIRE statement at %L cannot contain both FILE and UNIT specifiers"
36588 msgstr "La declaración INQUIRE en %L no puede contener especificadores FILE y UNIT al mismo tiempo"
36589
36590-#: fortran/io.c:4016
36591+#: fortran/io.c:4012
36592 #, gcc-internal-format, gfc-internal-format
36593 msgid "INQUIRE statement at %L requires either FILE or UNIT specifier"
36594 msgstr "La declaración INQUIRE en %L requiere un especificador FILE o UNIT"
36595
36596-#: fortran/io.c:4032
36597+#: fortran/io.c:4028
36598 #, gcc-internal-format, gfc-internal-format
36599 msgid "INQUIRE statement at %L requires a PENDING= specifier with the ID= specifier"
36600 msgstr "La declaración INQUIRE en %L requiere un especificador PENDING= con el especificador ID="
36601
36602-#: fortran/io.c:4203
36603+#: fortran/io.c:4199
36604 #, gcc-internal-format, gfc-internal-format
36605 msgid "Fortran 2003: WAIT at %C not allowed in Fortran 95"
36606 msgstr "Fortran 2003: No se permite WAIT en %C en Fortran 95"
36607
36608-#: fortran/io.c:4209
36609+#: fortran/io.c:4205
36610 #, gcc-internal-format, gfc-internal-format
36611 msgid "WAIT statement not allowed in PURE procedure at %C"
36612 msgstr "No se permite una declaración WAIT en un procedimiento PURE en %C"
36613
36614-#: fortran/match.c:164
36615+#: fortran/match.c:165
36616 #, gcc-internal-format, gfc-internal-format
36617 msgid "Missing ')' in statement at or before %L"
36618 msgstr "Falta un ')' en la declaración en o antes de %L"
36619
36620-#: fortran/match.c:169
36621+#: fortran/match.c:170
36622 #, gcc-internal-format, gfc-internal-format
36623 msgid "Missing '(' in statement at or before %L"
36624 msgstr "Falta un '(' en la declaración en o antes de %L"
36625
36626-#: fortran/match.c:366
36627+#: fortran/match.c:367
36628 #, gcc-internal-format, gfc-internal-format
36629 msgid "Integer too large at %C"
36630 msgstr "Entero demasiado grande en %C"
36631
36632-#: fortran/match.c:459 fortran/parse.c:693
36633+#: fortran/match.c:460 fortran/parse.c:693
36634 #, gcc-internal-format, gfc-internal-format
36635 msgid "Too many digits in statement label at %C"
36636 msgstr "Demasiados dígitos en la declaración de etiqueta en %C"
36637
36638-#: fortran/match.c:465
36639+#: fortran/match.c:466
36640 #, gcc-internal-format, gfc-internal-format
36641 msgid "Statement label at %C is zero"
36642 msgstr "La etiqueta de declaración en %C es cero"
36643
36644-#: fortran/match.c:498
36645+#: fortran/match.c:499
36646 #, gcc-internal-format, gfc-internal-format
36647 msgid "Label name '%s' at %C is ambiguous"
36648 msgstr "El nombre de etiqueta '%s' en %C es ambigua"
36649
36650-#: fortran/match.c:504
36651+#: fortran/match.c:505
36652 #, gcc-internal-format, gfc-internal-format
36653 msgid "Duplicate construct label '%s' at %C"
36654 msgstr "Etiqueta construct '%s' duplicada en %C"
36655
36656-#: fortran/match.c:535
36657+#: fortran/match.c:536
36658 #, gcc-internal-format, gfc-internal-format
36659 msgid "Invalid character in name at %C"
36660 msgstr "Carácter inválido en el nombre en %C"
36661
36662-#: fortran/match.c:548 fortran/match.c:629
36663+#: fortran/match.c:549
36664 #, gcc-internal-format, gfc-internal-format
36665 msgid "Name at %C is too long"
36666 msgstr "El nombre en %C es demasiado largo"
36667
36668-#: fortran/match.c:559
36669+#: fortran/match.c:560
36670 #, gcc-internal-format, gfc-internal-format
36671 msgid "Invalid character '$' at %C. Use -fdollar-ok to allow it as an extension"
36672 msgstr "Carácter '$' inválido en %C. Use -fdollar-ok para permitirlo como una extensión"
36673
36674-#: fortran/match.c:610 fortran/match.c:658
36675+#: fortran/match.c:610 fortran/match.c:657
36676 #, gcc-internal-format, gfc-internal-format
36677 msgid "Invalid C name in NAME= specifier at %C"
36678 msgstr "Nombre C inválido en el especificador NAME= en %C"
36679
36680-#: fortran/match.c:649
36681+#: fortran/match.c:648
36682 #, gcc-internal-format, gfc-internal-format
36683 msgid "Embedded space in NAME= specifier at %C"
36684 msgstr "Espacio incrustado en el especificador NAME= en %C"
36685
36686-#: fortran/match.c:973
36687+#: fortran/match.c:972
36688 #, gcc-internal-format, gfc-internal-format
36689 msgid "Loop variable at %C cannot be a coarray"
36690 msgstr "La variable de bucle en %C no puede ser una comatriz"
36691
36692-#: fortran/match.c:979
36693+#: fortran/match.c:978
36694 #, gcc-internal-format, gfc-internal-format
36695 msgid "Loop variable at %C cannot be a sub-component"
36696 msgstr "La variable de bucle en %C no puede ser un subcomponente"
36697
36698-#: fortran/match.c:1013
36699+#: fortran/match.c:1012
36700 #, gcc-internal-format, gfc-internal-format
36701 msgid "Expected a step value in iterator at %C"
36702 msgstr "Se esperaba un valor de paso en el iterador en %C"
36703
36704-#: fortran/match.c:1025
36705+#: fortran/match.c:1024
36706 #, gcc-internal-format, gfc-internal-format
36707 msgid "Syntax error in iterator at %C"
36708 msgstr "Error sintáctico en el iterador en %C"
36709
36710-#: fortran/match.c:1266
36711+#: fortran/match.c:1265
36712 #, gcc-internal-format, gfc-internal-format
36713 msgid "Invalid form of PROGRAM statement at %C"
36714 msgstr "Forma inválida de la declaración PROGRAM en %C"
36715
36716-#: fortran/match.c:1396 fortran/match.c:1477
36717+#: fortran/match.c:1395 fortran/match.c:1476
36718 #, gcc-internal-format, gfc-internal-format
36719 msgid "Obsolescent feature: Arithmetic IF statement at %C"
36720 msgstr "Característica obsoleta: Declaración IF aritmética en %C"
36721
36722-#: fortran/match.c:1452
36723+#: fortran/match.c:1451
36724 #, gcc-internal-format, gfc-internal-format
36725 msgid "Syntax error in IF-expression at %C"
36726 msgstr "Error sintáctico en la expresión IF en %C"
36727
36728-#: fortran/match.c:1463
36729+#: fortran/match.c:1462
36730 #, gcc-internal-format, gfc-internal-format
36731 msgid "Block label not appropriate for arithmetic IF statement at %C"
36732 msgstr "La etiqueta de bloque no es apropiada para la declaración IF aritmética en %C"
36733
36734-#: fortran/match.c:1501
36735+#: fortran/match.c:1500
36736 #, gcc-internal-format, gfc-internal-format
36737 msgid "Block label is not appropriate for IF statement at %C"
36738 msgstr "La etiqueta de bloque no es apropiada para la declaración IF en %C"
36739
36740-#: fortran/match.c:1587
36741+#: fortran/match.c:1586
36742 #, gcc-internal-format, gfc-internal-format
36743 msgid "Cannot assign to a named constant at %C"
36744 msgstr "No se puede asignar a una constante nombrada en %C"
36745
36746-#: fortran/match.c:1597
36747+#: fortran/match.c:1596
36748 #, gcc-internal-format, gfc-internal-format
36749 msgid "Unclassifiable statement in IF-clause at %C"
36750 msgstr "Declaración inclasificable en la cláusula IF en %C"
36751
36752-#: fortran/match.c:1604
36753+#: fortran/match.c:1603
36754 #, gcc-internal-format, gfc-internal-format
36755 msgid "Syntax error in IF-clause at %C"
36756 msgstr "Error sintáctico en la cláusula IF en %C"
36757
36758-#: fortran/match.c:1648
36759+#: fortran/match.c:1647
36760 #, gcc-internal-format, gfc-internal-format
36761 msgid "Unexpected junk after ELSE statement at %C"
36762 msgstr "Basura inesperada después de la declaración ELSE en %C"
36763
36764-#: fortran/match.c:1654 fortran/match.c:1689
36765+#: fortran/match.c:1653 fortran/match.c:1688
36766 #, gcc-internal-format, gfc-internal-format
36767 msgid "Label '%s' at %C doesn't match IF label '%s'"
36768 msgstr "La etiqueta '%s' en %C no coincide con la etiqueta IF '%s'"
36769
36770-#: fortran/match.c:1683
36771+#: fortran/match.c:1682
36772 #, gcc-internal-format, gfc-internal-format
36773 msgid "Unexpected junk after ELSE IF statement at %C"
36774 msgstr "Basura inesperada después de la declaración ELSE IF en %C"
36775
36776-#: fortran/match.c:1747
36777+#: fortran/match.c:1746
36778 #, gcc-internal-format, gfc-internal-format
36779 msgid "Image control statement CRITICAL at %C in PURE procedure"
36780 msgstr "Declaración de control de imagen CRITICAL en %C en un procedimiento PURE"
36781
36782-#: fortran/match.c:1753
36783+#: fortran/match.c:1752
36784 #, gcc-internal-format, gfc-internal-format
36785 msgid "Image control statement CRITICAL at %C in DO CONCURRENT block"
36786 msgstr "Declaración de control de imagen CRITICAL en %C en un bloque DO CONCURRENT"
36787
36788-#: fortran/match.c:1761
36789+#: fortran/match.c:1760
36790 #, gcc-internal-format, gfc-internal-format
36791 msgid "Fortran 2008: CRITICAL statement at %C"
36792 msgstr "Fortran 2008: Declaración CRITICAL en %C"
36793
36794-#: fortran/match.c:1773
36795+#: fortran/match.c:1772
36796 #, gcc-internal-format, gfc-internal-format
36797 msgid "Nested CRITICAL block at %C"
36798 msgstr "Bloque CRITICAL anidado en %C"
36799
36800-#: fortran/match.c:1825
36801+#: fortran/match.c:1824
36802 #, gcc-internal-format, gfc-internal-format
36803 msgid "Expected association list at %C"
36804 msgstr "Se esperaba una lista lista de asociación en %C"
36805
36806-#: fortran/match.c:1838
36807+#: fortran/match.c:1837
36808 #, gcc-internal-format, gfc-internal-format
36809 msgid "Expected association at %C"
36810 msgstr "Se esperaba una asociación en %C"
36811
36812-#: fortran/match.c:1847
36813+#: fortran/match.c:1846
36814 #, gcc-internal-format, gfc-internal-format
36815 msgid "Duplicate name '%s' in association at %C"
36816 msgstr "Nombre '%s' duplicado en la asociación en %C"
36817
36818-#: fortran/match.c:1855
36819+#: fortran/match.c:1854
36820 #, gcc-internal-format, gfc-internal-format
36821 msgid "Association target at %C must not be coindexed"
36822 msgstr "El objetivo de asociación en %C no debe estar coindizado"
36823
36824-#: fortran/match.c:1873
36825+#: fortran/match.c:1872
36826 #, gcc-internal-format, gfc-internal-format
36827 msgid "Expected ')' or ',' at %C"
36828 msgstr "Se esperaba ')' o ',' en %C"
36829
36830-#: fortran/match.c:1891
36831+#: fortran/match.c:1890
36832 #, gcc-internal-format, gfc-internal-format
36833 msgid "Junk after ASSOCIATE statement at %C"
36834 msgstr "Basura después de la declaración ASSOCIATE en %C"
36835
36836-#: fortran/match.c:1960
36837+#: fortran/match.c:1959
36838 #, gcc-internal-format, gfc-internal-format
36839 msgid "Derived type '%s' at %L may not be ABSTRACT"
36840 msgstr "El tipo derivado '%s' en %L no debe ser ABSTRACT"
36841
36842-#: fortran/match.c:2023
36843+#: fortran/match.c:2022
36844 #, gcc-internal-format, gfc-internal-format
36845 msgid "Invalid type-spec at %C"
36846 msgstr "Especificación de tipo inválida en %C"
36847
36848-#: fortran/match.c:2117
36849+#: fortran/match.c:2116
36850 #, gcc-internal-format, gfc-internal-format
36851 msgid "Syntax error in FORALL iterator at %C"
36852 msgstr "Error sintáctico en el iterador FORALL en %C"
36853
36854-#: fortran/match.c:2385
36855+#: fortran/match.c:2384
36856 #, gcc-internal-format, gfc-internal-format
36857 msgid "Fortran 2008: DO CONCURRENT construct at %C"
36858 msgstr "Fortran 2008: Constructor DO CONCURRENT en %C"
36859
36860-#: fortran/match.c:2511
36861+#: fortran/match.c:2510
36862 #, gcc-internal-format, gfc-internal-format
36863 msgid "Name '%s' in %s statement at %C is unknown"
36864 msgstr "Se desconoce el nombre '%s' en la declaración %s en %C"
36865
36866-#: fortran/match.c:2519
36867+#: fortran/match.c:2518
36868 #, gcc-internal-format, gfc-internal-format
36869 msgid "Name '%s' in %s statement at %C is not a construct name"
36870 msgstr "El nombre '%s' en la declaración %s en %C no es un nombre de constructor"
36871
36872-#: fortran/match.c:2531
36873+#: fortran/match.c:2530
36874 #, gcc-internal-format, gfc-internal-format
36875 msgid "%s statement at %C leaves CRITICAL construct"
36876 msgstr "La declaración %s en %C deja una construcción CRITICAL"
36877
36878 #. F2008, C821 & C845.
36879-#: fortran/match.c:2539
36880+#: fortran/match.c:2538
36881 #, gcc-internal-format, gfc-internal-format
36882 msgid "%s statement at %C leaves DO CONCURRENT construct"
36883 msgstr "La declaración %s en %C deja una construcción DO CONCURRENT"
36884
36885-#: fortran/match.c:2551
36886+#: fortran/match.c:2550
36887 #, gcc-internal-format, gfc-internal-format
36888 msgid "%s statement at %C is not within a construct"
36889 msgstr "La declaración %s en %C no está dentro de una construcción"
36890
36891-#: fortran/match.c:2554
36892+#: fortran/match.c:2553
36893 #, gcc-internal-format, gfc-internal-format
36894 msgid "%s statement at %C is not within construct '%s'"
36895 msgstr "La declaración %s en %C no está dentro de la construcción '%s'"
36896
36897-#: fortran/match.c:2579
36898+#: fortran/match.c:2578
36899 #, gcc-internal-format, gfc-internal-format
36900 msgid "CYCLE statement at %C is not applicable to non-loop construct '%s'"
36901 msgstr "La declaración CYCLE en %C no se aplica a la construcción '%s' que no es bucle"
36902
36903-#: fortran/match.c:2584
36904+#: fortran/match.c:2583
36905 #, gcc-internal-format, gfc-internal-format
36906 msgid "Fortran 2008: EXIT statement with no do-construct-name at %C"
36907 msgstr "Fortran 2008: Declaración EXIT sin nombre de constructor do en %C"
36908
36909-#: fortran/match.c:2590
36910+#: fortran/match.c:2589
36911 #, gcc-internal-format, gfc-internal-format
36912 msgid "%s statement at %C is not applicable to construct '%s'"
36913 msgstr "La declaración %s en %C no se aplica a la construcción '%s'"
36914
36915-#: fortran/match.c:2597
36916+#: fortran/match.c:2596
36917 #, gcc-internal-format, gfc-internal-format
36918 msgid "%s statement at %C leaving OpenMP structured block"
36919 msgstr "La declaración %s en %C deja un bloque estructurado OpenMP"
36920
36921-#: fortran/match.c:2621
36922+#: fortran/match.c:2620
36923 #, gcc-internal-format, gfc-internal-format
36924 msgid "EXIT statement at %C terminating !$OMP DO loop"
36925 msgstr "La declaración EXIT en %C termina el bucle !$OMP DO"
36926
36927-#: fortran/match.c:2626
36928+#: fortran/match.c:2625
36929 #, gcc-internal-format, gfc-internal-format
36930 msgid "CYCLE statement at %C to non-innermost collapsed !$OMP DO loop"
36931 msgstr "La declaración CYCLE en %C para el bucle !$OMP DO colapsado que no es el más interno"
36932
36933-#: fortran/match.c:2693
36934+#: fortran/match.c:2692
36935 #, gcc-internal-format, gfc-internal-format
36936 msgid "Image control statement STOP at %C in CRITICAL block"
36937 msgstr "Declaración de control de imagen STOP en %C en el bloque CRITICAL"
36938
36939-#: fortran/match.c:2698
36940+#: fortran/match.c:2697
36941 #, gcc-internal-format, gfc-internal-format
36942 msgid "Image control statement STOP at %C in DO CONCURRENT block"
36943 msgstr "Declaración de control de imagen STOP en %C en el bloque DO CONCURRENT"
36944
36945-#: fortran/match.c:2706
36946+#: fortran/match.c:2705
36947 #, gcc-internal-format, gfc-internal-format
36948 msgid "STOP code at %L must be either INTEGER or CHARACTER type"
36949 msgstr "El código STOP en %L debe ser de tipo INTEGER o CHARACTER"
36950
36951-#: fortran/match.c:2713
36952+#: fortran/match.c:2712
36953 #, gcc-internal-format, gfc-internal-format
36954 msgid "STOP code at %L must be scalar"
36955 msgstr "El código STOP en %L debe ser escalar"
36956
36957-#: fortran/match.c:2721
36958+#: fortran/match.c:2720
36959 #, gcc-internal-format, gfc-internal-format
36960 msgid "STOP code at %L must be default character KIND=%d"
36961 msgstr "El código STOP en %L debe ser un carácter por defecto KIND=%d"
36962
36963-#: fortran/match.c:2729
36964+#: fortran/match.c:2728
36965 #, gcc-internal-format, gfc-internal-format
36966 msgid "STOP code at %L must be default integer KIND=%d"
36967 msgstr "El código STOP en %L debe ser un entero por defecto KIND=%d"
36968
36969-#: fortran/match.c:2775
36970+#: fortran/match.c:2774
36971 #, gcc-internal-format, gfc-internal-format
36972 msgid "Deleted feature: PAUSE statement at %C"
36973 msgstr "Característica eliminada: declaración PAUSE en %C"
36974
36975-#: fortran/match.c:2798
36976+#: fortran/match.c:2797
36977 #, gcc-internal-format, gfc-internal-format
36978 msgid "Fortran 2008: ERROR STOP statement at %C"
36979 msgstr "Fortran 2008: Declaración ERROR STOP en %C"
36980
36981-#: fortran/match.c:2824
36982+#: fortran/match.c:2823
36983 #, gcc-internal-format, gfc-internal-format
36984 msgid "Image control statement %s at %C in PURE procedure"
36985 msgstr "Declaración de control de imagen %s en %C en un procedimiento PURE"
36986
36987-#: fortran/match.c:2840
36988+#: fortran/match.c:2839
36989 #, gcc-internal-format, gfc-internal-format
36990 msgid "Image control statement %s at %C in CRITICAL block"
36991 msgstr "Declaración de control de imagen %s en %C en el bloque CRITICAL"
36992
36993-#: fortran/match.c:2847
36994+#: fortran/match.c:2846
36995 #, gcc-internal-format, gfc-internal-format
36996 msgid "Image control statement %s at %C in DO CONCURRENT block"
36997 msgstr "Declaración de control de imagen %s en %C en el bloque DO CONCURRENT"
36998
36999-#: fortran/match.c:2877 fortran/match.c:3088 fortran/match.c:3600
37000-#: fortran/match.c:3924
37001+#: fortran/match.c:2876 fortran/match.c:3087 fortran/match.c:3599
37002+#: fortran/match.c:3923
37003 #, gcc-internal-format, gfc-internal-format
37004 msgid "Redundant STAT tag found at %L "
37005 msgstr "Se encontró una etiqueta STAT redundante en %L "
37006
37007-#: fortran/match.c:2898 fortran/match.c:3108 fortran/match.c:3627
37008-#: fortran/match.c:3950
37009+#: fortran/match.c:2897 fortran/match.c:3107 fortran/match.c:3626
37010+#: fortran/match.c:3949
37011 #, gcc-internal-format, gfc-internal-format
37012 msgid "Redundant ERRMSG tag found at %L "
37013 msgstr "Se encontró una etiqueta ERRMSG redundante en %L "
37014
37015-#: fortran/match.c:2919
37016+#: fortran/match.c:2918
37017 #, gcc-internal-format, gfc-internal-format
37018 msgid "Redundant ACQUIRED_LOCK tag found at %L "
37019 msgstr "Se encontró una etiqueta ACQUIRED_LOCK redundante en %L "
37020
37021-#: fortran/match.c:2980
37022+#: fortran/match.c:2979
37023 #, gcc-internal-format, gfc-internal-format
37024 msgid "Fortran 2008: LOCK statement at %C"
37025 msgstr "Fortran 2008: Declaración LOCK en %C"
37026
37027-#: fortran/match.c:2991
37028+#: fortran/match.c:2990
37029 #, gcc-internal-format, gfc-internal-format
37030 msgid "Fortran 2008: UNLOCK statement at %C"
37031 msgstr "Fortran 2008: Declaración UNLOCK en %C"
37032
37033-#: fortran/match.c:3017
37034+#: fortran/match.c:3016
37035 #, gcc-internal-format, gfc-internal-format
37036 msgid "Image control statement SYNC at %C in PURE procedure"
37037 msgstr "Declaración de control de imagen SYNC en %C en un procedimiento PURE"
37038
37039-#: fortran/match.c:3024
37040+#: fortran/match.c:3023
37041 #, gcc-internal-format, gfc-internal-format
37042 msgid "Fortran 2008: SYNC statement at %C"
37043 msgstr "Fortran 2008: Declaración SYNC en %C"
37044
37045-#: fortran/match.c:3036
37046+#: fortran/match.c:3035
37047 #, gcc-internal-format, gfc-internal-format
37048 msgid "Image control statement SYNC at %C in CRITICAL block"
37049 msgstr "Declaración de control de imagen SYNC en %C en un bloque CRITICAL"
37050
37051-#: fortran/match.c:3042
37052+#: fortran/match.c:3041
37053 #, gcc-internal-format, gfc-internal-format
37054 msgid "Image control statement SYNC at %C in DO CONCURRENT block"
37055 msgstr "Declaración de control de imagen SYNC en %C en un bloque DO CONCURRENT"
37056
37057-#: fortran/match.c:3222
37058+#: fortran/match.c:3221
37059 #, gcc-internal-format, gfc-internal-format
37060 msgid "Deleted feature: ASSIGN statement at %C"
37061 msgstr "Característica eliminada: declaración ASSIGN en %C"
37062
37063-#: fortran/match.c:3268
37064+#: fortran/match.c:3267
37065 #, gcc-internal-format, gfc-internal-format
37066 msgid "Deleted feature: Assigned GOTO statement at %C"
37067 msgstr "Característica eliminada: declaración GOTO asignada en %C"
37068
37069-#: fortran/match.c:3315 fortran/match.c:3368
37070+#: fortran/match.c:3314 fortran/match.c:3367
37071 #, gcc-internal-format, gfc-internal-format
37072 msgid "Statement label list in GOTO at %C cannot be empty"
37073 msgstr "La lista de etiquetas de declaración en GOTO en %C no puede estar vacía"
37074
37075-#: fortran/match.c:3378
37076+#: fortran/match.c:3377
37077 #, gcc-internal-format, gfc-internal-format
37078 msgid "Obsolescent feature: Computed GOTO at %C"
37079 msgstr "Característica obsoleta: GOTO computado en %C"
37080
37081-#: fortran/match.c:3450
37082+#: fortran/match.c:3449
37083 #, gcc-internal-format, gfc-internal-format
37084 msgid "Error in type-spec at %L"
37085 msgstr "Error en la especificación de tipo en %L"
37086
37087-#: fortran/match.c:3460
37088+#: fortran/match.c:3459
37089 #, gcc-internal-format, gfc-internal-format
37090 msgid "Fortran 2003: typespec in ALLOCATE at %L"
37091 msgstr "Fortran 2003: Especificación de tipo en ALLOCATE en %L"
37092
37093-#: fortran/match.c:3499
37094+#: fortran/match.c:3498
37095 #, gcc-internal-format, gfc-internal-format
37096 msgid "Bad allocate-object at %C for a PURE procedure"
37097 msgstr "Objeto de alojamiento erróneo en %C para un procedimiento PURE"
37098
37099-#: fortran/match.c:3524
37100+#: fortran/match.c:3523
37101 #, gcc-internal-format, gfc-internal-format
37102 msgid "ALLOCATE of coarray at %C in DO CONCURRENT block"
37103 msgstr "ALLOCATE de comatriz en %C en el bloque DO CONCURRENT"
37104
37105-#: fortran/match.c:3529
37106+#: fortran/match.c:3528
37107 #, gcc-internal-format, gfc-internal-format
37108 msgid "ALLOCATE of coarray at %C in CRITICAL block"
37109 msgstr "ALLOCATE de comatriz en %C en el bloque CRITICAL"
37110
37111-#: fortran/match.c:3541
37112+#: fortran/match.c:3540
37113 #, gcc-internal-format, gfc-internal-format
37114 msgid "Type of entity at %L is type incompatible with typespec"
37115 msgstr "El tipo de entidad en %L es de tipo incompatible con la especificación de tipo"
37116
37117-#: fortran/match.c:3549
37118+#: fortran/match.c:3548
37119 #, gcc-internal-format, gfc-internal-format
37120 msgid "Kind type parameter for entity at %L differs from the kind type parameter of the typespec"
37121 msgstr "El parámetro de tipo de género para la entidad en %L difiere del parámetro de tipo de género de la especificación de tipo"
37122
37123-#: fortran/match.c:3576
37124+#: fortran/match.c:3575
37125 #, gcc-internal-format, gfc-internal-format
37126 msgid "Allocate-object at %L is not a nonprocedure pointer or an allocatable variable"
37127 msgstr "El objeto de alojamiento en %L no es un puntero que no es procedimiento o una variable de alojamiento"
37128
37129-#: fortran/match.c:3583
37130+#: fortran/match.c:3582
37131 #, gcc-internal-format, gfc-internal-format
37132 msgid "Shape specification for allocatable scalar at %C"
37133 msgstr "Especificación de forma para el escalar asignable en %C"
37134
37135-#: fortran/match.c:3620
37136+#: fortran/match.c:3619
37137 #, gcc-internal-format, gfc-internal-format
37138 msgid "Fortran 2003: ERRMSG tag at %L"
37139 msgstr "Fortran 2003: Etiqueta ERRMSG en %L"
37140
37141-#: fortran/match.c:3644
37142+#: fortran/match.c:3643
37143 #, gcc-internal-format, gfc-internal-format
37144 msgid "Fortran 2003: SOURCE tag at %L"
37145 msgstr "Fortran 2003: Etiqueta SOURCE en %L"
37146
37147-#: fortran/match.c:3651
37148+#: fortran/match.c:3650
37149 #, gcc-internal-format, gfc-internal-format
37150 msgid "Redundant SOURCE tag found at %L "
37151 msgstr "Se encontró una etiqueta SOURCE redundante en %L "
37152
37153-#: fortran/match.c:3658
37154+#: fortran/match.c:3657
37155 #, gcc-internal-format, gfc-internal-format
37156 msgid "SOURCE tag at %L conflicts with the typespec at %L"
37157 msgstr "La etiqueta SOURCE en %L tiene conflictos con la especificación de tipo en %L"
37158
37159-#: fortran/match.c:3664
37160+#: fortran/match.c:3663
37161 #, gcc-internal-format, gfc-internal-format
37162-msgid "Fortran 2008: SOURCE tag at %L with more than a single allocate objects"
37163+msgid "Fortran 2008: SOURCE tag at %L with more than a single allocate object"
37164 msgstr "Fortran 2008: Etiqueta SOURCE en %L con más de un objeto de alojamiento sencillo"
37165
37166-#: fortran/match.c:3682
37167+#: fortran/match.c:3681
37168 #, gcc-internal-format, gfc-internal-format
37169 msgid "Fortran 2008: MOLD tag at %L"
37170 msgstr "Fortran 2008: Etiqueta MOLD en %L"
37171
37172-#: fortran/match.c:3689
37173+#: fortran/match.c:3688
37174 #, gcc-internal-format, gfc-internal-format
37175 msgid "Redundant MOLD tag found at %L "
37176 msgstr "Se encontró una etiqueta MOLD redundante en %L "
37177
37178-#: fortran/match.c:3696
37179+#: fortran/match.c:3695
37180 #, gcc-internal-format, gfc-internal-format
37181 msgid "MOLD tag at %L conflicts with the typespec at %L"
37182 msgstr "La etiqueta MOLD en %L tiene conflictos con la especificación de tipo en %L"
37183
37184-#: fortran/match.c:3722
37185+#: fortran/match.c:3721
37186 #, gcc-internal-format, gfc-internal-format
37187 msgid "MOLD tag at %L conflicts with SOURCE tag at %L"
37188 msgstr "La etiqueta MOLD en %L tiene conflictos con la etiqueta SOURCE en %L"
37189
37190-#: fortran/match.c:3730
37191+#: fortran/match.c:3729
37192 #, gcc-internal-format, gfc-internal-format
37193 msgid "Allocate-object at %L with a deferred type parameter requires either a type-spec or SOURCE tag or a MOLD tag"
37194 msgstr "El objeto de alojamiento en %L con un parámetro de tipo diferido requiere una especificación de tipo o una etiqueta SOURCE o una etiqueta MOLD"
37195
37196-#: fortran/match.c:3791
37197+#: fortran/match.c:3790
37198 #, gcc-internal-format, gfc-internal-format
37199-msgid "Pointer object at %C shall not be conindexed"
37200+msgid "Pointer object at %C shall not be coindexed"
37201 msgstr "El objeto puntero en %C no debe tener un coíndice"
37202
37203-#: fortran/match.c:3874
37204+#: fortran/match.c:3873
37205 #, gcc-internal-format, gfc-internal-format
37206 msgid "Illegal allocate-object at %C for a PURE procedure"
37207 msgstr "Objeto de alojamiento ilegal en %C para un procedimiento PURE"
37208
37209-#: fortran/match.c:3884
37210+#: fortran/match.c:3883
37211 #, gcc-internal-format, gfc-internal-format
37212 msgid "DEALLOCATE of coarray at %C in DO CONCURRENT block"
37213 msgstr "DEALLOCATE de comatriz en %C en el bloque DO CONCURRENT"
37214
37215-#: fortran/match.c:3891
37216+#: fortran/match.c:3890
37217 #, gcc-internal-format, gfc-internal-format
37218 msgid "DEALLOCATE of coarray at %C in CRITICAL block"
37219 msgstr "DEALLOCATE de comatriz en %C en el bloque CRITICAL"
37220
37221-#: fortran/match.c:3907
37222+#: fortran/match.c:3906
37223 #, gcc-internal-format, gfc-internal-format
37224 msgid "Allocate-object at %C is not a nonprocedure pointer or an allocatable variable"
37225 msgstr "El objeto de alojamiento en %C no es un puntero que no es procedimiento o una variable de alojamiento"
37226
37227-#: fortran/match.c:3944
37228+#: fortran/match.c:3943
37229 #, gcc-internal-format, gfc-internal-format
37230 msgid "Fortran 2003: ERRMSG at %L"
37231 msgstr "Fortran 2003: ERRMSG en %L"
37232
37233-#: fortran/match.c:4002
37234+#: fortran/match.c:4001
37235 #, gcc-internal-format, gfc-internal-format
37236 msgid "Image control statement RETURN at %C in CRITICAL block"
37237 msgstr "Declaración de control de imagen RETURN en %C en un bloque CRITICAL"
37238
37239-#: fortran/match.c:4008
37240+#: fortran/match.c:4007
37241 #, gcc-internal-format, gfc-internal-format
37242 msgid "Image control statement RETURN at %C in DO CONCURRENT block"
37243 msgstr "Declaración de control de imagen RETURN en %C en un bloque DO CRITICAL"
37244
37245-#: fortran/match.c:4017
37246+#: fortran/match.c:4016
37247 #, gcc-internal-format, gfc-internal-format
37248 msgid "Alternate RETURN statement at %C is only allowed within a SUBROUTINE"
37249 msgstr "La declaración RETURN alternativa en %C sólo se permite dentro de una SUBROUTINE"
37250
37251-#: fortran/match.c:4022
37252+#: fortran/match.c:4021
37253 #, gcc-internal-format, gfc-internal-format
37254 msgid "Obsolescent feature: Alternate RETURN at %C"
37255 msgstr "Característica obsoleta: RETURN alternativo en %C"
37256
37257-#: fortran/match.c:4052
37258+#: fortran/match.c:4051
37259 #, gcc-internal-format, gfc-internal-format
37260 msgid "Extension: RETURN statement in main program at %C"
37261 msgstr "Extensión: declaración RETURN en el programa principal en %C"
37262
37263-#: fortran/match.c:4080
37264+#: fortran/match.c:4079
37265 #, gcc-internal-format, gfc-internal-format
37266 msgid "Expected component reference at %C"
37267 msgstr "Se esperaba una referencia de componente en %C"
37268
37269-#: fortran/match.c:4086
37270+#: fortran/match.c:4085
37271 #, gcc-internal-format, gfc-internal-format
37272 msgid "Junk after CALL at %C"
37273 msgstr "Basura después de CALL en %C"
37274
37275-#: fortran/match.c:4096
37276+#: fortran/match.c:4095
37277 #, gcc-internal-format, gfc-internal-format
37278 msgid "Expected type-bound procedure or procedure pointer component at %C"
37279 msgstr "Se esperaba un procedimiento enlazado a tipo o un procedimiento de componente puntero en %C"
37280
37281-#: fortran/match.c:4316
37282+#: fortran/match.c:4315
37283 #, gcc-internal-format, gfc-internal-format
37284 msgid "Syntax error in common block name at %C"
37285 msgstr "Error sintáctico en el nombre de bloque común en %C"
37286
37287-#: fortran/match.c:4352
37288+#: fortran/match.c:4351
37289 #, gcc-internal-format, gfc-internal-format
37290 msgid "Symbol '%s' at %C is already an external symbol that is not COMMON"
37291 msgstr "El símbolo '%s' en %C ya es un símbolo externo que no es COMMON"
37292@@ -38997,137 +39203,137 @@
37293 #. If we find an error, just print it and continue,
37294 #. cause it's just semantic, and we can see if there
37295 #. are more errors.
37296-#: fortran/match.c:4411
37297+#: fortran/match.c:4410
37298 #, gcc-internal-format, gfc-internal-format
37299 msgid "Variable '%s' at %L in common block '%s' at %C must be declared with a C interoperable kind since common block '%s' is bind(c)"
37300 msgstr "La variable '%s' en %L en el bloque común '%s' en %C se debe declarar con género interoperable con C porque el bloque común '%s' es bind(c)"
37301
37302-#: fortran/match.c:4420
37303+#: fortran/match.c:4419
37304 #, gcc-internal-format, gfc-internal-format
37305 msgid "Variable '%s' in common block '%s' at %C can not be bind(c) since it is not global"
37306 msgstr "La variable '%s' en el bloque común '%s' en %C no puede ser bind(c) porque no es global"
37307
37308-#: fortran/match.c:4427
37309+#: fortran/match.c:4426
37310 #, gcc-internal-format, gfc-internal-format
37311 msgid "Symbol '%s' at %C is already in a COMMON block"
37312 msgstr "El símbolo '%s' en %C ya está en un bloque COMMON"
37313
37314-#: fortran/match.c:4435
37315+#: fortran/match.c:4434
37316 #, gcc-internal-format, gfc-internal-format
37317 msgid "Initialized symbol '%s' at %C can only be COMMON in BLOCK DATA"
37318 msgstr "El símbolo inicializado '%s' en %C sólo puede ser COMMON en BLOCK DATA"
37319
37320-#: fortran/match.c:4462
37321+#: fortran/match.c:4461
37322 #, gcc-internal-format, gfc-internal-format
37323 msgid "Array specification for symbol '%s' in COMMON at %C must be explicit"
37324 msgstr "La especificación de matriz para el símbolo '%s' en COMMON en %C debe ser explícita"
37325
37326-#: fortran/match.c:4472
37327+#: fortran/match.c:4471
37328 #, gcc-internal-format, gfc-internal-format
37329 msgid "Symbol '%s' in COMMON at %C cannot be a POINTER array"
37330 msgstr "El símbolo '%s' en COMMON en %C no puede ser una matriz POINTER"
37331
37332-#: fortran/match.c:4504
37333+#: fortran/match.c:4503
37334 #, gcc-internal-format, gfc-internal-format
37335 msgid "Symbol '%s', in COMMON block '%s' at %C is being indirectly equivalenced to another COMMON block '%s'"
37336 msgstr "El símbolo '%s', en el bloque COMMON '%s' en %C está siendo indirectamente equivalente a otro bloque COMMON '%s'"
37337
37338-#: fortran/match.c:4612
37339+#: fortran/match.c:4611
37340 #, gcc-internal-format, gfc-internal-format
37341 msgid "Namelist group name '%s' at %C already has a basic type of %s"
37342 msgstr "El nombre de grupo de lista de nombres '%s' en %C ya tiene un tipo básico de %s"
37343
37344-#: fortran/match.c:4620
37345+#: fortran/match.c:4619
37346 #, gcc-internal-format, gfc-internal-format
37347 msgid "Namelist group name '%s' at %C already is USE associated and cannot be respecified."
37348 msgstr "El nombre de grupo de lista de nombres '%s' en %C ya está asociado con USE y no se puede reespecificar."
37349
37350-#: fortran/match.c:4647
37351+#: fortran/match.c:4646
37352 #, gcc-internal-format, gfc-internal-format
37353 msgid "Assumed size array '%s' in namelist '%s' at %C is not allowed"
37354 msgstr "No se permite la matriz de tamaño asumido '%s' en la lista de nombres '%s' en %C"
37355
37356-#: fortran/match.c:4781
37357+#: fortran/match.c:4780
37358 #, gcc-internal-format, gfc-internal-format
37359 msgid "Derived type component %C is not a permitted EQUIVALENCE member"
37360 msgstr "El componente de tipo derivado %C no es un miembro EQUIVALENCE permitido"
37361
37362-#: fortran/match.c:4789
37363+#: fortran/match.c:4788
37364 #, gcc-internal-format, gfc-internal-format
37365 msgid "Array reference in EQUIVALENCE at %C cannot be an array section"
37366 msgstr "La referencia a matriz en EQUIVALENCE en %C no puede ser una sección de matriz"
37367
37368-#: fortran/match.c:4817
37369+#: fortran/match.c:4816
37370 #, gcc-internal-format, gfc-internal-format
37371 msgid "EQUIVALENCE at %C requires two or more objects"
37372 msgstr "El EQUIVALENCE en %C requiere dos o más objetos"
37373
37374-#: fortran/match.c:4831
37375+#: fortran/match.c:4830
37376 #, gcc-internal-format, gfc-internal-format
37377 msgid "Attempt to indirectly overlap COMMON blocks %s and %s by EQUIVALENCE at %C"
37378 msgstr "Se intentó sobreescribir indirectamente los bloques COMMON %s y %s con EQUIVALENCE en %C"
37379
37380-#: fortran/match.c:4844
37381+#: fortran/match.c:4843
37382 #, gcc-internal-format, gfc-internal-format
37383 msgid "Expecting a comma in EQUIVALENCE at %C"
37384 msgstr "Se esperaba una coma en EQUIVALENCE en %C"
37385
37386-#: fortran/match.c:4960
37387+#: fortran/match.c:4959
37388 #, gcc-internal-format, gfc-internal-format
37389 msgid "Statement function at %L is recursive"
37390 msgstr "La función de declaración en %L es recursiva"
37391
37392-#: fortran/match.c:4966
37393+#: fortran/match.c:4965
37394 #, gcc-internal-format, gfc-internal-format
37395 msgid "Obsolescent feature: Statement function at %C"
37396 msgstr "Característica obsoleta: Función de declaración en %C"
37397
37398-#: fortran/match.c:5052
37399+#: fortran/match.c:5051
37400 #, gcc-internal-format, gfc-internal-format
37401 msgid "Expected initialization expression in CASE at %C"
37402 msgstr "Se esperaba la inicialización de la expresión en CASE en %C"
37403
37404-#: fortran/match.c:5084
37405+#: fortran/match.c:5083
37406 #, gcc-internal-format, gfc-internal-format
37407 msgid "Expected block name '%s' of SELECT construct at %C"
37408 msgstr "Se esperaba el nombre de bloque '%s' de la construcción SELECT en %C"
37409
37410-#: fortran/match.c:5268
37411+#: fortran/match.c:5267
37412 #, gcc-internal-format, gfc-internal-format
37413 msgid "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
37414 msgstr "El selector en SELECT TYPE en %C no es una variable nombrada; use nombre-asociado =>"
37415
37416-#: fortran/match.c:5301
37417+#: fortran/match.c:5300
37418 #, gcc-internal-format, gfc-internal-format
37419 msgid "Unexpected CASE statement at %C"
37420 msgstr "Declaración CASE inesperada en %C"
37421
37422-#: fortran/match.c:5353
37423+#: fortran/match.c:5352
37424 #, gcc-internal-format, gfc-internal-format
37425 msgid "Syntax error in CASE specification at %C"
37426 msgstr "Error sintáctico en la especificación CASE en %C"
37427
37428-#: fortran/match.c:5371
37429+#: fortran/match.c:5370
37430 #, gcc-internal-format, gfc-internal-format
37431 msgid "Unexpected TYPE IS statement at %C"
37432 msgstr "Declaración TYPE IS inesperada en %C"
37433
37434-#: fortran/match.c:5404
37435+#: fortran/match.c:5403
37436 #, gcc-internal-format, gfc-internal-format
37437 msgid "Syntax error in TYPE IS specification at %C"
37438 msgstr "Error sintáctico en la especificación TYPE IS en %C"
37439
37440-#: fortran/match.c:5477
37441+#: fortran/match.c:5476
37442 #, gcc-internal-format, gfc-internal-format
37443 msgid "Syntax error in CLASS IS specification at %C"
37444 msgstr "Error sintáctico en la especificación CLASS IS en %C"
37445
37446-#: fortran/match.c:5599
37447+#: fortran/match.c:5598
37448 #, gcc-internal-format, gfc-internal-format
37449 msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
37450 msgstr "La declaración ELSEWHERE en %C no está dentro de un bloque WHERE"
37451
37452-#: fortran/match.c:5637
37453+#: fortran/match.c:5636
37454 #, gcc-internal-format, gfc-internal-format
37455 msgid "Label '%s' at %C doesn't match WHERE label '%s'"
37456 msgstr "La etiqueta '%s' en %C no coincide con la etiqueta WHERE '%s'"
37457@@ -39158,190 +39364,190 @@
37458 msgid "Extension: Unary operator following arithmetic operator (use parentheses) at %C"
37459 msgstr "Extensión: Operador unario después de un operador aritmético (usar paréntesis) en %C"
37460
37461-#: fortran/module.c:548
37462+#: fortran/module.c:555
37463 #, gcc-internal-format, gfc-internal-format
37464 msgid "Fortran 2003: module nature in USE statement at %C"
37465 msgstr "Fortran 2003: módulo natural en la declaración USE en %C"
37466
37467-#: fortran/module.c:560
37468+#: fortran/module.c:567
37469 #, gcc-internal-format, gfc-internal-format
37470 msgid "Module nature in USE statement at %C shall be either INTRINSIC or NON_INTRINSIC"
37471 msgstr "El módulo natural en la declaración USE en %C debe ser uno de INTRINSIC o NON_INTRINSIC"
37472
37473-#: fortran/module.c:573
37474+#: fortran/module.c:580
37475 #, gcc-internal-format, gfc-internal-format
37476 msgid "\"::\" was expected after module nature at %C but was not found"
37477 msgstr "Se esperaba \"::\" después del módulo natural en %C pero no se encontró"
37478
37479-#: fortran/module.c:583
37480+#: fortran/module.c:590
37481 #, gcc-internal-format, gfc-internal-format
37482 msgid "Fortran 2003: \"USE :: module\" at %C"
37483 msgstr "Fortran 2003: \"USE :: module\" en %C"
37484
37485-#: fortran/module.c:643
37486+#: fortran/module.c:650
37487 #, gcc-internal-format, gfc-internal-format
37488 msgid "Missing generic specification in USE statement at %C"
37489 msgstr "Falta la especificación genérica en la declaración USE en %C"
37490
37491-#: fortran/module.c:651
37492+#: fortran/module.c:658
37493 #, gcc-internal-format, gfc-internal-format
37494 msgid "Fortran 2003: Renaming operators in USE statements at %C"
37495 msgstr "Fortran 2003: Se renombran operadores en declaraciones USE en %C"
37496
37497-#: fortran/module.c:693
37498+#: fortran/module.c:700
37499 #, gcc-internal-format, gfc-internal-format
37500 msgid "The name '%s' at %C has already been used as an external module name."
37501 msgstr "El nombre '%s' en %C ya se está usando como un nombre de módulo externo."
37502
37503-#: fortran/module.c:1006
37504+#: fortran/module.c:1013
37505 #, gcc-internal-format, gfc-internal-format
37506 msgid "Reading module %s at line %d column %d: %s"
37507 msgstr "Leyendo el módulo %s en la línea %d columna %d: %s"
37508
37509-#: fortran/module.c:1010
37510+#: fortran/module.c:1017
37511 #, gcc-internal-format, gfc-internal-format
37512 msgid "Writing module %s at line %d column %d: %s"
37513 msgstr "Escribiendo el módulo %s en la línea %d columna %d: %s"
37514
37515-#: fortran/module.c:1014
37516+#: fortran/module.c:1021
37517 #, gcc-internal-format, gfc-internal-format
37518 msgid "Module %s at line %d column %d: %s"
37519 msgstr "Módulo %s en la línea %d columna %d: %s"
37520
37521-#: fortran/module.c:1449
37522+#: fortran/module.c:1469
37523 #, gcc-internal-format, gfc-internal-format
37524 msgid "Error writing modules file: %s"
37525 msgstr "Error al escribir el fichero de módulos: %s"
37526
37527-#: fortran/module.c:3396
37528+#: fortran/module.c:3416
37529 #, gcc-internal-format, gfc-internal-format
37530 msgid "Namelist %s cannot be renamed by USE association to %s"
37531 msgstr "La lista de nombres %s no se puede renombrar por asociación de USE a %s"
37532
37533-#: fortran/module.c:4427
37534+#: fortran/module.c:4461
37535 #, gcc-internal-format, gfc-internal-format
37536 msgid "'%s' of module '%s', imported at %C, is also the name of the current program unit"
37537 msgstr "'%s' del módulo '%s', importado en %C, es también el nombre de la unidad de programa actual"
37538
37539-#: fortran/module.c:4722
37540+#: fortran/module.c:4760
37541 #, gcc-internal-format, gfc-internal-format
37542 msgid "Symbol '%s' referenced at %L not found in module '%s'"
37543 msgstr "El símbolo '%s' referenciado en %L no se encontró en el módulo '%s'"
37544
37545-#: fortran/module.c:4729
37546+#: fortran/module.c:4767
37547 #, gcc-internal-format, gfc-internal-format
37548 msgid "User operator '%s' referenced at %L not found in module '%s'"
37549 msgstr "El operador de usuario '%s' referenciado en %L no se encontró en el módulo '%s'"
37550
37551-#: fortran/module.c:4734
37552+#: fortran/module.c:4772
37553 #, gcc-internal-format, gfc-internal-format
37554 msgid "Intrinsic operator '%s' referenced at %L not found in module '%s'"
37555 msgstr "El operador intrínseco '%s' referenciado en %L no se encontró en el módulo '%s'"
37556
37557-#: fortran/module.c:5372
37558+#: fortran/module.c:5409
37559 #, gcc-internal-format, gfc-internal-format
37560 msgid "Can't open module file '%s' for writing at %C: %s"
37561 msgstr "No se puede abrir el fichero de módulo '%s' para escritura en %C: %s"
37562
37563 # El mensaje de error seguramente está mal redactado. cfuga
37564-#: fortran/module.c:5405
37565+#: fortran/module.c:5442
37566 #, gcc-internal-format, gfc-internal-format
37567 msgid "Error writing module file '%s' for writing: %s"
37568 msgstr "Error al escribir al fichero de módulo '%s' para escritura: %s"
37569
37570-#: fortran/module.c:5414
37571+#: fortran/module.c:5451
37572 #, gcc-internal-format, gfc-internal-format
37573 msgid "Can't delete module file '%s': %s"
37574 msgstr "No se puede borrar el fichero de módulo '%s': %s"
37575
37576-#: fortran/module.c:5417
37577+#: fortran/module.c:5454
37578 #, gcc-internal-format, gfc-internal-format
37579 msgid "Can't rename module file '%s' to '%s': %s"
37580 msgstr "No se puede renombrar el fichero de módulo '%s' a '%s': %s"
37581
37582-#: fortran/module.c:5423
37583+#: fortran/module.c:5460
37584 #, gcc-internal-format, gfc-internal-format
37585 msgid "Can't delete temporary module file '%s': %s"
37586 msgstr "No se puede borrar el fichero de módulo temporal '%s': %s"
37587
37588-#: fortran/module.c:5442 fortran/module.c:5654 fortran/module.c:5687
37589-#: fortran/module.c:5729
37590+#: fortran/module.c:5479 fortran/module.c:5691 fortran/module.c:5724
37591+#: fortran/module.c:5766
37592 #, gcc-internal-format, gfc-internal-format
37593 msgid "Symbol '%s' already declared"
37594 msgstr "El símbolo '%s' ya se había declarado"
37595
37596-#: fortran/module.c:5546 fortran/module.c:5825
37597+#: fortran/module.c:5583 fortran/module.c:5862
37598 #, gcc-internal-format, gfc-internal-format
37599 msgid "The symbol '%s', referenced at %L, is not in the selected standard"
37600 msgstr "El símbolo '%s' referenciado en %L, no está en el módulo estándar"
37601
37602-#: fortran/module.c:5633
37603+#: fortran/module.c:5670
37604 #, gcc-internal-format, gfc-internal-format
37605 msgid "Symbol '%s' referenced at %L not found in intrinsic module ISO_C_BINDING"
37606 msgstr "El símbolo '%s' referenciado en %L no se encontró en el módulo intrínseco ISO_C_BINDING"
37607
37608-#: fortran/module.c:5810
37609+#: fortran/module.c:5847
37610 #, gcc-internal-format, gfc-internal-format
37611 msgid "Use of intrinsic module '%s' at %C conflicts with non-intrinsic module name used previously"
37612 msgstr "El uso del módulo intrínseco '%s' en %C tiene conflictos con un nombre de módulo no intrínseco usado previamente"
37613
37614-#: fortran/module.c:5833
37615+#: fortran/module.c:5870
37616 #, gcc-internal-format, gfc-internal-format
37617 msgid "Use of the NUMERIC_STORAGE_SIZE named constant from intrinsic module ISO_FORTRAN_ENV at %L is incompatible with option %s"
37618 msgstr "El uso de la constante nombrada NUMERIC_STORAGE_SIZE del módulo intrínseco ISO_FORTRAN_ENV en %L es incompatible con la opción %s"
37619
37620-#: fortran/module.c:5903
37621+#: fortran/module.c:5940
37622 #, gcc-internal-format, gfc-internal-format
37623 msgid "Use of the NUMERIC_STORAGE_SIZE named constant from intrinsic module ISO_FORTRAN_ENV at %C is incompatible with option %s"
37624 msgstr "El uso de la constante nombrada NUMERIC_STORAGE_SIZE del módulo intrínseco ISO_FORTRAN_ENV en %C es incompatible con la opción %s"
37625
37626-#: fortran/module.c:5961
37627+#: fortran/module.c:5998
37628 #, gcc-internal-format, gfc-internal-format
37629 msgid "Symbol '%s' referenced at %L not found in intrinsic module ISO_FORTRAN_ENV"
37630 msgstr "El símbolo '%s' referenciado en %L no se encontró en el módulo intrínseco ISO_FORTRAN_ENV"
37631
37632-#: fortran/module.c:6000
37633+#: fortran/module.c:6037
37634 #, gcc-internal-format, gfc-internal-format
37635 msgid "Fortran 2003: ISO_FORTRAN_ENV intrinsic module at %C"
37636 msgstr "Fortran 2003: Módulo intrínseco ISO_FORTRAN_ENV en %C"
37637
37638-#: fortran/module.c:6010
37639+#: fortran/module.c:6047
37640 #, gcc-internal-format, gfc-internal-format
37641 msgid "Fortran 2003: ISO_C_BINDING module at %C"
37642 msgstr "Fortran 2003: Módulo ISO_C_BINDING en %C"
37643
37644-#: fortran/module.c:6022
37645+#: fortran/module.c:6059
37646 #, gcc-internal-format, gfc-internal-format
37647 msgid "Can't find an intrinsic module named '%s' at %C"
37648 msgstr "No se puede encontrar un módulo intrínseco llamado '%s' en %C"
37649
37650-#: fortran/module.c:6027
37651+#: fortran/module.c:6064
37652 #, gcc-internal-format, gfc-internal-format
37653 msgid "Can't open module file '%s' for reading at %C: %s"
37654 msgstr "No se puede abrir el fichero de módulo '%s' para lectura en %C: %s"
37655
37656-#: fortran/module.c:6035
37657+#: fortran/module.c:6072
37658 #, gcc-internal-format, gfc-internal-format
37659 msgid "Use of non-intrinsic module '%s' at %C conflicts with intrinsic module name used previously"
37660 msgstr "El uso del módulo '%s' que no es intrínseco en %C tiene conflictos con el nombre del módulo intrínseco usado previamente"
37661
37662-#: fortran/module.c:6055
37663+#: fortran/module.c:6092
37664 #, gcc-internal-format, gfc-internal-format
37665 msgid "File '%s' opened at %C is not a GFORTRAN module file"
37666 msgstr "El fichero '%s' abierto en %C no es un fichero de módulo GFORTRAN"
37667
37668-#: fortran/module.c:6062
37669+#: fortran/module.c:6099
37670 #, gcc-internal-format, gfc-internal-format
37671 msgid "Parse error when checking module version for file '%s' opened at %C"
37672 msgstr "Error de decodificación al revisar la versión de módulo para el fichero '%s' abierto en %C"
37673
37674-#: fortran/module.c:6067
37675+#: fortran/module.c:6104
37676 #, gcc-internal-format, gfc-internal-format
37677 msgid "Wrong module version '%s' (expected '%s') for file '%s' opened at %C"
37678 msgstr "Versión de módulo '%s' errónea (se esperaba '%s) para el fichero '%s' abierto en %C"
37679
37680 # No se puede hacer el mismo juego de palabras que en inglés. cfuga
37681-#: fortran/module.c:6082
37682+#: fortran/module.c:6119
37683 #, gcc-internal-format
37684 msgid "Can't USE the same module we're building!"
37685 msgstr "¡No se puede hacer USE del mismo módulo que estamos construyendo!"
37686@@ -39426,7 +39632,7 @@
37687 msgid "Unexpected junk after NOWAIT clause at %C"
37688 msgstr "Basura inesperada después de la cláusula NOWAIT en %C"
37689
37690-#: fortran/openmp.c:819 fortran/resolve.c:8998 fortran/resolve.c:9476
37691+#: fortran/openmp.c:819 fortran/resolve.c:8985 fortran/resolve.c:9463
37692 #, gcc-internal-format, gfc-internal-format
37693 msgid "IF clause at %L requires a scalar LOGICAL expression"
37694 msgstr "La cláusula IF en %L requiere una expresión LOGICAL escalar"
37695@@ -40745,713 +40951,713 @@
37696 msgid "Non-RECURSIVE procedure '%s' at %L is possibly calling itself recursively. Declare it RECURSIVE or use -frecursive"
37697 msgstr "El procedimiento que no es RECURSIVE '%s' en %L posiblemente se está llamando a sí mismo recursivamente. Declárelo RECURSIVE o utilice -frecursive"
37698
37699-#: fortran/resolve.c:1620 fortran/resolve.c:8534 fortran/resolve.c:9423
37700+#: fortran/resolve.c:1610 fortran/resolve.c:8521 fortran/resolve.c:9410
37701 #, gcc-internal-format, gfc-internal-format
37702 msgid "Label %d referenced at %L is never defined"
37703 msgstr "La etiqueta %d referenciada en %L nunca se define"
37704
37705-#: fortran/resolve.c:1665
37706+#: fortran/resolve.c:1655
37707 #, gcc-internal-format, gfc-internal-format
37708 msgid "Statement function '%s' at %L is not allowed as an actual argument"
37709 msgstr "La función de declaración '%s' en %L no se permite como un argumento actual"
37710
37711-#: fortran/resolve.c:1673
37712+#: fortran/resolve.c:1663
37713 #, gcc-internal-format, gfc-internal-format
37714 msgid "Intrinsic '%s' at %L is not allowed as an actual argument"
37715 msgstr "El intrínseco '%s' en %L no se permite como un argumento actual"
37716
37717-#: fortran/resolve.c:1681
37718+#: fortran/resolve.c:1671
37719 #, gcc-internal-format, gfc-internal-format
37720 msgid "Fortran 2008: Internal procedure '%s' is used as actual argument at %L"
37721 msgstr "Fortran 2008: Se usa el procedimiento interno '%s' como un argumento actual en %L"
37722
37723-#: fortran/resolve.c:1689
37724+#: fortran/resolve.c:1679
37725 #, gcc-internal-format, gfc-internal-format
37726 msgid "ELEMENTAL non-INTRINSIC procedure '%s' is not allowed as an actual argument at %L"
37727 msgstr "El procedimiento ELEMENTAL que no es INTRINSIC '%s' no se permite como un argumento actual en %L"
37728
37729-#: fortran/resolve.c:1716
37730+#: fortran/resolve.c:1706
37731 #, gcc-internal-format, gfc-internal-format
37732 msgid "Unable to find a specific INTRINSIC procedure for the reference '%s' at %L"
37733 msgstr "No se puede encontrar un procedimiento INTRINSIC específico para la referencia '%s' en %L"
37734
37735-#: fortran/resolve.c:1738
37736+#: fortran/resolve.c:1728
37737 #, gcc-internal-format, gfc-internal-format
37738 msgid "Symbol '%s' at %L is ambiguous"
37739 msgstr "El símbolo '%s' en %L es ambiguo"
37740
37741-#: fortran/resolve.c:1793
37742+#: fortran/resolve.c:1783
37743 #, gcc-internal-format, gfc-internal-format
37744 msgid "By-value argument at %L is not of numeric type"
37745 msgstr "El argumento por valor en %L no es de tipo numérico"
37746
37747-#: fortran/resolve.c:1800
37748+#: fortran/resolve.c:1790
37749 #, gcc-internal-format, gfc-internal-format
37750 msgid "By-value argument at %L cannot be an array or an array section"
37751 msgstr "El argumento por valor en %L no puede ser una matriz o una sección de matriz"
37752
37753-#: fortran/resolve.c:1814
37754+#: fortran/resolve.c:1804
37755 #, gcc-internal-format, gfc-internal-format
37756 msgid "By-value argument at %L is not allowed in this context"
37757 msgstr "El argumento por valor en %L no se permite en este contexto"
37758
37759-#: fortran/resolve.c:1826
37760+#: fortran/resolve.c:1816
37761 #, gcc-internal-format, gfc-internal-format
37762 msgid "Passing internal procedure at %L by location not allowed"
37763 msgstr "No se permite el paso del procedimiento interno en %L por ubicación"
37764
37765-#: fortran/resolve.c:1837
37766+#: fortran/resolve.c:1827
37767 #, gcc-internal-format, gfc-internal-format
37768 msgid "Coindexed actual argument at %L with ultimate pointer component"
37769 msgstr "Argumento actual coindizado en %L con componente puntero último"
37770
37771-#: fortran/resolve.c:1960
37772+#: fortran/resolve.c:1950
37773 #, gcc-internal-format, gfc-internal-format
37774 msgid "'%s' at %L is an array and OPTIONAL; IF IT IS MISSING, it cannot be the actual argument of an ELEMENTAL procedure unless there is a non-optional argument with the same rank (12.4.1.5)"
37775 msgstr "'%s' en %L es una matriz y OPTIONAL; SI FALTA, no puede ser el argumento actual de un procedimiento ELEMENTAL a menos que exista un argumento que no sea opcional con el mismo rango (12.4.1.5)"
37776
37777-#: fortran/resolve.c:1999
37778+#: fortran/resolve.c:1989
37779 #, gcc-internal-format, gfc-internal-format
37780 msgid "Actual argument at %L for INTENT(%s) dummy '%s' of ELEMENTAL subroutine '%s' is a scalar, but another actual argument is an array"
37781 msgstr "El argumento actual en %L para el dummy INTENT(%s) '%s' de la subrutina ELEMENTAL '%s' es un escalar, pero otro argumento actual es una matriz"
37782
37783-#: fortran/resolve.c:2161
37784+#: fortran/resolve.c:2151
37785 #, gcc-internal-format, gfc-internal-format
37786 msgid "Character length mismatch in return type of function '%s' at %L (%ld/%ld)"
37787 msgstr "No coincide la longitud de caracteres en el tipo de devolución de la función '%s' en %L (%ld/%ld)"
37788
37789-#: fortran/resolve.c:2169
37790+#: fortran/resolve.c:2159
37791 #, gcc-internal-format, gfc-internal-format
37792 msgid "Return type mismatch of function '%s' at %L (%s/%s)"
37793 msgstr "No coincide el tiop de devolución de la función '%s' en %L (%s/%s)"
37794
37795-#: fortran/resolve.c:2188
37796+#: fortran/resolve.c:2178
37797 #, gcc-internal-format, gfc-internal-format
37798 msgid "Dummy argument '%s' of procedure '%s' at %L has an attribute that requires an explicit interface for this procedure"
37799 msgstr "El argumento dummy '%s' del procedimiento '%s' en %L tiene un atributo que requiere una interfaz explícita para este procedimiento"
37800
37801-#: fortran/resolve.c:2198
37802+#: fortran/resolve.c:2188
37803 #, gcc-internal-format, gfc-internal-format
37804 msgid "Procedure '%s' at %L with assumed-shape dummy argument '%s' must have an explicit interface"
37805 msgstr "El procedimiento '%s' en %L con argumento dummy de forma asumida '%s' debe tener una interfaz explícita"
37806
37807-#: fortran/resolve.c:2206
37808+#: fortran/resolve.c:2196
37809 #, gcc-internal-format, gfc-internal-format
37810 msgid "Procedure '%s' at %L with coarray dummy argument '%s' must have an explicit interface"
37811 msgstr "El procedimiento '%s' en %L con argumento dummy de comatriz '%s' debe tener una interfaz explícita"
37812
37813-#: fortran/resolve.c:2214
37814+#: fortran/resolve.c:2204
37815 #, gcc-internal-format, gfc-internal-format
37816 msgid "Procedure '%s' at %L with parametrized derived type argument '%s' must have an explicit interface"
37817 msgstr "El procedimiento '%s' en %L con un argumento de tipo derivado parametrizado '%s' debe tener una interfaz explícita"
37818
37819-#: fortran/resolve.c:2223
37820+#: fortran/resolve.c:2213
37821 #, gcc-internal-format, gfc-internal-format
37822 msgid "Procedure '%s' at %L with polymorphic dummy argument '%s' must have an explicit interface"
37823 msgstr "El procedimiento '%s' en %L con argumento dummy polimórfico '%s' debe tener una interfaz explícita"
37824
37825-#: fortran/resolve.c:2235
37826+#: fortran/resolve.c:2225
37827 #, gcc-internal-format, gfc-internal-format
37828 msgid "The reference to function '%s' at %L either needs an explicit INTERFACE or the rank is incorrect"
37829 msgstr "La referencia a la función '%s' en %L necesita una INTERFACE explícita o el rango es incorrecto"
37830
37831-#: fortran/resolve.c:2247
37832+#: fortran/resolve.c:2237
37833 #, gcc-internal-format, gfc-internal-format
37834 msgid "Function '%s' at %L with a POINTER or ALLOCATABLE result must have an explicit interface"
37835 msgstr "La función '%s' en %L con un resultado POINTER o ALLOCATABLE debe tener una interfaz explícita"
37836
37837-#: fortran/resolve.c:2260
37838+#: fortran/resolve.c:2250
37839 #, gcc-internal-format, gfc-internal-format
37840 msgid "Nonconstant character-length function '%s' at %L must have an explicit interface"
37841 msgstr "La función de longitud de carácter automática '%s' que no es constante en %L debe una interfaz explícita"
37842
37843-#: fortran/resolve.c:2270
37844+#: fortran/resolve.c:2260
37845 #, gcc-internal-format, gfc-internal-format
37846 msgid "ELEMENTAL procedure '%s' at %L must have an explicit interface"
37847 msgstr "El procedimiento ELEMENTAL '%s' en %L debe tener una interfaz explícita"
37848
37849-#: fortran/resolve.c:2277
37850+#: fortran/resolve.c:2267
37851 #, gcc-internal-format, gfc-internal-format
37852 msgid "Procedure '%s' at %L with BIND(C) attribute must have an explicit interface"
37853 msgstr "El procedimiento '%s' en %L con atributo BIND(C) debe tener una interfaz explícita"
37854
37855-#: fortran/resolve.c:2383
37856+#: fortran/resolve.c:2373
37857 #, gcc-internal-format, gfc-internal-format
37858 msgid "There is no specific function for the generic '%s' at %L"
37859 msgstr "No hay una función específica para el genérico '%s' en %L"
37860
37861-#: fortran/resolve.c:2401
37862+#: fortran/resolve.c:2391
37863 #, gcc-internal-format, gfc-internal-format
37864 msgid "Generic function '%s' at %L is not consistent with a specific intrinsic interface"
37865 msgstr "La función genérica '%s' en %L no es consistente con una interfaz intrínseca específica"
37866
37867-#: fortran/resolve.c:2439
37868+#: fortran/resolve.c:2429
37869 #, gcc-internal-format, gfc-internal-format
37870 msgid "Function '%s' at %L is INTRINSIC but is not compatible with an intrinsic"
37871 msgstr "La función '%s' en %L es INTRINSIC pero no es compatible con un intrínseco"
37872
37873-#: fortran/resolve.c:2488
37874+#: fortran/resolve.c:2478
37875 #, gcc-internal-format, gfc-internal-format
37876 msgid "Unable to resolve the specific function '%s' at %L"
37877 msgstr "No se puede resolver la función específica '%s' en %L"
37878
37879-#: fortran/resolve.c:2544 fortran/resolve.c:13705
37880+#: fortran/resolve.c:2534 fortran/resolve.c:13693
37881 #, gcc-internal-format, gfc-internal-format
37882 msgid "Function '%s' at %L has no IMPLICIT type"
37883 msgstr "La función '%s' en %L no es de tipo IMPLICIT"
37884
37885-#: fortran/resolve.c:2746
37886+#: fortran/resolve.c:2735
37887 #, gcc-internal-format, gfc-internal-format
37888 msgid "Argument to '%s' at %L is not a variable"
37889 msgstr "El argumento de '%s' en %L no es una variable"
37890
37891-#: fortran/resolve.c:2793
37892+#: fortran/resolve.c:2779
37893 #, gcc-internal-format, gfc-internal-format
37894 msgid "More actual than formal arguments in '%s' call at %L"
37895 msgstr "Más argumentos actuales que formales en la llamada '%s' en %L"
37896
37897-#: fortran/resolve.c:2805
37898+#: fortran/resolve.c:2791
37899 #, gcc-internal-format, gfc-internal-format
37900 msgid "Parameter '%s' to '%s' at %L must be either a TARGET or an associated pointer"
37901 msgstr "El parámetro '%s' para '%s' en %L debe ser un TARGET o un puntero asociado"
37902
37903-#: fortran/resolve.c:2814
37904+#: fortran/resolve.c:2800
37905 #, gcc-internal-format, gfc-internal-format
37906 msgid "Coindexed argument not permitted in '%s' call at %L"
37907 msgstr "No se permite un argumento coindizado en la llamada '%s' en %L"
37908
37909-#: fortran/resolve.c:2837
37910+#: fortran/resolve.c:2823
37911 #, gcc-internal-format, gfc-internal-format
37912 msgid "Array section not permitted in '%s' call at %L"
37913 msgstr "No se permite una sección de matriz en la llamada '%s' en %L"
37914
37915-#: fortran/resolve.c:2848
37916+#: fortran/resolve.c:2834
37917 #, gcc-internal-format, gfc-internal-format
37918 msgid "Array section in '%s' call at %L"
37919 msgstr "Sección de matriz en la llamada '%s' en %L"
37920
37921-#: fortran/resolve.c:2867
37922+#: fortran/resolve.c:2853
37923 #, gcc-internal-format, gfc-internal-format
37924 msgid "Allocatable variable '%s' used as a parameter to '%s' at %L must not be an array of zero size"
37925 msgstr "La variable alojable '%s' usada como un parámetro para '%s' en %L no debe ser una matriz de tamaño cero"
37926
37927-#: fortran/resolve.c:2884
37928+#: fortran/resolve.c:2870
37929 #, gcc-internal-format, gfc-internal-format
37930 msgid "Assumed-shape array '%s' at %L cannot be an argument to the procedure '%s' because it is not C interoperable"
37931 msgstr "La matriz de forma asumida '%s' en %L no puede ser un argumento para el procedimiento '%s' porque no es interoperable con C"
37932
37933-#: fortran/resolve.c:2894
37934+#: fortran/resolve.c:2880
37935 #, gcc-internal-format, gfc-internal-format
37936 msgid "Deferred-shape array '%s' at %L cannot be an argument to the procedure '%s' because it is not C interoperable"
37937 msgstr "La matriz de forma diferida '%s' en %L no puede ser un argumento para el procedimiento '%s' porque no es interoperable con C"
37938
37939-#: fortran/resolve.c:2917 fortran/resolve.c:2954
37940+#: fortran/resolve.c:2903 fortran/resolve.c:2940
37941 #, gcc-internal-format, gfc-internal-format
37942 msgid "CHARACTER argument '%s' to '%s' at %L must have a length of 1"
37943 msgstr "El argumento CHARACTER '%s' para '%s' en %L debe ser de longitud 1"
37944
37945 #. Case 1c, section 15.1.2.5, J3/04-007: an associated
37946 #. scalar pointer.
37947-#: fortran/resolve.c:2930
37948+#: fortran/resolve.c:2916
37949 #, gcc-internal-format, gfc-internal-format
37950 msgid "Argument '%s' to '%s' at %L must be an associated scalar POINTER"
37951 msgstr "El argumento '%s' para '%s' en %L debe ser un POINTER escalar asociado"
37952
37953-#: fortran/resolve.c:2946
37954+#: fortran/resolve.c:2932
37955 #, gcc-internal-format, gfc-internal-format
37956 msgid "Parameter '%s' to '%s' at %L must be a scalar"
37957 msgstr "El argumento '%s' para '%s' en %L debe ser un escalar"
37958
37959-#: fortran/resolve.c:2962
37960+#: fortran/resolve.c:2948
37961 #, gcc-internal-format, gfc-internal-format
37962 msgid "Parameter '%s' to '%s' at %L must not be polymorphic"
37963 msgstr "El parámetro '%s' para '%s' en %L no debe ser polimórfico"
37964
37965 #. TODO: Update this error message to allow for procedure
37966 #. pointers once they are implemented.
37967-#: fortran/resolve.c:2975
37968+#: fortran/resolve.c:2961
37969 #, gcc-internal-format, gfc-internal-format
37970 msgid "Parameter '%s' to '%s' at %L must be a procedure"
37971 msgstr "El parámetro '%s' para '%s' en %L debe ser un procedimiento"
37972
37973-#: fortran/resolve.c:2983
37974+#: fortran/resolve.c:2969
37975 #, gcc-internal-format, gfc-internal-format
37976 msgid "Parameter '%s' to '%s' at %L must be BIND(C)"
37977 msgstr "El parámetro '%s' para '%s' en %L debe ser BIND(C)"
37978
37979-#: fortran/resolve.c:3032
37980+#: fortran/resolve.c:3018
37981 #, gcc-internal-format, gfc-internal-format
37982 msgid "'%s' at %L is not a function"
37983 msgstr "'%s' en %L no es una función"
37984
37985-#: fortran/resolve.c:3040 fortran/resolve.c:3670
37986+#: fortran/resolve.c:3026 fortran/resolve.c:3657
37987 #, gcc-internal-format, gfc-internal-format
37988 msgid "ABSTRACT INTERFACE '%s' must not be referenced at %L"
37989 msgstr "La ABSTRACT INTERFACE '%s' no se debe referenciar en %L"
37990
37991 #. Internal procedures are taken care of in resolve_contained_fntype.
37992-#: fortran/resolve.c:3095
37993+#: fortran/resolve.c:3081
37994 #, gcc-internal-format, gfc-internal-format
37995 msgid "Function '%s' is declared CHARACTER(*) and cannot be used at %L since it is not a dummy argument"
37996 msgstr "La función '%s' se declara CHARACTER(*) y no se puede usar en %L ya que no es un argumento de prueba"
37997
37998-#: fortran/resolve.c:3148
37999+#: fortran/resolve.c:3134
38000 #, gcc-internal-format, gfc-internal-format
38001 msgid "User defined non-ELEMENTAL function '%s' at %L not allowed in WORKSHARE construct"
38002 msgstr "La función definida por el usuario '%s' que no es ELEMENTAL en %L no se permite en la construcción WORKSHARE"
38003
38004-#: fortran/resolve.c:3198
38005+#: fortran/resolve.c:3184
38006 #, gcc-internal-format, gfc-internal-format
38007 msgid "Reference to non-PURE function '%s' at %L inside a FORALL %s"
38008 msgstr "La referencia a la función '%s' que no es PURE en %L está dentro de un FORALL %s"
38009
38010-#: fortran/resolve.c:3205
38011+#: fortran/resolve.c:3191
38012 #, gcc-internal-format, gfc-internal-format
38013 msgid "Reference to non-PURE function '%s' at %L inside a DO CONCURRENT %s"
38014 msgstr "La referencia a la función '%s' que no es PURE en %L está dentro de un DO CONCURRENT %s"
38015
38016-#: fortran/resolve.c:3212
38017+#: fortran/resolve.c:3198
38018 #, gcc-internal-format, gfc-internal-format
38019 msgid "Function reference to '%s' at %L is to a non-PURE procedure within a PURE procedure"
38020 msgstr "La referencia de función a '%s' en %L apunta a un procedimiento que no es PURE dentro de un procedimiento PURE"
38021
38022-#: fortran/resolve.c:3231
38023+#: fortran/resolve.c:3217
38024 #, gcc-internal-format, gfc-internal-format
38025 msgid "ENTRY '%s' at %L cannot be called recursively, as function '%s' is not RECURSIVE"
38026 msgstr "ENTRY '%s' en %L no se puede llamar recursivamente, porque la función '%s' no es RECURSIVE"
38027
38028-#: fortran/resolve.c:3235
38029+#: fortran/resolve.c:3221
38030 #, gcc-internal-format, gfc-internal-format
38031 msgid "Function '%s' at %L cannot be called recursively, as it is not RECURSIVE"
38032 msgstr "La función '%s' en %L no se puede llamar recursivamente, porque no es RECURSIVE"
38033
38034-#: fortran/resolve.c:3274
38035+#: fortran/resolve.c:3260
38036 #, gcc-internal-format, gfc-internal-format
38037 msgid "Subroutine call to '%s' in FORALL block at %L is not PURE"
38038 msgstr "La llamada a subrutina a '%s' en el bloque FORALL en %L no es PURE"
38039
38040-#: fortran/resolve.c:3277
38041+#: fortran/resolve.c:3263
38042 #, gcc-internal-format, gfc-internal-format
38043 msgid "Subroutine call to '%s' in DO CONCURRENT block at %L is not PURE"
38044 msgstr "La llamada a subrutina a '%s' en el bloque DO CONCURRENT en %L no es PURE"
38045
38046-#: fortran/resolve.c:3280
38047+#: fortran/resolve.c:3266
38048 #, gcc-internal-format, gfc-internal-format
38049 msgid "Subroutine call to '%s' at %L is not PURE"
38050 msgstr "La llamada a subrutina a '%s' en %L no es PURE"
38051
38052-#: fortran/resolve.c:3346
38053+#: fortran/resolve.c:3332
38054 #, gcc-internal-format, gfc-internal-format
38055 msgid "There is no specific subroutine for the generic '%s' at %L"
38056 msgstr "No hay una subrutina específica para el genérico '%s' en %L"
38057
38058-#: fortran/resolve.c:3355
38059+#: fortran/resolve.c:3341
38060 #, gcc-internal-format, gfc-internal-format
38061 msgid "Generic subroutine '%s' at %L is not consistent with an intrinsic subroutine interface"
38062 msgstr "La subrutina genérica '%s' en %L no es consistente con una interfaz de subrutina intrínseca"
38063
38064-#: fortran/resolve.c:3463
38065+#: fortran/resolve.c:3450
38066 #, gcc-internal-format, gfc-internal-format
38067 msgid "Missing SHAPE parameter for call to %s at %L"
38068 msgstr "Falta el parámetro SHAPE para la llamada a %s en %L"
38069
38070-#: fortran/resolve.c:3471
38071+#: fortran/resolve.c:3458
38072 #, gcc-internal-format, gfc-internal-format
38073 msgid "SHAPE parameter for call to %s at %L must be a rank 1 INTEGER array"
38074 msgstr "El parámetro SHAPE para la llamada a %s en %L debe ser una matriz INTEGER de rango 1"
38075
38076-#: fortran/resolve.c:3538
38077+#: fortran/resolve.c:3525
38078 #, gcc-internal-format, gfc-internal-format
38079 msgid "Subroutine '%s' at %L is INTRINSIC but is not compatible with an intrinsic"
38080 msgstr "La subrutina '%s' en %L es INTRINSIC pero no es compatible con un intrínseco"
38081
38082-#: fortran/resolve.c:3582
38083+#: fortran/resolve.c:3569
38084 #, gcc-internal-format, gfc-internal-format
38085 msgid "Unable to resolve the specific subroutine '%s' at %L"
38086 msgstr "No se puede resolver la subrutina específica '%s' en %L"
38087
38088-#: fortran/resolve.c:3642
38089+#: fortran/resolve.c:3629
38090 #, gcc-internal-format, gfc-internal-format
38091 msgid "'%s' at %L has a type, which is not consistent with the CALL at %L"
38092 msgstr "'%s' en %L tiene un tipo, el cual no es consistente con CALL en %L"
38093
38094-#: fortran/resolve.c:3680
38095+#: fortran/resolve.c:3667
38096 #, gcc-internal-format, gfc-internal-format
38097 msgid "ENTRY '%s' at %L cannot be called recursively, as subroutine '%s' is not RECURSIVE"
38098 msgstr "ENTRY '%s' en %L no se puede llamar recursivamente, porque la subrutina '%s' no es RECURSIVE"
38099
38100-#: fortran/resolve.c:3684
38101+#: fortran/resolve.c:3671
38102 #, gcc-internal-format, gfc-internal-format
38103 msgid "SUBROUTINE '%s' at %L cannot be called recursively, as it is not RECURSIVE"
38104 msgstr "SUBROUTINE '%s' en %L no se puede llamar recursivamente, porque no es RECURSIVE"
38105
38106-#: fortran/resolve.c:3760
38107+#: fortran/resolve.c:3747
38108 #, gcc-internal-format, gfc-internal-format
38109 msgid "Shapes for operands at %L and %L are not conformable"
38110 msgstr "Las formas para los operandos en %L y %L no son conformables"
38111
38112-#: fortran/resolve.c:4258
38113+#: fortran/resolve.c:4245
38114 #, gcc-internal-format, gfc-internal-format
38115 msgid "Array reference at %L is out of bounds (%ld < %ld) in dimension %d"
38116 msgstr "La referencia de matriz en %L está fuera de los límites (%ld < %ld) en la dimensión %d"
38117
38118-#: fortran/resolve.c:4263
38119+#: fortran/resolve.c:4250
38120 #, gcc-internal-format, gfc-internal-format
38121 msgid "Array reference at %L is out of bounds (%ld < %ld) in codimension %d"
38122 msgstr "La referencia de matriz en %L está fuera de los límites (%ld < %ld) en la codimensión %d"
38123
38124-#: fortran/resolve.c:4273
38125+#: fortran/resolve.c:4260
38126 #, gcc-internal-format, gfc-internal-format
38127 msgid "Array reference at %L is out of bounds (%ld > %ld) in dimension %d"
38128 msgstr "La referencia de matriz en %L está fuera de los límites (%ld > %ld) en la dimensión %d"
38129
38130-#: fortran/resolve.c:4278
38131+#: fortran/resolve.c:4265
38132 #, gcc-internal-format, gfc-internal-format
38133 msgid "Array reference at %L is out of bounds (%ld > %ld) in codimension %d"
38134 msgstr "La referencia de matriz en %L está fuera de los límites (%ld > %ld) en la codimensión %d"
38135
38136-#: fortran/resolve.c:4298
38137+#: fortran/resolve.c:4285
38138 #, gcc-internal-format, gfc-internal-format
38139 msgid "Illegal stride of zero at %L"
38140 msgstr "Tranco ilegal de cero en %L"
38141
38142-#: fortran/resolve.c:4315
38143+#: fortran/resolve.c:4302
38144 #, gcc-internal-format, gfc-internal-format
38145 msgid "Lower array reference at %L is out of bounds (%ld < %ld) in dimension %d"
38146 msgstr "La referencia de matriz inferior en %L está fuera de los límites (%ld < %ld) en la dimensión %d"
38147
38148-#: fortran/resolve.c:4323
38149+#: fortran/resolve.c:4310
38150 #, gcc-internal-format, gfc-internal-format
38151 msgid "Lower array reference at %L is out of bounds (%ld > %ld) in dimension %d"
38152 msgstr "La referencia de matriz inferior en %L está fuera de los límites (%ld > %ld) en la dimensión %d"
38153
38154-#: fortran/resolve.c:4339
38155+#: fortran/resolve.c:4326
38156 #, gcc-internal-format, gfc-internal-format
38157 msgid "Upper array reference at %L is out of bounds (%ld < %ld) in dimension %d"
38158 msgstr "La referencia de matriz superior en %L está fuera de los límites (%ld < %ld) en la dimensión %d"
38159
38160-#: fortran/resolve.c:4348
38161+#: fortran/resolve.c:4335
38162 #, gcc-internal-format, gfc-internal-format
38163 msgid "Upper array reference at %L is out of bounds (%ld > %ld) in dimension %d"
38164 msgstr "La referencia de matriz superior en %L está fuera de los límites (%ld > %ld) en la dimensión %d"
38165
38166-#: fortran/resolve.c:4387
38167+#: fortran/resolve.c:4374
38168 #, gcc-internal-format, gfc-internal-format
38169 msgid "Rightmost upper bound of assumed size array section not specified at %L"
38170 msgstr "No se especificó el límite superior a la derecha de la sección de matriz de tamaño asumido en %L"
38171
38172-#: fortran/resolve.c:4397
38173+#: fortran/resolve.c:4384
38174 #, gcc-internal-format, gfc-internal-format
38175 msgid "Rank mismatch in array reference at %L (%d/%d)"
38176 msgstr "El rango no coincide en la referencia de matriz en %L (%d/%d)"
38177
38178-#: fortran/resolve.c:4405
38179+#: fortran/resolve.c:4392
38180 #, gcc-internal-format, gfc-internal-format
38181 msgid "Coindex rank mismatch in array reference at %L (%d/%d)"
38182 msgstr "El rango de coíndice no coincide en la referencia de matriz en %L (%d/%d)"
38183
38184-#: fortran/resolve.c:4421
38185+#: fortran/resolve.c:4408
38186 #, gcc-internal-format, gfc-internal-format
38187 msgid "Coindex of codimension %d must be a scalar at %L"
38188 msgstr "El coíndice en la codimensión %d debe ser un escalar en %L"
38189
38190-#: fortran/resolve.c:4449
38191+#: fortran/resolve.c:4436
38192 #, gcc-internal-format, gfc-internal-format
38193 msgid "Array index at %L must be scalar"
38194 msgstr "El índice de matriz en %L debe ser escalar"
38195
38196-#: fortran/resolve.c:4455
38197+#: fortran/resolve.c:4442
38198 #, gcc-internal-format, gfc-internal-format
38199 msgid "Array index at %L must be of INTEGER type, found %s"
38200 msgstr "El índice de matriz en %L debe ser de tipo INTEGER, se encontró %s"
38201
38202-#: fortran/resolve.c:4461
38203+#: fortran/resolve.c:4448
38204 #, gcc-internal-format, gfc-internal-format
38205 msgid "Extension: REAL array index at %L"
38206 msgstr "Extensión: índice de matriz REAL en %L"
38207
38208-#: fortran/resolve.c:4500
38209+#: fortran/resolve.c:4487
38210 #, gcc-internal-format, gfc-internal-format
38211 msgid "Argument dim at %L must be scalar"
38212 msgstr "El argumento dim en %L debe ser escalar"
38213
38214-#: fortran/resolve.c:4507
38215+#: fortran/resolve.c:4494
38216 #, gcc-internal-format, gfc-internal-format
38217 msgid "Argument dim at %L must be of INTEGER type"
38218 msgstr "El argumento dim en %L debe ser de tipo entero"
38219
38220-#: fortran/resolve.c:4617
38221+#: fortran/resolve.c:4604
38222 #, gcc-internal-format, gfc-internal-format
38223 msgid "Array index at %L is an array of rank %d"
38224 msgstr "El índice de matriz en %L es una matriz de rango %d"
38225
38226-#: fortran/resolve.c:4715
38227+#: fortran/resolve.c:4702
38228 #, gcc-internal-format, gfc-internal-format
38229 msgid "Substring start index at %L must be of type INTEGER"
38230 msgstr "El índice de inicio de la subcadena en %L debe ser de tipo INTEGER"
38231
38232-#: fortran/resolve.c:4722
38233+#: fortran/resolve.c:4709
38234 #, gcc-internal-format, gfc-internal-format
38235 msgid "Substring start index at %L must be scalar"
38236 msgstr "El índice de inicio de la subcadena en %L debe ser escalar"
38237
38238-#: fortran/resolve.c:4731
38239+#: fortran/resolve.c:4718
38240 #, gcc-internal-format, gfc-internal-format
38241 msgid "Substring start index at %L is less than one"
38242 msgstr "El índice de inicio de la subcadena en %L es menor a uno"
38243
38244-#: fortran/resolve.c:4744
38245+#: fortran/resolve.c:4731
38246 #, gcc-internal-format, gfc-internal-format
38247 msgid "Substring end index at %L must be of type INTEGER"
38248 msgstr "El índice de final de la subcadena en %L debe ser de tipo INTEGER"
38249
38250-#: fortran/resolve.c:4751
38251+#: fortran/resolve.c:4738
38252 #, gcc-internal-format, gfc-internal-format
38253 msgid "Substring end index at %L must be scalar"
38254 msgstr "El índice de final de la subcadena en %L debe ser escalar"
38255
38256-#: fortran/resolve.c:4761
38257+#: fortran/resolve.c:4748
38258 #, gcc-internal-format, gfc-internal-format
38259 msgid "Substring end index at %L exceeds the string length"
38260 msgstr "El índice de final de la subcadena en %L excede la longitud de la cadena"
38261
38262-#: fortran/resolve.c:4771
38263+#: fortran/resolve.c:4758
38264 #, gcc-internal-format, gfc-internal-format
38265 msgid "Substring end index at %L is too large"
38266 msgstr "El índice de final de la subcadena en %L es demasiado grande"
38267
38268-#: fortran/resolve.c:4917
38269+#: fortran/resolve.c:4904
38270 #, gcc-internal-format, gfc-internal-format
38271 msgid "Component to the right of a part reference with nonzero rank must not have the POINTER attribute at %L"
38272 msgstr "El componente a la derecha de una referencia de parte con rango que no es cero no debe tener el atributo POINTER en %L"
38273
38274-#: fortran/resolve.c:4924
38275+#: fortran/resolve.c:4911
38276 #, gcc-internal-format, gfc-internal-format
38277 msgid "Component to the right of a part reference with nonzero rank must not have the ALLOCATABLE attribute at %L"
38278 msgstr "El componente a la derecha de una referencia de parte con rango que no es cero no debe tener el atributo ALLOCATABLE en %L"
38279
38280-#: fortran/resolve.c:4943
38281+#: fortran/resolve.c:4930
38282 #, gcc-internal-format, gfc-internal-format
38283 msgid "Two or more part references with nonzero rank must not be specified at %L"
38284 msgstr "No se deben especificar dos o más referencias de parte con rango que no es cero en %L"
38285
38286-#: fortran/resolve.c:5148
38287+#: fortran/resolve.c:5135
38288 #, gcc-internal-format, gfc-internal-format
38289 msgid "Variable '%s', used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
38290 msgstr "La variable '%s', usada en una expresión de especificación, se referencía en %L antes de la declaración ENTRY en la cual es un parámetro"
38291
38292-#: fortran/resolve.c:5153
38293+#: fortran/resolve.c:5140
38294 #, gcc-internal-format, gfc-internal-format
38295 msgid "Variable '%s' is used at %L before the ENTRY statement in which it is a parameter"
38296 msgstr "La variable '%s' se usa en %L antes de la declaración ENTRY en la cual es un parámetro"
38297
38298-#: fortran/resolve.c:5217
38299+#: fortran/resolve.c:5204
38300 #, gcc-internal-format, gfc-internal-format
38301 msgid "Polymorphic subobject of coindexed object at %L"
38302 msgstr "Subobjecto polimórfico de un objeto coindizado en %L"
38303
38304-#: fortran/resolve.c:5230
38305+#: fortran/resolve.c:5217
38306 #, gcc-internal-format, gfc-internal-format
38307 msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
38308 msgstr "Objeto coindizado con subcomponente alojable polimórfico en %L"
38309
38310-#: fortran/resolve.c:5556
38311+#: fortran/resolve.c:5543
38312 #, gcc-internal-format, gfc-internal-format
38313 msgid "Passed-object at %L must be scalar"
38314 msgstr "El objeto pasado en %L debe ser escalar"
38315
38316-#: fortran/resolve.c:5563
38317+#: fortran/resolve.c:5550
38318 #, gcc-internal-format, gfc-internal-format
38319 msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type '%s'"
38320 msgstr "El objeto base para la llamada a componente procedimiento-puntero en %L es de tipo ABSTRACT '%s'"
38321
38322-#: fortran/resolve.c:5595
38323+#: fortran/resolve.c:5582
38324 #, gcc-internal-format, gfc-internal-format
38325 msgid "Base object for type-bound procedure call at %L is of ABSTRACT type '%s'"
38326 msgstr "El objeto base para la llamada a procedimiento enlazada a tipo en %L es de tipo ABSTRACT '%s'"
38327
38328-#: fortran/resolve.c:5604
38329+#: fortran/resolve.c:5591
38330 #, gcc-internal-format, gfc-internal-format
38331 msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
38332 msgstr "El objeto base para la llamada a procedimiento enlazada a tipo NOPASS en %L debe ser escalar"
38333
38334 #. Nothing matching found!
38335-#: fortran/resolve.c:5789
38336+#: fortran/resolve.c:5776
38337 #, gcc-internal-format, gfc-internal-format
38338 msgid "Found no matching specific binding for the call to the GENERIC '%s' at %L"
38339 msgstr "No se encontró un enlace específico coincidente para la llamada al GENERIC '%s' en %L"
38340
38341-#: fortran/resolve.c:5816
38342+#: fortran/resolve.c:5803
38343 #, gcc-internal-format, gfc-internal-format
38344 msgid "'%s' at %L should be a SUBROUTINE"
38345 msgstr "'%s' en %L debe ser una SUBROUTINE"
38346
38347-#: fortran/resolve.c:5863
38348+#: fortran/resolve.c:5850
38349 #, gcc-internal-format, gfc-internal-format
38350 msgid "'%s' at %L should be a FUNCTION"
38351 msgstr "'%s' en %L debe ser una FUNCTION"
38352
38353-#: fortran/resolve.c:6380
38354+#: fortran/resolve.c:6367
38355 #, gcc-internal-format, gfc-internal-format
38356 msgid "%s at %L must be a scalar"
38357 msgstr "%s en %L debe ser un escalar"
38358
38359-#: fortran/resolve.c:6390
38360+#: fortran/resolve.c:6377
38361 #, gcc-internal-format, gfc-internal-format
38362 msgid "Deleted feature: %s at %L must be integer"
38363 msgstr "Característica eliminada: %s en %L debe ser entero"
38364
38365-#: fortran/resolve.c:6394 fortran/resolve.c:6401
38366+#: fortran/resolve.c:6381 fortran/resolve.c:6388
38367 #, gcc-internal-format, gfc-internal-format
38368 msgid "%s at %L must be INTEGER"
38369 msgstr "%s en %L debe ser INTEGER"
38370
38371-#: fortran/resolve.c:6442
38372+#: fortran/resolve.c:6429
38373 #, gcc-internal-format, gfc-internal-format
38374 msgid "Step expression in DO loop at %L cannot be zero"
38375 msgstr "La expresión de paso en el bucle DO en %L no puede ser cero"
38376
38377-#: fortran/resolve.c:6477
38378+#: fortran/resolve.c:6464
38379 #, gcc-internal-format, gfc-internal-format
38380 msgid "DO loop at %L will be executed zero times"
38381 msgstr "El bucle DO en %L se ejecutará cero veces"
38382
38383-#: fortran/resolve.c:6538
38384+#: fortran/resolve.c:6525
38385 #, gcc-internal-format, gfc-internal-format
38386 msgid "FORALL index-name at %L must be a scalar INTEGER"
38387 msgstr "El nombre de índice FORALL en %L debe ser un INTEGER escalar"
38388
38389-#: fortran/resolve.c:6543
38390+#: fortran/resolve.c:6530
38391 #, gcc-internal-format, gfc-internal-format
38392 msgid "FORALL start expression at %L must be a scalar INTEGER"
38393 msgstr "La expresión de inicio FORALL en %L debe ser un INTEGER escalar"
38394
38395-#: fortran/resolve.c:6550
38396+#: fortran/resolve.c:6537
38397 #, gcc-internal-format, gfc-internal-format
38398 msgid "FORALL end expression at %L must be a scalar INTEGER"
38399 msgstr "La expresión de fin FORALL en %L debe ser un INTEGER escalar"
38400
38401-#: fortran/resolve.c:6558
38402+#: fortran/resolve.c:6545
38403 #, gcc-internal-format, gfc-internal-format
38404 msgid "FORALL stride expression at %L must be a scalar %s"
38405 msgstr "La expresión de tranco FORALL en %L debe ser un %s escalar"
38406
38407-#: fortran/resolve.c:6563
38408+#: fortran/resolve.c:6550
38409 #, gcc-internal-format, gfc-internal-format
38410 msgid "FORALL stride expression at %L cannot be zero"
38411 msgstr "La expresión de tranco FORALL en %L no puede ser cero"
38412
38413-#: fortran/resolve.c:6579
38414+#: fortran/resolve.c:6566
38415 #, gcc-internal-format, gfc-internal-format
38416 msgid "FORALL index '%s' may not appear in triplet specification at %L"
38417 msgstr "El índice FORALL '%s' no puede aparecer en la especificación triplet en %L"
38418
38419-#: fortran/resolve.c:6675 fortran/resolve.c:6958
38420+#: fortran/resolve.c:6662 fortran/resolve.c:6945
38421 #, gcc-internal-format, gfc-internal-format
38422 msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
38423 msgstr "El objeto de alojamiento en %L debe ser ALLOCATABLE o un POINTER"
38424
38425-#: fortran/resolve.c:6683 fortran/resolve.c:6924
38426+#: fortran/resolve.c:6670 fortran/resolve.c:6911
38427 #, gcc-internal-format, gfc-internal-format
38428 msgid "Coindexed allocatable object at %L"
38429 msgstr "Objeto alojable coindizado en %L"
38430
38431-#: fortran/resolve.c:6788
38432+#: fortran/resolve.c:6775
38433 #, gcc-internal-format, gfc-internal-format
38434 msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L"
38435 msgstr "La expresión fuente en %L debe ser escalar o tener el mismo rango que el objeto de alojamiento en %L"
38436
38437-#: fortran/resolve.c:6816
38438+#: fortran/resolve.c:6803
38439 #, gcc-internal-format, gfc-internal-format
38440 msgid "Source-expr at %L and allocate-object at %L must have the same shape"
38441 msgstr "La expresión fuente en %L y el objeto de alojamiento en %L deben tener la misma forma"
38442
38443-#: fortran/resolve.c:6969
38444+#: fortran/resolve.c:6956
38445 #, gcc-internal-format, gfc-internal-format
38446 msgid "Type of entity at %L is type incompatible with source-expr at %L"
38447 msgstr "El tipo de entidad en %L es de tipo incompatible con la expresión fuente en %L"
38448
38449-#: fortran/resolve.c:6982
38450+#: fortran/resolve.c:6969
38451 #, gcc-internal-format, gfc-internal-format
38452 msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter"
38453 msgstr "El objeto de alojamiento en %L y la expresión fuente en %L deben tener el mismo parámetro de tipo de género"
38454
38455-#: fortran/resolve.c:6996
38456+#: fortran/resolve.c:6983
38457 #, gcc-internal-format, gfc-internal-format
38458 msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray"
38459 msgstr "La expresión fuente en %L no puede ser de tipo LOCK_TYPE ni tener un componente LOCK_TYPE si el objeto-alojado en %L es una comatriz"
38460
38461-#: fortran/resolve.c:7009
38462+#: fortran/resolve.c:6996
38463 #, gcc-internal-format, gfc-internal-format
38464 msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
38465 msgstr "El alojamiento %s del tipo de base ABSTRACT en %L requiere una especificación de tipo o una expresión source"
38466
38467-#: fortran/resolve.c:7020
38468+#: fortran/resolve.c:7007
38469 #, gcc-internal-format, gfc-internal-format
38470 msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration"
38471 msgstr "Alojar %s en %L con especificación de tipo requiere el mismo parámetro de longitud de carácter que el de la declaración"
38472
38473-#: fortran/resolve.c:7105
38474+#: fortran/resolve.c:7092
38475 #, gcc-internal-format, gfc-internal-format
38476 msgid "Array specification required in ALLOCATE statement at %L"
38477 msgstr "Se requiere una especificación de matriz en la declaración ALLOCATE en %L"
38478
38479-#: fortran/resolve.c:7119
38480+#: fortran/resolve.c:7106
38481 #, gcc-internal-format, gfc-internal-format
38482 msgid "Coarray specification required in ALLOCATE statement at %L"
38483 msgstr "Se requiere una especificación de comatriz en la declaración ALLOCATE en %L"
38484
38485-#: fortran/resolve.c:7146
38486+#: fortran/resolve.c:7133
38487 #, gcc-internal-format, gfc-internal-format
38488 msgid "Bad array specification in ALLOCATE statement at %L"
38489 msgstr "Especificación de matriz errónea en la declaración ALLOCATE en %L"
38490
38491-#: fortran/resolve.c:7165
38492+#: fortran/resolve.c:7152
38493 #, gcc-internal-format, gfc-internal-format
38494 msgid "'%s' must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
38495 msgstr "'%s' no debe aparecer en la especificación de matriz en %L en la misma declaración ALLOCATE donde se aloja a sí misma"
38496
38497-#: fortran/resolve.c:7180
38498+#: fortran/resolve.c:7167
38499 #, gcc-internal-format, gfc-internal-format
38500 msgid "Expected '*' in coindex specification in ALLOCATE statement at %L"
38501 msgstr "Se esperaba '*' en la especificación de comatriz en la declaración ALLOCATE en %L"
38502
38503-#: fortran/resolve.c:7191
38504+#: fortran/resolve.c:7178
38505 #, gcc-internal-format, gfc-internal-format
38506 msgid "Bad coarray specification in ALLOCATE statement at %L"
38507 msgstr "Especificación de comatriz errónea en la declaración ALLOCATE en %L"
38508
38509-#: fortran/resolve.c:7221
38510+#: fortran/resolve.c:7208
38511 #, gcc-internal-format, gfc-internal-format
38512 msgid "Stat-variable at %L must be a scalar INTEGER variable"
38513 msgstr "La variable stat en %L debe ser una variable INTEGER escalar"
38514
38515-#: fortran/resolve.c:7244
38516+#: fortran/resolve.c:7231
38517 #, gcc-internal-format, gfc-internal-format
38518 msgid "Stat-variable at %L shall not be %sd within the same %s statement"
38519 msgstr "La variable stat en %L no no debe ser %sd dentro de la misma declaración %s"
38520
38521-#: fortran/resolve.c:7255
38522+#: fortran/resolve.c:7242
38523 #, gcc-internal-format, gfc-internal-format
38524 msgid "ERRMSG at %L is useless without a STAT tag"
38525 msgstr "ERRMSG en %L es inútil sin una etiqueta STAT"
38526
38527-#: fortran/resolve.c:7265
38528+#: fortran/resolve.c:7252
38529 #, gcc-internal-format, gfc-internal-format
38530 msgid "Errmsg-variable at %L must be a scalar CHARACTER variable"
38531 msgstr "La variable errmsg en %L debe ser una variable CHARACTER escalar"
38532
38533-#: fortran/resolve.c:7288
38534+#: fortran/resolve.c:7275
38535 #, gcc-internal-format, gfc-internal-format
38536 msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
38537 msgstr "La variable errmsg en %L no debe ser %sd dentro de la misma declaración %s"
38538
38539-#: fortran/resolve.c:7318
38540+#: fortran/resolve.c:7305
38541 #, gcc-internal-format, gfc-internal-format
38542 msgid "Allocate-object at %L also appears at %L"
38543 msgstr "El objeto de alojamiento en %L también aparece en %L"
38544
38545-#: fortran/resolve.c:7324 fortran/resolve.c:7330
38546+#: fortran/resolve.c:7311 fortran/resolve.c:7317
38547 #, gcc-internal-format, gfc-internal-format
38548 msgid "Allocate-object at %L is subobject of object at %L"
38549 msgstr "El objeto de alojamiento en %L es un subobjeto del objeto en %L"
38550@@ -41460,175 +41666,175 @@
38551 #. element in the list. Either way, we must
38552 #. issue an error and get the next case from P.
38553 #. FIXME: Sort P and Q by line number.
38554-#: fortran/resolve.c:7525
38555+#: fortran/resolve.c:7512
38556 #, gcc-internal-format, gfc-internal-format
38557 msgid "CASE label at %L overlaps with CASE label at %L"
38558 msgstr "La etiqueta CASE en %L se encima con la etiqueta CASE en %L"
38559
38560-#: fortran/resolve.c:7576
38561+#: fortran/resolve.c:7563
38562 #, gcc-internal-format, gfc-internal-format
38563 msgid "Expression in CASE statement at %L must be of type %s"
38564 msgstr "La expresión en la declaración CASE en %L debe ser de tipo %s"
38565
38566-#: fortran/resolve.c:7587
38567+#: fortran/resolve.c:7574
38568 #, gcc-internal-format, gfc-internal-format
38569 msgid "Expression in CASE statement at %L must be of kind %d"
38570 msgstr "La expresión en la declaración CASE en %L debe ser de género %d"
38571
38572-#: fortran/resolve.c:7600
38573+#: fortran/resolve.c:7587
38574 #, gcc-internal-format, gfc-internal-format
38575 msgid "Expression in CASE statement at %L must be scalar"
38576 msgstr "La expresión en la declaración CASE en %L debe ser escalar"
38577
38578-#: fortran/resolve.c:7646
38579+#: fortran/resolve.c:7633
38580 #, gcc-internal-format, gfc-internal-format
38581 msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
38582 msgstr "La expresión de selección en una declaración GOTO computada en %L debe ser una expresión entera escalar"
38583
38584-#: fortran/resolve.c:7664
38585+#: fortran/resolve.c:7651
38586 #, gcc-internal-format, gfc-internal-format
38587 msgid "Argument of SELECT statement at %L cannot be %s"
38588 msgstr "El argumento de la declaración SELECT en %L no puede ser %s"
38589
38590-#: fortran/resolve.c:7682 fortran/resolve.c:7690
38591+#: fortran/resolve.c:7669 fortran/resolve.c:7677
38592 #, gcc-internal-format, gfc-internal-format
38593 msgid "Expression in CASE statement at %L is not in the range of %s"
38594 msgstr "La expresión en la declaración CASE en %L no está en el rango de %s"
38595
38596-#: fortran/resolve.c:7752 fortran/resolve.c:8062
38597+#: fortran/resolve.c:7739 fortran/resolve.c:8049
38598 #, gcc-internal-format, gfc-internal-format
38599 msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
38600 msgstr "El DEFAULT CASE en %L no puede tener después un segundo DEFAULT CASE en %L"
38601
38602-#: fortran/resolve.c:7778
38603+#: fortran/resolve.c:7765
38604 #, gcc-internal-format, gfc-internal-format
38605 msgid "Logical range in CASE statement at %L is not allowed"
38606 msgstr "No se permite un rango lógico en una declaración CASE en %L"
38607
38608-#: fortran/resolve.c:7790
38609+#: fortran/resolve.c:7777
38610 #, gcc-internal-format, gfc-internal-format
38611 msgid "Constant logical value in CASE statement is repeated at %L"
38612 msgstr "Se repite un valor lógico constante en una declaración CASE en %L"
38613
38614-#: fortran/resolve.c:7804
38615+#: fortran/resolve.c:7791
38616 #, gcc-internal-format, gfc-internal-format
38617 msgid "Range specification at %L can never be matched"
38618 msgstr "La especificación de rango en %L nunca puede coincidir"
38619
38620-#: fortran/resolve.c:7907
38621+#: fortran/resolve.c:7894
38622 #, gcc-internal-format, gfc-internal-format
38623 msgid "Logical SELECT CASE block at %L has more that two cases"
38624 msgstr "El bloque SELECT CASE lógico en %L tiene más de dos cases"
38625
38626-#: fortran/resolve.c:7972
38627+#: fortran/resolve.c:7959
38628 #, gcc-internal-format, gfc-internal-format
38629 msgid "Associate-name '%s' at %L is used as array"
38630 msgstr "Se usa el nombre asociado '%s' en %L como una matriz"
38631
38632-#: fortran/resolve.c:8014
38633+#: fortran/resolve.c:8001
38634 #, gcc-internal-format, gfc-internal-format
38635 msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
38636 msgstr "El selector debe ser polimórfico en la declaración SELECT TYPE en %L"
38637
38638-#: fortran/resolve.c:8040
38639+#: fortran/resolve.c:8027
38640 #, gcc-internal-format, gfc-internal-format
38641 msgid "Derived type '%s' at %L must be extensible"
38642 msgstr "El tipo derivado '%s' en %L debe ser extensible"
38643
38644-#: fortran/resolve.c:8050
38645+#: fortran/resolve.c:8037
38646 #, gcc-internal-format, gfc-internal-format
38647 msgid "Derived type '%s' at %L must be an extension of '%s'"
38648 msgstr "El tipo derivado '%s' en %L debe ser una extensión de '%s'"
38649
38650-#: fortran/resolve.c:8222
38651+#: fortran/resolve.c:8209
38652 #, gcc-internal-format, gfc-internal-format
38653 msgid "Double CLASS IS block in SELECT TYPE statement at %L"
38654 msgstr "Bloque CLASS IS doble en la declaración SELECT TYPE en %L"
38655
38656-#: fortran/resolve.c:8313
38657+#: fortran/resolve.c:8300
38658 #, gcc-internal-format, gfc-internal-format
38659 msgid "NULL intrinsic at %L in data transfer statement requires MOLD="
38660 msgstr "El NULL intrínseco en %L en la declaración de transferencia de datos requiere MOLD="
38661
38662 #. FIXME: Test for defined input/output.
38663-#: fortran/resolve.c:8341
38664+#: fortran/resolve.c:8328
38665 #, gcc-internal-format, gfc-internal-format
38666 msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure"
38667 msgstr "El elemento de transferencia de datos en %L no puede ser polimórfico a menos que se procese con un procedimiento de entrada/salida definido"
38668
38669-#: fortran/resolve.c:8353
38670+#: fortran/resolve.c:8340
38671 #, gcc-internal-format, gfc-internal-format
38672 msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure"
38673 msgstr "El elemento de transferencia de datos en %L no puede tener componentes POINTER a menos que se procese con un procedimiento de entrada/salida definido"
38674
38675-#: fortran/resolve.c:8362
38676+#: fortran/resolve.c:8349
38677 #, gcc-internal-format, gfc-internal-format
38678 msgid "Data transfer element at %L cannot have procedure pointer components"
38679 msgstr "El elemento de transferencia de datos en %L no puede tener componentes de puntero a procedimiento"
38680
38681-#: fortran/resolve.c:8369
38682+#: fortran/resolve.c:8356
38683 #, gcc-internal-format, gfc-internal-format
38684 msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure"
38685 msgstr "El elemento de transferencia de datos en %L no puede tener componentes ALLOCATABLE a menos que se procese con un procedimiento de entrada/salida definido"
38686
38687-#: fortran/resolve.c:8377
38688+#: fortran/resolve.c:8364
38689 #, gcc-internal-format, gfc-internal-format
38690 msgid "Data transfer element at %L cannot have PRIVATE components"
38691 msgstr "El elemento de transferencia de datos en %L no puede tener componentes PRIVATE"
38692
38693-#: fortran/resolve.c:8386
38694+#: fortran/resolve.c:8373
38695 #, gcc-internal-format, gfc-internal-format
38696 msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
38697 msgstr "El elemento de transferencia de datos en %L no puede ser una referencia completa a una matriz de tamaño asumido"
38698
38699-#: fortran/resolve.c:8436
38700+#: fortran/resolve.c:8423
38701 #, gcc-internal-format, gfc-internal-format
38702 msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
38703 msgstr "La variable lock en %L debe ser un escalar de tipo LOCK_TYPE"
38704
38705-#: fortran/resolve.c:8443 fortran/resolve.c:8507
38706+#: fortran/resolve.c:8430 fortran/resolve.c:8494
38707 #, gcc-internal-format, gfc-internal-format
38708 msgid "STAT= argument at %L must be a scalar INTEGER variable"
38709 msgstr "El argumento STAT= en %L debe ser una variable INTEGER escalar"
38710
38711-#: fortran/resolve.c:8455 fortran/resolve.c:8514
38712+#: fortran/resolve.c:8442 fortran/resolve.c:8501
38713 #, gcc-internal-format, gfc-internal-format
38714 msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
38715 msgstr "El argumento ERRMSG= en %L debe ser una variable CHARACTER escalar"
38716
38717-#: fortran/resolve.c:8467
38718+#: fortran/resolve.c:8454
38719 #, gcc-internal-format, gfc-internal-format
38720 msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
38721 msgstr "El argumento ACQUIRED_LOCK= en %L debe ser una variable LOGICAL escalar"
38722
38723-#: fortran/resolve.c:8484
38724+#: fortran/resolve.c:8471
38725 #, gcc-internal-format, gfc-internal-format
38726 msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
38727 msgstr "El argumento de conjunto de imagen %L debe ser un escalar o una expresión INTEGER de rango 1"
38728
38729-#: fortran/resolve.c:8488 fortran/resolve.c:8498
38730+#: fortran/resolve.c:8475 fortran/resolve.c:8485
38731 #, gcc-internal-format, gfc-internal-format
38732 msgid "Imageset argument at %L must between 1 and num_images()"
38733 msgstr "El argumento de conjunto de imagen en %L debe estar entre 1 y num_images()"
38734
38735-#: fortran/resolve.c:8541
38736+#: fortran/resolve.c:8528
38737 #, gcc-internal-format, gfc-internal-format
38738 msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
38739 msgstr "La declaración en %L no es una declaración de objetivo de ramificación válida para la declaración de ramificación en %L"
38740
38741-#: fortran/resolve.c:8550
38742+#: fortran/resolve.c:8537
38743 #, gcc-internal-format, gfc-internal-format
38744 msgid "Branch at %L may result in an infinite loop"
38745 msgstr "La ramificación en %L puede resultar en un bucle infinito"
38746
38747 #. Note: A label at END CRITICAL does not leave the CRITICAL
38748 #. construct as END CRITICAL is still part of it.
38749-#: fortran/resolve.c:8567 fortran/resolve.c:8590
38750+#: fortran/resolve.c:8554 fortran/resolve.c:8577
38751 #, gcc-internal-format, gfc-internal-format
38752 msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
38753 msgstr "La declaración GOTO en %L deja la construcción CRITICAL por la etiqueta en %L"
38754
38755-#: fortran/resolve.c:8571 fortran/resolve.c:8596
38756+#: fortran/resolve.c:8558 fortran/resolve.c:8583
38757 #, gcc-internal-format, gfc-internal-format
38758 msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
38759 msgstr "La declaración GOTO en %L deja la construcción DO CONCURRENT por la etiqueta en %L"
38760@@ -41636,950 +41842,950 @@
38761 #. The label is not in an enclosing block, so illegal. This was
38762 #. allowed in Fortran 66, so we allow it as extension. No
38763 #. further checks are necessary in this case.
38764-#: fortran/resolve.c:8611
38765+#: fortran/resolve.c:8598
38766 #, gcc-internal-format, gfc-internal-format
38767 msgid "Label at %L is not in the same block as the GOTO statement at %L"
38768 msgstr "La etiqueta en %L no está en el mismo bloque que la declaración GOTO en %L"
38769
38770-#: fortran/resolve.c:8683
38771+#: fortran/resolve.c:8670
38772 #, gcc-internal-format, gfc-internal-format
38773 msgid "WHERE mask at %L has inconsistent shape"
38774 msgstr "La máscara WHERE en %L tiene forma inconsistente"
38775
38776-#: fortran/resolve.c:8699
38777+#: fortran/resolve.c:8686
38778 #, gcc-internal-format, gfc-internal-format
38779 msgid "WHERE assignment target at %L has inconsistent shape"
38780 msgstr "El objetivo de asignación WHERE en %L tiene forma inconsistente"
38781
38782-#: fortran/resolve.c:8707 fortran/resolve.c:8794
38783+#: fortran/resolve.c:8694 fortran/resolve.c:8781
38784 #, gcc-internal-format, gfc-internal-format
38785 msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
38786 msgstr "Asignación definida por el usuario de un no-ELEMENTAL en WHERE en %L"
38787
38788-#: fortran/resolve.c:8717 fortran/resolve.c:8804
38789+#: fortran/resolve.c:8704 fortran/resolve.c:8791
38790 #, gcc-internal-format, gfc-internal-format
38791 msgid "Unsupported statement inside WHERE at %L"
38792 msgstr "Declaración sin soporte dentro de WHERE en %L"
38793
38794-#: fortran/resolve.c:8748
38795+#: fortran/resolve.c:8735
38796 #, gcc-internal-format, gfc-internal-format
38797 msgid "Assignment to a FORALL index variable at %L"
38798 msgstr "Asignación a una variable de índice FORALL en %L"
38799
38800-#: fortran/resolve.c:8757
38801+#: fortran/resolve.c:8744
38802 #, gcc-internal-format, gfc-internal-format
38803 msgid "The FORALL with index '%s' is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
38804 msgstr "No se usa el FORALL con índice '%s' en el lado izquierdo de la asignación en %L y podría causar múltiples asignaciones a este objeto"
38805
38806-#: fortran/resolve.c:8926
38807+#: fortran/resolve.c:8913
38808 #, gcc-internal-format, gfc-internal-format
38809 msgid "An outer FORALL construct already has an index with this name %L"
38810 msgstr "Una construcción FORALL externa ya tiene un índice con este nombre %L"
38811
38812-#: fortran/resolve.c:9006
38813+#: fortran/resolve.c:8993
38814 #, gcc-internal-format, gfc-internal-format
38815 msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
38816 msgstr "la cláusula WHERE/ELSEWHERE en %L requiere una matriz LOGICAL"
38817
38818-#: fortran/resolve.c:9160
38819+#: fortran/resolve.c:9147
38820 #, gcc-internal-format, gfc-internal-format
38821 msgid "CHARACTER expression will be truncated in assignment (%d/%d) at %L"
38822 msgstr "Se truncará la expresión CHARACTER en la asignación (%d/%d) en %L"
38823
38824-#: fortran/resolve.c:9192
38825+#: fortran/resolve.c:9179
38826 #, gcc-internal-format, gfc-internal-format
38827 msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure"
38828 msgstr "La expresión con coíndice en %L se asigna a una variable de tipo derivado con un componente POINTER en un procedimiento PURE"
38829
38830-#: fortran/resolve.c:9197
38831+#: fortran/resolve.c:9184
38832 #, gcc-internal-format, gfc-internal-format
38833 msgid "The impure variable at %L is assigned to a derived type variable with a POINTER component in a PURE procedure (12.6)"
38834 msgstr "La variable impura en %L se asigna a una variable de tipo derivado con un componente POINTER en un procedimiento PURE (12.6)"
38835
38836-#: fortran/resolve.c:9207
38837+#: fortran/resolve.c:9194
38838 #, gcc-internal-format, gfc-internal-format
38839 msgid "Assignment to coindexed variable at %L in a PURE procedure"
38840 msgstr "Asignación a una variable coindizada en %L en un procedimiento PURE"
38841
38842-#: fortran/resolve.c:9238
38843+#: fortran/resolve.c:9225
38844 #, gcc-internal-format, gfc-internal-format
38845 msgid "Variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for '=' operator"
38846 msgstr "La variable no debe ser polimórfica en la asignación intrínseca en %L - revise que hay una subrutina específica coincidente para el operador '='"
38847
38848-#: fortran/resolve.c:9247
38849+#: fortran/resolve.c:9234
38850 #, gcc-internal-format, gfc-internal-format
38851 msgid "Coindexed variable must not be have an allocatable ultimate component in assignment at %L"
38852 msgstr "La variable coindizada no debe tener un componente último alojable en la asignación en %L"
38853
38854-#: fortran/resolve.c:9382
38855+#: fortran/resolve.c:9369
38856 #, gcc-internal-format, gfc-internal-format
38857 msgid "ASSIGNED GOTO statement at %L requires an INTEGER variable"
38858 msgstr "La declaración ASSIGNED GOTO en %L requiere una variable INTEGER"
38859
38860-#: fortran/resolve.c:9385
38861+#: fortran/resolve.c:9372
38862 #, gcc-internal-format, gfc-internal-format
38863 msgid "Variable '%s' has not been assigned a target label at %L"
38864 msgstr "La variable '%s' no se ha asignado a una etiqueta objetivo en %L"
38865
38866-#: fortran/resolve.c:9396
38867+#: fortran/resolve.c:9383
38868 #, gcc-internal-format, gfc-internal-format
38869 msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
38870 msgstr "La declaración RETURN alternativa en %L requiere de un especificador de devolución SCALAR-INTEGER"
38871
38872-#: fortran/resolve.c:9431
38873+#: fortran/resolve.c:9418
38874 #, gcc-internal-format, gfc-internal-format
38875 msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
38876 msgstr "La declaración de ASSIGN en %L requiere una variable INTEGER escalar por defecto"
38877
38878-#: fortran/resolve.c:9464
38879+#: fortran/resolve.c:9451
38880 #, gcc-internal-format, gfc-internal-format
38881 msgid "Arithmetic IF statement at %L requires a numeric expression"
38882 msgstr "La declaración IF aritmética en %L requiere una expresión numérica"
38883
38884-#: fortran/resolve.c:9523
38885+#: fortran/resolve.c:9510
38886 #, gcc-internal-format, gfc-internal-format
38887 msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
38888 msgstr "La condición de salida del bucle DO WHILE en %L debe ser una expresión LOGICAL escalar"
38889
38890-#: fortran/resolve.c:9607
38891+#: fortran/resolve.c:9594
38892 #, gcc-internal-format, gfc-internal-format
38893 msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
38894 msgstr "La cláusula de máscara FORALL en %L requiere una expresión LOGICAL escalar"
38895
38896-#: fortran/resolve.c:9687 fortran/resolve.c:9743
38897+#: fortran/resolve.c:9676 fortran/resolve.c:9729
38898 #, gcc-internal-format, gfc-internal-format
38899 msgid "Binding label '%s' for common block '%s' at %L collides with the global entity '%s' at %L"
38900 msgstr "La etiqueta enlazante '%s' para el bloque común '%s' en %L colisiona con la entidad global '%s' en %L"
38901
38902 #. Common block names match but binding labels do not.
38903-#: fortran/resolve.c:9708
38904+#: fortran/resolve.c:9694
38905 #, gcc-internal-format, gfc-internal-format
38906 msgid "Binding label '%s' for common block '%s' at %L does not match the binding label '%s' for common block '%s' at %L"
38907 msgstr "La etiqueta enlazante '%s' para el bloque común '%s' en %L no coincide con la etiqueta enlazante '%s' para el bloque común '%s' en %L"
38908
38909-#: fortran/resolve.c:9755
38910+#: fortran/resolve.c:9741
38911 #, gcc-internal-format, gfc-internal-format
38912 msgid "Binding label '%s' for common block '%s' at %L collides with global entity '%s' at %L"
38913 msgstr "La etiqueta enlazante '%s' para el bloque común '%s' en %L colisiona con la entidad global '%s' en %L"
38914
38915 #. Make sure global procedures don't collide with anything.
38916-#: fortran/resolve.c:9807
38917+#: fortran/resolve.c:9793
38918 #, gcc-internal-format, gfc-internal-format
38919 msgid "Binding label '%s' at %L collides with the global entity '%s' at %L"
38920 msgstr "La etiqueta enlazante '%s' en %L colisiona con la entidad global '%s' en %L"
38921
38922 #. Make sure procedures in interface bodies don't collide.
38923-#: fortran/resolve.c:9820
38924+#: fortran/resolve.c:9806
38925 #, gcc-internal-format, gfc-internal-format
38926 msgid "Binding label '%s' in interface body at %L collides with the global entity '%s' at %L"
38927 msgstr "La etiqueta enlazante '%s' en el cuerpo de interfaz en %L colisiona con la entidad global '%s' en %L"
38928
38929-#: fortran/resolve.c:9833
38930+#: fortran/resolve.c:9819
38931 #, gcc-internal-format, gfc-internal-format
38932 msgid "Binding label '%s' at %L collides with global entity '%s' at %L"
38933 msgstr "La etiqueta enlazante '%s' en %L colisiona con la entidad global '%s' en %L"
38934
38935-#: fortran/resolve.c:9912
38936+#: fortran/resolve.c:9898
38937 #, gcc-internal-format, gfc-internal-format
38938 msgid "CHARACTER variable at %L has negative length %d, the length has been set to zero"
38939 msgstr "La variable CHARACTER en %L tiene longitud negativa %d, la longitud se estableció a cero"
38940
38941-#: fortran/resolve.c:9925
38942+#: fortran/resolve.c:9911
38943 #, gcc-internal-format, gfc-internal-format
38944 msgid "String length at %L is too large"
38945 msgstr "La longitud de la cadena en %L es demasiado grande"
38946
38947-#: fortran/resolve.c:10262
38948+#: fortran/resolve.c:10248
38949 #, gcc-internal-format, gfc-internal-format
38950 msgid "Allocatable array '%s' at %L must have a deferred shape"
38951 msgstr "La matriz allocatable '%s' en %L debe tener una forma diferida"
38952
38953-#: fortran/resolve.c:10266
38954+#: fortran/resolve.c:10252
38955 #, gcc-internal-format, gfc-internal-format
38956 msgid "Scalar object '%s' at %L may not be ALLOCATABLE"
38957 msgstr "El objeto escalar '%s' en %L no puede ser ALLOCATABLE"
38958
38959-#: fortran/resolve.c:10274
38960+#: fortran/resolve.c:10260
38961 #, gcc-internal-format, gfc-internal-format
38962 msgid "Array pointer '%s' at %L must have a deferred shape"
38963 msgstr "La matriz de puntero '%s' en %L debe tener una forma diferida"
38964
38965-#: fortran/resolve.c:10284
38966+#: fortran/resolve.c:10270
38967 #, gcc-internal-format, gfc-internal-format
38968 msgid "Array '%s' at %L cannot have a deferred shape"
38969 msgstr "La matriz '%s' en %L no puede tener una forma diferida"
38970
38971-#: fortran/resolve.c:10297
38972+#: fortran/resolve.c:10283
38973 #, gcc-internal-format, gfc-internal-format
38974 msgid "Type '%s' of CLASS variable '%s' at %L is not extensible"
38975 msgstr "El tipo '%s' de la variable CLASS '%s' en %L no es extensible"
38976
38977-#: fortran/resolve.c:10309
38978+#: fortran/resolve.c:10295
38979 #, gcc-internal-format, gfc-internal-format
38980 msgid "CLASS variable '%s' at %L must be dummy, allocatable or pointer"
38981 msgstr "La variable CLASS '%s' en %L debe ser dummy, allocatable o pointer"
38982
38983-#: fortran/resolve.c:10340
38984+#: fortran/resolve.c:10326
38985 #, gcc-internal-format, gfc-internal-format
38986 msgid "The type '%s' cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
38987 msgstr "El tipo '%s' no se puede asociar al anfitrión en %L porque está bloqueado por un objeto incompatible del mismo nombre declarado en %L"
38988
38989-#: fortran/resolve.c:10362
38990+#: fortran/resolve.c:10348
38991 #, gcc-internal-format, gfc-internal-format
38992 msgid "Fortran 2008: Implied SAVE for module variable '%s' at %L, needed due to the default initialization"
38993 msgstr "Fortran 2008: SAVE implícito para la variable de módulo '%s' en %L, se necesita por la inicialización por defecto"
38994
38995 #. The shape of a main program or module array needs to be
38996 #. constant.
38997-#: fortran/resolve.c:10409
38998+#: fortran/resolve.c:10395
38999 #, gcc-internal-format, gfc-internal-format
39000 msgid "The module or main program array '%s' at %L must have constant shape"
39001 msgstr "El módulo o la matriz del programa principal '%s' en %L deben tener una forma constante"
39002
39003-#: fortran/resolve.c:10418
39004+#: fortran/resolve.c:10404
39005 #, gcc-internal-format, gfc-internal-format
39006 msgid "Entity '%s' at %L has a deferred type parameter and requires either the pointer or allocatable attribute"
39007 msgstr "La entidad '%s' en %L tiene un parámetro de tipo diferido y requiere el atributo pointer o allocatable"
39008
39009-#: fortran/resolve.c:10432
39010+#: fortran/resolve.c:10418
39011 #, gcc-internal-format, gfc-internal-format
39012 msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
39013 msgstr "La entidad con longitud de carácter asumida en %L debe ser un argumento de prueba o un PARAMETER"
39014
39015-#: fortran/resolve.c:10451
39016+#: fortran/resolve.c:10437
39017 #, gcc-internal-format, gfc-internal-format
39018 msgid "'%s' at %L must have constant character length in this context"
39019 msgstr "'%s' en %L debe tener longitud de cáracter constante en este contexto"
39020
39021-#: fortran/resolve.c:10457
39022+#: fortran/resolve.c:10443
39023 #, gcc-internal-format, gfc-internal-format
39024 msgid "COMMON variable '%s' at %L must have constant character length"
39025 msgstr "La variable COMMON '%s' en %L debe tener longitud de cáracter constante en este contexto"
39026
39027-#: fortran/resolve.c:10502
39028+#: fortran/resolve.c:10488
39029 #, gcc-internal-format, gfc-internal-format
39030 msgid "Allocatable '%s' at %L cannot have an initializer"
39031 msgstr "El allocatable '%s' en %L no puede tener un inicializador"
39032
39033-#: fortran/resolve.c:10505
39034+#: fortran/resolve.c:10491
39035 #, gcc-internal-format, gfc-internal-format
39036 msgid "External '%s' at %L cannot have an initializer"
39037 msgstr "El external '%s' en %L no puede tener un inicializador"
39038
39039-#: fortran/resolve.c:10509
39040+#: fortran/resolve.c:10495
39041 #, gcc-internal-format, gfc-internal-format
39042 msgid "Dummy '%s' at %L cannot have an initializer"
39043 msgstr "El dummy '%s' en %L no puede tener un inicializador"
39044
39045-#: fortran/resolve.c:10512
39046+#: fortran/resolve.c:10498
39047 #, gcc-internal-format, gfc-internal-format
39048 msgid "Intrinsic '%s' at %L cannot have an initializer"
39049 msgstr "El intrinsic '%s' en %L no puede tener un inicializador"
39050
39051-#: fortran/resolve.c:10515
39052+#: fortran/resolve.c:10501
39053 #, gcc-internal-format, gfc-internal-format
39054 msgid "Function result '%s' at %L cannot have an initializer"
39055 msgstr "El resultado de la función '%s' en %L no puede tener un inicializador"
39056
39057-#: fortran/resolve.c:10518
39058+#: fortran/resolve.c:10504
39059 #, gcc-internal-format, gfc-internal-format
39060 msgid "Automatic array '%s' at %L cannot have an initializer"
39061 msgstr "La matriz automática '%s' en %L no puede tener un inicializador"
39062
39063-#: fortran/resolve.c:10555
39064+#: fortran/resolve.c:10541
39065 #, gcc-internal-format, gfc-internal-format
39066 msgid "Character-valued statement function '%s' at %L must have constant length"
39067 msgstr "La función de declaración valuada con carácter '%s' en %L debe tener longitud constante"
39068
39069-#: fortran/resolve.c:10577
39070+#: fortran/resolve.c:10563
39071 #, gcc-internal-format, gfc-internal-format
39072 msgid "Fortran 2003: '%s' is of a PRIVATE type and cannot be a dummy argument of '%s', which is PUBLIC at %L"
39073 msgstr "Fortran 2003: '%s' es de un tipo PRIVATE y no puede ser un argumento dummy de '%s', el cual es PUBLIC en %L"
39074
39075-#: fortran/resolve.c:10599 fortran/resolve.c:10623
39076+#: fortran/resolve.c:10585 fortran/resolve.c:10609
39077 #, gcc-internal-format, gfc-internal-format
39078 msgid "Fortran 2003: Procedure '%s' in PUBLIC interface '%s' at %L takes dummy arguments of '%s' which is PRIVATE"
39079 msgstr "Fortran 2003: El procedimiento '%s' en la interfaz PUBLIC '%s' en %L toma argumentos dummy de '%s' el cual es PRIVATE"
39080
39081-#: fortran/resolve.c:10641
39082+#: fortran/resolve.c:10627
39083 #, gcc-internal-format, gfc-internal-format
39084 msgid "Function '%s' at %L cannot have an initializer"
39085 msgstr "La función '%s' en %L no puede tener un inicializador"
39086
39087-#: fortran/resolve.c:10650
39088+#: fortran/resolve.c:10636
39089 #, gcc-internal-format, gfc-internal-format
39090 msgid "External object '%s' at %L may not have an initializer"
39091 msgstr "El objeto external '%s' en %L puede no tener un inicializador"
39092
39093-#: fortran/resolve.c:10658
39094+#: fortran/resolve.c:10644
39095 #, gcc-internal-format, gfc-internal-format
39096 msgid "ELEMENTAL function '%s' at %L must have a scalar result"
39097 msgstr "La función ELEMENTAL '%s' en %L debe tener un resultado escalar"
39098
39099-#: fortran/resolve.c:10668
39100+#: fortran/resolve.c:10654
39101 #, gcc-internal-format, gfc-internal-format
39102 msgid "Statement function '%s' at %L may not have pointer or allocatable attribute"
39103 msgstr "La función de declaración '%s' en %L no debe tener atributo puntero o alojable"
39104
39105-#: fortran/resolve.c:10687
39106+#: fortran/resolve.c:10673
39107 #, gcc-internal-format, gfc-internal-format
39108 msgid "CHARACTER(*) function '%s' at %L cannot be array-valued"
39109 msgstr "La función CHARACTER(*) '%s' en %L no puede ser matriz-valuada"
39110
39111-#: fortran/resolve.c:10691
39112+#: fortran/resolve.c:10677
39113 #, gcc-internal-format, gfc-internal-format
39114 msgid "CHARACTER(*) function '%s' at %L cannot be pointer-valued"
39115 msgstr "La función CHARACTER(*) '%s' en %L no puede ser puntero-valuada"
39116
39117-#: fortran/resolve.c:10695
39118+#: fortran/resolve.c:10681
39119 #, gcc-internal-format, gfc-internal-format
39120 msgid "CHARACTER(*) function '%s' at %L cannot be pure"
39121 msgstr "La función CHARACTER(*) '%s' en %L no puede ser pura"
39122
39123-#: fortran/resolve.c:10699
39124+#: fortran/resolve.c:10685
39125 #, gcc-internal-format, gfc-internal-format
39126 msgid "CHARACTER(*) function '%s' at %L cannot be recursive"
39127 msgstr "La función CHARACTER(*) '%s' en %L no puede ser recursiva"
39128
39129-#: fortran/resolve.c:10711
39130+#: fortran/resolve.c:10697
39131 #, gcc-internal-format, gfc-internal-format
39132 msgid "Obsolescent feature: CHARACTER(*) function '%s' at %L"
39133 msgstr "Característica obsoleta: función CHARACTER(*) '%s' en %L"
39134
39135-#: fortran/resolve.c:10766
39136+#: fortran/resolve.c:10752
39137 #, gcc-internal-format, gfc-internal-format
39138 msgid "PROCEDURE attribute conflicts with SAVE attribute in '%s' at %L"
39139 msgstr "El atributo PROCEDURE genera un conflicto con el atributo SAVE en '%s' en %L"
39140
39141-#: fortran/resolve.c:10772
39142+#: fortran/resolve.c:10758
39143 #, gcc-internal-format, gfc-internal-format
39144 msgid "PROCEDURE attribute conflicts with INTENT attribute in '%s' at %L"
39145 msgstr "El atributo PROCEDURE genera un conflicto con el atributo INTENT en '%s' en %L"
39146
39147-#: fortran/resolve.c:10778
39148+#: fortran/resolve.c:10764
39149 #, gcc-internal-format, gfc-internal-format
39150 msgid "PROCEDURE attribute conflicts with RESULT attribute in '%s' at %L"
39151 msgstr "El atributo PROCEDURE genera un conflicto con el atributo RESULT en '%s' en %L"
39152
39153-#: fortran/resolve.c:10786
39154+#: fortran/resolve.c:10772
39155 #, gcc-internal-format, gfc-internal-format
39156 msgid "EXTERNAL attribute conflicts with FUNCTION attribute in '%s' at %L"
39157 msgstr "El atributo EXTERNAL genera un conflicto con el atributo FUNCTION en '%s' en %L"
39158
39159-#: fortran/resolve.c:10792
39160+#: fortran/resolve.c:10778
39161 #, gcc-internal-format, gfc-internal-format
39162 msgid "Procedure pointer result '%s' at %L is missing the pointer attribute"
39163 msgstr "Al resultado del puntero de procedimiento '%s' en %L le falta el atributo puntero"
39164
39165-#: fortran/resolve.c:10838
39166+#: fortran/resolve.c:10824
39167 #, gcc-internal-format, gfc-internal-format
39168 msgid "FINAL procedure '%s' at %L is not a SUBROUTINE"
39169 msgstr "El procedimiento FINAL '%s' en %L no debe ser una SUBROUTINE"
39170
39171-#: fortran/resolve.c:10846
39172+#: fortran/resolve.c:10832
39173 #, gcc-internal-format, gfc-internal-format
39174 msgid "FINAL procedure at %L must have exactly one argument"
39175 msgstr "El procedimiento FINAL en %L debe tener exactamente un argumento"
39176
39177-#: fortran/resolve.c:10855
39178+#: fortran/resolve.c:10841
39179 #, gcc-internal-format, gfc-internal-format
39180 msgid "Argument of FINAL procedure at %L must be of type '%s'"
39181 msgstr "El argumento del procedimiento FINAL en %L debe ser de tipo '%s'"
39182
39183-#: fortran/resolve.c:10863
39184+#: fortran/resolve.c:10849
39185 #, gcc-internal-format, gfc-internal-format
39186 msgid "Argument of FINAL procedure at %L must not be a POINTER"
39187 msgstr "El argumento del procedimiento FINAL en %L no debe ser un POINTER"
39188
39189-#: fortran/resolve.c:10869
39190+#: fortran/resolve.c:10855
39191 #, gcc-internal-format, gfc-internal-format
39192 msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
39193 msgstr "El argumento del procedimiento final en %L no debe ser ALLOCATABLE"
39194
39195-#: fortran/resolve.c:10875
39196+#: fortran/resolve.c:10861
39197 #, gcc-internal-format, gfc-internal-format
39198 msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
39199 msgstr "El argumento del procedimiento FINAL en %L no debe ser OPTIONAL"
39200
39201-#: fortran/resolve.c:10883
39202+#: fortran/resolve.c:10869
39203 #, gcc-internal-format, gfc-internal-format
39204 msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
39205 msgstr "El argumento del procedimiento FINAL en %L no debe ser INTENT(OUT)"
39206
39207-#: fortran/resolve.c:10891
39208+#: fortran/resolve.c:10877
39209 #, gcc-internal-format, gfc-internal-format
39210 msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
39211 msgstr "El procedimiento FINAL que no es escalar en %L debe tener un argumento sharp asumido"
39212
39213-#: fortran/resolve.c:10910
39214+#: fortran/resolve.c:10896
39215 #, gcc-internal-format, gfc-internal-format
39216 msgid "FINAL procedure '%s' declared at %L has the same rank (%d) as '%s'"
39217 msgstr "El procedimiento FINAL '%s' declarado en %L tiene el mismo rango (%d) que '%s'"
39218
39219-#: fortran/resolve.c:10943
39220+#: fortran/resolve.c:10929
39221 #, gcc-internal-format, gfc-internal-format
39222 msgid "Only array FINAL procedures declared for derived type '%s' defined at %L, suggest also scalar one"
39223 msgstr "Sólo se declaran procedimientos FINAL de matriz para el tipo derivado '%s' definido en %L, se sugiere también uno escalar"
39224
39225 #. TODO: Remove this error when finalization is finished.
39226-#: fortran/resolve.c:10948
39227+#: fortran/resolve.c:10934
39228 #, gcc-internal-format, gfc-internal-format
39229 msgid "Finalization at %L is not yet implemented"
39230 msgstr "Aún no se admite la finalización en %L"
39231
39232-#: fortran/resolve.c:10978
39233+#: fortran/resolve.c:10965
39234 #, gcc-internal-format, gfc-internal-format
39235 msgid "'%s' and '%s' can't be mixed FUNCTION/SUBROUTINE for GENERIC '%s' at %L"
39236 msgstr "'%s' y '%s' no pueden ser FUNCTION/SUBROUTINE mezcladas para el GENERIC '%s' en %L"
39237
39238-#: fortran/resolve.c:10987
39239+#: fortran/resolve.c:10975
39240 #, gcc-internal-format, gfc-internal-format
39241 msgid "'%s' and '%s' for GENERIC '%s' at %L are ambiguous"
39242 msgstr "'%s' y '%s' para el GENERIC '%s' en %L son ambiguos"
39243
39244-#: fortran/resolve.c:11046
39245+#: fortran/resolve.c:11034
39246 #, gcc-internal-format, gfc-internal-format
39247 msgid "Undefined specific binding '%s' as target of GENERIC '%s' at %L"
39248 msgstr "El enlace específico '%s' no está definido como objetivo del GENERIC '%s' en %L"
39249
39250-#: fortran/resolve.c:11058
39251+#: fortran/resolve.c:11046
39252 #, gcc-internal-format, gfc-internal-format
39253 msgid "GENERIC '%s' at %L must target a specific binding, '%s' is GENERIC, too"
39254 msgstr "El GENERIC '%s' en %L debe apuntar a un enlace específico, '%s' es GENERIC también"
39255
39256-#: fortran/resolve.c:11088
39257+#: fortran/resolve.c:11076
39258 #, gcc-internal-format, gfc-internal-format
39259 msgid "GENERIC '%s' at %L can't overwrite specific binding with the same name"
39260 msgstr "El GENERIC '%s' en %L no puede sobreescribir el enlace específico con el mismo nombre"
39261
39262-#: fortran/resolve.c:11144
39263+#: fortran/resolve.c:11132
39264 #, gcc-internal-format, gfc-internal-format
39265 msgid "Type-bound operator at %L can't be NOPASS"
39266 msgstr "El operador enlazado a tipo en %L no puede ser NOPASS"
39267
39268-#: fortran/resolve.c:11307
39269+#: fortran/resolve.c:11295
39270 #, gcc-internal-format, gfc-internal-format
39271 msgid "'%s' must be a module procedure or an external procedure with an explicit interface at %L"
39272 msgstr "'%s' debe ser un procedimiento de módulo o un procedimiento externo con una interfaz explícita en %L"
39273
39274-#: fortran/resolve.c:11344
39275+#: fortran/resolve.c:11332
39276 #, gcc-internal-format, gfc-internal-format
39277 msgid "Procedure '%s' with PASS(%s) at %L has no argument '%s'"
39278 msgstr "El procedimiento '%s' con PASS(%s) en %L no tiene un argumento '%s'"
39279
39280-#: fortran/resolve.c:11358
39281+#: fortran/resolve.c:11346
39282 #, gcc-internal-format, gfc-internal-format
39283 msgid "Procedure '%s' with PASS at %L must have at least one argument"
39284 msgstr "El procedimiento '%s' con PASS en %L debe tener al menos un argumento"
39285
39286-#: fortran/resolve.c:11372 fortran/resolve.c:11835
39287+#: fortran/resolve.c:11360 fortran/resolve.c:11823
39288 #, gcc-internal-format, gfc-internal-format
39289 msgid "Non-polymorphic passed-object dummy argument of '%s' at %L"
39290 msgstr "Argumento dummy pasado como objeto no polimórfico de '%s' en %L"
39291
39292-#: fortran/resolve.c:11380
39293+#: fortran/resolve.c:11368
39294 #, gcc-internal-format, gfc-internal-format
39295 msgid "Argument '%s' of '%s' with PASS(%s) at %L must be of the derived-type '%s'"
39296 msgstr "El argumento '%s' de '%s' con PASS(%s) en %L debe ser del tipo derivado '%s'"
39297
39298-#: fortran/resolve.c:11389
39299+#: fortran/resolve.c:11377
39300 #, gcc-internal-format, gfc-internal-format
39301 msgid "Passed-object dummy argument of '%s' at %L must be scalar"
39302 msgstr "El argumento dummy de objeto pasado de '%s' en %L debe ser escalar"
39303
39304-#: fortran/resolve.c:11395
39305+#: fortran/resolve.c:11383
39306 #, gcc-internal-format, gfc-internal-format
39307 msgid "Passed-object dummy argument of '%s' at %L must not be ALLOCATABLE"
39308 msgstr "El argumento dummy de objeto pasado de '%s' en %L no debe ser ALLOCATABLE"
39309
39310-#: fortran/resolve.c:11401
39311+#: fortran/resolve.c:11389
39312 #, gcc-internal-format, gfc-internal-format
39313 msgid "Passed-object dummy argument of '%s' at %L must not be POINTER"
39314 msgstr "El argumento dummy de objeto pasado de '%s' en %L no debe ser POINTER"
39315
39316-#: fortran/resolve.c:11430
39317+#: fortran/resolve.c:11418
39318 #, gcc-internal-format, gfc-internal-format
39319 msgid "Procedure '%s' at %L has the same name as a component of '%s'"
39320 msgstr "El procedimiento '%s' en %L tiene el mismo nombre que un componente de '%s'"
39321
39322-#: fortran/resolve.c:11439
39323+#: fortran/resolve.c:11427
39324 #, gcc-internal-format, gfc-internal-format
39325 msgid "Procedure '%s' at %L has the same name as an inherited component of '%s'"
39326 msgstr "El procedimiento '%s' en %L tiene el mismo nombre que un componente heredado de '%s'"
39327
39328-#: fortran/resolve.c:11534
39329+#: fortran/resolve.c:11522
39330 #, gcc-internal-format, gfc-internal-format
39331 msgid "Derived-type '%s' declared at %L must be ABSTRACT because '%s' is DEFERRED and not overridden"
39332 msgstr "El tipo derivado '%s' declarado en %L debe ser ABSTRACT porque '%s' es DEFERRED y no se sobreescribió"
39333
39334-#: fortran/resolve.c:11592
39335+#: fortran/resolve.c:11580
39336 #, gcc-internal-format, gfc-internal-format
39337 msgid "As extending type '%s' at %L has a coarray component, parent type '%s' shall also have one"
39338 msgstr "Como al extender el tipo '%s' en %L tiene un componente de comatriz, el tipo padre '%s' también debe tener uno"
39339
39340-#: fortran/resolve.c:11605
39341+#: fortran/resolve.c:11593
39342 #, gcc-internal-format, gfc-internal-format
39343 msgid "Non-extensible derived-type '%s' at %L must not be ABSTRACT"
39344 msgstr "El tipo derivado '%s' que no es extensible en %L no debe ser ABSTRACT"
39345
39346-#: fortran/resolve.c:11618
39347+#: fortran/resolve.c:11606
39348 #, gcc-internal-format, gfc-internal-format
39349 msgid "Deferred-length character component '%s' at %L is not yet supported"
39350 msgstr "El componente de caractér de longitud diferida '%s' en %L aún no se admite"
39351
39352-#: fortran/resolve.c:11628
39353+#: fortran/resolve.c:11616
39354 #, gcc-internal-format, gfc-internal-format
39355 msgid "Coarray component '%s' at %L must be allocatable with deferred shape"
39356 msgstr "El componente de comatriz '%s' en %L debe sel alojable con forma diferida"
39357
39358-#: fortran/resolve.c:11637
39359+#: fortran/resolve.c:11625
39360 #, gcc-internal-format, gfc-internal-format
39361 msgid "Component '%s' at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
39362 msgstr "El componente '%s' en %L de TYPE(C_PTR) o TYPE(C_FUNPTR) no debe ser una comatriz"
39363
39364-#: fortran/resolve.c:11647
39365+#: fortran/resolve.c:11635
39366 #, gcc-internal-format, gfc-internal-format
39367 msgid "Component '%s' at %L with coarray component shall be a nonpointer, nonallocatable scalar"
39368 msgstr "El componenten '%s' en %L con componente comatriz debe ser un escalar que no sea puntero alojable"
39369
39370-#: fortran/resolve.c:11656
39371+#: fortran/resolve.c:11644
39372 #, gcc-internal-format, gfc-internal-format
39373 msgid "Component '%s' at %L has the CONTIGUOUS attribute but is not an array pointer"
39374 msgstr "El componente '%s' en %L tiene el atributo CONTIGUOUS porque no es un puntero de matriz"
39375
39376-#: fortran/resolve.c:11664
39377+#: fortran/resolve.c:11652
39378 #, gcc-internal-format, gfc-internal-format
39379 msgid "Interface '%s', used by procedure pointer component '%s' at %L, is declared in a later PROCEDURE statement"
39380 msgstr "La interfaz '%s', usada por el procedimiento de componente puntero '%s' en %L, se declara en una declaración PROCEDURE posterior"
39381
39382-#: fortran/resolve.c:11729
39383+#: fortran/resolve.c:11717
39384 #, gcc-internal-format, gfc-internal-format
39385 msgid "Interface '%s' of procedure pointer component '%s' at %L must be explicit"
39386 msgstr "La interfaz '%s' del procedimiento de componente puntero '%s' en %L debe ser explícita"
39387
39388-#: fortran/resolve.c:11769
39389+#: fortran/resolve.c:11757
39390 #, gcc-internal-format, gfc-internal-format
39391 msgid "Procedure pointer component '%s' with PASS(%s) at %L has no argument '%s'"
39392 msgstr "El procedimiento de componente puntero '%s' con PASS(%s) en %L no tiene un argumento '%s'"
39393
39394-#: fortran/resolve.c:11783
39395+#: fortran/resolve.c:11771
39396 #, gcc-internal-format, gfc-internal-format
39397 msgid "Procedure pointer component '%s' with PASS at %L must have at least one argument"
39398 msgstr "El procedimiento de componente puntero '%s' con PASS en %L debe tener al menos un argumento"
39399
39400-#: fortran/resolve.c:11799
39401+#: fortran/resolve.c:11787
39402 #, gcc-internal-format, gfc-internal-format
39403 msgid "Argument '%s' of '%s' with PASS(%s) at %L must be of the derived type '%s'"
39404 msgstr "El argumento '%s' de '%s' con PASS(%s) en %L debe ser del tipo derivado '%s'"
39405
39406-#: fortran/resolve.c:11809
39407+#: fortran/resolve.c:11797
39408 #, gcc-internal-format, gfc-internal-format
39409 msgid "Argument '%s' of '%s' with PASS(%s) at %L must be scalar"
39410 msgstr "El argumento '%s' de '%s' con PASS(%s) en %L debe ser escalar"
39411
39412-#: fortran/resolve.c:11818
39413+#: fortran/resolve.c:11806
39414 #, gcc-internal-format, gfc-internal-format
39415 msgid "Argument '%s' of '%s' with PASS(%s) at %L may not have the POINTER attribute"
39416 msgstr "El argumento '%s' de '%s' con PASS(%s) en %L no puede tener el atributo POINTER"
39417
39418-#: fortran/resolve.c:11827
39419+#: fortran/resolve.c:11815
39420 #, gcc-internal-format, gfc-internal-format
39421 msgid "Argument '%s' of '%s' with PASS(%s) at %L may not be ALLOCATABLE"
39422 msgstr "El argumento '%s' de '%s' con PASS(%s) en %L no puede ser ALLOCATABLE"
39423
39424-#: fortran/resolve.c:11864
39425+#: fortran/resolve.c:11852
39426 #, gcc-internal-format, gfc-internal-format
39427 msgid "Component '%s' of '%s' at %L has the same name as an inherited type-bound procedure"
39428 msgstr "El componente '%s' de '%s' en %L tiene el mismo nombre que un procedimiento enlazado a tipo heredado"
39429
39430-#: fortran/resolve.c:11877
39431+#: fortran/resolve.c:11865
39432 #, gcc-internal-format, gfc-internal-format
39433 msgid "Character length of component '%s' needs to be a constant specification expression at %L"
39434 msgstr "La longitud de carácter del componente '%s' necesita ser una expresión de especificación constante en %L"
39435
39436-#: fortran/resolve.c:11888
39437+#: fortran/resolve.c:11876
39438 #, gcc-internal-format, gfc-internal-format
39439 msgid "Character component '%s' of '%s' at %L with deferred length must be a POINTER or ALLOCATABLE"
39440 msgstr "El componente de carácter '%s' de '%s' en %L con longitud diferida debe ser POINTER o ALLOCATABLE"
39441
39442-#: fortran/resolve.c:11900
39443+#: fortran/resolve.c:11888
39444 #, gcc-internal-format, gfc-internal-format
39445 msgid "Fortran 2003: the component '%s' is a PRIVATE type and cannot be a component of '%s', which is PUBLIC at %L"
39446 msgstr "Fortran 2003: el componente '%s' es un tipo PRIVATE y no puede ser un componente de '%s' el cual es PUBLIC en %L"
39447
39448-#: fortran/resolve.c:11908
39449+#: fortran/resolve.c:11896
39450 #, gcc-internal-format, gfc-internal-format
39451 msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
39452 msgstr "El componente polimórfico %s en %L en SEQUENCE o de tipo BIND(C) %s"
39453
39454-#: fortran/resolve.c:11917
39455+#: fortran/resolve.c:11905
39456 #, gcc-internal-format, gfc-internal-format
39457 msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute"
39458 msgstr "El componente %s del tipo SEQUENCE declarado en %L no tiene el atributo SEQUENCE"
39459
39460-#: fortran/resolve.c:11935 fortran/resolve.c:11946
39461+#: fortran/resolve.c:11923 fortran/resolve.c:11934
39462 #, gcc-internal-format, gfc-internal-format
39463 msgid "The pointer component '%s' of '%s' at %L is a type that has not been declared"
39464 msgstr "El componente puntero '%s' de '%s' en %L es de un tipo que no se ha declarado"
39465
39466-#: fortran/resolve.c:11958
39467+#: fortran/resolve.c:11946
39468 #, gcc-internal-format, gfc-internal-format
39469 msgid "Component '%s' with CLASS at %L must be allocatable or pointer"
39470 msgstr "El componente '%s' con CLASS en %L debe ser allocatable o pointer"
39471
39472-#: fortran/resolve.c:12006
39473+#: fortran/resolve.c:11994
39474 #, gcc-internal-format, gfc-internal-format
39475 msgid "Fortran 2003: Generic name '%s' of function '%s' at %L being the same name as derived type at %L"
39476 msgstr "Fortran 2003: El nombre genérico '%s' de la función '%s' en %L tiene el mismo nombre que el tipo derivado en %L"
39477
39478-#: fortran/resolve.c:12058
39479+#: fortran/resolve.c:12046
39480 #, gcc-internal-format, gfc-internal-format
39481 msgid "Assumed size array '%s' in namelist '%s' at %L is not allowed"
39482 msgstr "No se permite la matriz de tamaño asumido '%s' en la lista de nombres '%s' en %L"
39483
39484-#: fortran/resolve.c:12064
39485+#: fortran/resolve.c:12052
39486 #, gcc-internal-format, gfc-internal-format
39487 msgid "Fortran 2003: NAMELIST array object '%s' with assumed shape in namelist '%s' at %L"
39488 msgstr "Fortran 2003: Objeto de matriz NAMELIST '%s' con forma asumida en la lista de nombres '%s' en %L"
39489
39490-#: fortran/resolve.c:12071
39491+#: fortran/resolve.c:12059
39492 #, gcc-internal-format, gfc-internal-format
39493 msgid "Fortran 2003: NAMELIST array object '%s' with nonconstant shape in namelist '%s' at %L"
39494 msgstr "Fortran 2003: El objeto de matriz NAMELIST '%s' con forma que no es constante en la lista de nombres '%s' en %L"
39495
39496-#: fortran/resolve.c:12080
39497+#: fortran/resolve.c:12068
39498 #, gcc-internal-format, gfc-internal-format
39499 msgid "Fortran 2003: NAMELIST object '%s' with nonconstant character length in namelist '%s' at %L"
39500 msgstr "Fortran 2003: El objeto de matriz NAMELIST '%s' con longitud de carácter que no es constante en la lista de nombres '%s' en %L"
39501
39502-#: fortran/resolve.c:12090
39503+#: fortran/resolve.c:12078
39504 #, gcc-internal-format, gfc-internal-format
39505 msgid "NAMELIST object '%s' in namelist '%s' at %L is polymorphic and requires a defined input/output procedure"
39506 msgstr "El objeto NAMELIST '%s' en la lista de nombres '%s' en %L es polimórfico y requiere un procedimiento de entrada/salida definido"
39507
39508-#: fortran/resolve.c:12100
39509+#: fortran/resolve.c:12088
39510 #, gcc-internal-format, gfc-internal-format
39511 msgid "Fortran 2003: NAMELIST object '%s' in namelist '%s' at %L with ALLOCATABLE or POINTER components"
39512 msgstr "Fortran 2003: El objeto NAMELIST '%s' en la lista de nombres '%s' en %L con componentes ALLOCATABLE o POINTER"
39513
39514 #. FIXME: Once UDDTIO is implemented, the following can be
39515 #. removed.
39516-#: fortran/resolve.c:12108
39517+#: fortran/resolve.c:12096
39518 #, gcc-internal-format, gfc-internal-format
39519 msgid "NAMELIST object '%s' in namelist '%s' at %L has ALLOCATABLE or POINTER components and thus requires a defined input/output procedure"
39520 msgstr "El objeto NAMELIST '%s' en la lista de nombres '%s' en %L tiene componentes ALLOCATABLE o POINTER y por lo tanto requere un procedimiento de entrada/salida definido"
39521
39522-#: fortran/resolve.c:12125
39523+#: fortran/resolve.c:12113
39524 #, gcc-internal-format, gfc-internal-format
39525 msgid "NAMELIST object '%s' was declared PRIVATE and cannot be member of PUBLIC namelist '%s' at %L"
39526 msgstr "El objeto NAMELIST '%s' se declaró PRIVATE y no puede ser miembro de una lista de nombres PUBLIC '%s' en %L"
39527
39528-#: fortran/resolve.c:12135
39529+#: fortran/resolve.c:12123
39530 #, gcc-internal-format, gfc-internal-format
39531 msgid "NAMELIST object '%s' has use-associated PRIVATE components and cannot be member of namelist '%s' at %L"
39532 msgstr "El objeto NAMELIST '%s' tiene componentes PRIVATE asociados a uso y no puede ser miembro de la lista de nombres '%s' en %L"
39533
39534-#: fortran/resolve.c:12146
39535+#: fortran/resolve.c:12134
39536 #, gcc-internal-format, gfc-internal-format
39537 msgid "NAMELIST object '%s' has PRIVATE components and cannot be a member of PUBLIC namelist '%s' at %L"
39538 msgstr "El objeto NAMELIST '%s' tiene componentes PRIVATE y no puede ser un miembro de la lista de nombres PUBLIC '%s' en %L"
39539
39540-#: fortran/resolve.c:12173
39541+#: fortran/resolve.c:12161
39542 #, gcc-internal-format, gfc-internal-format
39543 msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L"
39544 msgstr "El atributo PROCEDURE genera un conflicto con el atributo NAMELIST en '%s' en %L"
39545
39546-#: fortran/resolve.c:12192
39547+#: fortran/resolve.c:12180
39548 #, gcc-internal-format, gfc-internal-format
39549 msgid "Parameter array '%s' at %L cannot be automatic or of deferred shape"
39550 msgstr "La matriz de parámetro '%s' en %L no puede ser automática ni de forma diferida"
39551
39552-#: fortran/resolve.c:12204
39553+#: fortran/resolve.c:12192
39554 #, gcc-internal-format, gfc-internal-format
39555 msgid "Implicitly typed PARAMETER '%s' at %L doesn't match a later IMPLICIT type"
39556 msgstr "El PARAMETER de tipo implícito '%s' en %L no coincide con un tipo IMPLICIT posterior"
39557
39558-#: fortran/resolve.c:12215
39559+#: fortran/resolve.c:12203
39560 #, gcc-internal-format, gfc-internal-format
39561 msgid "Incompatible derived type in PARAMETER at %L"
39562 msgstr "Tipo derivado incompatible en PARAMETER en %L"
39563
39564-#: fortran/resolve.c:12284
39565+#: fortran/resolve.c:12272
39566 #, gcc-internal-format, gfc-internal-format
39567 msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
39568 msgstr "El atributo PROTECTED genera un conflicto con el atributo EXTERNAL en %L"
39569
39570-#: fortran/resolve.c:12287
39571+#: fortran/resolve.c:12275
39572 #, gcc-internal-format, gfc-internal-format
39573 msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
39574 msgstr "El atributo PROCEDURE genera un conflicto con el atributo PROTECTED en %L"
39575
39576-#: fortran/resolve.c:12370
39577+#: fortran/resolve.c:12358
39578 #, gcc-internal-format, gfc-internal-format
39579 msgid "'%s' at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape array"
39580 msgstr "'%s' en %L tiene el atributo CONTIGUOUS pero no es un puntero de matriz o una matriz de forma asumida"
39581
39582-#: fortran/resolve.c:12388
39583+#: fortran/resolve.c:12376
39584 #, gcc-internal-format, gfc-internal-format
39585 msgid "Assumed size array at %L must be a dummy argument"
39586 msgstr "La matriz de tamaño asumido en %L debe ser un argumento de prueba"
39587
39588-#: fortran/resolve.c:12391
39589+#: fortran/resolve.c:12379
39590 #, gcc-internal-format, gfc-internal-format
39591 msgid "Assumed shape array at %L must be a dummy argument"
39592 msgstr "La matriz de forma asumida en %L debe ser un argumento de prueba"
39593
39594-#: fortran/resolve.c:12404
39595+#: fortran/resolve.c:12392
39596 #, gcc-internal-format, gfc-internal-format
39597 msgid "Symbol at %L is not a DUMMY variable"
39598 msgstr "El símbolo en %L no es una variable DUMMY"
39599
39600-#: fortran/resolve.c:12410
39601+#: fortran/resolve.c:12398
39602 #, gcc-internal-format, gfc-internal-format
39603 msgid "'%s' at %L cannot have the VALUE attribute because it is not a dummy argument"
39604 msgstr "'%s' en %L no puede tener el atributo VALUE porque no es un argumento dummy"
39605
39606-#: fortran/resolve.c:12420
39607+#: fortran/resolve.c:12408
39608 #, gcc-internal-format, gfc-internal-format
39609 msgid "Character dummy variable '%s' at %L with VALUE attribute must have constant length"
39610 msgstr "La variable dummy de carácter '%s' en %L con atributo VALUE debe tener longitud constante"
39611
39612-#: fortran/resolve.c:12429
39613+#: fortran/resolve.c:12417
39614 #, gcc-internal-format, gfc-internal-format
39615 msgid "C interoperable character dummy variable '%s' at %L with VALUE attribute must have length one"
39616 msgstr "La variable dummy de carácter interoperable con C '%s' en %L con atributo VALUE debe ser de longitud uno"
39617
39618-#: fortran/resolve.c:12442 fortran/resolve.c:12523
39619+#: fortran/resolve.c:12430 fortran/resolve.c:12511
39620 #, gcc-internal-format, gfc-internal-format
39621 msgid "The derived type '%s' at %L is of type '%s', which has not been defined"
39622 msgstr "El tipo derivado '%s' en %L es de tipo '%s', el cual no se ha definido"
39623
39624-#: fortran/resolve.c:12469
39625+#: fortran/resolve.c:12457
39626 #, gcc-internal-format, gfc-internal-format
39627 msgid "Variable '%s' at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
39628 msgstr "La variable '%s' en %L no puede ser BIND(C) porque no es un bloque COMMON ni se declaró en el ámbito de nivel de módulo"
39629
39630-#: fortran/resolve.c:12549
39631+#: fortran/resolve.c:12537
39632 #, gcc-internal-format, gfc-internal-format
39633 msgid "Fortran 2003: PUBLIC %s '%s' at %L of PRIVATE derived type '%s'"
39634 msgstr "Fortran 2003: La función PUBLIC %s '%s' en %L es de tipo derivado PRIVATE '%s'"
39635
39636-#: fortran/resolve.c:12563
39637+#: fortran/resolve.c:12551
39638 #, gcc-internal-format, gfc-internal-format
39639 msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray"
39640 msgstr "La variable %s en %L de tipo LOCK_TYPE o con un subcomponente de tipo LOCK_TYPE debe ser una comatriz"
39641
39642-#: fortran/resolve.c:12581
39643+#: fortran/resolve.c:12569
39644 #, gcc-internal-format, gfc-internal-format
39645 msgid "The INTENT(OUT) dummy argument '%s' at %L is ASSUMED SIZE and so cannot have a default initializer"
39646 msgstr "El argumento dummy INTENT(OUT) '%s' en %L es ASSUMED SIZE y por lo tanto no puede tener un inicializador por defecto"
39647
39648-#: fortran/resolve.c:12593
39649+#: fortran/resolve.c:12581
39650 #, gcc-internal-format, gfc-internal-format
39651 msgid "Dummy argument '%s' at %L of LOCK_TYPE shall not be INTENT(OUT)"
39652 msgstr "El argumento dummy '%s' en %L de LOCK_TYPE no puede ser INTENT(OUT)"
39653
39654-#: fortran/resolve.c:12605
39655+#: fortran/resolve.c:12593
39656 #, gcc-internal-format, gfc-internal-format
39657 msgid "Function result '%s' at %L shall not be a coarray or have a coarray component"
39658 msgstr "El resultado de la función '%s' en %L no puede ser una comatriz o tener un componente comatriz"
39659
39660-#: fortran/resolve.c:12614
39661+#: fortran/resolve.c:12602
39662 #, gcc-internal-format, gfc-internal-format
39663 msgid "Variable '%s' at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
39664 msgstr "La variable '%s' en %L de TYPE(C_PTR) o TYPE(C_FUNPTR) no debe ser una comatriz"
39665
39666-#: fortran/resolve.c:12626
39667+#: fortran/resolve.c:12614
39668 #, gcc-internal-format, gfc-internal-format
39669 msgid "Variable '%s' at %L with coarray component shall be a nonpointer, nonallocatable scalar"
39670 msgstr "La variable '%s' en %L con componente de comatriz debe ser un escalar que no sea puntero alojable"
39671
39672-#: fortran/resolve.c:12641
39673+#: fortran/resolve.c:12629
39674 #, gcc-internal-format, gfc-internal-format
39675 msgid "Variable '%s' at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument"
39676 msgstr "La variable '%s' en %L es una comatriz y no es ALLOCATABLE, SAVE ni un argumento dummy"
39677
39678-#: fortran/resolve.c:12649
39679+#: fortran/resolve.c:12637
39680 #, gcc-internal-format, gfc-internal-format
39681 msgid "Coarray variable '%s' at %L shall not have codimensions with deferred shape"
39682 msgstr "La variable de comatriz '%s' en %L no debe tener codimensiones con forma diferida"
39683
39684-#: fortran/resolve.c:12656
39685+#: fortran/resolve.c:12644
39686 #, gcc-internal-format, gfc-internal-format
39687 msgid "Allocatable coarray variable '%s' at %L must have deferred shape"
39688 msgstr "La variable comatriz allocatable '%s' en %L debe tener forma diferida"
39689
39690-#: fortran/resolve.c:12668
39691+#: fortran/resolve.c:12656
39692 #, gcc-internal-format, gfc-internal-format
39693 msgid "Variable '%s' at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components"
39694 msgstr "La variable '%s' en %L es INTENT(OUT) y por lo tanto no puede ser una comatriz allocatable o tener componentes comatriz"
39695
39696-#: fortran/resolve.c:12677
39697+#: fortran/resolve.c:12665
39698 #, gcc-internal-format, gfc-internal-format
39699 msgid "Coarray dummy variable '%s' at %L not allowed in BIND(C) procedure '%s'"
39700 msgstr "No se permite la variable dummy comatriz '%s' en %L en el procedimiento BIND(C) '%s'"
39701
39702-#: fortran/resolve.c:12749
39703+#: fortran/resolve.c:12737
39704 #, gcc-internal-format, gfc-internal-format
39705 msgid "Threadprivate at %L isn't SAVEd"
39706 msgstr "No se guarda (SAVE) el threadprivate en %L"
39707
39708-#: fortran/resolve.c:12843
39709+#: fortran/resolve.c:12831
39710 #, gcc-internal-format, gfc-internal-format
39711 msgid "BLOCK DATA element '%s' at %L must be in COMMON"
39712 msgstr "El elemento BLOCK DATA '%s' en %L debe estar en COMMON"
39713
39714-#: fortran/resolve.c:12849
39715+#: fortran/resolve.c:12837
39716 #, gcc-internal-format, gfc-internal-format
39717 msgid "DATA array '%s' at %L must be specified in a previous declaration"
39718 msgstr "La matriz DATA '%s' en %L se debe especificar en una declaración previa"
39719
39720-#: fortran/resolve.c:12858
39721+#: fortran/resolve.c:12846
39722 #, gcc-internal-format, gfc-internal-format
39723 msgid "DATA element '%s' at %L cannot have a coindex"
39724 msgstr "El elemento DATA '%s' en %L no puede tener un coíndice"
39725
39726-#: fortran/resolve.c:12872
39727+#: fortran/resolve.c:12860
39728 #, gcc-internal-format, gfc-internal-format
39729 msgid "DATA element '%s' at %L is a pointer and so must be a full array"
39730 msgstr "El elemento DATA '%s' en %L es un puntero y entonces debe ser una matriz completa"
39731
39732-#: fortran/resolve.c:12918
39733+#: fortran/resolve.c:12906
39734 #, gcc-internal-format, gfc-internal-format
39735 msgid "Nonconstant array section at %L in DATA statement"
39736 msgstr "Sección de matriz no constante en %L en la declaración DATA"
39737
39738-#: fortran/resolve.c:12931
39739+#: fortran/resolve.c:12919
39740 #, gcc-internal-format, gfc-internal-format
39741 msgid "DATA statement at %L has more variables than values"
39742 msgstr "La declaración DATA en %L tiene más variables que valores"
39743
39744-#: fortran/resolve.c:13030
39745+#: fortran/resolve.c:13018
39746 #, gcc-internal-format, gfc-internal-format
39747 msgid "start of implied-do loop at %L could not be simplified to a constant value"
39748 msgstr "el inicio del bucle do implícito en %L no se puede simplificar a un valor constante"
39749
39750-#: fortran/resolve.c:13038
39751+#: fortran/resolve.c:13026
39752 #, gcc-internal-format, gfc-internal-format
39753 msgid "end of implied-do loop at %L could not be simplified to a constant value"
39754 msgstr "el final del bucle do implícito en %L no se puede simplificar a un valor constante"
39755
39756-#: fortran/resolve.c:13046
39757+#: fortran/resolve.c:13034
39758 #, gcc-internal-format, gfc-internal-format
39759 msgid "step of implied-do loop at %L could not be simplified to a constant value"
39760 msgstr "el paso del bucle do implícito en %L no se puede simplificar a un valor constante"
39761
39762-#: fortran/resolve.c:13171
39763+#: fortran/resolve.c:13159
39764 #, gcc-internal-format, gfc-internal-format
39765 msgid "DATA statement at %L has more values than variables"
39766 msgstr "La declaración DATA en %L tiene más valores que variables"
39767
39768-#: fortran/resolve.c:13310
39769+#: fortran/resolve.c:13298
39770 #, gcc-internal-format, gfc-internal-format
39771 msgid "Label %d at %L defined but not used"
39772 msgstr "Se define la etiqueta %d en %L pero no se usa"
39773
39774-#: fortran/resolve.c:13315
39775+#: fortran/resolve.c:13303
39776 #, gcc-internal-format, gfc-internal-format
39777 msgid "Label %d at %L defined but cannot be used"
39778 msgstr "Se define la etiqueta %d en %L pero no se puede usar"
39779
39780-#: fortran/resolve.c:13399
39781+#: fortran/resolve.c:13387
39782 #, gcc-internal-format, gfc-internal-format
39783 msgid "Derived type variable '%s' at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
39784 msgstr "La variable de tipo derivado '%s' en %L debe tener el atributo SEQUENCE para ser un objeto EQUIVALENCE"
39785
39786-#: fortran/resolve.c:13408
39787+#: fortran/resolve.c:13396
39788 #, gcc-internal-format, gfc-internal-format
39789 msgid "Derived type variable '%s' at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
39790 msgstr "La variable de tipo derivado '%s' en %L no puede tener componentes ALLOCATABLE que sean un objeto EQUIVALENCE"
39791
39792-#: fortran/resolve.c:13416
39793+#: fortran/resolve.c:13404
39794 #, gcc-internal-format, gfc-internal-format
39795 msgid "Derived type variable '%s' at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
39796 msgstr "La variable de tipo derivado '%s' en %L con inicializadores por defecto no puede ser un objeto EQUIVALENCE con una variable en COMMON"
39797
39798-#: fortran/resolve.c:13432
39799+#: fortran/resolve.c:13420
39800 #, gcc-internal-format, gfc-internal-format
39801 msgid "Derived type variable '%s' at %L with pointer component(s) cannot be an EQUIVALENCE object"
39802 msgstr "La variable de tipo derivado '%s' en %L con componente(s) de puntero no puede ser un objeto EQUIVALENCE"
39803
39804-#: fortran/resolve.c:13535
39805+#: fortran/resolve.c:13523
39806 #, gcc-internal-format, gfc-internal-format
39807 msgid "Syntax error in EQUIVALENCE statement at %L"
39808 msgstr "Error sintáctico en la declaración EQUIVALENCE en %L"
39809
39810-#: fortran/resolve.c:13550
39811+#: fortran/resolve.c:13538
39812 #, gcc-internal-format, gfc-internal-format
39813 msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute"
39814 msgstr "Todos o ninguno de los objetos en el conjunto EQUIVALENCE en %L deben tener el atributo PROTECTED"
39815
39816-#: fortran/resolve.c:13562
39817+#: fortran/resolve.c:13550
39818 #, gcc-internal-format, gfc-internal-format
39819 msgid "Common block member '%s' at %L cannot be an EQUIVALENCE object in the pure procedure '%s'"
39820 msgstr "El miembro de bloque común '%s' en %L no puede ser un objeto EQUIVALENCE en el procedimiento puro '%s'"
39821
39822-#: fortran/resolve.c:13571
39823+#: fortran/resolve.c:13559
39824 #, gcc-internal-format, gfc-internal-format
39825 msgid "Named constant '%s' at %L cannot be an EQUIVALENCE object"
39826 msgstr "La constante nombrada '%s' en %L no puede ser un objeto EQUIVALENCE"
39827
39828-#: fortran/resolve.c:13650
39829+#: fortran/resolve.c:13638
39830 #, gcc-internal-format, gfc-internal-format
39831 msgid "Array '%s' at %L with non-constant bounds cannot be an EQUIVALENCE object"
39832 msgstr "La matriz '%s' en %L con límites que no son constantes no puede ser un objeto EQUIVALENCE"
39833
39834-#: fortran/resolve.c:13661
39835+#: fortran/resolve.c:13649
39836 #, gcc-internal-format, gfc-internal-format
39837 msgid "Structure component '%s' at %L cannot be an EQUIVALENCE object"
39838 msgstr "El componente de estructura '%s' en %L no puede ser un objeto EQUIVALENCE"
39839
39840-#: fortran/resolve.c:13672
39841+#: fortran/resolve.c:13660
39842 #, gcc-internal-format, gfc-internal-format
39843 msgid "Substring at %L has length zero"
39844 msgstr "La subcadena en %L tiene longitud cero"
39845
39846-#: fortran/resolve.c:13715
39847+#: fortran/resolve.c:13703
39848 #, gcc-internal-format, gfc-internal-format
39849 msgid "Fortran 2003: PUBLIC function '%s' at %L of PRIVATE type '%s'"
39850 msgstr "Fortran 2003: La función PUBLIC '%s' en %L es de tipo derivado PRIVATE '%s'"
39851
39852-#: fortran/resolve.c:13728
39853+#: fortran/resolve.c:13716
39854 #, gcc-internal-format, gfc-internal-format
39855 msgid "ENTRY '%s' at %L has no IMPLICIT type"
39856 msgstr "ENTRY '%s' en %L no tiene tipo IMPLICIT"
39857
39858-#: fortran/resolve.c:13745
39859+#: fortran/resolve.c:13733
39860 #, gcc-internal-format, gfc-internal-format
39861 msgid "User operator procedure '%s' at %L must be a FUNCTION"
39862 msgstr "El procedimiento de operador de usuario '%s' en %L debe ser FUNCTION"
39863
39864-#: fortran/resolve.c:13755
39865+#: fortran/resolve.c:13743
39866 #, gcc-internal-format, gfc-internal-format
39867 msgid "User operator procedure '%s' at %L cannot be assumed character length"
39868 msgstr "El procedimiento de operador de usuario '%s' en %L no puede ser de longitud de carácter asumido"
39869
39870-#: fortran/resolve.c:13763
39871+#: fortran/resolve.c:13751
39872 #, gcc-internal-format, gfc-internal-format
39873 msgid "User operator procedure '%s' at %L must have at least one argument"
39874 msgstr "El procedimiento de operador de usuario '%s' en %L debe tener al menos un argumento"
39875
39876-#: fortran/resolve.c:13777
39877+#: fortran/resolve.c:13765
39878 #, gcc-internal-format, gfc-internal-format
39879 msgid "First argument of operator interface at %L cannot be optional"
39880 msgstr "El primer argumento de la interfaz de operador en %L no puede ser opcional"
39881
39882-#: fortran/resolve.c:13795
39883+#: fortran/resolve.c:13783
39884 #, gcc-internal-format, gfc-internal-format
39885 msgid "Second argument of operator interface at %L cannot be optional"
39886 msgstr "El segundo argumento de la interfaz de operador en %L no puede ser opcional"
39887
39888-#: fortran/resolve.c:13802
39889+#: fortran/resolve.c:13790
39890 #, gcc-internal-format, gfc-internal-format
39891 msgid "Operator interface at %L must have, at most, two arguments"
39892 msgstr "La interfaz de operador en %L debe tener, cuando mucho, dos argumentos"
39893
39894-#: fortran/resolve.c:13878
39895+#: fortran/resolve.c:13866
39896 #, gcc-internal-format, gfc-internal-format
39897 msgid "Contained procedure '%s' at %L of a PURE procedure must also be PURE"
39898 msgstr "El procedimiento contenido '%s' en %L de un procedimiento PURE también debe ser PURE"
39899@@ -42805,22 +43011,22 @@
39900 msgid "Result of SCALE overflows its kind at %L"
39901 msgstr "El resultado de SCALE desborda su género en %L"
39902
39903-#: fortran/simplify.c:5861
39904+#: fortran/simplify.c:5862
39905 #, gcc-internal-format, gfc-internal-format
39906 msgid "Argument of SQRT at %L has a negative value"
39907 msgstr "El argumento de SQRT en %L tiene un valor negativo"
39908
39909-#: fortran/simplify.c:6172
39910+#: fortran/simplify.c:6173
39911 #, gcc-internal-format, gfc-internal-format
39912 msgid "Out of bounds in IMAGE_INDEX at %L for dimension %d, SUB has %ld and COARRAY lower bound is %ld)"
39913 msgstr "Fuera de límites en IMAGE_INDEX en %L para la dimensión %d, SUB tiene %ld y el límite inferior de COARRAY es %ld)"
39914
39915-#: fortran/simplify.c:6195
39916+#: fortran/simplify.c:6196
39917 #, gcc-internal-format, gfc-internal-format
39918 msgid "Out of bounds in IMAGE_INDEX at %L for dimension %d, SUB has %ld and COARRAY upper bound is %ld)"
39919 msgstr "Fuera de límites en IMAGE_INDEX en %L para la dimensión %d, SUB tiene %ld y el límite superior de COARRAY es %ld)"
39920
39921-#: fortran/simplify.c:6612
39922+#: fortran/simplify.c:6613
39923 #, gcc-internal-format, gfc-internal-format
39924 msgid "Character '%s' in string at %L cannot be converted into character kind %d"
39925 msgstr "El carácter '%s' en la cadena en %L no se puede convertir al género de carácter %d"
39926@@ -43103,50 +43309,50 @@
39927 msgid "Label %d at %C previously used as branch target"
39928 msgstr "La etiqueta %d en %C se utilizó previamente como objetivo de ramificación"
39929
39930-#: fortran/symbol.c:2578
39931+#: fortran/symbol.c:2576
39932 #, gcc-internal-format, gfc-internal-format
39933 msgid "Name '%s' at %C is an ambiguous reference to '%s' from module '%s'"
39934 msgstr "El nombre '%s' en %C es una referencia ambigua a '%s' del módulo '%s'"
39935
39936-#: fortran/symbol.c:2581
39937+#: fortran/symbol.c:2579
39938 #, gcc-internal-format, gfc-internal-format
39939 msgid "Name '%s' at %C is an ambiguous reference to '%s' from current program unit"
39940 msgstr "El nombre '%s' en %C es una referencia ambigua a '%s' de la unidad de programa actual"
39941
39942 #. Symbol is from another namespace.
39943-#: fortran/symbol.c:2761
39944+#: fortran/symbol.c:2759
39945 #, gcc-internal-format, gfc-internal-format
39946 msgid "Symbol '%s' at %C has already been host associated"
39947 msgstr "El símbolo '%s' en %C ya se había asociado con el anfitrión"
39948
39949-#: fortran/symbol.c:3604
39950+#: fortran/symbol.c:3602
39951 #, gcc-internal-format, gfc-internal-format
39952 msgid "Derived type '%s' declared at %L must have the BIND attribute to be C interoperable"
39953 msgstr "El tipo derivado '%s' declarado en %L debe tener el atributo BIND para ser interoperable con C"
39954
39955-#: fortran/symbol.c:3622
39956+#: fortran/symbol.c:3620
39957 #, gcc-internal-format, gfc-internal-format
39958 msgid "Derived type '%s' with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor"
39959 msgstr "El tipo derivado '%s' con atributo BIND(C) en %L está vacío, y puede ser inaccesible para el procesador acompañante de C"
39960
39961-#: fortran/symbol.c:3643
39962+#: fortran/symbol.c:3641
39963 #, gcc-internal-format, gfc-internal-format
39964 msgid "Component '%s' at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type '%s' at %L"
39965 msgstr "El componente '%s' en %L no puede tener el atributo POINTER porque es un miembro del tipo derivado BIND(C) '%s' en %L"
39966
39967-#: fortran/symbol.c:3653
39968+#: fortran/symbol.c:3651
39969 #, gcc-internal-format, gfc-internal-format
39970 msgid "Procedure pointer component '%s' at %L cannot be a member of the BIND(C) derived type '%s' at %L"
39971 msgstr "El procedimiento de componente puntero '%s' en %L no puede ser un miembro del tipo derivado BIND(C) '%s' en %L"
39972
39973-#: fortran/symbol.c:3664
39974+#: fortran/symbol.c:3662
39975 #, gcc-internal-format, gfc-internal-format
39976 msgid "Component '%s' at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type '%s' at %L"
39977 msgstr "El componente '%s' en %L no puede tener el atributo ALLOCATABLE porque es un miembro del tipo derivado BIND(C) '%s' en %L"
39978
39979 #. If the derived type is bind(c), all fields must be
39980 #. interop.
39981-#: fortran/symbol.c:3702
39982+#: fortran/symbol.c:3700
39983 #, gcc-internal-format, gfc-internal-format
39984 msgid "Component '%s' in derived type '%s' at %L may not be C interoperable, even though derived type '%s' is BIND(C)"
39985 msgstr "El componente '%s' en el tipo derivado '%s' en %L tal vez no es interoperable con C, aún cuando el tipo derivado '%s' es BIND(C)"
39986@@ -43154,27 +43360,27 @@
39987 #. If derived type is param to bind(c) routine, or to one
39988 #. of the iso_c_binding procs, it must be interoperable, so
39989 #. all fields must interop too.
39990-#: fortran/symbol.c:3711
39991+#: fortran/symbol.c:3709
39992 #, gcc-internal-format, gfc-internal-format
39993 msgid "Component '%s' in derived type '%s' at %L may not be C interoperable"
39994 msgstr "El componente '%s' en el tipo derivado '%s' en %L tal vez no es interoperable con C"
39995
39996-#: fortran/symbol.c:3725
39997+#: fortran/symbol.c:3723
39998 #, gcc-internal-format, gfc-internal-format
39999 msgid "Derived type '%s' at %L cannot be declared with both PRIVATE and BIND(C) attributes"
40000 msgstr "El tipo derivado '%s' en %L no se puede declarar con atributos PRIVATE y BIND(C) al mismo tiempo"
40001
40002-#: fortran/symbol.c:3733
40003+#: fortran/symbol.c:3731
40004 #, gcc-internal-format, gfc-internal-format
40005 msgid "Derived type '%s' at %L cannot have the SEQUENCE attribute because it is BIND(C)"
40006 msgstr "El tipo derivado '%s' en %L no puede tener el atributo SEQUENCE porque es BIND(C)"
40007
40008-#: fortran/symbol.c:4740
40009+#: fortran/symbol.c:4739
40010 #, gcc-internal-format, gfc-internal-format
40011 msgid "Symbol '%s' is used before it is typed at %L"
40012 msgstr "El símbolo '%s' se usa antes de escribirse en %L"
40013
40014-#: fortran/symbol.c:4746
40015+#: fortran/symbol.c:4745
40016 #, gcc-internal-format, gfc-internal-format
40017 msgid "Extension: Symbol '%s' is used before it is typed at %L"
40018 msgstr "Extensión: Se usa el símbolo '%s' antes de escribirse en %L"
40019@@ -43189,17 +43395,17 @@
40020 msgid "BOZ constant at %L is too large (%ld vs %ld bits)"
40021 msgstr "La constante BOZ en %L es demasiado grande (%ld vs %ld bits)"
40022
40023-#: fortran/trans-array.c:6999
40024+#: fortran/trans-array.c:6998
40025 #, gcc-internal-format, gfc-internal-format
40026 msgid "Creating array temporary at %L for argument '%s'"
40027 msgstr "Se crea una matriz temporal en %L para el argumento '%s'"
40028
40029-#: fortran/trans-array.c:8074
40030+#: fortran/trans-array.c:8124
40031 #, gcc-internal-format
40032 msgid "Possible front-end bug: Deferred array size without pointer, allocatable attribute or derived type without allocatable components."
40033 msgstr "Posible bicho del frente: Tamaño de matriz diferido sin atributo pointer, allocatable o tipo derivado sin componentes allocatable."
40034
40035-#: fortran/trans-array.c:8556
40036+#: fortran/trans-array.c:8621
40037 #, gcc-internal-format, gfc-internal-format
40038 msgid "bad expression type during walk (%d)"
40039 msgstr "tipo de expresión errónea durante la caminata (%d)"
40040@@ -43280,62 +43486,62 @@
40041 msgid "non-constant initialization expression at %L"
40042 msgstr "expresión de inicialización que no es constante en %L"
40043
40044-#: fortran/trans-decl.c:1348
40045+#: fortran/trans-decl.c:1347
40046 #, gcc-internal-format
40047 msgid "intrinsic variable which isn't a procedure"
40048 msgstr "variable intrínseca que no es un procedimiento"
40049
40050-#: fortran/trans-decl.c:3519 fortran/trans-decl.c:5367
40051+#: fortran/trans-decl.c:3518 fortran/trans-decl.c:5382
40052 #, gcc-internal-format, gfc-internal-format
40053 msgid "Return value of function '%s' at %L not set"
40054 msgstr "No se define el valor de devolución de la función '%s' en %L"
40055
40056-#: fortran/trans-decl.c:3838
40057+#: fortran/trans-decl.c:3837
40058 #, gcc-internal-format
40059 msgid "Deferred type parameter not yet supported"
40060 msgstr "Aún no se admite un parámetro de tipo diferido"
40061
40062-#: fortran/trans-decl.c:4045
40063+#: fortran/trans-decl.c:4044
40064 #, gcc-internal-format, gfc-internal-format
40065 msgid "backend decl for module variable %s already exists"
40066 msgstr "ya existe la declaración del extremo trasero para la variable de módulo %s"
40067
40068-#: fortran/trans-decl.c:4569
40069+#: fortran/trans-decl.c:4568
40070 #, gcc-internal-format, gfc-internal-format
40071 msgid "Dummy argument '%s' at %L was declared INTENT(OUT) but was not set"
40072 msgstr "El argumento dummy '%s' en %L se declaró INTENT(OUT) pero no se estableció"
40073
40074-#: fortran/trans-decl.c:4573
40075+#: fortran/trans-decl.c:4572
40076 #, gcc-internal-format, gfc-internal-format
40077 msgid "Derived-type dummy argument '%s' at %L was declared INTENT(OUT) but was not set and does not have a default initializer"
40078 msgstr "El argumento dummy de tipo derivado '%s' en %L se declaró INTENT(OUT) pero no se estableció y no tiene un inicializador por defecto"
40079
40080-#: fortran/trans-decl.c:4582
40081+#: fortran/trans-decl.c:4581 fortran/trans-decl.c:4693
40082 #, gcc-internal-format, gfc-internal-format
40083 msgid "Unused dummy argument '%s' at %L"
40084 msgstr "Argumento dummy sin uso '%s' en %L"
40085
40086-#: fortran/trans-decl.c:4595
40087+#: fortran/trans-decl.c:4594
40088 #, gcc-internal-format, gfc-internal-format
40089 msgid "Unused variable '%s' declared at %L"
40090 msgstr "Se declaró la variable '%s' sin uso en %L"
40091
40092-#: fortran/trans-decl.c:4602
40093+#: fortran/trans-decl.c:4601
40094 #, gcc-internal-format, gfc-internal-format
40095 msgid "Unused module variable '%s' which has been explicitly imported at %L"
40096 msgstr "Variable de módulo '%s' sin uso la cual se importó explícitamente en %L"
40097
40098-#: fortran/trans-decl.c:4649
40099+#: fortran/trans-decl.c:4648
40100 #, gcc-internal-format, gfc-internal-format
40101 msgid "Unused parameter '%s' declared at %L"
40102 msgstr "Se declaró el parámetro '%s' sin uso en %L"
40103
40104-#: fortran/trans-decl.c:4652
40105+#: fortran/trans-decl.c:4651
40106 #, gcc-internal-format, gfc-internal-format
40107 msgid "Unused parameter '%s' which has been explicitly imported at %L"
40108 msgstr "Parámetro '%s' sin uso el cual se importó explícitamente en %L"
40109
40110-#: fortran/trans-decl.c:4667
40111+#: fortran/trans-decl.c:4666
40112 #, gcc-internal-format, gfc-internal-format
40113 msgid "Return value '%s' of function '%s' declared at %L not set"
40114 msgstr "No se define el valor de devolución '%s' de la función '%s' declarada en %L"
40115@@ -43376,12 +43582,12 @@
40116 msgid "gfc_trans_omp_workshare(): Bad statement code"
40117 msgstr "gfc_trans_omp_workshare(): Código de declaración erróneo"
40118
40119-#: fortran/trans-stmt.c:517
40120+#: fortran/trans-stmt.c:539
40121 #, gcc-internal-format, gfc-internal-format
40122 msgid "An alternate return at %L without a * dummy argument"
40123 msgstr "Una devolución alternativa en %L sin un argumento dummy *"
40124
40125-#: fortran/trans-stmt.c:840
40126+#: fortran/trans-stmt.c:862
40127 #, gcc-internal-format, gfc-internal-format
40128 msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
40129 msgstr "Lo siento, sólo se admite integer kind %d implementado para el conjunto imagen en %L"
40130@@ -43799,97 +44005,97 @@
40131 msgid "%s: section %s is missing"
40132 msgstr "%s: falta la sección %s"
40133
40134-#: lto/lto.c:957
40135+#: lto/lto.c:950
40136 #, gcc-internal-format
40137 msgid "bytecode stream: garbage at the end of symbols section"
40138 msgstr "flujo de bytecode: basura al final de la sección de símbolos"
40139
40140-#: lto/lto.c:984
40141+#: lto/lto.c:977
40142 #, gcc-internal-format
40143 msgid "could not parse hex number"
40144 msgstr "no se puede decodificar el número hexadecimal"
40145
40146-#: lto/lto.c:1017
40147+#: lto/lto.c:1010
40148 #, gcc-internal-format, gfc-internal-format
40149 msgid "unexpected file name %s in linker resolution file. Expected %s"
40150 msgstr "nombre de fichero inesperado %s en el fichero de resolución de enlace. Se esperaba %s"
40151
40152-#: lto/lto.c:1026
40153+#: lto/lto.c:1019
40154 #, gcc-internal-format
40155 msgid "could not parse file offset"
40156 msgstr "no se puede abrir el fichero de desplazamiento"
40157
40158-#: lto/lto.c:1029
40159+#: lto/lto.c:1022
40160 #, gcc-internal-format
40161 msgid "unexpected offset"
40162 msgstr "desplazamiento inesperado"
40163
40164-#: lto/lto.c:1050
40165+#: lto/lto.c:1043
40166 #, gcc-internal-format
40167 msgid "invalid line in the resolution file"
40168 msgstr "línea inválida en el fichero de resolución"
40169
40170-#: lto/lto.c:1063
40171+#: lto/lto.c:1056
40172 #, gcc-internal-format
40173 msgid "invalid resolution in the resolution file"
40174 msgstr "resolución inválida en el fichero de resolución"
40175
40176-#: lto/lto.c:1069
40177+#: lto/lto.c:1062
40178 #, gcc-internal-format
40179 msgid "resolution sub id "
40180 msgstr "sub id de resolución"
40181
40182-#: lto/lto.c:1164
40183+#: lto/lto.c:1157
40184 #, gcc-internal-format, gfc-internal-format
40185 msgid "cannot read LTO decls from %s"
40186 msgstr "no se pueden leer las decls LTO de %s"
40187
40188-#: lto/lto.c:1268
40189+#: lto/lto.c:1261
40190 #, gcc-internal-format, gfc-internal-format
40191 msgid "Cannot open %s"
40192 msgstr "No se puede abrir %s"
40193
40194-#: lto/lto.c:1289
40195+#: lto/lto.c:1282
40196 #, gcc-internal-format, gfc-internal-format
40197 msgid "Cannot map %s"
40198 msgstr "No se puede mapear %s"
40199
40200-#: lto/lto.c:1300
40201+#: lto/lto.c:1293
40202 #, gcc-internal-format, gfc-internal-format
40203 msgid "Cannot read %s"
40204 msgstr "No se puede leer %s"
40205
40206-#: lto/lto.c:2279
40207+#: lto/lto.c:2272
40208 #, gcc-internal-format
40209 msgid "no LTRANS output list filename provided"
40210 msgstr "no se proporcionó el nombre de fichero de lista de salida TRANS"
40211
40212-#: lto/lto.c:2282
40213+#: lto/lto.c:2275
40214 #, gcc-internal-format
40215 msgid "opening LTRANS output list %s: %m"
40216 msgstr "se abre la lista de salida LTRANS %s: %m"
40217
40218-#: lto/lto.c:2328
40219+#: lto/lto.c:2321
40220 #, gcc-internal-format
40221 msgid "lto_obj_file_open() failed"
40222 msgstr "falló lto_obj_file_open()"
40223
40224-#: lto/lto.c:2354
40225+#: lto/lto.c:2347
40226 #, gcc-internal-format
40227 msgid "writing to LTRANS output list %s: %m"
40228 msgstr "se escribe a la lista de salida LTRANS %s: %m"
40229
40230-#: lto/lto.c:2362
40231+#: lto/lto.c:2355
40232 #, gcc-internal-format
40233 msgid "closing LTRANS output list %s: %m"
40234 msgstr "se cierra la lista de salida LTRANS %s: %m"
40235
40236-#: lto/lto.c:2589
40237+#: lto/lto.c:2582
40238 #, gcc-internal-format
40239 msgid "could not open symbol resolution file: %m"
40240 msgstr "no se puede abrir el fichero de resolución de símbolos: %m"
40241
40242-#: lto/lto.c:2664
40243+#: lto/lto.c:2657
40244 #, gcc-internal-format
40245 msgid "errors during merging of translation units"
40246 msgstr "errores durante la mezcla de unidades de traducción"
40247@@ -44829,6 +45035,33 @@
40248 msgid "creating selector for nonexistent method %qE"
40249 msgstr "se crea un selector para el método %qE que no existe"
40250
40251+#~ msgid "Interpret any REAL(4) as a REAl(16)"
40252+#~ msgstr "Interpreta cualquier REAL(4) como un REAL(16)"
40253+
40254+#~ msgid "Interpret any REAL(8) as a REAl(16)"
40255+#~ msgstr "Interpreta cualquier REAL(8) como un REAL(16)"
40256+
40257+#~ msgid "Warn about"
40258+#~ msgstr "Avisa sobre"
40259+
40260+#~ msgid "Pay attention to the \"inline\" keyword"
40261+#~ msgstr "Pone atención a la palabra clave \"inline\""
40262+
40263+#~ msgid "Integrate simple functions into their callers"
40264+#~ msgstr "Integra las funciones simples en sus invocadores"
40265+
40266+#~ msgid "arguments 1 and 2 have different types"
40267+#~ msgstr "los argumentos 1 y 2 tienen tipos diferentes"
40268+
40269+#~ msgid "%s expects a compile time long long integer constant as first argument"
40270+#~ msgstr "%s espera una constante entera long long en tiempo de compilación como primer argumento"
40271+
40272+#~ msgid "-mno-r11 must not be used if you have trampolines"
40273+#~ msgstr "no se debe usar -mno-r11 si tiene trampolines"
40274+
40275+#~ msgid "Fortran F2003: ROUND= at %C not allowed in Fortran 95"
40276+#~ msgstr "Fortran F2003: No se permite ROUND= en %C en Fortran 95"
40277+
40278 #~ msgid "internal gcc abort in %s, at %s:%d"
40279 #~ msgstr "aborto interno de gcc en %s, en %s:%d"
40280
40281@@ -44874,12 +45107,6 @@
40282 #~ msgid "invalid Z register replacement for insn"
40283 #~ msgstr "reemplazo de registro Z inválido para la insn"
40284
40285-#~ msgid "invalid %%c operand"
40286-#~ msgstr "operando %%c inválido"
40287-
40288-#~ msgid "invalid %%d operand"
40289-#~ msgstr "operando %%d inválido"
40290-
40291 #~ msgid "%s:%d:%d: recursively instantiated from %qs\n"
40292 #~ msgstr "%s:%d:%d: instanciado recursivamente desde %qs\n"
40293
40294@@ -44943,9 +45170,6 @@
40295 #~ msgid "Compile for the Thumb not the ARM"
40296 #~ msgstr "Compila para el Thumb on para el ARM"
40297
40298-#~ msgid "Support multiply accumulate instructions"
40299-#~ msgstr "Da soporte a múltiples instrucciones de acumulador"
40300-
40301 #~ msgid "Do not use push to store function arguments"
40302 #~ msgstr "No usa push para guardar los argumentos de función"
40303
40304@@ -45145,18 +45369,12 @@
40305 #~ msgid "invalid floating point abi: -mfloat-abi=%s"
40306 #~ msgstr "abi de coma flotante inválida: -mfloat-abi=%s"
40307
40308-#~ msgid "invalid thread pointer option: -mtp=%s"
40309-#~ msgstr "opción de puntero a hilo inválida: -mtp=%s"
40310-
40311 #~ msgid "unrecognized argument to -mmcu= option: %qs"
40312 #~ msgstr "no se reconoce el argumento para la opción -mmcu=: %qs"
40313
40314 #~ msgid "See --target-help for supported MCUs"
40315 #~ msgstr "Vea --target-help para MCUs permitidos"
40316
40317-#~ msgid "profiler support for CRX"
40318-#~ msgstr "soporte de análisis de perfil para CRX"
40319-
40320 #~ msgid "unknown ABI (%s) for %sabi=%s %s"
40321 #~ msgstr "ABI desconocida (%s) para %sabi=%s %s"
40322
40323@@ -48102,9 +48320,6 @@
40324 #~ msgid "Generate code for C30 CPU"
40325 #~ msgstr "Genera código para el CPU C30"
40326
40327-#~ msgid "Generate code for C31 CPU"
40328-#~ msgstr "Genera código para el CPU C31"
40329-
40330 #~ msgid "Generate code for C32 CPU"
40331 #~ msgstr "Genera código para el CPU C32"
40332
40333Index: gcc/po/fr.po
40334===================================================================
40335--- gcc/po/fr.po (.../tags/gcc_4_7_0_release) (wersja 187293)
40336+++ gcc/po/fr.po (.../branches/gcc-4_7-branch) (wersja 187293)
40337@@ -121,7 +121,7 @@
40338 msgstr ""
40339 "Project-Id-Version: GNU gcc 3.4.3\n"
40340 "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
40341-"POT-Creation-Date: 2012-01-27 16:13+0000\n"
40342+"POT-Creation-Date: 2012-03-18 14:00+0000\n"
40343 "PO-Revision-Date: 2008-04-23 19:30+0000\n"
40344