]> git.pld-linux.org Git - packages/gcc.git/blame - gcc-branch.diff
- regenerated.
[packages/gcc.git] / gcc-branch.diff
CommitLineData
be75205b
PS
1Index: libitm/ChangeLog
2===================================================================
3--- libitm/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187906)
4+++ libitm/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187906)
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 187906)
21+++ libitm/config/x86/target.h (.../branches/gcc-4_7-branch) (wersja 187906)
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: Makefile.in
44===================================================================
45--- Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187906)
46+++ Makefile.in (.../branches/gcc-4_7-branch) (wersja 187906)
47@@ -2426,11 +2426,12 @@
48 true ; \
49 fi
50
51-# install-no-fixedincludes is used because Cygnus can not distribute
52-# the fixed header files.
53+# install-no-fixedincludes is used to allow the elaboration of binary packages
54+# suitable for distribution, where we cannot include the fixed system header
55+# files.
56 .PHONY: install-no-fixedincludes
57 install-no-fixedincludes: installdirs install-host-nogcc \
58- install-target gcc-no-fixedincludes
59+ install-target gcc-install-no-fixedincludes
60
61 .PHONY: install-strip
62 install-strip:
63@@ -40721,25 +40722,16 @@
64 check-go: check-gcc-go check-target-libgo
65
66
67-# Install the gcc headers files, but not the fixed include files,
68-# which Cygnus is not allowed to distribute. This rule is very
69-# dependent on the workings of the gcc Makefile.in.
70-.PHONY: gcc-no-fixedincludes
71-gcc-no-fixedincludes:
72+# The gcc part of install-no-fixedincludes, which relies on an intimate
73+# knowledge of how a number of gcc internal targets (inter)operate. Delegate.
74+.PHONY: gcc-install-no-fixedincludes
75+gcc-install-no-fixedincludes:
76 @if [ -f ./gcc/Makefile ]; then \
77- rm -rf gcc/tmp-include; \
78- mv gcc/include gcc/tmp-include 2>/dev/null; \
79- mkdir gcc/include; \
80- cp $(srcdir)/gcc/gsyslimits.h gcc/include/syslimits.h; \
81- touch gcc/stmp-fixinc gcc/include/fixed; \
82- rm -f gcc/stmp-headers gcc/stmp-int-hdrs; \
83 r=`${PWD_COMMAND}`; export r; \
84- s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \
85+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
86 $(HOST_EXPORTS) \
87- (cd ./gcc && \
88- $(MAKE) $(GCC_FLAGS_TO_PASS) install); \
89- rm -rf gcc/include; \
90- mv gcc/tmp-include gcc/include 2>/dev/null; \
91+ (cd ./gcc \
92+ && $(MAKE) $(GCC_FLAGS_TO_PASS) install-no-fixedincludes); \
93 else true; fi
94 @endif gcc
95
ad222a6b
PS
96Index: libgomp/ChangeLog
97===================================================================
be75205b
PS
98--- libgomp/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187906)
99+++ libgomp/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187906)
ad222a6b
PS
100@@ -1,3 +1,8 @@
101+2012-03-22 Jakub Jelinek <jakub@redhat.com>
102+
103+ PR middle-end/52547
104+ * testsuite/libgomp.c/pr52547.c: New test.
105+
106 2012-03-22 Release Manager
107
108 * GCC 4.7.0 released.
109Index: libgomp/testsuite/libgomp.c/pr52547.c
110===================================================================
111--- libgomp/testsuite/libgomp.c/pr52547.c (.../tags/gcc_4_7_0_release) (wersja 0)
be75205b 112+++ libgomp/testsuite/libgomp.c/pr52547.c (.../branches/gcc-4_7-branch) (wersja 187906)
ad222a6b
PS
113@@ -0,0 +1,36 @@
114+/* PR middle-end/52547 */
115+/* { dg-do run } */
116+
117+extern void abort (void);
118+
119+__attribute__((noinline, noclone)) int
120+baz (int *x, int (*fn) (int *))
121+{
122+ return fn (x);
123+}
124+
125+__attribute__((noinline, noclone)) int
126+foo (int x, int *y)
127+{
128+ int i, e = 0;
129+#pragma omp parallel for reduction(|:e)
130+ for (i = 0; i < x; ++i)
131+ {
132+ __label__ lab;
133+ int bar (int *z) { return z - y; }
134+ if (baz (&y[i], bar) != i)
135+ e |= 1;
136+ }
137+ return e;
138+}
139+
140+int
141+main ()
142+{
143+ int a[100], i;
144+ for (i = 0; i < 100; i++)
145+ a[i] = i;
146+ if (foo (100, a))
147+ abort ();
148+ return 0;
149+}
be75205b
PS
150Index: libstdc++-v3/configure
151===================================================================
152--- libstdc++-v3/configure (.../tags/gcc_4_7_0_release) (wersja 187906)
153+++ libstdc++-v3/configure (.../branches/gcc-4_7-branch) (wersja 187906)
154@@ -3025,7 +3025,8 @@
155 target_alias=${target_alias-$host_alias}
156
157 # Handy for debugging:
158-#AC_MSG_NOTICE($build / $host / $target / $host_alias / $target_alias); sleep 5
159+{ $as_echo "$as_me:${as_lineno-$LINENO}: $build / $host / $target / $host_alias / $target_alias" >&5
160+$as_echo "$as_me: $build / $host / $target / $host_alias / $target_alias" >&6;}; sleep 5
161
162 if test "$build" != "$host"; then
163 # We are being configured with some form of cross compiler.
164@@ -11497,7 +11498,7 @@
165 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
166 lt_status=$lt_dlunknown
167 cat > conftest.$ac_ext <<_LT_EOF
168-#line 11500 "configure"
169+#line 11501 "configure"
170 #include "confdefs.h"
171
172 #if HAVE_DLFCN_H
173@@ -11603,7 +11604,7 @@
174 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
175 lt_status=$lt_dlunknown
176 cat > conftest.$ac_ext <<_LT_EOF
177-#line 11606 "configure"
178+#line 11607 "configure"
179 #include "confdefs.h"
180
181 #if HAVE_DLFCN_H
182@@ -14961,7 +14962,7 @@
183 #
184 # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style.
185 cat > conftest.$ac_ext << EOF
186-#line 14964 "configure"
187+#line 14965 "configure"
188 struct S { ~S(); };
189 void bar();
190 void foo()
191@@ -15296,7 +15297,7 @@
192 # Fake what AC_TRY_COMPILE does.
193
194 cat > conftest.$ac_ext << EOF
195-#line 15299 "configure"
196+#line 15300 "configure"
197 int main()
198 {
199 typedef bool atomic_type;
200@@ -15331,7 +15332,7 @@
201 rm -f conftest*
202
203 cat > conftest.$ac_ext << EOF
204-#line 15334 "configure"
205+#line 15335 "configure"
206 int main()
207 {
208 typedef short atomic_type;
209@@ -15366,7 +15367,7 @@
210 rm -f conftest*
211
212 cat > conftest.$ac_ext << EOF
213-#line 15369 "configure"
214+#line 15370 "configure"
215 int main()
216 {
217 // NB: _Atomic_word not necessarily int.
218@@ -15402,7 +15403,7 @@
219 rm -f conftest*
220
221 cat > conftest.$ac_ext << EOF
222-#line 15405 "configure"
223+#line 15406 "configure"
224 int main()
225 {
226 typedef long long atomic_type;
227@@ -15446,11 +15447,10 @@
228 ac_compiler_gnu=$ac_cv_c_compiler_gnu
229
230
231- # Set atomicity_dir to builtins if all of above tests pass.
232+ # Set atomicity_dir to builtins if all but the long long test above passes.
233 if test $glibcxx_cv_atomic_bool = yes \
234 && test $glibcxx_cv_atomic_short = yes \
235- && test $glibcxx_cv_atomic_int = yes \
236- && test $glibcxx_cv_atomic_long_long = yes ; then
237+ && test $glibcxx_cv_atomic_int = yes; then
238
239 $as_echo "#define _GLIBCXX_ATOMIC_BUILTINS 1" >>confdefs.h
240
241Index: libstdc++-v3/src/Makefile.in
242===================================================================
243--- libstdc++-v3/src/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187906)
244+++ libstdc++-v3/src/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187906)
245@@ -88,20 +88,22 @@
246 am__installdirs = "$(DESTDIR)$(toolexeclibdir)"
247 LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
248 am__DEPENDENCIES_1 =
249-am_libstdc___la_OBJECTS =
250+@GLIBCXX_LDBL_COMPAT_TRUE@am__objects_1 = compatibility-ldbl.lo
251+@ENABLE_PARALLEL_TRUE@am__objects_2 = compatibility-parallel_list.lo \
252+@ENABLE_PARALLEL_TRUE@ compatibility-parallel_list-2.lo
253+am__objects_3 = compatibility.lo compatibility-debug_list.lo \
254+ compatibility-debug_list-2.lo compatibility-list.lo \
255+ compatibility-list-2.lo $(am__objects_1) $(am__objects_2)
256+am__objects_4 = compatibility-c++0x.lo compatibility-atomic-c++0x.lo \
257+ compatibility-thread-c++0x.lo
258+am_libstdc___la_OBJECTS = $(am__objects_3) $(am__objects_4)
259 libstdc___la_OBJECTS = $(am_libstdc___la_OBJECTS)
260 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
261 depcomp =
262 am__depfiles_maybe =
263-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
264- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
265-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
266- --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
267- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
268-CCLD = $(CC)
269-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
270- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
271- $(LDFLAGS) -o $@
272+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
273+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
274+CXXLD = $(CXX)
275 SOURCES = $(libstdc___la_SOURCES)
276 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
277 html-recursive info-recursive install-data-recursive \
278@@ -331,7 +333,27 @@
279
280 # Cross compiler support.
281 toolexeclib_LTLIBRARIES = libstdc++.la
282-libstdc___la_SOURCES =
283+@GLIBCXX_LDBL_COMPAT_FALSE@ldbl_compat_sources =
284+@GLIBCXX_LDBL_COMPAT_TRUE@ldbl_compat_sources = compatibility-ldbl.cc
285+@ENABLE_PARALLEL_FALSE@parallel_compat_sources =
286+@ENABLE_PARALLEL_TRUE@parallel_compat_sources = \
287+@ENABLE_PARALLEL_TRUE@ compatibility-parallel_list.cc compatibility-parallel_list-2.cc
288+
289+cxx98_sources = \
290+ compatibility.cc \
291+ compatibility-debug_list.cc \
292+ compatibility-debug_list-2.cc \
293+ compatibility-list.cc \
294+ compatibility-list-2.cc \
295+ ${ldbl_compat_sources} \
296+ ${parallel_compat_sources}
297+
298+cxx11_sources = \
299+ compatibility-c++0x.cc \
300+ compatibility-atomic-c++0x.cc \
301+ compatibility-thread-c++0x.cc
302+
303+libstdc___la_SOURCES = $(cxx98_sources) $(cxx11_sources)
304 libstdc___la_LIBADD = \
305 $(GLIBCXX_LIBS) \
306 $(top_builddir)/libsupc++/libsupc++convenience.la \
307@@ -349,6 +371,9 @@
308
309 libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS)
310
311+# Use special rules for parallel mode compilation.
312+PARALLEL_FLAGS = -fopenmp -D_GLIBCXX_PARALLEL -I$(glibcxx_builddir)/../libgomp
313+
314 # AM_CXXFLAGS needs to be in each subdirectory so that it can be
315 # modified in a per-library or per-sub-library way. Need to manually
316 # set this option because CONFIG_CXXFLAGS has to be after
317@@ -356,12 +381,10 @@
318 # as the occasion calls for it.
319 AM_CXXFLAGS = \
320 $(XTEMPLATE_FLAGS) \
321- $(WARN_CXXFLAGS) \
322- $(OPTIMIZE_CXXFLAGS) \
323- $(CONFIG_CXXFLAGS)
324+ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
325
326
327-# libstdc++ libtool notes
328+# Libtool notes
329
330 # 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
331 # last. (That way, things like -O2 passed down from the toplevel can
332@@ -379,10 +402,11 @@
333 # correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
334 # CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
335 # attempt to infer which configuration to use
336-LTCXXCOMPILE = $(LIBTOOL) --tag CXX \
337- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile \
338- $(CXX) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
339- $(AM_CXXFLAGS) $(CXXFLAGS)
340+LTCXXCOMPILE = \
341+ $(LIBTOOL) --tag CXX \
342+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
343+ --mode=compile $(CXX) $(INCLUDES) \
344+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
345
346 LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
347
348@@ -392,8 +416,11 @@
349 # course is problematic at this point. So, we get the top-level
350 # directory to configure libstdc++-v3 to use gcc as the C++
351 # compilation driver.
352-CXXLINK = $(LIBTOOL) --tag CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
353- $(CXX) $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
354+CXXLINK = \
355+ $(LIBTOOL) --tag CXX \
356+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
357+ --mode=link $(CXX) \
358+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
359
360 @ENABLE_SYMVERS_TRUE@CLEANFILES = libstdc++-symbols.ver $(version_dep)
361 @ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@version_arg = -Wl,-exported_symbols_list,libstdc++-symbols.explist
362@@ -423,6 +450,7 @@
363 all: all-recursive
364
365 .SUFFIXES:
366+.SUFFIXES: .cc .lo .o .obj
367 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/fragment.am $(am__configure_deps)
368 @for dep in $?; do \
369 case '$(am__configure_deps)' in \
370@@ -493,6 +521,15 @@
371 distclean-compile:
372 -rm -f *.tab.c
373
374+.cc.o:
375+ $(CXXCOMPILE) -c -o $@ $<
376+
377+.cc.obj:
378+ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
379+
380+.cc.lo:
381+ $(LTCXXCOMPILE) -c -o $@ $<
382+
383 mostlyclean-libtool:
384 -rm -f *.lo
385
386@@ -757,9 +794,41 @@
387 uninstall-toolexeclibLTLIBRARIES
388
389
390-vpath % $(top_srcdir)/src
391-vpath % $(top_srcdir)
392+vpath % $(top_srcdir)/src/c++98
393+vpath % $(top_srcdir)/src/c++11
394+compatibility-parallel_list.lo: compatibility-parallel_list.cc
395+ $(LTCXXCOMPILE) -c $<
396+compatibility-parallel_list.o: compatibility-parallel_list.cc
397+ $(CXXCOMPILE) -c $<
398
399+compatibility-parallel_list-2.lo: compatibility-parallel_list-2.cc
400+ $(LTCXXCOMPILE) -c $<
401+compatibility-parallel_list-2.o: compatibility-parallel_list-2.cc
402+ $(CXXCOMPILE) -c $<
403+
404+# Use special rules for compatibility-ldbl.cc compilation, as we need to
405+# pass -mlong-double-64.
406+@GLIBCXX_LDBL_COMPAT_TRUE@compatibility-ldbl.lo: compatibility-ldbl.cc
407+@GLIBCXX_LDBL_COMPAT_TRUE@ $(LTCXXCOMPILE) -mlong-double-64 -c $<
408+@GLIBCXX_LDBL_COMPAT_TRUE@compatibility-ldbl.o: compatibility-ldbl.cc
409+@GLIBCXX_LDBL_COMPAT_TRUE@ $(CXXCOMPILE) -mlong-double-64 -c $<
410+
411+# Use special rules for C++11 files/objects.
412+compatibility-c++0x.lo: compatibility-c++0x.cc
413+ $(LTCXXCOMPILE) -std=gnu++11 -c $<
414+compatibility-c++0x.o: compatibility-c++0x.cc
415+ $(CXXCOMPILE) -std=gnu++11 -c $<
416+
417+compatibility-atomic-c++0x.lo: compatibility-atomic-c++0x.cc
418+ $(LTCXXCOMPILE) -std=gnu++11 -c $<
419+compatibility-atomic-c++0x.o: compatibility-atomic-c++0x.cc
420+ $(CXXCOMPILE) -std=gnu++11 -c $<
421+
422+compatibility-thread-c++0x.lo: compatibility-thread-c++0x.cc
423+ $(LTCXXCOMPILE) -std=gnu++11 -c $<
424+compatibility-thread-c++0x.o: compatibility-thread-c++0x.cc
425+ $(CXXCOMPILE) -std=gnu++11 -c $<
426+
427 # Symbol versioning for shared libraries.
428 @ENABLE_SYMVERS_TRUE@libstdc++-symbols.ver: ${glibcxx_srcdir}/$(SYMVER_FILE) \
429 @ENABLE_SYMVERS_TRUE@ $(port_specific_symbol_files)
430@@ -777,7 +846,7 @@
431 @ENABLE_SYMVERS_TRUE@ fi; \
432 @ENABLE_SYMVERS_TRUE@ fi
433 @ENABLE_SYMVERS_TRUE@ $(EGREP) -v '^[ ]*#(#| |$$)' $@.tmp | \
434-@ENABLE_SYMVERS_TRUE@ $(COMPILE) -E -P -include config.h - > $@ || (rm -f $@ ; exit 1)
435+@ENABLE_SYMVERS_TRUE@ $(CC) -E -P -include ../config.h - > $@ || (rm -f $@ ; exit 1)
436 @ENABLE_SYMVERS_TRUE@ rm -f $@.tmp
437 @ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@libstdc++-symbols.ver-sun : libstdc++-symbols.ver \
438 @ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ $(toplevel_srcdir)/contrib/make_sunver.pl \
439@@ -800,7 +869,6 @@
440 @ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ > $@ || (rm -f $@ ; exit 1)
441
442 # Control additional build primary rules.
443-# EXTRA_LTLIBRARIES =
444 all-once: libstdc++convenience.la $(STAMP_DEBUG)
445 install-data-once: $(STAMP_INSTALL_DEBUG)
446
447@@ -846,7 +914,7 @@
448 mv Makefile Makefile.tmp; \
449 sed -e 's,all-local: all-once,all-local:,' \
450 -e 's,install-data-local: install-data-once,install-data-local:,' \
451- -e 's,src/c,src/debug/c,' \
452+ -e '/vpath/!s,src/c,src/debug/c,' \
453 < Makefile.tmp > Makefile ; \
454 $(MAKE) CXXFLAGS='$(DEBUG_FLAGS)' \
455 toolexeclibdir=$(glibcxx_toolexeclibdir)/debug all) ;
456Index: libstdc++-v3/src/Makefile.am
457===================================================================
458--- libstdc++-v3/src/Makefile.am (.../tags/gcc_4_7_0_release) (wersja 187906)
459+++ libstdc++-v3/src/Makefile.am (.../branches/gcc-4_7-branch) (wersja 187906)
460@@ -29,11 +29,38 @@
461 # Cross compiler support.
462 toolexeclib_LTLIBRARIES = libstdc++.la
463
464-vpath % $(top_srcdir)/src
465-vpath % $(top_srcdir)
466+vpath % $(top_srcdir)/src/c++98
467+vpath % $(top_srcdir)/src/c++11
468
469-libstdc___la_SOURCES =
470+if GLIBCXX_LDBL_COMPAT
471+ldbl_compat_sources = compatibility-ldbl.cc
472+else
473+ldbl_compat_sources =
474+endif
475
476+if ENABLE_PARALLEL
477+parallel_compat_sources = \
478+ compatibility-parallel_list.cc compatibility-parallel_list-2.cc
479+else
480+parallel_compat_sources =
481+endif
482+
483+cxx98_sources = \
484+ compatibility.cc \
485+ compatibility-debug_list.cc \
486+ compatibility-debug_list-2.cc \
487+ compatibility-list.cc \
488+ compatibility-list-2.cc \
489+ ${ldbl_compat_sources} \
490+ ${parallel_compat_sources}
491+
492+cxx11_sources = \
493+ compatibility-c++0x.cc \
494+ compatibility-atomic-c++0x.cc \
495+ compatibility-thread-c++0x.cc
496+
497+libstdc___la_SOURCES = $(cxx98_sources) $(cxx11_sources)
498+
499 libstdc___la_LIBADD = \
500 $(GLIBCXX_LIBS) \
501 $(top_builddir)/libsupc++/libsupc++convenience.la \
502@@ -52,6 +79,43 @@
503 libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS)
504
505
506+# Use special rules for parallel mode compilation.
507+PARALLEL_FLAGS = -fopenmp -D_GLIBCXX_PARALLEL -I$(glibcxx_builddir)/../libgomp
508+compatibility-parallel_list.lo: compatibility-parallel_list.cc
509+ $(LTCXXCOMPILE) -c $<
510+compatibility-parallel_list.o: compatibility-parallel_list.cc
511+ $(CXXCOMPILE) -c $<
512+
513+compatibility-parallel_list-2.lo: compatibility-parallel_list-2.cc
514+ $(LTCXXCOMPILE) -c $<
515+compatibility-parallel_list-2.o: compatibility-parallel_list-2.cc
516+ $(CXXCOMPILE) -c $<
517+
518+# Use special rules for compatibility-ldbl.cc compilation, as we need to
519+# pass -mlong-double-64.
520+if GLIBCXX_LDBL_COMPAT
521+compatibility-ldbl.lo: compatibility-ldbl.cc
522+ $(LTCXXCOMPILE) -mlong-double-64 -c $<
523+compatibility-ldbl.o: compatibility-ldbl.cc
524+ $(CXXCOMPILE) -mlong-double-64 -c $<
525+endif
526+
527+# Use special rules for C++11 files/objects.
528+compatibility-c++0x.lo: compatibility-c++0x.cc
529+ $(LTCXXCOMPILE) -std=gnu++11 -c $<
530+compatibility-c++0x.o: compatibility-c++0x.cc
531+ $(CXXCOMPILE) -std=gnu++11 -c $<
532+
533+compatibility-atomic-c++0x.lo: compatibility-atomic-c++0x.cc
534+ $(LTCXXCOMPILE) -std=gnu++11 -c $<
535+compatibility-atomic-c++0x.o: compatibility-atomic-c++0x.cc
536+ $(CXXCOMPILE) -std=gnu++11 -c $<
537+
538+compatibility-thread-c++0x.lo: compatibility-thread-c++0x.cc
539+ $(LTCXXCOMPILE) -std=gnu++11 -c $<
540+compatibility-thread-c++0x.o: compatibility-thread-c++0x.cc
541+ $(CXXCOMPILE) -std=gnu++11 -c $<
542+
543 # AM_CXXFLAGS needs to be in each subdirectory so that it can be
544 # modified in a per-library or per-sub-library way. Need to manually
545 # set this option because CONFIG_CXXFLAGS has to be after
546@@ -59,13 +123,10 @@
547 # as the occasion calls for it.
548 AM_CXXFLAGS = \
549 $(XTEMPLATE_FLAGS) \
550- $(WARN_CXXFLAGS) \
551- $(OPTIMIZE_CXXFLAGS) \
552- $(CONFIG_CXXFLAGS)
553+ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
554
555+# Libtool notes
556
557-# libstdc++ libtool notes
558-
559 # 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
560 # last. (That way, things like -O2 passed down from the toplevel can
561 # be overridden by --enable-debug.)
562@@ -82,10 +143,11 @@
563 # correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
564 # CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
565 # attempt to infer which configuration to use
566-LTCXXCOMPILE = $(LIBTOOL) --tag CXX \
567- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile \
568- $(CXX) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
569- $(AM_CXXFLAGS) $(CXXFLAGS)
570+LTCXXCOMPILE = \
571+ $(LIBTOOL) --tag CXX \
572+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
573+ --mode=compile $(CXX) $(INCLUDES) \
574+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
575
576 LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
577
578@@ -95,9 +157,13 @@
579 # course is problematic at this point. So, we get the top-level
580 # directory to configure libstdc++-v3 to use gcc as the C++
581 # compilation driver.
582-CXXLINK = $(LIBTOOL) --tag CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
583- $(CXX) $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
584+CXXLINK = \
585+ $(LIBTOOL) --tag CXX \
586+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
587+ --mode=link $(CXX) \
588+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
589
590+
591 # Symbol versioning for shared libraries.
592 if ENABLE_SYMVERS
593 libstdc++-symbols.ver: ${glibcxx_srcdir}/$(SYMVER_FILE) \
594@@ -116,7 +182,7 @@
595 fi; \
596 fi
597 $(EGREP) -v '^[ ]*#(#| |$$)' $@.tmp | \
598- $(COMPILE) -E -P -include config.h - > $@ || (rm -f $@ ; exit 1)
599+ $(CC) -E -P -include ../config.h - > $@ || (rm -f $@ ; exit 1)
600 rm -f $@.tmp
601
602 CLEANFILES = libstdc++-symbols.ver
603@@ -165,7 +231,6 @@
604
605
606 # Control additional build primary rules.
607-# EXTRA_LTLIBRARIES =
608 all-once: libstdc++convenience.la $(STAMP_DEBUG)
609 install-data-once: $(STAMP_INSTALL_DEBUG)
610
611@@ -228,7 +293,7 @@
612 mv Makefile Makefile.tmp; \
613 sed -e 's,all-local: all-once,all-local:,' \
614 -e 's,install-data-local: install-data-once,install-data-local:,' \
615- -e 's,src/c,src/debug/c,' \
616+ -e '/vpath/!s,src/c,src/debug/c,' \
617 < Makefile.tmp > Makefile ; \
618 $(MAKE) CXXFLAGS='$(DEBUG_FLAGS)' \
619 toolexeclibdir=$(glibcxx_toolexeclibdir)/debug all) ;
620Index: libstdc++-v3/src/c++98/Makefile.in
621===================================================================
622--- libstdc++-v3/src/c++98/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187906)
623+++ libstdc++-v3/src/c++98/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187906)
624@@ -76,23 +76,18 @@
625 @ENABLE_EXTERN_TEMPLATE_TRUE@ misc-inst.lo ostream-inst.lo \
626 @ENABLE_EXTERN_TEMPLATE_TRUE@ sstream-inst.lo streambuf-inst.lo \
627 @ENABLE_EXTERN_TEMPLATE_TRUE@ wlocale-inst.lo
628-@GLIBCXX_LDBL_COMPAT_TRUE@am__objects_3 = compatibility-ldbl.lo
629-@ENABLE_PARALLEL_TRUE@am__objects_4 = parallel_settings.lo \
630-@ENABLE_PARALLEL_TRUE@ compatibility-parallel_list.lo \
631-@ENABLE_PARALLEL_TRUE@ compatibility-parallel_list-2.lo
632-am__objects_5 = basic_file.lo c++locale.lo $(am__objects_2) \
633- $(am__objects_3) $(am__objects_4)
634-am__objects_6 = bitmap_allocator.lo pool_allocator.lo mt_allocator.lo \
635- codecvt.lo compatibility.lo compatibility-debug_list.lo \
636- compatibility-debug_list-2.lo compatibility-list.lo \
637- compatibility-list-2.lo complex_io.lo ctype.lo globals_io.lo \
638- hash_tr1.lo hashtable_tr1.lo ios.lo ios_failure.lo ios_init.lo \
639+@ENABLE_PARALLEL_TRUE@am__objects_3 = parallel_settings.lo
640+am__objects_4 = basic_file.lo c++locale.lo $(am__objects_2) \
641+ $(am__objects_3)
642+am__objects_5 = bitmap_allocator.lo pool_allocator.lo mt_allocator.lo \
643+ codecvt.lo complex_io.lo ctype.lo globals_io.lo hash_tr1.lo \
644+ hashtable_tr1.lo ios.lo ios_failure.lo ios_init.lo \
645 ios_locale.lo list.lo locale.lo locale_init.lo \
646 locale_facets.lo localename.lo math_stubs_float.lo \
647 math_stubs_long_double.lo stdexcept.lo strstream.lo tree.lo \
648 istream.lo streambuf.lo valarray.lo $(am__objects_1) \
649- $(am__objects_5)
650-am_libc__98convenience_la_OBJECTS = $(am__objects_6)
651+ $(am__objects_4)
652+am_libc__98convenience_la_OBJECTS = $(am__objects_5)
653 libc__98convenience_la_OBJECTS = $(am_libc__98convenience_la_OBJECTS)
654 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
655 depcomp =
656@@ -315,7 +310,7 @@
657 AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
658
659 # Convenience library for C++98 runtime.
660-noinst_LTLIBRARIES = libc++98convenience.la
661+noinst_LTLIBRARIES = libc++98convenience.la
662 headers =
663
664 # Source files linked in via configuration/make substitution for a
665@@ -337,15 +332,10 @@
666 # particular host, but with ad hoc naming rules.
667 host_sources_extra = \
668 basic_file.cc c++locale.cc \
669- ${inst_sources} ${ldbl_compat_sources} ${parallel_sources}
670+ ${inst_sources} ${parallel_sources}
671
672 @ENABLE_PARALLEL_FALSE@parallel_sources =
673-@ENABLE_PARALLEL_TRUE@parallel_sources = parallel_settings.cc \
674-@ENABLE_PARALLEL_TRUE@ compatibility-parallel_list.cc \
675-@ENABLE_PARALLEL_TRUE@ compatibility-parallel_list-2.cc
676-
677-@GLIBCXX_LDBL_COMPAT_FALSE@ldbl_compat_sources =
678-@GLIBCXX_LDBL_COMPAT_TRUE@ldbl_compat_sources = compatibility-ldbl.cc
679+@ENABLE_PARALLEL_TRUE@parallel_sources = parallel_settings.cc
680 @ENABLE_EXTERN_TEMPLATE_FALSE@XTEMPLATE_FLAGS =
681 @ENABLE_EXTERN_TEMPLATE_TRUE@XTEMPLATE_FLAGS = -fno-implicit-templates
682 @ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources =
683@@ -370,11 +360,6 @@
684 pool_allocator.cc \
685 mt_allocator.cc \
686 codecvt.cc \
687- compatibility.cc \
688- compatibility-debug_list.cc \
689- compatibility-debug_list-2.cc \
690- compatibility-list.cc \
691- compatibility-list-2.cc \
692 complex_io.cc \
693 ctype.cc \
694 globals_io.cc \
695@@ -417,9 +402,7 @@
696 AM_CXXFLAGS = \
697 $(PIC_CXXFLAGS) \
698 $(XTEMPLATE_FLAGS) \
699- $(WARN_CXXFLAGS) \
700- $(OPTIMIZE_CXXFLAGS) \
701- $(CONFIG_CXXFLAGS)
702+ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
703
704 AM_MAKEFLAGS = \
705 "gxx_include_dir=$(gxx_include_dir)"
706@@ -445,9 +428,11 @@
707 # attempt to infer which configuration to use.
708 # We have to put --tag disable-shared after --tag CXX lest things
709 # CXX undo the affect of disable-shared.
710-LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
711- --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
712- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
713+LTCXXCOMPILE = \
714+ $(LIBTOOL) --tag CXX --tag disable-shared \
715+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
716+ --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
717+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
718
719 LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
720
721@@ -457,9 +442,11 @@
722 # course is problematic at this point. So, we get the top-level
723 # directory to configure libstdc++-v3 to use gcc as the C++
724 # compilation driver.
725-CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
726- --mode=link $(CXX) \
727- $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
728+CXXLINK = \
729+ $(LIBTOOL) --tag CXX --tag disable-shared \
730+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
731+ --mode=link $(CXX) \
732+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
733
734 all: all-am
735
736@@ -726,7 +713,6 @@
737 $(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_CC) ./$@ || true
738
739 vpath % $(top_srcdir)/src/c++98
740-vpath % $(top_srcdir)
741 strstream.lo: strstream.cc
742 $(LTCXXCOMPILE) -I$(GLIBCXX_INCLUDE_DIR)/backward -Wno-deprecated -c $<
743 strstream.o: strstream.cc
744@@ -744,23 +730,6 @@
745 parallel_settings.o: parallel_settings.cc
746 $(CXXCOMPILE) $(PARALLEL_FLAGS) -c $<
747
748-compatibility-parallel_list.lo: compatibility-parallel_list.cc
749- $(LTCXXCOMPILE) -c $<
750-compatibility-parallel_list.o: compatibility-parallel_list.cc
751- $(CXXCOMPILE) -c $<
752-
753-compatibility-parallel_list-2.lo: compatibility-parallel_list-2.cc
754- $(LTCXXCOMPILE) -c $<
755-compatibility-parallel_list-2.o: compatibility-parallel_list-2.cc
756- $(CXXCOMPILE) -c $<
757-
758-# Use special rules for compatibility-ldbl.cc compilation, as we need to
759-# pass -mlong-double-64.
760-@GLIBCXX_LDBL_COMPAT_TRUE@compatibility-ldbl.lo: compatibility-ldbl.cc
761-@GLIBCXX_LDBL_COMPAT_TRUE@ $(LTCXXCOMPILE) -mlong-double-64 -c $<
762-@GLIBCXX_LDBL_COMPAT_TRUE@compatibility-ldbl.o: compatibility-ldbl.cc
763-@GLIBCXX_LDBL_COMPAT_TRUE@ $(CXXCOMPILE) -mlong-double-64 -c $<
764-
765 # Tell versions [3.59,3.63) of GNU make to not export all variables.
766 # Otherwise a system limit (for SysV at least) may be exceeded.
767 .NOEXPORT:
768Index: libstdc++-v3/src/c++98/compatibility-list.cc
769===================================================================
770--- libstdc++-v3/src/c++98/compatibility-list.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
771+++ libstdc++-v3/src/c++98/compatibility-list.cc (.../branches/gcc-4_7-branch) (wersja 187906)
772@@ -1,6 +1,6 @@
773 // Compatibility symbols for previous versions, list bits -*- C++ -*-
774
775-// Copyright (C) 2010, 2011 Free Software Foundation, Inc.
776+// Copyright (C) 2010, 2011, 2012 Free Software Foundation, Inc.
777 //
778 // This file is part of the GNU ISO C++ Library. This library is free
779 // software; you can redistribute it and/or modify it under the
780Index: libstdc++-v3/src/c++98/compatibility-ldbl.cc
781===================================================================
782--- libstdc++-v3/src/c++98/compatibility-ldbl.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
783+++ libstdc++-v3/src/c++98/compatibility-ldbl.cc (.../branches/gcc-4_7-branch) (wersja 187906)
784@@ -1,6 +1,6 @@
785 // Compatibility symbols for -mlong-double-64 compatibility -*- C++ -*-
786
787-// Copyright (C) 2006, 2008, 2009, 2010, 2011
788+// Copyright (C) 2006, 2008, 2009, 2010, 2011, 2012
789 // Free Software Foundation, Inc.
790 //
791 // This file is part of the GNU ISO C++ Library. This library is free
792Index: libstdc++-v3/src/c++98/compatibility.cc
793===================================================================
794--- libstdc++-v3/src/c++98/compatibility.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
795+++ libstdc++-v3/src/c++98/compatibility.cc (.../branches/gcc-4_7-branch) (wersja 187906)
796@@ -199,7 +199,7 @@
797 #endif
798
799 _GLIBCXX_END_NAMESPACE_VERSION
800-} // namespace
801+} // namespace std
802
803
804 // NB: These symbols renames should go into the shared library only,
805@@ -228,7 +228,7 @@
806 #endif
807
808 _GLIBCXX_END_NAMESPACE_VERSION
809-} // namespace
810+} // namespace std
811
812
813 /* gcc-4.0.0
814@@ -357,7 +357,7 @@
815 #endif
816
817 _GLIBCXX_END_NAMESPACE_VERSION
818-} // namespace
819+} // namespace std
820
821 // The rename syntax for default exported names is
822 // asm (".symver name1,exportedname@GLIBCXX_3.4")
823Index: libstdc++-v3/src/c++98/compatibility-list-2.cc
824===================================================================
825--- libstdc++-v3/src/c++98/compatibility-list-2.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
826+++ libstdc++-v3/src/c++98/compatibility-list-2.cc (.../branches/gcc-4_7-branch) (wersja 187906)
827@@ -1,6 +1,6 @@
828 // Compatibility symbols for previous versions, list bits -*- C++ -*-
829
830-// Copyright (C) 2011 Free Software Foundation, Inc.
831+// Copyright (C) 2011, 2012 Free Software Foundation, Inc.
832 //
833 // This file is part of the GNU ISO C++ Library. This library is free
834 // software; you can redistribute it and/or modify it under the
835@@ -24,6 +24,8 @@
836
837 #include <bits/move.h>
838
839+#ifdef PIC
840+
841 #ifndef _GLIBCXX_BEGIN_NAMESPACE_COMPAT
842 # define _GLIBCXX_BEGIN_NAMESPACE_COMPAT
843 #endif
844@@ -111,3 +113,5 @@
845 _GLIBCXX_END_NAMESPACE_COMPAT
846
847 } // namespace std
848+
849+#endif
850Index: libstdc++-v3/src/c++98/Makefile.am
851===================================================================
852--- libstdc++-v3/src/c++98/Makefile.am (.../tags/gcc_4_7_0_release) (wersja 187906)
853+++ libstdc++-v3/src/c++98/Makefile.am (.../branches/gcc-4_7-branch) (wersja 187906)
854@@ -25,7 +25,7 @@
855 include $(top_srcdir)/fragment.am
856
857 # Convenience library for C++98 runtime.
858-noinst_LTLIBRARIES = libc++98convenience.la
859+noinst_LTLIBRARIES = libc++98convenience.la
860
861 headers =
862
863@@ -74,7 +74,7 @@
864 # particular host, but with ad hoc naming rules.
865 host_sources_extra = \
866 basic_file.cc c++locale.cc \
867- ${inst_sources} ${ldbl_compat_sources} ${parallel_sources}
868+ ${inst_sources} ${parallel_sources}
869
870 c++locale.cc: ${glibcxx_srcdir}/$(CLOCALE_CC)
871 $(LN_S) ${glibcxx_srcdir}/$(CLOCALE_CC) ./$@ || true
872@@ -83,19 +83,11 @@
873 $(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_CC) ./$@ || true
874
875 if ENABLE_PARALLEL
876-parallel_sources = parallel_settings.cc \
877- compatibility-parallel_list.cc \
878- compatibility-parallel_list-2.cc
879+parallel_sources = parallel_settings.cc
880 else
881 parallel_sources =
882 endif
883
884-if GLIBCXX_LDBL_COMPAT
885-ldbl_compat_sources = compatibility-ldbl.cc
886-else
887-ldbl_compat_sources =
888-endif
889-
890 if ENABLE_EXTERN_TEMPLATE
891 XTEMPLATE_FLAGS = -fno-implicit-templates
892 inst_sources = \
893@@ -122,11 +114,6 @@
894 pool_allocator.cc \
895 mt_allocator.cc \
896 codecvt.cc \
897- compatibility.cc \
898- compatibility-debug_list.cc \
899- compatibility-debug_list-2.cc \
900- compatibility-list.cc \
901- compatibility-list-2.cc \
902 complex_io.cc \
903 ctype.cc \
904 globals_io.cc \
905@@ -153,7 +140,6 @@
906 ${host_sources_extra}
907
908 vpath % $(top_srcdir)/src/c++98
909-vpath % $(top_srcdir)
910
911 libc__98convenience_la_SOURCES = $(sources)
912
913@@ -180,25 +166,6 @@
914 parallel_settings.o: parallel_settings.cc
915 $(CXXCOMPILE) $(PARALLEL_FLAGS) -c $<
916
917-compatibility-parallel_list.lo: compatibility-parallel_list.cc
918- $(LTCXXCOMPILE) -c $<
919-compatibility-parallel_list.o: compatibility-parallel_list.cc
920- $(CXXCOMPILE) -c $<
921-
922-compatibility-parallel_list-2.lo: compatibility-parallel_list-2.cc
923- $(LTCXXCOMPILE) -c $<
924-compatibility-parallel_list-2.o: compatibility-parallel_list-2.cc
925- $(CXXCOMPILE) -c $<
926-
927-if GLIBCXX_LDBL_COMPAT
928-# Use special rules for compatibility-ldbl.cc compilation, as we need to
929-# pass -mlong-double-64.
930-compatibility-ldbl.lo: compatibility-ldbl.cc
931- $(LTCXXCOMPILE) -mlong-double-64 -c $<
932-compatibility-ldbl.o: compatibility-ldbl.cc
933- $(CXXCOMPILE) -mlong-double-64 -c $<
934-endif
935-
936 # AM_CXXFLAGS needs to be in each subdirectory so that it can be
937 # modified in a per-library or per-sub-library way. Need to manually
938 # set this option because CONFIG_CXXFLAGS has to be after
939@@ -207,9 +174,7 @@
940 AM_CXXFLAGS = \
941 $(PIC_CXXFLAGS) \
942 $(XTEMPLATE_FLAGS) \
943- $(WARN_CXXFLAGS) \
944- $(OPTIMIZE_CXXFLAGS) \
945- $(CONFIG_CXXFLAGS)
946+ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
947
948 AM_MAKEFLAGS = \
949 "gxx_include_dir=$(gxx_include_dir)"
950@@ -234,9 +199,11 @@
951 # attempt to infer which configuration to use.
952 # We have to put --tag disable-shared after --tag CXX lest things
953 # CXX undo the affect of disable-shared.
954-LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
955- --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
956- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
957+LTCXXCOMPILE = \
958+ $(LIBTOOL) --tag CXX --tag disable-shared \
959+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
960+ --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
961+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
962
963 LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
964
965@@ -246,6 +213,8 @@
966 # course is problematic at this point. So, we get the top-level
967 # directory to configure libstdc++-v3 to use gcc as the C++
968 # compilation driver.
969-CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
970- --mode=link $(CXX) \
971- $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
972+CXXLINK = \
973+ $(LIBTOOL) --tag CXX --tag disable-shared \
974+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
975+ --mode=link $(CXX) \
976+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
977Index: libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc
978===================================================================
979--- libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc (.../tags/gcc_4_7_0_release) (wersja 0)
980+++ libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc (.../branches/gcc-4_7-branch) (wersja 187906)
981@@ -0,0 +1,72 @@
982+// Compatibility symbols for previous versions, C++0x bits -*- C++ -*-
983+
984+// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
985+//
986+// This file is part of the GNU ISO C++ Library. This library is free
987+// software; you can redistribute it and/or modify it under the
988+// terms of the GNU General Public License as published by the
989+// Free Software Foundation; either version 3, or (at your option)
990+// any later version.
991+
992+// This library is distributed in the hope that it will be useful,
993+// but WITHOUT ANY WARRANTY; without even the implied warranty of
994+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
995+// GNU General Public License for more details.
996+
997+// Under Section 7 of GPL version 3, you are granted additional
998+// permissions described in the GCC Runtime Library Exception, version
999+// 3.1, as published by the Free Software Foundation.
1000+
1001+// You should have received a copy of the GNU General Public License and
1002+// a copy of the GCC Runtime Library Exception along with this program;
1003+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
1004+// <http://www.gnu.org/licenses/>.
1005+
1006+#include <future>
1007+#include <mutex>
1008+
1009+#ifndef __GXX_EXPERIMENTAL_CXX0X__
1010+# error "compatibility-c++0x.cc must be compiled with -std=gnu++0x"
1011+#endif
1012+
1013+#define _GLIBCXX_ASM_SYMVER(cur, old, version) \
1014+ asm (".symver " #cur "," #old "@@@" #version);
1015+
1016+// XXX GLIBCXX_ABI Deprecated
1017+// gcc-4.6.0
1018+// <future> export changes
1019+#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \
1020+ && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) \
1021+ && defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT)
1022+
1023+namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
1024+{
1025+ const std::error_category* future_category = &std::future_category();
1026+}
1027+
1028+_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx15future_categoryE, _ZSt15future_category, GLIBCXX_3.4.14)
1029+
1030+#endif
1031+
1032+// XXX GLIBCXX_ABI Deprecated
1033+// gcc-4.6.0
1034+// <mutex> export changes
1035+#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
1036+#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \
1037+ && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) \
1038+ && defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT)
1039+
1040+namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
1041+{
1042+ std::defer_lock_t defer_lock;
1043+ std::try_to_lock_t try_to_lock;
1044+ std::adopt_lock_t adopt_lock;
1045+}
1046+
1047+_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx10adopt_lockE, _ZSt10adopt_lock, GLIBCXX_3.4.11)
1048+_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx10defer_lockE, _ZSt10defer_lock, GLIBCXX_3.4.11)
1049+_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx11try_to_lockE, _ZSt11try_to_lock, GLIBCXX_3.4.11)
1050+
1051+
1052+#endif
1053+#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1
1054Index: libstdc++-v3/src/c++11/Makefile.in
1055===================================================================
1056--- libstdc++-v3/src/c++11/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187906)
1057+++ libstdc++-v3/src/c++11/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187906)
1058@@ -66,11 +66,10 @@
1059 CONFIG_CLEAN_VPATH_FILES =
1060 LTLIBRARIES = $(noinst_LTLIBRARIES)
1061 libc__11convenience_la_LIBADD =
1062-am__objects_1 = chrono.lo condition_variable.lo compatibility-c++0x.lo \
1063- compatibility-atomic-c++0x.lo debug.lo functexcept.lo \
1064- functional.lo future.lo hash_c++0x.lo hashtable_c++0x.lo \
1065- limits.lo mutex.lo placeholders.lo regex.lo shared_ptr.lo \
1066- system_error.lo thread.lo
1067+am__objects_1 = chrono.lo condition_variable.lo debug.lo \
1068+ functexcept.lo functional.lo future.lo hash_c++0x.lo \
1069+ hashtable_c++0x.lo limits.lo mutex.lo placeholders.lo regex.lo \
1070+ shared_ptr.lo system_error.lo thread.lo
1071 @ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_2 = fstream-inst.lo \
1072 @ENABLE_EXTERN_TEMPLATE_TRUE@ string-inst.lo wstring-inst.lo
1073 am_libc__11convenience_la_OBJECTS = $(am__objects_1) $(am__objects_2)
1074@@ -301,8 +300,6 @@
1075 sources = \
1076 chrono.cc \
1077 condition_variable.cc \
1078- compatibility-c++0x.cc \
1079- compatibility-atomic-c++0x.cc \
1080 debug.cc \
1081 functexcept.cc \
1082 functional.cc \
1083@@ -333,11 +330,10 @@
1084 # OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
1085 # as the occasion calls for it.
1086 AM_CXXFLAGS = \
1087+ -std=gnu++11 \
1088 $(PIC_CXXFLAGS) \
1089 $(XTEMPLATE_FLAGS) \
1090- $(WARN_CXXFLAGS) \
1091- $(OPTIMIZE_CXXFLAGS) \
1092- $(CONFIG_CXXFLAGS) -std=gnu++11
1093+ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
1094
1095 AM_MAKEFLAGS = \
1096 "gxx_include_dir=$(gxx_include_dir)"
1097@@ -363,9 +359,11 @@
1098 # attempt to infer which configuration to use.
1099 # We have to put --tag disable-shared after --tag CXX lest things
1100 # CXX undo the affect of disable-shared.
1101-LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
1102- --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
1103- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
1104+LTCXXCOMPILE = \
1105+ $(LIBTOOL) --tag CXX --tag disable-shared \
1106+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
1107+ --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
1108+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
1109
1110 LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
1111
1112@@ -375,9 +373,11 @@
1113 # course is problematic at this point. So, we get the top-level
1114 # directory to configure libstdc++-v3 to use gcc as the C++
1115 # compilation driver.
1116-CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
1117- --mode=link $(CXX) \
1118- $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
1119+CXXLINK = \
1120+ $(LIBTOOL) --tag CXX --tag disable-shared \
1121+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
1122+ --mode=link $(CXX) \
1123+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
1124
1125 all: all-am
1126
1127@@ -612,7 +612,6 @@
1128
1129
1130 vpath % $(top_srcdir)/src/c++11
1131-vpath % $(top_srcdir)
1132
1133 # Tell versions [3.59,3.63) of GNU make to not export all variables.
1134 # Otherwise a system limit (for SysV at least) may be exceeded.
1135Index: libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc
1136===================================================================
1137--- libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
1138+++ libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc (.../branches/gcc-4_7-branch) (wersja 187906)
1139@@ -1,6 +1,6 @@
1140 // <atomic> compatibility -*- C++ -*-
1141
1142-// Copyright (C) 2008, 2009, 2010, 2011
1143+// Copyright (C) 2008, 2009, 2010, 2011, 2012
1144 // Free Software Foundation, Inc.
1145 //
1146 // This file is part of the GNU ISO C++ Library. This library is free
1147@@ -30,6 +30,8 @@
1148 // XXX GLIBCXX_ABI Deprecated
1149 // gcc-4.7.0
1150
1151+#ifdef PIC
1152+
1153 #define LOGSIZE 4
1154
1155 namespace
1156@@ -133,6 +135,7 @@
1157 _GLIBCXX_END_NAMESPACE_VERSION
1158 } // namespace std
1159
1160+#endif
1161
1162 // XXX GLIBCXX_ABI Deprecated
1163 // gcc-4.5.0
1164Index: libstdc++-v3/src/c++11/mutex.cc
1165===================================================================
1166--- libstdc++-v3/src/c++11/mutex.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
1167+++ libstdc++-v3/src/c++11/mutex.cc (.../branches/gcc-4_7-branch) (wersja 187906)
1168@@ -1,6 +1,6 @@
1169 // mutex -*- C++ -*-
1170
1171-// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
1172+// Copyright (C) 2008, 2009, 2010, 2012 Free Software Foundation, Inc.
1173 //
1174 // This file is part of the GNU ISO C++ Library. This library is free
1175 // software; you can redistribute it and/or modify it under the
1176@@ -92,30 +92,6 @@
1177 }
1178
1179 _GLIBCXX_END_NAMESPACE_VERSION
1180-} // namespace
1181+} // namespace std
1182
1183-// XXX GLIBCXX_ABI Deprecated
1184-// gcc-4.6.0
1185-// <mutex> export changes
1186-#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \
1187- && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) \
1188- && defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT)
1189-
1190-namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
1191-{
1192- std::defer_lock_t defer_lock;
1193- std::try_to_lock_t try_to_lock;
1194- std::adopt_lock_t adopt_lock;
1195-}
1196-
1197-#define _GLIBCXX_ASM_SYMVER(cur, old, version) \
1198- asm (".symver " #cur "," #old "@@" #version);
1199-
1200-_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx10adopt_lockE, _ZSt10adopt_lock, GLIBCXX_3.4.11)
1201-_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx10defer_lockE, _ZSt10defer_lock, GLIBCXX_3.4.11)
1202-_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx11try_to_lockE, _ZSt11try_to_lock, GLIBCXX_3.4.11)
1203-
1204-
1205-#endif
1206-
1207 #endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1
1208Index: libstdc++-v3/src/c++11/future.cc
1209===================================================================
1210--- libstdc++-v3/src/c++11/future.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
1211+++ libstdc++-v3/src/c++11/future.cc (.../branches/gcc-4_7-branch) (wersja 187906)
1212@@ -96,23 +96,3 @@
1213
1214 _GLIBCXX_END_NAMESPACE_VERSION
1215 } // namespace std
1216-
1217-// XXX GLIBCXX_ABI Deprecated
1218-// gcc-4.6.0
1219-// <future> export changes
1220-#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \
1221- && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) \
1222- && defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT)
1223-
1224-namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
1225-{
1226- const std::error_category* future_category = &__future_category_instance();
1227-}
1228-
1229-#define _GLIBCXX_ASM_SYMVER(cur, old, version) \
1230- asm (".symver " #cur "," #old "@@@" #version);
1231-
1232-_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx15future_categoryE, _ZSt15future_category, GLIBCXX_3.4.14)
1233-
1234-#endif
1235-
1236Index: libstdc++-v3/src/c++11/Makefile.am
1237===================================================================
1238--- libstdc++-v3/src/c++11/Makefile.am (.../tags/gcc_4_7_0_release) (wersja 187906)
1239+++ libstdc++-v3/src/c++11/Makefile.am (.../branches/gcc-4_7-branch) (wersja 187906)
1240@@ -32,8 +32,6 @@
1241 sources = \
1242 chrono.cc \
1243 condition_variable.cc \
1244- compatibility-c++0x.cc \
1245- compatibility-atomic-c++0x.cc \
1246 debug.cc \
1247 functexcept.cc \
1248 functional.cc \
1249@@ -60,7 +58,6 @@
1250 endif
1251
1252 vpath % $(top_srcdir)/src/c++11
1253-vpath % $(top_srcdir)
1254
1255 libc__11convenience_la_SOURCES = $(sources) $(inst_sources)
1256
1257@@ -70,11 +67,10 @@
1258 # OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
1259 # as the occasion calls for it.
1260 AM_CXXFLAGS = \
1261+ -std=gnu++11 \
1262 $(PIC_CXXFLAGS) \
1263 $(XTEMPLATE_FLAGS) \
1264- $(WARN_CXXFLAGS) \
1265- $(OPTIMIZE_CXXFLAGS) \
1266- $(CONFIG_CXXFLAGS) -std=gnu++11
1267+ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
1268
1269 AM_MAKEFLAGS = \
1270 "gxx_include_dir=$(gxx_include_dir)"
1271@@ -99,9 +95,11 @@
1272 # attempt to infer which configuration to use.
1273 # We have to put --tag disable-shared after --tag CXX lest things
1274 # CXX undo the affect of disable-shared.
1275-LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
1276- --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
1277- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
1278+LTCXXCOMPILE = \
1279+ $(LIBTOOL) --tag CXX --tag disable-shared \
1280+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
1281+ --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
1282+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
1283
1284 LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
1285
1286@@ -111,6 +109,8 @@
1287 # course is problematic at this point. So, we get the top-level
1288 # directory to configure libstdc++-v3 to use gcc as the C++
1289 # compilation driver.
1290-CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
1291- --mode=link $(CXX) \
1292- $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
1293+CXXLINK = \
1294+ $(LIBTOOL) --tag CXX --tag disable-shared \
1295+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
1296+ --mode=link $(CXX) \
1297+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
1298Index: libstdc++-v3/src/c++11/compatibility-c++0x.cc
1299===================================================================
1300--- libstdc++-v3/src/c++11/compatibility-c++0x.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
1301+++ libstdc++-v3/src/c++11/compatibility-c++0x.cc (.../branches/gcc-4_7-branch) (wersja 187906)
1302@@ -1,6 +1,6 @@
1303 // Compatibility symbols for previous versions, C++0x bits -*- C++ -*-
1304
1305-// Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
1306+// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
1307 //
1308 // This file is part of the GNU ISO C++ Library. This library is free
1309 // software; you can redistribute it and/or modify it under the
1310@@ -30,6 +30,8 @@
1311 # error "compatibility-c++0x.cc must be compiled with -std=gnu++0x"
1312 #endif
1313
1314+#ifdef PIC
1315+
1316 namespace std _GLIBCXX_VISIBILITY(default)
1317 {
1318 // gcc-4.4.0
1319@@ -119,3 +121,4 @@
1320 } // namespace chrono
1321 }
1322
1323+#endif
ad222a6b
PS
1324Index: libstdc++-v3/include/Makefile.in
1325===================================================================
be75205b
PS
1326--- libstdc++-v3/include/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187906)
1327+++ libstdc++-v3/include/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187906)
ad222a6b
PS
1328@@ -1497,7 +1497,7 @@
1329 sed -e "s,define __GLIBCXX__,define __GLIBCXX__ $$date," \
1330 -e "s,define _GLIBCXX_INLINE_VERSION, define _GLIBCXX_INLINE_VERSION $$ns_version," \
1331 -e "s,define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY, define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY $$visibility," \
1332- -e "s,define _GLIBCXX_EXTERN_TEMPLATE, define _GLIBCXX_EXTERN_TEMPLATE $$externtemplate," \
1333+ -e "s,define _GLIBCXX_EXTERN_TEMPLATE$$, define _GLIBCXX_EXTERN_TEMPLATE $$externtemplate," \
1334 -e "$$ldbl_compat" \
1335 < ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
1336 sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \
be75205b
PS
1337Index: libstdc++-v3/include/debug/forward_list
1338===================================================================
1339--- libstdc++-v3/include/debug/forward_list (.../tags/gcc_4_7_0_release) (wersja 187906)
1340+++ libstdc++-v3/include/debug/forward_list (.../branches/gcc-4_7-branch) (wersja 187906)
1341@@ -414,6 +414,10 @@
1342 }
1343
1344 void
1345+ splice_after(const_iterator __pos, forward_list& __list)
1346+ { splice_after(__pos, std::move(__list)); }
1347+
1348+ void
1349 splice_after(const_iterator __pos, forward_list&& __list,
1350 const_iterator __i)
1351 {
1352@@ -436,6 +440,11 @@
1353 }
1354
1355 void
1356+ splice_after(const_iterator __pos, forward_list& __list,
1357+ const_iterator __i)
1358+ { splice_after(__pos, std::move(__list), __i); }
1359+
1360+ void
1361 splice_after(const_iterator __pos, forward_list&& __list,
1362 const_iterator __before, const_iterator __last)
1363 {
1364@@ -481,6 +490,11 @@
1365 }
1366
1367 void
1368+ splice_after(const_iterator __pos, forward_list& __list,
1369+ const_iterator __before, const_iterator __last)
1370+ { splice_after(__pos, std::move(__list), __before, __last); }
1371+
1372+ void
1373 remove(const _Tp& __val)
1374 {
1375 _Base_iterator __x = _Base::before_begin();
1376@@ -561,6 +575,10 @@
1377 }
1378 }
1379
1380+ void
1381+ merge(forward_list& __list)
1382+ { merge(std::move(__list)); }
1383+
1384 template<typename _Comp>
1385 void
1386 merge(forward_list&& __list, _Comp __comp)
1387@@ -580,6 +598,11 @@
1388 }
1389 }
1390
1391+ template<typename _Comp>
1392+ void
1393+ merge(forward_list& __list, _Comp __comp)
1394+ { merge(std::move(__list), __comp); }
1395+
1396 using _Base::sort;
1397 using _Base::reverse;
1398
1399@@ -733,8 +756,12 @@
1400 typedef typename _It::iterator_type _BaseIt;
1401
1402 static bool
1403- _M_Is(_BaseIt __it, const _Sequence* __seq)
1404+ _S_Is(_BaseIt __it, const _Sequence* __seq)
1405 { return __it == __seq->_M_base().cbefore_begin(); }
1406+
1407+ static bool
1408+ _S_Is_Beginnest(_BaseIt __it, const _Sequence* __seq)
1409+ { return _S_Is(__it, __seq); }
1410 };
1411 }
1412
1413Index: libstdc++-v3/include/debug/safe_iterator.tcc
1414===================================================================
1415--- libstdc++-v3/include/debug/safe_iterator.tcc (.../tags/gcc_4_7_0_release) (wersja 187906)
1416+++ libstdc++-v3/include/debug/safe_iterator.tcc (.../branches/gcc-4_7-branch) (wersja 187906)
1417@@ -1,6 +1,6 @@
1418 // Debugging iterator implementation (out of line) -*- C++ -*-
1419
1420-// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011
1421+// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011, 2012
1422 // Free Software Foundation, Inc.
1423 //
1424 // This file is part of the GNU ISO C++ Library. This library is free
1425@@ -91,10 +91,11 @@
1426 /* We can only test for equality, but check if one of the
1427 iterators is at an extreme. */
1428 /* Optim for classic [begin, it) or [it, end) ranges, limit checks
1429- * when code is valid. */
1430- if (_M_is_begin() || __rhs._M_is_end())
1431+ * when code is valid. Note, for the special case of forward_list,
1432+ * before_begin replaces the role of begin. */
1433+ if (_M_is_beginnest() || __rhs._M_is_end())
1434 return true;
1435- if (_M_is_end() || __rhs._M_is_begin())
1436+ if (_M_is_end() || __rhs._M_is_beginnest())
1437 return false;
1438
1439 // Assume that this is a valid range; we can't check anything else
ad222a6b
PS
1440Index: libstdc++-v3/include/debug/safe_iterator.h
1441===================================================================
be75205b
PS
1442--- libstdc++-v3/include/debug/safe_iterator.h (.../tags/gcc_4_7_0_release) (wersja 187906)
1443+++ libstdc++-v3/include/debug/safe_iterator.h (.../branches/gcc-4_7-branch) (wersja 187906)
ad222a6b
PS
1444@@ -1,6 +1,6 @@
1445 // Safe iterator implementation -*- C++ -*-
1446
1447-// Copyright (C) 2003, 2004, 2005, 2006, 2009, 2010, 2011
1448+// Copyright (C) 2003, 2004, 2005, 2006, 2009, 2010, 2011, 2012
1449 // Free Software Foundation, Inc.
1450 //
1451 // This file is part of the GNU ISO C++ Library. This library is free
be75205b
PS
1452@@ -50,8 +50,12 @@
1453 typedef typename _It::iterator_type _BaseIt;
1454
1455 static bool
1456- _M_Is(_BaseIt __it, const _Sequence* __seq)
1457+ _S_Is(_BaseIt, const _Sequence*)
1458 { return false; }
1459+
1460+ static bool
1461+ _S_Is_Beginnest(_BaseIt __it, const _Sequence* __seq)
1462+ { return __it == __seq->_M_base().begin(); }
1463 };
1464
1465 /** Iterators that derive from _Safe_iterator_base but that aren't
1466@@ -169,7 +173,25 @@
ad222a6b
PS
1467 ._M_iterator(__x, "other"));
1468 }
1469
1470+#ifdef __GXX_EXPERIMENTAL_CXX0X__
1471 /**
1472+ * @brief Move construction.
1473+ * @post __x is singular and unattached
1474+ */
1475+ _Safe_iterator(_Safe_iterator&& __x) : _M_current()
1476+ {
1477+ _GLIBCXX_DEBUG_VERIFY(!__x._M_singular()
1478+ || __x._M_current == _Iterator(),
1479+ _M_message(__msg_init_copy_singular)
1480+ ._M_iterator(*this, "this")
1481+ ._M_iterator(__x, "other"));
1482+ std::swap(_M_current, __x._M_current);
1483+ this->_M_attach(__x._M_sequence);
1484+ __x._M_detach();
1485+ }
1486+#endif
1487+
1488+ /**
1489 * @brief Converting constructor from a mutable iterator to a
1490 * constant iterator.
1491 */
be75205b 1492@@ -208,7 +230,28 @@
ad222a6b
PS
1493 return *this;
1494 }
1495
1496+#ifdef __GXX_EXPERIMENTAL_CXX0X__
1497 /**
1498+ * @brief Move assignment.
1499+ * @post __x is singular and unattached
1500+ */
1501+ _Safe_iterator&
1502+ operator=(_Safe_iterator&& __x)
1503+ {
1504+ _GLIBCXX_DEBUG_VERIFY(!__x._M_singular()
1505+ || __x._M_current == _Iterator(),
1506+ _M_message(__msg_copy_singular)
1507+ ._M_iterator(*this, "this")
1508+ ._M_iterator(__x, "other"));
1509+ _M_current = __x._M_current;
1510+ _M_attach(__x._M_sequence);
1511+ __x._M_detach();
1512+ __x._M_current = _Iterator();
1513+ return *this;
1514+ }
1515+#endif
1516+
1517+ /**
1518 * @brief Iterator dereference.
1519 * @pre iterator is dereferenceable
1520 */
be75205b 1521@@ -422,7 +465,17 @@
ad222a6b
PS
1522 /// Is this iterator equal to the sequence's before_begin() iterator if
1523 /// any?
1524 bool _M_is_before_begin() const
1525- { return _BeforeBeginHelper<_Sequence>::_M_Is(base(), _M_get_sequence()); }
1526+ {
be75205b
PS
1527+ return _BeforeBeginHelper<_Sequence>::_S_Is(base(), _M_get_sequence());
1528+ }
1529+
1530+ /// Is this iterator equal to the sequence's before_begin() iterator if
1531+ /// any or begin() otherwise?
1532+ bool _M_is_beginnest() const
1533+ {
1534+ return _BeforeBeginHelper<_Sequence>::_S_Is_Beginnest(base(),
1535+ _M_get_sequence());
ad222a6b
PS
1536+ }
1537 };
1538
1539 template<typename _IteratorL, typename _IteratorR, typename _Sequence>
be75205b
PS
1540Index: libstdc++-v3/include/std/bitset
1541===================================================================
1542--- libstdc++-v3/include/std/bitset (.../tags/gcc_4_7_0_release) (wersja 187906)
1543+++ libstdc++-v3/include/std/bitset (.../branches/gcc-4_7-branch) (wersja 187906)
1544@@ -1377,7 +1377,7 @@
1545 size_t __pos, size_t __n, _CharT __zero, _CharT __one)
1546 {
1547 reset();
1548- const size_t __nbits = std::min(_Nb, std::min(__n, __len - __pos));
1549+ const size_t __nbits = std::min(_Nb, std::min(__n, size_t(__len - __pos)));
1550 for (size_t __i = __nbits; __i > 0; --__i)
1551 {
1552 const _CharT __c = __s[__pos + __nbits - __i];
1553Index: libstdc++-v3/include/std/scoped_allocator
1554===================================================================
1555--- libstdc++-v3/include/std/scoped_allocator (.../tags/gcc_4_7_0_release) (wersja 187906)
1556+++ libstdc++-v3/include/std/scoped_allocator (.../branches/gcc-4_7-branch) (wersja 187906)
1557@@ -1,6 +1,6 @@
1558 // <scoped_allocator> -*- C++ -*-
1559
1560-// Copyright (C) 2011 Free Software Foundation, Inc.
1561+// Copyright (C) 2011, 2012 Free Software Foundation, Inc.
1562 //
1563 // This file is part of the GNU ISO C++ Library. This library is free
1564 // software; you can redistribute it and/or modify it under the
1565@@ -77,7 +77,7 @@
1566
1567 template<typename _Alloc>
1568 inline auto
1569- __do_outermost(_Alloc& __a, _Alloc&) -> decltype(__a.outer_allocator())
1570+ __do_outermost(_Alloc& __a, _Alloc*) -> decltype(__a.outer_allocator())
1571 { return __a.outer_allocator(); }
1572
1573 template<typename _Alloc>
1574@@ -87,8 +87,8 @@
1575
1576 template<typename _Alloc>
1577 inline auto
1578- __outermost(_Alloc& __a) -> decltype(__do_outermost(__a, __a))
1579- { return __do_outermost(__a, __a); }
1580+ __outermost(_Alloc& __a) -> decltype(__do_outermost(__a, &__a))
1581+ { return __do_outermost(__a, &__a); }
1582
1583 template<typename _OuterAlloc, typename... _InnerAllocs>
1584 class scoped_allocator_adaptor;
b4627121 1585Index: libstdc++-v3/include/std/array
7b762fbe 1586===================================================================
be75205b
PS
1587--- libstdc++-v3/include/std/array (.../tags/gcc_4_7_0_release) (wersja 187906)
1588+++ libstdc++-v3/include/std/array (.../branches/gcc-4_7-branch) (wersja 187906)
b4627121
AM
1589@@ -1,6 +1,7 @@
1590 // <array> -*- C++ -*-
7b762fbe 1591
b4627121
AM
1592-// Copyright (C) 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
1593+// Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012
1594+// Free Software Foundation, Inc.
1595 //
1596 // This file is part of the GNU ISO C++ Library. This library is free
1597 // software; you can redistribute it and/or modify it under the
1598@@ -174,8 +175,9 @@
1599 const_reference
1600 at(size_type __n) const
1601 {
1602- return __n < _Nm ?
1603- _M_instance[__n] : __throw_out_of_range(__N("array::at"));
1604+ if (__n >= _Nm)
1605+ std::__throw_out_of_range(__N("array::at"));
1606+ return _M_instance[__n];
1607 }
1608 #endif
1609
be75205b
PS
1610Index: libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp
1611===================================================================
1612--- libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp (.../tags/gcc_4_7_0_release) (wersja 187906)
1613+++ libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp (.../branches/gcc-4_7-branch) (wersja 187906)
1614@@ -1,6 +1,6 @@
1615 // -*- C++ -*-
1616
1617-// Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
1618+// Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
1619 // Free Software Foundation, Inc.
1620 //
1621 // This file is part of the GNU ISO C++ Library. This library is free
1622@@ -188,7 +188,11 @@
1623 __try
1624 {
1625 while (child_it != p_icp->end())
1626- a_p_children[child_i++] = recursive_copy_node(*(child_it++));
1627+ {
1628+ a_p_children[child_i] = recursive_copy_node(*(child_it));
1629+ child_i++;
1630+ child_it++;
1631+ }
1632 p_ret = s_inode_allocator.allocate(1);
1633 }
1634 __catch(...)
1635Index: libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp
1636===================================================================
1637--- libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp (.../tags/gcc_4_7_0_release) (wersja 187906)
1638+++ libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp (.../branches/gcc-4_7-branch) (wersja 187906)
1639@@ -1,6 +1,6 @@
1640 // -*- C++ -*-
1641
1642-// Copyright (C) 2005, 2006, 2009, 2011 Free Software Foundation, Inc.
1643+// Copyright (C) 2005, 2006, 2009, 2011, 2012 Free Software Foundation, Inc.
1644 //
1645 // This file is part of the GNU ISO C++ Library. This library is free
1646 // software; you can redistribute it and/or modify it under the terms
1647@@ -50,7 +50,11 @@
1648 /// Base type for PATRICIA trees.
1649 struct pat_trie_base
1650 {
1651- /// Three types of nodes.
1652+ /**
1653+ * @brief Three types of nodes.
1654+ *
1655+ * i_node is used by _Inode, leaf_node by _Leaf, and head_node by _Head.
1656+ */
1657 enum node_type
1658 {
1659 i_node,
1660Index: libstdc++-v3/include/ext/functional
1661===================================================================
1662--- libstdc++-v3/include/ext/functional (.../tags/gcc_4_7_0_release) (wersja 187906)
1663+++ libstdc++-v3/include/ext/functional (.../branches/gcc-4_7-branch) (wersja 187906)
1664@@ -1,6 +1,6 @@
1665 // Functional extensions -*- C++ -*-
1666
1667-// Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010
1668+// Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2012
1669 // Free Software Foundation, Inc.
1670 //
1671 // This file is part of the GNU ISO C++ Library. This library is free
1672@@ -183,7 +183,13 @@
1673 * @addtogroup SGIextensions
1674 */
1675 template <class _Tp>
1676- struct identity : public std::_Identity<_Tp> {};
1677+ struct identity
1678+#ifdef __GXX_EXPERIMENTAL_CXX0X__
1679+ : public std::unary_function<_Tp,_Tp>,
1680+ public std::_Identity<_Tp> {};
1681+#else
1682+ : public std::_Identity<_Tp> {};
1683+#endif
1684
1685 /** @c select1st and @c select2nd are extensions provided by SGI. Their
1686 * @c operator()s
1687@@ -197,11 +203,23 @@
1688 */
1689 /// An \link SGIextensions SGI extension \endlink.
1690 template <class _Pair>
1691- struct select1st : public std::_Select1st<_Pair> {};
1692+ struct select1st
1693+#ifdef __GXX_EXPERIMENTAL_CXX0X__
1694+ : public std::unary_function<_Pair, typename _Pair::first_type>,
1695+ public std::_Select1st<_Pair> {};
1696+#else
1697+ : public std::_Select1st<_Pair> {};
1698+#endif
1699
1700 /// An \link SGIextensions SGI extension \endlink.
1701 template <class _Pair>
1702- struct select2nd : public std::_Select2nd<_Pair> {};
1703+ struct select2nd
1704+#ifdef __GXX_EXPERIMENTAL_CXX0X__
1705+ : public std::unary_function<_Pair, typename _Pair::second_type>,
1706+ public std::_Select2nd<_Pair> {};
1707+#else
1708+ : public std::_Select2nd<_Pair> {};
1709+#endif
1710 /** @} */
1711
1712 // extension documented next
1713Index: libstdc++-v3/include/bits/hashtable.h
1714===================================================================
1715--- libstdc++-v3/include/bits/hashtable.h (.../tags/gcc_4_7_0_release) (wersja 187906)
1716+++ libstdc++-v3/include/bits/hashtable.h (.../branches/gcc-4_7-branch) (wersja 187906)
1717@@ -1,6 +1,7 @@
1718 // hashtable.h header -*- C++ -*-
1719
1720-// Copyright (C) 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
1721+// Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012
1722+// Free Software Foundation, Inc.
1723 //
1724 // This file is part of the GNU ISO C++ Library. This library is free
1725 // software; you can redistribute it and/or modify it under the
1726@@ -596,6 +597,12 @@
1727 // reserve, if present, comes from _Rehash_base.
1728
1729 private:
1730+ // Helper rehash method used when keys are unique.
1731+ void _M_rehash_aux(size_type __n, std::true_type);
1732+
1733+ // Helper rehash method used when keys can be non-unique.
1734+ void _M_rehash_aux(size_type __n, std::false_type);
1735+
1736 // Unconditionally change size of bucket array to n, restore hash policy
1737 // state to __state on exception.
1738 void _M_rehash(size_type __n, const _RehashPolicyState& __state);
1739@@ -1592,41 +1599,143 @@
1740 {
1741 __try
1742 {
1743- _Bucket* __new_buckets = _M_allocate_buckets(__n);
1744- _Node* __p = _M_begin();
1745- _M_before_begin._M_nxt = nullptr;
1746- std::size_t __cur_bbegin_bkt;
1747- while (__p)
1748+ _M_rehash_aux(__n, integral_constant<bool, __uk>());
1749+ }
1750+ __catch(...)
1751+ {
1752+ // A failure here means that buckets allocation failed. We only
1753+ // have to restore hash policy previous state.
1754+ _M_rehash_policy._M_reset(__state);
1755+ __throw_exception_again;
1756+ }
1757+ }
1758+
1759+ // Rehash when there is no equivalent elements.
1760+ template<typename _Key, typename _Value,
1761+ typename _Allocator, typename _ExtractKey, typename _Equal,
1762+ typename _H1, typename _H2, typename _Hash, typename _RehashPolicy,
1763+ bool __chc, bool __cit, bool __uk>
1764+ void
1765+ _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal,
1766+ _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>::
1767+ _M_rehash_aux(size_type __n, std::true_type)
1768+ {
1769+ _Bucket* __new_buckets = _M_allocate_buckets(__n);
1770+ _Node* __p = _M_begin();
1771+ _M_before_begin._M_nxt = nullptr;
1772+ std::size_t __bbegin_bkt;
1773+ while (__p)
1774+ {
1775+ _Node* __next = __p->_M_next();
1776+ std::size_t __bkt = _HCBase::_M_bucket_index(__p, __n);
1777+ if (!__new_buckets[__bkt])
1778 {
1779- _Node* __next = __p->_M_next();
1780- std::size_t __new_index = _HCBase::_M_bucket_index(__p, __n);
1781- if (!__new_buckets[__new_index])
1782+ __p->_M_nxt = _M_before_begin._M_nxt;
1783+ _M_before_begin._M_nxt = __p;
1784+ __new_buckets[__bkt] = &_M_before_begin;
1785+ if (__p->_M_nxt)
1786+ __new_buckets[__bbegin_bkt] = __p;
1787+ __bbegin_bkt = __bkt;
1788+ }
1789+ else
1790+ {
1791+ __p->_M_nxt = __new_buckets[__bkt]->_M_nxt;
1792+ __new_buckets[__bkt]->_M_nxt = __p;
1793+ }
1794+ __p = __next;
1795+ }
1796+ _M_deallocate_buckets(_M_buckets, _M_bucket_count);
1797+ _M_bucket_count = __n;
1798+ _M_buckets = __new_buckets;
1799+ }
1800+
1801+ // Rehash when there can be equivalent elements, preserve their relative
1802+ // order.
1803+ template<typename _Key, typename _Value,
1804+ typename _Allocator, typename _ExtractKey, typename _Equal,
1805+ typename _H1, typename _H2, typename _Hash, typename _RehashPolicy,
1806+ bool __chc, bool __cit, bool __uk>
1807+ void
1808+ _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal,
1809+ _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>::
1810+ _M_rehash_aux(size_type __n, std::false_type)
1811+ {
1812+ _Bucket* __new_buckets = _M_allocate_buckets(__n);
1813+
1814+ _Node* __p = _M_begin();
1815+ _M_before_begin._M_nxt = nullptr;
1816+ std::size_t __bbegin_bkt;
1817+ std::size_t __prev_bkt;
1818+ _Node* __prev_p = nullptr;
1819+ bool __check_bucket = false;
1820+
1821+ while (__p)
1822+ {
1823+ _Node* __next = __p->_M_next();
1824+ std::size_t __bkt = _HCBase::_M_bucket_index(__p, __n);
1825+
1826+ if (__prev_p && __prev_bkt == __bkt)
1827+ {
1828+ // Previous insert was already in this bucket, we insert after
1829+ // the previously inserted one to preserve equivalent elements
1830+ // relative order.
1831+ __p->_M_nxt = __prev_p->_M_nxt;
1832+ __prev_p->_M_nxt = __p;
1833+
1834+ // Inserting after a node in a bucket require to check that we
1835+ // haven't change the bucket last node, in this case next
1836+ // bucket containing its before begin node must be updated. We
1837+ // schedule a check as soon as we move out of the sequence of
1838+ // equivalent nodes to limit the number of checks.
1839+ __check_bucket = true;
1840+ }
1841+ else
1842+ {
1843+ if (__check_bucket)
1844 {
1845+ // Check if we shall update the next bucket because of insertions
1846+ // into __prev_bkt bucket.
1847+ if (__prev_p->_M_nxt)
1848+ {
1849+ std::size_t __next_bkt
1850+ = _HCBase::_M_bucket_index(__prev_p->_M_next(), __n);
1851+ if (__next_bkt != __prev_bkt)
1852+ __new_buckets[__next_bkt] = __prev_p;
1853+ }
1854+ __check_bucket = false;
1855+ }
1856+ if (!__new_buckets[__bkt])
1857+ {
1858 __p->_M_nxt = _M_before_begin._M_nxt;
1859 _M_before_begin._M_nxt = __p;
1860- __new_buckets[__new_index] = &_M_before_begin;
1861+ __new_buckets[__bkt] = &_M_before_begin;
1862 if (__p->_M_nxt)
1863- __new_buckets[__cur_bbegin_bkt] = __p;
1864- __cur_bbegin_bkt = __new_index;
1865+ __new_buckets[__bbegin_bkt] = __p;
1866+ __bbegin_bkt = __bkt;
1867 }
1868 else
1869 {
1870- __p->_M_nxt = __new_buckets[__new_index]->_M_nxt;
1871- __new_buckets[__new_index]->_M_nxt = __p;
1872+ __p->_M_nxt = __new_buckets[__bkt]->_M_nxt;
1873+ __new_buckets[__bkt]->_M_nxt = __p;
1874 }
1875- __p = __next;
1876 }
1877- _M_deallocate_buckets(_M_buckets, _M_bucket_count);
1878- _M_bucket_count = __n;
1879- _M_buckets = __new_buckets;
1880+
1881+ __prev_p = __p;
1882+ __prev_bkt = __bkt;
1883+ __p = __next;
1884 }
1885- __catch(...)
1886+
1887+ if (__check_bucket && __prev_p->_M_nxt)
1888 {
1889- // A failure here means that buckets allocation failed. We only
1890- // have to restore hash policy previous state.
1891- _M_rehash_policy._M_reset(__state);
1892- __throw_exception_again;
1893+ std::size_t __next_bkt
1894+ = _HCBase::_M_bucket_index(__prev_p->_M_next(), __n);
1895+ if (__next_bkt != __prev_bkt)
1896+ __new_buckets[__next_bkt] = __prev_p;
1897 }
1898+
1899+ _M_deallocate_buckets(_M_buckets, _M_bucket_count);
1900+ _M_bucket_count = __n;
1901+ _M_buckets = __new_buckets;
1902 }
1903
1904 _GLIBCXX_END_NAMESPACE_VERSION
1905Index: libstdc++-v3/include/bits/stl_algobase.h
1906===================================================================
1907--- libstdc++-v3/include/bits/stl_algobase.h (.../tags/gcc_4_7_0_release) (wersja 187906)
1908+++ libstdc++-v3/include/bits/stl_algobase.h (.../branches/gcc-4_7-branch) (wersja 187906)
1909@@ -982,14 +982,26 @@
1910 __lg(int __n)
1911 { return sizeof(int) * __CHAR_BIT__ - 1 - __builtin_clz(__n); }
1912
1913+ inline unsigned
1914+ __lg(unsigned __n)
1915+ { return sizeof(int) * __CHAR_BIT__ - 1 - __builtin_clz(__n); }
1916+
1917 inline long
1918 __lg(long __n)
1919 { return sizeof(long) * __CHAR_BIT__ - 1 - __builtin_clzl(__n); }
1920
1921+ inline unsigned long
1922+ __lg(unsigned long __n)
1923+ { return sizeof(long) * __CHAR_BIT__ - 1 - __builtin_clzl(__n); }
1924+
1925 inline long long
1926 __lg(long long __n)
1927 { return sizeof(long long) * __CHAR_BIT__ - 1 - __builtin_clzll(__n); }
1928
1929+ inline unsigned long long
1930+ __lg(unsigned long long __n)
1931+ { return sizeof(long long) * __CHAR_BIT__ - 1 - __builtin_clzll(__n); }
1932+
1933 _GLIBCXX_END_NAMESPACE_VERSION
1934
1935 _GLIBCXX_BEGIN_NAMESPACE_ALGO
1936Index: libstdc++-v3/include/bits/hashtable_policy.h
1937===================================================================
1938--- libstdc++-v3/include/bits/hashtable_policy.h (.../tags/gcc_4_7_0_release) (wersja 187906)
1939+++ libstdc++-v3/include/bits/hashtable_policy.h (.../branches/gcc-4_7-branch) (wersja 187906)
1940@@ -533,7 +533,9 @@
1941
1942 // Specialization using EBO.
1943 template<int _Nm, typename _Tp>
1944- struct _Hashtable_ebo_helper<_Nm, _Tp, true> : private _Tp
1945+ struct _Hashtable_ebo_helper<_Nm, _Tp, true>
1946+ // See PR53067.
1947+ : public _Tp
1948 {
1949 _Hashtable_ebo_helper() = default;
1950 _Hashtable_ebo_helper(const _Tp& __tp) : _Tp(__tp)
1951@@ -595,8 +597,9 @@
1952 template<typename _Key, typename _Value, typename _ExtractKey,
1953 typename _H1, typename _H2, typename _Hash>
1954 struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash, false>
1955- : private _Hashtable_ebo_helper<0, _ExtractKey>,
1956- private _Hashtable_ebo_helper<1, _Hash>
1957+ // See PR53067.
1958+ : public _Hashtable_ebo_helper<0, _ExtractKey>,
1959+ public _Hashtable_ebo_helper<1, _Hash>
1960 {
1961 private:
1962 typedef _Hashtable_ebo_helper<0, _ExtractKey> _EboExtractKey;
1963@@ -669,9 +672,10 @@
1964 typename _H1, typename _H2>
1965 struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2,
1966 _Default_ranged_hash, false>
1967- : private _Hashtable_ebo_helper<0, _ExtractKey>,
1968- private _Hashtable_ebo_helper<1, _H1>,
1969- private _Hashtable_ebo_helper<2, _H2>
1970+ // See PR53067.
1971+ : public _Hashtable_ebo_helper<0, _ExtractKey>,
1972+ public _Hashtable_ebo_helper<1, _H1>,
1973+ public _Hashtable_ebo_helper<2, _H2>
1974 {
1975 private:
1976 typedef _Hashtable_ebo_helper<0, _ExtractKey> _EboExtractKey;
1977@@ -748,9 +752,10 @@
1978 typename _H1, typename _H2>
1979 struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2,
1980 _Default_ranged_hash, true>
1981- : private _Hashtable_ebo_helper<0, _ExtractKey>,
1982- private _Hashtable_ebo_helper<1, _H1>,
1983- private _Hashtable_ebo_helper<2, _H2>
1984+ // See PR53067.
1985+ : public _Hashtable_ebo_helper<0, _ExtractKey>,
1986+ public _Hashtable_ebo_helper<1, _H1>,
1987+ public _Hashtable_ebo_helper<2, _H2>
1988 {
1989 private:
1990 typedef _Hashtable_ebo_helper<0, _ExtractKey> _EboExtractKey;
1991@@ -853,9 +858,10 @@
1992 typename _H1, typename _H2, typename _Hash,
1993 bool __cache_hash_code>
1994 struct _Hashtable_base
1995+ // See PR53067.
1996 : public _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash,
1997 __cache_hash_code>,
1998- private _Hashtable_ebo_helper<0, _Equal>
1999+ public _Hashtable_ebo_helper<0, _Equal>
2000 {
2001 private:
2002 typedef _Hashtable_ebo_helper<0, _Equal> _EboEqual;
2003@@ -906,7 +912,8 @@
2004 typename _H1, typename _H2, typename _Hash>
2005 struct _Local_iterator_base<_Key, _Value, _ExtractKey,
2006 _H1, _H2, _Hash, true>
2007- : private _H2
2008+ // See PR53067.
2009+ : public _H2
2010 {
2011 _Local_iterator_base() = default;
2012 _Local_iterator_base(_Hash_node<_Value, true>* __p,
2013@@ -937,8 +944,9 @@
2014 typename _H1, typename _H2, typename _Hash>
2015 struct _Local_iterator_base<_Key, _Value, _ExtractKey,
2016 _H1, _H2, _Hash, false>
2017- : private _Hash_code_base<_Key, _Value, _ExtractKey,
2018- _H1, _H2, _Hash, false>
2019+ // See PR53067.
2020+ : public _Hash_code_base<_Key, _Value, _ExtractKey,
2021+ _H1, _H2, _Hash, false>
2022 {
2023 _Local_iterator_base() = default;
2024 _Local_iterator_base(_Hash_node<_Value, false>* __p,
ad222a6b
PS
2025Index: libstdc++-v3/include/bits/forward_list.h
2026===================================================================
be75205b
PS
2027--- libstdc++-v3/include/bits/forward_list.h (.../tags/gcc_4_7_0_release) (wersja 187906)
2028+++ libstdc++-v3/include/bits/forward_list.h (.../branches/gcc-4_7-branch) (wersja 187906)
ad222a6b
PS
2029@@ -1,6 +1,6 @@
2030 // <forward_list.h> -*- C++ -*-
2031
2032-// Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
2033+// Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
2034 //
2035 // This file is part of the GNU ISO C++ Library. This library is free
2036 // software; you can redistribute it and/or modify it under the
be75205b
PS
2037@@ -53,15 +53,6 @@
2038 _Fwd_list_node_base* _M_next;
2039
2040 _Fwd_list_node_base*
2041- _M_transfer_after(_Fwd_list_node_base* __begin)
2042- {
2043- _Fwd_list_node_base* __end = __begin;
2044- while (__end && __end->_M_next)
2045- __end = __end->_M_next;
2046- return _M_transfer_after(__begin, __end);
2047- }
2048-
2049- _Fwd_list_node_base*
2050 _M_transfer_after(_Fwd_list_node_base* __begin,
2051 _Fwd_list_node_base* __end)
2052 {
2053@@ -606,8 +597,8 @@
ad222a6b
PS
2054 * in the range [@a __first,@a __last).
2055 *
2056 * Note that the assignment completely changes the %forward_list and
2057- * that the resulting %forward_list's size is the same as the number
2058- * of elements assigned. Old data may be lost.
2059+ * that the number of elements of the resulting %forward_list's is the
2060+ * same as the number of elements assigned. Old data is lost.
2061 */
2062 template<typename _InputIterator>
2063 void
be75205b 2064@@ -622,10 +613,10 @@
ad222a6b
PS
2065 * @param __n Number of elements to be assigned.
2066 * @param __val Value to be assigned.
2067 *
2068- * This function fills a %forward_list with @a __n copies of the given
2069- * value. Note that the assignment completely changes the
2070- * %forward_list and that the resulting %forward_list's size is the
2071- * same as the number of elements assigned. Old data may be lost.
2072+ * This function fills a %forward_list with @a __n copies of the
2073+ * given value. Note that the assignment completely changes the
2074+ * %forward_list, and that the resulting %forward_list has __n
2075+ * elements. Old data is lost.
2076 */
2077 void
2078 assign(size_type __n, const _Tp& __val)
be75205b 2079@@ -744,7 +735,7 @@
ad222a6b
PS
2080 { return this->_M_impl._M_head._M_next == 0; }
2081
2082 /**
2083- * Returns the largest possible size of %forward_list.
2084+ * Returns the largest possible number of elements of %forward_list.
2085 */
2086 size_type
2087 max_size() const noexcept
be75205b
PS
2088@@ -926,7 +917,8 @@
2089 * does not invalidate iterators and references.
2090 */
2091 iterator
2092- insert_after(const_iterator __pos, std::initializer_list<_Tp> __il);
2093+ insert_after(const_iterator __pos, std::initializer_list<_Tp> __il)
2094+ { return insert_after(__pos, __il.begin(), __il.end()); }
2095
2096 /**
2097 * @brief Removes the element pointed to by the iterator following
2098@@ -997,9 +989,9 @@
ad222a6b
PS
2099 *
2100 * This function will %resize the %forward_list to the specified
2101 * number of elements. If the number is smaller than the
2102- * %forward_list's current size the %forward_list is truncated,
2103- * otherwise the %forward_list is extended and the new elements
2104- * are default constructed.
2105+ * %forward_list's current number of elements the %forward_list
2106+ * is truncated, otherwise the %forward_list is extended and the
2107+ * new elements are default constructed.
2108 */
2109 void
2110 resize(size_type __sz);
be75205b 2111@@ -1012,9 +1004,9 @@
ad222a6b
PS
2112 *
2113 * This function will %resize the %forward_list to the specified
2114 * number of elements. If the number is smaller than the
2115- * %forward_list's current size the %forward_list is truncated,
2116- * otherwise the %forward_list is extended and new elements are
2117- * populated with given data.
2118+ * %forward_list's current number of elements the %forward_list
2119+ * is truncated, otherwise the %forward_list is extended and new
2120+ * elements are populated with given data.
2121 */
2122 void
2123 resize(size_type __sz, const value_type& __val);
be75205b
PS
2124@@ -1048,9 +1040,13 @@
2125 splice_after(const_iterator __pos, forward_list&& __list)
2126 {
2127 if (!__list.empty())
2128- _M_splice_after(__pos, std::move(__list));
2129+ _M_splice_after(__pos, __list.before_begin(), __list.end());
2130 }
2131
2132+ void
2133+ splice_after(const_iterator __pos, forward_list& __list)
2134+ { splice_after(__pos, std::move(__list)); }
2135+
2136 /**
2137 * @brief Insert element from another %forward_list.
2138 * @param __pos Iterator referencing the element to insert after.
2139@@ -1063,16 +1059,13 @@
2140 */
2141 void
2142 splice_after(const_iterator __pos, forward_list&& __list,
2143+ const_iterator __i);
2144+
2145+ void
2146+ splice_after(const_iterator __pos, forward_list& __list,
2147 const_iterator __i)
2148- {
2149- const_iterator __j = __i;
2150- ++__j;
2151- if (__pos == __i || __pos == __j)
2152- return;
2153+ { splice_after(__pos, std::move(__list), __i); }
2154
2155- splice_after(__pos, std::move(__list), __i, __j);
2156- }
2157-
2158 /**
2159 * @brief Insert range from another %forward_list.
2160 * @param __pos Iterator referencing the element to insert after.
2161@@ -1087,9 +1080,15 @@
2162 * Undefined if @a __pos is in (__before,__last).
2163 */
2164 void
2165- splice_after(const_iterator __pos, forward_list&& __list,
2166- const_iterator __before, const_iterator __last);
2167+ splice_after(const_iterator __pos, forward_list&&,
2168+ const_iterator __before, const_iterator __last)
2169+ { _M_splice_after(__pos, __before, __last); }
2170
2171+ void
2172+ splice_after(const_iterator __pos, forward_list&,
2173+ const_iterator __before, const_iterator __last)
2174+ { _M_splice_after(__pos, __before, __last); }
2175+
2176 /**
2177 * @brief Remove all elements equal to value.
2178 * @param __val The value to remove.
2179@@ -1131,7 +1130,7 @@
2180 */
2181 void
2182 unique()
2183- { this->unique(std::equal_to<_Tp>()); }
2184+ { unique(std::equal_to<_Tp>()); }
2185
2186 /**
2187 * @brief Remove consecutive elements satisfying a predicate.
2188@@ -1160,8 +1159,12 @@
2189 */
2190 void
2191 merge(forward_list&& __list)
2192- { this->merge(std::move(__list), std::less<_Tp>()); }
2193+ { merge(std::move(__list), std::less<_Tp>()); }
2194
2195+ void
2196+ merge(forward_list& __list)
2197+ { merge(std::move(__list)); }
2198+
2199 /**
2200 * @brief Merge sorted lists according to comparison function.
2201 * @param __list Sorted list to merge.
2202@@ -1177,6 +1180,11 @@
2203 void
2204 merge(forward_list&& __list, _Comp __comp);
2205
2206+ template<typename _Comp>
2207+ void
2208+ merge(forward_list& __list, _Comp __comp)
2209+ { merge(std::move(__list), __comp); }
2210+
2211 /**
2212 * @brief Sort the elements of the list.
2213 *
2214@@ -1185,7 +1193,7 @@
2215 */
2216 void
2217 sort()
2218- { this->sort(std::less<_Tp>()); }
2219+ { sort(std::less<_Tp>()); }
2220
2221 /**
2222 * @brief Sort the forward_list using a comparison function.
2223@@ -1225,7 +1233,8 @@
2224
2225 // Called by splice_after and insert_after.
2226 iterator
2227- _M_splice_after(const_iterator __pos, forward_list&& __list);
2228+ _M_splice_after(const_iterator __pos, const_iterator __before,
2229+ const_iterator __last);
2230
2231 // Called by forward_list(n).
2232 void
2233@@ -1240,11 +1249,11 @@
ad222a6b
PS
2234 * @brief Forward list equality comparison.
2235 * @param __lx A %forward_list
2236 * @param __ly A %forward_list of the same type as @a __lx.
2237- * @return True iff the size and elements of the forward lists are equal.
2238+ * @return True iff the elements of the forward lists are equal.
2239 *
2240- * This is an equivalence relation. It is linear in the size of the
2241- * forward lists. Deques are considered equivalent if corresponding
2242- * elements compare equal.
2243+ * This is an equivalence relation. It is linear in the number of
2244+ * elements of the forward lists. Deques are considered equivalent
2245+ * if corresponding elements compare equal.
2246 */
2247 template<typename _Tp, typename _Alloc>
2248 bool
be75205b 2249@@ -1257,8 +1266,9 @@
ad222a6b
PS
2250 * @param __ly A %forward_list of the same type as @a __lx.
2251 * @return True iff @a __lx is lexicographically less than @a __ly.
2252 *
2253- * This is a total ordering relation. It is linear in the size of the
2254- * forward lists. The elements must be comparable with @c <.
2255+ * This is a total ordering relation. It is linear in the number of
2256+ * elements of the forward lists. The elements must be comparable
2257+ * with @c <.
2258 *
2259 * See std::lexicographical_compare() for how the determination is made.
2260 */
be75205b 2261Index: libstdc++-v3/include/bits/stl_vector.h
7b762fbe 2262===================================================================
be75205b
PS
2263--- libstdc++-v3/include/bits/stl_vector.h (.../tags/gcc_4_7_0_release) (wersja 187906)
2264+++ libstdc++-v3/include/bits/stl_vector.h (.../branches/gcc-4_7-branch) (wersja 187906)
2265@@ -419,36 +419,18 @@
2266 * @brief %Vector move assignment operator.
2267 * @param __x A %vector of identical element and allocator types.
2268 *
2269- * The contents of @a __x are moved into this %vector (without copying).
2270+ * The contents of @a __x are moved into this %vector (without copying,
2271+ * if the allocators permit it).
2272 * @a __x is a valid, but unspecified %vector.
2273 */
2274 vector&
2275 operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move())
2276 {
2277- if (_Alloc_traits::_S_propagate_on_move_assign())
2278- {
2279- // We're moving the rvalue's allocator so can move the data too.
2280- const vector __tmp(std::move(*this)); // discard existing data
2281- this->_M_impl._M_swap_data(__x._M_impl);
2282- std::__alloc_on_move(_M_get_Tp_allocator(),
2283- __x._M_get_Tp_allocator());
2284- }
2285- else if (_Alloc_traits::_S_always_equal()
2286- || __x._M_get_Tp_allocator() == this->_M_get_Tp_allocator())
2287- {
2288- // The rvalue's allocator can free our storage and vice versa,
2289- // so can swap the data storage after destroying our contents.
2290- this->clear();
2291- this->_M_impl._M_swap_data(__x._M_impl);
2292- }
2293- else
2294- {
2295- // The rvalue's allocator cannot be moved, or is not equal,
2296- // so we need to individually move each element.
2297- this->assign(std::__make_move_if_noexcept_iterator(__x.begin()),
2298- std::__make_move_if_noexcept_iterator(__x.end()));
2299- __x.clear();
2300- }
2301+ constexpr bool __move_storage =
2302+ _Alloc_traits::_S_propagate_on_move_assign()
2303+ || _Alloc_traits::_S_always_equal();
2304+ _M_move_assign(std::move(__x),
2305+ integral_constant<bool, __move_storage>());
2306 return *this;
2307 }
2308
2309@@ -1337,6 +1319,39 @@
2310 std::_Destroy(__pos, this->_M_impl._M_finish, _M_get_Tp_allocator());
2311 this->_M_impl._M_finish = __pos;
2312 }
ad222a6b 2313+
be75205b
PS
2314+#ifdef __GXX_EXPERIMENTAL_CXX0X__
2315+ private:
2316+ // Constant-time move assignment when source object's memory can be
2317+ // moved, either because the source's allocator will move too
2318+ // or because the allocators are equal.
2319+ void
2320+ _M_move_assign(vector&& __x, std::true_type) noexcept
2321+ {
2322+ const vector __tmp(std::move(*this));
2323+ this->_M_impl._M_swap_data(__x._M_impl);
2324+ if (_Alloc_traits::_S_propagate_on_move_assign())
2325+ std::__alloc_on_move(_M_get_Tp_allocator(),
2326+ __x._M_get_Tp_allocator());
2327+ }
ad222a6b 2328+
be75205b
PS
2329+ // Do move assignment when it might not be possible to move source
2330+ // object's memory, resulting in a linear-time operation.
2331+ void
2332+ _M_move_assign(vector&& __x, std::false_type)
2333+ {
2334+ if (__x._M_get_Tp_allocator() == this->_M_get_Tp_allocator())
2335+ _M_move_assign(std::move(__x), std::true_type());
2336+ else
2337+ {
2338+ // The rvalue's allocator cannot be moved and is not equal,
2339+ // so we need to individually move each element.
2340+ this->assign(std::__make_move_if_noexcept_iterator(__x.begin()),
2341+ std::__make_move_if_noexcept_iterator(__x.end()));
2342+ __x.clear();
2343+ }
2344+ }
2345+#endif
2346 };
2347
2348
2349Index: libstdc++-v3/include/bits/ptr_traits.h
2350===================================================================
2351--- libstdc++-v3/include/bits/ptr_traits.h (.../tags/gcc_4_7_0_release) (wersja 187906)
2352+++ libstdc++-v3/include/bits/ptr_traits.h (.../branches/gcc-4_7-branch) (wersja 187906)
2353@@ -140,14 +140,8 @@
2354 /// Type used to represent the difference between two pointers
2355 typedef typename __ptrtr_diff_type<_Ptr>::__type difference_type;
2356
2357- private:
2358 template<typename _Up>
2359 using rebind = typename __ptrtr_rebind<_Ptr, _Up>::__type;
2360-
2361- // allocator_traits needs to use __rebind
2362- template<typename> friend struct allocator_traits;
2363- template<typename> friend struct pointer_traits;
2364- template<typename, typename> friend class __ptrtr_rebind_helper2;
2365 };
2366
2367 /**
2368Index: libstdc++-v3/include/bits/stl_algo.h
2369===================================================================
2370--- libstdc++-v3/include/bits/stl_algo.h (.../tags/gcc_4_7_0_release) (wersja 187906)
2371+++ libstdc++-v3/include/bits/stl_algo.h (.../branches/gcc-4_7-branch) (wersja 187906)
2372@@ -244,7 +244,6 @@
2373 }
2374 }
2375
2376-#ifdef __GXX_EXPERIMENTAL_CXX0X__
2377 /// This is an overload used by find_if_not() for the Input Iterator case.
2378 template<typename _InputIterator, typename _Predicate>
2379 inline _InputIterator
2380@@ -303,8 +302,30 @@
2381 return __last;
2382 }
2383 }
2384-#endif
2385
2386+ /// Provided for stable_partition to use.
2387+ template<typename _InputIterator, typename _Predicate>
2388+ inline _InputIterator
2389+ __find_if_not(_InputIterator __first, _InputIterator __last,
2390+ _Predicate __pred)
2391+ {
2392+ return std::__find_if_not(__first, __last, __pred,
2393+ std::__iterator_category(__first));
2394+ }
2395+
2396+ /// Like find_if_not(), but uses and updates a count of the
2397+ /// remaining range length instead of comparing against an end
2398+ /// iterator.
2399+ template<typename _InputIterator, typename _Predicate, typename _Distance>
2400+ _InputIterator
2401+ __find_if_not_n(_InputIterator __first, _Distance& __len, _Predicate __pred)
2402+ {
2403+ for (; __len; --__len, ++__first)
2404+ if (!bool(__pred(*__first)))
2405+ break;
2406+ return __first;
2407+ }
2408+
2409 // set_difference
2410 // set_intersection
2411 // set_symmetric_difference
2412@@ -789,8 +810,7 @@
2413 __glibcxx_function_requires(_UnaryPredicateConcept<_Predicate,
2414 typename iterator_traits<_InputIterator>::value_type>)
2415 __glibcxx_requires_valid_range(__first, __last);
2416- return std::__find_if_not(__first, __last, __pred,
2417- std::__iterator_category(__first));
2418+ return std::__find_if_not(__first, __last, __pred);
2419 }
2420
2421 /**
2422@@ -1784,30 +1804,39 @@
2423 // partition
2424
2425 /// This is a helper function...
2426+ /// Requires __len != 0 and !__pred(*__first),
2427+ /// same as __stable_partition_adaptive.
2428 template<typename _ForwardIterator, typename _Predicate, typename _Distance>
2429 _ForwardIterator
2430 __inplace_stable_partition(_ForwardIterator __first,
2431- _ForwardIterator __last,
2432 _Predicate __pred, _Distance __len)
2433 {
2434 if (__len == 1)
2435- return __pred(*__first) ? __last : __first;
2436+ return __first;
2437 _ForwardIterator __middle = __first;
2438 std::advance(__middle, __len / 2);
2439- _ForwardIterator __begin = std::__inplace_stable_partition(__first,
2440- __middle,
2441- __pred,
2442- __len / 2);
2443- _ForwardIterator __end = std::__inplace_stable_partition(__middle, __last,
2444- __pred,
2445- __len
2446- - __len / 2);
2447- std::rotate(__begin, __middle, __end);
2448- std::advance(__begin, std::distance(__middle, __end));
2449- return __begin;
2450+ _ForwardIterator __left_split =
2451+ std::__inplace_stable_partition(__first, __pred, __len / 2);
2452+ // Advance past true-predicate values to satisfy this
2453+ // function's preconditions.
2454+ _Distance __right_len = __len - __len / 2;
2455+ _ForwardIterator __right_split =
2456+ std::__find_if_not_n(__middle, __right_len, __pred);
2457+ if (__right_len)
2458+ __right_split = std::__inplace_stable_partition(__middle,
2459+ __pred,
2460+ __right_len);
2461+ std::rotate(__left_split, __middle, __right_split);
2462+ std::advance(__left_split, std::distance(__middle, __right_split));
2463+ return __left_split;
2464 }
2465
2466 /// This is a helper function...
2467+ /// Requires __first != __last and !__pred(*__first)
2468+ /// and __len == distance(__first, __last).
2469+ ///
2470+ /// !__pred(*__first) allows us to guarantee that we don't
2471+ /// move-assign an element onto itself.
2472 template<typename _ForwardIterator, typename _Pointer, typename _Predicate,
2473 typename _Distance>
2474 _ForwardIterator
2475@@ -1821,6 +1850,12 @@
2476 {
2477 _ForwardIterator __result1 = __first;
2478 _Pointer __result2 = __buffer;
2479+ // The precondition guarantees that !__pred(*__first), so
2480+ // move that element to the buffer before starting the loop.
2481+ // This ensures that we only call __pred once per element.
2482+ *__result2 = _GLIBCXX_MOVE(*__first);
2483+ ++__result2;
2484+ ++__first;
2485 for (; __first != __last; ++__first)
2486 if (__pred(*__first))
2487 {
2488@@ -1839,17 +1874,23 @@
2489 {
2490 _ForwardIterator __middle = __first;
2491 std::advance(__middle, __len / 2);
2492- _ForwardIterator __begin =
2493+ _ForwardIterator __left_split =
2494 std::__stable_partition_adaptive(__first, __middle, __pred,
2495 __len / 2, __buffer,
2496 __buffer_size);
2497- _ForwardIterator __end =
2498- std::__stable_partition_adaptive(__middle, __last, __pred,
2499- __len - __len / 2,
2500- __buffer, __buffer_size);
2501- std::rotate(__begin, __middle, __end);
2502- std::advance(__begin, std::distance(__middle, __end));
2503- return __begin;
2504+ // Advance past true-predicate values to satisfy this
2505+ // function's preconditions.
2506+ _Distance __right_len = __len - __len / 2;
2507+ _ForwardIterator __right_split =
2508+ std::__find_if_not_n(__middle, __right_len, __pred);
2509+ if (__right_len)
2510+ __right_split =
2511+ std::__stable_partition_adaptive(__right_split, __last, __pred,
2512+ __right_len,
2513+ __buffer, __buffer_size);
2514+ std::rotate(__left_split, __middle, __right_split);
2515+ std::advance(__left_split, std::distance(__middle, __right_split));
2516+ return __left_split;
2517 }
2518 }
2519
2520@@ -1882,6 +1923,8 @@
2521 typename iterator_traits<_ForwardIterator>::value_type>)
2522 __glibcxx_requires_valid_range(__first, __last);
2523
2524+ __first = std::__find_if_not(__first, __last, __pred);
2525+
2526 if (__first == __last)
2527 return __first;
2528 else
2529@@ -1901,7 +1944,7 @@
2530 _DistanceType(__buf.size()));
2531 else
2532 return
2533- std::__inplace_stable_partition(__first, __last, __pred,
2534+ std::__inplace_stable_partition(__first, __pred,
2535 _DistanceType(__buf.requested_size()));
2536 }
2537 }
2538Index: libstdc++-v3/include/bits/forward_list.tcc
2539===================================================================
2540--- libstdc++-v3/include/bits/forward_list.tcc (.../tags/gcc_4_7_0_release) (wersja 187906)
2541+++ libstdc++-v3/include/bits/forward_list.tcc (.../branches/gcc-4_7-branch) (wersja 187906)
2542@@ -225,22 +225,37 @@
2543 template<typename _Tp, typename _Alloc>
2544 typename forward_list<_Tp, _Alloc>::iterator
2545 forward_list<_Tp, _Alloc>::
2546- _M_splice_after(const_iterator __pos, forward_list&& __list)
2547+ _M_splice_after(const_iterator __pos,
2548+ const_iterator __before, const_iterator __last)
2549 {
2550 _Node_base* __tmp = const_cast<_Node_base*>(__pos._M_node);
2551- iterator __before = __list.before_begin();
2552- return iterator(__tmp->_M_transfer_after(__before._M_node));
2553+ _Node_base* __b = const_cast<_Node_base*>(__before._M_node);
2554+ _Node_base* __end = __b;
2555+
2556+ while (__end && __end->_M_next != __last._M_node)
2557+ __end = __end->_M_next;
2558+
2559+ if (__b != __end)
2560+ return iterator(__tmp->_M_transfer_after(__b, __end));
2561+ else
2562+ return iterator(__tmp);
2563 }
2564
2565 template<typename _Tp, typename _Alloc>
2566 void
2567 forward_list<_Tp, _Alloc>::
2568 splice_after(const_iterator __pos, forward_list&&,
2569- const_iterator __before, const_iterator __last)
2570+ const_iterator __i)
2571 {
2572+ const_iterator __j = __i;
2573+ ++__j;
2574+
2575+ if (__pos == __i || __pos == __j)
2576+ return;
2577+
2578 _Node_base* __tmp = const_cast<_Node_base*>(__pos._M_node);
2579- __tmp->_M_transfer_after(const_cast<_Node_base*>(__before._M_node),
2580- const_cast<_Node_base*>(__last._M_node));
2581+ __tmp->_M_transfer_after(const_cast<_Node_base*>(__i._M_node),
2582+ const_cast<_Node_base*>(__j._M_node));
2583 }
2584
2585 template<typename _Tp, typename _Alloc>
2586@@ -251,7 +266,7 @@
2587 if (__n)
2588 {
2589 forward_list __tmp(__n, __val, get_allocator());
2590- return _M_splice_after(__pos, std::move(__tmp));
2591+ return _M_splice_after(__pos, __tmp.before_begin(), __tmp.end());
2592 }
2593 else
2594 return iterator(const_cast<_Node_base*>(__pos._M_node));
2595@@ -266,26 +281,12 @@
2596 {
2597 forward_list __tmp(__first, __last, get_allocator());
2598 if (!__tmp.empty())
2599- return _M_splice_after(__pos, std::move(__tmp));
2600+ return _M_splice_after(__pos, __tmp.before_begin(), __tmp.end());
2601 else
2602 return iterator(const_cast<_Node_base*>(__pos._M_node));
2603 }
2604
2605 template<typename _Tp, typename _Alloc>
2606- typename forward_list<_Tp, _Alloc>::iterator
2607- forward_list<_Tp, _Alloc>::
2608- insert_after(const_iterator __pos, std::initializer_list<_Tp> __il)
2609- {
2610- if (__il.size())
2611- {
2612- forward_list __tmp(__il, get_allocator());
2613- return _M_splice_after(__pos, std::move(__tmp));
2614- }
2615- else
2616- return iterator(const_cast<_Node_base*>(__pos._M_node));
2617- }
2618-
2619- template<typename _Tp, typename _Alloc>
2620 void
2621 forward_list<_Tp, _Alloc>::
2622 remove(const _Tp& __val)
2623Index: libstdc++-v3/include/bits/shared_ptr_base.h
2624===================================================================
2625--- libstdc++-v3/include/bits/shared_ptr_base.h (.../tags/gcc_4_7_0_release) (wersja 187906)
2626+++ libstdc++-v3/include/bits/shared_ptr_base.h (.../branches/gcc-4_7-branch) (wersja 187906)
2627@@ -343,6 +343,8 @@
2628 _Sp_counted_deleter(_Ptr __p, _Deleter __d, const _Alloc& __a)
2629 : _M_ptr(__p), _M_del(__d, __a) { }
2630
2631+ ~_Sp_counted_deleter() noexcept { }
2632+
2633 virtual void
2634 _M_dispose() noexcept
2635 { _M_del._M_del(_M_ptr); }
2636@@ -401,6 +403,8 @@
2637 std::forward<_Args>(__args)...); // might throw
2638 }
2639
2640+ ~_Sp_counted_ptr_inplace() noexcept { }
2641+
2642 virtual void
2643 _M_dispose() noexcept
2644 { allocator_traits<_Alloc>::destroy(_M_impl, _M_impl._M_ptr); }
2645Index: libstdc++-v3/include/bits/deque.tcc
2646===================================================================
2647--- libstdc++-v3/include/bits/deque.tcc (.../tags/gcc_4_7_0_release) (wersja 187906)
2648+++ libstdc++-v3/include/bits/deque.tcc (.../branches/gcc-4_7-branch) (wersja 187906)
2649@@ -1,7 +1,7 @@
2650 // Deque implementation (out of line) -*- C++ -*-
2651
2652 // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
2653-// 2009, 2010, 2011
2654+// 2009, 2010, 2011, 2012
2655 // Free Software Foundation, Inc.
2656 //
2657 // This file is part of the GNU ISO C++ Library. This library is free
2658@@ -175,12 +175,12 @@
2659 {
2660 if (__position._M_cur == this->_M_impl._M_start._M_cur)
2661 {
2662- push_front(std::forward<_Args>(__args)...);
2663+ emplace_front(std::forward<_Args>(__args)...);
2664 return this->_M_impl._M_start;
2665 }
2666 else if (__position._M_cur == this->_M_impl._M_finish._M_cur)
2667 {
2668- push_back(std::forward<_Args>(__args)...);
2669+ emplace_back(std::forward<_Args>(__args)...);
2670 iterator __tmp = this->_M_impl._M_finish;
2671 --__tmp;
2672 return __tmp;
2673Index: libstdc++-v3/include/bits/random.tcc
2674===================================================================
2675--- libstdc++-v3/include/bits/random.tcc (.../tags/gcc_4_7_0_release) (wersja 187906)
2676+++ libstdc++-v3/include/bits/random.tcc (.../branches/gcc-4_7-branch) (wersja 187906)
2677@@ -730,40 +730,65 @@
2678 independent_bits_engine<_RandomNumberEngine, __w, _UIntType>::
2679 operator()()
2680 {
2681- const long double __r = static_cast<long double>(_M_b.max())
2682- - static_cast<long double>(_M_b.min()) + 1.0L;
2683- const result_type __m = std::log(__r) / std::log(2.0L);
2684- result_type __n, __n0, __y0, __y1, __s0, __s1;
2685+ typedef typename _RandomNumberEngine::result_type _Eresult_type;
2686+ const _Eresult_type __r
2687+ = (_M_b.max() - _M_b.min() < std::numeric_limits<_Eresult_type>::max()
2688+ ? _M_b.max() - _M_b.min() + 1 : 0);
2689+ const unsigned __edig = std::numeric_limits<_Eresult_type>::digits;
2690+ const unsigned __m = __r ? std::__lg(__r) : __edig;
2691+
2692+ typedef typename std::common_type<_Eresult_type, result_type>::type
2693+ __ctype;
2694+ const unsigned __cdig = std::numeric_limits<__ctype>::digits;
2695+
2696+ unsigned __n, __n0;
2697+ __ctype __s0, __s1, __y0, __y1;
2698+
2699 for (size_t __i = 0; __i < 2; ++__i)
2700 {
2701 __n = (__w + __m - 1) / __m + __i;
2702 __n0 = __n - __w % __n;
2703- const result_type __w0 = __w / __n;
2704- const result_type __w1 = __w0 + 1;
2705- __s0 = result_type(1) << __w0;
2706- __s1 = result_type(1) << __w1;
2707- __y0 = __s0 * (__r / __s0);
2708- __y1 = __s1 * (__r / __s1);
2709- if (__r - __y0 <= __y0 / __n)
2710+ const unsigned __w0 = __w / __n; // __w0 <= __m
2711+
2712+ __s0 = 0;
2713+ __s1 = 0;
2714+ if (__w0 < __cdig)
2715+ {
2716+ __s0 = __ctype(1) << __w0;
2717+ __s1 = __s0 << 1;
2718+ }
2719+
2720+ __y0 = 0;
2721+ __y1 = 0;
2722+ if (__r)
2723+ {
2724+ __y0 = __s0 * (__r / __s0);
2725+ if (__s1)
2726+ __y1 = __s1 * (__r / __s1);
2727+
2728+ if (__r - __y0 <= __y0 / __n)
2729+ break;
2730+ }
2731+ else
2732 break;
2733 }
2734
2735 result_type __sum = 0;
2736 for (size_t __k = 0; __k < __n0; ++__k)
2737 {
2738- result_type __u;
2739+ __ctype __u;
2740 do
2741 __u = _M_b() - _M_b.min();
2742- while (__u >= __y0);
2743- __sum = __s0 * __sum + __u % __s0;
2744+ while (__y0 && __u >= __y0);
2745+ __sum = __s0 * __sum + (__s0 ? __u % __s0 : __u);
2746 }
2747 for (size_t __k = __n0; __k < __n; ++__k)
2748 {
2749- result_type __u;
2750+ __ctype __u;
2751 do
2752 __u = _M_b() - _M_b.min();
2753- while (__u >= __y1);
2754- __sum = __s1 * __sum + __u % __s1;
2755+ while (__y1 && __u >= __y1);
2756+ __sum = __s1 * __sum + (__s1 ? __u % __s1 : __u);
2757 }
2758 return __sum;
2759 }
2760@@ -840,12 +865,11 @@
2761 operator()(_UniformRandomNumberGenerator& __urng,
2762 const param_type& __param)
2763 {
2764- typedef typename std::make_unsigned<typename
2765- _UniformRandomNumberGenerator::result_type>::type __urngtype;
2766+ typedef typename _UniformRandomNumberGenerator::result_type
2767+ _Gresult_type;
2768 typedef typename std::make_unsigned<result_type>::type __utype;
2769- typedef typename std::conditional<(sizeof(__urngtype)
2770- > sizeof(__utype)),
2771- __urngtype, __utype>::type __uctype;
2772+ typedef typename std::common_type<_Gresult_type, __utype>::type
2773+ __uctype;
2774
2775 const __uctype __urngmin = __urng.min();
2776 const __uctype __urngmax = __urng.max();
2777@@ -2765,7 +2789,7 @@
2778 : (__n - 1) / 2;
2779 const size_t __p = (__n - __t) / 2;
2780 const size_t __q = __p + __t;
2781- const size_t __m = std::max(__s + 1, __n);
2782+ const size_t __m = std::max(size_t(__s + 1), __n);
2783
2784 for (size_t __k = 0; __k < __m; ++__k)
2785 {
2786Index: libstdc++-v3/include/bits/stl_function.h
2787===================================================================
2788--- libstdc++-v3/include/bits/stl_function.h (.../tags/gcc_4_7_0_release) (wersja 187906)
2789+++ libstdc++-v3/include/bits/stl_function.h (.../branches/gcc-4_7-branch) (wersja 187906)
2790@@ -1,6 +1,7 @@
2791 // Functor implementations -*- C++ -*-
2792
2793-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011
2794+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
2795+// 2011, 2012
2796 // Free Software Foundation, Inc.
2797 //
2798 // This file is part of the GNU ISO C++ Library. This library is free
2799@@ -471,7 +472,12 @@
2800 /** @} */
2801
2802 template<typename _Tp>
2803- struct _Identity : public unary_function<_Tp,_Tp>
2804+ struct _Identity
2805+#ifndef __GXX_EXPERIMENTAL_CXX0X__
2806+ // unary_function itself is deprecated in C++11 and deriving from
2807+ // it can even be a nuisance (see PR 52942).
2808+ : public unary_function<_Tp,_Tp>
2809+#endif
2810 {
2811 _Tp&
2812 operator()(_Tp& __x) const
2813@@ -483,8 +489,10 @@
2814 };
2815
2816 template<typename _Pair>
2817- struct _Select1st : public unary_function<_Pair,
2818- typename _Pair::first_type>
2819+ struct _Select1st
2820+#ifndef __GXX_EXPERIMENTAL_CXX0X__
2821+ : public unary_function<_Pair, typename _Pair::first_type>
2822+#endif
2823 {
2824 typename _Pair::first_type&
2825 operator()(_Pair& __x) const
2826@@ -508,8 +516,10 @@
2827 };
2828
2829 template<typename _Pair>
2830- struct _Select2nd : public unary_function<_Pair,
2831- typename _Pair::second_type>
2832+ struct _Select2nd
2833+#ifndef __GXX_EXPERIMENTAL_CXX0X__
2834+ : public unary_function<_Pair, typename _Pair::second_type>
2835+#endif
2836 {
2837 typename _Pair::second_type&
2838 operator()(_Pair& __x) const
2839Index: libstdc++-v3/include/Makefile.am
2840===================================================================
2841--- libstdc++-v3/include/Makefile.am (.../tags/gcc_4_7_0_release) (wersja 187906)
2842+++ libstdc++-v3/include/Makefile.am (.../branches/gcc-4_7-branch) (wersja 187906)
2843@@ -1,7 +1,7 @@
2844 ## Makefile for the include subdirectory of the GNU C++ Standard library.
2845 ##
2846 ## Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
2847-## 2011
2848+## 2011, 2012
2849 ## Free Software Foundation, Inc.
2850 ##
2851 ## This file is part of the libstdc++ version 3 distribution.
2852@@ -1105,7 +1105,7 @@
2853 sed -e "s,define __GLIBCXX__,define __GLIBCXX__ $$date," \
2854 -e "s,define _GLIBCXX_INLINE_VERSION, define _GLIBCXX_INLINE_VERSION $$ns_version," \
2855 -e "s,define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY, define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY $$visibility," \
2856- -e "s,define _GLIBCXX_EXTERN_TEMPLATE, define _GLIBCXX_EXTERN_TEMPLATE $$externtemplate," \
2857+ -e "s,define _GLIBCXX_EXTERN_TEMPLATE$$, define _GLIBCXX_EXTERN_TEMPLATE $$externtemplate," \
2858 -e "$$ldbl_compat" \
2859 < ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
2860 sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \
2861Index: libstdc++-v3/ChangeLog
2862===================================================================
2863--- libstdc++-v3/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187906)
2864+++ libstdc++-v3/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187906)
2865@@ -1,3 +1,279 @@
2866+2012-05-10 DJ Delorie <dj@redhat.com>
2867+
2868+ * include/bits/random.tcc (seed_seq::generate): Cast max()
2869+ operands to size_t to ensure a template match.
2870+ * include/std/bitset (_M_copy_from_ptr): Cast min() operands to
2871+ size_t to ensure a template match.
2872+
2873+2012-05-02 Paolo Carlini <paolo.carlini@oracle.com>
2874+
2875+ PR libstdc++/53193
2876+ * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
2877+ dg-error line number.
2878+
2879+2012-05-01 François Dumont <fdumont@gcc.gnu.org>
2880+
2881+ PR libstdc++/53115
2882+ * include/bits/hashtable.h
2883+ (_Hashtable<>::_M_rehash_aux(size_type, false_type)): Fix buckets
2884+ after insertion of several equivalent elements.
2885+ * testsuite/23_containers/unordered_multiset/insert/53115.cc: New.
2886+ * testsuite/23_containers/unordered_multimap/insert/53115.cc: New.
2887+
2888+2012-04-30 Andreas Tobler <andreast@fgznet.ch>
2889+
2890+ Backport from mainline
2891+ 2012-03-21 Andreas Tobler <andreast@fgznet.ch>
2892+
2893+ * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
2894+ Skip this test on powerpc64-*-freebsd*.
2895+
2896+2012-04-25 Jonathan Wakely <jwakely.gcc@gmail.com>
2897+
2898+ * include/std/scoped_allocator (scoped_allocator::__outermost): Do
2899+ not pass non-POD to varargs function.
2900+ * testsuite/20_util/scoped_allocator/1.cc: Fix test.
2901+
2902+2012-04-23 Chris Jefferson <chris@bubblescope.net>
2903+
2904+ PR testsuite/53046
2905+ * testsuite/25_algorithms/stable_partition/mem_check.cc: Fix size
2906+ of array A.
2907+ * testsuite/25_algorithms/stable_sort/mem_check.cc: Likewise.
2908+
2909+2012-04-22 Paolo Carlini <paolo.carlini@oracle.com>
2910+
2911+ PR libstdc++/53067
2912+ * include/bits/hashtable_policy.h: Change inheritances to public.
2913+ * testsuite/23_containers/unordered_map/requirements/53067.cc: New.
2914+ * testsuite/23_containers/unordered_set/requirements/53067.cc: Likewise.
2915+
2916+2012-04-22 Jonathan Wakely <jwakely.gcc@gmail.com>
2917+
2918+ PR libstdc++/53027
2919+ * include/bits/ptr_traits.h (pointer_traits::rebind): Make public.
2920+ * testsuite/20_util/pointer_traits/requirements/typedefs.cc: Check
2921+ rebind works.
2922+
2923+2012-04-21 Alan Modra <amodra@gmail.com>
2924+
2925+ PR libstdc++/52839
2926+ * acinclude.m4 (_GLIBCXX_ATOMIC_BUILTINS): Do not depend on
2927+ glibcxx_cv_atomic_long_long.
2928+ * configure: Regenerate.
2929+
2930+2012-04-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2931+
2932+ PR bootstrap/52840
2933+ * src/Makefile.am (build-debug): Do not adjust vpath dir, remove
2934+ Makefile.tmp
2935+ * src/Makefile.in: Adjust as per above.
2936+
2937+2012-04-16 Benjamin Kosnik <bkoz@redhat.com>
2938+
2939+ PR libstdc++/52689
2940+ * libsupc++/Makefile.am (LTCXXCOMPILE, CXXLINK): Tweak.
2941+ * libsupc++/Makefile.in: Regenerated.
2942+ * src/Makefile.am (LTCXXCOMPILE, CXXLINK): Tweak.
2943+ (libstdc___la_SOURCES): Add in compatiblity files, with content
2944+ that varies with -DPIC.
2945+ * src/Makefile.in: Regenerated.
2946+ * src/c++11/Makefile.am (LTCXXCOMPILE, CXXLINK): Tweak.
2947+ * src/c++11/Makefile.in: Regenerated.
2948+ * src/c++11/compatibility-atomic-c++0x.cc: Guard with PIC.
2949+ * src/c++11/compatibility-c++0x.cc: Same.
2950+ * src/c++11/future.cc: Consolidate compatibility bits into..
2951+ * src/c++11/mutex.cc: Consolidate compatibility bits into..
2952+ * src/c++11/compatibility-thread-cxx0x.cc: ...here. New.
2953+ * src/c++98/Makefile.am (LTCXXCOMPILE, CXXLINK): Tweak.
2954+ * src/c++98/Makefile.in: Regenerated.
2955+ * src/c++98/compatibility-list-2.cc: Guard with PIC.
2956+ * src/c++98/compatibility.cc: Tweak comments.
2957+
2958+2012-04-16 Benjamin Kosnik <bkoz@redhat.com>
2959+
2960+ * include/ext/pb_ds/detail/pat_trie_/
2961+ constructors_destructor_fn_imps.hpp: Increment after recursion.
2962+ * include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp: Convert
2963+ node_type markup from brief.
2964+
2965+2012-04-14 Paolo Carlini <paolo.carlini@oracle.com>
2966+
2967+ PR libstdc++/52699
2968+ * include/bits/random.tcc (independent_bits_engine<>::operator()())
2969+ Avoid various overflows; use common_type on result_type and
2970+ _RandomNumberEngine::result_type; avoid floating point computations;
2971+ other smaller tweaks.
2972+
2973+ * include/bits/random.tcc (uniform_int_distribution<>::operator())
2974+ Use common_type; assume _UniformRandomNumberGenerator::result_type
2975+ unsigned; tidy.
2976+
2977+ * include/bits/stl_algobase.h (__lg(unsigned), __lg(unsigned long),
2978+ __lg(unsigned long long)): Add.
2979+
2980+2012-04-13 Paolo Carlini <paolo.carlini@oracle.com>
2981+
2982+ * include/debug/safe_iterator.h (_BeforeBeginHelper<>::
2983+ _S_Is_Beginnest): Add.
2984+ * include/debug/forward_list (_BeforeBeginHelper<>::
2985+ _S_Is_Beginnest): Likewise.
2986+ (_Safe_iterator<>::_M_is_beginnest): Add.
2987+ * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range):
2988+ Use the latter.
2989+ * testsuite/23_containers/forward_list/debug/splice_after.cc:
2990+ Add test.
2991+
2992+2012-04-12 Paolo Carlini <paolo.carlini@oracle.com>
2993+
2994+ * include/bits/forward_list.h (splice_after(const_iterator,
2995+ forward_list&), splice_after(const_iterator, forward_list&,
2996+ consst_iterator), splice_after(const_iterator, forward_list&,
2997+ const_iterator, const_iterator), merge(forward_list&),
2998+ merge(forward_list&, _Comp)): Add per C++11 as published (and
2999+ LWG 1310).
3000+ * include/debug/forward_list: Adjust.
3001+
3002+ * include/bits/forward_list.h (splice_after(const_iterator,
3003+ forward_list&&, const_iterator)): Only declare.
3004+ (_M_transfer_after): Remove.
3005+ (_M_splice_after(const_iterator, forward_list&&)): Change signature.
3006+ (splice_after(const_iterator, forward_list&&, const_iterator,
3007+ const_iterator)): Use the latter.
3008+ * include/bits/forward_list.tcc (splice_after(const_iterator,
3009+ forward_list&&, const_iterator)): Define here.
3010+ (_M_splice_after): Define, use throughout.
3011+
3012+ * include/bits/forward_list.h (insert_after(const_iterator,
3013+ std::initializer_list<_Tp>)): Forward to insert_after(const_iterator,
3014+ _InputIterator, _InputIterator).
3015+ * include/bits/forward_list.tcc: Remove definition.
3016+
3017+ * testsuite/23_containers/forward_list/modifiers/6.cc: New.
3018+ * testsuite/23_containers/forward_list/operations/1.cc: Adjust.
3019+
3020+ * testsuite/23_containers/forward_list/requirements/dr438/
3021+ assign_neg.cc: Adjust dg-error line number.
3022+ * testsuite/23_containers/forward_list/requirements/dr438/
3023+ insert_neg.cc: Likewise.
3024+ * testsuite/23_containers/forward_list/requirements/dr438/
3025+ constructor_1_neg.cc: Likewise.
3026+ * testsuite/23_containers/forward_list/requirements/dr438/
3027+ constructor_2_neg.cc: Likewise.
3028+
3029+2012-04-12 Jeffrey Yasskin <jyasskin@google.com>
3030+
3031+ PR libstdc++/52822
3032+ * include/bits/stl_algo.h (__find_if_not): Expose in C++98 mode.
3033+ (__find_if_not_n): Like __find_if_not, but works on and updates a
3034+ counted range instead of a bounded range.
3035+ (stable_partition): Guarantee !__pred(*__first) in call to
3036+ __stable_partition_adaptive() or __inplace_stable_partition().
3037+ (__stable_partition_adaptive): Use new precondition to avoid
3038+ moving/copying objects onto themselves. Guarantee new
3039+ precondition to recursive calls.
3040+ (__inplace_stable_partition): Use new precondition to simplify
3041+ base case, remove __last parameter. Guarantee new precondition to
3042+ recursive calls.
3043+ * testsuite/25_algorithms/stable_partition/moveable.cc (test02):
3044+ Test a sequence that starts with a value matching the predicate.
3045+ * testsuite/25_algorithms/stable_partition/pr52822.cc: Test
3046+ vectors, which have a destructive self-move-assignment.
3047+
3048+2012-04-12 Paolo Carlini <paolo.carlini@oracle.com>
3049+
3050+ PR libstdc++/52942
3051+ * include/bits/stl_function.h (_Identity, _Select1st, _Select2nd):
3052+ In C++11 mode do not derive from std::unary_function.
3053+ * include/ext/functional (identity, select1st, select2nd): Adjust.
3054+ * testsuite/23_containers/unordered_map/requirements/52942.cc: New.
3055+ * testsuite/23_containers/unordered_set/requirements/52942.cc: Likewise.
3056+
3057+2012-04-11 Jonathan Wakely <jwakely.gcc@gmail.com>
3058+
3059+ PR libstdc++/52924
3060+ * include/bits/shared_ptr_base.h (_Sp_counted_deleter): Add
3061+ user-defined destructor.
3062+ (_Sp_counted_inplace): Likewise.
3063+ * testsuite/20_util/shared_ptr/cons/52924.cc: New.
3064+ * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error
3065+ line numbers.
3066+
3067+2012-04-11 Jonathan Wakely <jwakely.gcc@gmail.com>
3068+
3069+ * testsuite/performance/30_threads/future/polling.cc: Adjust.
3070+
3071+2012-04-11 Jonathan Wakely <jwakely.gcc@gmail.com>
3072+
3073+ PR libstdc++/52591
3074+ * include/bits/stl_vector.h (vector::operator=(vector&&)): Dispatch
3075+ to _M_move_assign depending on whether allocator is moved.
3076+ (vector::_M_move_assign): Add overloaded functions.
3077+ * testsuite/23_containers/vector/52591.cc: New.
3078+ * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
3079+ Adjust dg-error line number.
3080+ * testsuite/23_containers/vector/requirements/dr438/
3081+ constructor_1_neg.cc:
3082+ Likewise.
3083+ * testsuite/23_containers/vector/requirements/dr438/
3084+ constructor_2_neg.cc:
3085+ Likewise.
3086+ * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
3087+ Likewise.
3088+
3089+2012-04-09 François Dumont <fdumont@gcc.gnu.org>
3090+
3091+ PR libstdc++/52476
3092+ * include/bits/hashtable.h (_Hashtable<>::_M_rehash_aux): Add.
3093+ (_Hashtable<>::_M_rehash): Use the latter.
3094+ * testsuite/23_containers/unordered_multimap/insert/52476.cc: New.
3095+ * testsuite/23_containers/unordered_multiset/insert/52476.cc: New.
3096+
3097+2012-04-09 Terry Guo <terry.guo@arm.com>
3098+
3099+ Backport from mainline
3100+ 2012-03-28 Terry Guo <terry.guo@arm.com>
3101+
3102+ * testsuite/Makefile.am (TEST_GCC_EXEC_PREFIX): New.
3103+ * testsuite/Makefile.in: Regenerated.
3104+
3105+2012-03-30 Jeffrey Yasskin <jyasskin@gcc.gnu.org>
3106+ Paolo Carlini <paolo.carlini@oracle.com>
3107+
3108+ PR libstdc++/52799
3109+ * include/bits/deque.tcc (emplace): Fix thinko, replace push_front
3110+ -> emplace_front, and likewise for *_back.
3111+ * testsuite/23_containers/deque/modifiers/emplace/52799.cc: New.
3112+ * testsuite/23_containers/list/modifiers/emplace/52799.cc: Likewise.
3113+ * testsuite/23_containers/vector/modifiers/emplace/52799.cc: Likewise.
3114+
3115+2012-03-23 David S. Miller <davem@davemloft.net>
3116+
3117+ * config/abi/post/sparc-linux-gnu/baseline_symbols.txt: Update.
3118+
3119+2012-03-23 Paolo Carlini <paolo.carlini@oracle.com>
ad222a6b
PS
3120+
3121+ * include/bits/forward_list.h: Fix comments.
3122+
3123+2012-03-23 Paweł Sikora <pawel.sikora@agmk.net>
3124+
3125+ PR libstdc++/52540
3126+ * include/Makefile.am (c++config.h): Fix sed rule to not break
3127+ the _GLIBCXX_EXTERN_TEMPLATE redefinition.
3128+ * include/Makefile.in: Regenerate.
3129+
3130+2012-03-22 Jonathan Wakely <jwakely.gcc@gmail.com>
3131+
3132+ PR libstdc++/52433
3133+ * include/debug/safe_iterator.h (_Safe_iterator): Add move
3134+ constructor and move assignment operator.
3135+ * testsuite/23_containers/vector/debug/52433.cc: New.
3136+
b4627121
AM
3137+2012-03-22 Paolo Carlini <paolo.carlini@oracle.com>
3138+
3139+ * include/std/array (array<>::at(size_type) const): Fix version
3140+ for undefined __EXCEPTIONS.
3141+
3142 2012-03-22 Release Manager
7b762fbe 3143
b4627121 3144 * GCC 4.7.0 released.
be75205b 3145Index: libstdc++-v3/libsupc++/Makefile.in
ad222a6b 3146===================================================================
be75205b
PS
3147--- libstdc++-v3/libsupc++/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187906)
3148+++ libstdc++-v3/libsupc++/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187906)
3149@@ -344,15 +344,15 @@
3150 # 2) integrated libsupc++convenience.la that is to be a part of libstdc++.a
3151 noinst_LTLIBRARIES = libsupc++convenience.la
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 @GLIBCXX_HOSTED_TRUE@c_sources = \
3163-@GLIBCXX_HOSTED_TRUE@ cp-demangle.c
3164+@GLIBCXX_HOSTED_TRUE@ cp-demangle.c
3165
3166 sources = \
3167 array_type_info.cc \
3168@@ -404,7 +404,7 @@
3169 vmi_class_type_info.cc \
3170 vterminate.cc
3171
3172-libsupc___la_SOURCES = $(sources) $(c_sources)
3173+libsupc___la_SOURCES = $(sources) $(c_sources)
3174 libsupc__convenience_la_SOURCES = $(sources) $(c_sources)
3175
3176 # AM_CXXFLAGS needs to be in each subdirectory so that it can be
3177@@ -415,9 +415,7 @@
3178 AM_CXXFLAGS = \
3179 $(PIC_CXXFLAGS) \
3180 $(XTEMPLATE_FLAGS) \
3181- $(WARN_CXXFLAGS) \
3182- $(OPTIMIZE_CXXFLAGS) \
3183- $(CONFIG_CXXFLAGS)
3184+ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
3185
3186 AM_MAKEFLAGS = \
3187 "gxx_include_dir=$(gxx_include_dir)"
3188@@ -435,7 +433,7 @@
3189 # LTCOMPILE is copied from LTCXXCOMPILE below.
3190 LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared $(LIBTOOLFLAGS) --mode=compile \
3191 $(CC) $(DEFS) $(C_INCLUDES) $(PIC_CXXFLAGS) \
3192- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
3193+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
3194
3195
3196 # Libtool notes
3197@@ -459,9 +457,11 @@
3198 #
3199 # We have to put --tag disable-shared after --tag CXX lest things
3200 # CXX undo the affect of disable-shared.
3201-LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
3202- --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
3203- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
3204+LTCXXCOMPILE = \
3205+ $(LIBTOOL) --tag CXX --tag disable-shared \
3206+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
3207+ --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
3208+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
3209
3210 LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
3211
3212@@ -471,9 +471,11 @@
3213 # course is problematic at this point. So, we get the top-level
3214 # directory to configure libstdc++-v3 to use gcc as the C++
3215 # compilation driver.
3216-CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
3217- --mode=link $(CXX) \
3218- $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
3219+CXXLINK = \
3220+ $(LIBTOOL) --tag CXX --tag disable-shared \
3221+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
3222+ --mode=link $(CXX) \
3223+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
3224
3225
3226 # Install notes
3227Index: libstdc++-v3/libsupc++/Makefile.am
3228===================================================================
3229--- libstdc++-v3/libsupc++/Makefile.am (.../tags/gcc_4_7_0_release) (wersja 187906)
3230+++ libstdc++-v3/libsupc++/Makefile.am (.../branches/gcc-4_7-branch) (wersja 187906)
3231@@ -32,17 +32,17 @@
3232 noinst_LTLIBRARIES = libsupc++convenience.la
3233
3234 std_HEADERS = \
3235- cxxabi.h exception initializer_list new typeinfo
3236+ cxxabi.h exception initializer_list new typeinfo
3237
3238 bits_HEADERS = \
3239 atomic_lockfree_defines.h cxxabi_forced.h \
3240- exception_defines.h exception_ptr.h hash_bytes.h nested_exception.h
3241+ exception_defines.h exception_ptr.h hash_bytes.h nested_exception.h
3242
3243 headers = $(std_HEADERS) $(bits_HEADERS)
3244
3245 if GLIBCXX_HOSTED
3246 c_sources = \
3247- cp-demangle.c
3248+ cp-demangle.c
3249 endif
3250
3251 sources = \
3252@@ -95,7 +95,7 @@
3253 vmi_class_type_info.cc \
3254 vterminate.cc
3255
3256-libsupc___la_SOURCES = $(sources) $(c_sources)
3257+libsupc___la_SOURCES = $(sources) $(c_sources)
3258 libsupc__convenience_la_SOURCES = $(sources) $(c_sources)
3259
3260 # AM_CXXFLAGS needs to be in each subdirectory so that it can be
3261@@ -106,9 +106,7 @@
3262 AM_CXXFLAGS = \
3263 $(PIC_CXXFLAGS) \
3264 $(XTEMPLATE_FLAGS) \
3265- $(WARN_CXXFLAGS) \
3266- $(OPTIMIZE_CXXFLAGS) \
3267- $(CONFIG_CXXFLAGS)
3268+ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
3269
3270 AM_MAKEFLAGS = \
3271 "gxx_include_dir=$(gxx_include_dir)"
3272@@ -125,7 +123,7 @@
3273 # LTCOMPILE is copied from LTCXXCOMPILE below.
3274 LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared $(LIBTOOLFLAGS) --mode=compile \
3275 $(CC) $(DEFS) $(C_INCLUDES) $(PIC_CXXFLAGS) \
3276- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
3277+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
3278
3279 cp-demangle.c:
3280 rm -f $@
3281@@ -178,9 +176,11 @@
3282 #
3283 # We have to put --tag disable-shared after --tag CXX lest things
3284 # CXX undo the affect of disable-shared.
3285-LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
3286- --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
3287- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
3288+LTCXXCOMPILE = \
3289+ $(LIBTOOL) --tag CXX --tag disable-shared \
3290+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
3291+ --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
3292+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
3293
3294 LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
3295
3296@@ -190,11 +190,12 @@
3297 # course is problematic at this point. So, we get the top-level
3298 # directory to configure libstdc++-v3 to use gcc as the C++
3299 # compilation driver.
3300-CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \
3301- --mode=link $(CXX) \
3302- $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
3303+CXXLINK = \
3304+ $(LIBTOOL) --tag CXX --tag disable-shared \
3305+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
3306+ --mode=link $(CXX) \
3307+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
3308
3309-
3310 # Install notes
3311 # We have to have rules modified from the default to counteract SUN make
3312 # prepending each of $(*_HEADERS) with VPATH below.
3313Index: libstdc++-v3/testsuite/25_algorithms/stable_partition/mem_check.cc
3314===================================================================
3315--- libstdc++-v3/testsuite/25_algorithms/stable_partition/mem_check.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
3316+++ libstdc++-v3/testsuite/25_algorithms/stable_partition/mem_check.cc (.../branches/gcc-4_7-branch) (wersja 187906)
3317@@ -1,4 +1,4 @@
3318-// Copyright (C) 2009 Free Software Foundation, Inc.
3319+// Copyright (C) 2009, 2012 Free Software Foundation, Inc.
3320 //
3321 // This file is part of the GNU ISO C++ Library. This library is free
3322 // software; you can redistribute it and/or modify it under the
3323@@ -31,7 +31,7 @@
3324 typedef test_container<copy_tracker, random_access_iterator_wrapper> Container;
3325
3326 const int A[] = {10, 20, 1, 11, 2, 21, 28, 29, 12, 35, 15, 27, 6, 16, 7,
3327- 25, 17, 8, 23, 18, 9, 19, 24, 30, 13, 4, 14, 22, 26};
3328+ 25, 17, 8, 23, 18, 9, 19, 24, 30, 13, 4, 14, 22, 26, 0};
3329
3330 bool even(const copy_tracker& ct)
3331 { return ct.id() < 19; }
3332Index: libstdc++-v3/testsuite/25_algorithms/stable_partition/pr52822.cc
3333===================================================================
3334--- libstdc++-v3/testsuite/25_algorithms/stable_partition/pr52822.cc (.../tags/gcc_4_7_0_release) (wersja 0)
3335+++ libstdc++-v3/testsuite/25_algorithms/stable_partition/pr52822.cc (.../branches/gcc-4_7-branch) (wersja 187906)
ad222a6b 3336@@ -0,0 +1,43 @@
be75205b
PS
3337+// { dg-options "-std=gnu++0x" }
3338+
ad222a6b
PS
3339+// Copyright (C) 2012 Free Software Foundation, Inc.
3340+//
3341+// This file is part of the GNU ISO C++ Library. This library is free
3342+// software; you can redistribute it and/or modify it under the
3343+// terms of the GNU General Public License as published by the
3344+// Free Software Foundation; either version 3, or (at your option)
3345+// any later version.
be75205b 3346+
ad222a6b 3347+// This library is distributed in the hope that it will be useful,
be75205b 3348+// but WITHOUT ANY WARRANTY; without Pred the implied warranty of
ad222a6b
PS
3349+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3350+// GNU General Public License for more details.
be75205b 3351+
ad222a6b
PS
3352+// You should have received a copy of the GNU General Public License along
3353+// with this library; see the file COPYING3. If not see
3354+// <http://www.gnu.org/licenses/>.
ad222a6b 3355+
be75205b 3356+// 25.2.12 [lib.alg.partitions] Partitions.
ad222a6b 3357+
be75205b 3358+#include <algorithm>
ad222a6b 3359+#include <vector>
be75205b 3360+#include <testsuite_hooks.h>
ad222a6b 3361+
be75205b 3362+bool true_vector_pred(const std::vector<int>&) { return true; }
ad222a6b 3363+
be75205b
PS
3364+void
3365+test01()
ad222a6b 3366+{
be75205b
PS
3367+ std::vector<std::vector<int> > v(1);
3368+ v[0].push_back(7);
3369+ VERIFY( v[0].size() == 1 );
3370+ std::stable_partition(v.begin(), v.end(), &true_vector_pred);
3371+ VERIFY( v[0].size() == 1 );
ad222a6b
PS
3372+}
3373+
be75205b
PS
3374+int
3375+main()
3376+{
3377+ test01();
3378+ return 0;
3379+}
3380Index: libstdc++-v3/testsuite/25_algorithms/stable_partition/moveable.cc
ad222a6b 3381===================================================================
be75205b
PS
3382--- libstdc++-v3/testsuite/25_algorithms/stable_partition/moveable.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
3383+++ libstdc++-v3/testsuite/25_algorithms/stable_partition/moveable.cc (.../branches/gcc-4_7-branch) (wersja 187906)
3384@@ -35,6 +35,11 @@
3385 const int B[] = {2, 4, 6, 8, 10, 12, 14, 16, 1, 3, 5, 7, 9, 11, 13, 15, 17};
3386 const int N = sizeof(A) / sizeof(int);
3387
3388+// Check that starting with a true predicate works too. (PR52822)
3389+const int A2[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17};
3390+const int B2[] = {2, 4, 6, 8, 10, 12, 14, 16, 3, 5, 7, 9, 11, 13, 15, 17};
3391+const int N2 = sizeof(A2) / sizeof(int);
ad222a6b 3392+
be75205b
PS
3393 struct Pred
3394 {
3395 bool
3396@@ -42,7 +47,7 @@
3397 { return (x.val % 2) == 0; }
3398 };
3399
3400-// 25.2.12 stable_partition()
3401+// 25.2.12 stable_partition(), starting with a false predicate.
3402 void
3403 test01()
3404 {
3405@@ -56,9 +61,24 @@
3406 VERIFY( std::equal(s1, s1 + N, B) );
3407 }
3408
3409+// 25.2.12 stable_partition(), starting with a true predicate.
3410+void
3411+test02()
3412+{
3413+ bool test __attribute__((unused)) = true;
ad222a6b 3414+
be75205b
PS
3415+ rvalstruct s1[N2];
3416+ std::copy(A2, A2 + N2, s1);
3417+ Container con(s1, s1 + N2);
3418+
3419+ std::stable_partition(con.begin(), con.end(), Pred());
3420+ VERIFY( std::equal(s1, s1 + N2, B2) );
3421+}
3422+
3423 int
3424 main()
3425 {
3426 test01();
3427+ test02();
3428 return 0;
3429 }
3430Index: libstdc++-v3/testsuite/25_algorithms/stable_sort/mem_check.cc
3431===================================================================
3432--- libstdc++-v3/testsuite/25_algorithms/stable_sort/mem_check.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
3433+++ libstdc++-v3/testsuite/25_algorithms/stable_sort/mem_check.cc (.../branches/gcc-4_7-branch) (wersja 187906)
3434@@ -1,4 +1,4 @@
3435-// Copyright (C) 2009 Free Software Foundation, Inc.
3436+// Copyright (C) 2009, 2012 Free Software Foundation, Inc.
3437 //
3438 // This file is part of the GNU ISO C++ Library. This library is free
3439 // software; you can redistribute it and/or modify it under the
3440@@ -31,7 +31,7 @@
3441 typedef test_container<copy_tracker, random_access_iterator_wrapper> Container;
ad222a6b 3442
be75205b
PS
3443 const int A[] = {10, 20, 1, 11, 2, 21, 28, 29, 12, 35, 15, 27, 6, 16, 7,
3444- 25, 17, 8, 23, 18, 9, 19, 24, 30, 13, 4, 14, 22, 26};
3445+ 25, 17, 8, 23, 18, 9, 19, 24, 30, 13, 4, 14, 22, 26, 0};
3446
3447 void
3448 test_mem1(int throw_count)
3449Index: libstdc++-v3/testsuite/Makefile.in
ad222a6b 3450===================================================================
be75205b
PS
3451--- libstdc++-v3/testsuite/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187906)
3452+++ libstdc++-v3/testsuite/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187906)
3453@@ -505,6 +505,7 @@
3454 @echo 'set libiconv "$(LIBICONV)"' >>site.tmp
3455 @echo 'set baseline_dir "$(baseline_dir)"' >> site.tmp
3456 @echo 'set baseline_subdir_switch "$(baseline_subdir_switch)"' >> site.tmp
3457+ @echo 'set TEST_GCC_EXEC_PREFIX "$(libdir)/gcc/"' >> site.tmp
3458 @echo '## All variables above are generated by configure. Do Not Edit ##' >>site.tmp
3459 @test ! -f site.exp || \
3460 sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp
3461Index: libstdc++-v3/testsuite/performance/30_threads/future/polling.cc
ad222a6b 3462===================================================================
be75205b
PS
3463--- libstdc++-v3/testsuite/performance/30_threads/future/polling.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
3464+++ libstdc++-v3/testsuite/performance/30_threads/future/polling.cc (.../branches/gcc-4_7-branch) (wersja 187906)
3465@@ -1,4 +1,4 @@
3466-// Copyright (C) 2009, 2010 Free Software Foundation, Inc.
3467+// Copyright (C) 2009, 2010, 2012 Free Software Foundation, Inc.
3468 //
3469 // This file is part of the GNU ISO C++ Library. This library is free
3470 // software; you can redistribute it and/or modify it under the
3471@@ -22,7 +22,7 @@
ad222a6b 3472
be75205b
PS
3473 inline bool is_ready(std::shared_future<void>& f)
3474 {
3475- return f.wait_for(std::chrono::microseconds(1));
3476+ return f.wait_for(std::chrono::microseconds(1)) == std::future_status::ready;
3477 }
3478
3479 void poll(std::shared_future<void> f)
3480Index: libstdc++-v3/testsuite/Makefile.am
ad222a6b 3481===================================================================
be75205b
PS
3482--- libstdc++-v3/testsuite/Makefile.am (.../tags/gcc_4_7_0_release) (wersja 187906)
3483+++ libstdc++-v3/testsuite/Makefile.am (.../branches/gcc-4_7-branch) (wersja 187906)
3484@@ -60,6 +60,7 @@
3485 @echo 'set libiconv "$(LIBICONV)"' >>site.tmp
3486 @echo 'set baseline_dir "$(baseline_dir)"' >> site.tmp
3487 @echo 'set baseline_subdir_switch "$(baseline_subdir_switch)"' >> site.tmp
3488+ @echo 'set TEST_GCC_EXEC_PREFIX "$(libdir)/gcc/"' >> site.tmp
3489 @echo '## All variables above are generated by configure. Do Not Edit ##' >>site.tmp
3490 @test ! -f site.exp || \
3491 sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp
3492Index: libstdc++-v3/testsuite/23_containers/unordered_map/requirements/53067.cc
3493===================================================================
3494--- libstdc++-v3/testsuite/23_containers/unordered_map/requirements/53067.cc (.../tags/gcc_4_7_0_release) (wersja 0)
3495+++ libstdc++-v3/testsuite/23_containers/unordered_map/requirements/53067.cc (.../branches/gcc-4_7-branch) (wersja 187906)
3496@@ -0,0 +1,28 @@
3497+// { dg-do compile }
3498+// { dg-options "-std=gnu++11" }
ad222a6b 3499+
be75205b
PS
3500+// Copyright (C) 2012 Free Software Foundation, Inc.
3501+//
3502+// This file is part of the GNU ISO C++ Library. This library is free
3503+// software; you can redistribute it and/or modify it under the
3504+// terms of the GNU General Public License as published by the
3505+// Free Software Foundation; either version 3, or (at your option)
3506+// any later version.
ad222a6b 3507+
be75205b
PS
3508+// This library is distributed in the hope that it will be useful,
3509+// but WITHOUT ANY WARRANTY; without Pred the implied warranty of
3510+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3511+// GNU General Public License for more details.
ad222a6b 3512+
be75205b
PS
3513+// You should have received a copy of the GNU General Public License along
3514+// with this library; see the file COPYING3. If not see
3515+// <http://www.gnu.org/licenses/>.
ad222a6b 3516+
be75205b
PS
3517+#include <unordered_map>
3518+#include <functional>
ad222a6b 3519+
be75205b
PS
3520+void f()
3521+{
3522+ std::unordered_map<int, int> Foo;
3523+ ref(Foo);
3524+}
3525Index: libstdc++-v3/testsuite/23_containers/unordered_map/requirements/52942.cc
3526===================================================================
3527--- libstdc++-v3/testsuite/23_containers/unordered_map/requirements/52942.cc (.../tags/gcc_4_7_0_release) (wersja 0)
3528+++ libstdc++-v3/testsuite/23_containers/unordered_map/requirements/52942.cc (.../branches/gcc-4_7-branch) (wersja 187906)
3529@@ -0,0 +1,37 @@
3530+// { dg-do compile }
3531+// { dg-options "-std=gnu++11" }
ad222a6b 3532+
be75205b
PS
3533+// Copyright (C) 2012 Free Software Foundation, Inc.
3534+//
3535+// This file is part of the GNU ISO C++ Library. This library is free
3536+// software; you can redistribute it and/or modify it under the
3537+// terms of the GNU General Public License as published by the
3538+// Free Software Foundation; either version 3, or (at your option)
3539+// any later version.
ad222a6b 3540+
be75205b
PS
3541+// This library is distributed in the hope that it will be useful,
3542+// but WITHOUT ANY WARRANTY; without Pred the implied warranty of
3543+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3544+// GNU General Public License for more details.
ad222a6b 3545+
be75205b
PS
3546+// You should have received a copy of the GNU General Public License along
3547+// with this library; see the file COPYING3. If not see
3548+// <http://www.gnu.org/licenses/>.
ad222a6b 3549+
be75205b
PS
3550+#include <unordered_map>
3551+#include <functional>
ad222a6b 3552+
be75205b 3553+struct TFoo {};
ad222a6b 3554+
be75205b
PS
3555+struct TFoo_hash
3556+{
3557+ std::size_t operator()(const TFoo &) const { return 0; }
3558+};
ad222a6b 3559+
be75205b 3560+void f1(std::unordered_map<TFoo, int, TFoo_hash> &) {}
ad222a6b 3561+
be75205b
PS
3562+void f2()
3563+{
3564+ std::unordered_map<TFoo, int, TFoo_hash> map1;
3565+ std::bind(f1, std::ref(map1));
3566+}
3567Index: libstdc++-v3/testsuite/23_containers/forward_list/modifiers/6.cc
3568===================================================================
3569--- libstdc++-v3/testsuite/23_containers/forward_list/modifiers/6.cc (.../tags/gcc_4_7_0_release) (wersja 0)
3570+++ libstdc++-v3/testsuite/23_containers/forward_list/modifiers/6.cc (.../branches/gcc-4_7-branch) (wersja 187906)
3571@@ -0,0 +1,94 @@
3572+// { dg-options "-std=gnu++11" }
ad222a6b 3573+
be75205b
PS
3574+// Copyright (C) 2012 Free Software Foundation, Inc.
3575+//
3576+// This file is part of the GNU ISO C++ Library. This library is free
3577+// software; you can redistribute it and/or modify it under the
3578+// terms of the GNU General Public License as published by the
3579+// Free Software Foundation; either version 3, or (at your option)
3580+// any later version.
ad222a6b 3581+
be75205b
PS
3582+// This library is distributed in the hope that it will be useful,
3583+// but WITHOUT ANY WARRANTY; without Pred the implied warranty of
3584+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3585+// GNU General Public License for more details.
ad222a6b 3586+
be75205b
PS
3587+// You should have received a copy of the GNU General Public License along
3588+// with this library; see the file COPYING3. If not see
3589+// <http://www.gnu.org/licenses/>.
ad222a6b 3590+
be75205b 3591+#include <forward_list>
ad222a6b 3592+
be75205b 3593+#include <testsuite_hooks.h>
ad222a6b 3594+
be75205b
PS
3595+void test01()
3596+{
3597+ bool test __attribute__((unused)) = true;
ad222a6b 3598+
be75205b
PS
3599+ std::forward_list<int> fl1(1, 5), fl2(1, 4), fl3(1, 3),
3600+ fl4(1, 2), fl5(1, 1), fl6(1, 0);
ad222a6b 3601+
be75205b 3602+ fl1.splice_after(fl1.before_begin(), fl2);
ad222a6b 3603+
be75205b 3604+ auto it = fl1.begin();
ad222a6b 3605+
be75205b 3606+ VERIFY( *it == 4 );
ad222a6b 3607+
be75205b
PS
3608+ ++it;
3609+
3610+ VERIFY( *it == 5 );
ad222a6b 3611+
be75205b 3612+ fl3.splice_after(fl3.before_begin(), fl4, fl4.before_begin());
ad222a6b 3613+
be75205b 3614+ it = fl3.begin();
ad222a6b 3615+
be75205b 3616+ VERIFY( *it == 2 );
ad222a6b 3617+
be75205b
PS
3618+ ++it;
3619+
3620+ VERIFY( *it == 3 );
ad222a6b 3621+
be75205b 3622+ fl5.splice_after(fl5.before_begin(), fl6, fl6.before_begin(), fl6.end());
ad222a6b 3623+
be75205b 3624+ it = fl5.begin();
ad222a6b 3625+
be75205b 3626+ VERIFY( *it == 0 );
ad222a6b 3627+
be75205b
PS
3628+ ++it;
3629+
3630+ VERIFY( *it == 1 );
ad222a6b 3631+
be75205b 3632+ fl1.merge(fl2);
ad222a6b 3633+
be75205b 3634+ it = fl1.begin();
ad222a6b 3635+
be75205b 3636+ VERIFY( *it == 4 );
ad222a6b 3637+
be75205b 3638+ ++it;
ad222a6b 3639+
be75205b 3640+ VERIFY( *it == 5 );
ad222a6b 3641+
be75205b 3642+ fl1.merge(fl3, std::less<int>());
ad222a6b 3643+
be75205b 3644+ it = fl1.begin();
ad222a6b 3645+
be75205b 3646+ VERIFY( *it == 2 );
ad222a6b 3647+
be75205b
PS
3648+ ++it;
3649+
3650+ VERIFY( *it == 3 );
ad222a6b 3651+
be75205b
PS
3652+ ++it;
3653+
3654+ VERIFY( *it == 4 );
ad222a6b 3655+
be75205b
PS
3656+ ++it;
3657+
3658+ VERIFY( *it == 5 );
3659+}
7b762fbe 3660+
be75205b
PS
3661+int main()
3662+{
3663+ test01();
3664+ return 0;
3665+}
3666Index: libstdc++-v3/testsuite/23_containers/forward_list/operations/1.cc
3667===================================================================
3668--- libstdc++-v3/testsuite/23_containers/forward_list/operations/1.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
3669+++ libstdc++-v3/testsuite/23_containers/forward_list/operations/1.cc (.../branches/gcc-4_7-branch) (wersja 187906)
3670@@ -1,6 +1,6 @@
3671 // { dg-options "-std=gnu++0x" }
3672
3673-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
3674+// Copyright (C) 2008, 2009, 2012 Free Software Foundation, Inc.
3675 //
3676 // This file is part of the GNU ISO C++ Library. This library is free
3677 // software; you can redistribute it and/or modify it under the
3678@@ -68,7 +68,7 @@
3679
3680 VERIFY(*befy == 10.0);
3681 ++befy;
3682- VERIFY(*befy == 15.0);
3683+ VERIFY(*befy == 14.0);
3684 }
3685
3686 // This test verifies the following:
3687Index: libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/assign_neg.cc
3688===================================================================
3689--- libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/assign_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
3690+++ libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/assign_neg.cc (.../branches/gcc-4_7-branch) (wersja 187906)
3691@@ -1,8 +1,8 @@
3692 // { dg-do compile }
3693 // { dg-options "-std=gnu++0x" }
3694-// { dg-error "no matching" "" { target *-*-* } 1213 }
3695+// { dg-error "no matching" "" { target *-*-* } 1221 }
3696
3697-// Copyright (C) 2009, 2010, 2011 Free Software Foundation
3698+// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation
3699 //
3700 // This file is part of the GNU ISO C++ Library. This library is free
3701 // software; you can redistribute it and/or modify it under the
3702Index: libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/insert_neg.cc
3703===================================================================
3704--- libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/insert_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
3705+++ libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/insert_neg.cc (.../branches/gcc-4_7-branch) (wersja 187906)
3706@@ -1,8 +1,8 @@
3707 // { dg-do compile }
3708 // { dg-options "-std=gnu++0x" }
3709-// { dg-error "no matching" "" { target *-*-* } 1213 }
3710+// { dg-error "no matching" "" { target *-*-* } 1221 }
3711
3712-// Copyright (C) 2009, 2010, 2011 Free Software Foundation
3713+// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation
3714 //
3715 // This file is part of the GNU ISO C++ Library. This library is free
3716 // software; you can redistribute it and/or modify it under the
3717Index: libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_1_neg.cc
3718===================================================================
3719--- libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_1_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
3720+++ libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_1_neg.cc (.../branches/gcc-4_7-branch) (wersja 187906)
3721@@ -1,8 +1,8 @@
3722 // { dg-do compile }
3723 // { dg-options "-std=gnu++0x" }
3724-// { dg-error "no matching" "" { target *-*-* } 1213 }
3725+// { dg-error "no matching" "" { target *-*-* } 1221 }
3726
3727-// Copyright (C) 2009, 2010, 2011 Free Software Foundation
3728+// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation
3729 //
3730 // This file is part of the GNU ISO C++ Library. This library is free
3731 // software; you can redistribute it and/or modify it under the
3732Index: libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_2_neg.cc
3733===================================================================
3734--- libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_2_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
3735+++ libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_2_neg.cc (.../branches/gcc-4_7-branch) (wersja 187906)
3736@@ -1,8 +1,8 @@
3737 // { dg-do compile }
3738 // { dg-options "-std=gnu++0x" }
3739-// { dg-error "no matching" "" { target *-*-* } 1213 }
3740+// { dg-error "no matching" "" { target *-*-* } 1221 }
3741
3742-// Copyright (C) 2009, 2010, 2011 Free Software Foundation
3743+// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation
3744 //
3745 // This file is part of the GNU ISO C++ Library. This library is free
3746 // software; you can redistribute it and/or modify it under the
3747Index: libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after.cc
3748===================================================================
3749--- libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
3750+++ libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after.cc (.../branches/gcc-4_7-branch) (wersja 187906)
3751@@ -1,6 +1,6 @@
3752 // { dg-options "-std=gnu++0x" }
3753
3754-// Copyright (C) 2010 Free Software Foundation, Inc.
3755+// Copyright (C) 2010, 2012 Free Software Foundation, Inc.
3756 //
3757 // This file is part of the GNU ISO C++ Library. This library is free
3758 // software; you can redistribute it and/or modify it under the
3759@@ -34,6 +34,10 @@
3760
3761 VERIFY( before == fl1.before_begin() );
3762 VERIFY( end == fl1.end() );
7b762fbe 3763+
be75205b
PS
3764+ // no-op just to check that debug mode does not see any problem with it.
3765+ fl1.splice_after(fl1.before_begin(), std::move(fl2),
3766+ fl2.before_begin(), fl2.begin());
3767 }
3768
3769 int
3770Index: libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/53115.cc
3771===================================================================
3772--- libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/53115.cc (.../tags/gcc_4_7_0_release) (wersja 0)
3773+++ libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/53115.cc (.../branches/gcc-4_7-branch) (wersja 187906)
3774@@ -0,0 +1,101 @@
3775+// { dg-options "-std=gnu++11" }
3776+//
3777+// Copyright (C) 2012 Free Software Foundation, Inc.
3778+//
3779+// This file is part of the GNU ISO C++ Library. This library is free
3780+// software; you can redistribute it and/or modify it under the
3781+// terms of the GNU General Public License as published by the
3782+// Free Software Foundation; either version 3, or (at your option)
3783+// any later version.
3784+//
3785+// This library is distributed in the hope that it will be useful,
3786+// but WITHOUT ANY WARRANTY; without even the implied warranty of
3787+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3788+// GNU General Public License for more details.
3789+//
3790+// You should have received a copy of the GNU General Public License along
3791+// with this library; see the file COPYING3. If not see
3792+// <http://www.gnu.org/licenses/>.
7b762fbe 3793+
be75205b
PS
3794+#include <unordered_map>
3795+#include <testsuite_hooks.h>
7b762fbe 3796+
be75205b
PS
3797+namespace
3798+{
3799+ std::size_t
3800+ get_nb_bucket_elems(const std::unordered_multimap<int, int>& us)
3801+ {
3802+ std::size_t nb = 0;
3803+ for (std::size_t b = 0; b != us.bucket_count(); ++b)
3804+ nb += us.bucket_size(b);
3805+ return nb;
3806+ }
3807+}
7b762fbe 3808+
be75205b
PS
3809+void test01()
3810+{
3811+ using namespace std;
3812+ bool test __attribute__((unused)) = true;
7b762fbe 3813+
be75205b
PS
3814+ std::unordered_multimap<int, int> umm;
3815+ umm.insert(make_pair(10, 1));
3816+ VERIFY( umm.size() == 1 );
3817+ VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() );
3818+ VERIFY( get_nb_bucket_elems(umm) == umm.size() );
d5cf6eeb 3819+
be75205b
PS
3820+ umm.insert(make_pair(10, 2));
3821+ VERIFY( umm.size() == 2 );
3822+ VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() );
3823+ VERIFY( get_nb_bucket_elems(umm) == umm.size() );
d5cf6eeb 3824+
be75205b
PS
3825+ umm.insert(make_pair(10, 3));
3826+ VERIFY( umm.size() == 3 );
3827+ VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() );
3828+ VERIFY( get_nb_bucket_elems(umm) == umm.size() );
ad222a6b 3829+
be75205b
PS
3830+ umm.insert(make_pair(10, 4));
3831+ VERIFY( umm.size() == 4 );
3832+ VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() );
3833+ VERIFY( get_nb_bucket_elems(umm) == umm.size() );
ad222a6b 3834+
be75205b
PS
3835+ umm.insert(make_pair(10, 5));
3836+ VERIFY( umm.size() == 5 );
3837+ VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() );
3838+ VERIFY( get_nb_bucket_elems(umm) == umm.size() );
ad222a6b 3839+
be75205b
PS
3840+ umm.insert(make_pair(24, 6));
3841+ VERIFY( umm.size() == 6 );
3842+ VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() );
3843+ VERIFY( get_nb_bucket_elems(umm) == umm.size() );
ad222a6b 3844+
be75205b
PS
3845+ umm.insert(make_pair(25, 7));
3846+ VERIFY( umm.size() == 7 );
3847+ VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() );
3848+ VERIFY( get_nb_bucket_elems(umm) == umm.size() );
ad222a6b 3849+
be75205b
PS
3850+ umm.insert(make_pair(2, 8));
3851+ VERIFY( umm.size() == 8 );
3852+ VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() );
3853+ VERIFY( get_nb_bucket_elems(umm) == umm.size() );
ad222a6b 3854+
be75205b
PS
3855+ umm.insert(make_pair(2, 9));
3856+ VERIFY( umm.size() == 9 );
3857+ VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() );
3858+ VERIFY( get_nb_bucket_elems(umm) == umm.size() );
ad222a6b 3859+
be75205b
PS
3860+ umm.insert(make_pair(1, 10));
3861+ VERIFY( umm.size() == 10 );
3862+ VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() );
3863+ VERIFY( get_nb_bucket_elems(umm) == umm.size() );
ad222a6b 3864+
be75205b
PS
3865+ umm.insert(make_pair(10, 11));
3866+ VERIFY( umm.size() == 11 );
3867+ VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() );
3868+ VERIFY( get_nb_bucket_elems(umm) == umm.size() );
3869+}
3870+
3871+int main()
3872+{
3873+ test01();
3874+ return 0;
3875+}
3876Index: libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/52476.cc
ad222a6b 3877===================================================================
be75205b
PS
3878--- libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/52476.cc (.../tags/gcc_4_7_0_release) (wersja 0)
3879+++ libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/52476.cc (.../branches/gcc-4_7-branch) (wersja 187906)
3880@@ -0,0 +1,59 @@
3881+// { dg-options "-std=gnu++0x" }
3882+//
3883+// Copyright (C) 2012 Free Software Foundation, Inc.
3884+//
3885+// This file is part of the GNU ISO C++ Library. This library is free
3886+// software; you can redistribute it and/or modify it under the
3887+// terms of the GNU General Public License as published by the
3888+// Free Software Foundation; either version 3, or (at your option)
3889+// any later version.
3890+//
3891+// This library is distributed in the hope that it will be useful,
3892+// but WITHOUT ANY WARRANTY; without even the implied warranty of
3893+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3894+// GNU General Public License for more details.
3895+//
3896+// You should have received a copy of the GNU General Public License along
3897+// with this library; see the file COPYING3. If not see
3898+// <http://www.gnu.org/licenses/>.
ad222a6b 3899+
be75205b
PS
3900+#include <unordered_map>
3901+#include <vector>
3902+#include <algorithm>
3903+#include <testsuite_hooks.h>
ad222a6b 3904+
be75205b 3905+void test01()
ad222a6b 3906+{
be75205b
PS
3907+ using namespace std;
3908+ bool test __attribute__((unused)) = true;
3909+
3910+ unordered_multimap<int, int> mmap;
3911+ vector<int> values;
ad222a6b 3912+
be75205b
PS
3913+ size_t nb_bkts = mmap.bucket_count();
3914+ int i = 0;
3915+ for (;; ++i)
ad222a6b 3916+ {
be75205b
PS
3917+ mmap.insert(make_pair(0, i));
3918+ if (mmap.bucket_count() != nb_bkts)
3919+ // Container got rehash
3920+ break;
3921+ values.clear();
3922+ transform(mmap.begin(), mmap.end(), back_inserter(values),
3923+ [](const pair<int, int>& p) { return p.second; });
ad222a6b 3924+ }
ad222a6b 3925+
be75205b
PS
3926+ vector<int> rehash_values;
3927+ transform(mmap.begin(), mmap.end(), back_inserter(rehash_values),
3928+ [](const pair<int, int>& p) { return p.second; });
3929+ // Remove the value that result in a rehash
3930+ rehash_values.erase(remove(rehash_values.begin(), rehash_values.end(), i));
ad222a6b 3931+
be75205b
PS
3932+ VERIFY( rehash_values == values );
3933+}
3934+
3935+int main()
ad222a6b 3936+{
be75205b
PS
3937+ test01();
3938+ return 0;
3939+}
3940Index: libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/52799.cc
3941===================================================================
3942--- libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/52799.cc (.../tags/gcc_4_7_0_release) (wersja 0)
3943+++ libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/52799.cc (.../branches/gcc-4_7-branch) (wersja 187906)
3944@@ -0,0 +1,28 @@
3945+// { dg-options "-std=gnu++11" }
3946+// { dg-do compile }
ad222a6b 3947+
be75205b
PS
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.
ad222a6b 3955+
be75205b
PS
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.
ad222a6b 3960+
be75205b
PS
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/>.
ad222a6b 3964+
be75205b 3965+#include <vector>
ad222a6b 3966+
be75205b
PS
3967+// libstdc++/52799
3968+int main()
3969+{
3970+ std::vector<int> v;
3971+ v.emplace(v.begin());
3972+}
3973Index: libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc
3974===================================================================
3975--- libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
3976+++ libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc (.../branches/gcc-4_7-branch) (wersja 187906)
3977@@ -18,7 +18,7 @@
3978 // <http://www.gnu.org/licenses/>.
3979
3980 // { dg-do compile }
3981-// { dg-error "no matching" "" { target *-*-* } 1225 }
3982+// { dg-error "no matching" "" { target *-*-* } 1207 }
3983
3984 #include <vector>
3985
3986Index: libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc
3987===================================================================
3988--- libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
3989+++ libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc (.../branches/gcc-4_7-branch) (wersja 187906)
3990@@ -18,7 +18,7 @@
3991 // <http://www.gnu.org/licenses/>.
3992
3993 // { dg-do compile }
3994-// { dg-error "no matching" "" { target *-*-* } 1266 }
3995+// { dg-error "no matching" "" { target *-*-* } 1248 }
3996
3997 #include <vector>
3998
3999Index: libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc
4000===================================================================
4001--- libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
4002+++ libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc (.../branches/gcc-4_7-branch) (wersja 187906)
4003@@ -18,7 +18,7 @@
4004 // <http://www.gnu.org/licenses/>.
4005
4006 // { dg-do compile }
4007-// { dg-error "no matching" "" { target *-*-* } 1155 }
4008+// { dg-error "no matching" "" { target *-*-* } 1137 }
4009
4010 #include <vector>
4011
4012Index: libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc
4013===================================================================
4014--- libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
4015+++ libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc (.../branches/gcc-4_7-branch) (wersja 187906)
4016@@ -18,7 +18,7 @@
4017 // <http://www.gnu.org/licenses/>.
4018
4019 // { dg-do compile }
4020-// { dg-error "no matching" "" { target *-*-* } 1155 }
4021+// { dg-error "no matching" "" { target *-*-* } 1137 }
4022
4023 #include <vector>
4024 #include <utility>
4025Index: libstdc++-v3/testsuite/23_containers/vector/debug/52433.cc
4026===================================================================
4027--- libstdc++-v3/testsuite/23_containers/vector/debug/52433.cc (.../tags/gcc_4_7_0_release) (wersja 0)
4028+++ libstdc++-v3/testsuite/23_containers/vector/debug/52433.cc (.../branches/gcc-4_7-branch) (wersja 187906)
4029@@ -0,0 +1,43 @@
4030+// Copyright (C) 2012 Free Software Foundation, Inc.
4031+//
4032+// This file is part of the GNU ISO C++ Library. This library is free
4033+// software; you can redistribute it and/or modify it under the
4034+// terms of the GNU General Public License as published by the
4035+// Free Software Foundation; either version 3, or (at your option)
4036+// any later version.
4037+//
4038+// This library is distributed in the hope that it will be useful,
4039+// but WITHOUT ANY WARRANTY; without even the implied warranty of
4040+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4041+// GNU General Public License for more details.
4042+//
4043+// You should have received a copy of the GNU General Public License along
4044+// with this library; see the file COPYING3. If not see
4045+// <http://www.gnu.org/licenses/>.
4046+//
4047+// { dg-require-debug-mode "" }
4048+// { dg-options "-std=gnu++0x" }
4049+// { dg-do compile }
ad222a6b 4050+
be75205b 4051+// PR libstdc++/52433
ad222a6b 4052+
be75205b 4053+#include <vector>
ad222a6b 4054+
be75205b
PS
4055+struct X
4056+{
4057+ std::vector<int>::iterator i;
ad222a6b 4058+
be75205b
PS
4059+ X() = default;
4060+ X(const X&) = default;
4061+ X(X&&) = default;
4062+ X& operator=(const X&) = default;
4063+ X& operator=(X&&) = default;
4064+};
ad222a6b 4065+
be75205b
PS
4066+X test01()
4067+{
4068+ X x;
4069+ x = X();
4070+ return x;
ad222a6b 4071+}
ad222a6b 4072+
be75205b
PS
4073Index: libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/31370.cc
4074===================================================================
4075--- libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/31370.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
4076+++ libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/31370.cc (.../branches/gcc-4_7-branch) (wersja 187906)
4077@@ -1,4 +1,4 @@
4078-// Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
4079+// Copyright (C) 2007, 2009, 2010, 2012 Free Software Foundation, Inc.
4080 //
4081 // This file is part of the GNU ISO C++ Library. This library is free
4082 // software; you can redistribute it and/or modify it under the
4083@@ -17,6 +17,7 @@
4084
4085 // 23.2.5 class vector<bool> [lib.vector.bool]
4086
4087+// { dg-skip-if "" { powerpc64-*-freebsd* } { "*" } { "" } }
4088 // { dg-do run { xfail *-*-darwin8.[0-4].* } }
4089
4090 #include <vector>
4091Index: libstdc++-v3/testsuite/23_containers/vector/52591.cc
4092===================================================================
4093--- libstdc++-v3/testsuite/23_containers/vector/52591.cc (.../tags/gcc_4_7_0_release) (wersja 0)
4094+++ libstdc++-v3/testsuite/23_containers/vector/52591.cc (.../branches/gcc-4_7-branch) (wersja 187906)
4095@@ -0,0 +1,38 @@
4096+// Copyright (C) 2012 Free Software Foundation, Inc.
4097+//
4098+// This file is part of the GNU ISO C++ Library. This library is free
4099+// software; you can redistribute it and/or modify it under the
4100+// terms of the GNU General Public License as published by the
4101+// Free Software Foundation; either version 3, or (at your option)
4102+// any later version.
ad222a6b 4103+
be75205b
PS
4104+// This library is distributed in the hope that it will be useful,
4105+// but WITHOUT ANY WARRANTY; without even the implied warranty of
4106+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4107+// GNU General Public License for more details.
ad222a6b 4108+
be75205b
PS
4109+// You should have received a copy of the GNU General Public License along
4110+// with this library; see the file COPYING3. If not see
4111+// <http://www.gnu.org/licenses/>.
ad222a6b 4112+
be75205b
PS
4113+// { dg-do compile }
4114+// { dg-options "-std=gnu++0x" }
ad222a6b 4115+
be75205b 4116+// libstdc++/52591
ad222a6b 4117+
be75205b 4118+#include <vector>
ad222a6b 4119+
be75205b
PS
4120+// As an extension we allow move-assignment of std::vector when the element
4121+// type is not MoveAssignable, as long as the allocator type propagates or
4122+// is known to always compare equal.
ad222a6b 4123+
be75205b
PS
4124+struct C
4125+{
4126+ C& operator=(C&&) = delete;
4127+};
ad222a6b 4128+
be75205b 4129+void test01()
ad222a6b 4130+{
be75205b
PS
4131+ std::vector<C> a;
4132+ a = std::vector<C>();
4133+}
4134Index: libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc
4135===================================================================
4136--- libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
4137+++ libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc (.../branches/gcc-4_7-branch) (wersja 187906)
4138@@ -2,7 +2,7 @@
4139 // { dg-options "-std=gnu++0x" }
4140 // { dg-require-normal-mode "" }
4141
4142-// Copyright (C) 2011 Free Software Foundation, Inc.
4143+// Copyright (C) 2011, 2012 Free Software Foundation, Inc.
4144 //
4145 // This file is part of the GNU ISO C++ Library. This library is free
4146 // software; you can redistribute it and/or modify it under the
4147@@ -19,7 +19,7 @@
4148 // with this library; see the file COPYING3. If not see
4149 // <http://www.gnu.org/licenses/>.
4150
4151-// { dg-error "static assertion failed" "" { target *-*-* } 185 }
4152+// { dg-error "static assertion failed" "" { target *-*-* } 186 }
4153
4154 #include <unordered_set>
4155
4156Index: libstdc++-v3/testsuite/23_containers/unordered_set/requirements/53067.cc
4157===================================================================
4158--- libstdc++-v3/testsuite/23_containers/unordered_set/requirements/53067.cc (.../tags/gcc_4_7_0_release) (wersja 0)
4159+++ libstdc++-v3/testsuite/23_containers/unordered_set/requirements/53067.cc (.../branches/gcc-4_7-branch) (wersja 187906)
4160@@ -0,0 +1,28 @@
4161+// { dg-do compile }
4162+// { dg-options "-std=gnu++11" }
ad222a6b 4163+
be75205b
PS
4164+// Copyright (C) 2012 Free Software Foundation, Inc.
4165+//
4166+// This file is part of the GNU ISO C++ Library. This library is free
4167+// software; you can redistribute it and/or modify it under the
4168+// terms of the GNU General Public License as published by the
4169+// Free Software Foundation; either version 3, or (at your option)
4170+// any later version.
ad222a6b 4171+
be75205b
PS
4172+// This library is distributed in the hope that it will be useful,
4173+// but WITHOUT ANY WARRANTY; without Pred the implied warranty of
4174+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4175+// GNU General Public License for more details.
ad222a6b 4176+
be75205b
PS
4177+// You should have received a copy of the GNU General Public License along
4178+// with this library; see the file COPYING3. If not see
4179+// <http://www.gnu.org/licenses/>.
ad222a6b 4180+
be75205b
PS
4181+#include <unordered_set>
4182+#include <functional>
ad222a6b 4183+
be75205b
PS
4184+void f()
4185+{
4186+ std::unordered_set<int> Foo;
4187+ ref(Foo);
ad222a6b 4188+}
be75205b
PS
4189Index: libstdc++-v3/testsuite/23_containers/unordered_set/requirements/52942.cc
4190===================================================================
4191--- libstdc++-v3/testsuite/23_containers/unordered_set/requirements/52942.cc (.../tags/gcc_4_7_0_release) (wersja 0)
4192+++ libstdc++-v3/testsuite/23_containers/unordered_set/requirements/52942.cc (.../branches/gcc-4_7-branch) (wersja 187906)
4193@@ -0,0 +1,37 @@
4194+// { dg-do compile }
4195+// { dg-options "-std=gnu++11" }
ad222a6b 4196+
be75205b
PS
4197+// Copyright (C) 2012 Free Software Foundation, Inc.
4198+//
4199+// This file is part of the GNU ISO C++ Library. This library is free
4200+// software; you can redistribute it and/or modify it under the
4201+// terms of the GNU General Public License as published by the
4202+// Free Software Foundation; either version 3, or (at your option)
4203+// any later version.
ad222a6b 4204+
be75205b
PS
4205+// This library is distributed in the hope that it will be useful,
4206+// but WITHOUT ANY WARRANTY; without Pred the implied warranty of
4207+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4208+// GNU General Public License for more details.
ad222a6b 4209+
be75205b
PS
4210+// You should have received a copy of the GNU General Public License along
4211+// with this library; see the file COPYING3. If not see
4212+// <http://www.gnu.org/licenses/>.
ad222a6b 4213+
be75205b
PS
4214+#include <unordered_set>
4215+#include <functional>
4216+
4217+struct TFoo {};
4218+
4219+struct TFoo_hash
ad222a6b 4220+{
be75205b
PS
4221+ std::size_t operator()(const TFoo &) const { return 0; }
4222+};
ad222a6b 4223+
be75205b
PS
4224+void f1(std::unordered_set<TFoo, TFoo_hash> &) {}
4225+
4226+void f2()
4227+{
4228+ std::unordered_set<TFoo, TFoo_hash> set1;
4229+ std::bind(f1, std::ref(set1));
ad222a6b 4230+}
be75205b 4231Index: libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/52799.cc
ad222a6b 4232===================================================================
be75205b
PS
4233--- libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/52799.cc (.../tags/gcc_4_7_0_release) (wersja 0)
4234+++ libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/52799.cc (.../branches/gcc-4_7-branch) (wersja 187906)
4235@@ -0,0 +1,28 @@
4236+// { dg-options "-std=gnu++11" }
4237+// { dg-do compile }
ad222a6b 4238+
be75205b
PS
4239+// Copyright (C) 2012 Free Software Foundation, Inc.
4240+//
4241+// This file is part of the GNU ISO C++ Library. This library is free
4242+// software; you can redistribute it and/or modify it under the
4243+// terms of the GNU General Public License as published by the
4244+// Free Software Foundation; either version 3, or (at your option)
4245+// any later version.
ad222a6b 4246+
be75205b
PS
4247+// This library is distributed in the hope that it will be useful,
4248+// but WITHOUT ANY WARRANTY; without even the implied warranty of
4249+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4250+// GNU General Public License for more details.
ad222a6b 4251+
be75205b
PS
4252+// You should have received a copy of the GNU General Public License along
4253+// with this library; see the file COPYING3. If not see
4254+// <http://www.gnu.org/licenses/>.
ad222a6b 4255+
be75205b
PS
4256+#include <deque>
4257+
4258+// libstdc++/52799
4259+int main()
4260+{
4261+ std::deque<int> d;
4262+ d.emplace(d.begin());
4263+}
4264Index: libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/52799.cc
ad222a6b 4265===================================================================
be75205b
PS
4266--- libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/52799.cc (.../tags/gcc_4_7_0_release) (wersja 0)
4267+++ libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/52799.cc (.../branches/gcc-4_7-branch) (wersja 187906)
4268@@ -0,0 +1,28 @@
4269+// { dg-options "-std=gnu++11" }
4270+// { dg-do compile }
ad222a6b 4271+
be75205b
PS
4272+// Copyright (C) 2012 Free Software Foundation, Inc.
4273+//
4274+// This file is part of the GNU ISO C++ Library. This library is free
4275+// software; you can redistribute it and/or modify it under the
4276+// terms of the GNU General Public License as published by the
4277+// Free Software Foundation; either version 3, or (at your option)
4278+// any later version.
ad222a6b 4279+
be75205b
PS
4280+// This library is distributed in the hope that it will be useful,
4281+// but WITHOUT ANY WARRANTY; without even the implied warranty of
4282+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4283+// GNU General Public License for more details.
ad222a6b 4284+
be75205b
PS
4285+// You should have received a copy of the GNU General Public License along
4286+// with this library; see the file COPYING3. If not see
4287+// <http://www.gnu.org/licenses/>.
7b762fbe 4288+
be75205b 4289+#include <list>
7b762fbe 4290+
be75205b
PS
4291+// libstdc++/52799
4292+int main()
7b762fbe 4293+{
be75205b
PS
4294+ std::list<int> l;
4295+ l.emplace(l.begin());
7b762fbe 4296+}
be75205b
PS
4297Index: libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/53115.cc
4298===================================================================
4299--- libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/53115.cc (.../tags/gcc_4_7_0_release) (wersja 0)
4300+++ libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/53115.cc (.../branches/gcc-4_7-branch) (wersja 187906)
4301@@ -0,0 +1,101 @@
4302+// { dg-options "-std=gnu++11" }
4303+//
4304+// Copyright (C) 2012 Free Software Foundation, Inc.
4305+//
4306+// This file is part of the GNU ISO C++ Library. This library is free
4307+// software; you can redistribute it and/or modify it under the
4308+// terms of the GNU General Public License as published by the
4309+// Free Software Foundation; either version 3, or (at your option)
4310+// any later version.
4311+//
4312+// This library is distributed in the hope that it will be useful,
4313+// but WITHOUT ANY WARRANTY; without even the implied warranty of
4314+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4315+// GNU General Public License for more details.
4316+//
4317+// You should have received a copy of the GNU General Public License along
4318+// with this library; see the file COPYING3. If not see
4319+// <http://www.gnu.org/licenses/>.
7b762fbe 4320+
be75205b
PS
4321+#include <unordered_set>
4322+#include <testsuite_hooks.h>
7b762fbe 4323+
be75205b 4324+namespace
7b762fbe 4325+{
be75205b
PS
4326+ std::size_t
4327+ get_nb_bucket_elems(const std::unordered_multiset<int>& us)
4328+ {
4329+ std::size_t nb = 0;
4330+ for (std::size_t b = 0; b != us.bucket_count(); ++b)
4331+ nb += us.bucket_size(b);
4332+ return nb;
4333+ }
7b762fbe
AM
4334+}
4335+
be75205b 4336+void test01()
7b762fbe 4337+{
be75205b
PS
4338+ using namespace std;
4339+ bool test __attribute__((unused)) = true;
ad222a6b 4340+
be75205b
PS
4341+ std::unordered_multiset<int> mms;
4342+ mms.insert(10);
4343+ VERIFY( mms.size() == 1 );
4344+ VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() );
4345+ VERIFY( get_nb_bucket_elems(mms) == mms.size() );
ad222a6b 4346+
be75205b
PS
4347+ mms.insert(10);
4348+ VERIFY( mms.size() == 2 );
4349+ VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() );
4350+ VERIFY( get_nb_bucket_elems(mms) == mms.size() );
ad222a6b 4351+
be75205b
PS
4352+ mms.insert(10);
4353+ VERIFY( mms.size() == 3 );
4354+ VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() );
4355+ VERIFY( get_nb_bucket_elems(mms) == mms.size() );
ad222a6b 4356+
be75205b
PS
4357+ mms.insert(10);
4358+ VERIFY( mms.size() == 4 );
4359+ VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() );
4360+ VERIFY( get_nb_bucket_elems(mms) == mms.size() );
ad222a6b 4361+
be75205b
PS
4362+ mms.insert(10);
4363+ VERIFY( mms.size() == 5 );
4364+ VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() );
4365+ VERIFY( get_nb_bucket_elems(mms) == mms.size() );
ad222a6b 4366+
be75205b
PS
4367+ mms.insert(24);
4368+ VERIFY( mms.size() == 6 );
4369+ VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() );
4370+ VERIFY( get_nb_bucket_elems(mms) == mms.size() );
ad222a6b 4371+
be75205b
PS
4372+ mms.insert(25);
4373+ VERIFY( mms.size() == 7 );
4374+ VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() );
4375+ VERIFY( get_nb_bucket_elems(mms) == mms.size() );
ad222a6b 4376+
be75205b
PS
4377+ mms.insert(2);
4378+ VERIFY( mms.size() == 8 );
4379+ VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() );
4380+ VERIFY( get_nb_bucket_elems(mms) == mms.size() );
ad222a6b 4381+
be75205b
PS
4382+ mms.insert(2);
4383+ VERIFY( mms.size() == 9 );
4384+ VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() );
4385+ VERIFY( get_nb_bucket_elems(mms) == mms.size() );
ad222a6b 4386+
be75205b
PS
4387+ mms.insert(1);
4388+ VERIFY( mms.size() == 10 );
4389+ VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() );
4390+ VERIFY( get_nb_bucket_elems(mms) == mms.size() );
ad222a6b 4391+
be75205b
PS
4392+ mms.insert(10);
4393+ VERIFY( mms.size() == 11 );
4394+ VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() );
4395+ VERIFY( get_nb_bucket_elems(mms) == mms.size() );
4396+}
ad222a6b 4397+
be75205b
PS
4398+int main()
4399+{
4400+ test01();
4401+ return 0;
4402+}
4403Index: libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/52476.cc
4404===================================================================
4405--- libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/52476.cc (.../tags/gcc_4_7_0_release) (wersja 0)
4406+++ libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/52476.cc (.../branches/gcc-4_7-branch) (wersja 187906)
4407@@ -0,0 +1,77 @@
4408+// { dg-options "-std=gnu++0x" }
4409+//
4410+// Copyright (C) 2012 Free Software Foundation, Inc.
4411+//
4412+// This file is part of the GNU ISO C++ Library. This library is free
4413+// software; you can redistribute it and/or modify it under the
4414+// terms of the GNU General Public License as published by the
4415+// Free Software Foundation; either version 3, or (at your option)
4416+// any later version.
4417+//
4418+// This library is distributed in the hope that it will be useful,
4419+// but WITHOUT ANY WARRANTY; without even the implied warranty of
4420+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4421+// GNU General Public License for more details.
4422+//
4423+// You should have received a copy of the GNU General Public License along
4424+// with this library; see the file COPYING3. If not see
4425+// <http://www.gnu.org/licenses/>.
ad222a6b 4426+
be75205b
PS
4427+#include <unordered_set>
4428+#include <vector>
4429+#include <algorithm>
4430+#include <testsuite_hooks.h>
ad222a6b 4431+
be75205b
PS
4432+namespace
4433+{
4434+ struct pair_hash
4435+ {
4436+ std::size_t
4437+ operator()(const std::pair<int, int>& p) const noexcept
4438+ { return std::hash<int>()(p.first); }
4439+ };
7b762fbe 4440+
be75205b
PS
4441+ struct pair_equal_to
4442+ {
4443+ bool
4444+ operator()(const std::pair<int, int>& x,
4445+ const std::pair<int, int>& y) const noexcept
4446+ { return x.first == y.first; }
4447+ };
4448+}
7b762fbe 4449+
be75205b
PS
4450+void test01()
4451+{
4452+ using namespace std;
4453+ bool test __attribute__((unused)) = true;
4454+
4455+ unordered_multiset<pair<int, int>, pair_hash, pair_equal_to> mset;
4456+ vector<int> values;
7b762fbe 4457+
be75205b
PS
4458+ size_t nb_bkts = mset.bucket_count();
4459+ int i = 0;
4460+ for (;; ++i)
4461+ {
4462+ mset.insert(make_pair(0, i));
4463+ if (mset.bucket_count() != nb_bkts)
4464+ // Container got rehash
4465+ break;
4466+ values.clear();
4467+ transform(mset.begin(), mset.end(), back_inserter(values),
4468+ [](const pair<int, int>& p) { return p.second; });
4469+ }
ad222a6b 4470+
be75205b
PS
4471+ vector<int> rehash_values;
4472+ transform(mset.begin(), mset.end(), back_inserter(rehash_values),
4473+ [](const pair<int, int>& p) { return p.second; });
4474+ // Remove the value that result in a rehash
4475+ rehash_values.erase(remove(rehash_values.begin(), rehash_values.end(), i));
7b762fbe 4476+
be75205b
PS
4477+ VERIFY( rehash_values == values );
4478+}
4479+
4480+int main()
4481+{
4482+ test01();
4483+ return 0;
4484+}
4485Index: libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc
4486===================================================================
4487--- libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
4488+++ libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc (.../branches/gcc-4_7-branch) (wersja 187906)
4489@@ -32,9 +32,9 @@
4490 {
4491 X* px = 0;
4492 std::shared_ptr<X> p1(px); // { dg-error "here" }
4493- // { dg-error "incomplete" "" { target *-*-* } 771 }
4494+ // { dg-error "incomplete" "" { target *-*-* } 775 }
7b762fbe 4495
be75205b
PS
4496 std::shared_ptr<X> p9(ap()); // { dg-error "here" }
4497- // { dg-error "incomplete" "" { target *-*-* } 865 }
4498+ // { dg-error "incomplete" "" { target *-*-* } 869 }
4499
4500 }
4501Index: libstdc++-v3/testsuite/20_util/shared_ptr/cons/52924.cc
ad222a6b 4502===================================================================
be75205b
PS
4503--- libstdc++-v3/testsuite/20_util/shared_ptr/cons/52924.cc (.../tags/gcc_4_7_0_release) (wersja 0)
4504+++ libstdc++-v3/testsuite/20_util/shared_ptr/cons/52924.cc (.../branches/gcc-4_7-branch) (wersja 187906)
4505@@ -0,0 +1,44 @@
4506+// { dg-options "-std=gnu++0x" }
ad222a6b 4507+// { dg-do compile }
ad222a6b 4508+
be75205b
PS
4509+// Copyright (C) 2012 Free Software Foundation
4510+//
4511+// This file is part of the GNU ISO C++ Library. This library is free
4512+// software; you can redistribute it and/or modify it under the
4513+// terms of the GNU General Public License as published by the
4514+// Free Software Foundation; either version 3, or (at your option)
4515+// any later version.
ad222a6b 4516+
be75205b
PS
4517+// This library is distributed in the hope that it will be useful,
4518+// but WITHOUT ANY WARRANTY; without even the implied warranty of
4519+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4520+// GNU General Public License for more details.
7b762fbe 4521+
be75205b
PS
4522+// You should have received a copy of the GNU General Public License along
4523+// with this library; see the file COPYING3. If not see
4524+// <http://www.gnu.org/licenses/>.
7b762fbe 4525+
be75205b 4526+#include <memory>
7b762fbe 4527+
be75205b 4528+// libstdc++/52924
ad222a6b 4529+
be75205b
PS
4530+struct A { } a;
4531+
4532+struct D {
4533+ ~D() noexcept(false) { }
4534+ void operator()(A*) { }
4535+} d;
4536+
4537+auto sp = std::shared_ptr<A>(&a, d);
4538+
4539+template<typename T>
4540+struct Alloc : std::allocator<T>
ad222a6b 4541+{
be75205b
PS
4542+ Alloc() = default;
4543+ ~Alloc() noexcept(false) { }
4544+ template<typename U> Alloc(const Alloc<U>&) { }
ad222a6b 4545+};
be75205b
PS
4546+
4547+Alloc<A> al;
4548+
4549+auto as = std::allocate_shared<A>(al);
4550Index: libstdc++-v3/testsuite/20_util/scoped_allocator/1.cc
ad222a6b 4551===================================================================
be75205b
PS
4552--- libstdc++-v3/testsuite/20_util/scoped_allocator/1.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
4553+++ libstdc++-v3/testsuite/20_util/scoped_allocator/1.cc (.../branches/gcc-4_7-branch) (wersja 187906)
4554@@ -1,6 +1,6 @@
4555 // { dg-options "-std=gnu++0x" }
ad222a6b 4556
be75205b
PS
4557-// Copyright (C) 2011 Free Software Foundation, Inc.
4558+// Copyright (C) 2011, 2012 Free Software Foundation, Inc.
4559 //
4560 // This file is part of the GNU ISO C++ Library. This library is free
4561 // software; you can redistribute it and/or modify it under the
4562@@ -33,7 +33,7 @@
ad222a6b 4563
be75205b
PS
4564 Element(const allocator_type& a = allocator_type()) : alloc(a) { }
4565
4566- Element(std::allocator_arg_t, const allocator_type& a, int i = 0)
4567+ Element(std::allocator_arg_t, const allocator_type& a, int = 0)
4568 : alloc(a) { }
4569
4570 Element(std::allocator_arg_t, const allocator_type& a, const Element&)
4571@@ -53,6 +53,7 @@
4572 alloc1_type a1(1);
4573 Element e;
4574 EltVec ev1(1, e, a1);
4575+ VERIFY( ev1.get_allocator().get_personality() == 1 );
4576 VERIFY( ev1[0].get_allocator().get_personality() == 1 );
4577 }
4578
4579@@ -60,14 +61,16 @@
4580 {
4581 bool test __attribute((unused)) = false;
4582
4583- typedef std::vector<Element, Element::allocator_type> EltVec;
4584+ typedef std::scoped_allocator_adaptor<Element::allocator_type> inner_alloc_type;
4585
4586- typedef std::scoped_allocator_adaptor<EltVec::allocator_type,
4587- Element::allocator_type> alloc_type;
4588+ typedef std::vector<Element, inner_alloc_type> EltVec;
4589
4590+ typedef std::scoped_allocator_adaptor<Element::allocator_type,
4591+ Element::allocator_type> alloc_type;
4592+
4593 typedef std::vector<EltVec, alloc_type> EltVecVec;
4594
4595- alloc_type a(1, 2);
4596+ alloc_type a(1, Element::allocator_type(2)); // outer=1, inner=2
4597 Element e;
4598 EltVec ev(1, e);
4599 EltVecVec evv(1, ev, a);
4600@@ -76,7 +79,7 @@
4601 VERIFY( evv[0].get_allocator().get_personality() == 2 );
4602 VERIFY( evv[0][0].get_allocator().get_personality() == 2 );
4603
4604- alloc_type a2(3, 4);
4605+ alloc_type a2(3, Element::allocator_type(4)); // outer=3, inner=4
4606
4607 EltVecVec evv2(evv, a2); // copy with a different allocator
4608
4609@@ -96,4 +99,5 @@
4610 int main()
4611 {
4612 test01();
4613+ test02();
4614 }
4615Index: libstdc++-v3/testsuite/20_util/pointer_traits/requirements/typedefs.cc
ad222a6b 4616===================================================================
be75205b
PS
4617--- libstdc++-v3/testsuite/20_util/pointer_traits/requirements/typedefs.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
4618+++ libstdc++-v3/testsuite/20_util/pointer_traits/requirements/typedefs.cc (.../branches/gcc-4_7-branch) (wersja 187906)
4619@@ -32,6 +32,7 @@
4620 typedef typename test_type::pointer pointer;
4621 typedef typename test_type::element_type element_type;
4622 typedef typename test_type::difference_type difference_type;
4623+ typedef typename test_type::template rebind<char> rebind_type;
4624 }
4625
4626 int main()
4627Index: libstdc++-v3/config/abi/post/sparc-linux-gnu/baseline_symbols.txt
ad222a6b 4628===================================================================
be75205b
PS
4629--- libstdc++-v3/config/abi/post/sparc-linux-gnu/baseline_symbols.txt (.../tags/gcc_4_7_0_release) (wersja 187906)
4630+++ libstdc++-v3/config/abi/post/sparc-linux-gnu/baseline_symbols.txt (.../branches/gcc-4_7-branch) (wersja 187906)
4631@@ -43,6 +43,10 @@
4632 FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4
4633 FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4
4634 FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4
4635+FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17
4636+FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17
4637+FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17
4638+FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base7_M_swapERS0_@@GLIBCXX_3.4.17
4639 FUNC:_ZN14__gnu_parallel9_Settings3getEv@@GLIBCXX_3.4.10
4640 FUNC:_ZN14__gnu_parallel9_Settings3setERS0_@@GLIBCXX_3.4.10
4641 FUNC:_ZN9__gnu_cxx12__atomic_addEPVii@@GLIBCXX_3.4
4642@@ -877,6 +881,7 @@
4643 FUNC:_ZNSaIwEC2Ev@@GLIBCXX_3.4
4644 FUNC:_ZNSaIwED1Ev@@GLIBCXX_3.4
4645 FUNC:_ZNSaIwED2Ev@@GLIBCXX_3.4
4646+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_S_compareEjj@@GLIBCXX_3.4.16
4647 FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS1_@@GLIBCXX_3.4
4648 FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS1_@@GLIBCXX_3.4
4649 FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv@@GLIBCXX_3.4
4650@@ -961,6 +966,7 @@
4651 FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjRKS2_jj@@GLIBCXX_3.4
4652 FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjjw@@GLIBCXX_3.4
4653 FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7reserveEj@@GLIBCXX_3.4
4654+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE8pop_backEv@@GLIBCXX_3.4.17
4655 FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwjw@@GLIBCXX_3.4.5
4656 FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwjw@GLIBCXX_3.4
4657 FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEjjj@@GLIBCXX_3.4
4658@@ -1116,6 +1122,7 @@
4659 FUNC:_ZNSolsEt@@GLIBCXX_3.4
4660 FUNC:_ZNSolsEx@@GLIBCXX_3.4
4661 FUNC:_ZNSolsEy@@GLIBCXX_3.4
4662+FUNC:_ZNSs10_S_compareEjj@@GLIBCXX_3.4.16
4663 FUNC:_ZNSs12_Alloc_hiderC1EPcRKSaIcE@@GLIBCXX_3.4
4664 FUNC:_ZNSs12_Alloc_hiderC2EPcRKSaIcE@@GLIBCXX_3.4
4665 FUNC:_ZNSs12_M_leak_hardEv@@GLIBCXX_3.4
4666@@ -1200,6 +1207,7 @@
4667 FUNC:_ZNSs7replaceEjjRKSsjj@@GLIBCXX_3.4
4668 FUNC:_ZNSs7replaceEjjjc@@GLIBCXX_3.4
4669 FUNC:_ZNSs7reserveEj@@GLIBCXX_3.4
4670+FUNC:_ZNSs8pop_backEv@@GLIBCXX_3.4.17
4671 FUNC:_ZNSs9_M_assignEPcjc@@GLIBCXX_3.4.5
4672 FUNC:_ZNSs9_M_assignEPcjc@GLIBCXX_3.4
4673 FUNC:_ZNSs9_M_mutateEjjj@@GLIBCXX_3.4
4674@@ -1433,6 +1441,9 @@
4675 FUNC:_ZNSt13__future_base12_Result_baseD0Ev@@GLIBCXX_3.4.15
4676 FUNC:_ZNSt13__future_base12_Result_baseD1Ev@@GLIBCXX_3.4.15
4677 FUNC:_ZNSt13__future_base12_Result_baseD2Ev@@GLIBCXX_3.4.15
4678+FUNC:_ZNSt13__future_base19_Async_state_commonD0Ev@@GLIBCXX_3.4.17
4679+FUNC:_ZNSt13__future_base19_Async_state_commonD1Ev@@GLIBCXX_3.4.17
4680+FUNC:_ZNSt13__future_base19_Async_state_commonD2Ev@@GLIBCXX_3.4.17
4681 FUNC:_ZNSt13bad_exceptionD0Ev@@GLIBCXX_3.4
4682 FUNC:_ZNSt13bad_exceptionD1Ev@@GLIBCXX_3.4
4683 FUNC:_ZNSt13bad_exceptionD2Ev@@GLIBCXX_3.4
4684@@ -1741,6 +1752,8 @@
4685 FUNC:_ZNSt15__exception_ptrneERKNS_13exception_ptrES2_@@CXXABI_1.3.3
4686 FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
4687 FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
4688+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE12__safe_gbumpEi@@GLIBCXX_3.4.16
4689+FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE12__safe_pbumpEi@@GLIBCXX_3.4.16
4690 FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_@@GLIBCXX_3.4
4691 FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setpEPcS3_@@GLIBCXX_3.4
4692 FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv@@GLIBCXX_3.4
4693@@ -1780,6 +1793,8 @@
4694 FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEaSERKS2_@@GLIBCXX_3.4
4695 FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
4696 FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
4697+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE12__safe_gbumpEi@@GLIBCXX_3.4.16
4698+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE12__safe_pbumpEi@@GLIBCXX_3.4.16
4699 FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setgEPwS3_S3_@@GLIBCXX_3.4
4700 FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setpEPwS3_@@GLIBCXX_3.4
4701 FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4syncEv@@GLIBCXX_3.4
4702@@ -1824,6 +1839,7 @@
4703 FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcjj@@GLIBCXX_3.4
4704 FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
4705 FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
4706+FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8_M_pbumpEPcS4_x@@GLIBCXX_3.4.16
4707 FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi@@GLIBCXX_3.4
4708 FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi@@GLIBCXX_3.4
4709 FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9showmanycEv@@GLIBCXX_3.4.6
4710@@ -1841,6 +1857,7 @@
4711 FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7_M_syncEPwjj@@GLIBCXX_3.4
4712 FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4
4713 FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4
4714+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8_M_pbumpEPwS4_x@@GLIBCXX_3.4.16
4715 FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEj@@GLIBCXX_3.4
4716 FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEj@@GLIBCXX_3.4
4717 FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9showmanycEv@@GLIBCXX_3.4.6
4718@@ -2145,6 +2162,7 @@
4719 FUNC:_ZNSt6localeD2Ev@@GLIBCXX_3.4
4720 FUNC:_ZNSt6localeaSERKS_@@GLIBCXX_3.4
4721 FUNC:_ZNSt6thread15_M_start_threadESt10shared_ptrINS_10_Impl_baseEE@@GLIBCXX_3.4.11
4722+FUNC:_ZNSt6thread20hardware_concurrencyEv@@GLIBCXX_3.4.17
4723 FUNC:_ZNSt6thread4joinEv@@GLIBCXX_3.4.11
4724 FUNC:_ZNSt6thread6detachEv@@GLIBCXX_3.4.11
4725 FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1EP15__locale_structj@@GLIBCXX_3.4
4726@@ -2640,14 +2658,17 @@
4727 FUNC:_ZnwjRKSt9nothrow_t@@GLIBCXX_3.4
4728 FUNC:__atomic_flag_for_address@@GLIBCXX_3.4.11
4729 FUNC:__atomic_flag_wait_explicit@@GLIBCXX_3.4.11
4730+FUNC:__cxa_allocate_dependent_exception@@CXXABI_1.3.6
4731 FUNC:__cxa_allocate_exception@@CXXABI_1.3
4732 FUNC:__cxa_bad_cast@@CXXABI_1.3
4733 FUNC:__cxa_bad_typeid@@CXXABI_1.3
4734 FUNC:__cxa_begin_catch@@CXXABI_1.3
4735 FUNC:__cxa_call_unexpected@@CXXABI_1.3
4736 FUNC:__cxa_current_exception_type@@CXXABI_1.3
4737+FUNC:__cxa_deleted_virtual@@CXXABI_1.3.6
4738 FUNC:__cxa_demangle@@CXXABI_1.3
4739 FUNC:__cxa_end_catch@@CXXABI_1.3
4740+FUNC:__cxa_free_dependent_exception@@CXXABI_1.3.6
4741 FUNC:__cxa_free_exception@@CXXABI_1.3
4742 FUNC:__cxa_get_exception_ptr@@CXXABI_1.3.1
4743 FUNC:__cxa_get_globals@@CXXABI_1.3
4744@@ -2658,6 +2679,7 @@
4745 FUNC:__cxa_pure_virtual@@CXXABI_1.3
4746 FUNC:__cxa_rethrow@@CXXABI_1.3
4747 FUNC:__cxa_throw@@CXXABI_1.3
4748+FUNC:__cxa_tm_cleanup@@CXXABI_TM_1
4749 FUNC:__cxa_vec_cctor@@CXXABI_1.3
4750 FUNC:__cxa_vec_cleanup@@CXXABI_1.3
4751 FUNC:__cxa_vec_ctor@@CXXABI_1.3
4752@@ -2701,7 +2723,9 @@
4753 OBJECT:0:CXXABI_1.3.3
4754 OBJECT:0:CXXABI_1.3.4
4755 OBJECT:0:CXXABI_1.3.5
4756+OBJECT:0:CXXABI_1.3.6
4757 OBJECT:0:CXXABI_LDBL_1.3
4758+OBJECT:0:CXXABI_TM_1
4759 OBJECT:0:GLIBCXX_3.4
4760 OBJECT:0:GLIBCXX_3.4.1
4761 OBJECT:0:GLIBCXX_3.4.10
4762@@ -2710,6 +2734,8 @@
4763 OBJECT:0:GLIBCXX_3.4.13
4764 OBJECT:0:GLIBCXX_3.4.14
4765 OBJECT:0:GLIBCXX_3.4.15
4766+OBJECT:0:GLIBCXX_3.4.16
4767+OBJECT:0:GLIBCXX_3.4.17
4768 OBJECT:0:GLIBCXX_3.4.2
4769 OBJECT:0:GLIBCXX_3.4.3
4770 OBJECT:0:GLIBCXX_3.4.4
4771@@ -2737,6 +2763,7 @@
4772 OBJECT:12:_ZTIN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
4773 OBJECT:12:_ZTIN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4
4774 OBJECT:12:_ZTIN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4
4775+OBJECT:12:_ZTINSt13__future_base19_Async_state_commonE@@GLIBCXX_3.4.17
4776 OBJECT:12:_ZTINSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_LDBL_3.4
4777 OBJECT:12:_ZTINSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_LDBL_3.4
4778 OBJECT:12:_ZTINSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_LDBL_3.4
4779@@ -3245,6 +3272,7 @@
4780 OBJECT:20:_ZTSSt15underflow_error@@GLIBCXX_3.4
4781 OBJECT:20:_ZTVNSt13__future_base11_State_baseE@@GLIBCXX_3.4.15
4782 OBJECT:20:_ZTVNSt13__future_base12_Result_baseE@@GLIBCXX_3.4.15
4783+OBJECT:20:_ZTVNSt13__future_base19_Async_state_commonE@@GLIBCXX_3.4.17
4784 OBJECT:20:_ZTVNSt8ios_base7failureE@@GLIBCXX_3.4
4785 OBJECT:20:_ZTVSt10bad_typeid@@GLIBCXX_3.4
4786 OBJECT:20:_ZTVSt10lock_error@@GLIBCXX_3.4.11
4787@@ -3437,6 +3465,7 @@
4788 OBJECT:40:_ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4
4789 OBJECT:40:_ZTVSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4
4790 OBJECT:40:_ZTVSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4
4791+OBJECT:41:_ZTSNSt13__future_base19_Async_state_commonE@@GLIBCXX_3.4.17
4792 OBJECT:41:_ZTSSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4
4793 OBJECT:41:_ZTSSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCXX_3.4
4794 OBJECT:44:_ZTVN10__cxxabiv117__class_type_infoE@@CXXABI_1.3
4795Index: libstdc++-v3/acinclude.m4
7b762fbe 4796===================================================================
be75205b
PS
4797--- libstdc++-v3/acinclude.m4 (.../tags/gcc_4_7_0_release) (wersja 187906)
4798+++ libstdc++-v3/acinclude.m4 (.../branches/gcc-4_7-branch) (wersja 187906)
4799@@ -2955,11 +2955,10 @@
4800 CXXFLAGS="$old_CXXFLAGS"
4801 AC_LANG_RESTORE
4802
4803- # Set atomicity_dir to builtins if all of above tests pass.
4804+ # Set atomicity_dir to builtins if all but the long long test above passes.
4805 if test $glibcxx_cv_atomic_bool = yes \
4806 && test $glibcxx_cv_atomic_short = yes \
4807- && test $glibcxx_cv_atomic_int = yes \
4808- && test $glibcxx_cv_atomic_long_long = yes ; then
4809+ && test $glibcxx_cv_atomic_int = yes; then
4810 AC_DEFINE(_GLIBCXX_ATOMIC_BUILTINS, 1,
4811 [Define if the compiler supports C++11 atomics.])
4812 atomicity_dir=cpu/generic/atomicity_builtins
4813Index: libiberty/ChangeLog
4814===================================================================
4815--- libiberty/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187906)
4816+++ libiberty/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187906)
4817@@ -1,3 +1,12 @@
4818+2012-03-24 H.J. Lu <hongjiu.lu@intel.com>
ad222a6b 4819+
be75205b 4820+ * testsuite/demangle-expected: Fix a typo.
ad222a6b 4821+
be75205b 4822+2012-03-22 Jason Merrill <jason@redhat.com>
ad222a6b 4823+
be75205b
PS
4824+ * cp-demangle.c (cplus_demangle_operators): Add li.
4825+ (d_unqualified_name): Handle it specially.
ad222a6b 4826+
be75205b
PS
4827 2012-03-22 Release Manager
4828
4829 * GCC 4.7.0 released.
4830Index: libiberty/testsuite/demangle-expected
4831===================================================================
4832--- libiberty/testsuite/demangle-expected (.../tags/gcc_4_7_0_release) (wersja 187906)
4833+++ libiberty/testsuite/demangle-expected (.../branches/gcc-4_7-branch) (wersja 187906)
4834@@ -4073,6 +4073,9 @@
4835 _Z2f1IiEDTnw_T_ilEES0_
4836 decltype (new int{}) f1<int>(int)
4837 --format=gnu-v3
4838+_Zli2_wPKc
4839+operator"" _w(char const*)
4840+--format=gnu-v3
4841 _Z1fIiEDTnw_Dapifp_EET_
4842 decltype (new auto({parm#1})) f<int>(int)
4843 --format=gnu-v3
4844Index: libiberty/cp-demangle.c
4845===================================================================
4846--- libiberty/cp-demangle.c (.../tags/gcc_4_7_0_release) (wersja 187906)
4847+++ libiberty/cp-demangle.c (.../branches/gcc-4_7-branch) (wersja 187906)
4848@@ -1419,7 +1419,12 @@
4849
4850 ret = d_operator_name (di);
4851 if (ret != NULL && ret->type == DEMANGLE_COMPONENT_OPERATOR)
4852- di->expansion += sizeof "operator" + ret->u.s_operator.op->len - 2;
4853+ {
4854+ di->expansion += sizeof "operator" + ret->u.s_operator.op->len - 2;
4855+ if (!strcmp (ret->u.s_operator.op->code, "li"))
4856+ ret = d_make_comp (di, DEMANGLE_COMPONENT_UNARY, ret,
4857+ d_source_name (di));
4858+ }
4859 return ret;
4860 }
4861 else if (peek == 'C' || peek == 'D')
4862@@ -1596,6 +1601,7 @@
4863 { "ix", NL ("[]"), 2 },
4864 { "lS", NL ("<<="), 2 },
4865 { "le", NL ("<="), 2 },
4866+ { "li", NL ("operator\"\" "), 1 },
4867 { "ls", NL ("<<"), 2 },
4868 { "lt", NL ("<"), 2 },
4869 { "mI", NL ("-="), 2 },
4870Index: ChangeLog
4871===================================================================
4872--- ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187906)
4873+++ ChangeLog (.../branches/gcc-4_7-branch) (wersja 187906)
4874@@ -1,3 +1,18 @@
4875+2012-05-16 Olivier Hainque <hainque@adacore.com>
ad222a6b 4876+
be75205b
PS
4877+ * Makefile.tpl (gcc-no-fixedincludes): Rename into ...
4878+ (gcc-install-no-fixedincludes): Now forwarder to local target in gcc/
4879+ (install-no-fixedincludes): Adjust accordingly.
4880+ * Makefile.in: Regenerate.
ad222a6b 4881+
be75205b 4882+2012-03-28 Georg-Johann Lay <avr@gjlay.de>
7b762fbe 4883+
be75205b 4884+ Backport from 2012-03-28 mainline r185907.
7b762fbe 4885+
be75205b
PS
4886+ PR target/52737
4887+ * contrib/gcc_update (files_and_dependencies):
4888+ Remove gcc/config/avr/t-multilib from touch data.
7b762fbe 4889+
b4627121 4890 2012-03-22 Release Manager
7b762fbe 4891
b4627121 4892 * GCC 4.7.0 released.
be75205b 4893Index: contrib/gcc_update
7b762fbe 4894===================================================================
be75205b
PS
4895--- contrib/gcc_update (.../tags/gcc_4_7_0_release) (wersja 187906)
4896+++ contrib/gcc_update (.../branches/gcc-4_7-branch) (wersja 187906)
4897@@ -83,7 +83,6 @@
4898 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
4899 gcc/config/avr/avr-tables.opt: gcc/config/avr/avr-mcus.def gcc/config/avr/genopt.sh
4900 gcc/config/avr/t-multilib: gcc/config/avr/avr-mcus.def gcc/config/avr/genmultilib.awk
4901-gcc/config/avr/multilib.h: gcc/config/avr/avr-mcus.def gcc/config/avr/genmultilib.awk
4902 gcc/config/c6x/c6x-tables.opt: gcc/config/c6x/c6x-isas.def gcc/config/c6x/genopt.sh
4903 gcc/config/c6x/c6x-sched.md: gcc/config/c6x/c6x-sched.md.in gcc/config/c6x/gensched.sh
4904 gcc/config/c6x/c6x-mult.md: gcc/config/c6x/c6x-mult.md.in gcc/config/c6x/genmult.sh
4905Index: libjava/configure.ac
ad222a6b 4906===================================================================
be75205b
PS
4907--- libjava/configure.ac (.../tags/gcc_4_7_0_release) (wersja 187906)
4908+++ libjava/configure.ac (.../branches/gcc-4_7-branch) (wersja 187906)
4909@@ -1825,7 +1825,7 @@
4910 AS_HELP_STRING([--disable-symvers],
4911 [disable symbol versioning for libjava]),
4912 [case "$enableval" in
4913- yes) libjava_cv_anon_version_script=yes ;;
4914+ yes|gnu*) libjava_cv_anon_version_script=yes ;;
4915 no) libjava_cv_anon_version_script=no ;;
4916 *) AC_MSG_ERROR([Unknown argument to enable/disable symvers]);;
4917 esac],
4918Index: libjava/include/Makefile.in
4919===================================================================
4920--- libjava/include/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187906)
4921+++ libjava/include/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187906)
4922@@ -136,7 +136,6 @@
4923 EXEEXT = @EXEEXT@
4924 FGREP = @FGREP@
4925 GCC_FOR_ECJX = @GCC_FOR_ECJX@
4926-GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@
4927 GCDEPS = @GCDEPS@
4928 GCINCS = @GCINCS@
4929 GCJ = @GCJ@
4930@@ -184,6 +183,7 @@
4931 LIBDIR = @LIBDIR@
4932 LIBFFI = @LIBFFI@
4933 LIBFFIINCS = @LIBFFIINCS@
4934+LIBGCC_UNWIND_INCLUDE = @LIBGCC_UNWIND_INCLUDE@
4935 LIBGCJDEBUG = @LIBGCJDEBUG@
4936 LIBGCJTESTSPEC = @LIBGCJTESTSPEC@
4937 LIBGCJ_BC_SPEC = @LIBGCJ_BC_SPEC@
4938Index: libjava/ChangeLog
4939===================================================================
4940--- libjava/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187906)
4941+++ libjava/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187906)
4942@@ -1,3 +1,15 @@
4943+2012-05-21 Benjamin Kosnik <bkoz@redhat.com>
ad222a6b 4944+
be75205b
PS
4945+ PR libstdc++/52700
4946+ * configure.ac: Allow gnu, gnu-versioned-namespace for
4947+ --enable-symvers arguments.
4948+ * configure: Regenerate.
4949+
4950+2012-04-23 Andrew Haley <aph@redhat.com>
4951+
4952+ * defineclass.cc (MAJOR_1_7, MINOR_1_7): New.
4953+ (parse): Allow MAJOR_1_7 classfile version.
ad222a6b
PS
4954+
4955 2012-03-22 Release Manager
4956
4957 * GCC 4.7.0 released.
be75205b 4958Index: libjava/testsuite/Makefile.in
ad222a6b 4959===================================================================
be75205b
PS
4960--- libjava/testsuite/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187906)
4961+++ libjava/testsuite/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187906)
4962@@ -111,7 +111,6 @@
4963 EXEEXT = @EXEEXT@
4964 FGREP = @FGREP@
4965 GCC_FOR_ECJX = @GCC_FOR_ECJX@
4966-GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@
4967 GCDEPS = @GCDEPS@
4968 GCINCS = @GCINCS@
4969 GCJ = @GCJ@
4970@@ -159,6 +158,7 @@
4971 LIBDIR = @LIBDIR@
4972 LIBFFI = @LIBFFI@
4973 LIBFFIINCS = @LIBFFIINCS@
4974+LIBGCC_UNWIND_INCLUDE = @LIBGCC_UNWIND_INCLUDE@
4975 LIBGCJDEBUG = @LIBGCJDEBUG@
4976 LIBGCJTESTSPEC = @LIBGCJTESTSPEC@
4977 LIBGCJ_BC_SPEC = @LIBGCJ_BC_SPEC@
4978Index: libjava/configure
4979===================================================================
4980--- libjava/configure (.../tags/gcc_4_7_0_release) (wersja 187906)
4981+++ libjava/configure (.../branches/gcc-4_7-branch) (wersja 187906)
4982@@ -24557,7 +24557,7 @@
4983 # Check whether --enable-symvers was given.
4984 if test "${enable_symvers+set}" = set; then :
4985 enableval=$enable_symvers; case "$enableval" in
4986- yes) libjava_cv_anon_version_script=yes ;;
4987+ yes|gnu*) libjava_cv_anon_version_script=yes ;;
4988 no) libjava_cv_anon_version_script=no ;;
4989 *) as_fn_error "Unknown argument to enable/disable symvers" "$LINENO" 5;;
4990 esac
4991Index: libjava/gcj/Makefile.in
4992===================================================================
4993--- libjava/gcj/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187906)
4994+++ libjava/gcj/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187906)
4995@@ -135,7 +135,6 @@
4996 EXEEXT = @EXEEXT@
4997 FGREP = @FGREP@
4998 GCC_FOR_ECJX = @GCC_FOR_ECJX@
4999-GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@
5000 GCDEPS = @GCDEPS@
5001 GCINCS = @GCINCS@
5002 GCJ = @GCJ@
5003@@ -183,6 +182,7 @@
5004 LIBDIR = @LIBDIR@
5005 LIBFFI = @LIBFFI@
5006 LIBFFIINCS = @LIBFFIINCS@
5007+LIBGCC_UNWIND_INCLUDE = @LIBGCC_UNWIND_INCLUDE@
5008 LIBGCJDEBUG = @LIBGCJDEBUG@
5009 LIBGCJTESTSPEC = @LIBGCJTESTSPEC@
5010 LIBGCJ_BC_SPEC = @LIBGCJ_BC_SPEC@
5011Index: libjava/defineclass.cc
5012===================================================================
5013--- libjava/defineclass.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
5014+++ libjava/defineclass.cc (.../branches/gcc-4_7-branch) (wersja 187906)
5015@@ -361,6 +361,8 @@
5016 #define MINOR_1_5 0
5017 #define MAJOR_1_6 50
5018 #define MINOR_1_6 0
5019+#define MAJOR_1_7 51
5020+#define MINOR_1_7 0
ad222a6b 5021
be75205b
PS
5022 void
5023 _Jv_ClassReader::parse ()
5024@@ -371,8 +373,8 @@
ad222a6b 5025
be75205b
PS
5026 int minor_version = read2u ();
5027 int major_version = read2u ();
5028- if (major_version < MAJOR_1_1 || major_version > MAJOR_1_6
5029- || (major_version == MAJOR_1_6 && minor_version > MINOR_1_6))
5030+ if (major_version < MAJOR_1_1 || major_version > MAJOR_1_7
5031+ || (major_version == MAJOR_1_7 && minor_version > MINOR_1_7))
5032 throw_class_format_error ("unrecognized class file version");
5033 is_15 = (major_version >= MAJOR_1_5);
5034
5035Index: libgcc/config.host
7b762fbe 5036===================================================================
be75205b
PS
5037--- libgcc/config.host (.../tags/gcc_4_7_0_release) (wersja 187906)
5038+++ libgcc/config.host (.../branches/gcc-4_7-branch) (wersja 187906)
5039@@ -744,15 +744,13 @@
5040 ;;
5041 mips*-*-netbsd*) # NetBSD/mips, either endian.
5042 ;;
5043-mips64*-*-linux* | mipsisa64*-*-linux*)
5044- extra_parts="$extra_parts crtfastmath.o"
5045- tmake_file="${tmake_file} t-crtfm mips/t-mips16 mips/t-tpbit"
5046- md_unwind_header=mips/linux-unwind.h
5047- ;;
5048 mips*-*-linux*) # Linux MIPS, either endian.
5049 extra_parts="$extra_parts crtfastmath.o"
5050 tmake_file="${tmake_file} t-crtfm mips/t-mips16"
5051 md_unwind_header=mips/linux-unwind.h
5052+ if test "${ac_cv_sizeof_long_double}" = 16; then
5053+ tmake_file="${tmake_file} mips/t-tpbit"
5054+ fi
5055 ;;
5056 mips*-*-openbsd*)
5057 ;;
5058@@ -848,9 +846,15 @@
5059 tmake_file="$tmake_file rs6000/t-darwin64 rs6000/t-ibm-ldouble"
5060 extra_parts="$extra_parts crt2.o"
5061 ;;
5062-powerpc-*-freebsd*)
5063- 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"
5064+powerpc*-*-freebsd*)
5065+ tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff rs6000/t-freebsd t-softfp-sfdf t-softfp-excl t-softfp"
5066 extra_parts="$extra_parts crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
5067+ case ${host} in
5068+ powerpc64*)
5069+ tmake_file="${tmake_file} rs6000/t-freebsd64"
5070+ md_unwind_header=rs6000/freebsd-unwind.h
5071+ ;;
5072+ esac
5073 ;;
5074 powerpc-*-netbsd*)
5075 tmake_file="$tmake_file rs6000/t-netbsd rs6000/t-crtstuff"
5076Index: libgcc/Makefile.in
ad222a6b 5077===================================================================
be75205b
PS
5078--- libgcc/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187906)
5079+++ libgcc/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187906)
5080@@ -1002,14 +1002,26 @@
5081 $(libunwind-objects) $(libunwind-s-objects) \
5082 $(EXTRA_PARTS): libgcc_tm.h
ad222a6b 5083
be75205b
PS
5084-install-unwind_h:
5085+# Copy unwind.h to the place where gcc will look for it at build-time
5086+install-unwind_h-forbuild:
5087 dest=$(gcc_objdir)/include/tmp$$$$-unwind.h; \
5088 cp unwind.h $$dest; \
5089 chmod a+r $$dest; \
5090 sh $(srcdir)/../move-if-change $$dest $(gcc_objdir)/include/unwind.h
ad222a6b 5091
be75205b
PS
5092-all: install-unwind_h
5093+# Copy unwind.h to the place where gcc will look at run-time, once installed
5094+#
5095+# This is redundant with the internal copy above when using a regular toplevel
5096+# "install" target, because gcc's install will copy to the destination as well.
5097+#
5098+# This is however useful for "install-no-fixincludes" case, when only the gcc
5099+# internal headers are copied by gcc's install.
5100+install-unwind_h:
5101+ $(mkinstalldirs) $(DESTDIR)$(libsubdir)/include
5102+ $(INSTALL_DATA) unwind.h $(DESTDIR)$(libsubdir)/include
ad222a6b 5103
be75205b
PS
5104+all: install-unwind_h-forbuild
5105+
5106 # Documentation targets (empty).
5107 .PHONY: info html dvi pdf install-info install-html install-pdf
ad222a6b 5108
be75205b
PS
5109@@ -1067,12 +1079,13 @@
5110 esac; \
5111 done
ad222a6b 5112
be75205b
PS
5113-install: install-leaf
5114+install: install-leaf install-unwind_h
5115 @: $(MAKE) ; $(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
b4627121 5116
be75205b 5117 install-strip: install
b4627121 5118
be75205b
PS
5119 .PHONY: install install-shared install-libunwind install-strip
5120+.PHONY: install-unwind_h install-unwind_h-forbuild
b4627121 5121
be75205b
PS
5122 # Don't export variables to the environment, in order to not confuse
5123 # configure.
5124Index: libgcc/configure.ac
5125===================================================================
5126--- libgcc/configure.ac (.../tags/gcc_4_7_0_release) (wersja 187906)
5127+++ libgcc/configure.ac (.../branches/gcc-4_7-branch) (wersja 187906)
5128@@ -14,6 +14,11 @@
5129 AC_INIT([GNU C Runtime Library], 1.0,,[libgcc])
5130 AC_CONFIG_SRCDIR([static-object.mk])
b4627121 5131
be75205b
PS
5132+# The libgcc should not depend on any header files
5133+AC_DEFUN([_AC_INCLUDES_DEFAULT_REQUIREMENTS],
5134+ [m4_divert_text([DEFAULTS],
5135+ [ac_includes_default='/* none */'])])
b4627121 5136+
be75205b
PS
5137 AC_ARG_WITH(target-subdir,
5138 [ --with-target-subdir=SUBDIR Configuring in a subdirectory for target])
5139 AC_ARG_WITH(cross-host,
5140Index: libgcc/ChangeLog
b4627121 5141===================================================================
be75205b
PS
5142--- libgcc/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187906)
5143+++ libgcc/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187906)
5144@@ -1,3 +1,127 @@
5145+2012-05-25 Ian Lance Taylor <iant@google.com>
5146+
5147+ * config/i386/morestack.S (__morestack_non_split): Check whether
5148+ caller is varargs and needs %bp to hold the stack frame on return.
5149+
5150+2012-05-24 Olivier Hainque <hainque@adacore.com>
5151+
5152+ * Makefile.in: Move dependency on install-unwind_h from
5153+ "install-leaf" to "install".
5154+
5155+2012-05-21 Andrew Pinski <apinski@cavium.com>
5156+
5157+ PR bootstrap/53183
5158+ * configure.ac: Define the default includes to being none.
5159+ * configure: Regenerate.
5160+
5161+2012-05-16 Olivier Hainque <hainque@adacore.com>
5162+
5163+ * Makefile.in (install-unwind_h): Rename into ...
5164+ (install-unwind_h-forbuild): New target.
5165+ (all): Use it instead of the former install-unwind_h.
5166+ (install-unwind_h): Reinstate, copy to user install destination
5167+ for include files, not to the internal gcc object directory one.
5168+ (install-leaf): Depend on it.
5169+
5170+2012-04-30 Andreas Tobler <andreast@fgznet.ch>
5171+
5172+ Backport from mainline
5173+ 2012-03-21 Andreas Tobler <andreast@fgznet.ch>
5174+
5175+ * config.host: Add bits to support powerpc64-*-freebsd*.
5176+ * config/rs6000/freebsd-unwind.h: New file.
5177+ * config/rs6000/t-freebsd64: New file.
5178+
5179+2012-04-28 Aurelien Jarno <aurelien@aurel32.net>
5180+
5181+ * config.host (mips64*-*-linux*, mipsisa64*-*-linux*): Remove.
5182+ (mips*-*-linux*): Include mips/t-tpbit when long double is
5183+ 16 bytes long.
5184+
5185+2012-04-20 Thomas Schwinge <thomas@codesourcery.com>
5186+
5187+ struct siginfo vs. siginfo_t
5188+
5189+ Backport from trunk:
5190+
5191+ 2012-04-20 Thomas Schwinge <thomas@codesourcery.com>
5192+
5193+ * config/alpha/linux-unwind.h (alpha_fallback_frame_state): Use
5194+ siginfo_t instead of struct siginfo.
5195+ * config/bfin/linux-unwind.h (bfin_fallback_frame_state): Likewise.
5196+ * config/i386/linux-unwind.h (x86_fallback_frame_state): Likewise.
5197+ * config/ia64/linux-unwind.h (ia64_fallback_frame_state)
5198+ (ia64_handle_unwabi): Likewise.
5199+ * config/mips/linux-unwind.h (mips_fallback_frame_state): Likewise.
5200+ * config/pa/linux-unwind.h (pa32_fallback_frame_state): Likewise.
5201+ * config/sh/linux-unwind.h (shmedia_fallback_frame_state)
5202+ (sh_fallback_frame_state): Likewise.
5203+ * config/tilepro/linux-unwind.h (tile_fallback_frame_state): Likewise.
5204+ * config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Likewise.
5205+
5206+2012-04-06 Walter Lee <walt@tilera.com>
5207+
5208+ Backport from mainline
5209+ 2012-03-07 Walter Lee <walt@tilera.com>
5210+
5211+ * config/tilepro/atomic.c: Rename "atomic_" prefix to
5212+ "arch_atomic_".
5213+ (atomic_xor): Rename and move definition to
5214+ config/tilepro/atomic.h.
5215+ (atomic_nand): Ditto.
5216+ * config/tilepro/atomic.h: Rename "atomic_" prefix to
5217+ "arch_atomic_".
5218+ (arch_atomic_xor): Move from config/tilepro/atomic.c.
5219+ (arch_atomic_nand): Ditto.
5220+
5221+2012-04-02 H.J. Lu <hongjiu.lu@intel.com>
5222+
5223+ Backported from mainline
5224+ 2012-04-02 H.J. Lu <hongjiu.lu@intel.com>
5225+
5226+ * config/i386/linux-unwind.h (RT_SIGRETURN_SYSCALL): Update x32
5227+ system call number.
5228+
5229+2012-03-31 Eric Botcazou <ebotcazou@adacore.com>
5230+
5231+ * config/ia64/unwind-ia64.c (uw_install_context): Manually save LC
5232+ if it hasn't been previously saved.
5233+
5234+2012-03-28 Georg-Johann Lay <avr@gjlay.de>
5235+
5236+ Backport from 2012-03-28 mainline r185907.
5237+
5238+ PR target/52737
5239+ * config/avr/lib1funcs.S: Use __AVR_HAVE_SPH__ for SP_H checks
5240+ instead of __AVR_HAVE_8BIT_SP__.
5241+
5242+2012-03-22 Georg-Johann Lay <avr@gjlay.de>
5243+
5244+ Backport from 2012-03-07 mainline r185033.
5245+
5246+ PR target/52507
5247+ * config/avr/lib1funcs.S (__movmemx_hi): Fix loop label in RAM-part.
5248+
5249+ Backport from 2012-03-07 mainline r185031.
5250+
5251+ PR target/52505
5252+ * config/avr/lib1funcs.S (__xload_1): Don't read unintentionally
5253+ from RAM.
5254+
5255+ Backport from 2012-03-07 mainline r185030.
5256+
5257+ PR target/52461
5258+ PR target/52508
5259+ * config/avr/lib1funcs.S (__do_copy_data): Clear RAMPZ after usage
5260+ if RAMPZ affects reading from RAM.
5261+ (__tablejump_elpm__): Ditto.
5262+ (.xload): Ditto.
5263+ (__movmemx_hi): Ditto.
5264+ (__do_global_ctors): Right condition for RAMPZ usage is "have ELPM".
5265+ (__do_global_dtors): Ditto.
5266+ (__xload_1, __xload_2, __xload_3, __xload_4): Ditto.
5267+ (__movmemx_hi): Ditto.
5268+
5269 2012-03-22 Release Manager
b4627121 5270
be75205b
PS
5271 * GCC 4.7.0 released.
5272Index: libgcc/config/alpha/linux-unwind.h
5273===================================================================
5274--- libgcc/config/alpha/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187906)
5275+++ libgcc/config/alpha/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187906)
5276@@ -1,5 +1,5 @@
5277 /* DWARF2 EH unwinding support for Alpha Linux.
5278- Copyright (C) 2004, 2005, 2009, 2011 Free Software Foundation, Inc.
5279+ Copyright (C) 2004, 2005, 2009, 2011, 2012 Free Software Foundation, Inc.
b4627121 5280
be75205b 5281 This file is part of GCC.
b4627121 5282
be75205b
PS
5283@@ -49,7 +49,7 @@
5284 else if (pc[1] == 0x201f015f) /* lda $0,NR_rt_sigreturn */
5285 {
5286 struct rt_sigframe {
5287- struct siginfo info;
5288+ siginfo_t info;
5289 struct ucontext uc;
5290 } *rt_ = context->cfa;
5291 sc = &rt_->uc.uc_mcontext;
5292Index: libgcc/config/ia64/unwind-ia64.c
b4627121 5293===================================================================
be75205b
PS
5294--- libgcc/config/ia64/unwind-ia64.c (.../tags/gcc_4_7_0_release) (wersja 187906)
5295+++ libgcc/config/ia64/unwind-ia64.c (.../branches/gcc-4_7-branch) (wersja 187906)
5296@@ -2171,8 +2171,20 @@
5297 struct _Unwind_Context *target)
5298 {
5299 unsigned long ireg_buf[4], ireg_nat = 0, ireg_pr = 0;
5300+ unsigned long saved_lc;
5301 long i;
b4627121 5302
be75205b
PS
5303+ /* ??? LC is a fixed register so the call to __builtin_unwind_init in
5304+ uw_init_context doesn't cause it to be saved. In case it isn't in
5305+ the user frames either, we need to manually do so here, lest it be
5306+ clobbered by the loop just below. */
5307+ if (target->lc_loc == NULL)
5308+ {
5309+ register unsigned long lc asm ("ar.lc");
5310+ saved_lc = lc;
5311+ target->lc_loc = &saved_lc;
5312+ }
5313+
5314 /* Copy integer register data from the target context to a
5315 temporary buffer. Do this so that we can frob AR.UNAT
5316 to get the NaT bits for these registers set properly. */
5317Index: libgcc/config/ia64/linux-unwind.h
5318===================================================================
5319--- libgcc/config/ia64/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187906)
5320+++ libgcc/config/ia64/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187906)
5321@@ -1,5 +1,5 @@
5322 /* DWARF2 EH unwinding support for IA64 Linux.
5323- Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
5324+ Copyright (C) 2004, 2005, 2009, 2012 Free Software Foundation, Inc.
b4627121 5325
be75205b 5326 This file is part of GCC.
7b762fbe 5327
be75205b
PS
5328@@ -47,7 +47,7 @@
5329 struct sigframe {
5330 char scratch[16];
5331 unsigned long sig_number;
5332- struct siginfo *info;
5333+ siginfo_t *info;
5334 struct sigcontext *sc;
5335 } *frame_ = (struct sigframe *)context->psp;
5336 struct sigcontext *sc = frame_->sc;
5337@@ -137,7 +137,7 @@
5338 struct sigframe {
5339 char scratch[16];
5340 unsigned long sig_number;
5341- struct siginfo *info;
5342+ siginfo_t *info;
5343 struct sigcontext *sc;
5344 } *frame = (struct sigframe *)context->psp;
5345 struct sigcontext *sc = frame->sc;
5346Index: libgcc/config/i386/linux-unwind.h
ad222a6b 5347===================================================================
be75205b
PS
5348--- libgcc/config/i386/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187906)
5349+++ libgcc/config/i386/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187906)
5350@@ -1,5 +1,5 @@
5351 /* DWARF2 EH unwinding support for AMD x86-64 and x86.
5352- Copyright (C) 2004, 2005, 2006, 2009, 2010, 2011
5353+ Copyright (C) 2004, 2005, 2006, 2009, 2010, 2011, 2012
ad222a6b 5354 Free Software Foundation, Inc.
ad222a6b 5355
be75205b
PS
5356 This file is part of GCC.
5357@@ -48,7 +48,7 @@
5358 #ifdef __LP64__
5359 #define RT_SIGRETURN_SYSCALL 0x050f0000000fc0c7ULL
5360 #else
5361-#define RT_SIGRETURN_SYSCALL 0x050f40002006c0c7ULL
5362+#define RT_SIGRETURN_SYSCALL 0x050f40000201c0c7ULL
5363 #endif
5364 if (*(unsigned char *)(pc+0) == 0x48
5365 && *(unsigned long long *)(pc+1) == RT_SIGRETURN_SYSCALL)
5366@@ -139,9 +139,9 @@
5367 {
5368 struct rt_sigframe {
5369 int sig;
5370- struct siginfo *pinfo;
5371+ siginfo_t *pinfo;
5372 void *puc;
5373- struct siginfo info;
5374+ siginfo_t info;
5375 struct ucontext uc;
5376 } *rt_ = context->cfa;
5377 /* The void * cast is necessary to avoid an aliasing warning.
5378Index: libgcc/config/i386/morestack.S
ad222a6b 5379===================================================================
be75205b
PS
5380--- libgcc/config/i386/morestack.S (.../tags/gcc_4_7_0_release) (wersja 187906)
5381+++ libgcc/config/i386/morestack.S (.../branches/gcc-4_7-branch) (wersja 187906)
5382@@ -1,5 +1,5 @@
5383 # x86/x86_64 support for -fsplit-stack.
5384-# Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
5385+# Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
5386 # Contributed by Ian Lance Taylor <iant@google.com>.
ad222a6b 5387
be75205b
PS
5388 # This file is part of GCC.
5389@@ -138,6 +138,24 @@
5390 je 1f # see above.
5391 addl $2,%eax
5392 1: inc %eax
ad222a6b 5393+
be75205b
PS
5394+ # If the instruction that we return to is
5395+ # leal 20(%ebp),{%eax,%ecx,%edx}
5396+ # then we have been called by a varargs function that expects
5397+ # %ebp to hold a real value. That can only work if we do the
5398+ # full stack split routine. FIXME: This is fragile.
5399+ cmpb $0x8d,(%eax)
5400+ jne 3f
5401+ cmpb $0x14,2(%eax)
5402+ jne 3f
5403+ cmpb $0x45,1(%eax)
5404+ je 2f
5405+ cmpb $0x4d,1(%eax)
5406+ je 2f
5407+ cmpb $0x55,1(%eax)
5408+ je 2f
5409+
5410+3:
5411 movl %eax,4(%esp) # Update return address.
ad222a6b 5412
be75205b
PS
5413 popl %eax # Restore %eax and stack.
5414@@ -175,18 +193,32 @@
5415 #else
5416 cmpl %fs:0x40,%eax
5417 #endif
5418- popq %rax # Restore register.
ad222a6b 5419
be75205b
PS
5420- .cfi_adjust_cfa_offset -8 # Adjust for popped register.
5421-
5422 jb 2f # Get more space if we need it.
5423
5424 # This breaks call/return prediction, as described above.
5425- incq (%rsp) # Increment the return address.
5426+ incq 8(%rsp) # Increment the return address.
5427
5428+ # If the instruction that we return to is
5429+ # leaq 24(%rbp), %r11n
5430+ # then we have been called by a varargs function that expects
5431+ # %ebp to hold a real value. That can only work if we do the
5432+ # full stack split routine. FIXME: This is fragile.
5433+ movq 8(%rsp),%rax
5434+ cmpl $0x185d8d4c,(%rax)
5435+ je 2f
ad222a6b 5436+
be75205b 5437+ popq %rax # Restore register.
ad222a6b 5438+
be75205b 5439+ .cfi_adjust_cfa_offset -8 # Adjust for popped register.
ad222a6b 5440+
be75205b
PS
5441 ret # Return to caller.
5442
5443 2:
5444+ popq %rax # Restore register.
ad222a6b 5445+
be75205b 5446+ .cfi_adjust_cfa_offset -8 # Adjust for popped register.
ad222a6b 5447+
be75205b 5448 addq $0x5000+BACKOFF,%r10 # Increment space we request.
ad222a6b 5449
be75205b
PS
5450 # Fall through into morestack.
5451Index: libgcc/config/rs6000/t-freebsd64
5452===================================================================
5453--- libgcc/config/rs6000/t-freebsd64 (.../tags/gcc_4_7_0_release) (wersja 0)
5454+++ libgcc/config/rs6000/t-freebsd64 (.../branches/gcc-4_7-branch) (wersja 187906)
5455@@ -0,0 +1,5 @@
5456+HOST_LIBGCC2_CFLAGS += -mno-minimal-toc
5457+SHLIB_MAPFILES = libgcc-std.ver
ad222a6b 5458+
be75205b
PS
5459+softfp_wrap_start := '\#ifndef __powerpc64__'
5460+softfp_wrap_end := '\#endif'
5461Index: libgcc/config/rs6000/freebsd-unwind.h
5462===================================================================
5463--- libgcc/config/rs6000/freebsd-unwind.h (.../tags/gcc_4_7_0_release) (wersja 0)
5464+++ libgcc/config/rs6000/freebsd-unwind.h (.../branches/gcc-4_7-branch) (wersja 187906)
5465@@ -0,0 +1,69 @@
5466+/* DWARF2 EH unwinding support for PowerPC64 FreeBSD.
5467+ Copyright (C) 2012 Free Software Foundation, Inc.
ad222a6b 5468+
be75205b 5469+ This file is part of GCC.
ad222a6b 5470+
be75205b
PS
5471+ GCC is free software; you can redistribute it and/or modify it
5472+ under the terms of the GNU General Public License as published
5473+ by the Free Software Foundation; either version 3, or (at your
5474+ option) any later version.
ad222a6b 5475+
be75205b
PS
5476+ GCC is distributed in the hope that it will be useful, but WITHOUT
5477+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
5478+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
5479+ License for more details.
ad222a6b 5480+
be75205b
PS
5481+ Under Section 7 of GPL version 3, you are granted additional
5482+ permissions described in the GCC Runtime Library Exception, version
5483+ 3.1, as published by the Free Software Foundation.
ad222a6b 5484+
be75205b
PS
5485+ You should have received a copy of the GNU General Public License and
5486+ a copy of the GCC Runtime Library Exception along with this program;
5487+ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
5488+ <http://www.gnu.org/licenses/>. */
ad222a6b 5489+
be75205b
PS
5490+#define R_LR 65
5491+
5492+#define MD_FROB_UPDATE_CONTEXT frob_update_context
5493+
5494+static void
5495+frob_update_context (struct _Unwind_Context *context,
5496+ _Unwind_FrameState *fs ATTRIBUTE_UNUSED)
5497+{
5498+ const unsigned int *pc = (const unsigned int *) context->ra;
5499+
5500+#ifdef __powerpc64__
5501+ if (fs->regs.reg[2].how == REG_UNSAVED)
5502+ {
5503+ /* If the current unwind info (FS) does not contain explicit info
5504+ saving R2, then we have to do a minor amount of code reading to
5505+ figure out if it was saved. The big problem here is that the
5506+ code that does the save/restore is generated by the linker, so
5507+ we have no good way to determine at compile time what to do. */
5508+ if (pc[0] == 0xF8410028
5509+ || ((pc[0] & 0xFFFF0000) == 0x3D820000
5510+ && pc[1] == 0xF8410028))
5511+ {
5512+ /* We are in a plt call stub or r2 adjusting long branch stub,
5513+ before r2 has been saved. Keep REG_UNSAVED. */
5514+ }
5515+ else
5516+ {
5517+ unsigned int *insn
5518+ = (unsigned int *) _Unwind_GetGR (context, R_LR);
5519+ if (insn && *insn == 0xE8410028)
5520+ _Unwind_SetGRPtr (context, 2, context->cfa + 40);
5521+ else if (pc[0] == 0x4E800421
5522+ && pc[1] == 0xE8410028)
5523+ {
5524+ /* We are at the bctrl instruction in a call via function
5525+ pointer. gcc always emits the load of the new R2 just
5526+ before the bctrl so this is the first and only place
5527+ we need to use the stored R2. */
5528+ _Unwind_Word sp = _Unwind_GetGR (context, 1);
5529+ _Unwind_SetGRPtr (context, 2, (void *)(sp + 40));
5530+ }
5531+ }
5532+ }
5533+#endif
5534+}
5535Index: libgcc/config/sh/linux-unwind.h
5536===================================================================
5537--- libgcc/config/sh/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187906)
5538+++ libgcc/config/sh/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187906)
5539@@ -1,5 +1,6 @@
5540 /* DWARF2 EH unwinding support for SH Linux.
5541- Copyright (C) 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
5542+ Copyright (C) 2004, 2005, 2006, 2007, 2009, 2012 Free Software Foundation,
5543+ Inc.
5544
5545 This file is part of GCC.
5546
5547@@ -80,9 +81,9 @@
5548 && (*(unsigned long *) (pc+11) == 0x6ff0fff0))
5549 {
5550 struct rt_sigframe {
5551- struct siginfo *pinfo;
5552+ siginfo_t *pinfo;
5553 void *puc;
5554- struct siginfo info;
5555+ siginfo_t info;
5556 struct ucontext uc;
5557 } *rt_ = context->cfa;
5558 /* The void * cast is necessary to avoid an aliasing warning.
5559@@ -179,7 +180,7 @@
5560 && (*(unsigned short *) (pc+14) == 0x00ad))))
5561 {
5562 struct rt_sigframe {
5563- struct siginfo info;
5564+ siginfo_t info;
5565 struct ucontext uc;
5566 } *rt_ = context->cfa;
5567 /* The void * cast is necessary to avoid an aliasing warning.
5568Index: libgcc/config/tilepro/atomic.h
5569===================================================================
5570--- libgcc/config/tilepro/atomic.h (.../tags/gcc_4_7_0_release) (wersja 187906)
5571+++ libgcc/config/tilepro/atomic.h (.../branches/gcc-4_7-branch) (wersja 187906)
5572@@ -104,8 +104,8 @@
5573
5574 /* 32-bit integer compare-and-exchange. */
5575 static __inline __attribute__ ((always_inline))
5576- int atomic_val_compare_and_exchange_4 (volatile int *mem,
5577- int oldval, int newval)
5578+ int arch_atomic_val_compare_and_exchange_4 (volatile int *mem,
5579+ int oldval, int newval)
5580 {
5581 #ifdef __tilegx__
5582 __insn_mtspr (SPR_CMPEXCH_VALUE, oldval);
5583@@ -123,9 +123,9 @@
5584
5585 /* 64-bit integer compare-and-exchange. */
5586 static __inline __attribute__ ((always_inline))
5587- int64_t atomic_val_compare_and_exchange_8 (volatile int64_t * mem,
5588- int64_t oldval,
5589- int64_t newval)
5590+ int64_t arch_atomic_val_compare_and_exchange_8 (volatile int64_t * mem,
5591+ int64_t oldval,
5592+ int64_t newval)
5593 {
5594 #ifdef __tilegx__
5595 __insn_mtspr (SPR_CMPEXCH_VALUE, oldval);
5596@@ -146,41 +146,41 @@
5597
5598 /* This non-existent symbol is called for sizes other than "4" and "8",
5599 indicating a bug in the caller. */
5600-extern int __atomic_error_bad_argument_size (void)
5601+extern int __arch_atomic_error_bad_argument_size (void)
5602 __attribute__ ((warning ("sizeof atomic argument not 4 or 8")));
5603
5604
5605-#define atomic_val_compare_and_exchange(mem, o, n) \
5606+#define arch_atomic_val_compare_and_exchange(mem, o, n) \
5607 ({ \
5608 (__typeof(*(mem)))(__typeof(*(mem)-*(mem))) \
5609 ((sizeof(*(mem)) == 8) ? \
5610- atomic_val_compare_and_exchange_8( \
5611+ arch_atomic_val_compare_and_exchange_8( \
5612 (volatile int64_t*)(mem), (__typeof((o)-(o)))(o), \
5613 (__typeof((n)-(n)))(n)) : \
5614 (sizeof(*(mem)) == 4) ? \
5615- atomic_val_compare_and_exchange_4( \
5616+ arch_atomic_val_compare_and_exchange_4( \
5617 (volatile int*)(mem), (__typeof((o)-(o)))(o), \
5618 (__typeof((n)-(n)))(n)) : \
5619- __atomic_error_bad_argument_size()); \
5620+ __arch_atomic_error_bad_argument_size()); \
ad222a6b
PS
5621 })
5622
be75205b
PS
5623-#define atomic_bool_compare_and_exchange(mem, o, n) \
5624+#define arch_atomic_bool_compare_and_exchange(mem, o, n) \
5625 ({ \
5626 __typeof(o) __o = (o); \
5627 __builtin_expect( \
5628- __o == atomic_val_compare_and_exchange((mem), __o, (n)), 1); \
5629+ __o == arch_atomic_val_compare_and_exchange((mem), __o, (n)), 1); \
ad222a6b
PS
5630 })
5631
ad222a6b 5632
be75205b
PS
5633 /* Loop with compare_and_exchange until we guess the correct value.
5634 Normally "expr" will be an expression using __old and __value. */
5635-#define __atomic_update_cmpxchg(mem, value, expr) \
5636+#define __arch_atomic_update_cmpxchg(mem, value, expr) \
5637 ({ \
5638 __typeof(value) __value = (value); \
5639 __typeof(*(mem)) *__mem = (mem), __old = *__mem, __guess; \
5640 do { \
5641 __guess = __old; \
5642- __old = atomic_val_compare_and_exchange(__mem, __old, (expr)); \
5643+ __old = arch_atomic_val_compare_and_exchange(__mem, __old, (expr)); \
5644 } while (__builtin_expect(__old != __guess, 0)); \
5645 __old; \
5646 })
5647@@ -189,14 +189,14 @@
ad222a6b 5648
be75205b
PS
5649 /* Generic atomic op with 8- or 4-byte variant.
5650 The _mask, _addend, and _expr arguments are ignored on tilegx. */
5651-#define __atomic_update(mem, value, op, _mask, _addend, _expr) \
5652+#define __arch_atomic_update(mem, value, op, _mask, _addend, _expr) \
5653 ({ \
5654 ((__typeof(*(mem))) \
5655 ((sizeof(*(mem)) == 8) ? (__typeof(*(mem)-*(mem)))__insn_##op( \
5656 (void *)(mem), (int64_t)(__typeof((value)-(value)))(value)) : \
5657 (sizeof(*(mem)) == 4) ? (int)__insn_##op##4( \
5658 (void *)(mem), (int32_t)(__typeof((value)-(value)))(value)) : \
5659- __atomic_error_bad_argument_size())); \
5660+ __arch_atomic_error_bad_argument_size())); \
5661 })
ad222a6b 5662
be75205b
PS
5663 #else
5664@@ -211,7 +211,7 @@
5665 Only 32-bit support is provided. */
5666 static __inline __attribute__ ((always_inline))
5667 int
5668- __atomic_update_4 (volatile int *mem, int mask, int addend)
5669+ __arch_atomic_update_4 (volatile int *mem, int mask, int addend)
5670 {
5671 int result;
5672 __asm__ __volatile__ ("swint1":"=R00" (result),
5673@@ -224,48 +224,55 @@
ad222a6b 5674
be75205b
PS
5675 /* Generic atomic op with 8- or 4-byte variant.
5676 The _op argument is ignored on tilepro. */
5677-#define __atomic_update(mem, value, _op, mask, addend, expr) \
5678+#define __arch_atomic_update(mem, value, _op, mask, addend, expr) \
5679 ({ \
5680 (__typeof(*(mem)))(__typeof(*(mem)-*(mem))) \
5681 ((sizeof(*(mem)) == 8) ? \
5682- __atomic_update_cmpxchg((mem), (value), (expr)) : \
5683+ __arch_atomic_update_cmpxchg((mem), (value), (expr)) : \
5684 (sizeof(*(mem)) == 4) ? \
5685- __atomic_update_4((volatile int*)(mem), (__typeof((mask)-(mask)))(mask), \
5686- (__typeof((addend)-(addend)))(addend)) : \
5687- __atomic_error_bad_argument_size()); \
5688+ __arch_atomic_update_4((volatile int*)(mem), \
5689+ (__typeof((mask)-(mask)))(mask), \
5690+ (__typeof((addend)-(addend)))(addend)) : \
5691+ __arch_atomic_error_bad_argument_size()); \
5692 })
ad222a6b 5693
be75205b 5694 #endif /* __tilegx__ */
ad222a6b 5695
ad222a6b 5696
be75205b
PS
5697-#define atomic_exchange(mem, newvalue) \
5698- __atomic_update(mem, newvalue, exch, 0, newvalue, __value)
5699+#define arch_atomic_exchange(mem, newvalue) \
5700+ __arch_atomic_update(mem, newvalue, exch, 0, newvalue, __value)
5701
5702-#define atomic_add(mem, value) \
5703- __atomic_update(mem, value, fetchadd, -1, value, __old + __value)
5704+#define arch_atomic_add(mem, value) \
5705+ __arch_atomic_update(mem, value, fetchadd, -1, value, __old + __value)
5706
5707-#define atomic_sub(mem, value) atomic_add((mem), -(value))
5708+#define arch_atomic_sub(mem, value) arch_atomic_add((mem), -(value))
5709
5710-#define atomic_increment(mem) atomic_add((mem), 1)
5711+#define arch_atomic_increment(mem) arch_atomic_add((mem), 1)
5712
5713-#define atomic_decrement(mem) atomic_add((mem), -1)
5714+#define arch_atomic_decrement(mem) arch_atomic_add((mem), -1)
5715
5716-#define atomic_and(mem, mask) \
5717- __atomic_update(mem, mask, fetchand, mask, 0, __old & __value)
5718+#define arch_atomic_and(mem, mask) \
5719+ __arch_atomic_update(mem, mask, fetchand, mask, 0, __old & __value)
5720
5721-#define atomic_or(mem, mask) \
5722- __atomic_update(mem, mask, fetchor, ~mask, mask, __old | __value)
5723+#define arch_atomic_or(mem, mask) \
5724+ __arch_atomic_update(mem, mask, fetchor, ~mask, mask, __old | __value)
5725
5726-#define atomic_bit_set(mem, bit) \
5727+#define arch_atomic_xor(mem, mask) \
5728+ __arch_atomic_update_cmpxchg(mem, mask, __old ^ __value)
ad222a6b 5729+
be75205b
PS
5730+#define arch_atomic_nand(mem, mask) \
5731+ __arch_atomic_update_cmpxchg(mem, mask, ~(__old & __value))
ad222a6b 5732+
be75205b
PS
5733+#define arch_atomic_bit_set(mem, bit) \
5734 ({ \
5735 __typeof(*(mem)) __mask = (__typeof(*(mem)))1 << (bit); \
5736- __mask & atomic_or((mem), __mask); \
5737+ __mask & arch_atomic_or((mem), __mask); \
5738 })
ad222a6b 5739
be75205b
PS
5740-#define atomic_bit_clear(mem, bit) \
5741+#define arch_atomic_bit_clear(mem, bit) \
5742 ({ \
5743 __typeof(*(mem)) __mask = (__typeof(*(mem)))1 << (bit); \
5744- __mask & atomic_and((mem), ~__mask); \
5745+ __mask & arch_atomic_and((mem), ~__mask); \
5746 })
ad222a6b 5747
be75205b
PS
5748 #ifdef __tilegx__
5749@@ -275,9 +282,9 @@
5750 This accessor is provided for compatibility with TILEPro, which
5751 required an explicit atomic operation for stores that needed
5752 to be atomic with respect to other atomic methods in this header. */
5753-#define atomic_write(mem, value) ((void) (*(mem) = (value)))
5754+#define arch_atomic_write(mem, value) ((void) (*(mem) = (value)))
5755 #else
5756-#define atomic_write(mem, value) \
5757+#define arch_atomic_write(mem, value) \
5758 do { \
5759 __typeof(mem) __aw_mem = (mem); \
5760 __typeof(value) __aw_val = (value); \
5761@@ -285,26 +292,26 @@
5762 __aw_intval = (__typeof((value) - (value)))__aw_val; \
5763 switch (sizeof(*__aw_mem)) { \
5764 case 8: \
5765- __atomic_update_cmpxchg(__aw_mem, __aw_val, __value); \
5766+ __arch_atomic_update_cmpxchg(__aw_mem, __aw_val, __value); \
5767 break; \
5768 case 4: \
5769- __atomic_update_4((int *)__aw_mem, 0, __aw_intval); \
5770+ __arch_atomic_update_4((int *)__aw_mem, 0, __aw_intval); \
5771 break; \
5772 case 2: \
5773 __aw_off = 8 * ((long)__aw_mem & 0x2); \
5774 __aw_mask = 0xffffU << __aw_off; \
5775 __aw_mem32 = (unsigned int *)((long)__aw_mem & ~0x2); \
5776 __aw_val32 = (__aw_intval << __aw_off) & __aw_mask; \
5777- __atomic_update_cmpxchg(__aw_mem32, __aw_val32, \
5778- (__old & ~__aw_mask) | __value); \
5779+ __arch_atomic_update_cmpxchg(__aw_mem32, __aw_val32, \
5780+ (__old & ~__aw_mask) | __value); \
5781 break; \
5782 case 1: \
5783 __aw_off = 8 * ((long)__aw_mem & 0x3); \
5784 __aw_mask = 0xffU << __aw_off; \
5785 __aw_mem32 = (unsigned int *)((long)__aw_mem & ~0x3); \
5786 __aw_val32 = (__aw_intval << __aw_off) & __aw_mask; \
5787- __atomic_update_cmpxchg(__aw_mem32, __aw_val32, \
5788- (__old & ~__aw_mask) | __value); \
5789+ __arch_atomic_update_cmpxchg(__aw_mem32, __aw_val32, \
5790+ (__old & ~__aw_mask) | __value); \
5791 break; \
5792 } \
5793 } while (0)
5794@@ -315,15 +322,15 @@
5795 This macro prevents loads or stores from being moved by the compiler
5796 across the macro. Any loaded value that was loaded before this
5797 macro must then be reloaded by the compiler. */
5798-#define atomic_compiler_barrier() __asm__ __volatile__("" ::: "memory")
5799+#define arch_atomic_compiler_barrier() __asm__ __volatile__("" ::: "memory")
5800
5801 /* Full memory barrier.
5802
5803- This macro has the semantics of atomic_compiler_barrer(), but also
5804+ This macro has the semantics of arch_atomic_compiler_barrer(), but also
5805 ensures that previous stores are visible to other cores, and that
5806 all previous loaded values have been placed into their target
5807 register on this core. */
5808-#define atomic_full_barrier() __insn_mf()
5809+#define arch_atomic_full_barrier() __insn_mf()
5810
5811 /* Read memory barrier.
5812
5813@@ -335,9 +342,9 @@
5814 On current TILE chips a read barrier is implemented as a full barrier,
5815 but this may not be true in later versions of the architecture.
5816
5817- See also atomic_acquire_barrier() for the appropriate idiom to use
5818+ See also arch_atomic_acquire_barrier() for the appropriate idiom to use
5819 to ensure no reads are lifted above an atomic lock instruction. */
5820-#define atomic_read_barrier() atomic_full_barrier()
5821+#define arch_atomic_read_barrier() arch_atomic_full_barrier()
5822
5823 /* Write memory barrier.
5824
5825@@ -349,9 +356,9 @@
5826 On current TILE chips a write barrier is implemented as a full barrier,
5827 but this may not be true in later versions of the architecture.
5828
5829- See also atomic_release_barrier() for the appropriate idiom to use
5830+ See also arch_atomic_release_barrier() for the appropriate idiom to use
5831 to ensure all writes are complete prior to an atomic unlock instruction. */
5832-#define atomic_write_barrier() atomic_full_barrier()
5833+#define arch_atomic_write_barrier() arch_atomic_full_barrier()
5834
5835 /* Lock acquisition barrier.
5836
5837@@ -367,10 +374,10 @@
5838 This should be done after the atomic operation that actually
5839 acquires the lock, and in conjunction with a "control dependency"
5840 that checks the atomic operation result to see if the lock was
5841- in fact acquired. See the atomic_read_barrier() macro
5842+ in fact acquired. See the arch_atomic_read_barrier() macro
5843 for a heavier-weight barrier to use in certain unusual constructs,
5844- or atomic_acquire_barrier_value() if no control dependency exists. */
5845-#define atomic_acquire_barrier() atomic_compiler_barrier()
5846+ or arch_atomic_acquire_barrier_value() if no control dependency exists. */
5847+#define arch_atomic_acquire_barrier() arch_atomic_compiler_barrier()
5848
5849 /* Lock release barrier.
5850
5851@@ -383,7 +390,7 @@
5852 for locking, that is, when leaving a critical section. This should
5853 be done before the operation (such as a store of zero) that
5854 actually releases the lock. */
5855-#define atomic_release_barrier() atomic_write_barrier()
5856+#define arch_atomic_release_barrier() arch_atomic_write_barrier()
5857
5858 /* Barrier until the read of a particular value is complete.
5859
5860@@ -400,7 +407,7 @@
5861 atomic instruction, even if the value itself is not checked. This
5862 guarantees that if the atomic instruction succeeded in taking the lock,
5863 the lock was held before any reads in the critical section issued. */
5864-#define atomic_acquire_barrier_value(val) \
5865+#define arch_atomic_acquire_barrier_value(val) \
5866 __asm__ __volatile__("move %0, %0" :: "r"(val))
5867
5868 /* Access the given variable in memory exactly once.
5869@@ -421,8 +428,9 @@
5870
5871 Note that multiple uses of this macro are guaranteed to be ordered,
5872 i.e. the compiler will not reorder stores or loads that are wrapped
5873- in atomic_access_once(). */
5874-#define atomic_access_once(x) (*(volatile __typeof(x) *)&(x))
5875+ in arch_atomic_access_once(). */
5876+#define arch_atomic_access_once(x) (*(volatile __typeof(x) *)&(x))
5877
5878
5879+
5880 #endif /* !_ATOMIC_H_ */
5881Index: libgcc/config/tilepro/linux-unwind.h
5882===================================================================
5883--- libgcc/config/tilepro/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187906)
5884+++ libgcc/config/tilepro/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187906)
5885@@ -61,7 +61,7 @@
5886
5887 struct rt_sigframe {
5888 unsigned char save_area[C_ABI_SAVE_AREA_SIZE];
5889- struct siginfo info;
5890+ siginfo_t info;
5891 struct ucontext uc;
5892 } *rt_;
5893
5894Index: libgcc/config/tilepro/atomic.c
5895===================================================================
5896--- libgcc/config/tilepro/atomic.c (.../tags/gcc_4_7_0_release) (wersja 187906)
5897+++ libgcc/config/tilepro/atomic.c (.../branches/gcc-4_7-branch) (wersja 187906)
5898@@ -63,18 +63,12 @@
5899
5900 #define __unused __attribute__((unused))
5901
5902-/* Provide additional methods not implemented by atomic.h. */
5903-#define atomic_xor(mem, mask) \
5904- __atomic_update_cmpxchg(mem, mask, __old ^ __value)
5905-#define atomic_nand(mem, mask) \
5906- __atomic_update_cmpxchg(mem, mask, ~(__old & __value))
5907-
5908 #define __atomic_fetch_and_do(type, size, opname) \
5909 type \
5910 __atomic_fetch_##opname##_##size(type* p, type i, int model) \
5911 { \
5912 pre_atomic_barrier(model); \
5913- type rv = atomic_##opname(p, i); \
5914+ type rv = arch_atomic_##opname(p, i); \
5915 post_atomic_barrier(model); \
5916 return rv; \
5917 }
5918@@ -96,7 +90,7 @@
5919 __atomic_##opname##_fetch_##size(type* p, type i, int model) \
5920 { \
5921 pre_atomic_barrier(model); \
5922- type rv = atomic_##opname(p, i) op i; \
5923+ type rv = arch_atomic_##opname(p, i) op i; \
5924 post_atomic_barrier(model); \
5925 return rv; \
5926 }
5927@@ -120,7 +114,7 @@
5928 { \
5929 type oldval = *oldvalp; \
5930 pre_atomic_barrier(models); \
5931- type retval = atomic_val_compare_and_exchange(ptr, oldval, newval); \
5932+ type retval = arch_atomic_val_compare_and_exchange(ptr, oldval, newval); \
5933 post_atomic_barrier(models); \
5934 bool success = (retval == oldval); \
5935 *oldvalp = retval; \
5936@@ -131,7 +125,7 @@
5937 __atomic_exchange_##size(volatile type* ptr, type val, int model) \
5938 { \
5939 pre_atomic_barrier(model); \
5940- type retval = atomic_exchange(ptr, val); \
5941+ type retval = arch_atomic_exchange(ptr, val); \
5942 post_atomic_barrier(model); \
5943 return retval; \
5944 }
5945@@ -159,7 +153,7 @@
5946 type oldval = (oldword >> shift) & valmask; \
5947 if (__builtin_expect((oldval == *guess), 1)) { \
5948 unsigned int word = (oldword & bgmask) | ((val & valmask) << shift); \
5949- oldword = atomic_val_compare_and_exchange(p, oldword, word); \
5950+ oldword = arch_atomic_val_compare_and_exchange(p, oldword, word); \
5951 oldval = (oldword >> shift) & valmask; \
5952 } \
5953 post_atomic_barrier(models); \
5954@@ -187,7 +181,7 @@
5955 oldval = (oldword >> shift) & valmask; \
5956 val = expr; \
5957 unsigned int word = (oldword & bgmask) | ((val & valmask) << shift); \
5958- xword = atomic_val_compare_and_exchange(p, oldword, word); \
5959+ xword = arch_atomic_val_compare_and_exchange(p, oldword, word); \
5960 } while (__builtin_expect(xword != oldword, 0)); \
5961 bottom \
5962 }
5963Index: libgcc/config/avr/lib1funcs.S
5964===================================================================
5965--- libgcc/config/avr/lib1funcs.S (.../tags/gcc_4_7_0_release) (wersja 187906)
5966+++ libgcc/config/avr/lib1funcs.S (.../branches/gcc-4_7-branch) (wersja 187906)
5967@@ -25,7 +25,9 @@
5968 #define __zero_reg__ r1
5969 #define __tmp_reg__ r0
5970 #define __SREG__ 0x3f
5971+#if defined (__AVR_HAVE_SPH__)
5972 #define __SP_H__ 0x3e
5973+#endif
5974 #define __SP_L__ 0x3d
5975 #define __RAMPZ__ 0x3B
5976 #define __EIND__ 0x3C
5977@@ -1258,7 +1260,7 @@
5978
5979 #if defined (__AVR_HAVE_JMP_CALL__)
5980 # define SPEED_DIV 8
5981-#elif defined (__AVR_HAVE_MOVW__) && !defined (__AVR_HAVE_8BIT_SP__)
5982+#elif defined (__AVR_HAVE_MOVW__) && defined (__AVR_HAVE_SPH__)
5983 # define SPEED_DIV 16
5984 #else
5985 # define SPEED_DIV 0
5986@@ -1540,10 +1542,10 @@
5987
5988 4: ;; Epilogue: Restore the Z = 12 Registers and return
5989 in r28, __SP_L__
5990-#if defined (__AVR_HAVE_8BIT_SP__)
5991+#if defined (__AVR_HAVE_SPH__)
5992+ in r29, __SP_H__
5993+#else
5994 clr r29
5995-#else
5996- in r29, __SP_H__
5997 #endif /* #SP = 8/16 */
5998 ldi r30, 12
5999 XJMP __epilogue_restores__ + ((18 - 12) * 2)
6000@@ -1691,7 +1693,7 @@
6001 push r17
6002 push r28
6003 push r29
6004-#if defined (__AVR_HAVE_8BIT_SP__)
6005+#if !defined (__AVR_HAVE_SPH__)
6006 in r28,__SP_L__
6007 sub r28,r26
6008 out __SP_L__,r28
6009@@ -1747,7 +1749,7 @@
6010 ldd r16,Y+4
6011 ldd r17,Y+3
6012 ldd r26,Y+2
6013-#if defined (__AVR_HAVE_8BIT_SP__)
6014+#if !defined (__AVR_HAVE_SPH__)
6015 ldd r29,Y+1
6016 add r28,r30
6017 out __SP_L__,r28
6018@@ -1893,6 +1895,10 @@
6019 cpc r27, r17
6020 brne .L__do_copy_data_loop
6021 #endif /* !defined(__AVR_HAVE_ELPMX__) && !defined(__AVR_HAVE_ELPM__) */
6022+#if defined (__AVR_HAVE_ELPM__) && defined (__AVR_HAVE_RAMPD__)
6023+ ;; Reset RAMPZ to 0 so that EBI devices don't read garbage from RAM
6024+ out __RAMPZ__, __zero_reg__
6025+#endif /* ELPM && RAMPD */
6026 ENDF __do_copy_data
6027 #endif /* L_copy_data */
6028
6029@@ -1920,7 +1926,7 @@
6030 #ifdef L_ctors
6031 .section .init6,"ax",@progbits
6032 DEFUN __do_global_ctors
6033-#if defined(__AVR_HAVE_RAMPZ__)
6034+#if defined(__AVR_HAVE_ELPM__)
6035 ldi r17, hi8(__ctors_start)
6036 ldi r28, lo8(__ctors_end)
6037 ldi r29, hi8(__ctors_end)
6038@@ -1953,14 +1959,14 @@
6039 cpi r28, lo8(__ctors_start)
6040 cpc r29, r17
6041 brne .L__do_global_ctors_loop
6042-#endif /* defined(__AVR_HAVE_RAMPZ__) */
6043+#endif /* defined(__AVR_HAVE_ELPM__) */
6044 ENDF __do_global_ctors
6045 #endif /* L_ctors */
6046
6047 #ifdef L_dtors
6048 .section .fini6,"ax",@progbits
6049 DEFUN __do_global_dtors
6050-#if defined(__AVR_HAVE_RAMPZ__)
6051+#if defined(__AVR_HAVE_ELPM__)
6052 ldi r17, hi8(__dtors_end)
6053 ldi r28, lo8(__dtors_start)
6054 ldi r29, hi8(__dtors_start)
6055@@ -1993,7 +1999,7 @@
6056 cpi r28, lo8(__dtors_end)
6057 cpc r29, r17
6058 brne .L__do_global_dtors_loop
6059-#endif /* defined(__AVR_HAVE_RAMPZ__) */
6060+#endif /* defined(__AVR_HAVE_ELPM__) */
6061 ENDF __do_global_dtors
6062 #endif /* L_dtors */
6063
6064@@ -2001,18 +2007,21 @@
6065
6066 #ifdef L_tablejump_elpm
6067 DEFUN __tablejump_elpm__
6068-#if defined (__AVR_HAVE_ELPM__)
6069-#if defined (__AVR_HAVE_LPMX__)
6070+#if defined (__AVR_HAVE_ELPMX__)
6071 elpm __tmp_reg__, Z+
6072 elpm r31, Z
6073 mov r30, __tmp_reg__
6074+#if defined (__AVR_HAVE_RAMPD__)
6075+ ;; Reset RAMPZ to 0 so that EBI devices don't read garbage from RAM
6076+ out __RAMPZ__, __zero_reg__
6077+#endif /* RAMPD */
6078 #if defined (__AVR_HAVE_EIJMP_EICALL__)
6079 eijmp
6080 #else
6081 ijmp
6082 #endif
6083
6084-#else
6085+#elif defined (__AVR_HAVE_ELPM__)
6086 elpm
6087 adiw r30, 1
6088 push r0
6089@@ -2024,7 +2033,6 @@
6090 #endif
6091 ret
6092 #endif
6093-#endif /* defined (__AVR_HAVE_ELPM__) */
6094 ENDF __tablejump_elpm__
6095 #endif /* defined (L_tablejump_elpm) */
6096
6097@@ -2114,11 +2122,18 @@
6098 adiw r30, 1
6099 .endif
6100 #endif
6101+#if defined (__AVR_HAVE_ELPM__) && defined (__AVR_HAVE_RAMPD__)
6102+.if \dest == D0+\n-1
6103+ ;; Reset RAMPZ to 0 so that EBI devices don't read garbage from RAM
6104+ out __RAMPZ__, __zero_reg__
6105+.endif
6106+#endif
6107 .endm ; .xload
6108
6109 #if defined (L_xload_1)
6110 DEFUN __xload_1
6111-#if defined (__AVR_HAVE_LPMX__) && !defined (__AVR_HAVE_RAMPZ__)
6112+#if defined (__AVR_HAVE_LPMX__) && !defined (__AVR_HAVE_ELPM__)
6113+ sbrc HHI8, 7
6114 ld D0, Z
6115 sbrs HHI8, 7
6116 lpm D0, Z
6117@@ -2126,14 +2141,14 @@
6118 #else
6119 sbrc HHI8, 7
6120 rjmp 1f
6121-#if defined (__AVR_HAVE_RAMPZ__)
6122+#if defined (__AVR_HAVE_ELPM__)
6123 out __RAMPZ__, HHI8
6124-#endif /* __AVR_HAVE_RAMPZ__ */
6125+#endif /* __AVR_HAVE_ELPM__ */
6126 .xload D0, 1
6127 ret
6128 1: ld D0, Z
6129 ret
6130-#endif /* LPMx && ! RAMPZ */
6131+#endif /* LPMx && ! ELPM */
6132 ENDF __xload_1
6133 #endif /* L_xload_1 */
6134
6135@@ -2141,9 +2156,9 @@
6136 DEFUN __xload_2
6137 sbrc HHI8, 7
6138 rjmp 1f
6139-#if defined (__AVR_HAVE_RAMPZ__)
6140+#if defined (__AVR_HAVE_ELPM__)
6141 out __RAMPZ__, HHI8
6142-#endif /* __AVR_HAVE_RAMPZ__ */
6143+#endif /* __AVR_HAVE_ELPM__ */
6144 .xload D0, 2
6145 .xload D1, 2
6146 ret
6147@@ -2157,9 +2172,9 @@
6148 DEFUN __xload_3
6149 sbrc HHI8, 7
6150 rjmp 1f
6151-#if defined (__AVR_HAVE_RAMPZ__)
6152+#if defined (__AVR_HAVE_ELPM__)
6153 out __RAMPZ__, HHI8
6154-#endif /* __AVR_HAVE_RAMPZ__ */
6155+#endif /* __AVR_HAVE_ELPM__ */
6156 .xload D0, 3
6157 .xload D1, 3
6158 .xload D2, 3
6159@@ -2175,9 +2190,9 @@
6160 DEFUN __xload_4
6161 sbrc HHI8, 7
6162 rjmp 1f
6163-#if defined (__AVR_HAVE_RAMPZ__)
6164+#if defined (__AVR_HAVE_ELPM__)
6165 out __RAMPZ__, HHI8
6166-#endif /* __AVR_HAVE_RAMPZ__ */
6167+#endif /* __AVR_HAVE_ELPM__ */
6168 .xload D0, 4
6169 .xload D1, 4
6170 .xload D2, 4
6171@@ -2219,7 +2234,7 @@
6172
6173 ;; Read from Flash
6174
6175-#if defined (__AVR_HAVE_RAMPZ__)
6176+#if defined (__AVR_HAVE_ELPM__)
6177 out __RAMPZ__, HHI8
6178 #endif
6179
6180@@ -2243,6 +2258,10 @@
6181 st X+, r0
6182 sbiw LOOP, 1
6183 brne 0b
6184+#if defined (__AVR_HAVE_ELPM__) && defined (__AVR_HAVE_RAMPD__)
6185+ ;; Reset RAMPZ to 0 so that EBI devices don't read garbage from RAM
6186+ out __RAMPZ__, __zero_reg__
6187+#endif /* ELPM && RAMPD */
6188 ret
6189
6190 ;; Read from RAM
6191@@ -2252,7 +2271,7 @@
6192 ;; and store that Byte to RAM Destination
6193 st X+, r0
6194 sbiw LOOP, 1
6195- brne 0b
6196+ brne 1b
6197 ret
6198 ENDF __movmemx_hi
6199
6200Index: libgcc/config/pa/linux-unwind.h
6201===================================================================
6202--- libgcc/config/pa/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187906)
6203+++ libgcc/config/pa/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187906)
6204@@ -1,5 +1,5 @@
6205 /* DWARF2 EH unwinding support for PA Linux.
6206- Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
6207+ Copyright (C) 2004, 2005, 2009, 2012 Free Software Foundation, Inc.
6208
6209 This file is part of GCC.
6210
6211@@ -63,7 +63,7 @@
6212 int i;
6213 struct sigcontext *sc;
6214 struct rt_sigframe {
6215- struct siginfo info;
6216+ siginfo_t info;
6217 struct ucontext uc;
6218 } *frame;
6219
6220Index: libgcc/config/xtensa/linux-unwind.h
6221===================================================================
6222--- libgcc/config/xtensa/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187906)
6223+++ libgcc/config/xtensa/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187906)
6224@@ -1,5 +1,5 @@
6225 /* DWARF2 EH unwinding support for Xtensa.
6226- Copyright (C) 2008, 2009 Free Software Foundation, Inc.
6227+ Copyright (C) 2008, 2009, 2012 Free Software Foundation, Inc.
6228
6229 This file is part of GCC.
6230
6231@@ -62,7 +62,7 @@
6232 struct sigcontext *sc;
6233
6234 struct rt_sigframe {
6235- struct siginfo info;
6236+ siginfo_t info;
6237 struct ucontext uc;
6238 } *rt_;
6239
6240Index: libgcc/config/mips/linux-unwind.h
6241===================================================================
6242--- libgcc/config/mips/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187906)
6243+++ libgcc/config/mips/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187906)
6244@@ -1,5 +1,6 @@
6245 /* DWARF2 EH unwinding support for MIPS Linux.
6246- Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
6247+ Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2012 Free Software
6248+ Foundation, Inc.
6249
6250 This file is part of GCC.
6251
6252@@ -75,7 +76,7 @@
6253 struct rt_sigframe {
6254 u_int32_t ass[4]; /* Argument save space for o32. */
6255 u_int32_t trampoline[2];
6256- struct siginfo info;
6257+ siginfo_t info;
6258 _sig_ucontext_t uc;
6259 } *rt_ = context->cfa;
6260 sc = &rt_->uc.uc_mcontext;
6261Index: libgcc/config/bfin/linux-unwind.h
6262===================================================================
6263--- libgcc/config/bfin/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187906)
6264+++ libgcc/config/bfin/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187906)
6265@@ -1,5 +1,5 @@
6266 /* DWARF2 EH unwinding support for Blackfin.
6267- Copyright (C) 2007, 2009 Free Software Foundation, Inc.
6268+ Copyright (C) 2007, 2009, 2012 Free Software Foundation, Inc.
6269
6270 This file is part of GCC.
6271
6272@@ -48,10 +48,10 @@
6273 {
6274 struct rt_sigframe {
6275 int sig;
6276- struct siginfo *pinfo;
6277+ siginfo_t *pinfo;
6278 void *puc;
6279 char retcode[8];
6280- struct siginfo info;
6281+ siginfo_t info;
6282 struct ucontext uc;
6283 } *rt_ = context->cfa;
6284
6285Index: libgcc/configure
6286===================================================================
6287--- libgcc/configure (.../tags/gcc_4_7_0_release) (wersja 187906)
6288+++ libgcc/configure (.../branches/gcc-4_7-branch) (wersja 187906)
6289@@ -552,42 +552,7 @@
6290 PACKAGE_URL='http://www.gnu.org/software/libgcc/'
6291
6292 ac_unique_file="static-object.mk"
6293-# Factoring default headers for most tests.
6294-ac_includes_default="\
6295-#include <stdio.h>
6296-#ifdef HAVE_SYS_TYPES_H
6297-# include <sys/types.h>
6298-#endif
6299-#ifdef HAVE_SYS_STAT_H
6300-# include <sys/stat.h>
6301-#endif
6302-#ifdef STDC_HEADERS
6303-# include <stdlib.h>
6304-# include <stddef.h>
6305-#else
6306-# ifdef HAVE_STDLIB_H
6307-# include <stdlib.h>
6308-# endif
6309-#endif
6310-#ifdef HAVE_STRING_H
6311-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
6312-# include <memory.h>
6313-# endif
6314-# include <string.h>
6315-#endif
6316-#ifdef HAVE_STRINGS_H
6317-# include <strings.h>
6318-#endif
6319-#ifdef HAVE_INTTYPES_H
6320-# include <inttypes.h>
6321-#endif
6322-#ifdef HAVE_STDINT_H
6323-# include <stdint.h>
6324-#endif
6325-#ifdef HAVE_UNISTD_H
6326-# include <unistd.h>
6327-#endif"
6328-
6329+ac_includes_default='/* none */'
6330 ac_subst_vars='LTLIBOBJS
6331 LIBOBJS
6332 asm_hidden_op
6333@@ -605,8 +570,6 @@
6334 decimal_float
6335 long_double_type_size
6336 double_type_size
6337-EGREP
6338-GREP
6339 CPP
6340 OBJEXT
6341 EXEEXT
6342@@ -1732,35 +1695,6 @@
6343 return $ac_retval
6344
6345 } # ac_fn_c_compute_int
6346-
6347-# ac_fn_c_check_header_preproc LINENO HEADER VAR
6348-# ----------------------------------------------
6349-# Tests whether HEADER is present, setting the cache variable VAR accordingly.
6350-ac_fn_c_check_header_preproc ()
6351-{
6352- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
6353- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
6354-$as_echo_n "checking for $2... " >&6; }
6355-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
6356- $as_echo_n "(cached) " >&6
6357-else
6358- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6359-/* end confdefs.h. */
6360-#include <$2>
6361-_ACEOF
6362-if ac_fn_c_try_cpp "$LINENO"; then :
6363- eval "$3=yes"
6364-else
6365- eval "$3=no"
6366-fi
6367-rm -f conftest.err conftest.$ac_ext
6368-fi
6369-eval ac_res=\$$3
6370- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
6371-$as_echo "$ac_res" >&6; }
6372- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
6373-
6374-} # ac_fn_c_check_header_preproc
6375 cat >config.log <<_ACEOF
6376 This file contains any messages produced by compilers while
6377 running configure, to aid debugging if configure makes a mistake.
6378@@ -2117,7 +2051,10 @@
6379
6380
6381
6382+# The libgcc should not depend on any header files
6383
6384+
6385+
6386 # Check whether --with-target-subdir was given.
6387 if test "${with_target_subdir+set}" = set; then :
6388 withval=$with_target_subdir;
6389@@ -4027,264 +3964,6 @@
6390
6391
6392
6393-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
6394-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
6395-if test "${ac_cv_path_GREP+set}" = set; then :
6396- $as_echo_n "(cached) " >&6
6397-else
6398- if test -z "$GREP"; then
6399- ac_path_GREP_found=false
6400- # Loop through the user's path and test for each of PROGNAME-LIST
6401- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6402-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
6403-do
6404- IFS=$as_save_IFS
6405- test -z "$as_dir" && as_dir=.
6406- for ac_prog in grep ggrep; do
6407- for ac_exec_ext in '' $ac_executable_extensions; do
6408- ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
6409- { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
6410-# Check for GNU ac_path_GREP and select it if it is found.
6411- # Check for GNU $ac_path_GREP
6412-case `"$ac_path_GREP" --version 2>&1` in
6413-*GNU*)
6414- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
6415-*)
6416- ac_count=0
6417- $as_echo_n 0123456789 >"conftest.in"
6418- while :
6419- do
6420- cat "conftest.in" "conftest.in" >"conftest.tmp"
6421- mv "conftest.tmp" "conftest.in"
6422- cp "conftest.in" "conftest.nl"
6423- $as_echo 'GREP' >> "conftest.nl"
6424- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
6425- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
6426- as_fn_arith $ac_count + 1 && ac_count=$as_val
6427- if test $ac_count -gt ${ac_path_GREP_max-0}; then
6428- # Best one so far, save it but keep looking for a better one
6429- ac_cv_path_GREP="$ac_path_GREP"
6430- ac_path_GREP_max=$ac_count
6431- fi
6432- # 10*(2^10) chars as input seems more than enough
6433- test $ac_count -gt 10 && break
6434- done
6435- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
6436-esac
6437-
6438- $ac_path_GREP_found && break 3
6439- done
6440- done
6441- done
6442-IFS=$as_save_IFS
6443- if test -z "$ac_cv_path_GREP"; then
6444- as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
6445- fi
6446-else
6447- ac_cv_path_GREP=$GREP
6448-fi
6449-
6450-fi
6451-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
6452-$as_echo "$ac_cv_path_GREP" >&6; }
6453- GREP="$ac_cv_path_GREP"
6454-
6455-
6456-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
6457-$as_echo_n "checking for egrep... " >&6; }
6458-if test "${ac_cv_path_EGREP+set}" = set; then :
6459- $as_echo_n "(cached) " >&6
6460-else
6461- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
6462- then ac_cv_path_EGREP="$GREP -E"
6463- else
6464- if test -z "$EGREP"; then
6465- ac_path_EGREP_found=false
6466- # Loop through the user's path and test for each of PROGNAME-LIST
6467- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6468-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
6469-do
6470- IFS=$as_save_IFS
6471- test -z "$as_dir" && as_dir=.
6472- for ac_prog in egrep; do
6473- for ac_exec_ext in '' $ac_executable_extensions; do
6474- ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
6475- { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
6476-# Check for GNU ac_path_EGREP and select it if it is found.
6477- # Check for GNU $ac_path_EGREP
6478-case `"$ac_path_EGREP" --version 2>&1` in
6479-*GNU*)
6480- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
6481-*)
6482- ac_count=0
6483- $as_echo_n 0123456789 >"conftest.in"
6484- while :
6485- do
6486- cat "conftest.in" "conftest.in" >"conftest.tmp"
6487- mv "conftest.tmp" "conftest.in"
6488- cp "conftest.in" "conftest.nl"
6489- $as_echo 'EGREP' >> "conftest.nl"
6490- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
6491- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
6492- as_fn_arith $ac_count + 1 && ac_count=$as_val
6493- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
6494- # Best one so far, save it but keep looking for a better one
6495- ac_cv_path_EGREP="$ac_path_EGREP"
6496- ac_path_EGREP_max=$ac_count
6497- fi
6498- # 10*(2^10) chars as input seems more than enough
6499- test $ac_count -gt 10 && break
6500- done
6501- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
6502-esac
6503-
6504- $ac_path_EGREP_found && break 3
6505- done
6506- done
6507- done
6508-IFS=$as_save_IFS
6509- if test -z "$ac_cv_path_EGREP"; then
6510- as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
6511- fi
6512-else
6513- ac_cv_path_EGREP=$EGREP
6514-fi
6515-
6516- fi
6517-fi
6518-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
6519-$as_echo "$ac_cv_path_EGREP" >&6; }
6520- EGREP="$ac_cv_path_EGREP"
6521-
6522-
6523-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
6524-$as_echo_n "checking for ANSI C header files... " >&6; }
6525-if test "${ac_cv_header_stdc+set}" = set; then :
6526- $as_echo_n "(cached) " >&6
6527-else
6528- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6529-/* end confdefs.h. */
6530-#include <stdlib.h>
6531-#include <stdarg.h>
6532-#include <string.h>
6533-#include <float.h>
6534-
6535-int
6536-main ()
6537-{
6538-
6539- ;
6540- return 0;
6541-}
6542-_ACEOF
6543-if ac_fn_c_try_compile "$LINENO"; then :
6544- ac_cv_header_stdc=yes
6545-else
6546- ac_cv_header_stdc=no
6547-fi
6548-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
6549-
6550-if test $ac_cv_header_stdc = yes; then
6551- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
6552- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6553-/* end confdefs.h. */
6554-#include <string.h>
6555-
6556-_ACEOF
6557-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
6558- $EGREP "memchr" >/dev/null 2>&1; then :
6559-
6560-else
6561- ac_cv_header_stdc=no
6562-fi
6563-rm -f conftest*
6564-
6565-fi
6566-
6567-if test $ac_cv_header_stdc = yes; then
6568- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
6569- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6570-/* end confdefs.h. */
6571-#include <stdlib.h>
6572-
6573-_ACEOF
6574-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
6575- $EGREP "free" >/dev/null 2>&1; then :
6576-
6577-else
6578- ac_cv_header_stdc=no
6579-fi
6580-rm -f conftest*
6581-
6582-fi
6583-
6584-if test $ac_cv_header_stdc = yes; then
6585- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
6586- if test "$cross_compiling" = yes; then :
6587- :
6588-else
6589- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6590-/* end confdefs.h. */
6591-#include <ctype.h>
6592-#include <stdlib.h>
6593-#if ((' ' & 0x0FF) == 0x020)
6594-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
6595-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
6596-#else
6597-# define ISLOWER(c) \
6598- (('a' <= (c) && (c) <= 'i') \
6599- || ('j' <= (c) && (c) <= 'r') \
6600- || ('s' <= (c) && (c) <= 'z'))
6601-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
6602-#endif
6603-
6604-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
6605-int
6606-main ()
6607-{
6608- int i;
6609- for (i = 0; i < 256; i++)
6610- if (XOR (islower (i), ISLOWER (i))
6611- || toupper (i) != TOUPPER (i))
6612- return 2;
6613- return 0;
6614-}
6615-_ACEOF
6616-if ac_fn_c_try_run "$LINENO"; then :
6617-
6618-else
6619- ac_cv_header_stdc=no
6620-fi
6621-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
6622- conftest.$ac_objext conftest.beam conftest.$ac_ext
6623-fi
6624-
6625-fi
6626-fi
6627-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
6628-$as_echo "$ac_cv_header_stdc" >&6; }
6629-if test $ac_cv_header_stdc = yes; then
6630-
6631-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
6632-
6633-fi
6634-
6635-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
6636-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
6637- inttypes.h stdint.h unistd.h
6638-do :
6639- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
6640-ac_fn_c_check_header_preproc "$LINENO" "$ac_header" "$as_ac_Header"
6641-eval as_val=\$$as_ac_Header
6642- if test "x$as_val" = x""yes; then :
6643- cat >>confdefs.h <<_ACEOF
6644-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
6645-_ACEOF
6646-
6647-fi
6648-done
6649-
6650-
6651 # The cast to long int works around a bug in the HP C Compiler
6652 # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
6653 # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
6654Index: gcc/tree-vrp.c
6655===================================================================
6656--- gcc/tree-vrp.c (.../tags/gcc_4_7_0_release) (wersja 187906)
6657+++ gcc/tree-vrp.c (.../branches/gcc-4_7-branch) (wersja 187906)
6658@@ -695,17 +695,22 @@
6659 /* If VAR is a default definition of a parameter, the variable can
6660 take any value in VAR's type. */
6661 sym = SSA_NAME_VAR (var);
6662- if (SSA_NAME_IS_DEFAULT_DEF (var)
6663- && TREE_CODE (sym) == PARM_DECL)
6664+ if (SSA_NAME_IS_DEFAULT_DEF (var))
6665 {
6666- /* Try to use the "nonnull" attribute to create ~[0, 0]
6667- anti-ranges for pointers. Note that this is only valid with
6668- default definitions of PARM_DECLs. */
6669- if (POINTER_TYPE_P (TREE_TYPE (sym))
6670- && nonnull_arg_p (sym))
6671+ if (TREE_CODE (sym) == PARM_DECL)
6672+ {
6673+ /* Try to use the "nonnull" attribute to create ~[0, 0]
6674+ anti-ranges for pointers. Note that this is only valid with
6675+ default definitions of PARM_DECLs. */
6676+ if (POINTER_TYPE_P (TREE_TYPE (sym))
6677+ && nonnull_arg_p (sym))
6678+ set_value_range_to_nonnull (vr, TREE_TYPE (sym));
6679+ else
6680+ set_value_range_to_varying (vr);
6681+ }
6682+ else if (TREE_CODE (sym) == RESULT_DECL
6683+ && DECL_BY_REFERENCE (sym))
6684 set_value_range_to_nonnull (vr, TREE_TYPE (sym));
6685- else
6686- set_value_range_to_varying (vr);
6687 }
6688
6689 return vr;
6690@@ -3242,8 +3247,8 @@
6691 set_value_range_to_varying (&vr1);
6692
6693 /* The resulting value range is the union of the operand ranges */
6694- vrp_meet (&vr0, &vr1);
6695 copy_value_range (vr, &vr0);
6696+ vrp_meet (vr, &vr1);
6697 }
6698
6699
6700@@ -6442,13 +6447,17 @@
6701 {
6702 if (vr0->type == VR_UNDEFINED)
6703 {
6704- copy_value_range (vr0, vr1);
6705+ /* Drop equivalences. See PR53465. */
6706+ set_value_range (vr0, vr1->type, vr1->min, vr1->max, NULL);
6707 return;
6708 }
6709
6710 if (vr1->type == VR_UNDEFINED)
6711 {
6712- /* Nothing to do. VR0 already has the resulting range. */
6713+ /* VR0 already has the resulting range, just drop equivalences.
6714+ See PR53465. */
6715+ if (vr0->equiv)
6716+ bitmap_clear (vr0->equiv);
6717 return;
6718 }
6719
6720@@ -6590,6 +6599,7 @@
6721 tree lhs = PHI_RESULT (phi);
6722 value_range_t *lhs_vr = get_value_range (lhs);
6723 value_range_t vr_result = { VR_UNDEFINED, NULL_TREE, NULL_TREE, NULL };
6724+ bool first = true;
6725 int edges, old_edges;
6726 struct loop *l;
6727
6728@@ -6646,7 +6656,11 @@
6729 fprintf (dump_file, "\n");
6730 }
6731
6732- vrp_meet (&vr_result, &vr_arg);
6733+ if (first)
6734+ copy_value_range (&vr_result, &vr_arg);
6735+ else
6736+ vrp_meet (&vr_result, &vr_arg);
6737+ first = false;
6738
6739 if (vr_result.type == VR_VARYING)
6740 break;
6741Index: gcc/doc/extend.texi
6742===================================================================
6743--- gcc/doc/extend.texi (.../tags/gcc_4_7_0_release) (wersja 187906)
6744+++ gcc/doc/extend.texi (.../branches/gcc-4_7-branch) (wersja 187906)
6745@@ -1311,18 +1311,18 @@
6746 #ifdef __FLASH
6747 const __flash int var = 1;
6748
6749-int read_i (void)
6750+int read_var (void)
6751 @{
6752- return i;
6753+ return var;
6754 @}
6755 #else
6756-#include <avr/pgmspace.h> /* From avr-libc */
6757+#include <avr/pgmspace.h> /* From AVR-LibC */
6758
6759 const int var PROGMEM = 1;
6760
6761-int read_i (void)
6762+int read_var (void)
6763 @{
6764- return (int) pgm_read_word (&i);
6765+ return (int) pgm_read_word (&var);
6766 @}
6767 #endif /* __FLASH */
6768 @end example
6769@@ -1332,7 +1332,8 @@
6770 accesses to these data will read from generic address space, i.e.@:
6771 from RAM,
6772 so that you need special accessors like @code{pgm_read_byte}
6773-from @w{@uref{http://nongnu.org/avr-libc/user-manual,avr-libc}}.
6774+from @w{@uref{http://nongnu.org/avr-libc/user-manual,AVR-LibC}}
6775+together with attribute @code{progmem}.
6776
6777 @b{Limitations and caveats}
6778
6779@@ -1345,7 +1346,7 @@
6780 @code{__memx}.
6781
6782 @item
6783-If you use one if the @code{__flash@var{N}} address spaces
6784+If you use one of the @code{__flash@var{N}} address spaces
6785 you will have to arrange your linker skript to locate the
6786 @code{.progmem@var{N}.data} sections according to your needs.
6787
6788@@ -2713,6 +2714,51 @@
6789
6790 This attribute is ignored for R8C target.
6791
6792+@item ifunc ("@var{resolver}")
6793+@cindex @code{ifunc} attribute
6794+The @code{ifunc} attribute is used to mark a function as an indirect
6795+function using the STT_GNU_IFUNC symbol type extension to the ELF
6796+standard. This allows the resolution of the symbol value to be
6797+determined dynamically at load time, and an optimized version of the
6798+routine can be selected for the particular processor or other system
6799+characteristics determined then. To use this attribute, first define
6800+the implementation functions available, and a resolver function that
6801+returns a pointer to the selected implementation function. The
6802+implementation functions' declarations must match the API of the
6803+function being implemented, the resolver's declaration is be a
6804+function returning pointer to void function returning void:
6805+
6806+@smallexample
6807+void *my_memcpy (void *dst, const void *src, size_t len)
6808+@{
6809+ @dots{}
6810+@}
6811+
6812+static void (*resolve_memcpy (void)) (void)
6813+@{
6814+ return my_memcpy; // we'll just always select this routine
6815+@}
6816+@end smallexample
6817+
6818+The exported header file declaring the function the user calls would
6819+contain:
6820+
6821+@smallexample
6822+extern void *memcpy (void *, const void *, size_t);
6823+@end smallexample
6824+
6825+allowing the user to call this as a regular function, unaware of the
6826+implementation. Finally, the indirect function needs to be defined in
6827+the same translation unit as the resolver function:
6828+
6829+@smallexample
6830+void *memcpy (void *, const void *, size_t)
6831+ __attribute__ ((ifunc ("resolve_memcpy")));
6832+@end smallexample
6833+
6834+Indirect functions cannot be weak, and require a recent binutils (at
6835+least version 2.20.1), and GNU C library (at least version 2.11.1).
6836+
6837 @item interrupt
6838 @cindex interrupt handler functions
6839 Use this attribute on the ARM, AVR, CR16, Epiphany, M32C, M32R/D, m68k, MeP, MIPS,
6840@@ -2725,7 +2771,13 @@
6841 Note, interrupt handlers for the Blackfin, H8/300, H8/300H, H8S, MicroBlaze,
6842 and SH processors can be specified via the @code{interrupt_handler} attribute.
6843
6844-Note, on the AVR, interrupts will be enabled inside the function.
6845+Note, on the AVR, the hardware globally disables interrupts when an
6846+interrupt is executed. The first instruction of an interrupt handler
6847+declared with this attribute will be a @code{SEI} instruction to
6848+re-enable interrupts. See also the @code{signal} function attribute
6849+that does not insert a @code{SEI} instuction. If both @code{signal} and
6850+@code{interrupt} are specified for the same function, @code{signal}
6851+will be silently ignored.
6852
6853 Note, for the ARM, you can specify the kind of interrupt to be handled by
6854 adding an optional parameter to the interrupt attribute like this:
6855@@ -2821,51 +2873,6 @@
6856 handlers intended to be used with the @code{BRK} opcode (i.e. those
6857 that must end with @code{RETB} instead of @code{RETI}).
6858
6859-@item ifunc ("@var{resolver}")
6860-@cindex @code{ifunc} attribute
6861-The @code{ifunc} attribute is used to mark a function as an indirect
6862-function using the STT_GNU_IFUNC symbol type extension to the ELF
6863-standard. This allows the resolution of the symbol value to be
6864-determined dynamically at load time, and an optimized version of the
6865-routine can be selected for the particular processor or other system
6866-characteristics determined then. To use this attribute, first define
6867-the implementation functions available, and a resolver function that
6868-returns a pointer to the selected implementation function. The
6869-implementation functions' declarations must match the API of the
6870-function being implemented, the resolver's declaration is be a
6871-function returning pointer to void function returning void:
6872-
6873-@smallexample
6874-void *my_memcpy (void *dst, const void *src, size_t len)
6875-@{
6876- @dots{}
6877-@}
6878-
6879-static void (*resolve_memcpy (void)) (void)
6880-@{
6881- return my_memcpy; // we'll just always select this routine
6882-@}
6883-@end smallexample
6884-
6885-The exported header file declaring the function the user calls would
6886-contain:
6887-
6888-@smallexample
6889-extern void *memcpy (void *, const void *, size_t);
6890-@end smallexample
6891-
6892-allowing the user to call this as a regular function, unaware of the
6893-implementation. Finally, the indirect function needs to be defined in
6894-the same translation unit as the resolver function:
6895-
6896-@smallexample
6897-void *memcpy (void *, const void *, size_t)
6898- __attribute__ ((ifunc ("resolve_memcpy")));
6899-@end smallexample
6900-
6901-Indirect functions cannot be weak, and require a recent binutils (at
6902-least version 2.20.1), and GNU C library (at least version 2.11.1).
6903-
6904 @item interrupt_handler
6905 @cindex interrupt handler functions on the Blackfin, m68k, H8/300 and SH processors
6906 Use this attribute on the Blackfin, m68k, H8/300, H8/300H, H8S, and SH to
6907@@ -3470,12 +3477,24 @@
6908 See longcall/shortcall.
6909
6910 @item signal
6911-@cindex signal handler functions on the AVR processors
6912+@cindex interrupt handler functions on the AVR processors
6913 Use this attribute on the AVR to indicate that the specified
6914-function is a signal handler. The compiler will generate function
6915-entry and exit sequences suitable for use in a signal handler when this
6916-attribute is present. Interrupts will be disabled inside the function.
6917+function is an interrupt handler. The compiler will generate function
6918+entry and exit sequences suitable for use in an interrupt handler when this
6919+attribute is present.
6920
6921+See also the @code{interrupt} function attribute.
6922+
6923+The AVR hardware globally disables interrupts when an interrupt is executed.
6924+Interrupt handler functions defined with the @code{signal} attribute
6925+do not re-enable interrupts. It is save to enable interrupts in a
6926+@code{signal} handler. This ``save'' only applies to the code
6927+generated by the compiler and not to the IRQ-layout of the
6928+application which is responsibility of the application.
6929+
6930+If both @code{signal} and @code{interrupt} are specified for the same
6931+function, @code{signal} will be silently ignored.
6932+
6933 @item sp_switch
6934 Use this attribute on the SH to indicate an @code{interrupt_handler}
6935 function should switch to an alternate stack. It expects a string
6936@@ -4782,7 +4801,7 @@
6937 In order to read data located with the @code{progmem} attribute
6938 (inline) assembler must be used.
6939 @example
6940-/* Use custom macros from @w{@uref{http://nongnu.org/avr-libc/user-manual,avr-libc}} */
6941+/* Use custom macros from @w{@uref{http://nongnu.org/avr-libc/user-manual,AVR-LibC}} */
6942 #include <avr/pgmspace.h>
6943
6944 /* Locate var in flash memory */
6945Index: gcc/doc/invoke.texi
6946===================================================================
6947--- gcc/doc/invoke.texi (.../tags/gcc_4_7_0_release) (wersja 187906)
6948+++ gcc/doc/invoke.texi (.../branches/gcc-4_7-branch) (wersja 187906)
6949@@ -11085,8 +11085,7 @@
6950
6951 @item -mtiny-stack
6952 @opindex mtiny-stack
6953-Only use the lower 8@tie{}bits of the stack pointer and assume that the high
6954-byte of SP is always zero.
6955+Only change the lower 8@tie{}bits of the stack pointer.
6956 @end table
6957
6958 @subsubsection @code{EIND} and Devices with more than 128 Ki Bytes of Flash
6959Index: gcc/doc/install.texi
6960===================================================================
6961--- gcc/doc/install.texi (.../tags/gcc_4_7_0_release) (wersja 187906)
6962+++ gcc/doc/install.texi (.../branches/gcc-4_7-branch) (wersja 187906)
6963@@ -1238,7 +1238,7 @@
6964
6965 @item --with-llsc
6966 On MIPS targets, make @option{-mllsc} the default when no
6967-@option{-mno-lsc} option is passed. This is the default for
6968+@option{-mno-llsc} option is passed. This is the default for
6969 Linux-based targets, as the kernel will emulate them if the ISA does
6970 not provide them.
6971
6972Index: gcc/godump.c
6973===================================================================
6974--- gcc/godump.c (.../tags/gcc_4_7_0_release) (wersja 187906)
6975+++ gcc/godump.c (.../branches/gcc-4_7-branch) (wersja 187906)
6976@@ -1024,12 +1024,25 @@
6977 fprintf (go_dump_file, "type _%s ",
6978 IDENTIFIER_POINTER (DECL_NAME (decl)));
6979 go_output_type (container);
6980+
6981+ if (RECORD_OR_UNION_TYPE_P (TREE_TYPE (decl)))
6982+ {
6983+ HOST_WIDE_INT size = int_size_in_bytes (TREE_TYPE (decl));
6984+
6985+ if (size > 0)
6986+ fprintf (go_dump_file,
6987+ "\nconst _sizeof_%s = " HOST_WIDE_INT_PRINT_DEC,
6988+ IDENTIFIER_POINTER (DECL_NAME (decl)),
6989+ size);
6990+ }
6991+
6992 pointer_set_insert (container->decls_seen, decl);
6993 }
6994 else if (RECORD_OR_UNION_TYPE_P (TREE_TYPE (decl)))
6995 {
6996 void **slot;
6997 const char *type;
6998+ HOST_WIDE_INT size;
6999
7000 type = IDENTIFIER_POINTER (TYPE_NAME (TREE_TYPE ((decl))));
7001 /* If type defined already, skip. */
7002@@ -1047,6 +1060,13 @@
7003 fprintf (go_dump_file, "type _%s ",
7004 IDENTIFIER_POINTER (TYPE_NAME (TREE_TYPE (decl))));
7005 go_output_type (container);
7006+
7007+ size = int_size_in_bytes (TREE_TYPE (decl));
7008+ if (size > 0)
7009+ fprintf (go_dump_file,
7010+ "\nconst _sizeof_%s = " HOST_WIDE_INT_PRINT_DEC,
7011+ IDENTIFIER_POINTER (TYPE_NAME (TREE_TYPE (decl))),
7012+ size);
7013 }
7014 else
7015 return;
7016Index: gcc/lto-symtab.c
7017===================================================================
7018--- gcc/lto-symtab.c (.../tags/gcc_4_7_0_release) (wersja 187906)
7019+++ gcc/lto-symtab.c (.../branches/gcc-4_7-branch) (wersja 187906)
7020@@ -215,8 +215,8 @@
7021 {
7022 fprintf (cgraph_dump_file, "Replacing cgraph node %s/%i by %s/%i"
7023 " for symbol %s\n",
7024- cgraph_node_name (node), node->uid,
7025- cgraph_node_name (prevailing_node),
7026+ xstrdup (cgraph_node_name (node)), node->uid,
7027+ xstrdup (cgraph_node_name (prevailing_node)),
7028 prevailing_node->uid,
7029 IDENTIFIER_POINTER ((*targetm.asm_out.mangle_assembler_name)
7030 (IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (node->decl)))));
7031Index: gcc/tree-ssa-tail-merge.c
7032===================================================================
7033--- gcc/tree-ssa-tail-merge.c (.../tags/gcc_4_7_0_release) (wersja 187906)
7034+++ gcc/tree-ssa-tail-merge.c (.../branches/gcc-4_7-branch) (wersja 187906)
7035@@ -1123,18 +1123,31 @@
7036 }
7037 }
7038
7039-/* Let GSI skip backwards over local defs. */
7040+/* Let GSI skip backwards over local defs. Return the earliest vuse in VUSE.
7041+ Return true in VUSE_ESCAPED if the vuse influenced a SSA_OP_DEF of one of the
7042+ processed statements. */
7043
7044 static void
7045-gsi_advance_bw_nondebug_nonlocal (gimple_stmt_iterator *gsi)
7046+gsi_advance_bw_nondebug_nonlocal (gimple_stmt_iterator *gsi, tree *vuse,
7047+ bool *vuse_escaped)
7048 {
7049 gimple stmt;
7050+ tree lvuse;
7051
7052 while (true)
7053 {
7054 if (gsi_end_p (*gsi))
7055 return;
7056 stmt = gsi_stmt (*gsi);
7057+
7058+ lvuse = gimple_vuse (stmt);
7059+ if (lvuse != NULL_TREE)
7060+ {
7061+ *vuse = lvuse;
7062+ if (!ZERO_SSA_OPERANDS (stmt, SSA_OP_DEF))
7063+ *vuse_escaped = true;
7064+ }
7065+
7066 if (!(is_gimple_assign (stmt) && local_def (gimple_get_lhs (stmt))
7067 && !gimple_has_side_effects (stmt)))
7068 return;
7069@@ -1150,9 +1163,11 @@
7070 {
7071 gimple_stmt_iterator gsi1 = gsi_last_nondebug_bb (bb1);
7072 gimple_stmt_iterator gsi2 = gsi_last_nondebug_bb (bb2);
7073+ tree vuse1 = NULL_TREE, vuse2 = NULL_TREE;
7074+ bool vuse_escaped = false;
7075
7076- gsi_advance_bw_nondebug_nonlocal (&gsi1);
7077- gsi_advance_bw_nondebug_nonlocal (&gsi2);
7078+ gsi_advance_bw_nondebug_nonlocal (&gsi1, &vuse1, &vuse_escaped);
7079+ gsi_advance_bw_nondebug_nonlocal (&gsi2, &vuse2, &vuse_escaped);
7080
7081 while (!gsi_end_p (gsi1) && !gsi_end_p (gsi2))
7082 {
7083@@ -1161,13 +1176,20 @@
7084
7085 gsi_prev_nondebug (&gsi1);
7086 gsi_prev_nondebug (&gsi2);
7087- gsi_advance_bw_nondebug_nonlocal (&gsi1);
7088- gsi_advance_bw_nondebug_nonlocal (&gsi2);
7089+ gsi_advance_bw_nondebug_nonlocal (&gsi1, &vuse1, &vuse_escaped);
7090+ gsi_advance_bw_nondebug_nonlocal (&gsi2, &vuse2, &vuse_escaped);
7091 }
7092
7093 if (!(gsi_end_p (gsi1) && gsi_end_p (gsi2)))
7094 return;
7095
7096+ /* If the incoming vuses are not the same, and the vuse escaped into an
7097+ SSA_OP_DEF, then merging the 2 blocks will change the value of the def,
7098+ which potentially means the semantics of one of the blocks will be changed.
7099+ TODO: make this check more precise. */
7100+ if (vuse_escaped && vuse1 != vuse2)
7101+ return;
7102+
7103 if (dump_file)
7104 fprintf (dump_file, "find_duplicates: <bb %d> duplicate of <bb %d>\n",
7105 bb1->index, bb2->index);
7106Index: gcc/c-family/ChangeLog
7107===================================================================
7108--- gcc/c-family/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187906)
7109+++ gcc/c-family/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187906)
7110@@ -1,3 +1,8 @@
7111+2012-03-23 William Bader <williambader@hotmail.com>
7112+
7113+ PR c/52682
7114+ * c-lex.c (c_lex_with_flags): Avoid declarations after stmts.
7115+
7116 2012-03-22 Release Manager
7117
7118 * GCC 4.7.0 released.
7119Index: gcc/c-family/c-lex.c
7120===================================================================
7121--- gcc/c-family/c-lex.c (.../tags/gcc_4_7_0_release) (wersja 187906)
7122+++ gcc/c-family/c-lex.c (.../branches/gcc-4_7-branch) (wersja 187906)
7123@@ -342,6 +342,8 @@
7124
7125 if (flags & CPP_N_USERDEF)
7126 {
7127+ char *str;
7128+ tree literal;
7129 tree suffix_id = get_identifier (suffix);
7130 int len = tok->val.str.len - strlen (suffix);
7131 /* If this is going to be used as a C string to pass to a
7132@@ -350,9 +352,9 @@
7133 (const char *) tok->val.str.text);
7134 TREE_TYPE (num_string) = char_array_type_node;
7135 num_string = fix_string_type (num_string);
7136- char *str = CONST_CAST (char *, TREE_STRING_POINTER (num_string));
7137+ str = CONST_CAST (char *, TREE_STRING_POINTER (num_string));
7138 str[len] = '\0';
7139- tree literal = build_userdef_literal (suffix_id, *value,
7140+ literal = build_userdef_literal (suffix_id, *value,
7141 num_string);
7142 *value = literal;
7143 }
7144Index: gcc/java/typeck.c
7145===================================================================
7146--- gcc/java/typeck.c (.../tags/gcc_4_7_0_release) (wersja 187906)
7147+++ gcc/java/typeck.c (.../branches/gcc-4_7-branch) (wersja 187906)
7148@@ -189,6 +189,13 @@
7149 return unsignedp ? unsigned_int_type_node : int_type_node;
7150 if (bits <= TYPE_PRECISION (long_type_node))
7151 return unsignedp ? unsigned_long_type_node : long_type_node;
7152+ /* A 64-bit target with TImode requires 128-bit type definitions
7153+ for bitsizetype. This is fixed more properly elsewhere
7154+ beginning in 4.8. */
7155+ if (int128_integer_type_node
7156+ && bits == TYPE_PRECISION (int128_integer_type_node))
7157+ return (unsignedp ? int128_unsigned_type_node
7158+ : int128_integer_type_node);
7159 return 0;
7160 }
7161
7162Index: gcc/java/ChangeLog
7163===================================================================
7164--- gcc/java/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187906)
7165+++ gcc/java/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187906)
7166@@ -1,3 +1,7 @@
7167+2012-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7168+
7169+ * typeck.c (java_type_for_size): Handle 128-bit sizes for bitsizetype.
7170+
7171 2012-03-22 Release Manager
7172
7173 * GCC 4.7.0 released.
7174Index: gcc/DATESTAMP
7175===================================================================
7176--- gcc/DATESTAMP (.../tags/gcc_4_7_0_release) (wersja 187906)
7177+++ gcc/DATESTAMP (.../branches/gcc-4_7-branch) (wersja 187906)
7178@@ -1 +1 @@
7179-20120322
7180+20120526
7181Index: gcc/tree.c
7182===================================================================
7183--- gcc/tree.c (.../tags/gcc_4_7_0_release) (wersja 187906)
7184+++ gcc/tree.c (.../branches/gcc-4_7-branch) (wersja 187906)
7185@@ -8431,8 +8431,11 @@
7186 a variable in FN. */
7187 #define RETURN_TRUE_IF_VAR(T) \
7188 do { tree _t = (T); \
7189- if (_t && _t != error_mark_node && TREE_CODE (_t) != INTEGER_CST \
7190- && (!fn || walk_tree (&_t, find_var_from_fn, fn, NULL))) \
7191+ if (_t != NULL_TREE \
7192+ && _t != error_mark_node \
7193+ && TREE_CODE (_t) != INTEGER_CST \
7194+ && TREE_CODE (_t) != PLACEHOLDER_EXPR \
7195+ && (!fn || walk_tree (&_t, find_var_from_fn, fn, NULL))) \
7196 return true; } while (0)
7197
7198 if (type == error_mark_node)
7199Index: gcc/ipa-cp.c
7200===================================================================
7201--- gcc/ipa-cp.c (.../tags/gcc_4_7_0_release) (wersja 187906)
7202+++ gcc/ipa-cp.c (.../branches/gcc-4_7-branch) (wersja 187906)
7203@@ -2180,8 +2180,9 @@
7204 if (dump_file)
7205 fprintf (dump_file, " - adding an extra caller %s/%i"
7206 " of %s/%i\n",
7207- cgraph_node_name (cs->caller), cs->caller->uid,
7208- cgraph_node_name (val->spec_node),
7209+ xstrdup (cgraph_node_name (cs->caller)),
7210+ cs->caller->uid,
7211+ xstrdup (cgraph_node_name (val->spec_node)),
7212 val->spec_node->uid);
7213
7214 cgraph_redirect_edge_callee (cs, val->spec_node);
7215Index: gcc/tree-scalar-evolution.c
7216===================================================================
7217--- gcc/tree-scalar-evolution.c (.../tags/gcc_4_7_0_release) (wersja 187906)
7218+++ gcc/tree-scalar-evolution.c (.../branches/gcc-4_7-branch) (wersja 187906)
7219@@ -499,65 +499,6 @@
7220 return chrec_dont_know;
7221 }
7222
7223-/* Determine whether the CHREC is always positive/negative. If the expression
7224- cannot be statically analyzed, return false, otherwise set the answer into
7225- VALUE. */
7226-
7227-bool
7228-chrec_is_positive (tree chrec, bool *value)
7229-{
7230- bool value0, value1, value2;
7231- tree end_value, nb_iter;
7232-
7233- switch (TREE_CODE (chrec))
7234- {
7235- case POLYNOMIAL_CHREC:
7236- if (!chrec_is_positive (CHREC_LEFT (chrec), &value0)
7237- || !chrec_is_positive (CHREC_RIGHT (chrec), &value1))
7238- return false;
7239-
7240- /* FIXME -- overflows. */
7241- if (value0 == value1)
7242- {
7243- *value = value0;
7244- return true;
7245- }
7246-
7247- /* Otherwise the chrec is under the form: "{-197, +, 2}_1",
7248- and the proof consists in showing that the sign never
7249- changes during the execution of the loop, from 0 to
7250- loop->nb_iterations. */
7251- if (!evolution_function_is_affine_p (chrec))
7252- return false;
7253-
7254- nb_iter = number_of_latch_executions (get_chrec_loop (chrec));
7255- if (chrec_contains_undetermined (nb_iter))
7256- return false;
7257-
7258-#if 0
7259- /* TODO -- If the test is after the exit, we may decrease the number of
7260- iterations by one. */
7261- if (after_exit)
7262- nb_iter = chrec_fold_minus (type, nb_iter, build_int_cst (type, 1));
7263-#endif
7264-
7265- end_value = chrec_apply (CHREC_VARIABLE (chrec), chrec, nb_iter);
7266-
7267- if (!chrec_is_positive (end_value, &value2))
7268- return false;
7269-
7270- *value = value0;
7271- return value0 == value1;
7272-
7273- case INTEGER_CST:
7274- *value = (tree_int_cst_sgn (chrec) == 1);
7275- return true;
7276-
7277- default:
7278- return false;
7279- }
7280-}
7281-
7282 /* Associate CHREC to SCALAR. */
7283
7284 static void
7285Index: gcc/configure
7286===================================================================
7287--- gcc/configure (.../tags/gcc_4_7_0_release) (wersja 187906)
7288+++ gcc/configure (.../branches/gcc-4_7-branch) (wersja 187906)
7289@@ -3394,13 +3394,6 @@
7290
7291 fi
7292
7293-gnu_ld=`if test x"$gnu_ld_flag" = x"yes"; then echo 1; else echo 0; fi`
7294-
7295-cat >>confdefs.h <<_ACEOF
7296-#define HAVE_GNU_LD $gnu_ld
7297-_ACEOF
7298-
7299-
7300 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a default linker was specified" >&5
7301 $as_echo_n "checking whether a default linker was specified... " >&6; }
7302 if test x"${DEFAULT_LINKER+set}" = x"set"; then
7303@@ -3459,13 +3452,6 @@
7304
7305 fi
7306
7307-gnu_as=`if test x"$gas_flag" = x"yes"; then echo 1; else echo 0; fi`
7308-
7309-cat >>confdefs.h <<_ACEOF
7310-#define HAVE_GNU_AS $gnu_as
7311-_ACEOF
7312-
7313-
7314 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a default assembler was specified" >&5
7315 $as_echo_n "checking whether a default assembler was specified... " >&6; }
7316 if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
7317@@ -11175,6 +11161,20 @@
7318
7319 fi
7320
7321+gnu_ld_bool=`if test x"$gnu_ld" = x"yes"; then echo 1; else echo 0; fi`
7322+
7323+cat >>confdefs.h <<_ACEOF
7324+#define HAVE_GNU_LD $gnu_ld_bool
7325+_ACEOF
7326+
7327+
7328+gnu_as_bool=`if test x"$gas" = x"yes"; then echo 1; else echo 0; fi`
7329+
7330+cat >>confdefs.h <<_ACEOF
7331+#define HAVE_GNU_AS $gnu_as_bool
7332+_ACEOF
7333+
7334+
7335 count=a
7336 for f in $host_xm_file; do
7337 count=${count}x
7338@@ -26474,7 +26474,15 @@
7339 fi
7340
7341 case "$target:$tm_file" in
7342- powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*)
7343+ powerpc64-*-freebsd* | powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*)
7344+ case "$target" in
7345+ *-*-linux*)
7346+ emul_name="-melf64ppc"
7347+ ;;
7348+ *-*-freebsd*)
7349+ emul_name="-melf64ppc_fbsd"
7350+ ;;
7351+ esac
7352 { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker support for omitting dot symbols" >&5
7353 $as_echo_n "checking linker support for omitting dot symbols... " >&6; }
7354 if test "${gcc_cv_ld_no_dot_syms+set}" = set; then :
7355@@ -26504,7 +26512,7 @@
7356 EOF
7357 if $gcc_cv_as -a64 -o conftest1.o conftest1.s > /dev/null 2>&1 \
7358 && $gcc_cv_as -a64 -o conftest2.o conftest2.s > /dev/null 2>&1 \
7359- && $gcc_cv_ld -melf64ppc -o conftest conftest1.o conftest2.o > /dev/null 2>&1; then
7360+ && $gcc_cv_ld $emul_name -o conftest conftest1.o conftest2.o > /dev/null 2>&1; then
7361 gcc_cv_ld_no_dot_syms=yes
7362 fi
7363 rm -f conftest conftest1.o conftest2.o conftest1.s conftest2.s
7364@@ -26541,7 +26549,7 @@
7365 ld 9,ie0@got@tprel@l(9)
7366 EOF
7367 if $gcc_cv_as -a64 -o conftest.o conftest.s > /dev/null 2>&1 \
7368- && $gcc_cv_ld -melf64ppc --no-toc-sort -o conftest conftest.o > /dev/null 2>&1; then
7369+ && $gcc_cv_ld $emul_name --no-toc-sort -o conftest conftest.o > /dev/null 2>&1; then
7370 gcc_cv_ld_large_toc=yes
7371 fi
7372 rm -f conftest conftest.o conftest.s
7373Index: gcc/fold-const.c
7374===================================================================
7375--- gcc/fold-const.c (.../tags/gcc_4_7_0_release) (wersja 187906)
7376+++ gcc/fold-const.c (.../branches/gcc-4_7-branch) (wersja 187906)
7377@@ -6850,64 +6850,81 @@
7378 s = integer_one_node;
7379 }
7380
7381- for (;; ref = TREE_OPERAND (ref, 0))
7382+ /* Handle &x.array the same as we would handle &x.array[0]. */
7383+ if (TREE_CODE (ref) == COMPONENT_REF
7384+ && TREE_CODE (TREE_TYPE (ref)) == ARRAY_TYPE)
7385 {
7386- if (TREE_CODE (ref) == ARRAY_REF)
7387+ tree domain;
7388+
7389+ /* Remember if this was a multi-dimensional array. */
7390+ if (TREE_CODE (TREE_OPERAND (ref, 0)) == ARRAY_REF)
7391+ mdim = true;
7392+
7393+ domain = TYPE_DOMAIN (TREE_TYPE (ref));
7394+ if (! domain)
7395+ goto cont;
7396+ itype = TREE_TYPE (domain);
7397+
7398+ step = TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (ref)));
7399+ if (TREE_CODE (step) != INTEGER_CST)
7400+ goto cont;
7401+
7402+ if (s)
7403 {
7404- tree domain;
7405+ if (! tree_int_cst_equal (step, s))
7406+ goto cont;
7407+ }
7408+ else
7409+ {
7410+ /* Try if delta is a multiple of step. */
7411+ tree tmp = div_if_zero_remainder (EXACT_DIV_EXPR, op1, step);
7412+ if (! tmp)
7413+ goto cont;
7414+ delta = tmp;
7415+ }
7416
7417- /* Remember if this was a multi-dimensional array. */
7418- if (TREE_CODE (TREE_OPERAND (ref, 0)) == ARRAY_REF)
7419- mdim = true;
7420+ /* Only fold here if we can verify we do not overflow one
7421+ dimension of a multi-dimensional array. */
7422+ if (mdim)
7423+ {
7424+ tree tmp;
7425
7426- domain = TYPE_DOMAIN (TREE_TYPE (TREE_OPERAND (ref, 0)));
7427- if (! domain)
7428- continue;
7429- itype = TREE_TYPE (domain);
7430+ if (!TYPE_MIN_VALUE (domain)
7431+ || !TYPE_MAX_VALUE (domain)
7432+ || TREE_CODE (TYPE_MAX_VALUE (domain)) != INTEGER_CST)
7433+ goto cont;
7434
7435- step = array_ref_element_size (ref);
7436- if (TREE_CODE (step) != INTEGER_CST)
7437- continue;
7438+ tmp = fold_binary_loc (loc, PLUS_EXPR, itype,
7439+ fold_convert_loc (loc, itype,
7440+ TYPE_MIN_VALUE (domain)),
7441+ fold_convert_loc (loc, itype, delta));
7442+ if (TREE_CODE (tmp) != INTEGER_CST
7443+ || tree_int_cst_lt (TYPE_MAX_VALUE (domain), tmp))
7444+ goto cont;
7445+ }
7446
7447- if (s)
7448- {
7449- if (! tree_int_cst_equal (step, s))
7450- continue;
7451- }
7452- else
7453- {
7454- /* Try if delta is a multiple of step. */
7455- tree tmp = div_if_zero_remainder (EXACT_DIV_EXPR, op1, step);
7456- if (! tmp)
7457- continue;
7458- delta = tmp;
7459- }
7460+ /* We found a suitable component reference. */
7461
7462- /* Only fold here if we can verify we do not overflow one
7463- dimension of a multi-dimensional array. */
7464- if (mdim)
7465- {
7466- tree tmp;
7467+ pref = TREE_OPERAND (addr, 0);
7468+ ret = copy_node (pref);
7469+ SET_EXPR_LOCATION (ret, loc);
7470
7471- if (TREE_CODE (TREE_OPERAND (ref, 1)) != INTEGER_CST
7472- || !TYPE_MAX_VALUE (domain)
7473- || TREE_CODE (TYPE_MAX_VALUE (domain)) != INTEGER_CST)
7474- continue;
7475+ ret = build4_loc (loc, ARRAY_REF, TREE_TYPE (TREE_TYPE (ref)), ret,
7476+ fold_build2_loc
7477+ (loc, PLUS_EXPR, itype,
7478+ fold_convert_loc (loc, itype,
7479+ TYPE_MIN_VALUE
7480+ (TYPE_DOMAIN (TREE_TYPE (ref)))),
7481+ fold_convert_loc (loc, itype, delta)),
7482+ NULL_TREE, NULL_TREE);
7483+ return build_fold_addr_expr_loc (loc, ret);
7484+ }
7485
7486- tmp = fold_binary_loc (loc, PLUS_EXPR, itype,
7487- fold_convert_loc (loc, itype,
7488- TREE_OPERAND (ref, 1)),
7489- fold_convert_loc (loc, itype, delta));
7490- if (!tmp
7491- || TREE_CODE (tmp) != INTEGER_CST
7492- || tree_int_cst_lt (TYPE_MAX_VALUE (domain), tmp))
7493- continue;
7494- }
7495+cont:
7496
7497- break;
7498- }
7499- else if (TREE_CODE (ref) == COMPONENT_REF
7500- && TREE_CODE (TREE_TYPE (ref)) == ARRAY_TYPE)
7501+ for (;; ref = TREE_OPERAND (ref, 0))
7502+ {
7503+ if (TREE_CODE (ref) == ARRAY_REF)
7504 {
7505 tree domain;
7506
7507@@ -6915,12 +6932,12 @@
7508 if (TREE_CODE (TREE_OPERAND (ref, 0)) == ARRAY_REF)
7509 mdim = true;
7510
7511- domain = TYPE_DOMAIN (TREE_TYPE (ref));
7512+ domain = TYPE_DOMAIN (TREE_TYPE (TREE_OPERAND (ref, 0)));
7513 if (! domain)
7514 continue;
7515 itype = TREE_TYPE (domain);
7516
7517- step = TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (ref)));
7518+ step = array_ref_element_size (ref);
7519 if (TREE_CODE (step) != INTEGER_CST)
7520 continue;
7521
7522@@ -6944,16 +6961,17 @@
7523 {
7524 tree tmp;
7525
7526- if (!TYPE_MIN_VALUE (domain)
7527+ if (TREE_CODE (TREE_OPERAND (ref, 1)) != INTEGER_CST
7528 || !TYPE_MAX_VALUE (domain)
7529 || TREE_CODE (TYPE_MAX_VALUE (domain)) != INTEGER_CST)
7530 continue;
7531
7532 tmp = fold_binary_loc (loc, PLUS_EXPR, itype,
7533 fold_convert_loc (loc, itype,
7534- TYPE_MIN_VALUE (domain)),
7535+ TREE_OPERAND (ref, 1)),
7536 fold_convert_loc (loc, itype, delta));
7537- if (TREE_CODE (tmp) != INTEGER_CST
7538+ if (!tmp
7539+ || TREE_CODE (tmp) != INTEGER_CST
7540 || tree_int_cst_lt (TYPE_MAX_VALUE (domain), tmp))
7541 continue;
7542 }
7543@@ -6982,29 +7000,11 @@
7544 pos = TREE_OPERAND (pos, 0);
7545 }
7546
7547- if (TREE_CODE (ref) == ARRAY_REF)
7548- {
7549- TREE_OPERAND (pos, 1)
7550- = fold_build2_loc (loc, PLUS_EXPR, itype,
7551- fold_convert_loc (loc, itype, TREE_OPERAND (pos, 1)),
7552- fold_convert_loc (loc, itype, delta));
7553- return fold_build1_loc (loc, ADDR_EXPR, TREE_TYPE (addr), ret);
7554- }
7555- else if (TREE_CODE (ref) == COMPONENT_REF)
7556- {
7557- gcc_assert (ret == pos);
7558- ret = build4_loc (loc, ARRAY_REF, TREE_TYPE (TREE_TYPE (ref)), ret,
7559- fold_build2_loc
7560- (loc, PLUS_EXPR, itype,
7561- fold_convert_loc (loc, itype,
7562- TYPE_MIN_VALUE
7563- (TYPE_DOMAIN (TREE_TYPE (ref)))),
7564- fold_convert_loc (loc, itype, delta)),
7565- NULL_TREE, NULL_TREE);
7566- return build_fold_addr_expr_loc (loc, ret);
7567- }
7568- else
7569- gcc_unreachable ();
7570+ TREE_OPERAND (pos, 1)
7571+ = fold_build2_loc (loc, PLUS_EXPR, itype,
7572+ fold_convert_loc (loc, itype, TREE_OPERAND (pos, 1)),
7573+ fold_convert_loc (loc, itype, delta));
7574+ return fold_build1_loc (loc, ADDR_EXPR, TREE_TYPE (addr), ret);
7575 }
7576
7577
7578@@ -12828,13 +12828,13 @@
7579 if (TREE_CODE (arg0) == BIT_XOR_EXPR
7580 && operand_equal_p (TREE_OPERAND (arg0, 1), arg1, 0))
7581 return fold_build2_loc (loc, code, type, TREE_OPERAND (arg0, 0),
7582- build_int_cst (TREE_TYPE (arg0), 0));
7583+ build_zero_cst (TREE_TYPE (arg0)));
7584 /* Likewise (X ^ Y) == X becomes Y == 0. X has no side-effects. */
7585 if (TREE_CODE (arg0) == BIT_XOR_EXPR
7586 && operand_equal_p (TREE_OPERAND (arg0, 0), arg1, 0)
7587 && reorder_operands_p (TREE_OPERAND (arg0, 1), arg1))
7588 return fold_build2_loc (loc, code, type, TREE_OPERAND (arg0, 1),
7589- build_int_cst (TREE_TYPE (arg0), 0));
7590+ build_zero_cst (TREE_TYPE (arg0)));
7591
7592 /* (X ^ C1) op C2 can be rewritten as X op (C1 ^ C2). */
7593 if (TREE_CODE (arg0) == BIT_XOR_EXPR
7594@@ -12922,7 +12922,7 @@
7595 BIT_XOR_EXPR, itype,
7596 arg00, arg10),
7597 arg01),
7598- build_int_cst (itype, 0));
7599+ build_zero_cst (itype));
7600
7601 if (operand_equal_p (arg01, arg10, 0))
7602 return fold_build2_loc (loc, code, type,
7603@@ -12931,7 +12931,7 @@
7604 BIT_XOR_EXPR, itype,
7605 arg00, arg11),
7606 arg01),
7607- build_int_cst (itype, 0));
7608+ build_zero_cst (itype));
7609
7610 if (operand_equal_p (arg00, arg11, 0))
7611 return fold_build2_loc (loc, code, type,
7612@@ -12940,7 +12940,7 @@
7613 BIT_XOR_EXPR, itype,
7614 arg01, arg10),
7615 arg00),
7616- build_int_cst (itype, 0));
7617+ build_zero_cst (itype));
7618
7619 if (operand_equal_p (arg00, arg10, 0))
7620 return fold_build2_loc (loc, code, type,
7621@@ -12949,7 +12949,7 @@
7622 BIT_XOR_EXPR, itype,
7623 arg01, arg11),
7624 arg00),
7625- build_int_cst (itype, 0));
7626+ build_zero_cst (itype));
7627 }
7628
7629 if (TREE_CODE (arg0) == BIT_XOR_EXPR
7630Index: gcc/omp-low.c
7631===================================================================
7632--- gcc/omp-low.c (.../tags/gcc_4_7_0_release) (wersja 187906)
7633+++ gcc/omp-low.c (.../branches/gcc-4_7-branch) (wersja 187906)
7634@@ -851,6 +851,19 @@
7635 return omp_copy_decl_2 (var, DECL_NAME (var), TREE_TYPE (var), ctx);
7636 }
7637
7638+/* Build COMPONENT_REF and set TREE_THIS_VOLATILE and TREE_READONLY on it
7639+ as appropriate. */
7640+static tree
7641+omp_build_component_ref (tree obj, tree field)
7642+{
7643+ tree ret = build3 (COMPONENT_REF, TREE_TYPE (field), obj, field, NULL);
7644+ if (TREE_THIS_VOLATILE (field))
7645+ TREE_THIS_VOLATILE (ret) |= 1;
7646+ if (TREE_READONLY (field))
7647+ TREE_READONLY (ret) |= 1;
7648+ return ret;
7649+}
7650+
7651 /* Build tree nodes to access the field for VAR on the receiver side. */
7652
7653 static tree
7654@@ -865,7 +878,7 @@
7655 field = x;
7656
7657 x = build_simple_mem_ref (ctx->receiver_decl);
7658- x = build3 (COMPONENT_REF, TREE_TYPE (field), x, field, NULL);
7659+ x = omp_build_component_ref (x, field);
7660 if (by_ref)
7661 x = build_simple_mem_ref (x);
7662
7663@@ -915,8 +928,7 @@
7664 build_sender_ref (tree var, omp_context *ctx)
7665 {
7666 tree field = lookup_sfield (var, ctx);
7667- return build3 (COMPONENT_REF, TREE_TYPE (field),
7668- ctx->sender_decl, field, NULL);
7669+ return omp_build_component_ref (ctx->sender_decl, field);
7670 }
7671
7672 /* Add a new field for VAR inside the structure CTX->SENDER_DECL. */
7673@@ -6534,7 +6546,7 @@
7674 sf = (tree) n->value;
7675 sf = *(tree *) pointer_map_contains (tcctx.cb.decl_map, sf);
7676 src = build_simple_mem_ref_loc (loc, sarg);
7677- src = build3 (COMPONENT_REF, TREE_TYPE (sf), src, sf, NULL);
7678+ src = omp_build_component_ref (src, sf);
7679 t = build2 (MODIFY_EXPR, TREE_TYPE (*p), *p, src);
7680 append_to_statement_list (t, &list);
7681 }
7682@@ -6557,9 +6569,9 @@
7683 if (tcctx.cb.decl_map)
7684 sf = *(tree *) pointer_map_contains (tcctx.cb.decl_map, sf);
7685 src = build_simple_mem_ref_loc (loc, sarg);
7686- src = build3 (COMPONENT_REF, TREE_TYPE (sf), src, sf, NULL);
7687+ src = omp_build_component_ref (src, sf);
7688 dst = build_simple_mem_ref_loc (loc, arg);
7689- dst = build3 (COMPONENT_REF, TREE_TYPE (f), dst, f, NULL);
7690+ dst = omp_build_component_ref (dst, f);
7691 t = build2 (MODIFY_EXPR, TREE_TYPE (dst), dst, src);
7692 append_to_statement_list (t, &list);
7693 break;
7694@@ -6580,14 +6592,14 @@
7695 if (tcctx.cb.decl_map)
7696 sf = *(tree *) pointer_map_contains (tcctx.cb.decl_map, sf);
7697 src = build_simple_mem_ref_loc (loc, sarg);
7698- src = build3 (COMPONENT_REF, TREE_TYPE (sf), src, sf, NULL);
7699+ src = omp_build_component_ref (src, sf);
7700 if (use_pointer_for_field (decl, NULL) || is_reference (decl))
7701 src = build_simple_mem_ref_loc (loc, src);
7702 }
7703 else
7704 src = decl;
7705 dst = build_simple_mem_ref_loc (loc, arg);
7706- dst = build3 (COMPONENT_REF, TREE_TYPE (f), dst, f, NULL);
7707+ dst = omp_build_component_ref (dst, f);
7708 t = lang_hooks.decls.omp_clause_copy_ctor (c, dst, src);
7709 append_to_statement_list (t, &list);
7710 break;
7711@@ -6606,14 +6618,14 @@
7712 if (tcctx.cb.decl_map)
7713 sf = *(tree *) pointer_map_contains (tcctx.cb.decl_map, sf);
7714 src = build_simple_mem_ref_loc (loc, sarg);
7715- src = build3 (COMPONENT_REF, TREE_TYPE (sf), src, sf, NULL);
7716+ src = omp_build_component_ref (src, sf);
7717 if (use_pointer_for_field (decl, NULL))
7718 src = build_simple_mem_ref_loc (loc, src);
7719 }
7720 else
7721 src = decl;
7722 dst = build_simple_mem_ref_loc (loc, arg);
7723- dst = build3 (COMPONENT_REF, TREE_TYPE (f), dst, f, NULL);
7724+ dst = omp_build_component_ref (dst, f);
7725 t = build2 (MODIFY_EXPR, TREE_TYPE (dst), dst, src);
7726 append_to_statement_list (t, &list);
7727 break;
7728@@ -6645,10 +6657,10 @@
7729 sf = (tree) n->value;
7730 sf = *(tree *) pointer_map_contains (tcctx.cb.decl_map, sf);
7731 src = build_simple_mem_ref_loc (loc, sarg);
7732- src = build3 (COMPONENT_REF, TREE_TYPE (sf), src, sf, NULL);
7733+ src = omp_build_component_ref (src, sf);
7734 src = build_simple_mem_ref_loc (loc, src);
7735 dst = build_simple_mem_ref_loc (loc, arg);
7736- dst = build3 (COMPONENT_REF, TREE_TYPE (f), dst, f, NULL);
7737+ dst = omp_build_component_ref (dst, f);
7738 t = lang_hooks.decls.omp_clause_copy_ctor (c, dst, src);
7739 append_to_statement_list (t, &list);
7740 n = splay_tree_lookup (ctx->field_map,
7741@@ -6656,7 +6668,7 @@
7742 df = (tree) n->value;
7743 df = *(tree *) pointer_map_contains (tcctx.cb.decl_map, df);
7744 ptr = build_simple_mem_ref_loc (loc, arg);
7745- ptr = build3 (COMPONENT_REF, TREE_TYPE (df), ptr, df, NULL);
7746+ ptr = omp_build_component_ref (ptr, df);
7747 t = build2 (MODIFY_EXPR, TREE_TYPE (ptr), ptr,
7748 build_fold_addr_expr_loc (loc, dst));
7749 append_to_statement_list (t, &list);
7750Index: gcc/tree-chrec.h
7751===================================================================
7752--- gcc/tree-chrec.h (.../tags/gcc_4_7_0_release) (wersja 187906)
7753+++ gcc/tree-chrec.h (.../branches/gcc-4_7-branch) (wersja 187906)
7754@@ -77,7 +77,6 @@
7755 /* Observers. */
7756 extern bool eq_evolutions_p (const_tree, const_tree);
7757 extern bool is_multivariate_chrec (const_tree);
7758-extern bool chrec_is_positive (tree, bool *);
7759 extern bool chrec_contains_symbols (const_tree);
7760 extern bool chrec_contains_symbols_defined_in_loop (const_tree, unsigned);
7761 extern bool chrec_contains_undetermined (const_tree);
7762Index: gcc/DEV-PHASE
7763===================================================================
7764--- gcc/DEV-PHASE (.../tags/gcc_4_7_0_release) (wersja 187906)
7765+++ gcc/DEV-PHASE (.../branches/gcc-4_7-branch) (wersja 187906)
7766@@ -0,0 +1 @@
7767+prerelease
7768Index: gcc/tree-ssa-sccvn.c
7769===================================================================
7770--- gcc/tree-ssa-sccvn.c (.../tags/gcc_4_7_0_release) (wersja 187906)
7771+++ gcc/tree-ssa-sccvn.c (.../branches/gcc-4_7-branch) (wersja 187906)
7772@@ -1348,18 +1348,19 @@
7773
7774 /* Lookup an existing or insert a new vn_reference entry into the
7775 value table for the VUSE, SET, TYPE, OPERANDS reference which
7776- has the constant value CST. */
7777+ has the value VALUE which is either a constant or an SSA name. */
7778
7779 static vn_reference_t
7780-vn_reference_lookup_or_insert_constant_for_pieces (tree vuse,
7781- alias_set_type set,
7782- tree type,
7783- VEC (vn_reference_op_s,
7784- heap) *operands,
7785- tree cst)
7786+vn_reference_lookup_or_insert_for_pieces (tree vuse,
7787+ alias_set_type set,
7788+ tree type,
7789+ VEC (vn_reference_op_s,
7790+ heap) *operands,
7791+ tree value)
7792 {
7793 struct vn_reference_s vr1;
7794 vn_reference_t result;
7795+ unsigned value_id;
7796 vr1.vuse = vuse;
7797 vr1.operands = operands;
7798 vr1.type = type;
7799@@ -1367,10 +1368,13 @@
7800 vr1.hashcode = vn_reference_compute_hash (&vr1);
7801 if (vn_reference_lookup_1 (&vr1, &result))
7802 return result;
7803+ if (TREE_CODE (value) == SSA_NAME)
7804+ value_id = VN_INFO (value)->value_id;
7805+ else
7806+ value_id = get_or_alloc_constant_value_id (value);
7807 return vn_reference_insert_pieces (vuse, set, type,
7808 VEC_copy (vn_reference_op_s, heap,
7809- operands), cst,
7810- get_or_alloc_constant_value_id (cst));
7811+ operands), value, value_id);
7812 }
7813
7814 /* Callback for walk_non_aliased_vuses. Tries to perform a lookup
7815@@ -1452,7 +1456,7 @@
7816 && offset2 + size2 >= offset + maxsize)
7817 {
7818 tree val = build_zero_cst (vr->type);
7819- return vn_reference_lookup_or_insert_constant_for_pieces
7820+ return vn_reference_lookup_or_insert_for_pieces
7821 (vuse, vr->set, vr->type, vr->operands, val);
7822 }
7823 }
7824@@ -1473,7 +1477,7 @@
7825 && offset2 + size2 >= offset + maxsize)
7826 {
7827 tree val = build_zero_cst (vr->type);
7828- return vn_reference_lookup_or_insert_constant_for_pieces
7829+ return vn_reference_lookup_or_insert_for_pieces
7830 (vuse, vr->set, vr->type, vr->operands, val);
7831 }
7832 }
7833@@ -1514,7 +1518,7 @@
7834 / BITS_PER_UNIT),
7835 ref->size / BITS_PER_UNIT);
7836 if (val)
7837- return vn_reference_lookup_or_insert_constant_for_pieces
7838+ return vn_reference_lookup_or_insert_for_pieces
7839 (vuse, vr->set, vr->type, vr->operands, val);
7840 }
7841 }
7842@@ -1568,7 +1572,7 @@
7843 }
7844 }
7845 if (val)
7846- return vn_reference_lookup_or_insert_constant_for_pieces
7847+ return vn_reference_lookup_or_insert_for_pieces
7848 (vuse, vr->set, vr->type, vr->operands, val);
7849 }
7850 }
7851Index: gcc/cgraphunit.c
7852===================================================================
7853--- gcc/cgraphunit.c (.../tags/gcc_4_7_0_release) (wersja 187906)
7854+++ gcc/cgraphunit.c (.../branches/gcc-4_7-branch) (wersja 187906)
7855@@ -2490,8 +2490,8 @@
7856 if (cgraph_dump_file)
7857 {
7858 fprintf (cgraph_dump_file, "updating call of %s/%i -> %s/%i: ",
7859- cgraph_node_name (e->caller), e->caller->uid,
7860- cgraph_node_name (e->callee), e->callee->uid);
7861+ xstrdup (cgraph_node_name (e->caller)), e->caller->uid,
7862+ xstrdup (cgraph_node_name (e->callee)), e->callee->uid);
7863 print_gimple_stmt (cgraph_dump_file, e->call_stmt, 0, dump_flags);
7864 if (e->callee->clone.combined_args_to_skip)
7865 {
7866@@ -2577,8 +2577,8 @@
7867 if (cgraph_dump_file)
7868 {
7869 fprintf (cgraph_dump_file, "cloning %s to %s\n",
7870- cgraph_node_name (node->clone_of),
7871- cgraph_node_name (node));
7872+ xstrdup (cgraph_node_name (node->clone_of)),
7873+ xstrdup (cgraph_node_name (node)));
7874 if (node->clone.tree_map)
7875 {
7876 unsigned int i;
7877@@ -2591,9 +2591,11 @@
7878 replace_info = VEC_index (ipa_replace_map_p,
7879 node->clone.tree_map,
7880 i);
7881- print_generic_expr (cgraph_dump_file, replace_info->old_tree, 0);
7882+ print_generic_expr (cgraph_dump_file,
7883+ replace_info->old_tree, 0);
7884 fprintf (cgraph_dump_file, " -> ");
7885- print_generic_expr (cgraph_dump_file, replace_info->new_tree, 0);
7886+ print_generic_expr (cgraph_dump_file,
7887+ replace_info->new_tree, 0);
7888 fprintf (cgraph_dump_file, "%s%s;",
7889 replace_info->replace_p ? "(replace)":"",
7890 replace_info->ref_p ? "(ref)":"");
7891@@ -2603,12 +2605,15 @@
7892 if (node->clone.args_to_skip)
7893 {
7894 fprintf (cgraph_dump_file, " args_to_skip: ");
7895- dump_bitmap (cgraph_dump_file, node->clone.args_to_skip);
7896+ dump_bitmap (cgraph_dump_file,
7897+ node->clone.args_to_skip);
7898 }
7899 if (node->clone.args_to_skip)
7900 {
7901- fprintf (cgraph_dump_file, " combined_args_to_skip:");
7902- dump_bitmap (cgraph_dump_file, node->clone.combined_args_to_skip);
7903+ fprintf (cgraph_dump_file,
7904+ " combined_args_to_skip:");
7905+ dump_bitmap (cgraph_dump_file,
7906+ node->clone.combined_args_to_skip);
7907 }
7908 }
7909 cgraph_materialize_clone (node);
7910Index: gcc/ChangeLog
7911===================================================================
7912--- gcc/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187906)
7913+++ gcc/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187906)
7914@@ -1,3 +1,1095 @@
7915+2012-05-25 Eric Botcazou <ebotcazou@adacore.com>
7916+
7917+ PR lto/52178
7918+ * tree-inline.c (remap_gimple_op_r): Fix handling of FIELD_DECL.
7919+ * tree.c (RETURN_TRUE_IF_VAR): Do not return true for PLACEHOLDER_EXPR.
7920+
7921+2012-05-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
7922+
7923+ PR target/53435
7924+ * config/i386/i386.c (ix86_expand_vec_perm): Use correct op.
7925+ (ix86_expand_vec_perm): Use int mode instead of float.
7926+
7927+2012-05-25 Eric Botcazou <ebotcazou@adacore.com>
7928+
7929+ PR ada/52362
7930+ * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Set gas and
7931+ gnu_ld variables to yes.
7932+ * configure.ac (HAVE_GNU_LD): Move to after config.gcc inclusion.
7933+ (HAVE_GNU_AS): Likewise.
7934+ * config.in: Regenerate.
7935+ * configure: Likewise.
7936+
7937+2012-05-25 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7938+
7939+ Backport from mainline
7940+ 2012-03-12 Richard Guenther <rguenther@suse.de>
7941+ * config/arm/arm.c (neon_dereference_pointer): Do not call
7942+ covert during RTL expansion.
7943+
7944+2012-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7945+
7946+ Backport from mainline
7947+ 2012-05-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7948+
7949+ PR target/53385
7950+ * config/rs6000/rs6000.c (print_operand): Revise code that unsafely
7951+ relied on signed overflow behavior.
7952+
7953+2012-05-24 Richard Guenther <rguenther@suse.de>
7954+
7955+ PR middle-end/53460
7956+ * tree-profile.c (tree_profiling): Cleanup the CFG if
7957+ execute_fixup_cfg requests it.
7958+
7959+2012-05-24 Jakub Jelinek <jakub@redhat.com>
7960+
7961+ PR tree-optimization/53465
7962+ * tree-vrp.c (extract_range_from_cond_expr): First copy_value_range
7963+ vr0 into *vr, then vrp_meet that.
7964+ (vrp_meet): If one vr type is VR_UNDEFINED, ensure the result doesn't
7965+ have any equivalences.
7966+ (vrp_visit_phi_node): Call copy_value_range instead of vrp_meet the
7967+ first time.
7968+
7969+2012-05-23 Eric Botcazou <ebotcazou@adacore.com>
7970+
7971+ * gimple.c (gimple_types_compatible_p_1) <ARRAY_TYPE>: Remove bogus
7972+ size handling.
7973+ (gimple_canonical_types_compatible_p) <ARRAY_TYPE>: Likewise.
7974+ (iterative_hash_gimple_type): Adjust comment.
7975+ (iterative_hash_canonical_type): Likewise. Hash the bounds of the
7976+ domain for an array type instead of the domain type itself.
7977+
7978+2012-05-23 Georg-Johann Lay <avr@gjlay.de>
7979+
7980+ Backport from 2012-05-23 mainline r187803
7981+
7982+ PR target/53448
7983+ * config/avr/avr.h (ASM_OUTPUT_ALIGN): Don't inhibit .p2align 1.
7984+ * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Use
7985+ ASM_OUTPUT_ALIGN.
7986+
7987+2012-05-23 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
7988+
7989+ Backport from 2012-05-03 mainline r187075
7990+
7991+ * config/i386/driver-i386.c (host_detect_local_cpu): Reset
7992+ has_fma4 for AMD processors with both fma3 and fma4 support.
7993+
7994+2012-05-22 Richard Guenther <rguenther@suse.de>
7995+
7996+ PR tree-optimization/53408
7997+ * tree-vect-loop.c (vectorizable_induction): Properly check
7998+ the restriction that we cannot handle induction results from
7999+ the inner loop outside of the outer loop.
8000+
8001+2012-05-21 Jakub Jelinek <jakub@redhat.com>
8002+
8003+ PR tree-optimization/53436
8004+ * omp-low.c (omp_build_component_ref): New function.
8005+ (build_receiver_ref, build_sender_ref, create_task_copyfn): Use it.
8006+
8007+ PR tree-optimization/53366
8008+ * tree-vect-slp.c (vect_supported_load_permutation_p): Don't shortcut
8009+ tests if complex_numbers == 2, but there are non-complex number loads
8010+ too.
8011+
8012+ PR tree-optimization/53409
8013+ * tree-vect-loop.c (vect_analyze_loop_operations): Don't check
8014+ vinfo_for_stmt (op_def_stmt) if op_def_stmt isn't inside loop.
8015+
8016+ PR tree-optimization/53410
8017+ * fold-const.c (fold_binary_loc): Use build_zero_cst (type)
8018+ instead of build_int_cst (type, 0) where vector types might be
8019+ involved.
8020+
8021+2012-05-21 Joseph Myers <joseph@codesourcery.com>
8022+
8023+ PR c/53418
8024+ * c-typeck.c (build_conditional_expr): Remove C_MAYBE_CONST_EXPR
8025+ from folded operands before wrapping another around the
8026+ conditional expression.
8027+
8028+2012-05-21 Dave Boutcher <daveboutcher@gmail.com>
8029+ Patrick Marlier <patrick.marlier@gmail.com>
8030+
8031+ * trans-mem.c (ipa_tm_transform_clone): Transform functions with
8032+ indirect calls.
8033+
8034+2012-05-21 H.J. Lu <hongjiu.lu@intel.com>
8035+
8036+ Backport from mainline
8037+ 2012-05-21 H.J. Lu <hongjiu.lu@intel.com>
8038+
8039+ PR target/53416
8040+ * config/i386/i386.md (UNSPEC_RDRAND): Renamed to ...
8041+ (UNSPECV_RDRAND): This.
8042+ (rdrand<mode>_1): Updated.
8043+
8044+2012-05-20 H.J. Lu <hongjiu.lu@intel.com>
8045+
8046+ Backport from mainline
8047+ 2012-05-20 H.J. Lu <hongjiu.lu@intel.com>
8048+
8049+ * config/i386/driver-i386.c (host_detect_local_cpu): Support
8050+ RDRND, F16C and FSGSBASE.
8051+
8052+2012-05-19 Eric Botcazou <ebotcazou@adacore.com>
8053+
8054+ Backport from mainline
8055+ 2012-05-14 Eric Botcazou <ebotcazou@adacore.com>
8056+
8057+ * tree-ssa-pre.c (can_value_number_call): Delete.
8058+ (compute_avail): Skip all statements with side effects.
8059+ <GIMPLE_CALL>: Skip calls to internal functions.
8060+
8061+2012-05-18 David S. Miller <davem@davemloft.net>
8062+
8063+ Backport r185385 from mainline
8064+ 2012-03-14 Richard Guenther <rguenther@suse.de>
8065+
8066+ PR middle-end/52584
8067+ * tree-vect-generic.c (type_for_widest_vector_mode): Take
8068+ element type instead of mode, use build_vector_type_for_mode
8069+ instead of the langhook, build a vector of proper signedness.
8070+ (expand_vector_operations_1): Adjust.
8071+
8072+2012-05-18 Olivier Hainque <hainque@adacore.com>
8073+
8074+ * Makefile.in (FLAGS_TO_PASS): Pass $(libexecsubdir) instead of
8075+ $(libsubdir) as libexecsubdir.
8076+
8077+2012-05-16 Andrew Pinski <apinski@cavium.com>
8078+
8079+ * gimple-fold.c (get_maxval_strlen): Move COND_EXPR handling under
8080+ GIMPLE_ASSIGN.
8081+
8082+2012-05-16 David S. Miller <davem@davemloft.net>
8083+
8084+ * jump.c (delete_related_insns): If we remove a CALL, make sure
8085+ we delete it's NOTE_INSN_CALL_ARG_LOCATION note too.
8086+
8087+2012-05-16 Richard Henderson <rth@redhat.com>
8088+
8089+ PR debug/52727
8090+ * combine-stack-adj.c (prev_active_insn_bb): New.
8091+ (next_active_insn_bb): New.
8092+ (force_move_args_size_note): New.
8093+ (combine_stack_adjustments_for_block): Use it.
8094+
8095+2012-05-16 Olivier Hainque <hainque@adacore.com>
8096+
8097+ * Makefile.in (install-no-fixedincludes): New target, former toplevel
8098+ gcc-no-fixedincludes. Stash "include-fixed" in addition to "include".
8099+ Add comments and improve stamp preservation across the whole sequence.
8100+ (stmp-int-hdrs): Use move-if-change + cp -p to setup fix_dir/limits.h.
8101+
8102+2012-05-16 Richard Guenther <rguenther@suse.de>
8103+
8104+ PR tree-optimization/53364
8105+ * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
8106+ detect a view-conversion of the decl.
8107+
8108+2012-05-15 Jakub Jelinek <jakub@redhat.com>
8109+
8110+ PR target/53358
8111+ * config/i386/i386.md (*addqi_2 peephole with QImode addition): Check
8112+ that operands[2] is either immediate, or q_regs_operand.
8113+
8114+2012-05-15 Bin Cheng <bin.cheng@arm.com>
8115+
8116+ Backport r187139 from mainline.
8117+ 2012-05-04 Bin Cheng <bin.cheng@arm.com>
8118+
8119+ PR rtl-optimization/52804
8120+ * reload1.c (reload_reg_reaches_end_p): Check whether successor
8121+ reload with type RELOAD_FOR_INPUT_ADDRESS kills reload register
8122+ of current one with type RELOAD_FOR_INPADDR_ADDRESS.
8123+ Same stands for reloads with type RELOAD_FOR_OUTPUT_ADDRESS and
8124+ RELOAD_FOR_OUTADDR_ADDRESS.
8125+
8126+2012-05-14 Uros Bizjak <ubizjak@gmail.com>
8127+
8128+ PR target/46098
8129+ * config/i386/i386.c (ix86_expand_special_args_builtin): Always
8130+ generate target register for "load" class builtins.
8131+
8132+ Revert:
8133+ 2010-10-22 Uros Bizjak <ubizjak@gmail.com>
8134+
8135+ PR target/46098
8136+ * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
8137+ Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
8138+ (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
8139+ (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
8140+ (<sse>_movu<ssemodesuffix>): New expander.
8141+ (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
8142+ (avx_movdqu<avxmodesuffix>): New expander.
8143+ (*sse2_movdqu): Rename from sse2_movdqu.
8144+ (sse2_movdqu): New expander.
8145+
8146+2012-05-14 Jakub Jelinek <jakub@redhat.com>
8147+
8148+ * dwarf2out.c (dwarf2out_define, dwarf2out_undef): Treat
8149+ lineno 1 the same as lineno 0 before first start file directive.
8150+ (optimize_macinfo_range): Likewise.
8151+
8152+ * dwarf2out.c (have_macinfo): Define.
8153+ (dwarf2out_finish): Don't emit DW_AT_GNU_macros or DW_AT_macro_info
8154+ attribute, don't force empty compilation unit and don't emit any
8155+ .debug_macinfo/.debug_macro section if macinfo_table is empty.
8156+
8157+2012-05-13 Uros Bizjak <ubizjak@gmail.com>
8158+
8159+ Backport from mainline
8160+ 2012-05-12 Uros Bizjak <ubizjak@gmail.com>
8161+
8162+ * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
8163+ ORDERED and UNORDERED conditions.
8164+
8165+2012-05-12 Eric Botcazou <ebotcazou@adacore.com>
8166+
8167+ * function.c (requires_stack_frame_p): If the function can throw
8168+ non-call exceptions, return true if the insn can throw internally.
8169+
8170+2012-05-10 Eric Botcazou <ebotcazou@adacore.com>
8171+
8172+ * gimplify.c (gimplify_decl_expr): For a TYPE_DECL, also gimplify the
8173+ DECL_ORIGINAL_TYPE if it is present.
8174+
8175+2012-05-09 Georg-Johann Lay <avr@gjlay.de>
8176+
8177+ Backport from 2012-05-12 mainline r187342.
8178+
8179+ PR target/53256
8180+ * config/avr/elf.h (ASM_DECLARE_FUNCTION_NAME): Remove.
8181+ * config/avr/avr-protos.h (avr_asm_declare_function_name): Remove.
8182+ * config/avr/avr.h (struct machine_function): Add attributes_checked_p.
8183+ * config/avr/avr.c (avr_asm_declare_function_name): Remove.
8184+ (expand_prologue): Move initialization of cfun->machine->is_naked,
8185+ is_interrupt, is_signal, is_OS_task, is_OS_main from here to...
8186+ (avr_set_current_function): ...this new static function.
8187+ (TARGET_SET_CURRENT_FUNCTION): New define.
8188+ (avr_function_ok_for_sibcall): Use cfun->machine->is_* instead of
8189+ checking attributes of current_function_decl.
8190+ (avr_regs_to_save): Ditto.
8191+ (signal_function_p): Rename to avr_signal_function_p.
8192+ (interrupt_function_p): Rename to avr_interrupt_function_p.
8193+
8194+ * doc/extend.texi (Function Attributes): Better explanation of
8195+ 'interrupt' and 'signal' for AVR. Move 'ifunc' down to establish
8196+ alphabetical order.
8197+
8198+2012-05-09 Matthias Klose <doko@ubuntu.com>
8199+
8200+ * gcc-ar.c (main): Don't check for execute bits for the plugin.
8201+
8202+2012-05-08 Hans-Peter Nilsson <hp@axis.com>
8203+
8204+ PR target/53272
8205+ * config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32,
8206+ when a constant source operand matches an "I" constraint, the "no
8207+ CC0 change" applies to a register-destination only, not a
8208+ strict_low_part-destination.
8209+
8210+2012-05-07 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8211+
8212+ Backport from mainline:
8213+ 2012-04-19 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8214+
8215+ * config/arm/sync.md (sync_optab): Change ior attribute to "or".
8216+
8217+2012-05-07 Jakub Jelinek <jakub@redhat.com>
8218+
8219+ PR tree-optimization/53239
8220+ * tree-vrp.c (get_value_range): Set VR of
8221+ SSA_NAME_IS_DEFAULT_DEF of DECL_BY_REFERENCE RESULT_DECL
8222+ to nonnull.
8223+
8224+2012-05-07 Richard Guenther <rguenther@suse.de>
8225+
8226+ PR tree-optimization/53195
8227+ * tree-inline.c (setup_one_parameter): Properly add referenced
8228+ vars from the parameters new known value.
8229+
8230+2012-05-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8231+
8232+ Backport from mainline:
8233+ 2012-04-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8234+
8235+ PR target/52999
8236+ * config/pa/pa.c (pa_legitimate_constant_p): Don't put function labels
8237+ in constant pool.
8238+
8239+2012-05-04 Ian Lance Taylor <iant@google.com>
8240+
8241+ * tree-vect-patterns.c (vect_single_imm_use): Correct return
8242+ values from false to NULL.
8243+
8244+2012-05-04 Uros Bizjak <ubizjak@gmail.com>
8245+
8246+ Backport from mainline
8247+ 2012-05-04 Uros Bizjak <ubizjak@gmail.com>
8248+
8249+ PR target/53228
8250+ * config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
8251+ (TARGET_CMOV): Rename from TARGET_CMOVE.
8252+ (TARGET_CMOVE): New define.
8253+ * config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV.
8254+ Do not set TARGET_CMOVE here.
8255+
8256+2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
8257+
8258+ Backport from mainline:
8259+
8260+ 2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
8261+
8262+ PR tree-optimization/52633
8263+ * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of
8264+ vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern.
8265+ (vect_recog_over_widening_pattern): Remove handling of code that was
8266+ already detected as over-widening pattern. Remove special handling
8267+ of "unsigned" cases. Instead, support general case of conversion
8268+ of the shift result to another type.
8269+
8270+ 2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
8271+
8272+ * tree-vect-patterns.c (vect_single_imm_use): New function.
8273+ (vect_recog_widen_mult_pattern): Use it instead of open-coding loop.
8274+ (vect_recog_over_widening_pattern): Likewise.
8275+ (vect_recog_widen_shift_pattern): Likewise.
8276+
8277+ 2012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
8278+
8279+ PR tree-optimization/52870
8280+ * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that
8281+ presumed pattern statement is within the same loop or basic block.
8282+
8283+2012-05-04 Richard Guenther <rguenther@suse.de>
8284+
8285+ * common.opt (flto-report): Do not mark as Optimization.
8286+
8287+2012-05-04 Eric Botcazou <ebotcazou@adacore.com>
8288+
8289+ PR target/48496
8290+ * recog.c (constrain_operands): If extra constraints are present, also
8291+ accept pseudo-registers with equivalent memory locations during reload.
8292+
8293+2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
8294+
8295+ Backport from the mainline
8296+ 2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
8297+
8298+ PR target/53199
8299+ * config/rs6000/rs6000.md (bswapdi splitters): If
8300+ -mavoid-indexed-addresses (or -mcpu=power6 which sets it by
8301+ default) is used, generate an alternate sequence that does not
8302+ depend on using indexed addressing.
8303+
8304+2012-05-03 David S. Miller <davem@davemloft.net>
8305+
8306+ PR target/52684
8307+ * config/sparc/sparc.c (emit_soft_tfmode_libcall): If we pass a
8308+ MEM directly into a libcall, mark it's MEM_EXPR as addressable.
8309+ (sparc_emit_float_lib_cmp): Likewise.
8310+
8311+2012-05-04 Martin Jambor <mjambor@suse.cz>
8312+
8313+ Backport from mainline
8314+ 2012-05-02 Martin Jambor <mjambor@suse.cz>
8315+
8316+ PR lto/52605
8317+ * dwarf2out.c (dwarf2out_decl): Only lookup die representing context
8318+ of a variable when the contect is a function.
8319+
8320+2012-05-03 Jakub Jelinek <jakub@redhat.com>
8321+
8322+ PR plugins/53126
8323+ * gcc-ar.c (main): If GCC_EXEC_PREFIX is set in env,
8324+ append program name to it and pass that as first argument
8325+ to make_relative_prefix. Always pass standard_libexec_prefix
8326+ as last argument to make_relative_prefix. If
8327+ make_relative_prefix returns NULL, fall back to
8328+ standard_libexec_prefix.
8329+
8330+ PR debug/53174
8331+ * tree-predcom.c (remove_stmt): Call reset_debug_uses on stmts being
8332+ removed.
8333+
8334+ PR target/53187
8335+ * config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class
8336+ mode, return that mode.
8337+
8338+2012-05-03 Richard Guenther <rguenther@suse.de>
8339+
8340+ PR tree-optimization/53144
8341+ * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
8342+ Rename to ...
8343+ (vn_reference_lookup_or_insert_for_pieces): ... this. Properly deal
8344+ with SSA name values.
8345+ (vn_reference_lookup_3): Adjust callers.
8346+
8347+2012-05-02 Jakub Jelinek <jakub@redhat.com>
8348+
8349+ PR tree-optimization/53163
8350+ * tree-ssa-phiopt.c (cond_if_else_store_replacement): Don't ignore
8351+ return value from compute_all_dependences.
8352+
8353+ PR rtl-optimization/53160
8354+ * ree.c (combine_reaching_defs): Handle the case where cand->insn
8355+ has been modified by ree pass already.
8356+
8357+2012-05-01 Uros Bizjak <ubizjak@gmail.com>
8358+
8359+ Backport from mainline
8360+ 2012-04-30 Uros Bizjak <ubizjak@gmail.com>
8361+
8362+ PR middle-end/53136
8363+ * ipa-prop.c (ipa_print_node_jump_functions): Wrap multiple
8364+ calls to cgraph_node_name in xstrdup.
8365+ (ipa_make_edge_direct_to_target): Ditto.
8366+ * tree-sra.c (convert_callers_for_node): Ditto.
8367+ * lto-symtab.c (lto_cgraph_replace_node): Ditto.
8368+ * ipa-cp.c (perhaps_add_new_callers): Ditto.
8369+ * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Ditto.
8370+ (cgraph_materialize_all_clones): Ditto.
8371+ * ipa-inline.c (report_inline_failed_reason): Ditto.
8372+ (want_early_inline_function_p): Ditto.
8373+ (edge_badness): Ditto.
8374+ (update_edge_key): Ditto.
8375+ (flatten_function): Ditto.
8376+ (ipa_inline): Ditto.
8377+ (inline_always_inline_functions): Ditto.
8378+ (early_inline_small_functions): Ditto.
8379+
8380+2012-04-30 Andreas Tobler <andreast@fgznet.ch>
8381+
8382+ Backport from mainline
8383+ 2012-03-21 Andreas Tobler <andreast@fgznet.ch>
8384+
8385+ * configure.ac (HAVE_LD_NO_DOT_SYMBOLS): Add powerpc64-*-freebsd*.
8386+ Introduce emul_name to select the right linker emulation for
8387+ powerpc64-*-freebsd*.
8388+ * configure: Regenerate.
8389+ * config.gcc: Add bits to support powerpc64-*-freebsd*.
8390+ * config/rs6000/freebsd.h (POWERPC_FREEBSD): Define.
8391+ * config/rs6000/freebsd64.h: New file.
8392+ * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
8393+ POWERPC_FREEBSD.
8394+ (rs6000_savres_strategy): Likewise.
8395+ (rs6000_savres_routine_name): Likewise.
8396+ (rs6000_elf_file_end): Likewise.
8397+ * config/rs6000/t-freebsd64: New file.
8398+ * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set the
8399+ rs6000_current_abi for 64-bit FreeBSD to ABI_AIX.
8400+
8401+2012-04-30 Uros Bizjak <ubizjak@gmail.com>
8402+
8403+ Backport from mainline
8404+ 2012-04-27 Paolo Bonzini <bonzini@gnu.org>
8405+
8406+ PR target/53138
8407+ * config/i386/i386.md (x86_mov<mode>cc_0_m1_neg): Add clobber.
8408+
8409+2012-04-30 Eric Botcazou <ebotcazou@adacore.com>
8410+
8411+ * config/i386/i386.c (ix86_handle_struct_attribute): Use the proper
8412+ predicate to discriminate types.
8413+
8414+2012-04-27 Richard Guenther <rguenther@suse.de>
8415+
8416+ PR c/51527
8417+ * convert.c (convert_to_integer): Avoid infinite recursion for
8418+ target-defined built-in types.
8419+
8420+2012-04-26 Hans-Peter Nilsson <hp@axis.com>
8421+
8422+ PR target/53120
8423+ * config/cris/cris.md ("*andhi_lowpart_v32")
8424+ ("*andqi_lowpart_v32"): Change first input-only operand from
8425+ a (match_operand ...) to (match_dup 0). Drop alternatives with
8426+ const_int-matching constraints for redundancy.
8427+ ("*andhi_lowpart_non_v32", "*andqi_lowpart_non_v32"): Ditto. Drop
8428+ three-operand alternative.
8429+
8430+2012-04-26 Uros Bizjak <ubizjak@gmail.com>
8431+
8432+ Backport from mainline
8433+ 2012-04-23 Uros Bizjak <ubizjak@gmail.com>
8434+
8435+ * config/i386/i386.md (*add<mode>_2): Add r/r/0 alternative.
8436+ (*addsi_2_zext): Ditto.
8437+ (*add<mode>_3): Ditto.
8438+ (*addsi_3_zext): Ditto.
8439+ (*add<mode>_5): Ditto.
8440+
8441+2012-04-25 Jakub Jelinek <jakub@redhat.com>
8442+
8443+ PR c/52880
8444+ * c-typeck.c (set_nonincremental_init,
8445+ set_nonincremental_init_from_string): Pass true instead of false
8446+ as IMPLICIT to add_pending_init.
8447+
8448+2012-04-24 Georg-Johann Lay <avr@gjlay.de>
8449+
8450+ Backport from 2012-04-24 mainline r186768.
8451+
8452+ PR target/53065
8453+ * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): New hook define.
8454+
8455+2012-04-24 Richard Guenther <rguenther@suse.de>
8456+
8457+ PR tree-optimization/53085
8458+ * tree-ssa-pre.c (eliminate): Do not eliminate volatile redundant
8459+ stores.
8460+
8461+2012-04-24 Jakub Jelinek <jakub@redhat.com>
8462+
8463+ PR middle-end/53084
8464+ * varasm.c (compute_reloc_for_constant): Handle ADDR_EXPR
8465+ of MEM_REF.
8466+ (output_addressed_constants): Likewise.
8467+
8468+ PR middle-end/52999
8469+ * varasm.c (get_section): Don't ICE for section conflicts with
8470+ built-in section kinds.
8471+
8472+2012-04-23 David Edelsohn <dje.gcc@gmail.com>
8473+
8474+ * config/rs6000/sync.md (fetchop_name): Change ior attribute to "or".
8475+
8476+2012-04-23 Georg-Johann Lay <avr@gjlay.de>
8477+
8478+ * doc/extend.texi (AVR Named Address Spaces): Fix typos.
8479+
8480+2012-04-23 Richard Guenther <rguenther@suse.de>
8481+
8482+ PR c/53060
8483+ * c-typeck.c (build_binary_op): Fix typo.
8484+
8485+2012-04-23 Jakub Jelinek <jakub@redhat.com>
8486+
8487+ PR tree-optimizations/52891
8488+ * tree-vect-patterns.c (adjust_bool_pattern): Use
8489+ build_nonstandard_type even if rhs1 has unsigned INTEGER_TYPE,
8490+ but with non-standard precision.
8491+
8492+2012-04-22 Ian Lance Taylor <iant@google.com>
8493+
8494+ * godump.c (go_output_typedef): Dump size of structs.
8495+
8496+2012-04-20 Ulrich Weigand <ulrich.weigand@linaro.org>
8497+
8498+ Backport from mainline:
8499+
8500+ * config/arm/arm.c (arm_print_operand): Fix invalid alignment
8501+ hints for 'A' operand types.
8502+
8503+2012-04-19 Georg-Johann Lay <avr@gjlay.de>
8504+
8505+ Backport from 2012-04-19 mainline r186588.
8506+
8507+ PR target/53033
8508+ * config/avr/avr.c (avr_out_load_psi): Fix assembler template for
8509+ the case *(X+const).
8510+
8511+2012-04-18 Uros Bizjak <ubizjak@gmail.com>
8512+
8513+ * config/alpha/sync.md (fetchop_name): Change ior attribute to "or".
8514+
8515+2012-04-17 Uros Bizjak <ubizjak@gmail.com>
8516+
8517+ PR target/53020
8518+ * config/i386/sync.md (atomic_<code><mode>): Rename to
8519+ atomic_<logic><mode>.
8520+
8521+2012-04-16 Uros Bizjak <ubizjak@gmail.com>
8522+
8523+ Backport from mainline
8524+ 2012-04-12 Uros Bizjak <ubizjak@gmail.com>
8525+
8526+ PR target/52932
8527+ * config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second
8528+ argument type to __m256i. Update call to __builtin_ia32_permvarsf256.
8529+ * config/i386/sse.md (avx2_permvarv8sf): Change operand 1 to V8SI.
8530+ (avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2.
8531+ * config/i386/i386.c (bdesc_args) <__builtin_ia32_permvarsf256>:
8532+ Update builtin type to V8SF_FTYPE_V8SF_V8SI.
8533+ (ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and
8534+ gen_avx2_permvarv8sf.
8535+
8536+2012-04-16 Martin Jambor <mjambor@suse.cz>
8537+
8538+ Backported from mainline
8539+
8540+ 2012-04-13 Martin Jambor <mjambor@suse.cz>
8541+ PR middle-end/52939
8542+
8543+ * gimple-fold.c (gimple_get_virt_method_for_binfo): Bail out if
8544+ fold_ctor_reference returns a zero constant.
8545+
8546+2012-04-13 H.J. Lu <hongjiu.lu@intel.com>
8547+
8548+ Backported from mainline
8549+ 2012-04-13 H.J. Lu <hongjiu.lu@intel.com>
8550+
8551+ * config/i386/i386-c.c (ix86_target_macros): Define _ILP32
8552+ and __ILP32__ for x32.
8553+
8554+2012-04-13 Tom de Vries <tom@codesourcery.com>
8555+
8556+ Backport from mainline r186418.
8557+
8558+ 2012-04-13 Tom de Vries <tom@codesourcery.com>
8559+
8560+ * tree-ssa-tail-merge.c (gsi_advance_bw_nondebug_nonlocal): Add
8561+ parameters vuse and vuse_escaped.
8562+ (find_duplicate): Init vuse1, vuse2 and vuse_escaped. Pass to
8563+ gsi_advance_bw_nondebug_nonlocal. Return if vuse_escaped and
8564+ vuse1 != vuse2.
8565+
8566+2012-04-13 Richard Guenther <rguenther@suse.de>
8567+
8568+ PR tree-optimization/52969
8569+ * tree-if-conv.c (predicate_mem_writes): Properly gimplify
8570+ the condition for the COND_EXPR and handle predicate negation
8571+ by swapping the COND_EXPR arms.
8572+
8573+2012-04-13 Richard Guenther <rguenther@suse.de>
8574+
8575+ PR c/52862
8576+ * convert.c (convert_to_pointer): Remove special-casing of
8577+ zero.
8578+
8579+2012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
8580+
8581+ Backport from mainline
8582+ 2012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
8583+
8584+ PR target/52775
8585+ * config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to
8586+ the list of options to enable the FCFID instruction.
8587+ (TARGET_EXTRA_BUILTINS): Adjust comment.
8588+
8589+2012-04-12 Richard Guenther <rguenther@suse.de>
8590+
8591+ PR tree-optimization/52943
8592+ * tree-chrec.h (chrec_is_positive): Remove.
8593+ * tree-scalar-evolution.c (chrec_is_positive): Move ...
8594+ * tree-data-ref.c (chrec_is_positive): ... here. Make static.
8595+ Return false for a constant zero instead of negative.
8596+ (analyze_siv_subscript_cst_affine): Handle zero difference
8597+ in the initial condition explicitely.
8598+
8599+2012-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8600+
8601+ PR middle-end/52894
8602+ * varasm.c (process_pending_assemble_externals): Set
8603+ pending_assemble_externals_processed true.
8604+ (assemble_external): Call assemble_external_real if the pending
8605+ assemble externals have been processed.
8606+
8607+2012-04-09 Eric Botcazou <ebotcazou@adacore.com>
8608+
8609+ PR target/52717
8610+ * config/sparc/sparc.c (sparc_file_end): Set TREE_PUBLIC explicitly on
8611+ the DECL generated for the special GOT helper.
8612+
8613+2012-04-06 Walter Lee <walt@tilera.com>
8614+
8615+ Backport from mainline
8616+ 2012-03-07 Walter Lee <walt@tilera.com>
8617+
8618+ * config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate
8619+ REG_CFA_* notes for the stack pointer.
8620+ (tilegx_expand_epilogue): Restore stack pointer by adjusting it by
8621+ EH_RETURN_STACKADJ_RTX.
8622+ * config/tilepro/tilepro.c (tilepro_expand_prologue): Don't
8623+ generate REG_CFA_* notes for the stack pointer.
8624+ (tilepro_expand_epilogue): Restore stack pointer by adjusting it
8625+ by EH_RETURN_STACKADJ_RTX.
8626+
8627+2012-04-06 Matt Turner <mattst88@gmail.com>
8628+
8629+ * doc/install.texi: Correct typo "-mno-lsc" -> "-mno-llsc".
8630+
8631+2012-04-06 Eric Botcazou <ebotcazou@adacore.com>
8632+
8633+ * config/ia64/ia64.c (ia64_load_pair_ok): Return 0 if the second member
8634+ of the destination isn't also a FP_REGS register.
8635+
8636+2012-04-03 Richard Guenther <rguenther@suse.de>
8637+
8638+ Backport from mainline
8639+ 2012-03-02 Richard Guenther <rguenther@suse.de>
8640+
8641+ PR tree-optimization/52406
8642+ * tree-data-ref.h: Update documentation about DR_BASE_OBJECT.
8643+ (struct indices): Add unconstrained_base member.
8644+ (struct dr_alias): Remove unused vops member.
8645+ (DR_UNCONSTRAINED_BASE): New define.
8646+ * tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs
8647+ add indices to allow their disambiguation. Make DR_BASE_OBJECT
8648+ be an artificial access that covers the whole indexed object,
8649+ or mark it with DR_UNCONSTRAINED_BASE if we cannot do so. Canonicalize
8650+ plain decl base-objects to their MEM_REF variant.
8651+ (dr_may_alias_p): When the base-object of either data reference
8652+ has unknown size use only points-to information.
8653+ (compute_affine_dependence): Make dumps easier to read and
8654+ more verbose.
8655+ * tree-vect-data-ref.c (vector_alignment_reachable_p): Use
8656+ DR_REF when looking for packed references.
8657+ (vect_supportable_dr_alignment): Likewise.
8658+
8659+2012-04-03 Richard Guenther <rguenther@suse.de>
8660+
8661+ Backport from mainline
8662+ 2012-03-15 Richard Guenther <rguenther@suse.de>
8663+
8664+ PR middle-end/52580
8665+ * tree-data-ref.c (subscript_dependence_tester_1): Check
8666+ all dimensions for non-conflicting access functions.
8667+
8668+2012-04-03 Richard Guenther <rguenther@suse.de>
8669+
8670+ Backport from mainline
8671+ 2012-03-06 Richard Guenther <rguenther@suse.de>
8672+
8673+ PR middle-end/52493
8674+ * tree-ssa-alias.c (ptr_derefs_may_alias_p): Robustify.
8675+
8676+ 2012-03-23 Richard Guenther <rguenther@suse.de>
8677+
8678+ PR tree-optimization/52678
8679+ * tree-vectorizer.h (struct _stmt_vec_info): Add
8680+ loop_phi_evolution_part member.
8681+ (STMT_VINFO_LOOP_PHI_EVOLUTION_PART): New define.
8682+ * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Initialize
8683+ STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
8684+ * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
8685+ Use the cached evolution part and the PHI nodes value from
8686+ the loop preheader edge instead of re-analyzing the evolution.
8687+
8688+ 2012-03-26 Richard Guenther <rguenther@suse.de>
8689+
8690+ PR tree-optimization/52701
8691+ * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Always
8692+ compute and set the evolution part of PHI nodes.
8693+
8694+ 2012-03-30 Richard Guenther <rguenther@suse.de>
8695+
8696+ PR tree-optimization/52754
8697+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
8698+ propagate arbitrary addresses into really plain dereferences.
8699+
8700+2012-04-03 Jakub Jelinek <jakub@redhat.com>
8701+
8702+ PR tree-optimization/52835
8703+ * tree-data-ref.c (build_rdg): Return NULL if
8704+ compute_data_dependences_for_loop failed.
8705+
8706+2012-03-31 Eric Botcazou <ebotcazou@adacore.com>
8707+
8708+ * tree-cfg.c (call_can_make_abnormal_goto): New predicate.
8709+ (stmt_can_make_abnormal_goto): Use it.
8710+ (is_ctrl_altering_stmt): Likewise.
8711+
8712+2012-03-31 Martin Jambor <mjambor@suse.cz>
8713+
8714+ Backported from mainline
8715+ 2012-03-30 Martin Jambor <mjambor@suse.cz>
8716+
8717+ * tree-ssa-ccp.c (insert_clobbers_for_var): Do not assert that there
8718+ is a builtin_stack_save in a dominating BB.
8719+
8720+2012-03-29 Uros Bizjak <ubizjak@gmail.com>
8721+
8722+ * config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
8723+ crossing 128bit lane boundary.
8724+
8725+2012-03-29 Uros Bizjak <ubizjak@gmail.com>
8726+
8727+ Backported from mainline
8728+ 2012-03-27 Uros Bizjak <ubizjak@gmail.com>
8729+
8730+ PR target/52698
8731+ * config/i386/i386-protos.h (ix86_legitimize_reload_address):
8732+ New prototype.
8733+ * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define.
8734+ * config/i386/i386.c: Include reload.h.
8735+ (ix86_legitimize_reload_address): New function.
8736+
8737+2012-03-28 Martin Jambor <mjambor@suse.cz>
8738+
8739+ Backported from mainline
8740+ 2012-03-27 Martin Jambor <mjambor@suse.cz>
8741+
8742+ PR middle-end/52693
8743+ * tree-sra.c (sra_modify_assign): Do not call
8744+ load_assign_lhs_subreplacements when working with an unscalarizable
8745+ region.
8746+
8747+2012-03-28 Jakub Jelinek <jakub@redhat.com>
8748+
8749+ PR middle-end/52691
8750+ * tree-ssa-ccp.c (optimize_stdarg_builtin): Optimize
8751+ __builtin_va_start to __builtin_next_arg if the latter is
8752+ builtin_decl_explicit_p rather than when it is not.
8753+
8754+ PR middle-end/52750
8755+ * tree-vect-generic.c (vector_element): Perform multiplication
8756+ for pos in bitsizetype type instead of idx type.
8757+
8758+2012-03-28 Georg-Johann Lay <avr@gjlay.de>
8759+
8760+ Backport from 2012-03-28 mainline r185910.
8761+
8762+ PR target/52692
8763+ * config/avr/avr.c (TARGET_BUILTIN_DECL): New define.
8764+ (avr_builtin_decl): New static function.
8765+ (struct avr_builtin_description, avr_bdesc): Move up.
8766+ Add GTY marker. Add field fndecl. Remove redundant field id.
8767+ (avr_init_builtins): Initialize avr_bdesc[ID].fndecl.
8768+ (avr_expand_builtin): Code cleanup because .id is removed.
8769+
8770+2012-03-28 Aurelien Buhrig <aurelien.buhrig.gcc@gmail.com>
8771+
8772+ PR middle-end/51893
8773+ * expmed.c (store_bit_field_1): Fix wordnum value for big-endian
8774+ targets.
8775+
8776+2012-03-28 Georg-Johann Lay <avr@gjlay.de>
8777+
8778+ Backport from 2012-03-28 mainline r185907.
8779+
8780+ PR target/52737
8781+ * config.gcc (tm_file): Remove avr/multilib.h.
8782+
8783+ * doc/invoke.texi (AVR Options): Adjust
8784+ documentation of -mtiny-stack.
8785+
8786+ * config/avr/genmultilib.awk: Remove code to generate multilib.h.
8787+ (BEGIN): Use -msp8 as multilib option instead of -mtiny-stack.
8788+ * config/avr/t-avr: Remove generation of multilib.h.
8789+ * config/avr/t-multilib: Regenerate.
8790+ * config/avr/multilib.h: Remove.
8791+ * config/avr/avr.opt (-msp8): New option.
8792+ (avr_sp8): New variable.
8793+ * config/avr/driver-avr.c (avr_device_to_sp8): New function.
8794+ * config/avr/avr.h (AVR_HAVE_SPH): New define.
8795+ (AVR_HAVE_8BIT_SP): Also set by avr_sp8 i.e. -msp8.
8796+ (avr_device_to_sp8): New prototype.
8797+ (EXTRA_SPEC_FUNCTIONS): Add { "device_to_sp8", avr_device_to_sp8 }
8798+ (DRIVER_SELF_SPECS): New define.
8799+ * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
8800+ __AVR_SP8__, __AVR_HAVE_SPH__.
8801+ * config/avr/avr.c (output_movhi): Use AVR_HAVE_SPH instead of
8802+ AVR_HAVE_8BIT_SP to decide if SP_H is present.
8803+ (avr_file_start): Ditto.
8804+
8805+2012-03-28 Jakub Jelinek <jakub@redhat.com>
8806+
8807+ PR target/52736
8808+ * config/i386/sse.md (sse2_loadlpd splitter): Use offset 0
8809+ instead of 8 in adjust_address.
8810+
8811+2012-03-27 Eric Botcazou <ebotcazou@adacore.com>
8812+
8813+ * expmed.c (store_bit_field): Assert that BITREGION_START is a multiple
8814+ of a unit before computing the offset in units.
8815+
8816+2012-03-27 Richard Guenther <rguenther@suse.de>
8817+
8818+ PR middle-end/52720
8819+ * fold-const.c (try_move_mult_to_index): Handle &x.array more
8820+ explicitely.
8821+
8822+2012-03-24 Eric Botcazou <ebotcazou@adacore.com>
8823+
8824+ PR target/52610
8825+ * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=leon.
8826+
8827+2012-03-24 Steven Bosscher <steven@gcc.gnu.org>
8828+
8829+ PR middle-end/52640
8830+ * varasm.c: Include pointer-set.h.
8831+ (pending_assemble_externals_set): New pointer set.
8832+ (process_pending_assemble_externals): Destroy the pointer set.
8833+ (assemble_external): See if decl is in pending_assemble_externals_set,
8834+ and add it to pending_assemble_externals if necessary.
8835+ (init_varasm_once): Allocate pending_assemble_externals_set.
8836+
8837+2012-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
8838+
8839+ Backported from mainline
8840+ 2012-03-06 Michael Meissner <meissner@linux.vnet.ibm.com>
8841+
8842+ PR target/50310
8843+ * config/rs6000/vector.md (vector_uneq<mode>): Add support for
8844+ UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons.
8845+ (vector_ltgt<mode>): Likewise.
8846+ (vector_ordered<mode>): Likewise.
8847+ (vector_unordered<mode>): Likewise.
8848+ * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
8849+
8850+2012-03-23 Joern Rennecke <joern.rennecke@embecosm.com>
8851+
8852+ * config/epiphany/epiphany.c (epiphany_function_value_regno_p):
8853+ Make static.
8854+
8855+2012-03-22 Kaz Kojima <kkojima@gcc.gnu.org>
8856+
8857+ Backported from mainline
8858+ 2012-03-02 Kaz Kojima <kkojima@gcc.gnu.org>
8859+
8860+ PR target/48596
8861+ PR target/48806
8862+ * config/sh/sh.c (sh_register_move_cost): Increase cost between
8863+ GENERAL_REGS and FP_REGS for SImode.
8864+
8865+2012-03-22 Jakub Jelinek <jakub@redhat.com>
8866+
8867+ PR middle-end/52547
8868+ * tree-nested.c (convert_tramp_reference_stmt): Call declare_vars
8869+ on any new_local_var_chain vars declared during recursing on
8870+ GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK body.
8871+
8872+2012-03-22 Georg-Johann Lay <avr@gjlay.de>
8873+
8874+ Backport from 2012-03-22 mainline r185692.
8875+
8876+ PR target/52496
8877+ * config/avr/avr.md (unspec): Remove UNSPEC_MEMORY_BARRIER.
8878+ (unspecv): Add UNSPECV_MEMORY_BARRIER.
8879+ (cli_sei): Use unspec_volatile instead of unspec for memory barrier.
8880+ (delay_cycles_1, delay_cycles_2): Ditto.
8881+ (delay_cycles_3, delay_cycles_4): Ditto.
8882+ (nopv, *nopv): Ditto.
8883+ (sleep, *sleep): Ditto.
8884+ (wdr, *wdr): Ditto.
8885+
8886+ Backport from 2012-03-21 mainline r185605.
8887+
8888+ PR rtl-optimization/52543
8889+ PR target/52461
8890+ * config/avr/avr-protos.h (avr_load_lpm): New prototype.
8891+ * config/avr/avr.c (avr_mode_dependent_address_p): New function.
8892+ (TARGET_MODE_DEPENDENT_ADDRESS_P): New define.
8893+ (avr_load_libgcc_p): Restrict to __flash loads.
8894+ (avr_out_lpm): Only handle 1-byte loads from __flash.
8895+ (avr_load_lpm): New function.
8896+ (avr_find_unused_d_reg): Remove.
8897+ (avr_out_lpm_no_lpmx): Remove.
8898+ (adjust_insn_length): Handle ADJUST_LEN_LOAD_LPM.
8899+ * config/avr/avr.md (unspec): Add UNSPEC_LPM.
8900+ (load_<mode>_libgcc): Use UNSPEC_LPM instead of MEM.
8901+ (load_<mode>, load_<mode>_clobber): New insns.
8902+ (mov<mode>): For multi-byte move from non-generic
8903+ 16-bit address spaces: Expand to load_<mode> resp.
8904+ load_<mode>_clobber.
8905+ (load<mode>_libgcc): Remove expander.
8906+ (split-lpmx): Remove split.
8907+
8908+ Backport from 2012-03-13 mainline r185329.
8909+
8910+ PR target/52488
8911+ * config/avr/avr.c (avr_prologue_setup_frame): Cut down stack
8912+ offset (size) to a value the insns can deal with.
8913+ (expand_epilogue): Ditto.
8914+
8915+ Backport from 2012-03-12 mainline r185256.
8916+
8917+ PR target/52499
8918+ * config/avr/avr.c (avr_mode_code_base_reg_class): Change return
8919+ type from reg_class_t to enum reg_class.
8920+ * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
8921+
8922+ Backport from 2012-03-12 mainline r185253.
8923+
8924+ PR target/52148
8925+ * config/avr/avr.c (avr_out_movmem): Fix typo in output template
8926+ for the case ADDR_SPACE_FLASH and AVR_HAVE_LPMX introduced in
8927+ r184615 from 2012-02-28.
8928+
8929+ Backport from 2012-03-08 mainline r185105.
8930+
8931+ * config/avr/avr.md (*addhi3, addhi3_clobber): Add "w" alternative
8932+ for constants in [-63,63].
8933+
8934+ Backport from 2012-03-08 mainline r185100.
8935+
8936+ PR target/52496
8937+ * config/avr/avr.c (avr_mem_clobber): New static function.
8938+ (avr_expand_delay_cycles): Add memory clobber operand to
8939+ delay_cycles_1, delay_cycles_2, delay_cycles_3, delay_cycles_4.
8940+ * config/avr/avr.md (unspec): Add UNSPEC_MEMORY_BARRIER.
8941+ (enable_interrupt, disable_interrupt): New expander.
8942+ (nopv, sleep, wdr): New expanders.
8943+ (delay_cycles_1): Add memory clobber.
8944+ (delay_cycles_2): Add memory clobber.
8945+ (delay_cycles_3): Add memory clobber.
8946+ (delay_cycles_4): Add memory clobber.
8947+ (cli_sei): New insn from former "enable_interrupt",
8948+ "disable_interrupt" with memory clobber.
8949+ (*wdt): New insn from former "wdt" with memory clobber.
8950+ (*nopv): Similar, but for "nopv".
8951+ (*sleep): Similar, but for "sleep".
8952+
8953+ Backport from 2012-03-07 mainline r185043.
8954+
8955+ PR target/52484
8956+ * config/avr/avr.md (xload<mode>_A): Add R22... to register footprint.
8957+
8958+ Backport from 2012-03-07 mainline r185032.
8959+
8960+ PR target/52506
8961+ * gcc/config/avr/avr.c (expand_epilogue): Fix order of restoration
8962+ to: RAMPZ, RAMPY, RAMPX, RAMPD.
8963+ (expand_prologue): Only clear RAMPZ if it has effect on RAM-read.
8964+
8965+ Backport from 2012-03-07 mainline r185031.
8966+
8967+ PR target/52505
8968+ * config/avr/avr.c (avr_out_xload): Don't read unintentionally
8969+ from RAM.
8970+ * config/avr/avr.md (xload_8): Adjust insn length.
8971+
8972+ Backport from 2012-03-07 mainline r185030.
8973+
8974+ PR target/52461
8975+ * gcc/config/avr/avr.c (avr_out_lpm): Clear RAMPZ after usage
8976+ if RAMPZ affects reading from RAM.
8977+
8978+ Backport from 2012-03-05 mainline r184919.
8979+
8980+ * config/avr/avr.md (*umaddqihi4.2): New insn-and-split.
8981+
8982+2012-03-22 Georg-Johann Lay <avr@gjlay.de>
8983+
8984+ Backport from mainline r185259.
8985+
8986+ PR other/52545
8987+ * output.h (SECTION_EXCLUDE, SECTION_MACH_DEP): Don't use
8988+ SECTION_MACH_DEP reserved bits for SECTION_EXCLUDE.
8989+
8990+2012-03-22 Jakub Jelinek <jakub@redhat.com>
8991+
8992+ Backported from mainline
8993+ 2012-03-13 Jakub Jelinek <jakub@redhat.com>
8994+
8995+ PR c/52577
8996+ * c-parser.c (c_parser_postfix_expression)
8997+ <case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values.
8998+
8999+ * config/i386/smmintrin.h: Avoid /* within a comment.
9000+ * config/i386/nmmintrin.h: Likewise.
9001+
9002+2012-03-22 Richard Guenther <rguenther@suse.de>
9003+
9004+ * BASE-VER: Set to 4.7.1.
9005+ * DEV-PHASE: Set to prerelease.
9006+
9007 2012-03-22 Release Manager
9008
9009 * GCC 4.7.0 released.
9010@@ -74,8 +1166,8 @@
9011 2012-03-07 Ralf Corsépius <ralf.corsepius@rtems.org>
9012
9013 PR target/51417
9014- * Makefile.in: Let install-gcc-ar depend on installdirs, gcc-ar$(exeext),
9015- gcc-nm$(exeext), gcc-ranlib$(exeext).
9016+ * Makefile.in: Let install-gcc-ar depend on installdirs,
9017+ gcc-ar$(exeext), gcc-nm$(exeext), gcc-ranlib$(exeext).
9018 Don't double canonicalize if cross-compiling.
9019
9020 2012-03-06 Aldy Hernandez <aldyh@redhat.com>
9021@@ -234,7 +1326,7 @@
9022 2012-03-01 Georg-Johann Lay <avr@gjlay.de>
9023
9024 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Restore built-in
9025- defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__
9026+ defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__
9027 unintentionally removed in r184616.
9028
9029 2012-03-01 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
9030@@ -390,7 +1482,7 @@
9031
9032 * config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part
9033 of initializer to changes from r184614.
9034-
9035+
9036 2012-02-28 Richard Guenther <rguenther@suse.de>
9037
9038 PR tree-optimization/52395
9039Index: gcc/tree-vect-loop-manip.c
9040===================================================================
9041--- gcc/tree-vect-loop-manip.c (.../tags/gcc_4_7_0_release) (wersja 187906)
9042+++ gcc/tree-vect-loop-manip.c (.../branches/gcc-4_7-branch) (wersja 187906)
9043@@ -1797,13 +1797,12 @@
9044 !gsi_end_p (gsi) && !gsi_end_p (gsi1);
9045 gsi_next (&gsi), gsi_next (&gsi1))
9046 {
9047- tree access_fn = NULL;
9048- tree evolution_part;
9049 tree init_expr;
9050 tree step_expr, off;
9051 tree type;
9052 tree var, ni, ni_name;
9053 gimple_stmt_iterator last_gsi;
9054+ stmt_vec_info stmt_info;
9055
9056 phi = gsi_stmt (gsi);
9057 phi1 = gsi_stmt (gsi1);
9058@@ -1822,45 +1821,34 @@
9059 }
9060
9061 /* Skip reduction phis. */
9062- if (STMT_VINFO_DEF_TYPE (vinfo_for_stmt (phi)) == vect_reduction_def)
9063+ stmt_info = vinfo_for_stmt (phi);
9064+ if (STMT_VINFO_DEF_TYPE (stmt_info) == vect_reduction_def)
9065 {
9066 if (vect_print_dump_info (REPORT_DETAILS))
9067 fprintf (vect_dump, "reduc phi. skip.");
9068 continue;
9069 }
9070
9071- access_fn = analyze_scalar_evolution (loop, PHI_RESULT (phi));
9072- gcc_assert (access_fn);
9073- /* We can end up with an access_fn like
9074- (short int) {(short unsigned int) i_49, +, 1}_1
9075- for further analysis we need to strip the outer cast but we
9076- need to preserve the original type. */
9077- type = TREE_TYPE (access_fn);
9078- STRIP_NOPS (access_fn);
9079- evolution_part =
9080- unshare_expr (evolution_part_in_loop_num (access_fn, loop->num));
9081- gcc_assert (evolution_part != NULL_TREE);
9082+ type = TREE_TYPE (gimple_phi_result (phi));
9083+ step_expr = STMT_VINFO_LOOP_PHI_EVOLUTION_PART (stmt_info);
9084+ step_expr = unshare_expr (step_expr);
9085
9086 /* FORNOW: We do not support IVs whose evolution function is a polynomial
9087 of degree >= 2 or exponential. */
9088- gcc_assert (!tree_is_chrec (evolution_part));
9089+ gcc_assert (!tree_is_chrec (step_expr));
9090
9091- step_expr = evolution_part;
9092- init_expr = unshare_expr (initial_condition_in_loop_num (access_fn,
9093- loop->num));
9094- init_expr = fold_convert (type, init_expr);
9095+ init_expr = PHI_ARG_DEF_FROM_EDGE (phi, loop_preheader_edge (loop));
9096
9097 off = fold_build2 (MULT_EXPR, TREE_TYPE (step_expr),
9098 fold_convert (TREE_TYPE (step_expr), niters),
9099 step_expr);
9100- if (POINTER_TYPE_P (TREE_TYPE (init_expr)))
9101+ if (POINTER_TYPE_P (type))
9102 ni = fold_build_pointer_plus (init_expr, off);
9103 else
9104- ni = fold_build2 (PLUS_EXPR, TREE_TYPE (init_expr),
9105- init_expr,
9106- fold_convert (TREE_TYPE (init_expr), off));
9107+ ni = fold_build2 (PLUS_EXPR, type,
9108+ init_expr, fold_convert (type, off));
9109
9110- var = create_tmp_var (TREE_TYPE (init_expr), "tmp");
9111+ var = create_tmp_var (type, "tmp");
9112 add_referenced_var (var);
9113
9114 last_gsi = gsi_last_bb (exit_bb);
9115Index: gcc/testsuite/gcc.target/arm/pr52633.c
9116===================================================================
9117--- gcc/testsuite/gcc.target/arm/pr52633.c (.../tags/gcc_4_7_0_release) (wersja 0)
9118+++ gcc/testsuite/gcc.target/arm/pr52633.c (.../branches/gcc-4_7-branch) (wersja 187906)
9119@@ -0,0 +1,13 @@
9120+/* PR tree-optimization/52633 */
9121+/* { dg-do compile } */
9122+/* { dg-require-effective-target arm_neon_ok } */
9123+/* { dg-options "-march=armv7-a -mfloat-abi=softfp -mfpu=neon -O -ftree-vectorize" } */
9124+
9125+void
9126+test (unsigned short *x, signed char *y)
9127+{
9128+ int i;
9129+ for (i = 0; i < 32; i++)
9130+ x[i] = (short) (y[i] << 5);
9131+}
9132+
9133Index: gcc/testsuite/gcc.target/arm/pr53187.c
9134===================================================================
9135--- gcc/testsuite/gcc.target/arm/pr53187.c (.../tags/gcc_4_7_0_release) (wersja 0)
9136+++ gcc/testsuite/gcc.target/arm/pr53187.c (.../branches/gcc-4_7-branch) (wersja 187906)
9137@@ -0,0 +1,13 @@
9138+/* PR target/53187 */
9139+/* { dg-do compile } */
9140+/* { dg-options "-march=armv7-a -mfloat-abi=hard -O2" } */
9141+
9142+void bar (int);
9143+
9144+void
9145+foo (int x, double y, double z)
9146+{
9147+ _Bool t = z >= y;
9148+ if (!t || x)
9149+ bar (t ? 1 : 16);
9150+}
9151Index: gcc/testsuite/gcc.target/powerpc/pr52775.c
9152===================================================================
9153--- gcc/testsuite/gcc.target/powerpc/pr52775.c (.../tags/gcc_4_7_0_release) (wersja 0)
9154+++ gcc/testsuite/gcc.target/powerpc/pr52775.c (.../branches/gcc-4_7-branch) (wersja 187906)
9155@@ -0,0 +1,16 @@
9156+/* { dg-do compile { target { powerpc*-*-* && ilp32 } } } */
9157+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
9158+/* { dg-options "-O1 -mcpu=power4" } */
9159+/* { dg-final { scan-assembler-times "fcfid" 2 } } */
9160+
9161+double
9162+int_to_double (int *p)
9163+{
9164+ return (double)*p;
9165+}
9166+
9167+double
9168+long_long_to_double (long long *p)
9169+{
9170+ return (double)*p;
9171+}
9172Index: gcc/testsuite/gcc.target/powerpc/pr53199.c
9173===================================================================
9174--- gcc/testsuite/gcc.target/powerpc/pr53199.c (.../tags/gcc_4_7_0_release) (wersja 0)
9175+++ gcc/testsuite/gcc.target/powerpc/pr53199.c (.../branches/gcc-4_7-branch) (wersja 187906)
9176@@ -0,0 +1,50 @@
9177+/* { dg-do compile { target { powerpc*-*-* } } } */
9178+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
9179+/* { dg-options "-O2 -mcpu=power6 -mavoid-indexed-addresses" } */
9180+/* { dg-final { scan-assembler-times "lwbrx" 6 } } */
9181+/* { dg-final { scan-assembler-times "stwbrx" 6 } } */
9182+
9183+/* PR 51399: bswap gets an error if -mavoid-indexed-addresses was used in
9184+ creating the two lwbrx instructions. */
9185+
9186+long long
9187+load64_reverse_1 (long long *p)
9188+{
9189+ return __builtin_bswap64 (*p);
9190+}
9191+
9192+long long
9193+load64_reverse_2 (long long *p)
9194+{
9195+ return __builtin_bswap64 (p[1]);
9196+}
9197+
9198+long long
9199+load64_reverse_3 (long long *p, int i)
9200+{
9201+ return __builtin_bswap64 (p[i]);
9202+}
9203+
9204+void
9205+store64_reverse_1 (long long *p, long long x)
9206+{
9207+ *p = __builtin_bswap64 (x);
9208+}
9209+
9210+void
9211+store64_reverse_2 (long long *p, long long x)
9212+{
9213+ p[1] = __builtin_bswap64 (x);
9214+}
9215+
9216+void
9217+store64_reverse_3 (long long *p, long long x, int i)
9218+{
9219+ p[i] = __builtin_bswap64 (x);
9220+}
9221+
9222+long long
9223+reg_reverse (long long x)
9224+{
9225+ return __builtin_bswap64 (x);
9226+}
9227Index: gcc/testsuite/gcc.target/avr/torture/addr-space-1-0.c
9228===================================================================
9229--- gcc/testsuite/gcc.target/avr/torture/addr-space-1-0.c (.../tags/gcc_4_7_0_release) (wersja 0)
9230+++ gcc/testsuite/gcc.target/avr/torture/addr-space-1-0.c (.../branches/gcc-4_7-branch) (wersja 187906)
9231@@ -0,0 +1,6 @@
9232+/* { dg-options "-std=gnu99" } */
9233+/* { dg-do run } */
9234+
9235+#define __as __flash
9236+
9237+#include "addr-space-1.h"
9238Index: gcc/testsuite/gcc.target/avr/torture/addr-space-1-1.c
9239===================================================================
9240--- gcc/testsuite/gcc.target/avr/torture/addr-space-1-1.c (.../tags/gcc_4_7_0_release) (wersja 0)
9241+++ gcc/testsuite/gcc.target/avr/torture/addr-space-1-1.c (.../branches/gcc-4_7-branch) (wersja 187906)
9242@@ -0,0 +1,6 @@
9243+/* { dg-options "-std=gnu99 -Tavr51-flash1.x" } */
9244+/* { dg-do run } */
9245+
9246+#define __as __flash1
9247+
9248+#include "addr-space-1.h"
9249Index: gcc/testsuite/gcc.target/avr/torture/addr-space-2-0.c
9250===================================================================
9251--- gcc/testsuite/gcc.target/avr/torture/addr-space-2-0.c (.../tags/gcc_4_7_0_release) (wersja 0)
9252+++ gcc/testsuite/gcc.target/avr/torture/addr-space-2-0.c (.../branches/gcc-4_7-branch) (wersja 187906)
9253@@ -0,0 +1,6 @@
9254+/* { dg-options "-std=gnu99" } */
9255+/* { dg-do run } */
9256+
9257+#define __as __flash
9258+
9259+#include "addr-space-2.h"
9260Index: gcc/testsuite/gcc.target/avr/torture/addr-space-2-1.c
9261===================================================================
9262--- gcc/testsuite/gcc.target/avr/torture/addr-space-2-1.c (.../tags/gcc_4_7_0_release) (wersja 0)
9263+++ gcc/testsuite/gcc.target/avr/torture/addr-space-2-1.c (.../branches/gcc-4_7-branch) (wersja 187906)
9264@@ -0,0 +1,6 @@
9265+/* { dg-options "-std=gnu99 -Tavr51-flash1.x" } */
9266+/* { dg-do run } */
9267+
9268+#define __as __flash1
9269+
9270+#include "addr-space-2.h"
9271Index: gcc/testsuite/gcc.target/avr/torture/avr-torture.exp
9272===================================================================
9273--- gcc/testsuite/gcc.target/avr/torture/avr-torture.exp (.../tags/gcc_4_7_0_release) (wersja 187906)
9274+++ gcc/testsuite/gcc.target/avr/torture/avr-torture.exp (.../branches/gcc-4_7-branch) (wersja 187906)
9275@@ -38,6 +38,7 @@
9276 { -O0 } \
9277 { -O1 } \
9278 { -O2 } \
9279+ { -Os -flto } \
9280 { -O2 -mcall-prologues } \
9281 { -O2 -fdata-sections } \
9282 { -O2 -fmerge-all-constants } \
9283Index: gcc/testsuite/gcc.target/avr/torture/addr-space-1-x.c
9284===================================================================
9285--- gcc/testsuite/gcc.target/avr/torture/addr-space-1-x.c (.../tags/gcc_4_7_0_release) (wersja 0)
9286+++ gcc/testsuite/gcc.target/avr/torture/addr-space-1-x.c (.../branches/gcc-4_7-branch) (wersja 187906)
9287@@ -0,0 +1,6 @@
9288+/* { dg-options "-std=gnu99" } */
9289+/* { dg-do run } */
9290+
9291+#define __as __memx
9292+
9293+#include "addr-space-1.h"
9294Index: gcc/testsuite/gcc.target/avr/torture/addr-space-1.h
9295===================================================================
9296--- gcc/testsuite/gcc.target/avr/torture/addr-space-1.h (.../tags/gcc_4_7_0_release) (wersja 0)
9297+++ gcc/testsuite/gcc.target/avr/torture/addr-space-1.h (.../branches/gcc-4_7-branch) (wersja 187906)
9298@@ -0,0 +1,83 @@
9299+#include <stdlib.h>
9300+#include <string.h>
9301+
9302+typedef struct
9303+{
9304+ char i1;
9305+ short i2;
9306+ long i4;
9307+ long long i8;
9308+ char str[2][10];
9309+} a_t;
9310+
9311+const __as a_t A =
9312+ {
9313+ 12, 345, 678910, 1234567891011ll,
9314+ {
9315+ "xxx..xxx",
9316+ "yyy..yyy"
9317+ }
9318+ };
9319+
9320+const __as volatile a_t V =
9321+ {
9322+ 12+1, 345+1, 678910+1, 1234567891011ll+1,
9323+ {
9324+ "XXX..XXX",
9325+ "YYY..YYY"
9326+ }
9327+ };
9328+
9329+a_t A2;
9330+volatile a_t V2;
9331+
9332+int main (void)
9333+{
9334+ if (A.i1 != 12
9335+ || A.i1 != V.i1 -1)
9336+ abort();
9337+
9338+ if (A.i2 != 345
9339+ || A.i2 != V.i2 -1)
9340+ abort();
9341+
9342+ if (A.i4 != 678910
9343+ || A.i4 != V.i4 -1)
9344+ abort();
9345+
9346+ if (A.i8 != 1234567891011ll
9347+ || A.i8 != V.i8 -1)
9348+ abort();
9349+
9350+ A2 = A;
9351+ V2 = V;
9352+
9353+ if (A2.i1 != 12
9354+ || A2.i1 != V2.i1 -1)
9355+ abort();
9356+
9357+ if (A2.i2 != 345
9358+ || A2.i2 != V2.i2 -1)
9359+ abort();
9360+
9361+ if (A2.i4 != 678910
9362+ || A2.i4 != V2.i4 -1)
9363+ abort();
9364+
9365+ if (A2.i8 != 1234567891011ll
9366+ || A2.i8 != V2.i8 -1)
9367+ abort();
9368+
9369+ if (strcmp (A2.str[0], "xxx..xxx"))
9370+ abort();
9371+ if (strcmp (A2.str[1], "yyy..yyy"))
9372+ abort();
9373+
9374+ if (strcmp ((const char*) V2.str[0], "XXX..XXX"))
9375+ abort();
9376+ if (strcmp ((const char*) V2.str[1], "YYY..YYY"))
9377+ abort();
9378+
9379+ exit (0);
9380+ return 0;
9381+}
9382Index: gcc/testsuite/gcc.target/avr/torture/addr-space-2-x.c
9383===================================================================
9384--- gcc/testsuite/gcc.target/avr/torture/addr-space-2-x.c (.../tags/gcc_4_7_0_release) (wersja 0)
9385+++ gcc/testsuite/gcc.target/avr/torture/addr-space-2-x.c (.../branches/gcc-4_7-branch) (wersja 187906)
9386@@ -0,0 +1,9 @@
9387+/* { dg-options "-std=gnu99 -Wa,--no-warn" } */
9388+/* { dg-do run } */
9389+
9390+/* --no-warn because: "assembling 24-bit address needs binutils extension"
9391+ see binutils PR13503. */
9392+
9393+#define __as __memx
9394+
9395+#include "addr-space-2.h"
9396Index: gcc/testsuite/gcc.target/avr/torture/addr-space-2.h
9397===================================================================
9398--- gcc/testsuite/gcc.target/avr/torture/addr-space-2.h (.../tags/gcc_4_7_0_release) (wersja 0)
9399+++ gcc/testsuite/gcc.target/avr/torture/addr-space-2.h (.../branches/gcc-4_7-branch) (wersja 187906)
9400@@ -0,0 +1,106 @@
9401+extern void exit (int);
9402+extern void abort (void);
9403+
9404+typedef struct T
9405+{
9406+ char val;
9407+ const __as struct T *l, *r;
9408+} tree;
9409+
9410+/*
9411+ abcd
9412+ / \
9413+ ab cd
9414+ / \ / \
9415+ a b c d
9416+*/
9417+
9418+const __as tree a = { 'a', 0, 0 };
9419+const __as tree b = { 'b', 0, 0 };
9420+const __as tree c = { 'c', 0, 0 };
9421+const __as tree d = { 'd', 0, 0 };
9422+
9423+const __as tree ab = { 'A', &a, &b };
9424+const __as tree cd = { 'C', &c, &d };
9425+
9426+const __as tree abcd = { '*', &ab, &cd };
9427+
9428+static void
9429+test1 (void)
9430+{
9431+ if (abcd.val != '*')
9432+ abort();
9433+
9434+ if (abcd.l->val != 'A')
9435+ abort();
9436+ if (abcd.r->val != 'C')
9437+ abort();
9438+
9439+ if (abcd.l->l->val != 'a')
9440+ abort();
9441+ if (abcd.l->r->val != 'b')
9442+ abort();
9443+ if (abcd.r->l->val != 'c')
9444+ abort();
9445+ if (abcd.r->r->val != 'd')
9446+ abort();
9447+}
9448+
9449+static void
9450+test2 (const __as tree *t)
9451+{
9452+ if (t->val != '*')
9453+ abort();
9454+
9455+ if (t->l->val != 'A')
9456+ abort();
9457+ if (t->r->val != 'C')
9458+ abort();
9459+
9460+ if (t->l->l->val != 'a')
9461+ abort();
9462+ if (t->l->r->val != 'b')
9463+ abort();
9464+ if (t->r->l->val != 'c')
9465+ abort();
9466+ if (t->r->r->val != 'd')
9467+ abort();
9468+}
9469+
9470+static void
9471+test3 (const __as tree *pt)
9472+{
9473+ tree t = *pt;
9474+
9475+ if (t.val != '*')
9476+ abort();
9477+
9478+ if (t.l->val != 'A')
9479+ abort();
9480+ if (t.r->val != 'C')
9481+ abort();
9482+
9483+ if (t.l->l->val != 'a')
9484+ abort();
9485+ if (t.l->r->val != 'b')
9486+ abort();
9487+ if (t.r->l->val != 'c')
9488+ abort();
9489+ if (t.r->r->val != 'd')
9490+ abort();
9491+}
9492+
9493+int main (void)
9494+{
9495+ const __as tree *t = &abcd;
9496+ test1();
9497+ test2 (&abcd);
9498+ test3 (&abcd);
9499+
9500+ __asm ("" : "+r" (t));
9501+ test2 (t);
9502+ test3 (t);
9503+
9504+ exit (0);
9505+ return 0;
9506+}
9507Index: gcc/testsuite/gcc.target/avr/torture/addr-space-1-g.c
9508===================================================================
9509--- gcc/testsuite/gcc.target/avr/torture/addr-space-1-g.c (.../tags/gcc_4_7_0_release) (wersja 0)
9510+++ gcc/testsuite/gcc.target/avr/torture/addr-space-1-g.c (.../branches/gcc-4_7-branch) (wersja 187906)
9511@@ -0,0 +1,6 @@
9512+/* { dg-options "-std=gnu99" } */
9513+/* { dg-do run } */
9514+
9515+#define __as
9516+
9517+#include "addr-space-1.h"
9518Index: gcc/testsuite/gcc.target/avr/torture/addr-space-2-g.c
9519===================================================================
9520--- gcc/testsuite/gcc.target/avr/torture/addr-space-2-g.c (.../tags/gcc_4_7_0_release) (wersja 0)
9521+++ gcc/testsuite/gcc.target/avr/torture/addr-space-2-g.c (.../branches/gcc-4_7-branch) (wersja 187906)
9522@@ -0,0 +1,6 @@
9523+/* { dg-options "-std=gnu99" } */
9524+/* { dg-do run } */
9525+
9526+#define __as
9527+
9528+#include "addr-space-2.h"
9529Index: gcc/testsuite/gcc.target/avr/torture/builtins-2.c
9530===================================================================
9531--- gcc/testsuite/gcc.target/avr/torture/builtins-2.c (.../tags/gcc_4_7_0_release) (wersja 0)
9532+++ gcc/testsuite/gcc.target/avr/torture/builtins-2.c (.../branches/gcc-4_7-branch) (wersja 187906)
9533@@ -0,0 +1,46 @@
9534+/* { dg-options "-std=gnu99 -Tavr51-flash1.x" } */
9535+/* { dg-do run } */
9536+
9537+#include <stdlib.h>
9538+#include "../progmem.h"
9539+
9540+int volatile a;
9541+
9542+void f1 (void)
9543+{
9544+ __builtin_avr_sei ();
9545+ __builtin_avr_cli ();
9546+ __builtin_avr_wdr ();
9547+ __builtin_avr_sleep ();
9548+ __builtin_avr_nop ();
9549+ a = __builtin_avr_swap (a);
9550+ a = __builtin_avr_fmul (1,a);
9551+ a = __builtin_avr_fmuls (1,a);
9552+ a = __builtin_avr_fmulsu (1,a);
9553+ a = __builtin_avr_insert_bits (0x1f2f5364, a, a);
9554+}
9555+
9556+const __flash char c0 = 1;
9557+const __flash1 char c1 = 1;
9558+
9559+int main (void)
9560+{
9561+ const __memx void *p;
9562+
9563+ f1();
9564+ __builtin_avr_delay_cycles (1000);
9565+
9566+ p = &c0;
9567+ if (__builtin_avr_flash_segment (p) != 0)
9568+ abort();
9569+
9570+ p = &c1;
9571+ if (__builtin_avr_flash_segment (p) != 1)
9572+ abort();
9573+
9574+ if (__builtin_avr_flash_segment ("p") != -1)
9575+ abort();
9576+
9577+ exit (0);
9578+ return 0;
9579+}
9580Index: gcc/testsuite/gcc.target/avr/progmem.h
9581===================================================================
9582--- gcc/testsuite/gcc.target/avr/progmem.h (.../tags/gcc_4_7_0_release) (wersja 187906)
9583+++ gcc/testsuite/gcc.target/avr/progmem.h (.../branches/gcc-4_7-branch) (wersja 187906)
9584@@ -5,6 +5,7 @@
9585 static const char __c[] PROGMEM = (s); \
9586 &__c[0];}))
9587
9588+#ifdef __AVR_HAVE_LPMX__
9589 #define pgm_read_char(addr) \
9590 (__extension__({ \
9591 unsigned int __addr16 = (unsigned int)(addr); \
9592@@ -12,3 +13,13 @@
9593 __asm__ ("lpm %0, %a1" \
9594 : "=r" (__result) : "z" (__addr16)); \
9595 __result; }))
9596+#else
9597+#define pgm_read_char(addr) \
9598+ (__extension__({ \
9599+ unsigned int __addr16 = (unsigned int)(addr); \
9600+ char __result; \
9601+ __asm__ ("lpm" "\n\t" \
9602+ "mov %0, r0" \
9603+ : "=r" (__result) : "z" (__addr16)); \
9604+ __result; }))
9605+#endif
9606Index: gcc/testsuite/gcc.target/i386/avx2-vpermps-1.c
9607===================================================================
9608--- gcc/testsuite/gcc.target/i386/avx2-vpermps-1.c (.../tags/gcc_4_7_0_release) (wersja 187906)
9609+++ gcc/testsuite/gcc.target/i386/avx2-vpermps-1.c (.../branches/gcc-4_7-branch) (wersja 187906)
9610@@ -5,9 +5,10 @@
9611 #include <immintrin.h>
9612
9613 __m256 x;
9614+__m256i y;
9615
9616 void extern
9617 avx2_test (void)
9618 {
9619- x = _mm256_permutevar8x32_ps (x, x);
9620+ x = _mm256_permutevar8x32_ps (x, y);
9621 }
9622Index: gcc/testsuite/gcc.target/i386/avx256-unaligned-load-1.c
9623===================================================================
9624--- gcc/testsuite/gcc.target/i386/avx256-unaligned-load-1.c (.../tags/gcc_4_7_0_release) (wersja 187906)
9625+++ gcc/testsuite/gcc.target/i386/avx256-unaligned-load-1.c (.../branches/gcc-4_7-branch) (wersja 187906)
9626@@ -14,6 +14,6 @@
9627 c[i] = a[i] * b[i+3];
9628 }
9629
9630-/* { dg-final { scan-assembler-not "\\*avx_movups256/1" } } */
9631-/* { dg-final { scan-assembler "\\*sse_movups/1" } } */
9632+/* { dg-final { scan-assembler-not "avx_movups256/1" } } */
9633+/* { dg-final { scan-assembler "sse_movups/1" } } */
9634 /* { dg-final { scan-assembler "vinsertf128" } } */
9635Index: gcc/testsuite/gcc.target/i386/avx256-unaligned-store-3.c
9636===================================================================
9637--- gcc/testsuite/gcc.target/i386/avx256-unaligned-store-3.c (.../tags/gcc_4_7_0_release) (wersja 187906)
9638+++ gcc/testsuite/gcc.target/i386/avx256-unaligned-store-3.c (.../branches/gcc-4_7-branch) (wersja 187906)
9639@@ -17,6 +17,6 @@
9640 d[i] = c[i] * 20.0;
9641 }
9642
9643-/* { dg-final { scan-assembler-not "\\*avx_movupd256/2" } } */
9644+/* { dg-final { scan-assembler-not "avx_movupd256/2" } } */
9645 /* { dg-final { scan-assembler "vmovupd.*\\*movv2df_internal/3" } } */
9646 /* { dg-final { scan-assembler "vextractf128" } } */
9647Index: gcc/testsuite/gcc.target/i386/avx2-vpermps-2.c
9648===================================================================
9649--- gcc/testsuite/gcc.target/i386/avx2-vpermps-2.c (.../tags/gcc_4_7_0_release) (wersja 187906)
9650+++ gcc/testsuite/gcc.target/i386/avx2-vpermps-2.c (.../branches/gcc-4_7-branch) (wersja 187906)
9651@@ -8,7 +8,7 @@
9652 #define NUM 10
9653
9654 static void
9655-init_permps (float *src1, float *src2, int seed)
9656+init_permps (float *src1, int *src2, int seed)
9657 {
9658 int i, sign = 1;
9659
9660@@ -21,24 +21,24 @@
9661 }
9662
9663 static void
9664-calc_permps (float *src1, float *src2, float *dst)
9665+calc_permps (float *src1, int *src2, float *dst)
9666 {
9667 int i;
9668 unsigned temp;
9669- unsigned *idx = (int *) src1;
9670
9671 memcpy (dst, src1, 32);
9672 for (i = 0; i < 8; i++)
9673 {
9674- temp = idx[i];
9675- dst[i] = src2[temp & 7];
9676+ temp = src2[i];
9677+ dst[i] = src1[temp & 7];
9678 }
9679 }
9680
9681 static void
9682 avx2_test (void)
9683 {
9684- union256 src1, src2, dst;
9685+ union256 src1, dst;
9686+ union256i_d src2;
9687 float dst_ref[8];
9688 int i;
9689
9690Index: gcc/testsuite/gcc.target/i386/avx256-unaligned-load-2.c
9691===================================================================
9692--- gcc/testsuite/gcc.target/i386/avx256-unaligned-load-2.c (.../tags/gcc_4_7_0_release) (wersja 187906)
9693+++ gcc/testsuite/gcc.target/i386/avx256-unaligned-load-2.c (.../branches/gcc-4_7-branch) (wersja 187906)
9694@@ -24,6 +24,6 @@
9695 }
9696 }
9697
9698-/* { dg-final { scan-assembler-not "\\*avx_movdqu256/1" } } */
9699-/* { dg-final { scan-assembler "\\*sse2_movdqu/1" } } */
9700+/* { dg-final { scan-assembler-not "avx_movdqu256/1" } } */
9701+/* { dg-final { scan-assembler "sse2_movdqu/1" } } */
9702 /* { dg-final { scan-assembler "vinsert.128" } } */
9703Index: gcc/testsuite/gcc.target/i386/pr53366-1.c
9704===================================================================
9705--- gcc/testsuite/gcc.target/i386/pr53366-1.c (.../tags/gcc_4_7_0_release) (wersja 0)
9706+++ gcc/testsuite/gcc.target/i386/pr53366-1.c (.../branches/gcc-4_7-branch) (wersja 187906)
9707@@ -0,0 +1,5 @@
9708+/* PR tree-optimization/53366 */
9709+/* { dg-do run { target avx_runtime } } */
9710+/* { dg-options "-O3 -mavx" } */
9711+
9712+#include "../../gcc.dg/torture/pr53366-1.c"
9713Index: gcc/testsuite/gcc.target/i386/avx256-unaligned-store-4.c
9714===================================================================
9715--- gcc/testsuite/gcc.target/i386/avx256-unaligned-store-4.c (.../tags/gcc_4_7_0_release) (wersja 187906)
9716+++ gcc/testsuite/gcc.target/i386/avx256-unaligned-store-4.c (.../branches/gcc-4_7-branch) (wersja 187906)
9717@@ -14,7 +14,7 @@
9718 b[i+3] = a[i] * c[i];
9719 }
9720
9721-/* { dg-final { scan-assembler "\\*avx_movups256/2" } } */
9722-/* { dg-final { scan-assembler-not "\\*avx_movups/2" } } */
9723+/* { dg-final { scan-assembler "avx_movups256/2" } } */
9724+/* { dg-final { scan-assembler-not "avx_movups/2" } } */
9725 /* { dg-final { scan-assembler-not "\\*avx_movv4sf_internal/3" } } */
9726 /* { dg-final { scan-assembler-not "vextractf128" } } */
9727Index: gcc/testsuite/gcc.target/i386/pr52736.c
9728===================================================================
9729--- gcc/testsuite/gcc.target/i386/pr52736.c (.../tags/gcc_4_7_0_release) (wersja 0)
9730+++ gcc/testsuite/gcc.target/i386/pr52736.c (.../branches/gcc-4_7-branch) (wersja 187906)
9731@@ -0,0 +1,29 @@
9732+/* PR target/52736 */
9733+/* { dg-do run } */
9734+/* { dg-options "-O1 -msse2" } */
9735+/* { dg-require-effective-target sse2_runtime } */
9736+
9737+#include <x86intrin.h>
9738+
9739+typedef double D __attribute__((may_alias));
9740+__attribute__((aligned(16))) static const double r[4] = { 1., 5., 1., 3. };
9741+
9742+__attribute__((noinline, noclone))
9743+void
9744+foo (int x)
9745+{
9746+ asm volatile ("" : "+g" (x) : : "memory");
9747+ if (x != 3)
9748+ __builtin_abort ();
9749+}
9750+
9751+int
9752+main ()
9753+{
9754+ __m128d t = _mm_set1_pd (5.);
9755+ ((D *)(&t))[0] = 1.;
9756+ foo (_mm_movemask_pd (_mm_cmpeq_pd (t, _mm_load_pd (&r[0]))));
9757+ ((D *)(&t))[1] = 3.;
9758+ foo (_mm_movemask_pd (_mm_cmpeq_pd (t, _mm_load_pd (&r[2]))));
9759+ return 0;
9760+}
9761Index: gcc/testsuite/gcc.target/i386/pr52754.c
9762===================================================================
9763--- gcc/testsuite/gcc.target/i386/pr52754.c (.../tags/gcc_4_7_0_release) (wersja 0)
9764+++ gcc/testsuite/gcc.target/i386/pr52754.c (.../branches/gcc-4_7-branch) (wersja 187906)
9765@@ -0,0 +1,33 @@
9766+/* { dg-do run } */
9767+/* { dg-options "-O2 -fpredictive-commoning -msse2 -std=c99" } */
9768+/* { dg-require-effective-target sse2 } */
9769+
9770+#include <x86intrin.h>
9771+
9772+#include "isa-check.h"
9773+#include "sse-os-support.h"
9774+
9775+int main()
9776+{
9777+ const float mem[8] = { 0, 1, 2, 3, 4, 5, 6, 7 };
9778+
9779+ unsigned int indexes[8];
9780+ for (unsigned int i = 0; i < 8; ++i) indexes[i] = i;
9781+
9782+ check_isa ();
9783+
9784+ if (!sse_os_support ())
9785+ exit (0);
9786+
9787+ __m128 x = _mm_setr_ps(0, 1, 2, 3);
9788+ for (unsigned int i = 0; i + 4 < 6; ++i) {
9789+ const unsigned int *ii = &indexes[i];
9790+ const __m128 tmp = _mm_setr_ps(mem[ii[0]], mem[ii[1]], mem[ii[2]], mem[ii[3]]);
9791+ if (0xf != _mm_movemask_ps(_mm_cmpeq_ps(tmp, x))) {
9792+ __builtin_abort();
9793+ }
9794+ x = _mm_add_ps(x, _mm_set1_ps(1));
9795+ }
9796+
9797+ return 0;
9798+}
9799Index: gcc/testsuite/gcc.target/i386/avx256-unaligned-load-3.c
9800===================================================================
9801--- gcc/testsuite/gcc.target/i386/avx256-unaligned-load-3.c (.../tags/gcc_4_7_0_release) (wersja 187906)
9802+++ gcc/testsuite/gcc.target/i386/avx256-unaligned-load-3.c (.../branches/gcc-4_7-branch) (wersja 187906)
9803@@ -14,6 +14,6 @@
9804 c[i] = a[i] * b[i+3];
9805 }
9806
9807-/* { dg-final { scan-assembler-not "\\*avx_movupd256/1" } } */
9808-/* { dg-final { scan-assembler "\\*sse2_movupd/1" } } */
9809+/* { dg-final { scan-assembler-not "avx_movupd256/1" } } */
9810+/* { dg-final { scan-assembler "sse2_movupd/1" } } */
9811 /* { dg-final { scan-assembler "vinsertf128" } } */
9812Index: gcc/testsuite/gcc.target/i386/avx256-unaligned-store-1.c
9813===================================================================
9814--- gcc/testsuite/gcc.target/i386/avx256-unaligned-store-1.c (.../tags/gcc_4_7_0_release) (wersja 187906)
9815+++ gcc/testsuite/gcc.target/i386/avx256-unaligned-store-1.c (.../branches/gcc-4_7-branch) (wersja 187906)
9816@@ -17,6 +17,6 @@
9817 d[i] = c[i] * 20.0;
9818 }
9819
9820-/* { dg-final { scan-assembler-not "\\*avx_movups256/2" } } */
9821+/* { dg-final { scan-assembler-not "avx_movups256/2" } } */
9822 /* { dg-final { scan-assembler "vmovups.*\\*movv4sf_internal/3" } } */
9823 /* { dg-final { scan-assembler "vextractf128" } } */
9824Index: gcc/testsuite/gcc.target/i386/pr53366-2.c
9825===================================================================
9826--- gcc/testsuite/gcc.target/i386/pr53366-2.c (.../tags/gcc_4_7_0_release) (wersja 0)
9827+++ gcc/testsuite/gcc.target/i386/pr53366-2.c (.../branches/gcc-4_7-branch) (wersja 187906)
9828@@ -0,0 +1,5 @@
9829+/* PR tree-optimization/53366 */
9830+/* { dg-do run { target avx_runtime } } */
9831+/* { dg-options "-O3 -mavx" } */
9832+
9833+#include "../../gcc.dg/torture/pr53366-2.c"
9834Index: gcc/testsuite/gcc.target/i386/avx2-vpermd-2.c
9835===================================================================
9836--- gcc/testsuite/gcc.target/i386/avx2-vpermd-2.c (.../tags/gcc_4_7_0_release) (wersja 187906)
9837+++ gcc/testsuite/gcc.target/i386/avx2-vpermd-2.c (.../branches/gcc-4_7-branch) (wersja 187906)
9838@@ -29,8 +29,8 @@
9839 memcpy (dst, src1, 32);
9840 for (i = 0; i < 8; i++)
9841 {
9842- temp = src1[i];
9843- dst[i] = src2[temp & 7];
9844+ temp = src2[i];
9845+ dst[i] = src1[temp & 7];
9846 }
9847 }
9848
9849Index: gcc/testsuite/gcc.target/i386/pr53416.c
9850===================================================================
9851--- gcc/testsuite/gcc.target/i386/pr53416.c (.../tags/gcc_4_7_0_release) (wersja 0)
9852+++ gcc/testsuite/gcc.target/i386/pr53416.c (.../branches/gcc-4_7-branch) (wersja 187906)
9853@@ -0,0 +1,17 @@
9854+/* PR target/53416 */
9855+/* { dg-options "-O2 -mrdrnd" } */
9856+
9857+int test (void)
9858+{
9859+ unsigned int number = 0;
9860+ int result0, result1, result2, result3;
9861+
9862+ result0 = __builtin_ia32_rdrand32_step (&number);
9863+ result1 = __builtin_ia32_rdrand32_step (&number);
9864+ result2 = __builtin_ia32_rdrand32_step (&number);
9865+ result3 = __builtin_ia32_rdrand32_step (&number);
9866+
9867+ return result0 + result1 +result2 + result3;
9868+}
9869+
9870+/* { dg-final { scan-assembler-times "rdrand" 4 } } */
9871Index: gcc/testsuite/gcc.target/i386/avx256-unaligned-load-4.c
9872===================================================================
9873--- gcc/testsuite/gcc.target/i386/avx256-unaligned-load-4.c (.../tags/gcc_4_7_0_release) (wersja 187906)
9874+++ gcc/testsuite/gcc.target/i386/avx256-unaligned-load-4.c (.../branches/gcc-4_7-branch) (wersja 187906)
9875@@ -14,6 +14,6 @@
9876 b[i] = a[i+3] * 2;
9877 }
9878
9879-/* { dg-final { scan-assembler "\\*avx_movups256/1" } } */
9880-/* { dg-final { scan-assembler-not "\\*avx_movups/1" } } */
9881+/* { dg-final { scan-assembler "avx_movups256/1" } } */
9882+/* { dg-final { scan-assembler-not "avx_movups/1" } } */
9883 /* { dg-final { scan-assembler-not "vinsertf128" } } */
9884Index: gcc/testsuite/gcc.target/i386/avx256-unaligned-store-2.c
9885===================================================================
9886--- gcc/testsuite/gcc.target/i386/avx256-unaligned-store-2.c (.../tags/gcc_4_7_0_release) (wersja 187906)
9887+++ gcc/testsuite/gcc.target/i386/avx256-unaligned-store-2.c (.../branches/gcc-4_7-branch) (wersja 187906)
9888@@ -24,6 +24,6 @@
9889 }
9890 }
9891
9892-/* { dg-final { scan-assembler-not "\\*avx_movdqu256/2" } } */
9893+/* { dg-final { scan-assembler-not "avx_movdqu256/2" } } */
9894 /* { dg-final { scan-assembler "vmovdqu.*\\*movv16qi_internal/3" } } */
9895 /* { dg-final { scan-assembler "vextract.128" } } */
9896Index: gcc/testsuite/gcc.target/ia64/pr52657.c
9897===================================================================
9898--- gcc/testsuite/gcc.target/ia64/pr52657.c (.../tags/gcc_4_7_0_release) (wersja 0)
9899+++ gcc/testsuite/gcc.target/ia64/pr52657.c (.../branches/gcc-4_7-branch) (wersja 187906)
9900@@ -0,0 +1,44 @@
9901+/* { dg-do compile } */
9902+/* { dg-options "-O" } */
9903+
9904+typedef unsigned long int mp_limb_t;
9905+
9906+typedef struct
9907+{
9908+ int _mp_alloc;
9909+ int _mp_size;
9910+ mp_limb_t *_mp_d;
9911+} __mpz_struct;
9912+
9913+typedef __mpz_struct mpz_t[1];
9914+typedef mp_limb_t * mp_ptr;
9915+typedef const mp_limb_t * mp_srcptr;
9916+typedef long int mp_size_t;
9917+
9918+extern mp_limb_t __gmpn_addmul_2 (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr);
9919+
9920+void
9921+__gmpn_redc_2 (mp_ptr rp, mp_ptr up, mp_srcptr mp, mp_size_t n, mp_srcptr mip)
9922+{
9923+ mp_limb_t q[2];
9924+ mp_size_t j;
9925+ mp_limb_t upn;
9926+
9927+ for (j = n - 2; j >= 0; j -= 2)
9928+ {
9929+ mp_limb_t _ph, _pl;
9930+ __asm__ ("xma.hu %0 = %3, %5, f0\n\t"
9931+ "xma.l %1 = %3, %5, f0\n\t"
9932+ ";;\n\t"
9933+ "xma.l %0 = %3, %4, %0\n\t"
9934+ ";;\n\t"
9935+ "xma.l %0 = %2, %5, %0"
9936+ : "=&f" (q[1]), "=&f" (q[0])
9937+ : "f" (mip[1]), "f" (mip[0]), "f" (up[1]), "f" (up[0]));
9938+ upn = up[n];
9939+ up[1] = __gmpn_addmul_2 (up, mp, n, q);
9940+ up[0] = up[n];
9941+ up[n] = upn;
9942+ up += 2;
9943+ }
9944+}
9945Index: gcc/testsuite/gcc.target/ia64/pr48496.c
9946===================================================================
9947--- gcc/testsuite/gcc.target/ia64/pr48496.c (.../tags/gcc_4_7_0_release) (wersja 0)
9948+++ gcc/testsuite/gcc.target/ia64/pr48496.c (.../branches/gcc-4_7-branch) (wersja 187906)
9949@@ -0,0 +1,24 @@
9950+/* { dg-do compile } */
9951+/* { dg-options "-O2" } */
9952+
9953+typedef unsigned int UINT64 __attribute__((__mode__(__DI__)));
9954+
9955+typedef struct
9956+{
9957+ UINT64 x[2] __attribute__((aligned(16)));
9958+} fpreg;
9959+
9960+struct ia64_args
9961+{
9962+ fpreg fp_regs[8];
9963+ UINT64 gp_regs[8];
9964+};
9965+
9966+ffi_call(long i, long gpcount, long fpcount, void **avalue)
9967+{
9968+ struct ia64_args *stack;
9969+ stack = __builtin_alloca (64);
9970+ asm ("stf.spill %0 = %1%P0" : "=m" (*&stack->fp_regs[fpcount++])
9971+ : "f"(*(double *)avalue[i]));
9972+ stack->gp_regs[gpcount++] = *(UINT64 *)avalue[i];
9973+}
9974Index: gcc/testsuite/go.test/go-test.exp
9975===================================================================
9976--- gcc/testsuite/go.test/go-test.exp (.../tags/gcc_4_7_0_release) (wersja 187906)
9977+++ gcc/testsuite/go.test/go-test.exp (.../branches/gcc-4_7-branch) (wersja 187906)
9978@@ -217,6 +217,13 @@
9979 return ""
9980 }
9981 }
9982+ "powerpc*-*-*" {
9983+ if [check_effective_target_ilp32] {
9984+ set goarch "ppc"
9985+ } else {
9986+ set goarch "ppc64"
9987+ }
9988+ }
9989 "sparc*-*-*" {
9990 if [check_effective_target_ilp32] {
9991 set goarch "sparc"
9992@@ -302,7 +309,7 @@
9993 }
9994
9995 # Handle certain tests in a target-dependant way.
9996- if { [istarget "alpha*-*-*"] || [istarget "sparc*-*-solaris*"] } {
9997+ if { [istarget "alpha*-*-*"] || [istarget "sparc*-*-solaris*"] || [istarget "powerpc*-*-*"] } {
9998 if { [string match "*go.test/test/nilptr.go" $test] } {
9999 untested $test
10000 continue
10001Index: gcc/testsuite/lib/target-supports.exp
10002===================================================================
10003--- gcc/testsuite/lib/target-supports.exp (.../tags/gcc_4_7_0_release) (wersja 187906)
10004+++ gcc/testsuite/lib/target-supports.exp (.../branches/gcc-4_7-branch) (wersja 187906)
10005@@ -2576,8 +2576,23 @@
10006 } "-mcpu=niagara3"]
10007 }
10008
10009-# Return 1 if this is a Sparc target with VIS enabled.
10010+# Return 1 if this is a SPARC-V9 target.
10011
10012+proc check_effective_target_sparc_v9 { } {
10013+ if { [istarget sparc*-*-*] } {
10014+ return [check_no_compiler_messages sparc_v9 object {
10015+ int main (void) {
10016+ asm volatile ("return %i7+8");
10017+ return 0;
10018+ }
10019+ }]
10020+ } else {
10021+ return 0
10022+ }
10023+}
10024+
10025+# Return 1 if this is a SPARC target with VIS enabled.
10026+
10027 proc check_effective_target_sparc_vis { } {
10028 if { [istarget sparc*-*-*] } {
10029 return [check_no_compiler_messages sparc_vis object {
10030@@ -3755,7 +3770,8 @@
10031 if { [istarget x86_64-*-*]
10032 || [istarget i?86-*-*])
10033 || [istarget arm*-*-*]
10034- || [istarget alpha*-*-*] } {
10035+ || [istarget alpha*-*-*]
10036+ || ([istarget sparc*-*-*] && [check_effective_target_lp64]) } {
10037 return 1
10038 } else {
10039 return 0
10040@@ -3800,6 +3816,10 @@
10041 } "" ]
10042 } elseif { [istarget alpha*-*-*] } {
10043 return 1
10044+ } elseif { ([istarget sparc*-*-*]
10045+ && [check_effective_target_lp64]
10046+ && [check_effective_target_ultrasparc_hw]) } {
10047+ return 1
10048 } else {
10049 return 0
10050 }
10051@@ -3825,8 +3845,7 @@
10052 || [istarget hppa*-*linux*]
10053 || [istarget s390*-*-*]
10054 || [istarget powerpc*-*-*]
10055- || [istarget sparc64-*-*]
10056- || [istarget sparcv9-*-*]
10057+ || ([istarget sparc*-*-*] && [check_effective_target_sparc_v9])
10058 || [check_effective_target_mips_llsc] } {
10059 set et_sync_int_long_saved 1
10060 }
10061@@ -3855,8 +3874,7 @@
10062 || [istarget hppa*-*linux*]
10063 || [istarget s390*-*-*]
10064 || [istarget powerpc*-*-*]
10065- || [istarget sparc64-*-*]
10066- || [istarget sparcv9-*-*]
10067+ || ([istarget sparc*-*-*] && [check_effective_target_sparc_v9])
10068 || [check_effective_target_mips_llsc] } {
10069 set et_sync_char_short_saved 1
10070 }
10071Index: gcc/testsuite/gfortran.dg/function_optimize_11.f90
10072===================================================================
10073--- gcc/testsuite/gfortran.dg/function_optimize_11.f90 (.../tags/gcc_4_7_0_release) (wersja 0)
10074+++ gcc/testsuite/gfortran.dg/function_optimize_11.f90 (.../branches/gcc-4_7-branch) (wersja 187906)
10075@@ -0,0 +1,17 @@
10076+! { dg-do run }
10077+! { dg-options "-ffrontend-optimize" }
10078+! Do not move common functions out of implicit DO loop constructors.
10079+program test
10080+ integer, parameter :: N = 4
10081+ integer, parameter :: dp=kind(1.d0)
10082+ real(kind=dp), parameter :: pi=4*atan(1._dp)
10083+ real(kind=dp), parameter :: eps = 1.e-14_dp
10084+ real(kind=dp) :: h1(0:N-1), h2(0:N-1)
10085+ integer i
10086+
10087+ i = 1
10088+ h1 = [(cos(2*pi*mod(i*k,N)/N),k=0,N/2), &
10089+ & (sin(2*pi*mod(i*k,N)/N),k=1,N/2-1)]
10090+ h2 = (/ 1._dp, 0._dp, -1._dp, 1._dp /)
10091+ if (any(abs(h1 - h2) > eps)) call abort
10092+end program test
10093Index: gcc/testsuite/gfortran.dg/constructor_7.f90
10094===================================================================
10095--- gcc/testsuite/gfortran.dg/constructor_7.f90 (.../tags/gcc_4_7_0_release) (wersja 0)
10096+++ gcc/testsuite/gfortran.dg/constructor_7.f90 (.../branches/gcc-4_7-branch) (wersja 187906)
10097@@ -0,0 +1,48 @@
10098+! { dg-do compile }
10099+! { dg-options "-std=f95" }
10100+!
10101+! PR fortran/53111
10102+!
10103+
10104+! ------------ INVALID ONE ------------------------
10105+
10106+module m
10107+type t
10108+ integer :: i
10109+end type t
10110+end
10111+
10112+module m2
10113+ interface t
10114+ module procedure sub
10115+ end interface t
10116+contains
10117+ integer function sub()
10118+ sub = 4
10119+ end function sub
10120+end module m2
10121+
10122+! Note: The following is formally valid as long as "t" is not used.
10123+! For simplicity, -std=f95 will give an error.
10124+! It is unlikely that a real-world program is rejected with -std=f95
10125+! because of that.
10126+
10127+use m ! { dg-error "Fortran 2003: Generic name 't' of function 'sub' at .1. being the same name as derived type at" }
10128+use m2 ! { dg-error "Fortran 2003: Generic name 't' of function 'sub' at .1. being the same name as derived type at" }
10129+! i = sub() ! << Truly invalid in F95, valid in F2003
10130+end
10131+
10132+! ------------ INVALID TWO ------------------------
10133+
10134+module m3
10135+type t2 ! { dg-error "Fortran 2003: Generic name 't2' of function 'sub2' at .1. being the same name as derived type at" }
10136+ integer :: i
10137+end type t2
10138+ interface t2
10139+ module procedure sub2
10140+ end interface t2
10141+contains
10142+ integer function sub2() ! { dg-error "Fortran 2003: Generic name 't2' of function 'sub2' at .1. being the same name as derived type at" }
10143+ sub2 = 4
10144+ end function sub2
10145+end module m3
10146Index: gcc/testsuite/gfortran.dg/intrinsic_8.f90
10147===================================================================
10148--- gcc/testsuite/gfortran.dg/intrinsic_8.f90 (.../tags/gcc_4_7_0_release) (wersja 0)
10149+++ gcc/testsuite/gfortran.dg/intrinsic_8.f90 (.../branches/gcc-4_7-branch) (wersja 187906)
10150@@ -0,0 +1,23 @@
10151+! { dg-do compile }
10152+!
10153+! PR fortran/52452
10154+!
10155+! Contributed by Roger Ferrer Ibanez
10156+!
10157+PROGRAM test_etime
10158+ IMPLICIT NONE
10159+ INTRINSIC :: etime
10160+ REAL(4) :: tarray(1:2)
10161+ REAL(4) :: result
10162+
10163+ CALL etime(tarray, result)
10164+END PROGRAM test_etime
10165+
10166+subroutine test_etime2
10167+ IMPLICIT NONE
10168+ INTRINSIC :: etime
10169+ REAL(4) :: tarray(1:2)
10170+ REAL(4) :: result
10171+
10172+ result = etime(tarray)
10173+END subroutine test_etime2
10174Index: gcc/testsuite/gfortran.dg/pr52701.f90
10175===================================================================
10176--- gcc/testsuite/gfortran.dg/pr52701.f90 (.../tags/gcc_4_7_0_release) (wersja 0)
10177+++ gcc/testsuite/gfortran.dg/pr52701.f90 (.../branches/gcc-4_7-branch) (wersja 187906)
10178@@ -0,0 +1,20 @@
10179+! { dg-do compile }
10180+! { dg-options "-O3" }
10181+function pr52701 (x, z, e, f, g, l)
10182+ integer a, b, c, d, e, f, g, i, j, l, pr52701
10183+ double precision x(e), z(e*e)
10184+ do i = l, f
10185+ do j = l, i
10186+ d = 0
10187+ do a = 1, g
10188+ c = a - g
10189+ do b = 1, g
10190+ d = d + 1
10191+ c = c + g
10192+ z(d) = z(d) / (x(i) + x(j) - x(f + a) - x(f + b))
10193+ end do
10194+ end do
10195+ end do
10196+ end do
10197+ pr52701 = c
10198+end
10199Index: gcc/testsuite/gfortran.dg/typebound_operator_15.f90
10200===================================================================
10201--- gcc/testsuite/gfortran.dg/typebound_operator_15.f90 (.../tags/gcc_4_7_0_release) (wersja 0)
10202+++ gcc/testsuite/gfortran.dg/typebound_operator_15.f90 (.../branches/gcc-4_7-branch) (wersja 187906)
10203@@ -0,0 +1,78 @@
10204+! { dg-do run }
10205+!
10206+! PR fortran/53255
10207+!
10208+! Contributed by Reinhold Bader.
10209+!
10210+! Before TYPE(ext)'s .tr. wrongly called the base type's trace
10211+! instead of ext's trace_ext.
10212+!
10213+module mod_base
10214+ implicit none
10215+ private
10216+ integer, public :: base_cnt = 0
10217+ type, public :: base
10218+ private
10219+ real :: r(2,2) = reshape( (/ 1.0, 2.0, 3.0, 4.0 /), (/ 2, 2 /))
10220+ contains
10221+ procedure, private :: trace
10222+ generic :: operator(.tr.) => trace
10223+ end type base
10224+contains
10225+ complex function trace(this)
10226+ class(base), intent(in) :: this
10227+ base_cnt = base_cnt + 1
10228+! write(*,*) 'executing base'
10229+ trace = this%r(1,1) + this%r(2,2)
10230+ end function trace
10231+end module mod_base
10232+
10233+module mod_ext
10234+ use mod_base
10235+ implicit none
10236+ private
10237+ integer, public :: ext_cnt = 0
10238+ public :: base, base_cnt
10239+ type, public, extends(base) :: ext
10240+ private
10241+ real :: i(2,2) = reshape( (/ 1.0, 1.0, 1.0, 1.5 /), (/ 2, 2 /))
10242+ contains
10243+ procedure, private :: trace => trace_ext
10244+ end type ext
10245+contains
10246+ complex function trace_ext(this)
10247+ class(ext), intent(in) :: this
10248+
10249+! the following should be executed through invoking .tr. p below
10250+! write(*,*) 'executing override'
10251+ ext_cnt = ext_cnt + 1
10252+ trace_ext = .tr. this%base + (0.0, 1.0) * ( this%i(1,1) + this%i(2,2) )
10253+ end function trace_ext
10254+
10255+end module mod_ext
10256+program test_override
10257+ use mod_ext
10258+ implicit none
10259+ type(base) :: o
10260+ type(ext) :: p
10261+ real :: r
10262+
10263+ ! Note: ext's ".tr." (trace_ext) calls also base's "trace"
10264+
10265+! write(*,*) .tr. o
10266+! write(*,*) .tr. p
10267+ if (base_cnt /= 0 .or. ext_cnt /= 0) call abort ()
10268+ r = .tr. o
10269+ if (base_cnt /= 1 .or. ext_cnt /= 0) call abort ()
10270+ r = .tr. p
10271+ if (base_cnt /= 2 .or. ext_cnt /= 1) call abort ()
10272+
10273+ if (abs(.tr. o - 5.0 ) < 1.0e-6 .and. abs( .tr. p - (5.0,2.5)) < 1.0e-6) &
10274+ then
10275+ if (base_cnt /= 4 .or. ext_cnt /= 2) call abort ()
10276+! write(*,*) 'OK'
10277+ else
10278+ call abort()
10279+! write(*,*) 'FAIL'
10280+ end if
10281+end program test_override
10282Index: gcc/testsuite/gfortran.dg/pr52678.f
10283===================================================================
10284--- gcc/testsuite/gfortran.dg/pr52678.f (.../tags/gcc_4_7_0_release) (wersja 0)
10285+++ gcc/testsuite/gfortran.dg/pr52678.f (.../branches/gcc-4_7-branch) (wersja 187906)
10286@@ -0,0 +1,18 @@
10287+! { dg-do compile }
10288+! { dg-options "-O -ftree-vectorize" }
10289+ SUBROUTINE OpenAD_set_ref_state(DRF, RHOFACF, RHOFACC)
10290+ real(8) DRF(1 : 15)
10291+ real(8) RHOFACF(1 : 16)
10292+ real(8) RHOFACC(1 : 15)
10293+ integer, dimension(:), allocatable :: oad_it
10294+ integer :: oad_it_ptr
10295+ INTEGER(8) OpenAD_Symbol_188
10296+ INTEGER(4) K
10297+ OpenAD_Symbol_188 = 0
10298+ DO K = 2, 15, 1
10299+ RHOFACF(INT(K)) = ((RHOFACC(K) * DRF(K + (-1)) + RHOFACC(K +
10300+ + (-1)) * DRF(K)) /(DRF(K) + DRF(K + (-1))))
10301+ OpenAD_Symbol_188 = (INT(OpenAD_Symbol_188) + INT(1))
10302+ END DO
10303+ oad_it(oad_it_ptr) = OpenAD_Symbol_188
10304+ end subroutine OpenAD_set_ref_state
10305Index: gcc/testsuite/gfortran.dg/use_only_6.f90
10306===================================================================
10307--- gcc/testsuite/gfortran.dg/use_only_6.f90 (.../tags/gcc_4_7_0_release) (wersja 0)
10308+++ gcc/testsuite/gfortran.dg/use_only_6.f90 (.../branches/gcc-4_7-branch) (wersja 187906)
10309@@ -0,0 +1,14 @@
10310+! { dg-do compile }
10311+! PR 52668 - there used to be a bogus warning about not using b.
10312+! Original test case by Arnaud Desitter.
10313+module mm
10314+ integer :: a, b
10315+ common /mm1/ a, b
10316+end module mm
10317+
10318+subroutine aa()
10319+ use mm, only: a
10320+ implicit none
10321+ a = 1
10322+end subroutine aa
10323+! { dg-final { cleanup-modules "mm" } }
10324Index: gcc/testsuite/gfortran.dg/function_optimize_12.f90
10325===================================================================
10326--- gcc/testsuite/gfortran.dg/function_optimize_12.f90 (.../tags/gcc_4_7_0_release) (wersja 0)
10327+++ gcc/testsuite/gfortran.dg/function_optimize_12.f90 (.../branches/gcc-4_7-branch) (wersja 187906)
10328@@ -0,0 +1,12 @@
10329+! { dg-do run }
10330+! { dg-options "-ffrontend-optimize" }
10331+! PR 53148 - this used to cause wrong code because the label was
10332+! placed after the statement assigning the new variables.
10333+program main
10334+ integer :: n
10335+ double precision x
10336+ n = 3
10337+ goto 100
10338+100 x = dble(n) + dble(n)
10339+ if (x /= 6.d0) call abort
10340+end program main
10341Index: gcc/testsuite/gfortran.dg/constructor_8.f90
10342===================================================================
10343--- gcc/testsuite/gfortran.dg/constructor_8.f90 (.../tags/gcc_4_7_0_release) (wersja 0)
10344+++ gcc/testsuite/gfortran.dg/constructor_8.f90 (.../branches/gcc-4_7-branch) (wersja 187906)
10345@@ -0,0 +1,22 @@
10346+! { dg-do compile }
10347+! { dg-options "-std=f95" }
10348+!
10349+! PR fortran/53111
10350+!
10351+! Contributed by Jacob Middag, reduced by Janus Weil.
10352+!
10353+
10354+module a
10355+ type :: my
10356+ real :: x
10357+ end type
10358+end module
10359+
10360+module b
10361+ use a
10362+end module
10363+
10364+program test
10365+ use a
10366+ use b
10367+end program
10368Index: gcc/testsuite/gfortran.dg/pointer_intent_6.f90
10369===================================================================
10370--- gcc/testsuite/gfortran.dg/pointer_intent_6.f90 (.../tags/gcc_4_7_0_release) (wersja 0)
10371+++ gcc/testsuite/gfortran.dg/pointer_intent_6.f90 (.../branches/gcc-4_7-branch) (wersja 187906)
10372@@ -0,0 +1,19 @@
10373+! { dg-do compile }
10374+!
10375+! PR fortran/52864
10376+!
10377+! Assigning to an intent(in) pointer (which is valid).
10378+!
10379+ program test
10380+ type PoisFFT_Solver3D
10381+ complex, dimension(:,:,:), &
10382+ pointer :: work => null()
10383+ end type PoisFFT_Solver3D
10384+ contains
10385+ subroutine PoisFFT_Solver3D_FullPeriodic(D, p)
10386+ type(PoisFFT_Solver3D), intent(in) :: D
10387+ real, intent(in), pointer :: p(:)
10388+ D%work(i,j,k) = 0.0
10389+ p = 0.0
10390+ end subroutine
10391+ end
10392Index: gcc/testsuite/gfortran.dg/pr52835.f90
10393===================================================================
10394--- gcc/testsuite/gfortran.dg/pr52835.f90 (.../tags/gcc_4_7_0_release) (wersja 0)
10395+++ gcc/testsuite/gfortran.dg/pr52835.f90 (.../branches/gcc-4_7-branch) (wersja 187906)
10396@@ -0,0 +1,16 @@
10397+! PR tree-optimization/52835
10398+! { dg-do compile }
10399+! { dg-options "-O3 -fdump-tree-optimized" }
10400+
10401+subroutine foo (x, y, z, n)
10402+ integer :: n, i
10403+ real :: x(n), y(n), z(n)
10404+ do i = 1, n
10405+ z(i) = 0.0
10406+ y(i) = 0.0
10407+ call bar (y(i), z(i), x(i))
10408+ end do
10409+end subroutine
10410+
10411+! { dg-final { scan-tree-dump "bar " "optimized" } }
10412+! { dg-final { cleanup-tree-dump "optimized" } }
10413Index: gcc/testsuite/gfortran.dg/realloc_on_assign_15.f90
10414===================================================================
10415--- gcc/testsuite/gfortran.dg/realloc_on_assign_15.f90 (.../tags/gcc_4_7_0_release) (wersja 0)
10416+++ gcc/testsuite/gfortran.dg/realloc_on_assign_15.f90 (.../branches/gcc-4_7-branch) (wersja 187906)
10417@@ -0,0 +1,40 @@
10418+! { dg-do run }
10419+!
10420+! PR fortran/53389
10421+!
10422+! The program was leaking memory before due to
10423+! realloc on assignment and nested functions.
10424+!
10425+module foo
10426+ implicit none
10427+ contains
10428+
10429+ function filler(array, val)
10430+ real, dimension(:), intent(in):: array
10431+ real, dimension(size(array)):: filler
10432+ real, intent(in):: val
10433+
10434+ filler=val
10435+
10436+ end function filler
10437+end module
10438+
10439+program test
10440+ use foo
10441+ implicit none
10442+
10443+ real, dimension(:), allocatable:: x, y
10444+ integer, parameter:: N=1000 !*1000
10445+ integer:: i
10446+
10447+! allocate( x(N) )
10448+ allocate( y(N) )
10449+ y=0.0
10450+
10451+ do i=1, N
10452+! print *,i
10453+ x=filler(filler(y, real(2*i)), real(i))
10454+ y=y+x
10455+ end do
10456+
10457+end program test
10458Index: gcc/testsuite/gfortran.dg/bessel_7.f90
10459===================================================================
10460--- gcc/testsuite/gfortran.dg/bessel_7.f90 (.../tags/gcc_4_7_0_release) (wersja 187906)
10461+++ gcc/testsuite/gfortran.dg/bessel_7.f90 (.../branches/gcc-4_7-branch) (wersja 187906)
10462@@ -16,7 +16,7 @@
10463 implicit none
10464 real,parameter :: values(*) = [0.0, 0.5, 1.0, 0.9, 1.8,2.0,3.0,4.0,4.25,8.0,34.53, 475.78]
10465 real,parameter :: myeps(size(values)) = epsilon(0.0) &
10466- * [2, 3, 4, 5, 8, 2, 12, 6, 7, 6, 31, 168 ]
10467+ * [2, 3, 4, 5, 8, 2, 12, 6, 7, 6, 36, 168 ]
10468 ! The following is sufficient for me - the values above are a bit
10469 ! more tolerant
10470 ! * [0, 0, 0, 3, 3, 0, 9, 0, 2, 1, 22, 130 ]
10471Index: gcc/testsuite/gfortran.dg/vect/pr52580.f
10472===================================================================
10473--- gcc/testsuite/gfortran.dg/vect/pr52580.f (.../tags/gcc_4_7_0_release) (wersja 0)
10474+++ gcc/testsuite/gfortran.dg/vect/pr52580.f (.../branches/gcc-4_7-branch) (wersja 187906)
10475@@ -0,0 +1,33 @@
10476+! { dg-do compile }
10477+! { dg-require-effective-target vect_double }
10478+ SUBROUTINE CALC2
10479+ IMPLICIT REAL*8 (A-H, O-Z)
10480+ PARAMETER (N1=1335, N2=1335)
10481+
10482+ COMMON U(N1,N2), V(N1,N2), P(N1,N2),
10483+ * UNEW(N1,N2), VNEW(N1,N2),
10484+ 1 PNEW(N1,N2), UOLD(N1,N2),
10485+ * VOLD(N1,N2), POLD(N1,N2),
10486+ 2 CU(N1,N2), CV(N1,N2),
10487+ * Z(N1,N2), H(N1,N2), PSI(N1,N2)
10488+ COMMON /CONS/ DT,TDT,DX,DY,A,ALPHA,ITMAX,MPRINT,M,N,MP1,
10489+ 1 NP1,EL,PI,TPI,DI,DJ,PCF
10490+ TDTS8 = TDT/8.D0
10491+ TDTSDX = TDT/DX
10492+ TDTSDY = TDT/DY
10493+
10494+ DO 200 J=1,N
10495+ DO 200 I=1,M
10496+ UNEW(I+1,J) = UOLD(I+1,J)+
10497+ 1 TDTS8*(Z(I+1,J+1)+Z(I+1,J))*(CV(I+1,J+1)+CV(I,J+1)+CV(I,J)
10498+ 2 +CV(I+1,J))-TDTSDX*(H(I+1,J)-H(I,J))
10499+ VNEW(I,J+1) = VOLD(I,J+1)-TDTS8*(Z(I+1,J+1)+Z(I,J+1))
10500+ 1 *(CU(I+1,J+1)+CU(I,J+1)+CU(I,J)+CU(I+1,J))
10501+ 2 -TDTSDY*(H(I,J+1)-H(I,J))
10502+ PNEW(I,J) = POLD(I,J)-TDTSDX*(CU(I+1,J)-CU(I,J))
10503+ 1 -TDTSDY*(CV(I,J+1)-CV(I,J))
10504+ 200 CONTINUE
10505+ RETURN
10506+ END
10507+! { dg-final { scan-tree-dump-times "LOOP VECTORIZED" 1 "vect" } }
10508+! { dg-final { cleanup-tree-dump "vect" } }
10509Index: gcc/testsuite/gcc.c-torture/execute/pr53160.c
10510===================================================================
10511--- gcc/testsuite/gcc.c-torture/execute/pr53160.c (.../tags/gcc_4_7_0_release) (wersja 0)
10512+++ gcc/testsuite/gcc.c-torture/execute/pr53160.c (.../branches/gcc-4_7-branch) (wersja 187906)
10513@@ -0,0 +1,35 @@
10514+/* PR rtl-optimization/53160 */
10515+
10516+extern void abort (void);
10517+
10518+int a, c = 1, d, e, g;
10519+volatile int b;
10520+volatile char f;
10521+long h;
10522+short i;
10523+
10524+void
10525+foo (void)
10526+{
10527+ for (e = 0; e; ++e)
10528+ ;
10529+}
10530+
10531+int
10532+main ()
10533+{
10534+ if (g)
10535+ (void) b;
10536+ foo ();
10537+ for (d = 0; d >= 0; d--)
10538+ {
10539+ short j = f;
10540+ int k = 0;
10541+ i = j ? j : j << k;
10542+ }
10543+ h = c == 0 ? 0 : i;
10544+ a = h;
10545+ if (a != 0)
10546+ abort ();
10547+ return 0;
10548+}
10549Index: gcc/testsuite/gcc.c-torture/execute/pr53084.c
10550===================================================================
10551--- gcc/testsuite/gcc.c-torture/execute/pr53084.c (.../tags/gcc_4_7_0_release) (wersja 0)
10552+++ gcc/testsuite/gcc.c-torture/execute/pr53084.c (.../branches/gcc-4_7-branch) (wersja 187906)
10553@@ -0,0 +1,18 @@
10554+/* PR middle-end/53084 */
10555+
10556+extern void abort (void);
10557+
10558+__attribute__((noinline, noclone)) void
10559+bar (const char *p)
10560+{
10561+ if (p[0] != 'o' || p[1] != 'o' || p[2])
10562+ abort ();
10563+}
10564+
10565+int
10566+main ()
10567+{
10568+ static const char *const foo[] = {"foo" + 1};
10569+ bar (foo[0]);
10570+ return 0;
10571+}
10572Index: gcc/testsuite/gcc.c-torture/execute/20120427-1.c
10573===================================================================
10574--- gcc/testsuite/gcc.c-torture/execute/20120427-1.c (.../tags/gcc_4_7_0_release) (wersja 0)
10575+++ gcc/testsuite/gcc.c-torture/execute/20120427-1.c (.../branches/gcc-4_7-branch) (wersja 187906)
10576@@ -0,0 +1,36 @@
10577+typedef struct sreal
10578+{
10579+ unsigned sig; /* Significant. */
10580+ int exp; /* Exponent. */
10581+} sreal;
10582+
10583+sreal_compare (sreal *a, sreal *b)
10584+{
10585+ if (a->exp > b->exp)
10586+ return 1;
10587+ if (a->exp < b->exp)
10588+ return -1;
10589+ if (a->sig > b->sig)
10590+ return 1;
10591+ return -(a->sig < b->sig);
10592+}
10593+
10594+sreal a[] = {
10595+ { 0, 0 },
10596+ { 1, 0 },
10597+ { 0, 1 },
10598+ { 1, 1 }
10599+};
10600+
10601+int main()
10602+{
10603+ int i, j;
10604+ for (i = 0; i <= 3; i++) {
10605+ for (j = 0; j < 3; j++) {
10606+ if (i < j && sreal_compare(&a[i], &a[j]) != -1) abort();
10607+ if (i == j && sreal_compare(&a[i], &a[j]) != 0) abort();
10608+ if (i > j && sreal_compare(&a[i], &a[j]) != 1) abort();
10609+ }
10610+ }
10611+ return 0;
10612+}
10613Index: gcc/testsuite/gcc.c-torture/execute/pr53465.c
10614===================================================================
10615--- gcc/testsuite/gcc.c-torture/execute/pr53465.c (.../tags/gcc_4_7_0_release) (wersja 0)
10616+++ gcc/testsuite/gcc.c-torture/execute/pr53465.c (.../branches/gcc-4_7-branch) (wersja 187906)
10617@@ -0,0 +1,30 @@
10618+/* PR tree-optimization/53465 */
10619+
10620+extern void abort ();
10621+
10622+static const int a[] = { 1, 2 };
10623+
10624+void
10625+foo (const int *x, int y)
10626+{
10627+ int i;
10628+ int b = 0;
10629+ int c;
10630+ for (i = 0; i < y; i++)
10631+ {
10632+ int d = x[i];
10633+ if (d == 0)
10634+ break;
10635+ if (b && d <= c)
10636+ abort ();
10637+ c = d;
10638+ b = 1;
10639+ }
10640+}
10641+
10642+int
10643+main ()
10644+{
10645+ foo (a, 2);
10646+ return 0;
10647+}
10648Index: gcc/testsuite/gcc.c-torture/compile/pr52891-1.c
10649===================================================================
10650--- gcc/testsuite/gcc.c-torture/compile/pr52891-1.c (.../tags/gcc_4_7_0_release) (wersja 0)
10651+++ gcc/testsuite/gcc.c-torture/compile/pr52891-1.c (.../branches/gcc-4_7-branch) (wersja 187906)
10652@@ -0,0 +1,20 @@
10653+/* PR tree-optimizations/52891 */
10654+
10655+struct S
10656+{
10657+ int a;
10658+ struct T { unsigned c : 10; } b;
10659+} s;
10660+
10661+void
10662+bar (short x, short y, int **p)
10663+{
10664+ if ((x && y) + **p)
10665+ while (1);
10666+}
10667+
10668+void
10669+foo (int **p)
10670+{
10671+ bar (s.a, s.b.c, p);
10672+}
10673Index: gcc/testsuite/gcc.c-torture/compile/pr53418-1.c
10674===================================================================
10675--- gcc/testsuite/gcc.c-torture/compile/pr53418-1.c (.../tags/gcc_4_7_0_release) (wersja 0)
10676+++ gcc/testsuite/gcc.c-torture/compile/pr53418-1.c (.../branches/gcc-4_7-branch) (wersja 187906)
10677@@ -0,0 +1,5 @@
10678+void
10679+f (void)
10680+{
10681+ int i = (0 ? 1 : 0U / 0);
10682+}
10683Index: gcc/testsuite/gcc.c-torture/compile/pr53410-2.c
10684===================================================================
10685--- gcc/testsuite/gcc.c-torture/compile/pr53410-2.c (.../tags/gcc_4_7_0_release) (wersja 0)
10686+++ gcc/testsuite/gcc.c-torture/compile/pr53410-2.c (.../branches/gcc-4_7-branch) (wersja 187906)
10687@@ -0,0 +1,64 @@
10688+/* PR tree-optimization/53410 */
10689+
10690+typedef int V __attribute__((vector_size (4 * sizeof (int))));
10691+typedef unsigned int W __attribute__((vector_size (4 * sizeof (int))));
10692+
10693+void
10694+f1 (V *p)
10695+{
10696+ *p = (*p & ((V) { 1, 1, 1, 1 })) ^ ((V) { 1, 1, 1, 1});
10697+}
10698+
10699+void
10700+f2 (V *p)
10701+{
10702+ *p = (*p ^ ((V) { 1, 1, 1, 1 })) & ((V) { 1, 1, 1, 1});
10703+}
10704+
10705+void
10706+f3 (V *p)
10707+{
10708+ *p = (~*p) & ((V) { 1, 1, 1, 1 });
10709+}
10710+
10711+void
10712+f4 (V *p, V *q)
10713+{
10714+ *p = (*p ^ *q) == *q;
10715+}
10716+
10717+void
10718+f5 (V *p, V *q)
10719+{
10720+ *p = (*p ^ *q) == *p;
10721+}
10722+
10723+void
10724+f6 (V *p, V *q, V *r)
10725+{
10726+ *p = (*p & *r) == (*q & *r);
10727+}
10728+
10729+void
10730+f7 (V *p, V *q, V *r)
10731+{
10732+ *p = (*p & *r) == (*r & *q);
10733+}
10734+
10735+void
10736+f8 (V *p, V *q, V *r)
10737+{
10738+ *p = (*r & *p) == (*q & *r);
10739+}
10740+
10741+void
10742+f9 (V *p, V *q, V *r)
10743+{
10744+ *p = (*r & *p) == (*r & *q);
10745+}
10746+
10747+void
10748+f10 (W *p, W *q)
10749+{
10750+ *p = *p < (((const W) { 1U, 1U, 1U, 1U }) << *q);
10751+}
10752Index: gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c
10753===================================================================
10754--- gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c (.../tags/gcc_4_7_0_release) (wersja 0)
10755+++ gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c (.../branches/gcc-4_7-branch) (wersja 187906)
10756@@ -0,0 +1,56 @@
10757+/* Inspired by the test case for PR middle-end/52640. */
10758+
10759+typedef struct
10760+{
10761+ char *value;
10762+} REFERENCE;
10763+
10764+/* Add a few "extern int Xxxxxx ();" declarations. */
10765+#undef DEF
10766+#undef LIM1
10767+#undef LIM2
10768+#undef LIM3
10769+#undef LIM4
10770+#undef LIM5
10771+#undef LIM6
10772+#define DEF(x) extern int x ()
10773+#define LIM1(x) DEF(x##0); DEF(x##1); DEF(x##2); DEF(x##3); DEF(x##4); \
10774+ DEF(x##5); DEF(x##6); DEF(x##7); DEF(x##8); DEF(x##9);
10775+#define LIM2(x) LIM1(x##0) LIM1(x##1) LIM1(x##2) LIM1(x##3) LIM1(x##4) \
10776+ LIM1(x##5) LIM1(x##6) LIM1(x##7) LIM1(x##8) LIM1(x##9)
10777+#define LIM3(x) LIM2(x##0) LIM2(x##1) LIM2(x##2) LIM2(x##3) LIM2(x##4) \
10778+ LIM2(x##5) LIM2(x##6) LIM2(x##7) LIM2(x##8) LIM2(x##9)
10779+#define LIM4(x) LIM3(x##0) LIM3(x##1) LIM3(x##2) LIM3(x##3) LIM3(x##4) \
10780+ LIM3(x##5) LIM3(x##6) LIM3(x##7) LIM3(x##8) LIM3(x##9)
10781+#define LIM5(x) LIM4(x##0) LIM4(x##1) LIM4(x##2) LIM4(x##3) LIM4(x##4) \
10782+ LIM4(x##5) LIM4(x##6) LIM4(x##7) LIM4(x##8) LIM4(x##9)
10783+#define LIM6(x) LIM5(x##0) LIM5(x##1) LIM5(x##2) LIM5(x##3) LIM5(x##4) \
10784+ LIM5(x##5) LIM5(x##6) LIM5(x##7) LIM5(x##8) LIM5(x##9)
10785+LIM5 (X);
10786+
10787+/* Add references to them, or GCC will simply ignore the extern decls. */
10788+#undef DEF
10789+#undef LIM1
10790+#undef LIM2
10791+#undef LIM3
10792+#undef LIM4
10793+#undef LIM5
10794+#undef LIM6
10795+#define DEF(x) (char *) x
10796+#define LIM1(x) DEF(x##0), DEF(x##1), DEF(x##2), DEF(x##3), DEF(x##4), \
10797+ DEF(x##5), DEF(x##6), DEF(x##7), DEF(x##8), DEF(x##9),
10798+#define LIM2(x) LIM1(x##0) LIM1(x##1) LIM1(x##2) LIM1(x##3) LIM1(x##4) \
10799+ LIM1(x##5) LIM1(x##6) LIM1(x##7) LIM1(x##8) LIM1(x##9)
10800+#define LIM3(x) LIM2(x##0) LIM2(x##1) LIM2(x##2) LIM2(x##3) LIM2(x##4) \
10801+ LIM2(x##5) LIM2(x##6) LIM2(x##7) LIM2(x##8) LIM2(x##9)
10802+#define LIM4(x) LIM3(x##0) LIM3(x##1) LIM3(x##2) LIM3(x##3) LIM3(x##4) \
10803+ LIM3(x##5) LIM3(x##6) LIM3(x##7) LIM3(x##8) LIM3(x##9)
10804+#define LIM5(x) LIM4(x##0) LIM4(x##1) LIM4(x##2) LIM4(x##3) LIM4(x##4) \
10805+ LIM4(x##5) LIM4(x##6) LIM4(x##7) LIM4(x##8) LIM4(x##9)
10806+#define LIM6(x) LIM5(x##0) LIM5(x##1) LIM5(x##2) LIM5(x##3) LIM5(x##4) \
10807+ LIM5(x##5) LIM5(x##6) LIM5(x##7) LIM5(x##8) LIM5(x##9)
10808+REFERENCE references[] = {
10809+ LIM5 (X)
10810+ 0
10811+};
10812+
10813Index: gcc/testsuite/gcc.c-torture/compile/pr53163.c
10814===================================================================
10815--- gcc/testsuite/gcc.c-torture/compile/pr53163.c (.../tags/gcc_4_7_0_release) (wersja 0)
10816+++ gcc/testsuite/gcc.c-torture/compile/pr53163.c (.../branches/gcc-4_7-branch) (wersja 187906)
10817@@ -0,0 +1,34 @@
10818+/* PR tree-optimization/53163 */
10819+
10820+struct S { int s; } b, f;
10821+int a, c;
10822+
10823+void
10824+foo (void)
10825+{
10826+ int d, e;
10827+ for (d = 4; d < 19; ++d)
10828+ for (e = 2; e >= 0; e--)
10829+ {
10830+ a = 0;
10831+ a = 1;
10832+ }
10833+}
10834+
10835+void
10836+bar (void)
10837+{
10838+ int g, h, i;
10839+ for (i = 1; i >= 0; i--)
10840+ {
10841+ b = f;
10842+ for (g = 0; g <= 1; g++)
10843+ {
10844+ if (c)
10845+ break;
10846+ for (h = 0; h <= 1; h++)
10847+ foo ();
10848+ foo ();
10849+ }
10850+ }
10851+}
10852Index: gcc/testsuite/gcc.c-torture/compile/pr52891-2.c
10853===================================================================
10854--- gcc/testsuite/gcc.c-torture/compile/pr52891-2.c (.../tags/gcc_4_7_0_release) (wersja 0)
10855+++ gcc/testsuite/gcc.c-torture/compile/pr52891-2.c (.../branches/gcc-4_7-branch) (wersja 187906)
10856@@ -0,0 +1,16 @@
10857+/* PR tree-optimizations/52891 */
10858+
10859+#if __SIZEOF_INT__ > 2
10860+struct __attribute__((packed)) S { unsigned s : 22; };
10861+#else
10862+struct __attribute__((packed)) S { unsigned s : 12; };
10863+#endif
10864+struct __attribute__((packed)) T { struct S t; } c;
10865+int a, b, d;
10866+
10867+void
10868+foo (void)
10869+{
10870+ if (1 ? (!c.t.s & (d < 0)) < a : 0)
10871+ b = 0;
10872+}
10873Index: gcc/testsuite/gcc.c-torture/compile/pr53410-1.c
10874===================================================================
10875--- gcc/testsuite/gcc.c-torture/compile/pr53410-1.c (.../tags/gcc_4_7_0_release) (wersja 0)
10876+++ gcc/testsuite/gcc.c-torture/compile/pr53410-1.c (.../branches/gcc-4_7-branch) (wersja 187906)
10877@@ -0,0 +1,10 @@
10878+/* PR tree-optimization/53410 */
10879+
10880+int *a, b, c, d;
10881+
10882+void
10883+foo (void)
10884+{
10885+ for (; d <= 0; d++)
10886+ b &= ((a || d) ^ c) == 1;
10887+}
10888Index: gcc/testsuite/gcc.c-torture/compile/pr53418-2.c
10889===================================================================
10890--- gcc/testsuite/gcc.c-torture/compile/pr53418-2.c (.../tags/gcc_4_7_0_release) (wersja 0)
10891+++ gcc/testsuite/gcc.c-torture/compile/pr53418-2.c (.../branches/gcc-4_7-branch) (wersja 187906)
10892@@ -0,0 +1,5 @@
10893+void
10894+f (void)
10895+{
10896+ int i = (1 ? 0U / 0 : 1);
10897+}
10898Index: gcc/testsuite/gcc.c-torture/compile/pr53409.c
10899===================================================================
10900--- gcc/testsuite/gcc.c-torture/compile/pr53409.c (.../tags/gcc_4_7_0_release) (wersja 0)
10901+++ gcc/testsuite/gcc.c-torture/compile/pr53409.c (.../branches/gcc-4_7-branch) (wersja 187906)
10902@@ -0,0 +1,19 @@
10903+/* PR tree-optimization/53409 */
10904+
10905+int a, c, d, e, f;
10906+int b[0];
10907+
10908+int
10909+main ()
10910+{
10911+ if (f)
10912+ e = 0;
10913+ int g = d;
10914+ for (c = 0; c <= 1; c++)
10915+ {
10916+ for (a = 0; a <= 1; a = (char) a + 1)
10917+ b[c] = g;
10918+ a = 0;
10919+ }
10920+ return 0;
10921+}
10922Index: gcc/testsuite/gcc.c-torture/compile/pr52750.c
10923===================================================================
10924--- gcc/testsuite/gcc.c-torture/compile/pr52750.c (.../tags/gcc_4_7_0_release) (wersja 0)
10925+++ gcc/testsuite/gcc.c-torture/compile/pr52750.c (.../branches/gcc-4_7-branch) (wersja 187906)
10926@@ -0,0 +1,11 @@
10927+/* PR middle-end/52750 */
10928+
10929+typedef signed char V __attribute__((vector_size (32)));
10930+
10931+void
10932+foo (V *x)
10933+{
10934+ V m = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
10935+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31};
10936+ *x = __builtin_shuffle (*x, m);
10937+}
10938Index: gcc/testsuite/gcc.c-torture/compile/pr53187.c
10939===================================================================
10940--- gcc/testsuite/gcc.c-torture/compile/pr53187.c (.../tags/gcc_4_7_0_release) (wersja 0)
10941+++ gcc/testsuite/gcc.c-torture/compile/pr53187.c (.../branches/gcc-4_7-branch) (wersja 187906)
10942@@ -0,0 +1,11 @@
10943+/* PR target/53187 */
10944+
10945+void bar (int);
10946+
10947+void
10948+foo (int x, double y, double z)
10949+{
10950+ _Bool t = z >= y;
10951+ if (!t || x)
10952+ bar (t ? 1 : 16);
10953+}
10954Index: gcc/testsuite/gnat.dg/null_pointer_deref3.adb
10955===================================================================
10956--- gcc/testsuite/gnat.dg/null_pointer_deref3.adb (.../tags/gcc_4_7_0_release) (wersja 0)
10957+++ gcc/testsuite/gnat.dg/null_pointer_deref3.adb (.../branches/gcc-4_7-branch) (wersja 187906)
10958@@ -0,0 +1,24 @@
10959+-- { dg-do run }
10960+-- { dg-options "-O -gnatp" }
10961+
10962+-- This test requires architecture- and OS-specific support code for unwinding
10963+-- through signal frames (typically located in *-unwind.h) to pass. Feel free
10964+-- to disable it if this code hasn't been implemented yet.
10965+
10966+procedure Null_Pointer_Deref3 is
10967+
10968+ procedure Leaf is
10969+ type Int_Ptr is access all Integer;
10970+ function n return Int_Ptr is
10971+ begin return null; end;
10972+
10973+ Data : Int_Ptr := n;
10974+ begin
10975+ Data.all := 0;
10976+ end;
10977+
10978+begin
10979+ Leaf;
10980+exception
10981+ when others => null;
10982+end;
10983Index: gcc/testsuite/gnat.dg/lto11.adb
10984===================================================================
10985--- gcc/testsuite/gnat.dg/lto11.adb (.../tags/gcc_4_7_0_release) (wersja 0)
10986+++ gcc/testsuite/gnat.dg/lto11.adb (.../branches/gcc-4_7-branch) (wersja 187906)
10987@@ -0,0 +1,20 @@
10988+-- { dg-do compile }
10989+-- { dg-options "-flto" { target lto } }
10990+
10991+with Ada.Streams; use Ada.Streams;
10992+
10993+package body Lto11 is
10994+
10995+ procedure Write
10996+ (S : not null access Root_Stream_Type'Class;
10997+ V : Vector)
10998+ is
10999+ subtype M_SEA is Stream_Element_Array (1 .. V'Size / Stream_Element'Size);
11000+ Bytes : M_SEA;
11001+ for Bytes'Address use V'Address;
11002+ pragma Import (Ada, Bytes);
11003+ begin
11004+ Ada.Streams.Write (S.all, Bytes);
11005+ end;
11006+
11007+end Lto11;
11008Index: gcc/testsuite/gnat.dg/lto11.ads
11009===================================================================
11010--- gcc/testsuite/gnat.dg/lto11.ads (.../tags/gcc_4_7_0_release) (wersja 0)
11011+++ gcc/testsuite/gnat.dg/lto11.ads (.../branches/gcc-4_7-branch) (wersja 187906)
11012@@ -0,0 +1,9 @@
11013+with Ada.Streams; use Ada.Streams;
11014+
11015+package Lto11 is
11016+
11017+ type Vector is array (Positive range <>) of Float;
11018+
11019+ procedure Write (S : not null access Root_Stream_Type'Class; V : Vector);
11020+
11021+end Lto11;
11022Index: gcc/testsuite/gnat.dg/controlled6.adb
11023===================================================================
11024--- gcc/testsuite/gnat.dg/controlled6.adb (.../tags/gcc_4_7_0_release) (wersja 0)
11025+++ gcc/testsuite/gnat.dg/controlled6.adb (.../branches/gcc-4_7-branch) (wersja 187906)
11026@@ -0,0 +1,24 @@
11027+-- { dg-do compile }
11028+-- { dg-options "-O -gnatn" }
11029+
11030+with Ada.Text_IO; use Ada.Text_IO;
11031+with Controlled6_Pkg;
11032+with Controlled6_Pkg.Iterators;
11033+
11034+procedure Controlled6 is
11035+
11036+ type String_Access is access String;
11037+
11038+ package My_Q is new Controlled6_Pkg (String_Access);
11039+ package My_Iterators is new My_Q.Iterators (0);
11040+ use My_Iterators;
11041+
11042+ Iterator : Iterator_Type := Find;
11043+
11044+begin
11045+ loop
11046+ exit when Is_Null (Iterator);
11047+ Put (Current (Iterator).all & ' ');
11048+ Find_Next (Iterator);
11049+ end loop;
11050+end;
11051Index: gcc/testsuite/gnat.dg/concat2.adb
11052===================================================================
11053--- gcc/testsuite/gnat.dg/concat2.adb (.../tags/gcc_4_7_0_release) (wersja 0)
11054+++ gcc/testsuite/gnat.dg/concat2.adb (.../branches/gcc-4_7-branch) (wersja 187906)
11055@@ -0,0 +1,18 @@
11056+with Text_IO; use Text_IO;
11057+
11058+package body Concat2 is
11059+
11060+ function Get_Param return String is
11061+ begin
11062+ return "";
11063+ end;
11064+
11065+ procedure Browse is
11066+ Mode : constant String := Get_Param;
11067+ Mode_Param : constant String := "MODE=" & Mode;
11068+ begin
11069+ Put_Line (Mode_Param);
11070+ end;
11071+
11072+end Concat2;
11073+
11074Index: gcc/testsuite/gnat.dg/controlled6_pkg-iterators.adb
11075===================================================================
11076--- gcc/testsuite/gnat.dg/controlled6_pkg-iterators.adb (.../tags/gcc_4_7_0_release) (wersja 0)
11077+++ gcc/testsuite/gnat.dg/controlled6_pkg-iterators.adb (.../branches/gcc-4_7-branch) (wersja 187906)
11078@@ -0,0 +1,21 @@
11079+package body Controlled6_Pkg.Iterators is
11080+
11081+ function Find return Iterator_Type is
11082+ Iterator : Iterator_Type;
11083+ begin
11084+ return Iterator;
11085+ end Find;
11086+
11087+ function Current (Iterator : in Iterator_Type) return T is begin
11088+ return Iterator.Current.Item;
11089+ end Current;
11090+
11091+ procedure Find_Next (Iterator : in out Iterator_Type) is begin
11092+ Iterator.Current := null;
11093+ end Find_Next;
11094+
11095+ function Is_Null (Iterator : in Iterator_Type) return Boolean is begin
11096+ return Iterator.Current = null;
11097+ end Is_Null;
11098+
11099+end Controlled6_Pkg.Iterators;
11100Index: gcc/testsuite/gnat.dg/concat2.ads
11101===================================================================
11102--- gcc/testsuite/gnat.dg/concat2.ads (.../tags/gcc_4_7_0_release) (wersja 0)
11103+++ gcc/testsuite/gnat.dg/concat2.ads (.../branches/gcc-4_7-branch) (wersja 187906)
11104@@ -0,0 +1,8 @@
11105+-- { dg-do compile }
11106+-- { dg-options "-O" }
11107+
11108+package Concat2 is
11109+
11110+ procedure Browse;
11111+
11112+end Concat2;
11113Index: gcc/testsuite/gnat.dg/controlled6_pkg-iterators.ads
11114===================================================================
11115--- gcc/testsuite/gnat.dg/controlled6_pkg-iterators.ads (.../tags/gcc_4_7_0_release) (wersja 0)
11116+++ gcc/testsuite/gnat.dg/controlled6_pkg-iterators.ads (.../branches/gcc-4_7-branch) (wersja 187906)
11117@@ -0,0 +1,22 @@
11118+with Ada.Finalization;
11119+
11120+generic
11121+
11122+ I : Integer;
11123+
11124+package Controlled6_Pkg.Iterators is
11125+
11126+ type Iterator_Type is new Ada.Finalization.Controlled with record
11127+ Current : Node_Access_Type;
11128+ end record;
11129+
11130+ function Find return Iterator_Type;
11131+
11132+ function Current (Iterator : in Iterator_Type) return T;
11133+ pragma Inline (Current);
11134+
11135+ procedure Find_Next (Iterator : in out Iterator_Type);
11136+
11137+ function Is_Null (Iterator : in Iterator_Type) return Boolean;
11138+
11139+end Controlled6_Pkg.Iterators;
11140Index: gcc/testsuite/gnat.dg/lto13.adb
11141===================================================================
11142--- gcc/testsuite/gnat.dg/lto13.adb (.../tags/gcc_4_7_0_release) (wersja 0)
11143+++ gcc/testsuite/gnat.dg/lto13.adb (.../branches/gcc-4_7-branch) (wersja 187906)
11144@@ -0,0 +1,9 @@
11145+-- { dg-do link }
11146+-- { dg-options "-g -flto" { target lto } }
11147+
11148+with Lto13_Pkg; use Lto13_Pkg;
11149+
11150+procedure Lto13 is
11151+begin
11152+ Proc;
11153+end;
11154Index: gcc/testsuite/gnat.dg/controlled6_pkg.ads
11155===================================================================
11156--- gcc/testsuite/gnat.dg/controlled6_pkg.ads (.../tags/gcc_4_7_0_release) (wersja 0)
11157+++ gcc/testsuite/gnat.dg/controlled6_pkg.ads (.../branches/gcc-4_7-branch) (wersja 187906)
11158@@ -0,0 +1,15 @@
11159+with Ada.Finalization;
11160+
11161+generic
11162+
11163+ type T is private;
11164+
11165+package Controlled6_Pkg is
11166+
11167+ type Node_Type is record
11168+ Item : T;
11169+ end record;
11170+
11171+ type Node_Access_Type is access Node_Type;
11172+
11173+end Controlled6_Pkg;
11174Index: gcc/testsuite/gnat.dg/lto14.adb
11175===================================================================
11176--- gcc/testsuite/gnat.dg/lto14.adb (.../tags/gcc_4_7_0_release) (wersja 0)
11177+++ gcc/testsuite/gnat.dg/lto14.adb (.../branches/gcc-4_7-branch) (wersja 187906)
11178@@ -0,0 +1,7 @@
11179+-- { dg-do link }
11180+-- { dg-options "-largs -f -margs -flto" { target lto } }
11181+
11182+procedure Lto14 is
11183+begin
11184+ null;
11185+end;
11186Index: gcc/testsuite/gnat.dg/lto13_pkg.adb
11187===================================================================
11188--- gcc/testsuite/gnat.dg/lto13_pkg.adb (.../tags/gcc_4_7_0_release) (wersja 0)
11189+++ gcc/testsuite/gnat.dg/lto13_pkg.adb (.../branches/gcc-4_7-branch) (wersja 187906)
11190@@ -0,0 +1,10 @@
11191+package body Lto13_Pkg is
11192+
11193+ procedure Proc is
11194+ begin
11195+ raise Constraint_Error;
11196+ end;
11197+
11198+ type T is null record;
11199+
11200+end Lto13_Pkg;
11201Index: gcc/testsuite/gnat.dg/lto13_pkg.ads
11202===================================================================
11203--- gcc/testsuite/gnat.dg/lto13_pkg.ads (.../tags/gcc_4_7_0_release) (wersja 0)
11204+++ gcc/testsuite/gnat.dg/lto13_pkg.ads (.../branches/gcc-4_7-branch) (wersja 187906)
11205@@ -0,0 +1,9 @@
11206+package Lto13_Pkg is
11207+
11208+ procedure Proc;
11209+
11210+private
11211+
11212+ type T;
11213+
11214+end Lto13_Pkg;
11215Index: gcc/testsuite/gnat.dg/specs/lto12_pkg.ads
11216===================================================================
11217--- gcc/testsuite/gnat.dg/specs/lto12_pkg.ads (.../tags/gcc_4_7_0_release) (wersja 0)
11218+++ gcc/testsuite/gnat.dg/specs/lto12_pkg.ads (.../branches/gcc-4_7-branch) (wersja 187906)
11219@@ -0,0 +1,14 @@
11220+-- { dg-excess-errors "cannot generate code" }
11221+
11222+package Lto12_Pkg is
11223+
11224+ type R (Kind : Boolean := False) is record
11225+ case Kind is
11226+ when True => I : Integer;
11227+ when others => null;
11228+ end case;
11229+ end record;
11230+
11231+ function F return R;
11232+
11233+end Lto12_Pkg;
11234Index: gcc/testsuite/gnat.dg/specs/lto12.ads
11235===================================================================
11236--- gcc/testsuite/gnat.dg/specs/lto12.ads (.../tags/gcc_4_7_0_release) (wersja 0)
11237+++ gcc/testsuite/gnat.dg/specs/lto12.ads (.../branches/gcc-4_7-branch) (wersja 187906)
11238@@ -0,0 +1,10 @@
11239+-- { dg-do compile }
11240+-- { dg-options "-flto" { target lto } }
11241+
11242+with Lto12_Pkg; use Lto12_Pkg;
11243+
11244+package Lto12 is
11245+
11246+ C : constant R := F;
11247+
11248+end Lto12;
11249Index: gcc/testsuite/gcc.dg/pr49994-3.c
11250===================================================================
11251--- gcc/testsuite/gcc.dg/pr49994-3.c (.../tags/gcc_4_7_0_release) (wersja 187906)
11252+++ gcc/testsuite/gcc.dg/pr49994-3.c (.../branches/gcc-4_7-branch) (wersja 187906)
11253@@ -1,8 +1,7 @@
11254 /* { dg-do compile } */
11255-/* { dg-options "-O2 -fsched2-use-superblocks -g" } */
11256+/* { dg-options "-O2 -fsched2-use-superblocks -g -w" } */
11257 /* { dg-options "-O2 -fsched2-use-superblocks -g -mbackchain" { target s390*-*-* } } */
11258 /* { dg-require-effective-target scheduling } */
11259-/* { dg-skip-if "PR testsuite/50722" { ia64-*-*-* hppa*-*-* *-*-hpux* } } */
11260
11261 void *
11262 foo (int offset)
11263Index: gcc/testsuite/gcc.dg/pr52691.c
11264===================================================================
11265--- gcc/testsuite/gcc.dg/pr52691.c (.../tags/gcc_4_7_0_release) (wersja 0)
11266+++ gcc/testsuite/gcc.dg/pr52691.c (.../branches/gcc-4_7-branch) (wersja 187906)
11267@@ -0,0 +1,24 @@
11268+/* PR middle-end/52691 */
11269+/* { dg-do compile } */
11270+/* { dg-options "-O2 -fdump-tree-optimized" } */
11271+
11272+#include <stdarg.h>
11273+
11274+int
11275+foo (int a, ...)
11276+{
11277+ int b = 0, c = 0;
11278+ va_list ap;
11279+ va_start (ap, a);
11280+ if (a > 1)
11281+ b = va_arg (ap, double);
11282+ if (a > 2)
11283+ c = va_arg (ap, long long);
11284+ va_end (ap);
11285+ return a + b + c;
11286+}
11287+
11288+/* { dg-final { scan-tree-dump "__builtin_next_arg" "optimized" { target { { i?86-*-* x86_64-*-* } && ia32 } } } } */
11289+/* { dg-final { scan-tree-dump "__builtin_next_arg" "optimized" { target { powerpc*-*-darwin* powerpc*-*-aix* } } } } */
11290+/* { dg-final { scan-tree-dump "__builtin_next_arg" "optimized" { target { powerpc*-*-linux* && lp64 } } } } */
11291+/* { dg-final { cleanup-tree-dump "optimized" } } */
11292Index: gcc/testsuite/gcc.dg/pr52862.c
11293===================================================================
11294--- gcc/testsuite/gcc.dg/pr52862.c (.../tags/gcc_4_7_0_release) (wersja 0)
11295+++ gcc/testsuite/gcc.dg/pr52862.c (.../branches/gcc-4_7-branch) (wersja 187906)
11296@@ -0,0 +1,9 @@
11297+/* { dg-do compile } */
11298+/* { dg-options "-O" } */
11299+
11300+void ASMAtomicWritePtrVoid(const void *pv);
11301+void rtThreadDestroy(void)
11302+{
11303+ void * const pvTypeChecked = ((void *)0);
11304+ ASMAtomicWritePtrVoid((void *)(pvTypeChecked));
11305+}
11306Index: gcc/testsuite/gcc.dg/pr52880.c
11307===================================================================
11308--- gcc/testsuite/gcc.dg/pr52880.c (.../tags/gcc_4_7_0_release) (wersja 0)
11309+++ gcc/testsuite/gcc.dg/pr52880.c (.../branches/gcc-4_7-branch) (wersja 187906)
11310@@ -0,0 +1,10 @@
11311+/* PR c/52880 */
11312+/* { dg-do compile } */
11313+/* { dg-options "-Woverride-init" } */
11314+
11315+struct A { int a; int b; };
11316+struct B { struct A c; int d, e; };
11317+struct B f = { .c.a = 0, .e = 1, .d = 2, .c.b = 3 };
11318+struct C { int g; int h; };
11319+struct D { int i; struct C j; int k; };
11320+struct D l = { .j.g = 0, .k = 1, .i = 2, .j.h = 3 };
11321Index: gcc/testsuite/gcc.dg/split-6.c
11322===================================================================
11323--- gcc/testsuite/gcc.dg/split-6.c (.../tags/gcc_4_7_0_release) (wersja 0)
11324+++ gcc/testsuite/gcc.dg/split-6.c (.../branches/gcc-4_7-branch) (wersja 187906)
11325@@ -0,0 +1,53 @@
11326+/* { dg-do run } */
11327+/* { dg-require-effective-target split_stack } */
11328+/* { dg-options "-fsplit-stack" } */
11329+
11330+/* This test is like split-3.c, but tests with a smaller stack frame,
11331+ since that uses a different prologue. */
11332+
11333+#include <stdarg.h>
11334+#include <stdlib.h>
11335+
11336+/* Use a noinline function to ensure that the buffer is not removed
11337+ from the stack. */
11338+static void use_buffer (char *buf) __attribute__ ((noinline));
11339+static void
11340+use_buffer (char *buf)
11341+{
11342+ buf[0] = '\0';
11343+}
11344+
11345+/* When using gold, the call to abort will force a stack split. */
11346+
11347+static void
11348+down (int i, ...)
11349+{
11350+ char buf[1];
11351+ va_list ap;
11352+
11353+ va_start (ap, i);
11354+ if (va_arg (ap, int) != 1
11355+ || va_arg (ap, int) != 2
11356+ || va_arg (ap, int) != 3
11357+ || va_arg (ap, int) != 4
11358+ || va_arg (ap, int) != 5
11359+ || va_arg (ap, int) != 6
11360+ || va_arg (ap, int) != 7
11361+ || va_arg (ap, int) != 8
11362+ || va_arg (ap, int) != 9
11363+ || va_arg (ap, int) != 10)
11364+ abort ();
11365+
11366+ if (i > 0)
11367+ {
11368+ use_buffer (buf);
11369+ down (i - 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
11370+ }
11371+}
11372+
11373+int
11374+main (void)
11375+{
11376+ down (1000, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
11377+ return 0;
11378+}
11379Index: gcc/testsuite/gcc.dg/pr53174.c
11380===================================================================
11381--- gcc/testsuite/gcc.dg/pr53174.c (.../tags/gcc_4_7_0_release) (wersja 0)
11382+++ gcc/testsuite/gcc.dg/pr53174.c (.../branches/gcc-4_7-branch) (wersja 187906)
11383@@ -0,0 +1,67 @@
11384+/* PR debug/53174 */
11385+/* { dg-do compile } */
11386+/* { dg-options "-Ofast -g" } */
11387+
11388+int w, h;
11389+
11390+void
11391+bar (float (*x)[4], int y, int z)
11392+{
11393+ int a, b, c, d, e, f, g;
11394+
11395+ a = 2;
11396+ b = 2;
11397+ c = 274;
11398+ d = 274;
11399+ if (!z)
11400+ a = 12;
11401+ if (!y)
11402+ b = 12;
11403+ if (z + 266 >= h - 2)
11404+ c = 8 + h - z;
11405+ if (y + 266 >= w - 2)
11406+ d = 8 + w - y;
11407+ for (e = a; e < c; e++)
11408+ for (f = b, g = e * 276 + f; f < d; f++, g++)
11409+ {
11410+ float (*h)[4] = x + (g - 277);
11411+ float k = (*h)[0];
11412+ float l = (*h)[1];
11413+ float m = (*h)[2];
11414+ h++;
11415+ k += (*h)[0];
11416+ l += (*h)[1];
11417+ m += (*h)[2];
11418+ h++;
11419+ k += (*h)[0];
11420+ l += (*h)[1];
11421+ m += (*h)[2];
11422+ h += 274;
11423+ k += (*h)[0];
11424+ l += (*h)[1];
11425+ m += (*h)[2];
11426+ h += 2;
11427+ k += (*h)[0];
11428+ l += (*h)[1];
11429+ m += (*h)[2];
11430+ h += 274;
11431+ k += (*h)[0];
11432+ l += (*h)[1];
11433+ m += (*h)[2];
11434+ h++;
11435+ k += (*h)[0];
11436+ l += (*h)[1];
11437+ m += (*h)[2];
11438+ h++;
11439+ k += (*h)[0];
11440+ l += (*h)[1];
11441+ m += (*h)[2];
11442+ k *= 0.125f;
11443+ l *= 0.125f;
11444+ m *= 0.125f;
11445+ k = k + (x[g][1] - l);
11446+ m = m + (x[g][1] - l);
11447+ x[g][0] = k;
11448+ x[g][2] = m;
11449+ }
11450+}
11451Index: gcc/testsuite/gcc.dg/dll-8.c
11452===================================================================
11453--- gcc/testsuite/gcc.dg/dll-8.c (.../tags/gcc_4_7_0_release) (wersja 187906)
11454+++ gcc/testsuite/gcc.dg/dll-8.c (.../branches/gcc-4_7-branch) (wersja 187906)
11455
11456Zmiany atrybutów dla: gcc/testsuite/gcc.dg/dll-8.c
11457___________________________________________________________________
11458Deleted: svn:executable
11459## -1 +0,0 ##
11460-*
11461\ No newline at end of property
11462Index: gcc/testsuite/gcc.dg/lto/pr53214_0.c
11463===================================================================
11464--- gcc/testsuite/gcc.dg/lto/pr53214_0.c (.../tags/gcc_4_7_0_release) (wersja 0)
11465+++ gcc/testsuite/gcc.dg/lto/pr53214_0.c (.../branches/gcc-4_7-branch) (wersja 187906)
11466@@ -0,0 +1,8 @@
11467+/* { dg-lto-do run } */
11468+
11469+double a(double) __attribute__ ((optimize(1), used));
11470+double a(double r)
11471+{
11472+ return r;
11473+}
11474+int main () { return 0; }
11475Index: gcc/testsuite/gcc.dg/torture/pr52969.c
11476===================================================================
11477--- gcc/testsuite/gcc.dg/torture/pr52969.c (.../tags/gcc_4_7_0_release) (wersja 0)
11478+++ gcc/testsuite/gcc.dg/torture/pr52969.c (.../branches/gcc-4_7-branch) (wersja 187906)
11479@@ -0,0 +1,16 @@
11480+/* { dg-do compile } */
11481+/* { dg-options "-ftree-loop-if-convert-stores" } */
11482+
11483+int a, b;
11484+float xsum[100];
11485+void foo (float *cluster)
11486+{
11487+ int j;
11488+ for (; a ; ++j) {
11489+ xsum[j] = cluster[j];
11490+ if (xsum[j] > 0)
11491+ xsum[j] = 0;
11492+ }
11493+ if (xsum[0])
11494+ b = 0;
11495+}
11496Index: gcc/testsuite/gcc.dg/torture/pr52693.c
11497===================================================================
11498--- gcc/testsuite/gcc.dg/torture/pr52693.c (.../tags/gcc_4_7_0_release) (wersja 0)
11499+++ gcc/testsuite/gcc.dg/torture/pr52693.c (.../branches/gcc-4_7-branch) (wersja 187906)
11500@@ -0,0 +1,33 @@
11501+/* { dg-do run } */
11502+
11503+struct pair
11504+{
11505+ int x;
11506+ int y;
11507+};
11508+
11509+struct array
11510+{
11511+ struct pair elems[ 2 ];
11512+ unsigned index;
11513+};
11514+
11515+extern void abort ();
11516+
11517+void __attribute__ ((noinline,noclone))
11518+test_results (int x1, int y1, int x2, int y2)
11519+{
11520+ if (x1 != x2 || y1 != y2)
11521+ abort ();
11522+}
11523+
11524+int
11525+main (void)
11526+{
11527+ struct array arr = {{{1,2}, {3,4}}, 1};
11528+ struct pair last = arr.elems[arr.index];
11529+
11530+ test_results ( last.x, last.y, arr.elems[1].x, arr.elems[1].y);
11531+
11532+ return 0;
11533+}
11534Index: gcc/testsuite/gcc.dg/torture/pr52406.c
11535===================================================================
11536--- gcc/testsuite/gcc.dg/torture/pr52406.c (.../tags/gcc_4_7_0_release) (wersja 0)
11537+++ gcc/testsuite/gcc.dg/torture/pr52406.c (.../branches/gcc-4_7-branch) (wersja 187906)
11538@@ -0,0 +1,29 @@
11539+/* { dg-do run } */
11540+
11541+extern void abort (void);
11542+struct { int f1; } a[2];
11543+
11544+int *b, *const k = &a[1].f1;
11545+static int **c = &b;
11546+
11547+int e, f, d;
11548+
11549+int
11550+main ()
11551+{
11552+ int **l = &b;
11553+ *l = k;
11554+ for (; d <= 0; d++)
11555+ {
11556+ int *j = &e;
11557+ **c = 1;
11558+ *l = k;
11559+ *k ^= 0;
11560+ f = **l;
11561+ *j = f;
11562+ }
11563+ if (e != 1)
11564+ abort ();
11565+ return 0;
11566+}
11567+
11568Index: gcc/testsuite/gcc.dg/torture/pr53272-1.c
11569===================================================================
11570--- gcc/testsuite/gcc.dg/torture/pr53272-1.c (.../tags/gcc_4_7_0_release) (wersja 0)
11571+++ gcc/testsuite/gcc.dg/torture/pr53272-1.c (.../branches/gcc-4_7-branch) (wersja 187906)
11572@@ -0,0 +1,39 @@
11573+/* { dg-do run } */
11574+/* { dg-additional-sources "pr53272-2.c" } */
11575+struct rtc_class_ops {
11576+ int (*f)(void *, unsigned int enabled);
11577+};
11578+
11579+struct rtc_device
11580+{
11581+ void *owner;
11582+ const struct rtc_class_ops *ops;
11583+ int ops_lock;
11584+};
11585+
11586+__attribute__ ((__noinline__, __noclone__))
11587+extern int foo(void *);
11588+__attribute__ ((__noinline__, __noclone__))
11589+extern void foobar(void *);
11590+
11591+__attribute__ ((__noinline__, __noclone__))
11592+int rtc_update_irq_enable(struct rtc_device *rtc, unsigned int enabled)
11593+{
11594+ int err;
11595+ asm volatile ("");
11596+
11597+ err = foo(&rtc->ops_lock);
11598+
11599+ if (err)
11600+ return err;
11601+
11602+ if (!rtc->ops)
11603+ err = -19;
11604+ else if (!rtc->ops->f)
11605+ err = -22;
11606+ else
11607+ err = rtc->ops->f(rtc->owner, enabled);
11608+
11609+ foobar(&rtc->ops_lock);
11610+ return err;
11611+}
11612Index: gcc/testsuite/gcc.dg/torture/pr53144.c
11613===================================================================
11614--- gcc/testsuite/gcc.dg/torture/pr53144.c (.../tags/gcc_4_7_0_release) (wersja 0)
11615+++ gcc/testsuite/gcc.dg/torture/pr53144.c (.../branches/gcc-4_7-branch) (wersja 187906)
11616@@ -0,0 +1,21 @@
11617+/* { dg-do compile } */
11618+
11619+typedef unsigned char __attribute__((vector_size(4))) uvec;
11620+
11621+int main (int argc, char *argv[]) {
11622+ int i;
11623+ int x = 0;
11624+ uvec uc0 = (uvec) {argc, 1, 2, 10};
11625+ unsigned char uc1[4] = {0, 3, 2, 200};
11626+ signed char ucg[4] = {1, 0, 0, 0 };
11627+ signed char ucl[4] = {0, 1, 0, 1 };
11628+
11629+#define uc0_ ((unsigned char *)&uc0)
11630+
11631+ for (i = 0; i < 4; i ++) {
11632+ x |= ucg[i] != (uc0_[i] > uc1[i]);
11633+ x |= ucl[i] != (uc0_[i] < uc1[i]);
11634+ }
11635+ return x;
11636+}
11637+
11638Index: gcc/testsuite/gcc.dg/torture/pr53366-1.c
11639===================================================================
11640--- gcc/testsuite/gcc.dg/torture/pr53366-1.c (.../tags/gcc_4_7_0_release) (wersja 0)
11641+++ gcc/testsuite/gcc.dg/torture/pr53366-1.c (.../branches/gcc-4_7-branch) (wersja 187906)
11642@@ -0,0 +1,70 @@
11643+/* PR tree-optimization/53366 */
11644+/* { dg-do run } */
11645+
11646+extern void abort (void);
11647+
11648+struct S { double v[3]; };
11649+struct T { struct S r, i; };
11650+struct U { struct T j[5]; };
11651+
11652+void
11653+foo (struct U *__restrict p1, struct U *__restrict p2,
11654+ struct S l1, struct S l2, struct S l3, struct S l4,
11655+ const double _Complex * __restrict x, int y, int z)
11656+{
11657+ int i, j;
11658+ while (y < z - 2)
11659+ {
11660+ for (j = 0; j < 5; ++j)
11661+ {
11662+ double a = __real__ x[5 * y + j];
11663+ double b = __imag__ x[5 * y + j];
11664+ double c = __real__ x[5 * (y + 2) + j];
11665+ double d = __imag__ x[5 * (y + 2) + j];
11666+ double e = __real__ x[5 * (y + 1) + j];
11667+ double f = __imag__ x[5 * (y + 1) + j];
11668+ double g = __real__ x[5 * (y + 3) + j];
11669+ double h = __imag__ x[5 * (y + 3) + j];
11670+ for (i = 0; i < 3; ++i)
11671+ {
11672+ p1->j[j].r.v[i] += l2.v[i] * a;
11673+ p1->j[j].r.v[i] += l4.v[i] * c;
11674+ p1->j[j].i.v[i] += l2.v[i] * b;
11675+ p1->j[j].i.v[i] += l4.v[i] * d;
11676+ p2->j[j].r.v[i] += l3.v[i] * e;
11677+ p2->j[j].r.v[i] += l1.v[i] * g;
11678+ p2->j[j].i.v[i] += l3.v[i] * f;
11679+ p2->j[j].i.v[i] += l1.v[i] * h;
11680+ }
11681+ }
11682+ y += 4;
11683+ }
11684+}
11685+
11686+_Complex double x[5005];
11687+struct U p1, p2;
11688+
11689+int
11690+main ()
11691+{
11692+ int i, j;
11693+ struct S l1, l2, l3, l4;
11694+ for (i = 0; i < 5005; ++i)
11695+ x[i] = i + 1.0iF * (2 * i);
11696+ for (i = 0; i < 3; ++i)
11697+ {
11698+ l1.v[i] = 1;
11699+ l2.v[i] = 2;
11700+ l3.v[i] = 3;
11701+ l4.v[i] = 4;
11702+ }
11703+ foo (&p1, &p2, l1, l2, l3, l4, x, 5, 1000);
11704+ for (j = 0; j < 5; ++j)
11705+ for (i = 0; i < 3; ++i)
11706+ if (p1.j[j].r.v[i] != 3752430 + j * 1494.0
11707+ || p1.j[j].i.v[i] != p1.j[j].r.v[i] * 2
11708+ || p2.j[j].r.v[i] != 2502450 + j * 996.0
11709+ || p2.j[j].i.v[i] != p2.j[j].r.v[i] * 2)
11710+ abort ();
11711+ return 0;
11712+}
11713Index: gcc/testsuite/gcc.dg/torture/pr53272-2.c
11714===================================================================
11715--- gcc/testsuite/gcc.dg/torture/pr53272-2.c (.../tags/gcc_4_7_0_release) (wersja 0)
11716+++ gcc/testsuite/gcc.dg/torture/pr53272-2.c (.../branches/gcc-4_7-branch) (wersja 187906)
11717@@ -0,0 +1,39 @@
11718+__attribute__ ((__noinline__, __noclone__))
11719+int foo(void *x)
11720+{
11721+ asm ("");
11722+ return *(int *) x != 42;
11723+}
11724+
11725+__attribute__ ((__noinline__, __noclone__))
11726+void foobar(void *x)
11727+{
11728+ asm ("");
11729+ if (foo(x))
11730+ __builtin_abort();
11731+}
11732+
11733+struct rtc_class_ops {
11734+ int (*f)(void *, unsigned int enabled);
11735+};
11736+
11737+struct rtc_device
11738+{
11739+ void *owner;
11740+ struct rtc_class_ops *ops;
11741+ int ops_lock;
11742+};
11743+
11744+extern __attribute__ ((__noinline__, __noclone__))
11745+int rtc_update_irq_enable(struct rtc_device *rtc, unsigned int);
11746+
11747+int main(void)
11748+{
11749+ struct rtc_class_ops ops = {(void *) 0};
11750+ struct rtc_device dev1 = {0, &ops, 42};
11751+
11752+ if (rtc_update_irq_enable (&dev1, 1) != -22)
11753+ __builtin_abort ();
11754+
11755+ __builtin_exit (0);
11756+}
11757Index: gcc/testsuite/gcc.dg/torture/pr53120.c
11758===================================================================
11759--- gcc/testsuite/gcc.dg/torture/pr53120.c (.../tags/gcc_4_7_0_release) (wersja 0)
11760+++ gcc/testsuite/gcc.dg/torture/pr53120.c (.../branches/gcc-4_7-branch) (wersja 187906)
11761@@ -0,0 +1,110 @@
11762+/* { dg-do compile } */
11763+/* { dg-options "-fno-tree-sra" } */
11764+typedef struct {
11765+ unsigned int en : 1;
11766+ unsigned int bit_order : 1;
11767+ unsigned int scl_io : 1;
11768+ unsigned int scl_inv : 1;
11769+ unsigned int sda0_io : 1;
11770+ unsigned int sda0_idle : 1;
11771+ unsigned int sda1_io : 1;
11772+ unsigned int sda1_idle : 1;
11773+ unsigned int sda2_io : 1;
11774+ unsigned int sda2_idle : 1;
11775+ unsigned int sda3_io : 1;
11776+ unsigned int sda3_idle : 1;
11777+ unsigned int sda_sel : 2;
11778+ unsigned int sen_idle : 1;
11779+ unsigned int sen_inv : 1;
11780+ unsigned int sen_sel : 2;
11781+ unsigned int dummy1 : 14;
11782+} reg_gio_rw_i2c1_cfg;
11783+
11784+typedef struct {
11785+ unsigned int data0 : 8;
11786+ unsigned int data1 : 8;
11787+ unsigned int data2 : 8;
11788+ unsigned int data3 : 8;
11789+} reg_gio_rw_i2c1_data;
11790+
11791+typedef struct {
11792+ unsigned int trf_bits : 6;
11793+ unsigned int switch_dir : 6;
11794+ unsigned int extra_start : 3;
11795+ unsigned int early_end : 1;
11796+ unsigned int start_stop : 1;
11797+ unsigned int ack_dir0 : 1;
11798+ unsigned int ack_dir1 : 1;
11799+ unsigned int ack_dir2 : 1;
11800+ unsigned int ack_dir3 : 1;
11801+ unsigned int ack_dir4 : 1;
11802+ unsigned int ack_dir5 : 1;
11803+ unsigned int ack_bit : 1;
11804+ unsigned int start_bit : 1;
11805+ unsigned int freq : 2;
11806+ unsigned int dummy1 : 5;
11807+} reg_gio_rw_i2c1_ctrl;
11808+
11809+extern reg_gio_rw_i2c1_cfg reg_gio;
11810+extern reg_gio_rw_i2c1_data reg_data;
11811+extern int reg_start;
11812+extern reg_gio_rw_i2c1_ctrl reg_ctrl;
11813+
11814+extern void foobar(void);
11815+extern void foo(int);
11816+extern void frob(unsigned int);
11817+extern void bar(int);
11818+extern void baz(void);
11819+
11820+unsigned int f(int *devspec, unsigned int addr)
11821+{
11822+ reg_gio_rw_i2c1_ctrl ctrl = {0};
11823+ reg_gio_rw_i2c1_data data = {0};
11824+
11825+ foobar();
11826+
11827+ static int first = 1;
11828+
11829+ if (first) {
11830+ reg_gio_rw_i2c1_cfg cfg = {0};
11831+ first = 0;
11832+
11833+ foo(1);
11834+ cfg.sda0_idle = 1;
11835+ cfg.sda0_io = 0;
11836+ cfg.scl_inv = 0;
11837+ cfg.scl_io = 0;
11838+ cfg.bit_order = 1;
11839+ cfg.sda_sel = 0;
11840+ cfg.sen_sel = 0;
11841+ cfg.en = 1;
11842+ reg_gio = cfg;
11843+ }
11844+
11845+ ctrl.freq = 1;
11846+ ctrl.start_bit = 0;
11847+ ctrl.ack_bit = 1;
11848+ ctrl.ack_dir0 = 0;
11849+ ctrl.ack_dir1 = 0;
11850+ ctrl.ack_dir2 = 0;
11851+ ctrl.ack_dir3 = 1;
11852+ ctrl.ack_dir4 = 0;
11853+ ctrl.ack_dir5 = 0;
11854+ ctrl.start_stop = 1;
11855+ ctrl.early_end = 0;
11856+ ctrl.extra_start = 2;
11857+ ctrl.switch_dir = 8*3;
11858+ ctrl.trf_bits = 8*4;
11859+ reg_ctrl = ctrl;
11860+ frob(0xac);
11861+ data.data0 = devspec[1] & 192;
11862+ data.data1 = addr;
11863+ data.data2 = devspec[1] | 0x01;
11864+ reg_data = data;
11865+ reg_start = 1;
11866+ bar(100);
11867+ data = reg_data;
11868+ baz();
11869+
11870+ return data.data3;
11871+}
11872Index: gcc/testsuite/gcc.dg/torture/pr53366-2.c
11873===================================================================
11874--- gcc/testsuite/gcc.dg/torture/pr53366-2.c (.../tags/gcc_4_7_0_release) (wersja 0)
11875+++ gcc/testsuite/gcc.dg/torture/pr53366-2.c (.../branches/gcc-4_7-branch) (wersja 187906)
11876@@ -0,0 +1,43 @@
11877+/* PR tree-optimization/53366 */
11878+/* { dg-do run } */
11879+
11880+extern void abort (void);
11881+
11882+struct T { float r[3], i[3]; };
11883+struct U { struct T j[2]; };
11884+
11885+void __attribute__ ((noinline))
11886+foo (struct U *__restrict y, const float _Complex *__restrict x)
11887+{
11888+ int i, j;
11889+ for (j = 0; j < 2; ++j)
11890+ {
11891+ float a = __real__ x[j];
11892+ float b = __imag__ x[j];
11893+ float c = __real__ x[j + 2];
11894+ float d = __imag__ x[j + 2];
11895+ for (i = 0; i < 3; ++i)
11896+ {
11897+ y->j[j].r[i] = y->j[j].r[i] + a + c;
11898+ y->j[j].i[i] = y->j[j].i[i] + b + d;
11899+ }
11900+ }
11901+}
11902+
11903+_Complex float x[4];
11904+struct U y;
11905+
11906+int
11907+main ()
11908+{
11909+ int i, j;
11910+ for (i = 0; i < 4; ++i)
11911+ x[i] = i + 1.0iF * (2 * i);
11912+ foo (&y, x);
11913+ for (j = 0; j < 2; ++j)
11914+ for (i = 0; i < 3; ++i)
11915+ if (y.j[j].r[i] != __real__ (x[j] + x[j + 2])
11916+ || y.j[j].i[i] != __imag__ (x[j] + x[j + 2]))
11917+ __builtin_abort ();
11918+ return 0;
11919+}
11920Index: gcc/testsuite/gcc.dg/torture/pr51071-2.c
11921===================================================================
11922--- gcc/testsuite/gcc.dg/torture/pr51071-2.c (.../tags/gcc_4_7_0_release) (wersja 0)
11923+++ gcc/testsuite/gcc.dg/torture/pr51071-2.c (.../branches/gcc-4_7-branch) (wersja 187906)
11924@@ -0,0 +1,38 @@
11925+/* { dg-do compile } */
11926+/* { dg-options "-fno-delete-null-pointer-checks" } */
11927+
11928+extern struct module __this_module;
11929+static inline void
11930+trace_module_get (struct module *mod, unsigned long ip) { }
11931+struct module;
11932+static inline __attribute__((no_instrument_function))
11933+int try_module_get(struct module *module)
11934+{
11935+ int ret = 1;
11936+ if (module)
11937+ {
11938+ if (module_is_live(module))
11939+ {
11940+ __label__ __here;
11941+ asm("");
11942+ __here:
11943+ trace_module_get(module, (unsigned long)&&__here);
11944+ }
11945+ else
11946+ ret = 0;
11947+ }
11948+ return ret;
11949+}
11950+struct net_device;
11951+struct net_device_ops {
11952+ int (*ndo_open)(struct net_device *dev);
11953+};
11954+int t3e3_open(struct net_device *dev)
11955+{
11956+ int ret = hdlc_open(dev);
11957+ if (ret)
11958+ return ret;
11959+ try_module_get((&__this_module));
11960+ return 0;
11961+}
11962+const struct net_device_ops t3e3_ops = { .ndo_open = t3e3_open };
11963Index: gcc/testsuite/gcc.dg/torture/pr52493.c
11964===================================================================
11965--- gcc/testsuite/gcc.dg/torture/pr52493.c (.../tags/gcc_4_7_0_release) (wersja 0)
11966+++ gcc/testsuite/gcc.dg/torture/pr52493.c (.../branches/gcc-4_7-branch) (wersja 187906)
11967@@ -0,0 +1,38 @@
11968+/* { dg-do compile } */
11969+
11970+struct Time {
11971+ long int sec;
11972+ long usec;
11973+};
11974+struct Flow {
11975+ unsigned short iif;
11976+ struct Time mtime;
11977+};
11978+struct NetFlow {
11979+ unsigned MaxFlows;
11980+ unsigned HeaderFields;
11981+ unsigned short *HeaderFormat;
11982+};
11983+static struct NetFlow *netflow;
11984+static struct Time start_time;
11985+static unsigned char emit_packet[1500];
11986+inline long int cmpmtime(struct Time *t1, struct Time *t2)
11987+{
11988+ return (t1->sec - t2->sec) * 1000 + (t1->usec - t2->usec) / 1000;
11989+}
11990+static void fill(int fields, unsigned short *format,
11991+ struct Flow *flow, void *p)
11992+{
11993+ int i;
11994+ for (i = 0; i < fields; i++)
11995+ if (format[i] == 21)
11996+ {
11997+ unsigned int __v;
11998+ __v = cmpmtime(&flow->mtime, &start_time);
11999+ *((unsigned int *) p) = __v;
12000+ }
12001+}
12002+void emit_thread()
12003+{
12004+ fill(netflow->HeaderFields, netflow->HeaderFormat, 0, &emit_packet);
12005+}
12006Index: gcc/testsuite/gcc.dg/torture/pr52720.c
12007===================================================================
12008--- gcc/testsuite/gcc.dg/torture/pr52720.c (.../tags/gcc_4_7_0_release) (wersja 0)
12009+++ gcc/testsuite/gcc.dg/torture/pr52720.c (.../branches/gcc-4_7-branch) (wersja 187906)
12010@@ -0,0 +1,28 @@
12011+/* { dg-do compile } */
12012+/* { dg-options "-march=k8-sse3" { target x86_64-*-* } } */
12013+
12014+struct alu_bank_swizzle {
12015+ int hw_gpr[3][4];
12016+ int hw_cfile_addr[4];
12017+};
12018+static void init_bank_swizzle(struct alu_bank_swizzle *bs)
12019+{
12020+ int i, cycle, component;
12021+ for (cycle = 0; cycle < 3; cycle++)
12022+ for (component = 0; component < 4; component++)
12023+ bs->hw_gpr[cycle][component] = -1;
12024+ for (i = 0; i < 4; i++)
12025+ bs->hw_cfile_addr[i] = -1;
12026+}
12027+int check_and_set_bank_swizzle(int max_slots, int *slots)
12028+{
12029+ struct alu_bank_swizzle bs;
12030+ int i;
12031+ for (i = 0; i < max_slots; i++)
12032+ {
12033+ init_bank_swizzle(&bs);
12034+ if (slots[i])
12035+ check_vector(&bs);
12036+ }
12037+}
12038+
12039Index: gcc/testsuite/gcc.dg/torture/pr53408.c
12040===================================================================
12041--- gcc/testsuite/gcc.dg/torture/pr53408.c (.../tags/gcc_4_7_0_release) (wersja 0)
12042+++ gcc/testsuite/gcc.dg/torture/pr53408.c (.../branches/gcc-4_7-branch) (wersja 187906)
12043@@ -0,0 +1,20 @@
12044+/* { dg-do compile } */
12045+
12046+int a, b, c, d, e;
12047+void
12048+fn1 ()
12049+{
12050+ int f, g;
12051+ char h = 0;
12052+ b = 0;
12053+ for (; b < 32; b++)
12054+ {
12055+ g = h > e ? h : h << 1;
12056+ f = g && a ? 0 : 1;
12057+ h = 1;
12058+ for (; h > 0; h = h + 1)
12059+ c = 0 < h | f;
12060+ }
12061+ if (h)
12062+ d = 0;
12063+}
12064Index: gcc/testsuite/gcc.dg/torture/pr52943.c
12065===================================================================
12066--- gcc/testsuite/gcc.dg/torture/pr52943.c (.../tags/gcc_4_7_0_release) (wersja 0)
12067+++ gcc/testsuite/gcc.dg/torture/pr52943.c (.../branches/gcc-4_7-branch) (wersja 187906)
12068@@ -0,0 +1,20 @@
12069+/* { dg-do run } */
12070+
12071+extern void abort (void);
12072+int a[] = { 0, 0, 0, 6 };
12073+
12074+int b;
12075+int
12076+main ()
12077+{
12078+ for (;;)
12079+ {
12080+ b = 3;
12081+ for (; b; b -= 1)
12082+ a[b] = a[3] > 1;
12083+ break;
12084+ }
12085+ if (a[1] != 0)
12086+ abort ();
12087+ return 0;
12088+}
12089Index: gcc/testsuite/gcc.dg/pr52734.c
12090===================================================================
12091--- gcc/testsuite/gcc.dg/pr52734.c (.../tags/gcc_4_7_0_release) (wersja 0)
12092+++ gcc/testsuite/gcc.dg/pr52734.c (.../branches/gcc-4_7-branch) (wersja 187906)
12093@@ -0,0 +1,35 @@
12094+/* { dg-do run } */
12095+/* { dg-options "-O2" } */
12096+
12097+int bbb = 0;
12098+
12099+int __attribute__((noinline,noclone)) aaa(void)
12100+{
12101+ ++bbb;
12102+ return 0;
12103+}
12104+
12105+int __attribute__((noinline,noclone)) ccc(void)
12106+{
12107+ int ddd;
12108+ /* bbb == 0 */
12109+ if (aaa())
12110+ return bbb;
12111+
12112+ /* bbb == 1 */
12113+ ddd = bbb;
12114+ /* bbb == ddd == 1 */
12115+ if (aaa ())
12116+ return 0;
12117+ /* bbb == 2, ddd == 1 */
12118+
12119+ return ddd;
12120+}
12121+
12122+int main(void)
12123+{
12124+ if (ccc() != 1)
12125+ __builtin_abort();
12126+ return 0;
12127+}
12128+
12129Index: gcc/testsuite/gcc.dg/pr53358.c
12130===================================================================
12131--- gcc/testsuite/gcc.dg/pr53358.c (.../tags/gcc_4_7_0_release) (wersja 0)
12132+++ gcc/testsuite/gcc.dg/pr53358.c (.../branches/gcc-4_7-branch) (wersja 187906)
12133@@ -0,0 +1,22 @@
12134+/* PR target/53358 */
12135+/* { dg-do compile } */
12136+/* { dg-options "-O2" } */
12137+/* { dg-additional-options "-fpic" { target fpic } } */
12138+/* { dg-additional-options "-mtune=pentium4" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */
12139+
12140+struct S { unsigned char s, t[17]; };
12141+int bar (void);
12142+
12143+void
12144+foo (struct S *x)
12145+{
12146+ unsigned char i, z;
12147+ if (bar ())
12148+ {
12149+ z = bar ();
12150+ bar ();
12151+ x->s += z;
12152+ for (i = 0; i < x->s; i++)
12153+ x->t[i] = bar ();
12154+ }
12155+}
12156Index: gcc/testsuite/gcc.dg/tm/indirect-2.c
12157===================================================================
12158--- gcc/testsuite/gcc.dg/tm/indirect-2.c (.../tags/gcc_4_7_0_release) (wersja 0)
12159+++ gcc/testsuite/gcc.dg/tm/indirect-2.c (.../branches/gcc-4_7-branch) (wersja 187906)
12160@@ -0,0 +1,15 @@
12161+/* { dg-do compile } */
12162+/* { dg-options "-fgnu-tm" } */
12163+
12164+void __attribute__((transaction_safe))
12165+foo(void);
12166+
12167+void __attribute__((transaction_safe))
12168+set_fn(void)
12169+{
12170+ void __attribute__((transaction_safe)) (*fn)(void);
12171+ fn = foo;
12172+ fn();
12173+}
12174+
12175+/* { dg-final { scan-assembler "_ITM_getTMCloneSafe" } } */
12176Index: gcc/testsuite/gcc.dg/vect/vect-over-widen-1.c
12177===================================================================
12178--- gcc/testsuite/gcc.dg/vect/vect-over-widen-1.c (.../tags/gcc_4_7_0_release) (wersja 187906)
12179+++ gcc/testsuite/gcc.dg/vect/vect-over-widen-1.c (.../branches/gcc-4_7-branch) (wersja 187906)
12180@@ -58,7 +58,9 @@
12181 return 0;
12182 }
12183
12184-/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" { target {! vect_sizes_32B_16B} } } } */
12185+/* { dg-final { scan-tree-dump-times "vect_recog_widen_shift_pattern: detected" 2 "vect" { target vect_widen_shift } } } */
12186+/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 2 "vect" { target vect_widen_shift } } } */
12187+/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" { target { { ! vect_sizes_32B_16B } && { ! vect_widen_shift } } } } } */
12188 /* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 8 "vect" { target vect_sizes_32B_16B } } } */
12189 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
12190 /* { dg-final { cleanup-tree-dump "vect" } } */
12191Index: gcc/testsuite/gcc.dg/vect/vect-over-widen-1-big-array.c
12192===================================================================
12193--- gcc/testsuite/gcc.dg/vect/vect-over-widen-1-big-array.c (.../tags/gcc_4_7_0_release) (wersja 187906)
12194+++ gcc/testsuite/gcc.dg/vect/vect-over-widen-1-big-array.c (.../branches/gcc-4_7-branch) (wersja 187906)
12195@@ -58,7 +58,9 @@
12196 return 0;
12197 }
12198
12199-/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" } } */
12200+/* { dg-final { scan-tree-dump-times "vect_recog_widen_shift_pattern: detected" 2 "vect" { target vect_widen_shift } } } */
12201+/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 2 "vect" { target vect_widen_shift } } } */
12202+/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" { target { ! vect_widen_shift } } } } */
12203 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
12204 /* { dg-final { cleanup-tree-dump "vect" } } */
12205
12206Index: gcc/testsuite/gcc.dg/vect/vect-over-widen-4.c
12207===================================================================
12208--- gcc/testsuite/gcc.dg/vect/vect-over-widen-4.c (.../tags/gcc_4_7_0_release) (wersja 187906)
12209+++ gcc/testsuite/gcc.dg/vect/vect-over-widen-4.c (.../branches/gcc-4_7-branch) (wersja 187906)
12210@@ -62,7 +62,9 @@
12211 return 0;
12212 }
12213
12214-/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" { target {! vect_sizes_32B_16B } } } } */
12215+/* { dg-final { scan-tree-dump-times "vect_recog_widen_shift_pattern: detected" 2 "vect" { target vect_widen_shift } } } */
12216+/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 2 "vect" { target vect_widen_shift } } } */
12217+/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" { target { { ! vect_sizes_32B_16B } && { ! vect_widen_shift } } } } } */
12218 /* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 8 "vect" { target vect_sizes_32B_16B } } } */
12219 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
12220 /* { dg-final { cleanup-tree-dump "vect" } } */
12221Index: gcc/testsuite/gcc.dg/vect/vect-over-widen-4-big-array.c
12222===================================================================
12223--- gcc/testsuite/gcc.dg/vect/vect-over-widen-4-big-array.c (.../tags/gcc_4_7_0_release) (wersja 187906)
12224+++ gcc/testsuite/gcc.dg/vect/vect-over-widen-4-big-array.c (.../branches/gcc-4_7-branch) (wersja 187906)
12225@@ -62,7 +62,9 @@
12226 return 0;
12227 }
12228
12229-/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" } } */
12230+/* { dg-final { scan-tree-dump-times "vect_recog_widen_shift_pattern: detected" 2 "vect" { target vect_widen_shift } } } */
12231+/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 2 "vect" { target vect_widen_shift } } } */
12232+/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" { target { ! vect_widen_shift } } } } */
12233 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
12234 /* { dg-final { cleanup-tree-dump "vect" } } */
12235
12236Index: gcc/testsuite/gcc.dg/vect/pr52870.c
12237===================================================================
12238--- gcc/testsuite/gcc.dg/vect/pr52870.c (.../tags/gcc_4_7_0_release) (wersja 0)
12239+++ gcc/testsuite/gcc.dg/vect/pr52870.c (.../branches/gcc-4_7-branch) (wersja 187906)
12240@@ -0,0 +1,17 @@
12241+/* { dg-do compile } */
12242+/* { dg-options "-O1 -ftree-vectorize" } */
12243+
12244+long
12245+test (int *x)
12246+{
12247+ unsigned long sx, xprec;
12248+
12249+ sx = *x >= 0 ? *x : -*x;
12250+
12251+ xprec = sx * 64;
12252+
12253+ if (sx < 16384)
12254+ foo (sx);
12255+
12256+ return xprec;
12257+}
12258Index: gcc/testsuite/gcc.dg/pr53060.c
12259===================================================================
12260--- gcc/testsuite/gcc.dg/pr53060.c (.../tags/gcc_4_7_0_release) (wersja 0)
12261+++ gcc/testsuite/gcc.dg/pr53060.c (.../branches/gcc-4_7-branch) (wersja 187906)
12262@@ -0,0 +1,24 @@
12263+/* { dg-do run } */
12264+
12265+extern void abort (void);
12266+
12267+int f(void) { return 2; }
12268+unsigned int g(void) { return 5; }
12269+unsigned int h = 1;
12270+
12271+typedef unsigned int vec __attribute__((vector_size(16)));
12272+
12273+vec i = { 1, 2, 3, 4};
12274+
12275+vec fv1(void) { return i + (h ? f() : g()); }
12276+vec fv2(void) { return (h ? f() : g()) + i; }
12277+
12278+int main()
12279+{
12280+ vec i, j;
12281+ j = fv1();
12282+ if (j[0] != 3) abort();
12283+ i = fv2();
12284+ if (i[0] != 3) abort();
12285+ return 0;
12286+}
12287Index: gcc/testsuite/gcc.dg/Wunused-var-3.c
12288===================================================================
12289--- gcc/testsuite/gcc.dg/Wunused-var-3.c (.../tags/gcc_4_7_0_release) (wersja 0)
12290+++ gcc/testsuite/gcc.dg/Wunused-var-3.c (.../branches/gcc-4_7-branch) (wersja 187906)
12291@@ -0,0 +1,34 @@
12292+/* PR c/52577 */
12293+/* { dg-do compile } */
12294+/* { dg-options "-Wunused" } */
12295+
12296+typedef int V __attribute__((vector_size (sizeof (int) * 4)));
12297+
12298+void
12299+f1 (V *p)
12300+{
12301+ V mask = { 1, 2, 3, 0 };
12302+ *p = __builtin_shuffle (*p, mask);
12303+}
12304+
12305+void
12306+f2 (V *p, V *q)
12307+{
12308+ V mask = { 1, 2, 3, 0 };
12309+ *p = __builtin_shuffle (*p, *q, mask);
12310+}
12311+
12312+void
12313+f3 (V *p, V *mask)
12314+{
12315+ V a = { 1, 2, 3, 0 };
12316+ *p = __builtin_shuffle (a, *mask);
12317+}
12318+
12319+void
12320+f4 (V *p, V *mask)
12321+{
12322+ V a = { 1, 2, 3, 0 };
12323+ V b = { 2, 3, 4, 1 };
12324+ *p = __builtin_shuffle (a, b, *mask);
12325+}
12326Index: gcc/testsuite/ChangeLog
12327===================================================================
12328--- gcc/testsuite/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187906)
12329+++ gcc/testsuite/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187906)
12330@@ -1,3 +1,640 @@
12331+2012-05-25 Ian Lance Taylor <iant@google.com>
12332+
12333+ * gcc.dg/split-6.c: New test.
12334+
12335+2012-05-25 Eric Botcazou <ebotcazou@adacore.com>
12336+
12337+ * gnat.dg/lto14.adb: New test.
12338+
12339+2012-05-24 Richard Guenther <rguenther@suse.de>
12340+
12341+ PR middle-end/53460
12342+ * g++.dg/tree-prof/pr53460.C: New testcase.
12343+
12344+2012-05-24 Jakub Jelinek <jakub@redhat.com>
12345+
12346+ PR tree-optimization/53465
12347+ * gcc.c-torture/execute/pr53465.c: New test.
12348+
12349+2012-05-23 Tobias Burnus <burnus@net-b.de>
12350+
12351+ PR fortran/53389
12352+ * gfortran.dg/realloc_on_assign_15.f90: New.
12353+
12354+2012-05-22 Richard Guenther <rguenther@suse.de>
12355+
12356+ PR tree-optimization/53408
12357+ * gcc.dg/torture/pr53408.c: New testcase.
12358+
12359+2012-05-22 Richard Guenther <rguenther@suse.de>
12360+
12361+ PR middle-end/51071
12362+ * gcc.dg/torture/pr51071-2.c: New testcase.
12363+
12364+2012-05-21 Jakub Jelinek <jakub@redhat.com>
12365+
12366+ PR tree-optimization/53366
12367+ * gcc.dg/torture/pr53366-1.c: New test.
12368+ * gcc.dg/torture/pr53366-2.c: New test.
12369+ * gcc.target/i386/pr53366-1.c: New test.
12370+ * gcc.target/i386/pr53366-2.c: New test.
12371+
12372+ PR tree-optimization/53409
12373+ * gcc.c-torture/compile/pr53409.c: New test.
12374+
12375+ PR tree-optimization/53410
12376+ * gcc.c-torture/compile/pr53410-1.c: New test.
12377+ * gcc.c-torture/compile/pr53410-2.c: New test.
12378+
12379+2012-05-21 Joseph Myers <joseph@codesourcery.com>
12380+
12381+ PR c/53418
12382+ * gcc.c-torture/compile/pr53418-1.c,
12383+ gcc.c-torture/compile/pr53418-2.c: New tests.
12384+
12385+2012-05-21 Patrick Marlier <patrick.marlier@gmail.com>
12386+
12387+ * gcc.dg/tm/indirect-2.c: New test.
12388+
12389+2012-05-21 H.J. Lu <hongjiu.lu@intel.com>
12390+
12391+ Backport from mainline
12392+ 2012-05-21 Uros Bizjak <ubizjak@gmail.com>
12393+ H.J. Lu <hongjiu.lu@intel.com>
12394+
12395+ PR target/53416
12396+ * gcc.target/i386/pr53416.c: New file.
12397+
12398+2012-05-20 Eric Botcazou <ebotcazou@adacore.com>
12399+
12400+ * gnat.dg/lto13.adb: New test.
12401+ * gnat.dg/lto13_pkg.ad[sb]: New helper.
12402+
12403+2012-05-18 Eric Botcazou <ebotcazou@adacore.com>
12404+
12405+ * gnat.dg/specs/lto12.ads: New test.
12406+ * gnat.dg/specs/lto12_pkg.ads: New helper.
12407+
12408+2012-05-17 David S. Miller <davem@davemloft.net>
12409+
12410+ * gfortran.dg/bessel_7.f90: Bump allowed precision to avoid
12411+ failure on sparc-*-linux-gnu.
12412+
12413+2012-05-16 Richard Henderson <rth@redhat.com>
12414+
12415+ PR debug/52727
12416+ * g++.dg/opt/pr52727.C: New testcase.
12417+
12418+2012-05-16 Richard Guenther <rguenther@suse.de>
12419+
12420+ PR tree-optimization/53364
12421+ * g++.dg/torture/pr53364.C: New testcase.
12422+
12423+2012-05-15 Jakub Jelinek <jakub@redhat.com>
12424+
12425+ PR target/53358
12426+ * gcc.dg/pr53358.c: New test.
12427+
12428+2012-05-14 Uros Bizjak <ubizjak@gmail.com>
12429+
12430+ * gcc.target/i386/avx256-unaligned-load-[1234].c: Update scan strings.
12431+ * gcc.target/i386/avx256-unaligned-store-[1234].c: Ditto.
12432+
12433+2012-05-12 Eric Botcazou <ebotcazou@adacore.com>
12434+
12435+ * gnat.dg/null_pointer_deref3.adb: New test.
12436+
12437+2012-05-10 Paolo Carlini <paolo.carlini@oracle.com>
12438+
12439+ PR c++/53301
12440+ * g++.dg/warn/Wzero-as-null-pointer-constant-6.C: New.
12441+
12442+2012-05-10 Eric Botcazou <ebotcazou@adacore.com>
12443+
12444+ * gnat.dg/lto11.ad[sb]: New test.
12445+
12446+2012-05-08 Hans-Peter Nilsson <hp@axis.com>
12447+
12448+ PR target/53272
12449+ * gcc.dg/torture/pr53272-1.c, gcc.dg/torture/pr53272-2.c: New test.
12450+
12451+2012-05-07 Jakub Jelinek <jakub@redhat.com>
12452+
12453+ PR tree-optimization/53239
12454+ * g++.dg/opt/vrp3.C: New test.
12455+ * g++.dg/opt/vrp3-aux.cc: New file.
12456+ * g++.dg/opt/vrp3.h: New file.
12457+
12458+2012-05-07 Tobias Burnus <burnus@net-b.de>
12459+
12460+ Backport from mainline:
12461+ 2012-05-07 Tobias Burnus <burnus@net-b.de>
12462+
12463+ PR fortran/53255
12464+ * gfortran.dg/typebound_operator_15.f90: New.
12465+
12466+2012-05-05 Tobias Burnus <burnus@net-b.de>
12467+
12468+ Backport from mainline:
12469+ 2012-05-04 Tobias Burnus <burnus@net-b.de>
12470+
12471+ PR fortran/53111
12472+ * gfortran.dg/constructor_7.f90: New.
12473+ * gfortran.dg/constructor_8.f90: New.
12474+
12475+2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
12476+
12477+ Backport from mainline:
12478+
12479+ 2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
12480+
12481+ PR tree-optimization/52633
12482+ * gcc.dg/vect/vect-over-widen-1.c: Two patterns should now be
12483+ recognized as widening shifts instead of over-widening.
12484+ * gcc.dg/vect/vect-over-widen-1-big-array.c: Likewise.
12485+ * gcc.dg/vect/vect-over-widen-4.c: Likewise.
12486+ * gcc.dg/vect/vect-over-widen-4-big-array.c: Likewise.
12487+ * gcc.target/arm/pr52633.c: New test.
12488+
12489+ 2012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
12490+
12491+ PR tree-optimization/52870
12492+ * gcc.dg/vect/pr52870.c: New test.
12493+
12494+2012-05-04 Richard Guenther <rguenther@suse.de>
12495+
12496+ * gcc.dg/lto/pr53214_0.c: New testcase.
12497+
12498+2012-05-04 Eric Botcazou <ebotcazou@adacore.com>
12499+
12500+ * gcc.target/ia64/pr48496.c: New test.
12501+ * gcc.target/ia64/pr52657.c: Likewise.
12502+
12503+2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
12504+
12505+ Backport from mainline
12506+ 2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
12507+
12508+ PR target/53199
12509+ * gcc.target/powwerpc/pr53199.c: New file.
12510+
12511+2012-05-03 Martin Jambor <mjambor@suse.cz>
12512+
12513+ Backport from mainline
12514+ 2012-05-02 Martin Jambor <mjambor@suse.cz>
12515+
12516+ PR lto/52605
12517+ * g++.dg/lto/pr52605_0.C: New test.
12518+
12519+2012-05-03 Paolo Carlini <paolo.carlini@oracle.com>
12520+
12521+ PR c++/53186
12522+ * g++.dg/other/final2.C: New.
12523+
12524+2012-05-03 Jakub Jelinek <jakub@redhat.com>
12525+
12526+ PR debug/53174
12527+ * gcc.dg/pr53174.c: New test.
12528+
12529+ PR target/53187
12530+ * gcc.target/arm/pr53187.c: New test.
12531+ * gcc.c-torture/compile/pr53187.c: New test.
12532+
12533+2012-05-03 Richard Guenther <rguenther@suse.de>
12534+
12535+ PR tree-optimization/53144
12536+ * gcc.dg/torture/pr53144.c: New testcase.
12537+
12538+2012-05-02 Tobias Burnus <burnus@net-b.de>
12539+
12540+ Backport from mainline
12541+ 2012-04-16 Tobias Burnus <burnus@net-b.de>
12542+
12543+ PR fortran/52864
12544+ * gfortran.dg/pointer_intent_6.f90: New.
12545+
12546+2012-05-02 Jakub Jelinek <jakub@redhat.com>
12547+
12548+ PR tree-optimization/53163
12549+ * gcc.c-torture/compile/pr53163.c: New test.
12550+
12551+ PR rtl-optimization/53160
12552+ * gcc.c-torture/execute/pr53160.c: New test.
12553+
12554+2012-04-30 Thomas Koenig <tkoenig@gcc.gnu.org>
12555+
12556+ PR fortran/53148
12557+ Backport from trunk
12558+ * gfortran.dg/function_optimize_12.f90: New test.
12559+
12560+2012-04-30 Uros Bizjak <ubizjak@gmail.com>
12561+
12562+ Backport from mainline
12563+ 2012-04-27 Paolo Bonzini <bonzini@gnu.org>
12564+
12565+ PR target/53138
12566+ * gcc.c-torture/execute/20120427-1.c: New testcase.
12567+
12568+2012-04-26 Hans-Peter Nilsson <hp@axis.com>
12569+
12570+ PR target/53120
12571+ * gcc.dg/torture/pr53120.c: New test.
12572+
12573+2012-04-25 Jakub Jelinek <jakub@redhat.com>
12574+
12575+ PR c/52880
12576+ * gcc.dg/pr52880.c: New test.
12577+
12578+2012-04-24 Georg-Johann Lay <avr@gjlay.de>
12579+
12580+ PR testsuite/52641
12581+ PR tree-optimizations/52891
12582+
12583+ * gcc.c-torture/compile/pr52891-2.c: Fix test for 16-bit int.
12584+
12585+2012-04-24 Richard Guenther <rguenther@suse.de>
12586+
12587+ PR tree-optimization/53085
12588+ * g++.dg/torture/pr53085.C: New testcase.
12589+
12590+2012-04-23 Richard Guenther <rguenther@suse.de>
12591+
12592+ PR c/53060
12593+ * gcc.dg/pr53060.c: New testcase.
12594+
12595+2012-04-23 Jakub Jelinek <jakub@redhat.com>
12596+
12597+ PR tree-optimizations/52891
12598+ * gcc.c-torture/compile/pr52891-1.c: New test.
12599+ * gcc.c-torture/compile/pr52891-2.c: New test.
12600+
12601+2012-04-20 Ian Lance Taylor <iant@google.com>
12602+
12603+ * go.test/go-test.exp (go-set-goarch): Recognize powerpc*-*-*.
12604+ (go-gc-tests): Skip nilptr.go on powerpc*-*-*.
12605+
12606+2012-04-17 Paolo Carlini <paolo.carlini@oracle.com>
12607+
12608+ PR c++/53003
12609+ * g++.dg/parse/crash59.C: New.
12610+
12611+2012-04-16 Jason Merrill <jason@redhat.com>
12612+
12613+ PR c++/38543
12614+ * g++.dg/cpp0x/variadic131.C: New.
12615+
12616+2012-04-16 Jason Merrill <jason@redhat.com>
12617+
12618+ PR c++/50830
12619+ * g++.dg/cpp0x/variadic129.C: New.
12620+
12621+ PR c++/50303
12622+ * g++.dg/cpp0x/variadic128.C: New.
12623+
12624+2012-04-16 Uros Bizjak <ubizjak@gmail.com>
12625+
12626+ Backport from mainline
12627+ 2012-04-12 Uros Bizjak <ubizjak@gmail.com>
12628+
12629+ PR target/52932
12630+ * gcc.target/i386/avx2-vpermps-1.c (avx2_test): Use __m256i type for
12631+ second function argument.
12632+ * gcc.target/i386/avx2-vpermps-2.c (init_permps): Update declaration.
12633+ (calc_permps): Update declaration. Calculate result correctly.
12634+ (avx2_test): Change src2 type to union256i_d.
12635+ * gcc.target/i386/avx2-vpermd-2.c (calc_permd): Calculate result
12636+ correctly.
12637+
12638+2012-04-16 Martin Jambor <mjambor@suse.cz>
12639+
12640+ Backported from mainline
12641+
12642+ 2012-04-13 Martin Jambor <mjambor@suse.cz>
12643+ PR middle-end/52939
12644+
12645+ * g++.dg/ipa/pr52939.C: New test.
12646+
12647+2012-04-15 Jason Merrill <jason@redhat.com>
12648+
12649+ PR c++/52380
12650+ * g++.dg/cpp0x/variadic125.C: New.
12651+
12652+ PR c++/52292
12653+ * g++.dg/cpp0x/variadic124.C: New.
12654+
12655+2012-04-15 Fabien Chêne <fabien@gcc.gnu.org>
12656+
12657+ PR c++/52465
12658+ * g++.dg/lookup/using52.C: New.
12659+
12660+2012-04-13 Jason Merrill <jason@redhat.com>
12661+
12662+ PR c++/52824
12663+ * g++.dg/cpp0x/variadic123.C: New.
12664+ * g++.dg/cpp0x/alias-decl-15.C: Remove dg-errors.
12665+
12666+2012-04-11 Jason Merrill <jason@redhat.com>
12667+
12668+ PR c++/52906
12669+ * g++.dg/ext/attrib45.C: New.
12670+
12671+2012-04-13 Tom de Vries <tom@codesourcery.com>
12672+
12673+ Backport from mainline r186419.
12674+
12675+ 2012-04-13 Tom de Vries <tom@codesourcery.com>
12676+
12677+ * gcc.dg/pr52734.c: New test.
12678+
12679+2012-04-13 Richard Guenther <rguenther@suse.de>
12680+
12681+ PR tree-optimization/52969
12682+ * gcc.dg/torture/pr52969.c: New testcase.
12683+
12684+2012-04-13 Richard Guenther <rguenther@suse.de>
12685+
12686+ PR c/52862
12687+ * gcc.dg/pr52862.c: New testcase.
12688+
12689+2012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12690+
12691+ Backport from mainline
12692+ 2012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12693+
12694+ PR target/52775
12695+ * gcc.target/powerpc/pr52775.c: New file.
12696+
12697+2012-04-12 Richard Guenther <rguenther@suse.de>
12698+
12699+ PR tree-optimization/52943
12700+ * gcc.dg/torture/pr52943.c: New testcase.
12701+
12702+2012-04-09 Mike Stump <mikestump@comcast.net>
12703+
12704+ * g++.dg/cpp0x/udlit-raw-op.C: Don't use CRLF endings.
12705+ * gcc.dg/tree-ssa/vrp59.c: Likewise.
12706+ * gcc.dg/tree-ssa/vrp60.c: Likewise.
12707+ * gnat.dg/aggr11.adb: Likewise.
12708+ * gnat.dg/aggr11_pkg.ads: Likewise.
12709+ * gnat.dg/aggr15.adb: Likewise.
12710+ * gnat.dg/aggr15.ads: Likewise.
12711+ * gnat.dg/aggr17.adb: Likewise.
12712+ * gnat.dg/aggr18.adb: Likewise.
12713+ * gnat.dg/array14.adb: Likewise.
12714+ * gnat.dg/array14.ads: Likewise.
12715+ * gnat.dg/array14_pkg.ads: Likewise.
12716+ * gnat.dg/array19.adb: Likewise.
12717+ * gnat.dg/array19.ads: Likewise.
12718+ * gnat.dg/discr27.adb: Likewise.
12719+ * gnat.dg/discr27.ads: Likewise.
12720+ * gnat.dg/discr35.adb: Likewise.
12721+ * gnat.dg/discr35.ads: Likewise.
12722+ * gnat.dg/discr6.adb: Likewise.
12723+ * gnat.dg/discr6_pkg.ads: Likewise.
12724+ * gnat.dg/import1.adb: Likewise.
12725+ * gnat.dg/import1.ads: Likewise.
12726+ * gnat.dg/loop_address2.adb: Likewise.
12727+ * gnat.dg/opt7.adb: Likewise.
12728+ * gnat.dg/opt7.ads: Likewise.
12729+ * gnat.dg/pointer_variable_bounds.adb: Likewise.
12730+ * gnat.dg/pointer_variable_bounds.ads: Likewise.
12731+ * gnat.dg/rep_clause2.adb: Likewise.
12732+ * gnat.dg/rep_clause2.ads: Likewise.
12733+ * gnat.dg/slice2.adb: Likewise.
12734+ * gnat.dg/slice2.ads: Likewise.
12735+ * gnat.dg/slice6.adb: Likewise.
12736+ * gnat.dg/slice6_pkg.ads: Likewise.
12737+ * gnat.dg/specs/unchecked_union2.ads: Likewise.
12738+ * gnat.dg/taft_type2.adb: Likewise.
12739+ * gnat.dg/taft_type2.ads: Likewise.
12740+ * gnat.dg/taft_type2_pkg.ads: Likewise.
12741+ * gnat.dg/volatile10.adb: Likewise.
12742+ * gnat.dg/volatile10_pkg.ads: Likewise.
12743+
12744+ * gcc.dg/dll-8.c: Remove execute permissions.
12745+ * g++.dg/ext/dllexport5.C: Likewise.
12746+
12747+2012-04-09 Eric Botcazou <ebotcazou@adacore.com>
12748+
12749+ * lib/target-supports.exp (check_effective_target_sparc_v9): New.
12750+ (check_effective_target_sync_long_long): Add SPARC case.
12751+ (check_effective_target_sync_long_long_runtime): Likewise.
12752+ (check_effective_target_sync_int_long): Adjust SPARC case.
12753+ (check_effective_target_sync_char_short): Likewise.
12754+
12755+2012-04-07 Thomas Koenig <tkoenig@gcc.gnu.org>
12756+
12757+ PR fortran/52893
12758+ Backport from trunk
12759+ * gfortran.dg/function_optimize_11.f90: New test.
12760+
12761+2012-04-07 Thomas Koenig <tkoenig@gcc.gnu.org>
12762+
12763+ PR fortran/52668
12764+ Backport from trunk
12765+ * gfortran.dg/use_only_6.f90: New test.
12766+
12767+2012-04-06 Mike Stump <mikestump@comcast.net>
12768+
12769+ PR testsuite/50722
12770+ * gcc.dg/pr49994-3.c: Use -w to squelch non-portable warnings.
12771+
12772+2012-04-05 Jason Merrill <jason@redhat.com>
12773+
12774+ PR c++/52596
12775+ * g++.dg/template/qualified-id5.C: New.
12776+
12777+2012-04-03 Jason Merrill <jason@redhat.com>
12778+
12779+ PR c++/52796
12780+ * g++.dg/cpp0x/variadic-value1.C: New.
12781+
12782+2012-04-03 Richard Guenther <rguenther@suse.de>
12783+
12784+ Backport from mainline
12785+ 2012-03-02 Richard Guenther <rguenther@suse.de>
12786+
12787+ PR tree-optimization/52406
12788+ * gcc.dg/torture/pr52406.c: New testcase.
12789+
12790+2012-04-03 Richard Guenther <rguenther@suse.de>
12791+
12792+ Backport from mainline
12793+ 2012-03-15 Richard Guenther <rguenther@suse.de>
12794+
12795+ PR middle-end/52580
12796+ * gfortran.dg/vect/pr52580.f: New testcase.
12797+
12798+2012-04-03 Richard Guenther <rguenther@suse.de>
12799+
12800+ Backport from mainline
12801+ 2012-03-06 Richard Guenther <rguenther@suse.de>
12802+
12803+ PR middle-end/52493
12804+ * gcc.dg/torture/pr52493.c: New testcase.
12805+
12806+ 2012-03-23 Richard Guenther <rguenther@suse.de>
12807+
12808+ PR tree-optimization/52678
12809+ * gfortran.dg/pr52678.f: New testcase.
12810+
12811+ 2012-03-26 Richard Guenther <rguenther@suse.de>
12812+
12813+ PR tree-optimization/52701
12814+ * gfortran.dg/pr52701.f90: New testcase.
12815+
12816+ 2012-03-30 Richard Guenther <rguenther@suse.de>
12817+
12818+ PR tree-optimization/52754
12819+ * gcc.target/i386/pr52754.c: New testcase.
12820+
12821+2012-04-03 Jakub Jelinek <jakub@redhat.com>
12822+
12823+ PR tree-optimization/52835
12824+ * gfortran.dg/pr52835.f90: New test.
12825+
12826+2012-03-31 Eric Botcazou <ebotcazou@adacore.com>
12827+
12828+ * gnat.dg/controlled6.adb: New test.
12829+ * gnat.dg/controlled6_pkg.ads: New helper.
12830+ * gnat.dg/controlled6_pkg-iterators.ad[sb]: Likewise.
12831+
12832+2012-03-29 Meador Inge <meadori@codesourcery.com>
12833+
12834+ PR c++/52672
12835+ * g++.dg/cpp0x/constexpr-52672.C: New testcase.
12836+
12837+2012-03-29 Paolo Carlini <paolo.carlini@oracle.com>
12838+
12839+ PR c++/52718
12840+ * g++.dg/warn/Wzero-as-null-pointer-constant-5.C: New.
12841+
12842+2012-03-29 Jason Merrill <jason@redhat.com>
12843+
12844+ PR c++/52685
12845+ * g++.dg/template/inherit8.C: New.
12846+
12847+2012-03-29 Jakub Jelinek <jakub@redhat.com>
12848+
12849+ PR c++/52759
12850+ * g++.dg/ext/weak4.C: New test.
12851+
12852+2012-03-29 Jason Merrill <jason@redhat.com>
12853+
12854+ PR c++/52743
12855+ * g++.dg/cpp0x/initlist-array3.C: New.
12856+
12857+2012-03-28 Jason Merrill <jason@redhat.com>
12858+
12859+ PR c++/52746
12860+ * g++.dg/overload/virtual2.C: New.
12861+
12862+2012-03-28 Martin Jambor <mjambor@suse.cz>
12863+
12864+ Backported from mainline
12865+ 2012-03-27 Martin Jambor <mjambor@suse.cz>
12866+
12867+ PR middle-end/52693
12868+ * gcc.dg/torture/pr52693.c: New test.
12869+
12870+2012-03-28 Jakub Jelinek <jakub@redhat.com>
12871+
12872+ PR middle-end/52691
12873+ * gcc.dg/pr52691.c: New test.
12874+
12875+ PR middle-end/52750
12876+ * gcc.c-torture/compile/pr52750.c: New test.
12877+
12878+2012-03-28 Georg-Johann Lay <avr@gjlay.de>
12879+
12880+ Backport from 2012-03-28 mainline r185910.
12881+
12882+ PR target/52692
12883+ * gcc.target/avr/torture/builtins-2.c: New test.
12884+
12885+2012-03-28 Jakub Jelinek <jakub@redhat.com>
12886+
12887+ PR target/52736
12888+ * gcc.target/i386/pr52736.c: New test.
12889+
12890+2012-03-27 Richard Guenther <rguenther@suse.de>
12891+
12892+ PR middle-end/52720
12893+ * gcc.dg/torture/pr52720.c: New testcase.
12894+
12895+2012-03-26 Georg-Johann Lay <avr@gjlay.de>
12896+
12897+ Backport from 2012-03-26 mainline r185793.
12898+
12899+ * gcc.target/avr/torture/avr-torture.exp (AVR_TORTURE_OPTIONS):
12900+ Add "-Os -flto" to list.
12901+
12902+2012-03-25 Eric Botcazou <ebotcazou@adacore.com>
12903+
12904+ * gnat.dg/concat2.ad[sb]: New test.
12905+
12906+2012-03-24 Steven Bosscher <steven@gcc.gnu.org>
12907+
12908+ PR middle-end/52640
12909+ * gcc.c-torture/compile/limits-externdecl.c: New test.
12910+
12911+2012-03-22 Paolo Carlini <paolo.carlini@oracle.com>
12912+
12913+ PR c++/52487
12914+ * g++.dg/cpp0x/lambda/lambda-ice7.C: New.
12915+
12916+2012-03-22 Tobias Burnus <burnus@net-b.de>
12917+
12918+ PR fortran/52452
12919+ * gfortran.dg/intrinsic_8.f90: New.
12920+
12921+2012-03-22 Jakub Jelinek <jakub@redhat.com>
12922+
12923+ PR c++/52671
12924+ * g++.dg/ext/attrib44.C: New test.
12925+
12926+2012-03-22 Jason Merrill <jason@redhat.com>
12927+
12928+ * g++.dg/torture/pr52582.C: New.
12929+
12930+2012-03-22 Georg-Johann Lay <avr@gjlay.de>
12931+
12932+ Backport from 2012-03-20 mainline r185583.
12933+
12934+ * gcc.target/avr/progmem.h (pgm_read_char): Define depending on
12935+ __AVR_HAVE_LPMX__
12936+
12937+ Backport from 2012-03-20 mainline r185570.
12938+
12939+ PR target/49868
12940+ * gcc.target/avr/torture/addr-space-2.h: New file.
12941+ * gcc.target/avr/torture/addr-space-2-g.h: New test.
12942+ * gcc.target/avr/torture/addr-space-2-0.h: New test.
12943+ * gcc.target/avr/torture/addr-space-2-1.h: New test.
12944+ * gcc.target/avr/torture/addr-space-2-x.h: New test.
12945+
12946+ Backport from 2012-03-12 mainline r185255.
12947+
12948+ PR target/49868
12949+ * gcc.target/avr/torture/addr-space-1.h: New file.
12950+ * gcc.target/avr/torture/addr-space-g.h: New test.
12951+ * gcc.target/avr/torture/addr-space-0.h: New test.
12952+ * gcc.target/avr/torture/addr-space-1.h: New test.
12953+ * gcc.target/avr/torture/addr-space-x.h: New test.
12954+
12955+2012-03-22 Jakub Jelinek <jakub@redhat.com>
12956+
12957+ Backported from mainline
12958+ 2012-03-14 Jakub Jelinek <jakub@redhat.com>
12959+
12960+ PR c++/52521
12961+ * g++.dg/cpp0x/udlit-args2.C: New test.
12962+
12963+ 2012-03-13 Jakub Jelinek <jakub@redhat.com>
12964+
12965+ PR c/52577
12966+ * gcc.dg/Wunused-var-3.c: New test.
12967+
12968 2012-03-22 Release Manager
12969
12970 * GCC 4.7.0 released.
12971Index: gcc/testsuite/g++.dg/ext/weak4.C
12972===================================================================
12973--- gcc/testsuite/g++.dg/ext/weak4.C (.../tags/gcc_4_7_0_release) (wersja 0)
12974+++ gcc/testsuite/g++.dg/ext/weak4.C (.../branches/gcc-4_7-branch) (wersja 187906)
12975@@ -0,0 +1,9 @@
12976+// PR c++/52759
12977+// { dg-do compile }
12978+// { dg-require-weak "" }
12979+// { dg-options "" }
12980+#pragma weak foo
12981+template <typename T>
12982+struct A { };
12983+template <typename T>
12984+void bar (A<T> &);
12985Index: gcc/testsuite/g++.dg/ext/attrib44.C
12986===================================================================
12987--- gcc/testsuite/g++.dg/ext/attrib44.C (.../tags/gcc_4_7_0_release) (wersja 0)
12988+++ gcc/testsuite/g++.dg/ext/attrib44.C (.../branches/gcc-4_7-branch) (wersja 187906)
12989@@ -0,0 +1,4 @@
12990+// PR c++/52671
12991+// { dg-do compile }
12992+__attribute__ ((deprecated)) enum E { E0 }; // { dg-warning "attribute ignored in declaration of" }
12993+// { dg-message "must follow the" "" { target *-*-* } 3 }
12994Index: gcc/testsuite/g++.dg/ext/attrib45.C
12995===================================================================
12996--- gcc/testsuite/g++.dg/ext/attrib45.C (.../tags/gcc_4_7_0_release) (wersja 0)
12997+++ gcc/testsuite/g++.dg/ext/attrib45.C (.../branches/gcc-4_7-branch) (wersja 187906)
12998@@ -0,0 +1,3 @@
12999+// PR c++/52906
13000+
13001+__attribute__ ((__deprecated__)); // { dg-error "does not declare anything" }
13002Index: gcc/testsuite/g++.dg/ext/dllexport5.C
13003===================================================================
13004--- gcc/testsuite/g++.dg/ext/dllexport5.C (.../tags/gcc_4_7_0_release) (wersja 187906)
13005+++ gcc/testsuite/g++.dg/ext/dllexport5.C (.../branches/gcc-4_7-branch) (wersja 187906)
13006
13007Zmiany atrybutów dla: gcc/testsuite/g++.dg/ext/dllexport5.C
13008___________________________________________________________________
13009Deleted: svn:executable
13010## -1 +0,0 ##
13011-*
13012\ No newline at end of property
13013Index: gcc/testsuite/g++.dg/opt/vrp3-aux.cc
13014===================================================================
13015--- gcc/testsuite/g++.dg/opt/vrp3-aux.cc (.../tags/gcc_4_7_0_release) (wersja 0)
13016+++ gcc/testsuite/g++.dg/opt/vrp3-aux.cc (.../branches/gcc-4_7-branch) (wersja 187906)
13017@@ -0,0 +1,21 @@
13018+// { dg-do compile }
13019+// { dg-options "" }
13020+
13021+#include "vrp3.h"
13022+
13023+R::R ()
13024+{
13025+ r1 = r2 = 1;
13026+}
13027+
13028+R::R (int n, int d)
13029+{
13030+ r1 = n;
13031+ r2 = d;
13032+}
13033+
13034+int
13035+R::compare (R const &r, R const &s)
13036+{
13037+ return (int) (r.r1 * s.r2 - s.r1 * r.r2);
13038+}
13039Index: gcc/testsuite/g++.dg/opt/pr52727.C
13040===================================================================
13041--- gcc/testsuite/g++.dg/opt/pr52727.C (.../tags/gcc_4_7_0_release) (wersja 0)
13042+++ gcc/testsuite/g++.dg/opt/pr52727.C (.../branches/gcc-4_7-branch) (wersja 187906)
13043@@ -0,0 +1,45 @@
13044+// { dg-do compile }
13045+// { dg-options "-g -Os" }
13046+
13047+int grow (int);
13048+void fn (int);
13049+struct A { int a1, a2; };
13050+template <typename T>
13051+struct B
13052+{
13053+ A *b;
13054+ ~B () { b3 (b); }
13055+ void b1 (int);
13056+ void b2 (int);
13057+ void b3 (A *);
13058+};
13059+struct C { int c1, c2, c3; bool c4; };
13060+int
13061+bar (int x)
13062+{
13063+ int y = x / 6;
13064+ if (y > x / 2)
13065+ return y;
13066+ return 0;
13067+}
13068+void baz (double, double);
13069+void
13070+foo (const C *x, int y, int z)
13071+{
13072+ B<int> p;
13073+ double r = y / 2;
13074+ int w = bar (int (r));
13075+ double s = y / 2 + 0.5;
13076+ double t = z / 2 + 0.5;
13077+ int u = x->c3;
13078+ int v = (x->c2 + u - 1 - x->c1) / u;
13079+ p.b2 ((2 * v > p.b->a1 || (2 * v < p.b->a2 && 2 * v < (p.b->a1 >> 1)))
13080+ ? grow (0) : p.b->a1);
13081+ for (int i = 0; i <= v; ++i)
13082+ {
13083+ double l = x->c4 ? 4.5 - i * 6.2 / v : (3.1 - i * 31 / v) / 6;
13084+ baz (s + (r - w) * l, t - (r - w) * l);
13085+ }
13086+}
13087+
13088+
13089Index: gcc/testsuite/g++.dg/opt/vrp3.C
13090===================================================================
13091--- gcc/testsuite/g++.dg/opt/vrp3.C (.../tags/gcc_4_7_0_release) (wersja 0)
13092+++ gcc/testsuite/g++.dg/opt/vrp3.C (.../branches/gcc-4_7-branch) (wersja 187906)
13093@@ -0,0 +1,47 @@
13094+// PR tree-optimization/53239
13095+// { dg-do run }
13096+// { dg-options "-O2" }
13097+// { dg-additional-sources "vrp3-aux.cc" }
13098+
13099+#include "vrp3.h"
13100+
13101+struct M
13102+{
13103+ M (R m);
13104+ R val;
13105+ static int compare (M const &, M const &);
13106+};
13107+
13108+inline M const &
13109+min (M const & t1, M const & t2)
13110+{
13111+ return R::compare (t1.val, t2.val) < 0 ? t1 : t2;
13112+}
13113+
13114+M::M (R m)
13115+{
13116+ val = m;
13117+}
13118+
13119+M
13120+test (M *x)
13121+{
13122+ M n (R (0, 0));
13123+
13124+ for (int i = 0; i < 2; i++)
13125+ {
13126+ M p = x[i];
13127+ n = min (n, p);
13128+ }
13129+
13130+ if (n.val.r2 != 2 || n.val.r1 != 1)
13131+ __builtin_abort ();
13132+ return n;
13133+}
13134+
13135+int
13136+main ()
13137+{
13138+ M x[2] = { M (R (1, 2)), M (R (1, 1)) };
13139+ test (x);
13140+}
13141Index: gcc/testsuite/g++.dg/opt/vrp3.h
13142===================================================================
13143--- gcc/testsuite/g++.dg/opt/vrp3.h (.../tags/gcc_4_7_0_release) (wersja 0)
13144+++ gcc/testsuite/g++.dg/opt/vrp3.h (.../branches/gcc-4_7-branch) (wersja 187906)
13145@@ -0,0 +1,9 @@
13146+struct R
13147+{
13148+ long long r1, r2;
13149+ void copy (R const &r) { r1 = r.r1; r2 = r.r2; }
13150+ R ();
13151+ explicit R (int, int);
13152+ R (R const &r) { copy (r); }
13153+ static int compare (R const &, R const &);
13154+};
13155Index: gcc/testsuite/g++.dg/tree-prof/pr53460.C
13156===================================================================
13157--- gcc/testsuite/g++.dg/tree-prof/pr53460.C (.../tags/gcc_4_7_0_release) (wersja 0)
13158+++ gcc/testsuite/g++.dg/tree-prof/pr53460.C (.../branches/gcc-4_7-branch) (wersja 187906)
13159@@ -0,0 +1,25 @@
13160+// { dg-options "-O" }
13161+
13162+template<typename T> class OwnPtr {
13163+public:
13164+ ~OwnPtr();
13165+};
13166+template<class T> class GlyphMetricsMap {
13167+public:
13168+ GlyphMetricsMap() { }
13169+ OwnPtr<int> m_pages;
13170+};
13171+class SimpleFontData {
13172+public:
13173+ void boundsForGlyph() const;
13174+};
13175+inline __attribute__((__always_inline__))
13176+void SimpleFontData::boundsForGlyph() const
13177+{
13178+ new GlyphMetricsMap<int>;
13179+}
13180+void offsetToMiddleOfGlyph(const SimpleFontData* fontData)
13181+{
13182+ fontData->boundsForGlyph();
13183+}
13184+int main() {}
13185Index: gcc/testsuite/g++.dg/lookup/using52.C
13186===================================================================
13187--- gcc/testsuite/g++.dg/lookup/using52.C (.../tags/gcc_4_7_0_release) (wersja 0)
13188+++ gcc/testsuite/g++.dg/lookup/using52.C (.../branches/gcc-4_7-branch) (wersja 187906)
13189@@ -0,0 +1,16 @@
13190+// { dg-do compile }
13191+// PR c++/52645
13192+
13193+class A
13194+{
13195+protected:
13196+ struct B {};
13197+};
13198+
13199+class C : A
13200+{
13201+protected:
13202+ using A::B;
13203+
13204+ struct D : public B {};
13205+};
13206Index: gcc/testsuite/g++.dg/other/final2.C
13207===================================================================
13208--- gcc/testsuite/g++.dg/other/final2.C (.../tags/gcc_4_7_0_release) (wersja 0)
13209+++ gcc/testsuite/g++.dg/other/final2.C (.../branches/gcc-4_7-branch) (wersja 187906)
13210@@ -0,0 +1,27 @@
13211+// PR c++/53186
13212+// { dg-options "-fdump-tree-original -std=c++11" }
13213+
13214+struct F1
13215+{
13216+ virtual void operator()() final;
13217+ virtual operator int() final;
13218+ virtual int operator++() final;
13219+};
13220+
13221+struct F2 final
13222+{
13223+ virtual void operator()();
13224+ virtual operator int();
13225+ virtual int operator++();
13226+};
13227+
13228+void fooF1(F1& a) { a(); int m = a; ++a; }
13229+void fooF2(F2& a) { a(); int m = a; ++a; }
13230+
13231+// { dg-final { scan-tree-dump-times "F1::operator\\(\\)" 1 "original" } }
13232+// { dg-final { scan-tree-dump-times "F1::operator int" 1 "original" } }
13233+// { dg-final { scan-tree-dump-times "F1::operator\\+\\+" 1 "original" } }
13234+// { dg-final { scan-tree-dump-times "F2::operator\\(\\)" 1 "original" } }
13235+// { dg-final { scan-tree-dump-times "F2::operator int" 1 "original" } }
13236+// { dg-final { scan-tree-dump-times "F2::operator\\+\\+" 1 "original" } }
13237+// { dg-final { cleanup-tree-dump "original" } }
13238Index: gcc/testsuite/g++.dg/lto/pr52605_0.C
13239===================================================================
13240--- gcc/testsuite/g++.dg/lto/pr52605_0.C (.../tags/gcc_4_7_0_release) (wersja 0)
13241+++ gcc/testsuite/g++.dg/lto/pr52605_0.C (.../branches/gcc-4_7-branch) (wersja 187906)
13242@@ -0,0 +1,39 @@
13243+// { dg-lto-do link }
13244+// { dg-lto-options {{-flto -g}} }
13245+
13246+extern "C" void abort (void);
13247+
13248+class A
13249+{
13250+public:
13251+ virtual int foo (int i);
13252+};
13253+
13254+int A::foo (int i)
13255+{
13256+ return i + 1;
13257+}
13258+
13259+int __attribute__ ((noinline,noclone)) get_input(void)
13260+{
13261+ return 1;
13262+}
13263+
13264+int main (int argc, char *argv[])
13265+{
13266+
13267+ class B : public A
13268+ {
13269+ public:
13270+ int bar (int i)
13271+ {
13272+ return foo (i) + 2;
13273+ }
13274+ };
13275+ class B b;
13276+
13277+ if (b.bar (get_input ()) != 4)
13278+ abort ();
13279+ return 0;
13280+}
13281+
13282Index: gcc/testsuite/g++.dg/warn/Wzero-as-null-pointer-constant-5.C
13283===================================================================
13284--- gcc/testsuite/g++.dg/warn/Wzero-as-null-pointer-constant-5.C (.../tags/gcc_4_7_0_release) (wersja 0)
13285+++ gcc/testsuite/g++.dg/warn/Wzero-as-null-pointer-constant-5.C (.../branches/gcc-4_7-branch) (wersja 187906)
13286@@ -0,0 +1,20 @@
13287+// PR c++/52718
13288+// { dg-options "-Wzero-as-null-pointer-constant" }
13289+
13290+struct foo
13291+{
13292+ foo(void* a = 0) {}; // { dg-warning "zero as null pointer" }
13293+};
13294+
13295+void* fun(void* a = 0) {}; // { dg-warning "zero as null pointer" }
13296+
13297+struct bar: foo
13298+{
13299+ bar() {};
13300+};
13301+
13302+struct baz
13303+{
13304+ baz(const foo& f1 = foo(),
13305+ void* f2 = fun()) {};
13306+};
13307Index: gcc/testsuite/g++.dg/warn/Wzero-as-null-pointer-constant-6.C
13308===================================================================
13309--- gcc/testsuite/g++.dg/warn/Wzero-as-null-pointer-constant-6.C (.../tags/gcc_4_7_0_release) (wersja 0)
13310+++ gcc/testsuite/g++.dg/warn/Wzero-as-null-pointer-constant-6.C (.../branches/gcc-4_7-branch) (wersja 187906)
13311@@ -0,0 +1,6 @@
13312+// PR c++/53301
13313+// { dg-options "-Wzero-as-null-pointer-constant" }
13314+
13315+class x { public: x(int v) {} };
13316+
13317+void foo(const x& = 0);
13318Index: gcc/testsuite/g++.dg/parse/crash59.C
13319===================================================================
13320--- gcc/testsuite/g++.dg/parse/crash59.C (.../tags/gcc_4_7_0_release) (wersja 0)
13321+++ gcc/testsuite/g++.dg/parse/crash59.C (.../branches/gcc-4_7-branch) (wersja 187906)
13322@@ -0,0 +1,3 @@
13323+// PR c++/53003
13324+
13325+struct A{ void a{} return b // { dg-error "function definition|expected" }
13326Index: gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice7.C
13327===================================================================
13328--- gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice7.C (.../tags/gcc_4_7_0_release) (wersja 0)
13329+++ gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice7.C (.../branches/gcc-4_7-branch) (wersja 187906)
13330@@ -0,0 +1,9 @@
13331+// PR c++/52487
13332+// { dg-options "-std=c++0x" }
13333+
13334+struct A; // { dg-error "forward declaration" }
13335+
13336+void foo(A& a)
13337+{
13338+ [=](){a;}; // { dg-error "invalid use of incomplete type" }
13339+}
13340Index: gcc/testsuite/g++.dg/cpp0x/alias-decl-15.C
13341===================================================================
13342--- gcc/testsuite/g++.dg/cpp0x/alias-decl-15.C (.../tags/gcc_4_7_0_release) (wersja 187906)
13343+++ gcc/testsuite/g++.dg/cpp0x/alias-decl-15.C (.../branches/gcc-4_7-branch) (wersja 187906)
13344@@ -2,7 +2,7 @@
13345 // { dg-options "-std=c++0x" }
13346
13347 template<class U, class V> //#1
13348-struct foo {}; // { dg-error "provided for|foo" }
13349+struct foo {};
13350
13351 template<class U, class V=char>
13352 struct P {};
13353@@ -10,8 +10,8 @@
13354 template<template<class... U> class... TT>
13355 struct bar {
13356 template<class... Args>
13357- using mem = P<TT<Args...>...>;//#2 { dg-error "wrong number of|arguments" }
13358+ using mem = P<TT<Args...>...>;//#2
13359 };
13360
13361-bar<foo>::mem<int, char> b;//#3 { dg-error "invalid type" }
13362+bar<foo>::mem<int, char> b;//#3
13363
13364Index: gcc/testsuite/g++.dg/cpp0x/variadic131.C
13365===================================================================
13366--- gcc/testsuite/g++.dg/cpp0x/variadic131.C (.../tags/gcc_4_7_0_release) (wersja 0)
13367+++ gcc/testsuite/g++.dg/cpp0x/variadic131.C (.../branches/gcc-4_7-branch) (wersja 187906)
13368@@ -0,0 +1,11 @@
13369+// PR c++/38543
13370+// { dg-do compile { target c++11 } }
13371+
13372+template< typename ... T > void foo( T ... args );
13373+template<> void foo( ){}
13374+template<> void foo(int,double){}
13375+int main()
13376+{
13377+ foo( 0, 0.0 );
13378+ return 55;
13379+}
13380Index: gcc/testsuite/g++.dg/cpp0x/constexpr-52672.C
13381===================================================================
13382--- gcc/testsuite/g++.dg/cpp0x/constexpr-52672.C (.../tags/gcc_4_7_0_release) (wersja 0)
13383+++ gcc/testsuite/g++.dg/cpp0x/constexpr-52672.C (.../branches/gcc-4_7-branch) (wersja 187906)
13384@@ -0,0 +1,8 @@
13385+// PR c++/52672
13386+// { dg-do compile }
13387+// { dg-options "-std=c++11" }
13388+
13389+typedef unsigned long * ul_ptr;
13390+constexpr unsigned long a = *((ul_ptr)0x0); // { dg-error "" }
13391+constexpr unsigned long b = *((ul_ptr)(*((ul_ptr)0x0))); // { dg-error "" }
13392+constexpr unsigned long c = *((ul_ptr)*((ul_ptr)(*((ul_ptr)0x0)))); // { dg-error "" }
13393Index: gcc/testsuite/g++.dg/cpp0x/variadic123.C
13394===================================================================
13395--- gcc/testsuite/g++.dg/cpp0x/variadic123.C (.../tags/gcc_4_7_0_release) (wersja 0)
13396+++ gcc/testsuite/g++.dg/cpp0x/variadic123.C (.../branches/gcc-4_7-branch) (wersja 187906)
13397@@ -0,0 +1,14 @@
13398+// PR c++/52824
13399+// { dg-do compile { target c++11 } }
13400+
13401+template<typename G, typename H>
13402+struct foo
13403+{};
13404+
13405+template<typename... G>
13406+struct bar : foo<G...>
13407+{};
13408+
13409+int main() {
13410+ bar<int, float> f;
13411+}
13412Index: gcc/testsuite/g++.dg/cpp0x/variadic124.C
13413===================================================================
13414--- gcc/testsuite/g++.dg/cpp0x/variadic124.C (.../tags/gcc_4_7_0_release) (wersja 0)
13415+++ gcc/testsuite/g++.dg/cpp0x/variadic124.C (.../branches/gcc-4_7-branch) (wersja 187906)
13416@@ -0,0 +1,29 @@
13417+// PR c++/52292
13418+// { dg-options -std=c++11 }
13419+
13420+template <template <typename...> class T>
13421+struct foo {
13422+ template <typename... U>
13423+ foo(T<U...> x) { }
13424+};
13425+
13426+template <typename T>
13427+struct bar {
13428+ bar(T x) : value(x) { }
13429+
13430+ T value;
13431+};
13432+
13433+struct generic : private foo<bar> {
13434+ template <typename T>
13435+ generic(bar<T> x) : foo(x)
13436+ {
13437+ }
13438+
13439+};
13440+
13441+int main()
13442+{
13443+ bar<int> x(32);
13444+ generic y(x); // FAILS
13445+}
13446Index: gcc/testsuite/g++.dg/cpp0x/initlist-array3.C
13447===================================================================
13448--- gcc/testsuite/g++.dg/cpp0x/initlist-array3.C (.../tags/gcc_4_7_0_release) (wersja 0)
13449+++ gcc/testsuite/g++.dg/cpp0x/initlist-array3.C (.../branches/gcc-4_7-branch) (wersja 187906)
13450@@ -0,0 +1,10 @@
13451+// PR c++/52743
13452+// { dg-do compile { target c++11 } }
13453+
13454+void composite (int const (&) [2]);
13455+void composite (int const (&) [3]);
13456+
13457+int main ()
13458+{
13459+ composite({0,1}); // { dg-error "ambiguous" }
13460+}
13461Index: gcc/testsuite/g++.dg/cpp0x/variadic125.C
13462===================================================================
13463--- gcc/testsuite/g++.dg/cpp0x/variadic125.C (.../tags/gcc_4_7_0_release) (wersja 0)
13464+++ gcc/testsuite/g++.dg/cpp0x/variadic125.C (.../branches/gcc-4_7-branch) (wersja 187906)
13465@@ -0,0 +1,25 @@
13466+// PR c++/52380
13467+// { dg-do compile { target c++11 } }
13468+
13469+template<typename T>
13470+struct S
13471+{
13472+ template<typename U>
13473+ struct Unary // Line 5
13474+ {};
13475+
13476+ template<unsigned, typename... Args>
13477+ struct Dispatch // Line 9
13478+ : public Unary<Args...>
13479+ {};
13480+
13481+ template<typename... Args>
13482+ struct Variadic
13483+ : public Dispatch<sizeof...(Args), Args...>
13484+ {};
13485+};
13486+
13487+int main()
13488+{
13489+ S<void>::Variadic<void> z;
13490+}
13491Index: gcc/testsuite/g++.dg/cpp0x/variadic-value1.C
13492===================================================================
13493--- gcc/testsuite/g++.dg/cpp0x/variadic-value1.C (.../tags/gcc_4_7_0_release) (wersja 0)
13494+++ gcc/testsuite/g++.dg/cpp0x/variadic-value1.C (.../branches/gcc-4_7-branch) (wersja 187906)
13495@@ -0,0 +1,24 @@
13496+// PR c++/52796
13497+// { dg-do run { target c++11 } }
13498+
13499+inline void *operator new(__SIZE_TYPE__ s, void *p) { return p; }
13500+
13501+struct A
13502+{
13503+ int i;
13504+ template<class... Ts>
13505+ A(Ts&&... ts): i(ts...) { }
13506+};
13507+
13508+static union {
13509+ unsigned char c[sizeof(A)];
13510+ int i;
13511+};
13512+
13513+int main()
13514+{
13515+ i = 0xdeadbeef;
13516+ new(c) A;
13517+ if (i != 0)
13518+ __builtin_abort();
13519+}
13520Index: gcc/testsuite/g++.dg/cpp0x/udlit-args2.C
13521===================================================================
13522--- gcc/testsuite/g++.dg/cpp0x/udlit-args2.C (.../tags/gcc_4_7_0_release) (wersja 0)
13523+++ gcc/testsuite/g++.dg/cpp0x/udlit-args2.C (.../branches/gcc-4_7-branch) (wersja 187906)
13524@@ -0,0 +1,15 @@
13525+// PR c++/52521
13526+// { dg-do compile }
13527+// { dg-options -std=c++11 }
13528+
13529+#include <cstddef>
13530+
13531+int operator "" _a (const char *);
13532+int operator "" _a (const char *, std::size_t);
13533+int a = 123_a;
13534+int a2 = "abc"_a;
13535+
13536+int operator "" _b (const char *, std::size_t);
13537+int operator "" _b (const char *);
13538+int b = 123_b;
13539+int b2 = "abc"_b;
13540Index: gcc/testsuite/g++.dg/cpp0x/variadic128.C
13541===================================================================
13542--- gcc/testsuite/g++.dg/cpp0x/variadic128.C (.../tags/gcc_4_7_0_release) (wersja 0)
13543+++ gcc/testsuite/g++.dg/cpp0x/variadic128.C (.../branches/gcc-4_7-branch) (wersja 187906)
13544@@ -0,0 +1,16 @@
13545+// PR c++/50303
13546+// { dg-do compile { target c++11 } }
13547+
13548+template<typename Interface>
13549+struct A1 {
13550+};
13551+
13552+template<template<class I> class... Actions>
13553+void g2() {
13554+ g2<Actions...>();
13555+}
13556+
13557+int main()
13558+{
13559+ g2<A1>();
13560+}
13561Index: gcc/testsuite/g++.dg/cpp0x/variadic129.C
13562===================================================================
13563--- gcc/testsuite/g++.dg/cpp0x/variadic129.C (.../tags/gcc_4_7_0_release) (wersja 0)
13564+++ gcc/testsuite/g++.dg/cpp0x/variadic129.C (.../branches/gcc-4_7-branch) (wersja 187906)
13565@@ -0,0 +1,19 @@
13566+// PR c++/50830
13567+// { dg-do compile { target c++11 } }
13568+
13569+template<template<class> class...>
13570+struct list_templates {};
13571+
13572+template<class>
13573+struct aa {};
13574+
13575+template<class... T>
13576+struct test {};
13577+
13578+template<template<class> class... F, class T>
13579+struct test<list_templates<F...>, T>
13580+{
13581+ struct inner {};
13582+};
13583+
13584+test<list_templates<aa>, int> a4; // error
13585Index: gcc/testsuite/g++.dg/torture/pr53364.C
13586===================================================================
13587--- gcc/testsuite/g++.dg/torture/pr53364.C (.../tags/gcc_4_7_0_release) (wersja 0)
13588+++ gcc/testsuite/g++.dg/torture/pr53364.C (.../branches/gcc-4_7-branch) (wersja 187906)
13589@@ -0,0 +1,37 @@
13590+// { dg-do run }
13591+
13592+extern "C" void abort (void);
13593+
13594+template<typename _Tp>
13595+inline const _Tp&
13596+min(const _Tp& __a, const _Tp& __b)
13597+{
13598+ if (__b < __a)
13599+ return __b;
13600+ return __a;
13601+}
13602+
13603+struct A
13604+{
13605+ int m_x;
13606+
13607+ explicit A(int x) : m_x(x) {}
13608+ operator int() const { return m_x; }
13609+};
13610+
13611+struct B : public A
13612+{
13613+public:
13614+ explicit B(int x) : A(x) {}
13615+};
13616+
13617+int data = 1;
13618+
13619+int main()
13620+{
13621+ B b = B(10);
13622+ b = min(b, B(data));
13623+ if (b != 1)
13624+ abort ();
13625+ return 0;
13626+}
13627Index: gcc/testsuite/g++.dg/torture/pr53085.C
13628===================================================================
13629--- gcc/testsuite/g++.dg/torture/pr53085.C (.../tags/gcc_4_7_0_release) (wersja 0)
13630+++ gcc/testsuite/g++.dg/torture/pr53085.C (.../branches/gcc-4_7-branch) (wersja 187906)
13631@@ -0,0 +1,17 @@
13632+// { dg-do compile }
13633+// { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } { "" } }
13634+// { dg-options "-fdump-tree-optimized" }
13635+
13636+class aa{
13637+ void f();
13638+private:
13639+ volatile int a;
13640+};
13641+
13642+void aa::f(){
13643+ a=1;
13644+ a=1;
13645+}
13646+
13647+// { dg-final { scan-tree-dump-times "a ={v} 1;" 2 "optimized" } }
13648+// { dg-final { cleanup-tree-dump "optimized" } }
13649Index: gcc/testsuite/g++.dg/torture/pr52582.C
13650===================================================================
13651--- gcc/testsuite/g++.dg/torture/pr52582.C (.../tags/gcc_4_7_0_release) (wersja 0)
13652+++ gcc/testsuite/g++.dg/torture/pr52582.C (.../branches/gcc-4_7-branch) (wersja 187906)
13653@@ -0,0 +1,23 @@
13654+// PR c++/52582
13655+
13656+inline void *operator new (__SIZE_TYPE__, void *p) throw ()
13657+{
13658+ return p;
13659+}
13660+struct B
13661+{
13662+ virtual ~B ();
13663+ B ();
13664+};
13665+struct A : B
13666+{
13667+ A () : B () {}
13668+ virtual void bar ();
13669+};
13670+void
13671+foo ()
13672+{
13673+ char a[64];
13674+ B *b = new (&a) A ();
13675+ b->~B ();
13676+}
13677Index: gcc/testsuite/g++.dg/ipa/pr52939.C
13678===================================================================
13679--- gcc/testsuite/g++.dg/ipa/pr52939.C (.../tags/gcc_4_7_0_release) (wersja 0)
13680+++ gcc/testsuite/g++.dg/ipa/pr52939.C (.../branches/gcc-4_7-branch) (wersja 187906)
13681@@ -0,0 +1,58 @@
13682+/* Verify that we do not ICE on invalid devirtualizations (which might
13683+ be OK at run-time because never executed). */
13684+/* { dg-do run } */
13685+/* { dg-options "-O3 -fno-early-inlining -fno-inline" } */
13686+
13687+extern "C" void abort (void);
13688+
13689+class A
13690+{
13691+public:
13692+ int data;
13693+ virtual int foo (int i);
13694+};
13695+
13696+class B : public A
13697+{
13698+public:
13699+ virtual int foo (int i);
13700+ virtual int bar (int i);
13701+};
13702+
13703+int A::foo (int i)
13704+{
13705+ return i + 1;
13706+}
13707+
13708+int B::foo (int i)
13709+{
13710+ return i + 2;
13711+}
13712+
13713+int B::bar (int i)
13714+{
13715+ return i + 3;
13716+}
13717+
13718+static int middleman (class A *obj, int i)
13719+{
13720+ class B *b = (class B *) obj;
13721+
13722+ if (i != 1)
13723+ return b->bar (i);
13724+ else
13725+ return i;
13726+}
13727+
13728+int __attribute__ ((noinline,noclone)) get_input(void)
13729+{
13730+ return 1;
13731+}
13732+
13733+int main (int argc, char *argv[])
13734+{
13735+ class A o;
13736+ if (middleman (&o, get_input ()) != 1)
13737+ abort ();
13738+ return 0;
13739+}
13740Index: gcc/testsuite/g++.dg/overload/virtual2.C
13741===================================================================
13742--- gcc/testsuite/g++.dg/overload/virtual2.C (.../tags/gcc_4_7_0_release) (wersja 0)
13743+++ gcc/testsuite/g++.dg/overload/virtual2.C (.../branches/gcc-4_7-branch) (wersja 187906)
13744@@ -0,0 +1,31 @@
13745+// PR c++/52746
13746+// { dg-do run }
13747+
13748+extern "C" int printf(const char*,...);
13749+extern "C" void abort();
13750+bool db;
13751+
13752+struct A
13753+{
13754+ virtual ~A() {}
13755+};
13756+
13757+struct B : public A
13758+{
13759+ virtual ~B() { db = true; }
13760+};
13761+
13762+template<int> void test()
13763+{
13764+ B * b = new B;
13765+ A * a = b;
13766+ a->~A();
13767+ ::operator delete(b);
13768+}
13769+
13770+int main()
13771+{
13772+ test<0>();
13773+ if (!db)
13774+ abort();
13775+}
13776Index: gcc/testsuite/g++.dg/template/inherit8.C
13777===================================================================
13778--- gcc/testsuite/g++.dg/template/inherit8.C (.../tags/gcc_4_7_0_release) (wersja 0)
13779+++ gcc/testsuite/g++.dg/template/inherit8.C (.../branches/gcc-4_7-branch) (wersja 187906)
13780@@ -0,0 +1,13 @@
13781+// PR c++/52685
13782+
13783+template <typename T>
13784+struct A
13785+{
13786+ template <typename U>
13787+ struct B : public A <B<U> >
13788+ {
13789+ struct C : public B<U>
13790+ {
13791+ };
13792+ };
13793+};
13794Index: gcc/testsuite/g++.dg/template/qualified-id5.C
13795===================================================================
13796--- gcc/testsuite/g++.dg/template/qualified-id5.C (.../tags/gcc_4_7_0_release) (wersja 0)
13797+++ gcc/testsuite/g++.dg/template/qualified-id5.C (.../branches/gcc-4_7-branch) (wersja 187906)
13798@@ -0,0 +1,17 @@
13799+// PR c++/52596
13800+
13801+struct msgpack_zone_finalizer_array {
13802+ int* tail;
13803+};
13804+struct msgpack_zone {
13805+ msgpack_zone_finalizer_array finalizer_array;
13806+};
13807+struct zone : public msgpack_zone {
13808+ template <typename T> T* allocate();
13809+
13810+};
13811+template <typename T>
13812+T* zone::allocate()
13813+{
13814+ --msgpack_zone::finalizer_array.tail;
13815+}
13816Index: gcc/cp/typeck.c
13817===================================================================
13818--- gcc/cp/typeck.c (.../tags/gcc_4_7_0_release) (wersja 187906)
13819+++ gcc/cp/typeck.c (.../branches/gcc-4_7-branch) (wersja 187906)
13820@@ -2410,6 +2410,11 @@
13821 tf_warning_or_error);
13822 expr = (adjust_result_of_qualified_name_lookup
13823 (expr, dtor_type, object_type));
13824+ if (scope == NULL_TREE)
13825+ /* We need to call adjust_result_of_qualified_name_lookup in case the
13826+ destructor names a base class, but we unset BASELINK_QUALIFIED_P so
13827+ that we still get virtual function binding. */
13828+ BASELINK_QUALIFIED_P (expr) = false;
13829 return expr;
13830 }
13831
13832Index: gcc/cp/class.c
13833===================================================================
13834--- gcc/cp/class.c (.../tags/gcc_4_7_0_release) (wersja 187906)
13835+++ gcc/cp/class.c (.../branches/gcc-4_7-branch) (wersja 187906)
13836@@ -3145,8 +3145,9 @@
13837 CLASSTYPE_NON_AGGREGATE (t) = 1;
13838
13839 /* If at least one non-static data member is non-literal, the whole
13840- class becomes non-literal. */
13841- if (!literal_type_p (type))
13842+ class becomes non-literal. Note: if the type is incomplete we
13843+ will complain later on. */
13844+ if (COMPLETE_TYPE_P (type) && !literal_type_p (type))
13845 CLASSTYPE_LITERAL_P (t) = false;
13846
13847 /* A standard-layout class is a class that:
13848Index: gcc/cp/decl.c
13849===================================================================
13850--- gcc/cp/decl.c (.../tags/gcc_4_7_0_release) (wersja 187906)
13851+++ gcc/cp/decl.c (.../branches/gcc-4_7-branch) (wersja 187906)
13852@@ -4216,10 +4216,11 @@
13853 error ("%<constexpr%> cannot be used for type declarations");
13854 }
13855
13856- if (declspecs->attributes)
13857+ if (declspecs->attributes && declared_type)
13858 {
13859 location_t loc = input_location;
13860- if (!CLASSTYPE_TEMPLATE_INSTANTIATION (declared_type))
13861+ if (!CLASS_TYPE_P (declared_type)
13862+ || !CLASSTYPE_TEMPLATE_INSTANTIATION (declared_type))
13863 /* For a non-template class, use the name location; for a template
13864 class (an explicit instantiation), use the current location. */
13865 input_location = location_of (declared_type);
13866@@ -4419,7 +4420,8 @@
13867 }
13868
13869 /* If #pragma weak was used, mark the decl weak now. */
13870- maybe_apply_pragma_weak (decl);
13871+ if (!processing_template_decl)
13872+ maybe_apply_pragma_weak (decl);
13873
13874 if (TREE_CODE (decl) == FUNCTION_DECL
13875 && DECL_DECLARED_INLINE_P (decl)
13876@@ -10574,6 +10576,17 @@
13877 return error_mark_node;
13878 }
13879
13880+ if (warn_zero_as_null_pointer_constant
13881+ && c_inhibit_evaluation_warnings == 0
13882+ && (TYPE_PTR_P (decl_type) || TYPE_PTR_TO_MEMBER_P (decl_type))
13883+ && null_ptr_cst_p (arg)
13884+ && !NULLPTR_TYPE_P (TREE_TYPE (arg)))
13885+ {
13886+ warning (OPT_Wzero_as_null_pointer_constant,
13887+ "zero as null pointer constant");
13888+ return nullptr_node;
13889+ }
13890+
13891 /* [dcl.fct.default]
13892
13893 Local variables shall not be used in default argument
13894Index: gcc/cp/method.c
13895===================================================================
13896--- gcc/cp/method.c (.../tags/gcc_4_7_0_release) (wersja 187906)
13897+++ gcc/cp/method.c (.../branches/gcc-4_7-branch) (wersja 187906)
13898@@ -1590,6 +1590,7 @@
13899 DECL_DELETED_FN (fn) = deleted_p;
13900 DECL_DECLARED_CONSTEXPR_P (fn) = constexpr_p;
13901 }
13902+ DECL_EXTERNAL (fn) = true;
13903 DECL_NOT_REALLY_EXTERN (fn) = 1;
13904 DECL_DECLARED_INLINE_P (fn) = 1;
13905 gcc_assert (!TREE_USED (fn));
13906Index: gcc/cp/tree.c
13907===================================================================
13908--- gcc/cp/tree.c (.../tags/gcc_4_7_0_release) (wersja 187906)
13909+++ gcc/cp/tree.c (.../branches/gcc-4_7-branch) (wersja 187906)
13910@@ -150,8 +150,14 @@
13911 /* A scope ref in a template, left as SCOPE_REF to support later
13912 access checking. */
13913 case SCOPE_REF:
13914- gcc_assert (!type_dependent_expression_p (CONST_CAST_TREE(ref)));
13915- return lvalue_kind (TREE_OPERAND (ref, 1));
13916+ {
13917+ tree op = TREE_OPERAND (ref, 1);
13918+ /* The member must be an lvalue; assume it isn't a bit-field. */
13919+ if (TREE_CODE (op) == IDENTIFIER_NODE)
13920+ return clk_ordinary;
13921+ gcc_assert (!type_dependent_expression_p (CONST_CAST_TREE (ref)));
13922+ return lvalue_kind (op);
13923+ }
13924
13925 case MAX_EXPR:
13926 case MIN_EXPR:
13927@@ -1228,12 +1234,11 @@
13928 TREE_CHAIN (*igo_prev) = new_binfo;
13929 *igo_prev = new_binfo;
13930
13931- if (binfo)
13932+ if (binfo && !BINFO_DEPENDENT_BASE_P (binfo))
13933 {
13934 int ix;
13935 tree base_binfo;
13936
13937- gcc_assert (!BINFO_DEPENDENT_BASE_P (binfo));
13938 gcc_assert (SAME_BINFO_TYPE_P (BINFO_TYPE (binfo), type));
13939
13940 BINFO_OFFSET (new_binfo) = BINFO_OFFSET (binfo);
13941@@ -1246,8 +1251,6 @@
13942 for (ix = 0; BINFO_BASE_ITERATE (binfo, ix, base_binfo); ix++)
13943 {
13944 tree new_base_binfo;
13945-
13946- gcc_assert (!BINFO_DEPENDENT_BASE_P (base_binfo));
13947 new_base_binfo = copy_binfo (base_binfo, BINFO_TYPE (base_binfo),
13948 t, igo_prev,
13949 BINFO_VIRTUAL_P (base_binfo));
13950Index: gcc/cp/ChangeLog
13951===================================================================
13952--- gcc/cp/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187906)
13953+++ gcc/cp/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187906)
13954@@ -1,3 +1,144 @@
13955+2012-05-15 Alexandre Oliva <aoliva@redhat.com>
13956+
13957+ PR c++/53209
13958+ * pt.c (tsubst_decl): Bail out if argvec is error_mark_node.
13959+
13960+2012-05-10 Paolo Carlini <paolo.carlini@oracle.com>
13961+
13962+ PR c++/53301
13963+ * decl.c (check_default_argument): Fix typo (POINTER_TYPE_P
13964+ instead of TYPE_PTR_P) in zero-as-null-pointer-constant warning.
13965+
13966+2012-05-03 Paolo Carlini <paolo.carlini@oracle.com>
13967+
13968+ PR c++/53186
13969+ * call.c (build_over_call): Handle final member functions
13970+ and class types.
13971+ (build_new_method_call_1): Do not handle here.
13972+
13973+2012-04-17 Paolo Carlini <paolo.carlini@oracle.com>
13974+
13975+ PR c++/53003
13976+ * parser.c (cp_parser_member_declaration): Check that
13977+ initializer_token_start is non null before dereferencing it.
13978+
13979+2012-04-16 Jason Merrill <jason@redhat.com>
13980+
13981+ PR c++/38543
13982+ * pt.c (determine_specialization): Instead of comparing the number
13983+ of parms, check that tsubst gives the right answer.
13984+
13985+ PR c++/50830
13986+ * pt.c (convert_template_argument): Handle template template
13987+ argument packs.
13988+
13989+ PR c++/50303
13990+ * pt.c (tsubst_pack_expansion): Use tsubst_expr for template
13991+ template parameters.
13992+
13993+2012-04-15 Jason Merrill <jason@redhat.com>
13994+
13995+ PR c++/52292
13996+ PR c++/52380
13997+ * pt.c (coerce_template_parms): Even if we aren't converting we
13998+ want to expand argument packs.
13999+
14000+2012-04-15 Fabien Chêne <fabien@gcc.gnu.org>
14001+
14002+ PR c++/52465
14003+ * parser.c (cp_parser_class_name): Call strip_using_decl and
14004+ return the target decl.
14005+ * name-lookup.c (strip_using_decl): Returns NULL_TREE if the decl
14006+ to be stripped is NULL_TREE.
14007+ (qualify_lookup): Call strip_using_decl and perform some checks on
14008+ the target decl.
14009+
14010+2012-04-13 Jason Merrill <jason@redhat.com>
14011+
14012+ PR c++/52824
14013+ * pt.c (any_pack_expanson_args_p): New.
14014+ (coerce_template_parms): Use it.
14015+
14016+2012-04-11 Jason Merrill <jason@redhat.com>
14017+
14018+ PR c++/52906
14019+ * decl.c (check_tag_decl): Don't complain about attributes if we
14020+ don't even have a type.
14021+
14022+2012-04-05 Jason Merrill <jason@redhat.com>
14023+
14024+ PR c++/52596
14025+ * tree.c (lvalue_kind): Treat a deferred access control SCOPE_REF
14026+ as an lvalue.
14027+
14028+2012-04-03 Jason Merrill <jason@redhat.com>
14029+
14030+ PR c++/52796
14031+ * pt.c (tsubst_initializer_list): A pack expansion with no elements
14032+ means value-initialization.
14033+
14034+2012-03-29 Meador Inge <meadori@codesourcery.com>
14035+
14036+ PR c++/52672
14037+ * semantics.c (cxx_fold_indirect_ref): Don't attempt to fold
14038+ stripped child trees that are not pointer types.
14039+
14040+2012-03-29 Paolo Carlini <paolo.carlini@oracle.com>
14041+
14042+ PR c++/52718
14043+ * decl.c (check_default_argument): With -Wzero-as-null-pointer-constant
14044+ warn for a zero as null pointer constant default argument.
14045+
14046+2012-03-29 Jason Merrill <jason@redhat.com>
14047+
14048+ PR c++/52685
14049+ * tree.c (copy_binfo): Handle BINFO_DEPENDENT_BASE_P.
14050+
14051+2012-03-29 Jakub Jelinek <jakub@redhat.com>
14052+
14053+ PR c++/52759
14054+ * decl.c (start_decl): Don't call maybe_apply_pragma_weak
14055+ if processing_template_decl.
14056+
14057+2012-03-29 Jason Merrill <jason@redhat.com>
14058+
14059+ PR c++/52743
14060+ * call.c (compare_ics): Handle ck_aggr like ck_list.
14061+
14062+2012-03-28 Jason Merrill <jason@redhat.com>
14063+
14064+ PR c++/52746
14065+ * typeck.c (lookup_destructor): Clear BASELINK_QUALIFIED_P if
14066+ we didn't get an explicit scope.
14067+ * pt.c (tsubst_baselink): Likewise.
14068+
14069+2012-03-22 Paolo Carlini <paolo.carlini@oracle.com>
14070+
14071+ PR c++/52487
14072+ * class.c (check_field_decls): Call literal_type_p only
14073+ on complete types.
14074+
14075+2012-03-22 Jakub Jelinek <jakub@redhat.com>
14076+
14077+ PR c++/52671
14078+ * decl.c (check_tag_decl): Only use CLASSTYPE_TEMPLATE_INSTANTIATION
14079+ on CLASS_TYPE_P types.
14080+
14081+2012-03-22 Jason Merrill <jason@redhat.com>
14082+
14083+ PR c++/52582
14084+ * method.c (implicitly_declare_fn): Set DECL_EXTERNAL.
14085+
14086+2012-03-22 Jakub Jelinek <jakub@redhat.com>
14087+
14088+ Backported from mainline
14089+ 2012-03-14 Jakub Jelinek <jakub@redhat.com>
14090+
14091+ PR c++/52521
14092+ * parser.c (lookup_literal_operator): Return fn only if
14093+ processed all arguments from args vector and argtypes is
14094+ void_list_node.
14095+
14096 2012-03-22 Release Manager
14097
14098 * GCC 4.7.0 released.
14099Index: gcc/cp/pt.c
14100===================================================================
14101--- gcc/cp/pt.c (.../tags/gcc_4_7_0_release) (wersja 187906)
14102+++ gcc/cp/pt.c (.../branches/gcc-4_7-branch) (wersja 187906)
14103@@ -1860,6 +1860,7 @@
14104 {
14105 tree decl_arg_types;
14106 tree fn_arg_types;
14107+ tree insttype;
14108
14109 /* In case of explicit specialization, we need to check if
14110 the number of template headers appearing in the specialization
14111@@ -1927,7 +1928,8 @@
14112 template <> void f<int>();
14113 The specialization f<int> is invalid but is not caught
14114 by get_bindings below. */
14115- if (list_length (fn_arg_types) != list_length (decl_arg_types))
14116+ if (cxx_dialect < cxx11
14117+ && list_length (fn_arg_types) != list_length (decl_arg_types))
14118 continue;
14119
14120 /* Function templates cannot be specializations; there are
14121@@ -1950,6 +1952,18 @@
14122 specialize TMPL will produce DECL. */
14123 continue;
14124
14125+ if (cxx_dialect >= cxx11)
14126+ {
14127+ /* Make sure that the deduced arguments actually work. */
14128+ insttype = tsubst (TREE_TYPE (fn), targs, tf_none, NULL_TREE);
14129+ if (insttype == error_mark_node)
14130+ continue;
14131+ fn_arg_types
14132+ = skip_artificial_parms_for (fn, TYPE_ARG_TYPES (insttype));
14133+ if (!compparms (fn_arg_types, decl_arg_types))
14134+ continue;
14135+ }
14136+
14137 /* Save this template, and the arguments deduced. */
14138 templates = tree_cons (targs, fn, templates);
14139 }
14140@@ -6437,6 +6451,7 @@
14141 is_tmpl_type =
14142 ((TREE_CODE (arg) == TEMPLATE_DECL
14143 && TREE_CODE (DECL_TEMPLATE_RESULT (arg)) == TYPE_DECL)
14144+ || (requires_tmpl_type && TREE_CODE (arg) == TYPE_ARGUMENT_PACK)
14145 || TREE_CODE (arg) == TEMPLATE_TEMPLATE_PARM
14146 || TREE_CODE (arg) == UNBOUND_CLASS_TEMPLATE);
14147
14148@@ -6508,7 +6523,9 @@
14149 {
14150 if (requires_tmpl_type)
14151 {
14152- if (TREE_CODE (TREE_TYPE (arg)) == UNBOUND_CLASS_TEMPLATE)
14153+ if (template_parameter_pack_p (parm) && ARGUMENT_PACK_P (orig_arg))
14154+ val = orig_arg;
14155+ else if (TREE_CODE (TREE_TYPE (arg)) == UNBOUND_CLASS_TEMPLATE)
14156 /* The number of argument required is not known yet.
14157 Just accept it for now. */
14158 val = TREE_TYPE (arg);
14159@@ -6734,6 +6751,20 @@
14160 return argument_pack;
14161 }
14162
14163+/* Returns true if the template argument vector ARGS contains
14164+ any pack expansions, false otherwise. */
14165+
14166+static bool
14167+any_pack_expanson_args_p (tree args)
14168+{
14169+ int i;
14170+ if (args)
14171+ for (i = 0; i < TREE_VEC_LENGTH (args); ++i)
14172+ if (PACK_EXPANSION_P (TREE_VEC_ELT (args, i)))
14173+ return true;
14174+ return false;
14175+}
14176+
14177 /* Convert all template arguments to their appropriate types, and
14178 return a vector containing the innermost resulting template
14179 arguments. If any error occurs, return error_mark_node. Error and
14180@@ -6799,6 +6830,7 @@
14181 if ((nargs > nparms && !variadic_p)
14182 || (nargs < nparms - variadic_p
14183 && require_all_args
14184+ && !any_pack_expanson_args_p (inner_args)
14185 && (!use_default_args
14186 || (TREE_VEC_ELT (parms, nargs) != error_mark_node
14187 && !TREE_PURPOSE (TREE_VEC_ELT (parms, nargs))))))
14188@@ -6876,7 +6908,7 @@
14189 {
14190 /* We don't know how many args we have yet, just
14191 use the unconverted ones for now. */
14192- new_inner_args = args;
14193+ new_inner_args = inner_args;
14194 break;
14195 }
14196 }
14197@@ -9548,7 +9580,7 @@
14198 }
14199
14200 /* Substitute into the PATTERN with the altered arguments. */
14201- if (TREE_CODE (t) == EXPR_PACK_EXPANSION)
14202+ if (!TYPE_P (pattern))
14203 TREE_VEC_ELT (result, i) =
14204 tsubst_expr (pattern, args, complain, in_decl,
14205 /*integral_constant_expression_p=*/false);
14206@@ -10636,6 +10668,8 @@
14207 tmpl = DECL_TI_TEMPLATE (t);
14208 gen_tmpl = most_general_template (tmpl);
14209 argvec = tsubst (DECL_TI_ARGS (t), args, complain, in_decl);
14210+ if (argvec == error_mark_node)
14211+ RETURN (error_mark_node);
14212 hash = hash_tmpl_and_args (gen_tmpl, argvec);
14213 spec = retrieve_specialization (gen_tmpl, argvec, hash);
14214 }
14215@@ -11858,6 +11892,7 @@
14216 tree optype;
14217 tree template_args = 0;
14218 bool template_id_p = false;
14219+ bool qualified = BASELINK_QUALIFIED_P (baselink);
14220
14221 /* A baselink indicates a function from a base class. Both the
14222 BASELINK_ACCESS_BINFO and the base class referenced may
14223@@ -11906,9 +11941,12 @@
14224
14225 if (!object_type)
14226 object_type = current_class_type;
14227- return adjust_result_of_qualified_name_lookup (baselink,
14228- qualifying_scope,
14229- object_type);
14230+
14231+ if (qualified)
14232+ baselink = adjust_result_of_qualified_name_lookup (baselink,
14233+ qualifying_scope,
14234+ object_type);
14235+ return baselink;
14236 }
14237
14238 /* Like tsubst_expr for a SCOPE_REF, given by QUALIFIED_ID. DONE is
14239@@ -18979,6 +19017,7 @@
14240 }
14241 else
14242 {
14243+ tree tmp;
14244 decl = tsubst_copy (TREE_PURPOSE (t), argvec,
14245 tf_warning_or_error, NULL_TREE);
14246
14247@@ -18987,10 +19026,17 @@
14248 in_base_initializer = 1;
14249
14250 init = TREE_VALUE (t);
14251+ tmp = init;
14252 if (init != void_type_node)
14253 init = tsubst_expr (init, argvec,
14254 tf_warning_or_error, NULL_TREE,
14255 /*integral_constant_expression_p=*/false);
14256+ if (init == NULL_TREE && tmp != NULL_TREE)
14257+ /* If we had an initializer but it instantiated to nothing,
14258+ value-initialize the object. This will only occur when
14259+ the initializer was a pack expansion where the parameter
14260+ packs used in that expansion were of length zero. */
14261+ init = void_type_node;
14262 in_base_initializer = 0;
14263 }
14264
14265Index: gcc/cp/semantics.c
14266===================================================================
14267--- gcc/cp/semantics.c (.../tags/gcc_4_7_0_release) (wersja 187906)
14268+++ gcc/cp/semantics.c (.../branches/gcc-4_7-branch) (wersja 187906)
14269@@ -7202,7 +7202,8 @@
14270 sub = op0;
14271 STRIP_NOPS (sub);
14272 subtype = TREE_TYPE (sub);
14273- gcc_assert (POINTER_TYPE_P (subtype));
14274+ if (!POINTER_TYPE_P (subtype))
14275+ return NULL_TREE;
14276
14277 if (TREE_CODE (sub) == ADDR_EXPR)
14278 {
14279Index: gcc/cp/parser.c
14280===================================================================
14281--- gcc/cp/parser.c (.../tags/gcc_4_7_0_release) (wersja 187906)
14282+++ gcc/cp/parser.c (.../branches/gcc-4_7-branch) (wersja 187906)
14283@@ -1,6 +1,6 @@
14284 /* C++ Parser.
14285 Copyright (C) 2000, 2001, 2002, 2003, 2004,
14286- 2005, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
14287+ 2005, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
14288 Written by Mark Mitchell <mark@codesourcery.com>.
14289
14290 This file is part of GCC.
14291@@ -3581,7 +3581,13 @@
14292 TREE_TYPE (tparm))))
14293 found = false;
14294 }
14295- if (found)
14296+ if (found
14297+ && ix == VEC_length (tree, args)
14298+ /* May be this should be sufficient_parms_p instead,
14299+ depending on how exactly should user-defined literals
14300+ work in presence of default arguments on the literal
14301+ operator parameters. */
14302+ && argtypes == void_list_node)
14303 return fn;
14304 }
14305 }
14306@@ -17835,6 +17841,8 @@
14307 decl = TYPE_NAME (decl);
14308 }
14309
14310+ decl = strip_using_decl (decl);
14311+
14312 /* Check to see that it is really the name of a class. */
14313 if (TREE_CODE (decl) == TEMPLATE_ID_EXPR
14314 && TREE_CODE (TREE_OPERAND (decl, 0)) == IDENTIFIER_NODE
14315@@ -19097,7 +19105,7 @@
14316 possible that this fact is an oversight in the
14317 standard, since a pure function may be defined
14318 outside of the class-specifier. */
14319- if (initializer)
14320+ if (initializer && initializer_token_start)
14321 error_at (initializer_token_start->location,
14322 "pure-specifier on function-definition");
14323 decl = cp_parser_save_member_function_body (parser,
14324Index: gcc/cp/call.c
14325===================================================================
14326--- gcc/cp/call.c (.../tags/gcc_4_7_0_release) (wersja 187906)
14327+++ gcc/cp/call.c (.../branches/gcc-4_7-branch) (wersja 187906)
14328@@ -6464,6 +6464,12 @@
14329 return error_mark_node;
14330 }
14331
14332+ /* See if the function member or the whole class type is declared
14333+ final and the call can be devirtualized. */
14334+ if (DECL_FINAL_P (fn)
14335+ || CLASSTYPE_FINAL (TYPE_METHOD_BASETYPE (TREE_TYPE (fn))))
14336+ flags |= LOOKUP_NONVIRTUAL;
14337+
14338 /* [class.mfct.nonstatic]: If a nonstatic member function of a class
14339 X is called for an object that is not of type X, or of a type
14340 derived from X, the behavior is undefined.
14341@@ -7324,8 +7330,7 @@
14342 /* Optimize away vtable lookup if we know that this function
14343 can't be overridden. */
14344 if (DECL_VINDEX (fn) && ! (flags & LOOKUP_NONVIRTUAL)
14345- && (resolves_to_fixed_type_p (instance, 0)
14346- || DECL_FINAL_P (fn) || CLASSTYPE_FINAL (basetype)))
14347+ && resolves_to_fixed_type_p (instance, 0))
14348 flags |= LOOKUP_NONVIRTUAL;
14349 if (explicit_targs)
14350 flags |= LOOKUP_EXPLICIT_TMPL_ARGS;
14351@@ -7615,7 +7620,7 @@
14352 Specifically, we need to do the reference binding comparison at the
14353 end of this function. */
14354
14355- if (ics1->user_conv_p || ics1->kind == ck_list)
14356+ if (ics1->user_conv_p || ics1->kind == ck_list || ics1->kind == ck_aggr)
14357 {
14358 conversion *t1;
14359 conversion *t2;
14360Index: gcc/cp/name-lookup.c
14361===================================================================
14362--- gcc/cp/name-lookup.c (.../tags/gcc_4_7_0_release) (wersja 187906)
14363+++ gcc/cp/name-lookup.c (.../branches/gcc-4_7-branch) (wersja 187906)
14364@@ -1,5 +1,5 @@
14365 /* Definitions for C++ name lookup routines.
14366- Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
14367+ Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
14368 Free Software Foundation, Inc.
14369 Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
14370
14371@@ -400,6 +400,9 @@
14372 tree
14373 strip_using_decl (tree decl)
14374 {
14375+ if (decl == NULL_TREE)
14376+ return NULL_TREE;
14377+
14378 while (TREE_CODE (decl) == USING_DECL && !DECL_DEPENDENT_P (decl))
14379 decl = USING_DECL_DECLS (decl);
14380 return decl;
14381@@ -4115,9 +4118,13 @@
14382 return false;
14383 if ((flags & LOOKUP_PREFER_NAMESPACES) && TREE_CODE (val) == NAMESPACE_DECL)
14384 return true;
14385- if ((flags & LOOKUP_PREFER_TYPES)
14386- && (TREE_CODE (val) == TYPE_DECL || TREE_CODE (val) == TEMPLATE_DECL))
14387- return true;
14388+ if (flags & LOOKUP_PREFER_TYPES)
14389+ {
14390+ tree target_val = strip_using_decl (val);
14391+ if (TREE_CODE (target_val) == TYPE_DECL
14392+ || TREE_CODE (target_val) == TEMPLATE_DECL)
14393+ return true;
14394+ }
14395 if (flags & (LOOKUP_PREFER_NAMESPACES | LOOKUP_PREFER_TYPES))
14396 return false;
14397 /* Look through lambda things that we shouldn't be able to see. */
14398Index: gcc/tree-ssa-ccp.c
14399===================================================================
14400--- gcc/tree-ssa-ccp.c (.../tags/gcc_4_7_0_release) (wersja 187906)
14401+++ gcc/tree-ssa-ccp.c (.../branches/gcc-4_7-branch) (wersja 187906)
14402@@ -1764,23 +1764,25 @@
14403 }
14404
14405 /* Find a BUILT_IN_STACK_SAVE dominating gsi_stmt (I), and insert
14406- a clobber of VAR before each matching BUILT_IN_STACK_RESTORE. */
14407+ a clobber of VAR before each matching BUILT_IN_STACK_RESTORE.
14408
14409+ It is possible that BUILT_IN_STACK_SAVE cannot be find in a dominator when a
14410+ previous pass (such as DOM) duplicated it along multiple paths to a BB. In
14411+ that case the function gives up without inserting the clobbers. */
14412+
14413 static void
14414 insert_clobbers_for_var (gimple_stmt_iterator i, tree var)
14415 {
14416- bool save_found;
14417 gimple stmt;
14418 tree saved_val;
14419 htab_t visited = NULL;
14420
14421- for (save_found = false; !gsi_end_p (i); gsi_prev_dom_bb_nondebug (&i))
14422+ for (; !gsi_end_p (i); gsi_prev_dom_bb_nondebug (&i))
14423 {
14424 stmt = gsi_stmt (i);
14425
14426 if (!gimple_call_builtin_p (stmt, BUILT_IN_STACK_SAVE))
14427 continue;
14428- save_found = true;
14429
14430 saved_val = gimple_call_lhs (stmt);
14431 if (saved_val == NULL_TREE)
14432@@ -1792,7 +1794,6 @@
14433
14434 if (visited != NULL)
14435 htab_delete (visited);
14436- gcc_assert (save_found);
14437 }
14438
14439 /* Detects a __builtin_alloca_with_align with constant size argument. Declares
14440@@ -2288,7 +2289,7 @@
14441 case BUILT_IN_VA_START:
14442 if (!va_list_simple_ptr
14443 || targetm.expand_builtin_va_start != NULL
14444- || builtin_decl_explicit_p (BUILT_IN_NEXT_ARG))
14445+ || !builtin_decl_explicit_p (BUILT_IN_NEXT_ARG))
14446 return NULL_TREE;
14447
14448 if (gimple_call_num_args (call) != 2)
14449Index: gcc/tree-ssa-alias.c
14450===================================================================
14451--- gcc/tree-ssa-alias.c (.../tags/gcc_4_7_0_release) (wersja 187906)
14452+++ gcc/tree-ssa-alias.c (.../branches/gcc-4_7-branch) (wersja 187906)
14453@@ -236,17 +236,6 @@
14454 STRIP_NOPS (ptr1);
14455 STRIP_NOPS (ptr2);
14456
14457- /* Anything we do not explicilty handle aliases. */
14458- if ((TREE_CODE (ptr1) != SSA_NAME
14459- && TREE_CODE (ptr1) != ADDR_EXPR
14460- && TREE_CODE (ptr1) != POINTER_PLUS_EXPR)
14461- || (TREE_CODE (ptr2) != SSA_NAME
14462- && TREE_CODE (ptr2) != ADDR_EXPR
14463- && TREE_CODE (ptr2) != POINTER_PLUS_EXPR)
14464- || !POINTER_TYPE_P (TREE_TYPE (ptr1))
14465- || !POINTER_TYPE_P (TREE_TYPE (ptr2)))
14466- return true;
14467-
14468 /* Disregard pointer offsetting. */
14469 if (TREE_CODE (ptr1) == POINTER_PLUS_EXPR)
14470 {
14471@@ -275,7 +264,7 @@
14472 if (base
14473 && (TREE_CODE (base) == MEM_REF
14474 || TREE_CODE (base) == TARGET_MEM_REF))
14475- ptr1 = TREE_OPERAND (base, 0);
14476+ return ptr_derefs_may_alias_p (TREE_OPERAND (base, 0), ptr2);
14477 else if (base
14478 && DECL_P (base))
14479 return ptr_deref_may_alias_decl_p (ptr2, base);
14480@@ -288,7 +277,7 @@
14481 if (base
14482 && (TREE_CODE (base) == MEM_REF
14483 || TREE_CODE (base) == TARGET_MEM_REF))
14484- ptr2 = TREE_OPERAND (base, 0);
14485+ return ptr_derefs_may_alias_p (ptr1, TREE_OPERAND (base, 0));
14486 else if (base
14487 && DECL_P (base))
14488 return ptr_deref_may_alias_decl_p (ptr1, base);
14489@@ -296,6 +285,13 @@
14490 return true;
14491 }
14492
14493+ /* From here we require SSA name pointers. Anything else aliases. */
14494+ if (TREE_CODE (ptr1) != SSA_NAME
14495+ || TREE_CODE (ptr2) != SSA_NAME
14496+ || !POINTER_TYPE_P (TREE_TYPE (ptr1))
14497+ || !POINTER_TYPE_P (TREE_TYPE (ptr2)))
14498+ return true;
14499+
14500 /* We may end up with two empty points-to solutions for two same pointers.
14501 In this case we still want to say both pointers alias, so shortcut
14502 that here. */
14503@@ -808,8 +804,7 @@
14504
14505 /* If either reference is view-converted, give up now. */
14506 if (same_type_for_tbaa (TREE_TYPE (base1), TREE_TYPE (ptrtype1)) != 1
14507- || same_type_for_tbaa (TREE_TYPE (dbase2),
14508- TREE_TYPE (reference_alias_ptr_type (dbase2))) != 1)
14509+ || same_type_for_tbaa (TREE_TYPE (dbase2), TREE_TYPE (base2)) != 1)
14510 return true;
14511
14512 /* If both references are through the same type, they do not alias
14513Index: gcc/ipa-inline.c
14514===================================================================
14515--- gcc/ipa-inline.c (.../tags/gcc_4_7_0_release) (wersja 187906)
14516+++ gcc/ipa-inline.c (.../branches/gcc-4_7-branch) (wersja 187906)
14517@@ -220,8 +220,8 @@
14518 if (dump_file)
14519 {
14520 fprintf (dump_file, " not inlinable: %s/%i -> %s/%i, %s\n",
14521- cgraph_node_name (e->caller), e->caller->uid,
14522- cgraph_node_name (e->callee), e->callee->uid,
14523+ xstrdup (cgraph_node_name (e->caller)), e->caller->uid,
14524+ xstrdup (cgraph_node_name (e->callee)), e->callee->uid,
14525 cgraph_inline_failed_string (e->inline_failed));
14526 }
14527 }
14528@@ -423,8 +423,8 @@
14529 if (dump_file)
14530 fprintf (dump_file, " will not early inline: %s/%i->%s/%i, "
14531 "call is cold and code would grow by %i\n",
14532- cgraph_node_name (e->caller), e->caller->uid,
14533- cgraph_node_name (callee), callee->uid,
14534+ xstrdup (cgraph_node_name (e->caller)), e->caller->uid,
14535+ xstrdup (cgraph_node_name (callee)), callee->uid,
14536 growth);
14537 want_inline = false;
14538 }
14539@@ -434,8 +434,8 @@
14540 if (dump_file)
14541 fprintf (dump_file, " will not early inline: %s/%i->%s/%i, "
14542 "callee is not leaf and code would grow by %i\n",
14543- cgraph_node_name (e->caller), e->caller->uid,
14544- cgraph_node_name (callee), callee->uid,
14545+ xstrdup (cgraph_node_name (e->caller)), e->caller->uid,
14546+ xstrdup (cgraph_node_name (callee)), callee->uid,
14547 growth);
14548 want_inline = false;
14549 }
14550@@ -444,8 +444,8 @@
14551 if (dump_file)
14552 fprintf (dump_file, " will not early inline: %s/%i->%s/%i, "
14553 "growth %i exceeds --param early-inlining-insns\n",
14554- cgraph_node_name (e->caller), e->caller->uid,
14555- cgraph_node_name (callee), callee->uid,
14556+ xstrdup (cgraph_node_name (e->caller)), e->caller->uid,
14557+ xstrdup (cgraph_node_name (callee)), callee->uid,
14558 growth);
14559 want_inline = false;
14560 }
14561@@ -754,8 +754,8 @@
14562 if (dump)
14563 {
14564 fprintf (dump_file, " Badness calculation for %s -> %s\n",
14565- cgraph_node_name (edge->caller),
14566- cgraph_node_name (callee));
14567+ xstrdup (cgraph_node_name (edge->caller)),
14568+ xstrdup (cgraph_node_name (callee)));
14569 fprintf (dump_file, " size growth %i, time growth %i\n",
14570 growth,
14571 time_growth);
14572@@ -910,8 +910,10 @@
14573 {
14574 fprintf (dump_file,
14575 " decreasing badness %s/%i -> %s/%i, %i to %i\n",
14576- cgraph_node_name (edge->caller), edge->caller->uid,
14577- cgraph_node_name (edge->callee), edge->callee->uid,
14578+ xstrdup (cgraph_node_name (edge->caller)),
14579+ edge->caller->uid,
14580+ xstrdup (cgraph_node_name (edge->callee)),
14581+ edge->callee->uid,
14582 (int)n->key,
14583 badness);
14584 }
14585@@ -925,8 +927,10 @@
14586 {
14587 fprintf (dump_file,
14588 " enqueuing call %s/%i -> %s/%i, badness %i\n",
14589- cgraph_node_name (edge->caller), edge->caller->uid,
14590- cgraph_node_name (edge->callee), edge->callee->uid,
14591+ xstrdup (cgraph_node_name (edge->caller)),
14592+ edge->caller->uid,
14593+ xstrdup (cgraph_node_name (edge->callee)),
14594+ edge->callee->uid,
14595 badness);
14596 }
14597 edge->aux = fibheap_insert (heap, badness, edge);
14598@@ -1608,8 +1612,8 @@
14599 if (dump_file)
14600 fprintf (dump_file,
14601 "Not inlining %s into %s to avoid cycle.\n",
14602- cgraph_node_name (callee),
14603- cgraph_node_name (e->caller));
14604+ xstrdup (cgraph_node_name (callee)),
14605+ xstrdup (cgraph_node_name (e->caller)));
14606 e->inline_failed = CIF_RECURSIVE_INLINING;
14607 continue;
14608 }
14609@@ -1649,8 +1653,8 @@
14610 recursing through the original node if the node was cloned. */
14611 if (dump_file)
14612 fprintf (dump_file, " Inlining %s into %s.\n",
14613- cgraph_node_name (callee),
14614- cgraph_node_name (e->caller));
14615+ xstrdup (cgraph_node_name (callee)),
14616+ xstrdup (cgraph_node_name (e->caller)));
14617 orig_callee = callee;
14618 inline_call (e, true, NULL, NULL);
14619 if (e->callee != orig_callee)
14620@@ -1752,7 +1756,8 @@
14621 {
14622 fprintf (dump_file,
14623 "\nInlining %s size %i.\n",
14624- cgraph_node_name (node), inline_summary (node)->size);
14625+ cgraph_node_name (node),
14626+ inline_summary (node)->size);
14627 fprintf (dump_file,
14628 " Called once from %s %i insns.\n",
14629 cgraph_node_name (node->callers->caller),
14630@@ -1815,8 +1820,8 @@
14631
14632 if (dump_file)
14633 fprintf (dump_file, " Inlining %s into %s (always_inline).\n",
14634- cgraph_node_name (e->callee),
14635- cgraph_node_name (e->caller));
14636+ xstrdup (cgraph_node_name (e->callee)),
14637+ xstrdup (cgraph_node_name (e->caller)));
14638 inline_call (e, true, NULL, NULL);
14639 inlined = true;
14640 }
14641@@ -1865,8 +1870,8 @@
14642
14643 if (dump_file)
14644 fprintf (dump_file, " Inlining %s into %s.\n",
14645- cgraph_node_name (callee),
14646- cgraph_node_name (e->caller));
14647+ xstrdup (cgraph_node_name (callee)),
14648+ xstrdup (cgraph_node_name (e->caller)));
14649 inline_call (e, true, NULL, NULL);
14650 inlined = true;
14651 }
14652Index: gcc/config.in
14653===================================================================
14654--- gcc/config.in (.../tags/gcc_4_7_0_release) (wersja 187906)
14655+++ gcc/config.in (.../branches/gcc-4_7-branch) (wersja 187906)
14656@@ -1091,7 +1091,7 @@
14657 #endif
14658
14659
14660-/* Define if using GNU as. */
14661+/* Define to 1 if using GNU as. */
14662 #ifndef USED_FOR_TARGET
14663 #undef HAVE_GNU_AS
14664 #endif
14665@@ -1103,7 +1103,7 @@
14666 #endif
14667
14668
14669-/* Define if using GNU ld. */
14670+/* Define to 1 if using GNU ld. */
14671 #ifndef USED_FOR_TARGET
14672 #undef HAVE_GNU_LD
14673 #endif
14674Index: gcc/jump.c
14675===================================================================
14676--- gcc/jump.c (.../tags/gcc_4_7_0_release) (wersja 187906)
14677+++ gcc/jump.c (.../branches/gcc-4_7-branch) (wersja 187906)
14678@@ -1252,6 +1252,26 @@
14679 if (next != 0 && BARRIER_P (next))
14680 delete_insn (next);
14681
14682+ /* If this is a call, then we have to remove the var tracking note
14683+ for the call arguments. */
14684+
14685+ if (CALL_P (insn)
14686+ || (NONJUMP_INSN_P (insn)
14687+ && GET_CODE (PATTERN (insn)) == SEQUENCE
14688+ && CALL_P (XVECEXP (PATTERN (insn), 0, 0))))
14689+ {
14690+ rtx p = insn;
14691+
14692+ for (p = NEXT_INSN (p);
14693+ p && NOTE_P (p);
14694+ p = NEXT_INSN (p))
14695+ if (NOTE_KIND (p) == NOTE_INSN_CALL_ARG_LOCATION)
14696+ {
14697+ remove_insn (p);
14698+ break;
14699+ }
14700+ }
14701+
14702 /* If deleting a jump, decrement the count of the label,
14703 and delete the label if it is now unused. */
14704
14705Index: gcc/dwarf2out.c
14706===================================================================
14707--- gcc/dwarf2out.c (.../tags/gcc_4_7_0_release) (wersja 187906)
14708+++ gcc/dwarf2out.c (.../branches/gcc-4_7-branch) (wersja 187906)
14709@@ -3134,6 +3134,12 @@
14710 defines/undefines (and file start/end markers). */
14711 static GTY (()) VEC (macinfo_entry, gc) * macinfo_table;
14712
14713+/* True if .debug_macinfo or .debug_macros section is going to be
14714+ emitted. */
14715+#define have_macinfo \
14716+ (debug_info_level >= DINFO_LEVEL_VERBOSE \
14717+ && !VEC_empty (macinfo_entry, macinfo_table))
14718+
14719 /* Array of dies for which we should generate .debug_ranges info. */
14720 static GTY ((length ("ranges_table_allocated"))) dw_ranges_ref ranges_table;
14721
14722@@ -19889,7 +19895,9 @@
14723 return;
14724
14725 /* For local statics lookup proper context die. */
14726- if (TREE_STATIC (decl) && decl_function_context (decl))
14727+ if (TREE_STATIC (decl)
14728+ && DECL_CONTEXT (decl)
14729+ && TREE_CODE (DECL_CONTEXT (decl)) == FUNCTION_DECL)
14730 context_die = lookup_decl_die (DECL_CONTEXT (decl));
14731
14732 /* If we are in terse mode, don't generate any DIEs to represent any
14733@@ -20653,7 +20661,7 @@
14734 macinfo_entry e;
14735 /* Insert a dummy first entry to be able to optimize the whole
14736 predefined macro block using DW_MACRO_GNU_transparent_include. */
14737- if (VEC_empty (macinfo_entry, macinfo_table) && lineno == 0)
14738+ if (VEC_empty (macinfo_entry, macinfo_table) && lineno <= 1)
14739 {
14740 e.code = 0;
14741 e.lineno = 0;
14742@@ -20680,7 +20688,7 @@
14743 macinfo_entry e;
14744 /* Insert a dummy first entry to be able to optimize the whole
14745 predefined macro block using DW_MACRO_GNU_transparent_include. */
14746- if (VEC_empty (macinfo_entry, macinfo_table) && lineno == 0)
14747+ if (VEC_empty (macinfo_entry, macinfo_table) && lineno <= 1)
14748 {
14749 e.code = 0;
14750 e.lineno = 0;
14751@@ -20819,13 +20827,13 @@
14752
14753 /* Optimize only if there are at least two consecutive define/undef ops,
14754 and either all of them are before first DW_MACINFO_start_file
14755- with lineno 0 (i.e. predefined macro block), or all of them are
14756+ with lineno {0,1} (i.e. predefined macro block), or all of them are
14757 in some included header file. */
14758 if (second->code != DW_MACINFO_define && second->code != DW_MACINFO_undef)
14759 return 0;
14760 if (VEC_empty (macinfo_entry, files))
14761 {
14762- if (first->lineno != 0 || second->lineno != 0)
14763+ if (first->lineno > 1 || second->lineno > 1)
14764 return 0;
14765 }
14766 else if (first->lineno == 0)
14767@@ -20838,7 +20846,7 @@
14768 for (i = idx; VEC_iterate (macinfo_entry, macinfo_table, i, cur); i++)
14769 if (cur->code != DW_MACINFO_define && cur->code != DW_MACINFO_undef)
14770 break;
14771- else if (first->lineno == 0 && cur->lineno != 0)
14772+ else if (VEC_empty (macinfo_entry, files) && cur->lineno > 1)
14773 break;
14774 else
14775 {
14776@@ -20852,7 +20860,7 @@
14777
14778 /* From the containing include filename (if any) pick up just
14779 usable characters from its basename. */
14780- if (first->lineno == 0)
14781+ if (VEC_empty (macinfo_entry, files))
14782 base = "";
14783 else
14784 base = lbasename (VEC_last (macinfo_entry, files)->info);
14785@@ -22689,7 +22697,7 @@
14786 add_AT_lineptr (comp_unit_die (), DW_AT_stmt_list,
14787 debug_line_section_label);
14788
14789- if (debug_info_level >= DINFO_LEVEL_VERBOSE)
14790+ if (have_macinfo)
14791 add_AT_macptr (comp_unit_die (),
14792 dwarf_strict ? DW_AT_macro_info : DW_AT_GNU_macros,
14793 macinfo_section_label);
14794@@ -22724,8 +22732,8 @@
14795 htab_delete (comdat_type_table);
14796
14797 /* Output the main compilation unit if non-empty or if .debug_macinfo
14798- will be emitted. */
14799- output_comp_unit (comp_unit_die (), debug_info_level >= DINFO_LEVEL_VERBOSE);
14800+ or .debug_macro will be emitted. */
14801+ output_comp_unit (comp_unit_die (), have_macinfo);
14802
14803 /* Output the abbreviation table. */
14804 if (abbrev_die_table_in_use != 1)
14805@@ -22805,12 +22813,11 @@
14806 }
14807
14808 /* Have to end the macro section. */
14809- if (debug_info_level >= DINFO_LEVEL_VERBOSE)
14810+ if (have_macinfo)
14811 {
14812 switch_to_section (debug_macinfo_section);
14813 ASM_OUTPUT_LABEL (asm_out_file, macinfo_section_label);
14814- if (!VEC_empty (macinfo_entry, macinfo_table))
14815- output_macinfo ();
14816+ output_macinfo ();
14817 dw2_asm_output_data (1, 0, "End compilation unit");
14818 }
14819
14820Index: gcc/go/lang.opt
14821===================================================================
14822--- gcc/go/lang.opt (.../tags/gcc_4_7_0_release) (wersja 187906)
14823+++ gcc/go/lang.opt (.../branches/gcc-4_7-branch) (wersja 187906)
14824@@ -1,6 +1,6 @@
14825 ; lang.opt -- Options for the gcc Go front end.
14826
14827-; Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
14828+; Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
14829 ;
14830 ; This file is part of GCC.
14831 ;
14832@@ -37,6 +37,14 @@
14833 Go
14834 ; Documented in c.opt
14835
14836+fgo-check-divide-zero
14837+Go Var(go_check_divide_zero) Init(1)
14838+Add explicit checks for division by zero
14839+
14840+fgo-check-divide-overflow
14841+Go Var(go_check_divide_overflow) Init(1)
14842+Add explicit checks for division overflow in INT_MIN / -1
14843+
14844 fgo-dump-
14845 Go Joined RejectNegative
14846 -fgo-dump-<type> Dump Go frontend internal information
14847@@ -45,6 +53,10 @@
14848 Go Joined RejectNegative
14849 -fgo-optimize-<type> Turn on optimization passes in the frontend
14850
14851+fgo-pkgpath=
14852+Go Joined RejectNegative
14853+-fgo-pkgpath=<string> Set Go package path
14854+
14855 fgo-prefix=
14856 Go Joined RejectNegative
14857 -fgo-prefix=<string> Set package-specific prefix for exported Go names
14858Index: gcc/go/go-gcc.cc
14859===================================================================
14860--- gcc/go/go-gcc.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
14861+++ gcc/go/go-gcc.cc (.../branches/gcc-4_7-branch) (wersja 187906)
14862@@ -271,7 +271,7 @@
14863
14864 Bvariable*
14865 global_variable(const std::string& package_name,
14866- const std::string& unique_prefix,
14867+ const std::string& pkgpath,
14868 const std::string& name,
14869 Btype* btype,
14870 bool is_external,
14871@@ -1281,7 +1281,7 @@
14872
14873 Bvariable*
14874 Gcc_backend::global_variable(const std::string& package_name,
14875- const std::string& unique_prefix,
14876+ const std::string& pkgpath,
14877 const std::string& name,
14878 Btype* btype,
14879 bool is_external,
14880@@ -1310,9 +1310,9 @@
14881 {
14882 TREE_PUBLIC(decl) = 1;
14883
14884- std::string asm_name(unique_prefix);
14885+ std::string asm_name(pkgpath);
14886 asm_name.push_back('.');
14887- asm_name.append(var_name);
14888+ asm_name.append(name);
14889 SET_DECL_ASSEMBLER_NAME(decl, get_identifier_from_string(asm_name));
14890 }
14891 TREE_USED(decl) = 1;
14892Index: gcc/go/ChangeLog
14893===================================================================
14894--- gcc/go/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187906)
14895+++ gcc/go/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187906)
14896@@ -1,3 +1,29 @@
14897+2012-05-09 Ian Lance Taylor <iant@google.com>
14898+
14899+ * lang.opt: Add -fgo-pkgpath.
14900+ * go-lang.c (go_pkgpath): New static variable.
14901+ (go_prefix): New static variable.
14902+ (go_langhook_init): Pass go_pkgpath and go_prefix to
14903+ go_create_gogo.
14904+ (go_langhook_handle_option): Handle -fgo-pkgpath. Change
14905+ -fgo-prefix handling to just set go_prefix.
14906+ * go-c.h (go_set_prefix): Don't declare.
14907+ (go_create_gogo): Add pkgpath and prefix to declaration.
14908+ * go-gcc.cc (Gcc_backend::global_variable): Change unique_prefix
14909+ to pkgpath. Don't include the package name in the asm name.
14910+ * gccgo.texi (Invoking gccgo): Document -fgo-pkgpath. Update the
14911+ docs for -fgo-prefix.
14912+
14913+2012-04-23 Ian Lance Taylor <iant@google.com>
14914+
14915+ * go-lang.c (go_langhook_init): Set MPFR precision to 256.
14916+
14917+2012-04-20 Ian Lance Taylor <iant@google.com>
14918+
14919+ * lang.opt: Add -fgo-check-divide-zero and
14920+ -fgo-check-divide-overflow.
14921+ * gccgo.texi (Invoking gccgo): Document new options.
14922+
14923 2012-03-22 Release Manager
14924
14925 * GCC 4.7.0 released.
14926Index: gcc/go/gccgo.texi
14927===================================================================
14928--- gcc/go/gccgo.texi (.../tags/gcc_4_7_0_release) (wersja 187906)
14929+++ gcc/go/gccgo.texi (.../branches/gcc-4_7-branch) (wersja 187906)
14930@@ -12,7 +12,7 @@
14931 @include gcc-common.texi
14932
14933 @c Copyright years for this manual.
14934-@set copyrights-go 2010
14935+@set copyrights-go 2010, 2011, 2012
14936
14937 @copying
14938 @c man begin COPYRIGHT
14939@@ -157,15 +157,33 @@
14940 When linking, specify a library search directory, as with
14941 @command{gcc}.
14942
14943+@item -fgo-pkgpath=@var{string}
14944+@cindex @option{-fgo-pkgpath}
14945+Set the package path to use. This sets the value returned by the
14946+PkgPath method of reflect.Type objects. It is also used for the names
14947+of globally visible symbols. The argument to this option should
14948+normally be the string that will be used to import this package after
14949+it has been installed; in other words, a pathname within the
14950+directories specified by the @option{-I} option.
14951+
14952 @item -fgo-prefix=@var{string}
14953 @cindex @option{-fgo-prefix}
14954+An alternative to @option{-fgo-pkgpath}. The argument will be
14955+combined with the package name from the source file to produce the
14956+package path. If @option{-fgo-pkgpath} is used, @option{-fgo-prefix}
14957+will be ignored.
14958+
14959 Go permits a single program to include more than one package with the
14960-same name. This option is required to make this work with
14961-@command{gccgo}. The argument to this option may be any string. Each
14962-package with the same name must use a distinct @option{-fgo-prefix}
14963-option. The argument is typically the full path under which the
14964-package will be installed, as that must obviously be unique.
14965+same name in the @code{package} clause in the source file, though
14966+obviously the two packages must be imported using different pathnames.
14967+In order for this to work with @command{gccgo}, either
14968+@option{-fgo-pkgpath} or @option{-fgo-prefix} must be specified when
14969+compiling a package.
14970
14971+Using either @option{-fgo-pkgpath} or @option{-fgo-prefix} disables
14972+the special treatment of the @code{main} package and permits that
14973+package to be imported like any other.
14974+
14975 @item -frequire-return-statement
14976 @itemx -fno-require-return-statement
14977 @cindex @option{-frequire-return-statement}
14978@@ -174,6 +192,31 @@
14979 more return parameters but lack an explicit @code{return} statement.
14980 This warning may be disabled using
14981 @option{-fno-require-return-statement}.
14982+
14983+@item -fgo-check-divide-zero
14984+@cindex @option{-fgo-check-divide-zero}
14985+@cindex @option{-fno-go-check-divide-zero}
14986+Add explicit checks for division by zero. In Go a division (or
14987+modulos) by zero causes a panic. On Unix systems this is detected in
14988+the runtime by catching the @code{SIGFPE} signal. Some processors,
14989+such as PowerPC, do not generate a SIGFPE on division by zero. Some
14990+runtimes do not generate a signal that can be caught. On those
14991+systems, this option may be used. Or the checks may be removed via
14992+@option{-fno-go-check-divide-zero}. This option is currently on by
14993+default, but in the future may be off by default on systems that do
14994+not require it.
14995+
14996+@item -fgo-check-divide-overflow
14997+@cindex @option{-fgo-check-divide-overflow}
14998+@cindex @option{-fno-go-check-divide-overflow}
14999+Add explicit checks for division overflow. For example, division
15000+overflow occurs when computing @code{INT_MIN / -1}. In Go this should
15001+be wrapped, to produce @code{INT_MIN}. Some processors, such as x86,
15002+generate a trap on division overflow. On those systems, this option
15003+may be used. Or the checks may be removed via
15004+@option{-fno-go-check-divide-overflow}. This option is currently on
15005+by default, but in the future may be off by default on systems that do
15006+not require it.
15007 @end table
15008
15009 @c man end
15010Index: gcc/go/go-lang.c
15011===================================================================
15012--- gcc/go/go-lang.c (.../tags/gcc_4_7_0_release) (wersja 187906)
15013+++ gcc/go/go-lang.c (.../branches/gcc-4_7-branch) (wersja 187906)
15014@@ -81,6 +81,11 @@
15015 int dummy;
15016 };
15017
15018+/* Option information we need to pass to go_create_gogo. */
15019+
15020+static const char *go_pkgpath = NULL;
15021+static const char *go_prefix = NULL;
15022+
15023 /* Language hooks. */
15024
15025 static bool
15026@@ -96,14 +101,14 @@
15027 to, e.g., unsigned_char_type_node) but before calling
15028 build_common_builtin_nodes (because it calls, indirectly,
15029 go_type_for_size). */
15030- go_create_gogo (INT_TYPE_SIZE, POINTER_SIZE);
15031+ go_create_gogo (INT_TYPE_SIZE, POINTER_SIZE, go_pkgpath, go_prefix);
15032
15033 build_common_builtin_nodes ();
15034
15035 /* The default precision for floating point numbers. This is used
15036 for floating point constants with abstract type. This may
15037 eventually be controllable by a command line option. */
15038- mpfr_set_default_prec (128);
15039+ mpfr_set_default_prec (256);
15040
15041 /* Go uses exceptions. */
15042 using_eh_for_cleanups ();
15043@@ -227,8 +232,12 @@
15044 ret = go_enable_optimize (arg) ? true : false;
15045 break;
15046
15047+ case OPT_fgo_pkgpath_:
15048+ go_pkgpath = arg;
15049+ break;
15050+
15051 case OPT_fgo_prefix_:
15052- go_set_prefix (arg);
15053+ go_prefix = arg;
15054 break;
15055
15056 default:
15057Index: gcc/go/gofrontend/gogo.cc
15058===================================================================
15059--- gcc/go/gofrontend/gogo.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
15060+++ gcc/go/gofrontend/gogo.cc (.../branches/gcc-4_7-branch) (wersja 187906)
15061@@ -32,11 +32,16 @@
15062 imported_unsafe_(false),
15063 packages_(),
15064 init_functions_(),
15065+ var_deps_(),
15066 need_init_fn_(false),
15067 init_fn_name_(),
15068 imported_init_fns_(),
15069- unique_prefix_(),
15070- unique_prefix_specified_(false),
15071+ pkgpath_(),
15072+ pkgpath_symbol_(),
15073+ prefix_(),
15074+ pkgpath_set_(false),
15075+ pkgpath_from_option_(false),
15076+ prefix_from_option_(false),
15077 verify_types_(),
15078 interface_types_(),
15079 specific_type_functions_(),
15080@@ -232,6 +237,72 @@
15081 this->globals_->add_function_declaration("delete", NULL, delete_type, loc);
15082 }
15083
15084+// Convert a pkgpath into a string suitable for a symbol. Note that
15085+// this transformation is convenient but imperfect. A -fgo-pkgpath
15086+// option of a/b_c will conflict with a -fgo-pkgpath option of a_b/c,
15087+// possibly leading to link time errors.
15088+
15089+std::string
15090+Gogo::pkgpath_for_symbol(const std::string& pkgpath)
15091+{
15092+ std::string s = pkgpath;
15093+ for (size_t i = 0; i < s.length(); ++i)
15094+ {
15095+ char c = s[i];
15096+ if ((c >= 'a' && c <= 'z')
15097+ || (c >= 'A' && c <= 'Z')
15098+ || (c >= '0' && c <= '9')
15099+ || c == '_'
15100+ || c == '.'
15101+ || c == '$')
15102+ ;
15103+ else
15104+ s[i] = '_';
15105+ }
15106+ return s;
15107+}
15108+
15109+// Get the package path to use for type reflection data. This should
15110+// ideally be unique across the entire link.
15111+
15112+const std::string&
15113+Gogo::pkgpath() const
15114+{
15115+ go_assert(this->pkgpath_set_);
15116+ return this->pkgpath_;
15117+}
15118+
15119+// Set the package path from the -fgo-pkgpath command line option.
15120+
15121+void
15122+Gogo::set_pkgpath(const std::string& arg)
15123+{
15124+ go_assert(!this->pkgpath_set_);
15125+ this->pkgpath_ = arg;
15126+ this->pkgpath_set_ = true;
15127+ this->pkgpath_from_option_ = true;
15128+}
15129+
15130+// Get the package path to use for symbol names.
15131+
15132+const std::string&
15133+Gogo::pkgpath_symbol() const
15134+{
15135+ go_assert(this->pkgpath_set_);
15136+ return this->pkgpath_symbol_;
15137+}
15138+
15139+// Set the unique prefix to use to determine the package path, from
15140+// the -fgo-prefix command line option.
15141+
15142+void
15143+Gogo::set_prefix(const std::string& arg)
15144+{
15145+ go_assert(!this->prefix_from_option_);
15146+ this->prefix_ = arg;
15147+ this->prefix_from_option_ = true;
15148+}
15149+
15150 // Munge name for use in an error message.
15151
15152 std::string
15153@@ -246,7 +317,7 @@
15154 Gogo::package_name() const
15155 {
15156 go_assert(this->package_ != NULL);
15157- return this->package_->name();
15158+ return this->package_->package_name();
15159 }
15160
15161 // Set the package name.
15162@@ -255,24 +326,29 @@
15163 Gogo::set_package_name(const std::string& package_name,
15164 Location location)
15165 {
15166- if (this->package_ != NULL && this->package_->name() != package_name)
15167+ if (this->package_ != NULL)
15168 {
15169- error_at(location, "expected package %<%s%>",
15170- Gogo::message_name(this->package_->name()).c_str());
15171+ if (this->package_->package_name() != package_name)
15172+ error_at(location, "expected package %<%s%>",
15173+ Gogo::message_name(this->package_->package_name()).c_str());
15174 return;
15175 }
15176
15177- // If the user did not specify a unique prefix, we always use "go".
15178- // This in effect requires that the package name be unique.
15179- if (this->unique_prefix_.empty())
15180- this->unique_prefix_ = "go";
15181+ // Now that we know the name of the package we are compiling, set
15182+ // the package path to use for reflect.Type.PkgPath and global
15183+ // symbol names.
15184+ if (!this->pkgpath_set_)
15185+ {
15186+ if (!this->prefix_from_option_)
15187+ this->prefix_ = "go";
15188+ this->pkgpath_ = this->prefix_ + '.' + package_name;
15189+ this->pkgpath_set_ = true;
15190+ }
15191
15192- this->package_ = this->register_package(package_name, this->unique_prefix_,
15193- location);
15194+ this->pkgpath_symbol_ = Gogo::pkgpath_for_symbol(this->pkgpath_);
15195
15196- // We used to permit people to qualify symbols with the current
15197- // package name (e.g., P.x), but we no longer do.
15198- // this->globals_->add_package(package_name, this->package_);
15199+ this->package_ = this->register_package(this->pkgpath_, location);
15200+ this->package_->set_package_name(package_name, location);
15201
15202 if (this->is_main_package())
15203 {
15204@@ -286,12 +362,14 @@
15205 }
15206
15207 // Return whether this is the "main" package. This is not true if
15208-// -fgo-prefix was used.
15209+// -fgo-pkgpath or -fgo-prefix was used.
15210
15211 bool
15212 Gogo::is_main_package() const
15213 {
15214- return this->package_name() == "main" && !this->unique_prefix_specified_;
15215+ return (this->package_name() == "main"
15216+ && !this->pkgpath_from_option_
15217+ && !this->prefix_from_option_);
15218 }
15219
15220 // Import a package.
15221@@ -318,7 +396,8 @@
15222 bool is_ln_exported = is_local_name_exported;
15223 if (ln.empty())
15224 {
15225- ln = package->name();
15226+ ln = package->package_name();
15227+ go_assert(!ln.empty());
15228 is_ln_exported = Lex::is_exported_name(ln);
15229 }
15230 if (ln == ".")
15231@@ -352,11 +431,10 @@
15232 Package* package = imp.import(this, local_name, is_local_name_exported);
15233 if (package != NULL)
15234 {
15235- if (package->name() == this->package_name()
15236- && package->unique_prefix() == this->unique_prefix())
15237+ if (package->pkgpath() == this->pkgpath())
15238 error_at(location,
15239- ("imported package uses same package name and prefix "
15240- "as package being compiled (see -fgo-prefix option)"));
15241+ ("imported package uses same package path as package "
15242+ "being compiled (see -fgo-pkgpath option)"));
15243
15244 this->imports_.insert(std::make_pair(filename, package));
15245 package->set_is_imported();
15246@@ -509,38 +587,21 @@
15247 Gogo::add_imported_package(const std::string& real_name,
15248 const std::string& alias_arg,
15249 bool is_alias_exported,
15250- const std::string& unique_prefix,
15251+ const std::string& pkgpath,
15252 Location location,
15253 bool* padd_to_globals)
15254 {
15255- // FIXME: Now that we compile packages as a whole, should we permit
15256- // importing the current package?
15257- if (this->package_name() == real_name
15258- && this->unique_prefix() == unique_prefix)
15259- {
15260- *padd_to_globals = false;
15261- if (!alias_arg.empty() && alias_arg != ".")
15262- {
15263- std::string alias = this->pack_hidden_name(alias_arg,
15264- is_alias_exported);
15265- this->package_->bindings()->add_package(alias, this->package_);
15266- }
15267- return this->package_;
15268- }
15269- else if (alias_arg == ".")
15270- {
15271- *padd_to_globals = true;
15272- return this->register_package(real_name, unique_prefix, location);
15273- }
15274+ Package* ret = this->register_package(pkgpath, location);
15275+ ret->set_package_name(real_name, location);
15276+
15277+ *padd_to_globals = false;
15278+
15279+ if (alias_arg == ".")
15280+ *padd_to_globals = true;
15281 else if (alias_arg == "_")
15282- {
15283- Package* ret = this->register_package(real_name, unique_prefix, location);
15284- ret->set_uses_sink_alias();
15285- return ret;
15286- }
15287+ ret->set_uses_sink_alias();
15288 else
15289 {
15290- *padd_to_globals = false;
15291 std::string alias = alias_arg;
15292 if (alias.empty())
15293 {
15294@@ -548,57 +609,37 @@
15295 is_alias_exported = Lex::is_exported_name(alias);
15296 }
15297 alias = this->pack_hidden_name(alias, is_alias_exported);
15298- Named_object* no = this->add_package(real_name, alias, unique_prefix,
15299- location);
15300+ Named_object* no = this->package_->bindings()->add_package(alias, ret);
15301 if (!no->is_package())
15302 return NULL;
15303- return no->package_value();
15304 }
15305-}
15306
15307-// Add a package.
15308-
15309-Named_object*
15310-Gogo::add_package(const std::string& real_name, const std::string& alias,
15311- const std::string& unique_prefix, Location location)
15312-{
15313- go_assert(this->in_global_scope());
15314-
15315- // Register the package. Note that we might have already seen it in
15316- // an earlier import.
15317- Package* package = this->register_package(real_name, unique_prefix, location);
15318-
15319- return this->package_->bindings()->add_package(alias, package);
15320+ return ret;
15321 }
15322
15323 // Register a package. This package may or may not be imported. This
15324 // returns the Package structure for the package, creating if it
15325-// necessary.
15326+// necessary. LOCATION is the location of the import statement that
15327+// led us to see this package.
15328
15329 Package*
15330-Gogo::register_package(const std::string& package_name,
15331- const std::string& unique_prefix,
15332- Location location)
15333+Gogo::register_package(const std::string& pkgpath, Location location)
15334 {
15335- go_assert(!unique_prefix.empty() && !package_name.empty());
15336- std::string name = unique_prefix + '.' + package_name;
15337 Package* package = NULL;
15338 std::pair<Packages::iterator, bool> ins =
15339- this->packages_.insert(std::make_pair(name, package));
15340+ this->packages_.insert(std::make_pair(pkgpath, package));
15341 if (!ins.second)
15342 {
15343 // We have seen this package name before.
15344 package = ins.first->second;
15345- go_assert(package != NULL);
15346- go_assert(package->name() == package_name
15347- && package->unique_prefix() == unique_prefix);
15348+ go_assert(package != NULL && package->pkgpath() == pkgpath);
15349 if (Linemap::is_unknown_location(package->location()))
15350 package->set_location(location);
15351 }
15352 else
15353 {
15354 // First time we have seen this package name.
15355- package = new Package(package_name, unique_prefix, location);
15356+ package = new Package(pkgpath, location);
15357 go_assert(ins.first->second == NULL);
15358 ins.first->second = package;
15359 }
15360@@ -1150,7 +1191,7 @@
15361 && !package->uses_sink_alias()
15362 && !saw_errors())
15363 error_at(package->location(), "imported and not used: %s",
15364- Gogo::message_name(package->name()).c_str());
15365+ Gogo::message_name(package->package_name()).c_str());
15366 package->clear_is_imported();
15367 package->clear_uses_sink_alias();
15368 package->clear_used();
15369@@ -1653,8 +1694,12 @@
15370 }
15371
15372 case Type::TYPE_STRUCT:
15373+ // Traverse the field types first in case there is an embedded
15374+ // field with methods that the struct should inherit.
15375+ if (t->struct_type()->traverse_field_types(this) == TRAVERSE_EXIT)
15376+ return TRAVERSE_EXIT;
15377 t->struct_type()->finalize_methods(this->gogo_);
15378- break;
15379+ return TRAVERSE_SKIP_COMPONENTS;
15380
15381 default:
15382 break;
15383@@ -2212,13 +2257,19 @@
15384 Expression::traverse(&init, &find_eval_ordering);
15385 }
15386
15387- if (find_eval_ordering.size() <= 1)
15388- {
15389- // If there is only one expression with a side-effect, we can
15390- // leave it in place.
15391- return TRAVERSE_CONTINUE;
15392- }
15393+ size_t c = find_eval_ordering.size();
15394+ if (c == 0)
15395+ return TRAVERSE_CONTINUE;
15396
15397+ // If there is only one expression with a side-effect, we can
15398+ // usually leave it in place. However, for an assignment statement,
15399+ // we need to evaluate an expression on the right hand side before
15400+ // we evaluate any index expression on the left hand side, so for
15401+ // that case we always move the expression. Otherwise we mishandle
15402+ // m[0] = len(m) where m is a map.
15403+ if (c == 1 && s->classification() != Statement::STATEMENT_ASSIGNMENT)
15404+ return TRAVERSE_CONTINUE;
15405+
15406 bool is_thunk = s->thunk_statement() != NULL;
15407 for (Find_eval_ordering::const_iterator p = find_eval_ordering.begin();
15408 p != find_eval_ordering.end();
15409@@ -2811,27 +2862,6 @@
15410 this->traverse(&traverse);
15411 }
15412
15413-// Get the unique prefix to use before all exported symbols. This
15414-// must be unique across the entire link.
15415-
15416-const std::string&
15417-Gogo::unique_prefix() const
15418-{
15419- go_assert(!this->unique_prefix_.empty());
15420- return this->unique_prefix_;
15421-}
15422-
15423-// Set the unique prefix to use before all exported symbols. This
15424-// comes from the command line option -fgo-prefix=XXX.
15425-
15426-void
15427-Gogo::set_unique_prefix(const std::string& arg)
15428-{
15429- go_assert(this->unique_prefix_.empty());
15430- this->unique_prefix_ = arg;
15431- this->unique_prefix_specified_ = true;
15432-}
15433-
15434 // Work out the package priority. It is one more than the maximum
15435 // priority of an imported package.
15436
15437@@ -2859,7 +2889,7 @@
15438 Export exp(&stream);
15439 exp.register_builtin_types(this);
15440 exp.export_globals(this->package_name(),
15441- this->unique_prefix(),
15442+ this->pkgpath(),
15443 this->package_priority(),
15444 this->imports_,
15445 (this->need_init_fn_ && !this->is_main_package()
15446@@ -3810,6 +3840,10 @@
15447 Variable::lower_init_expression(Gogo* gogo, Named_object* function,
15448 Statement_inserter* inserter)
15449 {
15450+ Named_object* dep = gogo->var_depends_on(this);
15451+ if (dep != NULL && dep->is_variable())
15452+ dep->var_value()->lower_init_expression(gogo, function, inserter);
15453+
15454 if (this->init_ != NULL && !this->init_is_lowered_)
15455 {
15456 if (this->seen_)
15457@@ -4184,10 +4218,10 @@
15458 if (this->is_global_)
15459 bvar = backend->global_variable((package == NULL
15460 ? gogo->package_name()
15461- : package->name()),
15462+ : package->package_name()),
15463 (package == NULL
15464- ? gogo->unique_prefix()
15465- : package->unique_prefix()),
15466+ ? gogo->pkgpath_symbol()
15467+ : package->pkgpath_symbol()),
15468 n,
15469 btype,
15470 package != NULL,
15471@@ -4541,7 +4575,12 @@
15472 {
15473 if (this->package_ == NULL)
15474 return Gogo::message_name(this->name_);
15475- std::string ret = Gogo::message_name(this->package_->name());
15476+ std::string ret;
15477+ if (this->package_->has_package_name())
15478+ ret = this->package_->package_name();
15479+ else
15480+ ret = this->package_->pkgpath();
15481+ ret = Gogo::message_name(ret);
15482 ret += '.';
15483 ret += Gogo::message_name(this->name_);
15484 return ret;
15485@@ -4931,11 +4970,6 @@
15486 break;
15487
15488 case Named_object::NAMED_OBJECT_PACKAGE:
15489- if (new_object->is_package()
15490- && (old_object->package_value()->name()
15491- == new_object->package_value()->name()))
15492- return old_object;
15493-
15494 break;
15495 }
15496
15497@@ -5203,15 +5237,31 @@
15498
15499 // Class Package.
15500
15501-Package::Package(const std::string& name, const std::string& unique_prefix,
15502- Location location)
15503- : name_(name), unique_prefix_(unique_prefix), bindings_(new Bindings(NULL)),
15504- priority_(0), location_(location), used_(false), is_imported_(false),
15505+Package::Package(const std::string& pkgpath, Location location)
15506+ : pkgpath_(pkgpath), pkgpath_symbol_(Gogo::pkgpath_for_symbol(pkgpath)),
15507+ package_name_(), bindings_(new Bindings(NULL)), priority_(0),
15508+ location_(location), used_(false), is_imported_(false),
15509 uses_sink_alias_(false)
15510 {
15511- go_assert(!name.empty() && !unique_prefix.empty());
15512+ go_assert(!pkgpath.empty());
15513+
15514 }
15515
15516+// Set the package name.
15517+
15518+void
15519+Package::set_package_name(const std::string& package_name, Location location)
15520+{
15521+ go_assert(!package_name.empty());
15522+ if (this->package_name_.empty())
15523+ this->package_name_ = package_name;
15524+ else if (this->package_name_ != package_name)
15525+ error_at(location,
15526+ "saw two different packages with the same package path %s: %s, %s",
15527+ this->pkgpath_.c_str(), this->package_name_.c_str(),
15528+ package_name.c_str());
15529+}
15530+
15531 // Set the priority. We may see multiple priorities for an imported
15532 // package; we want to use the largest one.
15533
15534Index: gcc/go/gofrontend/gogo.h
15535===================================================================
15536--- gcc/go/gofrontend/gogo.h (.../tags/gcc_4_7_0_release) (wersja 187906)
15537+++ gcc/go/gofrontend/gogo.h (.../branches/gcc-4_7-branch) (wersja 187906)
15538@@ -138,16 +138,14 @@
15539 is_main_package() const;
15540
15541 // If necessary, adjust the name to use for a hidden symbol. We add
15542- // a prefix of the package name, so that hidden symbols in different
15543- // packages do not collide.
15544+ // the package name, so that hidden symbols in different packages do
15545+ // not collide.
15546 std::string
15547 pack_hidden_name(const std::string& name, bool is_exported) const
15548 {
15549 return (is_exported
15550 ? name
15551- : ('.' + this->unique_prefix()
15552- + '.' + this->package_name()
15553- + '.' + name));
15554+ : '.' + this->pkgpath() + '.' + name);
15555 }
15556
15557 // Unpack a name which may have been hidden. Returns the
15558@@ -161,9 +159,9 @@
15559 is_hidden_name(const std::string& name)
15560 { return name[0] == '.'; }
15561
15562- // Return the package prefix of a hidden name.
15563+ // Return the package path of a hidden name.
15564 static std::string
15565- hidden_name_prefix(const std::string& name)
15566+ hidden_name_pkgpath(const std::string& name)
15567 {
15568 go_assert(Gogo::is_hidden_name(name));
15569 return name.substr(1, name.rfind('.') - 1);
15570@@ -183,14 +181,31 @@
15571 && name[name.length() - 2] == '.');
15572 }
15573
15574- // Return the unique prefix to use for all exported symbols.
15575+ // Convert a pkgpath into a string suitable for a symbol
15576+ static std::string
15577+ pkgpath_for_symbol(const std::string& pkgpath);
15578+
15579+ // Return the package path to use for reflect.Type.PkgPath.
15580 const std::string&
15581- unique_prefix() const;
15582+ pkgpath() const;
15583
15584- // Set the unique prefix.
15585+ // Return the package path to use for a symbol name.
15586+ const std::string&
15587+ pkgpath_symbol() const;
15588+
15589+ // Set the package path from a command line option.
15590 void
15591- set_unique_prefix(const std::string&);
15592+ set_pkgpath(const std::string&);
15593
15594+ // Set the prefix from a command line option.
15595+ void
15596+ set_prefix(const std::string&);
15597+
15598+ // Return whether pkgpath was set from a command line option.
15599+ bool
15600+ pkgpath_from_option() const
15601+ { return this->pkgpath_from_option_; }
15602+
15603 // Return the priority to use for the package we are compiling.
15604 // This is two more than the largest priority of any package we
15605 // import.
15606@@ -229,7 +244,7 @@
15607 Package*
15608 add_imported_package(const std::string& real_name, const std::string& alias,
15609 bool is_alias_exported,
15610- const std::string& unique_prefix,
15611+ const std::string& pkgpath,
15612 Location location,
15613 bool* padd_to_globals);
15614
15615@@ -237,8 +252,7 @@
15616 // This returns the Package structure for the package, creating if
15617 // it necessary.
15618 Package*
15619- register_package(const std::string& name, const std::string& unique_prefix,
15620- Location);
15621+ register_package(const std::string& pkgpath, Location);
15622
15623 // Start compiling a function. ADD_METHOD_TO_TYPE is true if a
15624 // method function should be added to the type of its receiver.
15625@@ -384,6 +398,23 @@
15626 void
15627 clear_file_scope();
15628
15629+ // Record that VAR1 must be initialized after VAR2. This is used
15630+ // when VAR2 does not appear in VAR1's INIT or PREINIT.
15631+ void
15632+ record_var_depends_on(Variable* var1, Named_object* var2)
15633+ {
15634+ go_assert(this->var_deps_.find(var1) == this->var_deps_.end());
15635+ this->var_deps_[var1] = var2;
15636+ }
15637+
15638+ // Return the variable that VAR depends on, or NULL if none.
15639+ Named_object*
15640+ var_depends_on(Variable* var) const
15641+ {
15642+ Var_deps::const_iterator p = this->var_deps_.find(var);
15643+ return p != this->var_deps_.end() ? p->second : NULL;
15644+ }
15645+
15646 // Queue up a type-specific function to be written out. This is
15647 // used when a type-specific function is needed when not at the top
15648 // level.
15649@@ -592,11 +623,6 @@
15650 void
15651 import_unsafe(const std::string&, bool is_exported, Location);
15652
15653- // Add a new imported package.
15654- Named_object*
15655- add_package(const std::string& real_name, const std::string& alias,
15656- const std::string& unique_prefix, Location location);
15657-
15658 // Return the current binding contour.
15659 Bindings*
15660 current_bindings();
15661@@ -639,8 +665,9 @@
15662 // Type used to map package names to packages.
15663 typedef std::map<std::string, Package*> Packages;
15664
15665- // Type used to map special names in the sys package.
15666- typedef std::map<std::string, std::string> Sys_names;
15667+ // Type used to map variables to the function calls that set them.
15668+ // This is used for initialization dependency analysis.
15669+ typedef std::map<Variable*, Named_object*> Var_deps;
15670
15671 // Type used to queue writing a type specific function.
15672 struct Specific_type_function
15673@@ -683,16 +710,28 @@
15674 Packages packages_;
15675 // The functions named "init", if there are any.
15676 std::vector<Named_object*> init_functions_;
15677+ // A mapping from variables to the function calls that initialize
15678+ // them, if it is not stored in the variable's init or preinit.
15679+ // This is used for dependency analysis.
15680+ Var_deps var_deps_;
15681 // Whether we need a magic initialization function.
15682 bool need_init_fn_;
15683 // The name of the magic initialization function.
15684 std::string init_fn_name_;
15685 // A list of import control variables for packages that we import.
15686 std::set<Import_init> imported_init_fns_;
15687- // The unique prefix used for all global symbols.
15688- std::string unique_prefix_;
15689- // Whether an explicit unique prefix was set by -fgo-prefix.
15690- bool unique_prefix_specified_;
15691+ // The package path used for reflection data.
15692+ std::string pkgpath_;
15693+ // The package path to use for a symbol name.
15694+ std::string pkgpath_symbol_;
15695+ // The prefix to use for symbols, from the -fgo-prefix option.
15696+ std::string prefix_;
15697+ // Whether pkgpath_ has been set.
15698+ bool pkgpath_set_;
15699+ // Whether an explicit package path was set by -fgo-pkgpath.
15700+ bool pkgpath_from_option_;
15701+ // Whether an explicit prefix was set by -fgo-prefix.
15702+ bool prefix_from_option_;
15703 // A list of types to verify.
15704 std::vector<Type*> verify_types_;
15705 // A list of interface types defined while parsing.
15706@@ -2387,28 +2426,37 @@
15707 class Package
15708 {
15709 public:
15710- Package(const std::string& name, const std::string& unique_prefix,
15711- Location location);
15712+ Package(const std::string& pkgpath, Location location);
15713
15714- // The real name of this package. This may be different from the
15715- // name in the associated Named_object if the import statement used
15716- // an alias.
15717+ // Get the package path used for all symbols exported from this
15718+ // package.
15719 const std::string&
15720- name() const
15721- { return this->name_; }
15722+ pkgpath() const
15723+ { return this->pkgpath_; }
15724
15725+ // Return the package path to use for a symbol name.
15726+ const std::string&
15727+ pkgpath_symbol() const
15728+ { return this->pkgpath_symbol_; }
15729+
15730 // Return the location of the import statement.
15731 Location
15732 location() const
15733 { return this->location_; }
15734
15735- // Get the unique prefix used for all symbols exported from this
15736- // package.
15737+ // Return whether we know the name of this package yet.
15738+ bool
15739+ has_package_name() const
15740+ { return !this->package_name_.empty(); }
15741+
15742+ // The name that this package uses in its package clause. This may
15743+ // be different from the name in the associated Named_object if the
15744+ // import statement used an alias.
15745 const std::string&
15746- unique_prefix() const
15747+ package_name() const
15748 {
15749- go_assert(!this->unique_prefix_.empty());
15750- return this->unique_prefix_;
15751+ go_assert(!this->package_name_.empty());
15752+ return this->package_name_;
15753 }
15754
15755 // The priority of this package. The init function of packages with
15756@@ -2478,9 +2526,13 @@
15757 lookup(const std::string& name) const
15758 { return this->bindings_->lookup(name); }
15759
15760- // Set the location of the package. This is used if it is seen in a
15761- // different import before it is really imported.
15762+ // Set the name of the package.
15763 void
15764+ set_package_name(const std::string& name, Location);
15765+
15766+ // Set the location of the package. This is used to record the most
15767+ // recent import location.
15768+ void
15769 set_location(Location location)
15770 { this->location_ = location; }
15771
15772@@ -2515,10 +2567,13 @@
15773 determine_types();
15774
15775 private:
15776- // The real name of this package.
15777- std::string name_;
15778- // The unique prefix for all exported global symbols.
15779- std::string unique_prefix_;
15780+ // The package path for type reflection data.
15781+ std::string pkgpath_;
15782+ // The package path for symbol names.
15783+ std::string pkgpath_symbol_;
15784+ // The name that this package uses in the package clause. This may
15785+ // be the empty string if it is not yet known.
15786+ std::string package_name_;
15787 // The names in this package.
15788 Bindings* bindings_;
15789 // The priority of this package. A package has a priority higher
15790@@ -2791,6 +2846,9 @@
15791 // Channel capacity out of bounds in make: negative or overflow.
15792 static const int RUNTIME_ERROR_MAKE_CHAN_OUT_OF_BOUNDS = 9;
15793
15794+// Division by zero.
15795+static const int RUNTIME_ERROR_DIVISION_BY_ZERO = 10;
15796+
15797 // This is used by some of the langhooks.
15798 extern Gogo* go_get_gogo();
15799
15800Index: gcc/go/gofrontend/go.cc
15801===================================================================
15802--- gcc/go/gofrontend/go.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
15803+++ gcc/go/gofrontend/go.cc (.../branches/gcc-4_7-branch) (wersja 187906)
15804@@ -13,11 +13,6 @@
15805 #include "backend.h"
15806 #include "gogo.h"
15807
15808-// The unique prefix to use for exported symbols. This is set during
15809-// option processing.
15810-
15811-static std::string unique_prefix;
15812-
15813 // The data structures we build to represent the file.
15814 static Gogo* gogo;
15815
15816@@ -25,38 +20,22 @@
15817
15818 GO_EXTERN_C
15819 void
15820-go_create_gogo(int int_type_size, int pointer_size)
15821+go_create_gogo(int int_type_size, int pointer_size, const char *pkgpath,
15822+ const char *prefix)
15823 {
15824 go_assert(::gogo == NULL);
15825 Linemap* linemap = go_get_linemap();
15826 ::gogo = new Gogo(go_get_backend(), linemap, int_type_size, pointer_size);
15827- if (!unique_prefix.empty())
15828- ::gogo->set_unique_prefix(unique_prefix);
15829
15830+ if (pkgpath != NULL)
15831+ ::gogo->set_pkgpath(pkgpath);
15832+ else if (prefix != NULL)
15833+ ::gogo->set_prefix(prefix);
15834+
15835 // FIXME: This should be in the gcc dependent code.
15836 ::gogo->define_builtin_function_trees();
15837 }
15838
15839-// Set the unique prefix we use for exported symbols.
15840-
15841-GO_EXTERN_C
15842-void
15843-go_set_prefix(const char* arg)
15844-{
15845- unique_prefix = arg;
15846- for (size_t i = 0; i < unique_prefix.length(); ++i)
15847- {
15848- char c = unique_prefix[i];
15849- if ((c >= 'a' && c <= 'z')
15850- || (c >= 'A' && c <= 'Z')
15851- || (c >= '0' && c <= '9')
15852- || c == '_')
15853- ;
15854- else
15855- unique_prefix[i] = '_';
15856- }
15857-}
15858-
15859 // Parse the input files.
15860
15861 GO_EXTERN_C
15862Index: gcc/go/gofrontend/types.h
15863===================================================================
15864--- gcc/go/gofrontend/types.h (.../tags/gcc_4_7_0_release) (wersja 187906)
15865+++ gcc/go/gofrontend/types.h (.../branches/gcc-4_7-branch) (wersja 187906)
15866@@ -680,6 +680,14 @@
15867 complex_type() const
15868 { return this->convert<const Complex_type, TYPE_COMPLEX>(); }
15869
15870+ // Return whether this is a numeric type.
15871+ bool
15872+ is_numeric_type() const
15873+ {
15874+ Type_classification tc = this->base()->classification_;
15875+ return tc == TYPE_INTEGER || tc == TYPE_FLOAT || tc == TYPE_COMPLEX;
15876+ }
15877+
15878 // Return true if this is a boolean type.
15879 bool
15880 is_boolean_type() const
15881Index: gcc/go/gofrontend/parse.cc
15882===================================================================
15883--- gcc/go/gofrontend/parse.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
15884+++ gcc/go/gofrontend/parse.cc (.../branches/gcc-4_7-branch) (wersja 187906)
15885@@ -126,18 +126,22 @@
15886
15887 // ExpressionList = Expression { "," Expression } .
15888
15889+// If MAY_BE_COMPOSITE_LIT is true, an expression may be a composite
15890+// literal.
15891+
15892 // If MAY_BE_SINK is true, the expressions in the list may be "_".
15893
15894 Expression_list*
15895-Parse::expression_list(Expression* first, bool may_be_sink)
15896+Parse::expression_list(Expression* first, bool may_be_sink,
15897+ bool may_be_composite_lit)
15898 {
15899 Expression_list* ret = new Expression_list();
15900 if (first != NULL)
15901 ret->push_back(first);
15902 while (true)
15903 {
15904- ret->push_back(this->expression(PRECEDENCE_NORMAL, may_be_sink, true,
15905- NULL));
15906+ ret->push_back(this->expression(PRECEDENCE_NORMAL, may_be_sink,
15907+ may_be_composite_lit, NULL));
15908
15909 const Token* token = this->peek_token();
15910 if (!token->is_op(OPERATOR_COMMA))
15911@@ -319,13 +323,13 @@
15912 && package->name() != this->gogo_->package_name())
15913 {
15914 // Check whether the name is there but hidden.
15915- std::string s = ('.' + package->package_value()->unique_prefix()
15916- + '.' + package->package_value()->name()
15917+ std::string s = ('.' + package->package_value()->pkgpath()
15918 + '.' + name);
15919 named_object = package->package_value()->lookup(s);
15920 if (named_object != NULL)
15921 {
15922- const std::string& packname(package->package_value()->name());
15923+ Package* p = package->package_value();
15924+ const std::string& packname(p->package_name());
15925 error_at(location, "invalid reference to hidden type %<%s.%s%>",
15926 Gogo::message_name(packname).c_str(),
15927 Gogo::message_name(name).c_str());
15928@@ -341,7 +345,7 @@
15929 named_object = this->gogo_->add_unknown_name(name, location);
15930 else
15931 {
15932- const std::string& packname(package->package_value()->name());
15933+ const std::string& packname(package->package_value()->package_name());
15934 error_at(location, "reference to undefined identifier %<%s.%s%>",
15935 Gogo::message_name(packname).c_str(),
15936 Gogo::message_name(name).c_str());
15937@@ -1425,7 +1429,7 @@
15938 else
15939 {
15940 this->advance_token();
15941- expr_list = this->expression_list(NULL, false);
15942+ expr_list = this->expression_list(NULL, false, true);
15943 *last_type = type;
15944 if (*last_expr_list != NULL)
15945 delete *last_expr_list;
15946@@ -1575,13 +1579,13 @@
15947 if (this->peek_token()->is_op(OPERATOR_EQ))
15948 {
15949 this->advance_token();
15950- init = this->expression_list(NULL, false);
15951+ init = this->expression_list(NULL, false, true);
15952 }
15953 }
15954 else
15955 {
15956 this->advance_token();
15957- init = this->expression_list(NULL, false);
15958+ init = this->expression_list(NULL, false, true);
15959 }
15960
15961 this->init_vars(&til, type, init, false, location);
15962@@ -1667,6 +1671,7 @@
15963 // the right number of values, but it might. Declare the variables,
15964 // and then assign the results of the call to them.
15965
15966+ Named_object* first_var = NULL;
15967 unsigned int index = 0;
15968 bool any_new = false;
15969 for (Typed_identifier_list::const_iterator pv = vars->begin();
15970@@ -1674,7 +1679,22 @@
15971 ++pv, ++index)
15972 {
15973 Expression* init = Expression::make_call_result(call, index);
15974- this->init_var(*pv, type, init, is_coloneq, false, &any_new);
15975+ Named_object* no = this->init_var(*pv, type, init, is_coloneq, false,
15976+ &any_new);
15977+
15978+ if (this->gogo_->in_global_scope() && no->is_variable())
15979+ {
15980+ if (first_var == NULL)
15981+ first_var = no;
15982+ else
15983+ {
15984+ // The subsequent vars have an implicit dependency on
15985+ // the first one, so that everything gets initialized in
15986+ // the right order and so that we detect cycles
15987+ // correctly.
15988+ this->gogo_->record_var_depends_on(no->var_value(), first_var);
15989+ }
15990+ }
15991 }
15992
15993 if (is_coloneq && !any_new)
15994@@ -1972,6 +1992,9 @@
15995 // In order to support both "a, b := 1, 0" and "a, b = 1, 0" we accept
15996 // tuple assignments here as well.
15997
15998+// If MAY_BE_COMPOSITE_LIT is true, the expression on the right hand
15999+// side may be a composite literal.
16000+
16001 // If P_RANGE_CLAUSE is not NULL, then this will recognize a
16002 // RangeClause.
16003
16004@@ -1981,6 +2004,7 @@
16005 void
16006 Parse::simple_var_decl_or_assignment(const std::string& name,
16007 Location location,
16008+ bool may_be_composite_lit,
16009 Range_clause* p_range_clause,
16010 Type_switch* p_type_switch)
16011 {
16012@@ -2037,14 +2061,15 @@
16013 exprs->push_back(this->id_to_expression(p->name(),
16014 p->location()));
16015
16016- Expression_list* more_exprs = this->expression_list(NULL, true);
16017+ Expression_list* more_exprs =
16018+ this->expression_list(NULL, true, may_be_composite_lit);
16019 for (Expression_list::const_iterator p = more_exprs->begin();
16020 p != more_exprs->end();
16021 ++p)
16022 exprs->push_back(*p);
16023 delete more_exprs;
16024
16025- this->tuple_assignment(exprs, p_range_clause);
16026+ this->tuple_assignment(exprs, may_be_composite_lit, p_range_clause);
16027 return;
16028 }
16029 }
16030@@ -2060,11 +2085,12 @@
16031
16032 Expression_list* init;
16033 if (p_type_switch == NULL)
16034- init = this->expression_list(NULL, false);
16035+ init = this->expression_list(NULL, false, may_be_composite_lit);
16036 else
16037 {
16038 bool is_type_switch = false;
16039- Expression* expr = this->expression(PRECEDENCE_NORMAL, false, true,
16040+ Expression* expr = this->expression(PRECEDENCE_NORMAL, false,
16041+ may_be_composite_lit,
16042 &is_type_switch);
16043 if (is_type_switch)
16044 {
16045@@ -2083,7 +2109,7 @@
16046 else
16047 {
16048 this->advance_token();
16049- init = this->expression_list(expr, false);
16050+ init = this->expression_list(expr, false, may_be_composite_lit);
16051 }
16052 }
16053
16054@@ -2358,7 +2384,7 @@
16055 {
16056 go_assert(package != NULL);
16057 error_at(location, "invalid reference to hidden type %<%s.%s%>",
16058- Gogo::message_name(package->name()).c_str(),
16059+ Gogo::message_name(package->package_name()).c_str(),
16060 Gogo::message_name(id).c_str());
16061 return Expression::make_error(location);
16062 }
16063@@ -2368,7 +2394,7 @@
16064 {
16065 if (package != NULL)
16066 {
16067- std::string n1 = Gogo::message_name(package->name());
16068+ std::string n1 = Gogo::message_name(package->package_name());
16069 std::string n2 = Gogo::message_name(id);
16070 if (!is_exported)
16071 error_at(location,
16072@@ -2865,7 +2891,16 @@
16073 {
16074 if (this->peek_token()->is_op(OPERATOR_LCURLY))
16075 {
16076- if (is_parenthesized)
16077+ if (!may_be_composite_lit)
16078+ {
16079+ Type* t = ret->type();
16080+ if (t->named_type() != NULL
16081+ || t->forward_declaration_type() != NULL)
16082+ error_at(start_loc,
16083+ _("parentheses required around this composite literal"
16084+ "to avoid parsing ambiguity"));
16085+ }
16086+ else if (is_parenthesized)
16087 error_at(start_loc,
16088 "cannot parenthesize type in composite literal");
16089 ret = this->composite_lit(ret->type(), 0, ret->location());
16090@@ -3040,7 +3075,7 @@
16091 const Token* token = this->advance_token();
16092 if (!token->is_op(OPERATOR_RPAREN))
16093 {
16094- args = this->expression_list(NULL, false);
16095+ args = this->expression_list(NULL, false, true);
16096 token = this->peek_token();
16097 if (token->is_op(OPERATOR_ELLIPSIS))
16098 {
16099@@ -3553,6 +3588,7 @@
16100 {
16101 identifier = this->gogo_->pack_hidden_name(identifier, is_exported);
16102 this->simple_var_decl_or_assignment(identifier, location,
16103+ may_be_composite_lit,
16104 p_range_clause,
16105 (token->is_op(OPERATOR_COLONEQ)
16106 ? p_type_switch
16107@@ -3588,7 +3624,7 @@
16108 this->inc_dec_stat(this->verify_not_sink(exp));
16109 else if (token->is_op(OPERATOR_COMMA)
16110 || token->is_op(OPERATOR_EQ))
16111- this->assignment(exp, p_range_clause);
16112+ this->assignment(exp, may_be_composite_lit, p_range_clause);
16113 else if (token->is_op(OPERATOR_PLUSEQ)
16114 || token->is_op(OPERATOR_MINUSEQ)
16115 || token->is_op(OPERATOR_OREQ)
16116@@ -3600,7 +3636,8 @@
16117 || token->is_op(OPERATOR_RSHIFTEQ)
16118 || token->is_op(OPERATOR_ANDEQ)
16119 || token->is_op(OPERATOR_BITCLEAREQ))
16120- this->assignment(this->verify_not_sink(exp), p_range_clause);
16121+ this->assignment(this->verify_not_sink(exp), may_be_composite_lit,
16122+ p_range_clause);
16123 else if (return_exp != NULL)
16124 return this->verify_not_sink(exp);
16125 else
16126@@ -3706,11 +3743,15 @@
16127
16128 // EXP is an expression that we have already parsed.
16129
16130+// If MAY_BE_COMPOSITE_LIT is true, an expression on the right hand
16131+// side may be a composite literal.
16132+
16133 // If RANGE_CLAUSE is not NULL, then this will recognize a
16134 // RangeClause.
16135
16136 void
16137-Parse::assignment(Expression* expr, Range_clause* p_range_clause)
16138+Parse::assignment(Expression* expr, bool may_be_composite_lit,
16139+ Range_clause* p_range_clause)
16140 {
16141 Expression_list* vars;
16142 if (!this->peek_token()->is_op(OPERATOR_COMMA))
16143@@ -3721,20 +3762,24 @@
16144 else
16145 {
16146 this->advance_token();
16147- vars = this->expression_list(expr, true);
16148+ vars = this->expression_list(expr, true, may_be_composite_lit);
16149 }
16150
16151- this->tuple_assignment(vars, p_range_clause);
16152+ this->tuple_assignment(vars, may_be_composite_lit, p_range_clause);
16153 }
16154
16155 // An assignment statement. LHS is the list of expressions which
16156 // appear on the left hand side.
16157
16158+// If MAY_BE_COMPOSITE_LIT is true, an expression on the right hand
16159+// side may be a composite literal.
16160+
16161 // If RANGE_CLAUSE is not NULL, then this will recognize a
16162 // RangeClause.
16163
16164 void
16165-Parse::tuple_assignment(Expression_list* lhs, Range_clause* p_range_clause)
16166+Parse::tuple_assignment(Expression_list* lhs, bool may_be_composite_lit,
16167+ Range_clause* p_range_clause)
16168 {
16169 const Token* token = this->peek_token();
16170 if (!token->is_op(OPERATOR_EQ)
16171@@ -3766,7 +3811,8 @@
16172 return;
16173 }
16174
16175- Expression_list* vals = this->expression_list(NULL, false);
16176+ Expression_list* vals = this->expression_list(NULL, false,
16177+ may_be_composite_lit);
16178
16179 // We've parsed everything; check for errors.
16180 if (lhs == NULL || vals == NULL)
16181@@ -3935,7 +3981,7 @@
16182 this->advance_token();
16183 Expression_list* vals = NULL;
16184 if (this->expression_may_start_here())
16185- vals = this->expression_list(NULL, false);
16186+ vals = this->expression_list(NULL, false, true);
16187 this->gogo_->add_statement(Statement::make_return_statement(vals, location));
16188
16189 if (vals == NULL
16190@@ -3971,7 +4017,7 @@
16191
16192 bool saw_simple_stat = false;
16193 Expression* cond = NULL;
16194- bool saw_send_stmt;
16195+ bool saw_send_stmt = false;
16196 if (this->simple_stat_may_start_here())
16197 {
16198 cond = this->simple_stat(false, &saw_send_stmt, NULL, NULL);
16199@@ -4296,7 +4342,7 @@
16200 if (token->is_keyword(KEYWORD_CASE))
16201 {
16202 this->advance_token();
16203- return this->expression_list(NULL, false);
16204+ return this->expression_list(NULL, false, true);
16205 }
16206 else if (token->is_keyword(KEYWORD_DEFAULT))
16207 {
16208Index: gcc/go/gofrontend/export.cc
16209===================================================================
16210--- gcc/go/gofrontend/export.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
16211+++ gcc/go/gofrontend/export.cc (.../branches/gcc-4_7-branch) (wersja 187906)
16212@@ -33,7 +33,7 @@
16213 // Constructor.
16214
16215 Export::Export(Stream* stream)
16216- : stream_(stream), type_refs_(), type_index_(1)
16217+ : stream_(stream), type_refs_(), type_index_(1), packages_()
16218 {
16219 }
16220
16221@@ -91,7 +91,7 @@
16222
16223 void
16224 Export::export_globals(const std::string& package_name,
16225- const std::string& unique_prefix,
16226+ const std::string& pkgpath,
16227 int package_priority,
16228 const std::map<std::string, Package*>& imports,
16229 const std::string& import_init_fn,
16230@@ -140,9 +140,9 @@
16231 this->write_string(package_name);
16232 this->write_c_string(";\n");
16233
16234- // The unique prefix. This prefix is used for all global symbols.
16235- this->write_c_string("prefix ");
16236- this->write_string(unique_prefix);
16237+ // The package path, used for all global symbols.
16238+ this->write_c_string("pkgpath ");
16239+ this->write_string(pkgpath);
16240 this->write_c_string(";\n");
16241
16242 // The package priority.
16243@@ -209,12 +209,14 @@
16244 ++p)
16245 {
16246 this->write_c_string("import ");
16247- this->write_string(p->second->name());
16248+ this->write_string(p->second->package_name());
16249 this->write_c_string(" ");
16250- this->write_string(p->second->unique_prefix());
16251+ this->write_string(p->second->pkgpath());
16252 this->write_c_string(" \"");
16253 this->write_string(p->first);
16254 this->write_c_string("\";\n");
16255+
16256+ this->packages_.insert(p->second);
16257 }
16258 }
16259
16260@@ -333,7 +335,7 @@
16261 {
16262 // The builtin types should have been predefined.
16263 go_assert(!Linemap::is_predeclared_location(named_type->location())
16264- || (named_type->named_object()->package()->name()
16265+ || (named_type->named_object()->package()->package_name()
16266 == "unsafe"));
16267 named_object = named_type->named_object();
16268 }
16269@@ -345,15 +347,26 @@
16270 std::string s = "\"";
16271 if (package != NULL && !Gogo::is_hidden_name(named_object->name()))
16272 {
16273- s += package->unique_prefix();
16274+ s += package->pkgpath();
16275 s += '.';
16276- s += package->name();
16277- s += '.';
16278 }
16279 s += named_object->name();
16280 s += "\" ";
16281 this->write_string(s);
16282
16283+ // It is possible that this type was imported indirectly, and is
16284+ // not in a package in the import list. If we have not
16285+ // mentioned this package before, write out the package name
16286+ // here so that any package importing this one will know it.
16287+ if (package != NULL
16288+ && this->packages_.find(package) == this->packages_.end())
16289+ {
16290+ this->write_c_string("\"");
16291+ this->write_string(package->package_name());
16292+ this->packages_.insert(package);
16293+ this->write_c_string("\" ");
16294+ }
16295+
16296 // We must add a named type to the table now, since the
16297 // definition of the type may refer to the named type via a
16298 // pointer.
16299Index: gcc/go/gofrontend/unsafe.cc
16300===================================================================
16301--- gcc/go/gofrontend/unsafe.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
16302+++ gcc/go/gofrontend/unsafe.cc (.../branches/gcc-4_7-branch) (wersja 187906)
16303@@ -22,8 +22,8 @@
16304 bool add_to_globals;
16305 Package* package = this->add_imported_package("unsafe", local_name,
16306 is_local_name_exported,
16307- "libgo_unsafe",
16308- location, &add_to_globals);
16309+ "unsafe", location,
16310+ &add_to_globals);
16311
16312 if (package == NULL)
16313 {
16314@@ -57,11 +57,11 @@
16315 if (add_to_globals)
16316 this->add_named_type(pointer_type);
16317
16318- Type* int_type = this->lookup_global("int")->type_value();
16319+ Type* uintptr_type = Type::lookup_integer_type("uintptr");
16320
16321 // Sizeof.
16322 Typed_identifier_list* results = new Typed_identifier_list;
16323- results->push_back(Typed_identifier("", int_type, bloc));
16324+ results->push_back(Typed_identifier("", uintptr_type, bloc));
16325 Function_type* fntype = Type::make_function_type(NULL, NULL, results, bloc);
16326 fntype->set_is_builtin();
16327 no = bindings->add_function_declaration("Sizeof", package, fntype, bloc);
16328@@ -70,7 +70,7 @@
16329
16330 // Offsetof.
16331 results = new Typed_identifier_list;
16332- results->push_back(Typed_identifier("", int_type, bloc));
16333+ results->push_back(Typed_identifier("", uintptr_type, bloc));
16334 fntype = Type::make_function_type(NULL, NULL, results, bloc);
16335 fntype->set_is_varargs();
16336 fntype->set_is_builtin();
16337@@ -80,7 +80,7 @@
16338
16339 // Alignof.
16340 results = new Typed_identifier_list;
16341- results->push_back(Typed_identifier("", int_type, bloc));
16342+ results->push_back(Typed_identifier("", uintptr_type, bloc));
16343 fntype = Type::make_function_type(NULL, NULL, results, bloc);
16344 fntype->set_is_varargs();
16345 fntype->set_is_builtin();
16346Index: gcc/go/gofrontend/export.h
16347===================================================================
16348--- gcc/go/gofrontend/export.h (.../tags/gcc_4_7_0_release) (wersja 187906)
16349+++ gcc/go/gofrontend/export.h (.../branches/gcc-4_7-branch) (wersja 187906)
16350@@ -117,7 +117,7 @@
16351 // Export the identifiers in BINDINGS which are marked for export.
16352 // The exporting is done via a series of calls to THIS->STREAM_. If
16353 // is nothing to export, this->stream_->write will not be called.
16354- // UNIQUE_PREFIX is a prefix for all global symbols.
16355+ // PKGPATH is the package path.
16356 // PACKAGE_PRIORITY is the priority to use for this package.
16357 // IMPORT_INIT_FN is the name of the import initialization function
16358 // for this package; it will be empty if none is needed.
16359@@ -125,7 +125,7 @@
16360 // imported packages.
16361 void
16362 export_globals(const std::string& package_name,
16363- const std::string& unique_prefix,
16364+ const std::string& pkgpath,
16365 int package_priority,
16366 const std::map<std::string, Package*>& imports,
16367 const std::string& import_init_fn,
16368@@ -182,6 +182,8 @@
16369 Type_refs type_refs_;
16370 // Index number of next type.
16371 int type_index_;
16372+ // Packages we have written out.
16373+ Unordered_set(const Package*) packages_;
16374 };
16375
16376 // An export streamer which puts the export stream in a named section.
16377Index: gcc/go/gofrontend/expressions.h
16378===================================================================
16379--- gcc/go/gofrontend/expressions.h (.../tags/gcc_4_7_0_release) (wersja 187906)
16380+++ gcc/go/gofrontend/expressions.h (.../branches/gcc-4_7-branch) (wersja 187906)
16381@@ -18,6 +18,9 @@
16382 class Statement_inserter;
16383 class Type;
16384 struct Type_context;
16385+class Integer_type;
16386+class Float_type;
16387+class Complex_type;
16388 class Function_type;
16389 class Map_type;
16390 class Struct_type;
16391@@ -38,6 +41,7 @@
16392 class Interface_field_reference_expression;
16393 class Type_guard_expression;
16394 class Receive_expression;
16395+class Numeric_constant;
16396 class Named_object;
16397 class Export;
16398 class Import;
16399@@ -342,31 +346,12 @@
16400 is_constant() const
16401 { return this->do_is_constant(); }
16402
16403- // If this is not a constant expression with integral type, return
16404- // false. If it is one, return true, and set VAL to the value. VAL
16405- // should already be initialized. If this returns true, it sets
16406- // *PTYPE to the type of the value, or NULL for an abstract type.
16407- // If IOTA_IS_CONSTANT is true, then an iota expression is assumed
16408- // to have its final value.
16409+ // If this is not a numeric constant, return false. If it is one,
16410+ // return true, and set VAL to hold the value.
16411 bool
16412- integer_constant_value(bool iota_is_constant, mpz_t val, Type** ptype) const;
16413+ numeric_constant_value(Numeric_constant* val) const
16414+ { return this->do_numeric_constant_value(val); }
16415
16416- // If this is not a constant expression with floating point type,
16417- // return false. If it is one, return true, and set VAL to the
16418- // value. VAL should already be initialized. If this returns true,
16419- // it sets *PTYPE to the type of the value, or NULL for an abstract
16420- // type.
16421- bool
16422- float_constant_value(mpfr_t val, Type** ptype) const;
16423-
16424- // If this is not a constant expression with complex type, return
16425- // false. If it is one, return true, and set REAL and IMAG to the
16426- // value. REAL and IMAG should already be initialized. If this
16427- // return strue, it sets *PTYPE to the type of the value, or NULL
16428- // for an abstract type.
16429- bool
16430- complex_constant_value(mpfr_t real, mpfr_t imag, Type** ptype) const;
16431-
16432 // If this is not a constant expression with string type, return
16433 // false. If it is one, return true, and set VAL to the value.
16434 bool
16435@@ -691,24 +676,12 @@
16436 do_is_constant() const
16437 { return false; }
16438
16439- // Return whether this is a constant expression of integral type,
16440- // and set VAL to the value.
16441+ // Return whether this is a constant expression of numeric type, and
16442+ // set the Numeric_constant to the value.
16443 virtual bool
16444- do_integer_constant_value(bool, mpz_t, Type**) const
16445+ do_numeric_constant_value(Numeric_constant*) const
16446 { return false; }
16447
16448- // Return whether this is a constant expression of floating point
16449- // type, and set VAL to the value.
16450- virtual bool
16451- do_float_constant_value(mpfr_t, Type**) const
16452- { return false; }
16453-
16454- // Return whether this is a constant expression of complex type, and
16455- // set REAL and IMAGE to the value.
16456- virtual bool
16457- do_complex_constant_value(mpfr_t, mpfr_t, Type**) const
16458- { return false; }
16459-
16460 // Return whether this is a constant expression of string type, and
16461 // set VAL to the value.
16462 virtual bool
16463@@ -869,6 +842,11 @@
16464 bool
16465 contains_error() const;
16466
16467+ // Retrieve an element by index.
16468+ Expression*&
16469+ at(size_t i)
16470+ { return this->entries_.at(i); }
16471+
16472 // Return the first and last elements.
16473 Expression*&
16474 front()
16475@@ -1189,43 +1167,22 @@
16476 right()
16477 { return this->right_; }
16478
16479- // Apply binary opcode OP to LEFT_VAL and RIGHT_VAL, setting VAL.
16480- // LEFT_TYPE is the type of LEFT_VAL, RIGHT_TYPE is the type of
16481- // RIGHT_VAL; LEFT_TYPE and/or RIGHT_TYPE may be NULL. Return true
16482- // if this could be done, false if not.
16483+ // Apply binary opcode OP to LEFT_NC and RIGHT_NC, setting NC.
16484+ // Return true if this could be done, false if not. Issue errors at
16485+ // LOCATION as appropriate.
16486 static bool
16487- eval_integer(Operator op, Type* left_type, mpz_t left_val,
16488- Type* right_type, mpz_t right_val, Location,
16489- mpz_t val);
16490+ eval_constant(Operator op, Numeric_constant* left_nc,
16491+ Numeric_constant* right_nc, Location location,
16492+ Numeric_constant* nc);
16493
16494- // Apply binary opcode OP to LEFT_VAL and RIGHT_VAL, setting VAL.
16495- // Return true if this could be done, false if not.
16496+ // Compare constants LEFT_NC and RIGHT_NC according to OP, setting
16497+ // *RESULT. Return true if this could be done, false if not. Issue
16498+ // errors at LOCATION as appropriate.
16499 static bool
16500- eval_float(Operator op, Type* left_type, mpfr_t left_val,
16501- Type* right_type, mpfr_t right_val, mpfr_t val,
16502- Location);
16503+ compare_constant(Operator op, Numeric_constant* left_nc,
16504+ Numeric_constant* right_nc, Location location,
16505+ bool* result);
16506
16507- // Apply binary opcode OP to LEFT_REAL/LEFT_IMAG and
16508- // RIGHT_REAL/RIGHT_IMAG, setting REAL/IMAG. Return true if this
16509- // could be done, false if not.
16510- static bool
16511- eval_complex(Operator op, Type* left_type, mpfr_t left_real,
16512- mpfr_t left_imag, Type* right_type, mpfr_t right_real,
16513- mpfr_t right_imag, mpfr_t real, mpfr_t imag, Location);
16514-
16515- // Compare integer constants according to OP.
16516- static bool
16517- compare_integer(Operator op, mpz_t left_val, mpz_t right_val);
16518-
16519- // Compare floating point constants according to OP.
16520- static bool
16521- compare_float(Operator op, Type* type, mpfr_t left_val, mpfr_t right_val);
16522-
16523- // Compare complex constants according to OP.
16524- static bool
16525- compare_complex(Operator op, Type* type, mpfr_t left_real, mpfr_t left_imag,
16526- mpfr_t right_val, mpfr_t right_imag);
16527-
16528 static Expression*
16529 do_import(Import*);
16530
16531@@ -1246,14 +1203,8 @@
16532 { return this->left_->is_constant() && this->right_->is_constant(); }
16533
16534 bool
16535- do_integer_constant_value(bool, mpz_t val, Type**) const;
16536+ do_numeric_constant_value(Numeric_constant*) const;
16537
16538- bool
16539- do_float_constant_value(mpfr_t val, Type**) const;
16540-
16541- bool
16542- do_complex_constant_value(mpfr_t real, mpfr_t imag, Type**) const;
16543-
16544 void
16545 do_discarding_value();
16546
16547@@ -1283,6 +1234,34 @@
16548 do_dump_expression(Ast_dump_context*) const;
16549
16550 private:
16551+ static bool
16552+ operation_type(Operator op, Type* left_type, Type* right_type,
16553+ Type** result_type);
16554+
16555+ static bool
16556+ cmp_to_bool(Operator op, int cmp);
16557+
16558+ static bool
16559+ eval_integer(Operator op, const Numeric_constant*, const Numeric_constant*,
16560+ Location, Numeric_constant*);
16561+
16562+ static bool
16563+ eval_float(Operator op, const Numeric_constant*, const Numeric_constant*,
16564+ Location, Numeric_constant*);
16565+
16566+ static bool
16567+ eval_complex(Operator op, const Numeric_constant*, const Numeric_constant*,
16568+ Location, Numeric_constant*);
16569+
16570+ static bool
16571+ compare_integer(const Numeric_constant*, const Numeric_constant*, int*);
16572+
16573+ static bool
16574+ compare_float(const Numeric_constant*, const Numeric_constant *, int*);
16575+
16576+ static bool
16577+ compare_complex(const Numeric_constant*, const Numeric_constant*, int*);
16578+
16579 Expression*
16580 lower_struct_comparison(Gogo*, Statement_inserter*);
16581
16582@@ -2101,4 +2080,173 @@
16583 Expression* channel_;
16584 };
16585
16586+// A numeric constant. This is used both for untyped constants and
16587+// for constants that have a type.
16588+
16589+class Numeric_constant
16590+{
16591+ public:
16592+ Numeric_constant()
16593+ : classification_(NC_INVALID), type_(NULL)
16594+ { }
16595+
16596+ ~Numeric_constant();
16597+
16598+ Numeric_constant(const Numeric_constant&);
16599+
16600+ Numeric_constant& operator=(const Numeric_constant&);
16601+
16602+ // Set to an unsigned long value.
16603+ void
16604+ set_unsigned_long(Type*, unsigned long);
16605+
16606+ // Set to an integer value.
16607+ void
16608+ set_int(Type*, const mpz_t);
16609+
16610+ // Set to a rune value.
16611+ void
16612+ set_rune(Type*, const mpz_t);
16613+
16614+ // Set to a floating point value.
16615+ void
16616+ set_float(Type*, const mpfr_t);
16617+
16618+ // Set to a complex value.
16619+ void
16620+ set_complex(Type*, const mpfr_t, const mpfr_t);
16621+
16622+ // Classifiers.
16623+ bool
16624+ is_int() const
16625+ { return this->classification_ == Numeric_constant::NC_INT; }
16626+
16627+ bool
16628+ is_rune() const
16629+ { return this->classification_ == Numeric_constant::NC_RUNE; }
16630+
16631+ bool
16632+ is_float() const
16633+ { return this->classification_ == Numeric_constant::NC_FLOAT; }
16634+
16635+ bool
16636+ is_complex() const
16637+ { return this->classification_ == Numeric_constant::NC_COMPLEX; }
16638+
16639+ // Value retrievers. These will initialize the values as well as
16640+ // set them. GET_INT is only valid if IS_INT returns true, and
16641+ // likewise respectively.
16642+ void
16643+ get_int(mpz_t*) const;
16644+
16645+ void
16646+ get_rune(mpz_t*) const;
16647+
16648+ void
16649+ get_float(mpfr_t*) const;
16650+
16651+ void
16652+ get_complex(mpfr_t*, mpfr_t*) const;
16653+
16654+ // Codes returned by to_unsigned_long.
16655+ enum To_unsigned_long
16656+ {
16657+ // Value is integer and fits in unsigned long.
16658+ NC_UL_VALID,
16659+ // Value is not integer.
16660+ NC_UL_NOTINT,
16661+ // Value is integer but is negative.
16662+ NC_UL_NEGATIVE,
16663+ // Value is non-negative integer but does not fit in unsigned
16664+ // long.
16665+ NC_UL_BIG
16666+ };
16667+
16668+ // If the value can be expressed as an integer that fits in an
16669+ // unsigned long, set *VAL and return NC_UL_VALID. Otherwise return
16670+ // one of the other To_unsigned_long codes.
16671+ To_unsigned_long
16672+ to_unsigned_long(unsigned long* val) const;
16673+
16674+ // If the value can be expressed as an int, return true and
16675+ // initialize and set VAL. This will return false for a value with
16676+ // an explicit float or complex type, even if the value is integral.
16677+ bool
16678+ to_int(mpz_t* val) const;
16679+
16680+ // If the value can be expressed as a float, return true and
16681+ // initialize and set VAL.
16682+ bool
16683+ to_float(mpfr_t* val) const;
16684+
16685+ // If the value can be expressed as a complex, return true and
16686+ // initialize and set VR and VI.
16687+ bool
16688+ to_complex(mpfr_t* vr, mpfr_t* vi) const;
16689+
16690+ // Get the type.
16691+ Type*
16692+ type() const;
16693+
16694+ // If the constant can be expressed in TYPE, then set the type of
16695+ // the constant to TYPE and return true. Otherwise return false,
16696+ // and, if ISSUE_ERROR is true, issue an error message. LOCATION is
16697+ // the location to use for the error.
16698+ bool
16699+ set_type(Type* type, bool issue_error, Location location);
16700+
16701+ // Return an Expression for this value.
16702+ Expression*
16703+ expression(Location) const;
16704+
16705+ private:
16706+ void
16707+ clear();
16708+
16709+ To_unsigned_long
16710+ mpz_to_unsigned_long(const mpz_t ival, unsigned long *val) const;
16711+
16712+ To_unsigned_long
16713+ mpfr_to_unsigned_long(const mpfr_t fval, unsigned long *val) const;
16714+
16715+ bool
16716+ check_int_type(Integer_type*, bool, Location) const;
16717+
16718+ bool
16719+ check_float_type(Float_type*, bool, Location) const;
16720+
16721+ bool
16722+ check_complex_type(Complex_type*, bool, Location) const;
16723+
16724+ // The kinds of constants.
16725+ enum Classification
16726+ {
16727+ NC_INVALID,
16728+ NC_RUNE,
16729+ NC_INT,
16730+ NC_FLOAT,
16731+ NC_COMPLEX
16732+ };
16733+
16734+ // The kind of constant.
16735+ Classification classification_;
16736+ // The value.
16737+ union
16738+ {
16739+ // If NC_INT or NC_RUNE.
16740+ mpz_t int_val;
16741+ // If NC_FLOAT.
16742+ mpfr_t float_val;
16743+ // If NC_COMPLEX.
16744+ struct
16745+ {
16746+ mpfr_t real;
16747+ mpfr_t imag;
16748+ } complex_val;
16749+ } u_;
16750+ // The type if there is one. This will be NULL for an untyped
16751+ // constant.
16752+ Type* type_;
16753+};
16754+
16755 #endif // !defined(GO_EXPRESSIONS_H)
16756Index: gcc/go/gofrontend/statements.cc
16757===================================================================
16758--- gcc/go/gofrontend/statements.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
16759+++ gcc/go/gofrontend/statements.cc (.../branches/gcc-4_7-branch) (wersja 187906)
16760@@ -3214,10 +3214,9 @@
16761 size_t
16762 Case_clauses::Hash_integer_value::operator()(Expression* pe) const
16763 {
16764- Type* itype;
16765+ Numeric_constant nc;
16766 mpz_t ival;
16767- mpz_init(ival);
16768- if (!pe->integer_constant_value(true, ival, &itype))
16769+ if (!pe->numeric_constant_value(&nc) || !nc.to_int(&ival))
16770 go_unreachable();
16771 size_t ret = mpz_get_ui(ival);
16772 mpz_clear(ival);
16773@@ -3236,14 +3235,14 @@
16774 bool
16775 Case_clauses::Eq_integer_value::operator()(Expression* a, Expression* b) const
16776 {
16777- Type* atype;
16778- Type* btype;
16779+ Numeric_constant anc;
16780 mpz_t aval;
16781+ Numeric_constant bnc;
16782 mpz_t bval;
16783- mpz_init(aval);
16784- mpz_init(bval);
16785- if (!a->integer_constant_value(true, aval, &atype)
16786- || !b->integer_constant_value(true, bval, &btype))
16787+ if (!a->numeric_constant_value(&anc)
16788+ || !anc.to_int(&aval)
16789+ || !b->numeric_constant_value(&bnc)
16790+ || !bnc.to_int(&bval))
16791 go_unreachable();
16792 bool ret = mpz_cmp(aval, bval) == 0;
16793 mpz_clear(aval);
16794@@ -3431,18 +3430,17 @@
16795 Expression* e = *p;
16796 if (e->classification() != Expression::EXPRESSION_INTEGER)
16797 {
16798- Type* itype;
16799+ Numeric_constant nc;
16800 mpz_t ival;
16801- mpz_init(ival);
16802- if (!(*p)->integer_constant_value(true, ival, &itype))
16803+ if (!(*p)->numeric_constant_value(&nc) || !nc.to_int(&ival))
16804 {
16805 // Something went wrong. This can happen with a
16806 // negative constant and an unsigned switch value.
16807 go_assert(saw_errors());
16808 continue;
16809 }
16810- go_assert(itype != NULL);
16811- e = Expression::make_integer(&ival, itype, e->location());
16812+ go_assert(nc.type() != NULL);
16813+ e = Expression::make_integer(&ival, nc.type(), e->location());
16814 mpz_clear(ival);
16815 }
16816
16817Index: gcc/go/gofrontend/gogo-tree.cc
16818===================================================================
16819--- gcc/go/gofrontend/gogo-tree.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
16820+++ gcc/go/gofrontend/gogo-tree.cc (.../branches/gcc-4_7-branch) (wersja 187906)
16821@@ -260,9 +260,7 @@
16822 }
16823 else
16824 {
16825- std::string s = this->unique_prefix();
16826- s.append(1, '.');
16827- s.append(this->package_name());
16828+ std::string s = this->pkgpath_symbol();
16829 s.append("..import");
16830 this->init_fn_name_ = s;
16831 }
16832@@ -403,7 +401,7 @@
16833
16834 // Build a constructor for the struct.
16835
16836- VEC(constructor_elt,gc*) root_list_init = VEC_alloc(constructor_elt, gc, 2);
16837+ VEC(constructor_elt,gc)* root_list_init = VEC_alloc(constructor_elt, gc, 2);
16838
16839 elt = VEC_quick_push(constructor_elt, root_list_init, NULL);
16840 field = TYPE_FIELDS(root_list_type);
16841@@ -591,10 +589,11 @@
16842 return TRAVERSE_CONTINUE;
16843 }
16844
16845-// Return true if EXPR refers to VAR.
16846+// Return true if EXPR, PREINIT, or DEP refers to VAR.
16847
16848 static bool
16849-expression_requires(Expression* expr, Block* preinit, Named_object* var)
16850+expression_requires(Expression* expr, Block* preinit, Named_object* dep,
16851+ Named_object* var)
16852 {
16853 Find_var::Seen_objects seen_objects;
16854 Find_var find_var(var, &seen_objects);
16855@@ -602,7 +601,15 @@
16856 Expression::traverse(&expr, &find_var);
16857 if (preinit != NULL)
16858 preinit->traverse(&find_var);
16859-
16860+ if (dep != NULL)
16861+ {
16862+ Expression* init = dep->var_value()->init();
16863+ if (init != NULL)
16864+ Expression::traverse(&init, &find_var);
16865+ if (dep->var_value()->has_pre_init())
16866+ dep->var_value()->preinit()->traverse(&find_var);
16867+ }
16868+
16869 return find_var.found();
16870 }
16871
16872@@ -659,7 +666,7 @@
16873 // variable V2 then we initialize V1 after V2.
16874
16875 static void
16876-sort_var_inits(Var_inits* var_inits)
16877+sort_var_inits(Gogo* gogo, Var_inits* var_inits)
16878 {
16879 Var_inits ready;
16880 while (!var_inits->empty())
16881@@ -668,6 +675,7 @@
16882 Named_object* var = p1->var();
16883 Expression* init = var->var_value()->init();
16884 Block* preinit = var->var_value()->preinit();
16885+ Named_object* dep = gogo->var_depends_on(var->var_value());
16886
16887 // Start walking through the list to see which variables VAR
16888 // needs to wait for. We can skip P1->WAITING variables--that
16889@@ -679,20 +687,22 @@
16890
16891 for (; p2 != var_inits->end(); ++p2)
16892 {
16893- if (expression_requires(init, preinit, p2->var()))
16894+ Named_object* p2var = p2->var();
16895+ if (expression_requires(init, preinit, dep, p2var))
16896 {
16897 // Check for cycles.
16898- if (expression_requires(p2->var()->var_value()->init(),
16899- p2->var()->var_value()->preinit(),
16900+ if (expression_requires(p2var->var_value()->init(),
16901+ p2var->var_value()->preinit(),
16902+ gogo->var_depends_on(p2var->var_value()),
16903 var))
16904 {
16905 error_at(var->location(),
16906 ("initialization expressions for %qs and "
16907 "%qs depend upon each other"),
16908 var->message_name().c_str(),
16909- p2->var()->message_name().c_str());
16910+ p2var->message_name().c_str());
16911 inform(p2->var()->location(), "%qs defined here",
16912- p2->var()->message_name().c_str());
16913+ p2var->message_name().c_str());
16914 p2 = var_inits->end();
16915 }
16916 else
16917@@ -715,9 +725,11 @@
16918 // VAR does not depends upon any other initialization expressions.
16919
16920 // Check for a loop of VAR on itself. We only do this if
16921- // INIT is not NULL; when INIT is NULL, it means that
16922- // PREINIT sets VAR, which we will interpret as a loop.
16923- if (init != NULL && expression_requires(init, preinit, var))
16924+ // INIT is not NULL and there is no dependency; when INIT is
16925+ // NULL, it means that PREINIT sets VAR, which we will
16926+ // interpret as a loop.
16927+ if (init != NULL && dep == NULL
16928+ && expression_requires(init, preinit, NULL, var))
16929 error_at(var->location(),
16930 "initialization expression for %qs depends upon itself",
16931 var->message_name().c_str());
16932@@ -784,7 +796,7 @@
16933 }
16934
16935 // There is nothing useful we can output for constants which
16936- // have ideal or non-integeral type.
16937+ // have ideal or non-integral type.
16938 if (no->is_const())
16939 {
16940 Type* type = no->const_value()->type();
16941@@ -835,7 +847,9 @@
16942 ;
16943 else if (TREE_CONSTANT(init))
16944 {
16945- if (expression_requires(no->var_value()->init(), NULL, no))
16946+ if (expression_requires(no->var_value()->init(), NULL,
16947+ this->var_depends_on(no->var_value()),
16948+ no))
16949 error_at(no->location(),
16950 "initialization expression for %qs depends "
16951 "upon itself",
16952@@ -880,6 +894,14 @@
16953 else
16954 var_inits.push_back(Var_init(no, var_init_tree));
16955 }
16956+ else if (this->var_depends_on(no->var_value()) != NULL)
16957+ {
16958+ // This variable is initialized from something that is
16959+ // not in its init or preinit. This variable needs to
16960+ // participate in dependency analysis sorting, in case
16961+ // some other variable depends on this one.
16962+ var_inits.push_back(Var_init(no, integer_zero_node));
16963+ }
16964
16965 if (!is_sink && no->var_value()->type()->has_pointer())
16966 var_gc.push_back(no);
16967@@ -897,7 +919,7 @@
16968 // workable order.
16969 if (!var_inits.empty())
16970 {
16971- sort_var_inits(&var_inits);
16972+ sort_var_inits(this, &var_inits);
16973 for (Var_inits::const_iterator p = var_inits.begin();
16974 p != var_inits.end();
16975 ++p)
16976@@ -961,7 +983,7 @@
16977 if (this->package_ == NULL)
16978 package_name = gogo->package_name();
16979 else
16980- package_name = this->package_->name();
16981+ package_name = this->package_->package_name();
16982
16983 decl_name = package_name + '.' + Gogo::unpack_hidden_name(this->name_);
16984
16985@@ -982,7 +1004,7 @@
16986 {
16987 const Named_object* in_function = this->type_value()->in_function();
16988 if (in_function != NULL)
16989- decl_name += '$' + in_function->name();
16990+ decl_name += '$' + Gogo::unpack_hidden_name(in_function->name());
16991 }
16992 return get_identifier_from_string(decl_name);
16993 }
16994@@ -1254,9 +1276,15 @@
16995 || this->type_->is_method())
16996 {
16997 TREE_PUBLIC(decl) = 1;
16998- std::string asm_name = gogo->unique_prefix();
16999+ std::string asm_name = gogo->pkgpath_symbol();
17000 asm_name.append(1, '.');
17001- asm_name.append(IDENTIFIER_POINTER(id), IDENTIFIER_LENGTH(id));
17002+ asm_name.append(Gogo::unpack_hidden_name(no->name()));
17003+ if (this->type_->is_method())
17004+ {
17005+ asm_name.append(1, '.');
17006+ Type* rtype = this->type_->receiver()->type();
17007+ asm_name.append(rtype->mangled_name(gogo));
17008+ }
17009 SET_DECL_ASSEMBLER_NAME(decl,
17010 get_identifier_from_string(asm_name));
17011 }
17012@@ -1359,10 +1387,16 @@
17013 if (this->asm_name_.empty())
17014 {
17015 std::string asm_name = (no->package() == NULL
17016- ? gogo->unique_prefix()
17017- : no->package()->unique_prefix());
17018+ ? gogo->pkgpath_symbol()
17019+ : no->package()->pkgpath_symbol());
17020 asm_name.append(1, '.');
17021- asm_name.append(IDENTIFIER_POINTER(id), IDENTIFIER_LENGTH(id));
17022+ asm_name.append(Gogo::unpack_hidden_name(no->name()));
17023+ if (this->fntype_->is_method())
17024+ {
17025+ asm_name.append(1, '.');
17026+ Type* rtype = this->fntype_->receiver()->type();
17027+ asm_name.append(rtype->mangled_name(gogo));
17028+ }
17029 SET_DECL_ASSEMBLER_NAME(decl,
17030 get_identifier_from_string(asm_name));
17031 }
17032Index: gcc/go/gofrontend/lex.cc
17033===================================================================
17034--- gcc/go/gofrontend/lex.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
17035+++ gcc/go/gofrontend/lex.cc (.../branches/gcc-4_7-branch) (wersja 187906)
17036@@ -1012,7 +1012,9 @@
17037 }
17038 }
17039
17040- if (*p != '.' && *p != 'i' && !Lex::could_be_exponent(p, pend))
17041+ // A partial token that looks like an octal literal might actually be the
17042+ // beginning of a floating-point or imaginary literal.
17043+ if (base == 16 || (*p != '.' && *p != 'i' && !Lex::could_be_exponent(p, pend)))
17044 {
17045 std::string s(pnum, p - pnum);
17046 mpz_t val;
17047Index: gcc/go/gofrontend/backend.h
17048===================================================================
17049--- gcc/go/gofrontend/backend.h (.../tags/gcc_4_7_0_release) (wersja 187906)
17050+++ gcc/go/gofrontend/backend.h (.../branches/gcc-4_7-branch) (wersja 187906)
17051@@ -321,16 +321,16 @@
17052 error_variable() = 0;
17053
17054 // Create a global variable. PACKAGE_NAME is the name of the
17055- // package where the variable is defined. UNIQUE_PREFIX is the
17056- // prefix for that package, from the -fgo-prefix option. NAME is
17057- // the name of the variable. BTYPE is the type of the variable.
17058- // IS_EXTERNAL is true if the variable is defined in some other
17059- // package. IS_HIDDEN is true if the variable is not exported (name
17060- // begins with a lower case letter). LOCATION is where the variable
17061- // was defined.
17062+ // package where the variable is defined. PKGPATH is the package
17063+ // path for that package, from the -fgo-pkgpath or -fgo-prefix
17064+ // option. NAME is the name of the variable. BTYPE is the type of
17065+ // the variable. IS_EXTERNAL is true if the variable is defined in
17066+ // some other package. IS_HIDDEN is true if the variable is not
17067+ // exported (name begins with a lower case letter). LOCATION is
17068+ // where the variable was defined.
17069 virtual Bvariable*
17070 global_variable(const std::string& package_name,
17071- const std::string& unique_prefix,
17072+ const std::string& pkgpath,
17073 const std::string& name,
17074 Btype* btype,
17075 bool is_external,
17076Index: gcc/go/gofrontend/types.cc
17077===================================================================
17078--- gcc/go/gofrontend/types.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
17079+++ gcc/go/gofrontend/types.cc (.../branches/gcc-4_7-branch) (wersja 187906)
17080@@ -1301,23 +1301,31 @@
17081 go_assert(in_function == NULL);
17082 else
17083 {
17084- const std::string& unique_prefix(no->package() == NULL
17085- ? gogo->unique_prefix()
17086- : no->package()->unique_prefix());
17087- const std::string& package_name(no->package() == NULL
17088- ? gogo->package_name()
17089- : no->package()->name());
17090- ret.append(unique_prefix);
17091+ const std::string& pkgpath(no->package() == NULL
17092+ ? gogo->pkgpath_symbol()
17093+ : no->package()->pkgpath_symbol());
17094+ ret.append(pkgpath);
17095 ret.append(1, '.');
17096- ret.append(package_name);
17097- ret.append(1, '.');
17098 if (in_function != NULL)
17099 {
17100 ret.append(Gogo::unpack_hidden_name(in_function->name()));
17101 ret.append(1, '.');
17102 }
17103 }
17104- ret.append(no->name());
17105+
17106+ // FIXME: This adds in pkgpath twice for hidden symbols, which is
17107+ // pointless.
17108+ const std::string& name(no->name());
17109+ if (!Gogo::is_hidden_name(name))
17110+ ret.append(name);
17111+ else
17112+ {
17113+ ret.append(1, '.');
17114+ ret.append(Gogo::pkgpath_for_symbol(Gogo::hidden_name_pkgpath(name)));
17115+ ret.append(1, '.');
17116+ ret.append(Gogo::unpack_hidden_name(name));
17117+ }
17118+
17119 return ret;
17120 }
17121
17122@@ -1740,7 +1748,7 @@
17123 base_name = name->name();
17124 const Named_object* in_function = name->in_function();
17125 if (in_function != NULL)
17126- base_name += '$' + in_function->name();
17127+ base_name += '$' + Gogo::unpack_hidden_name(in_function->name());
17128 }
17129 std::string hash_name = base_name + "$hash";
17130 std::string equal_name = base_name + "$equal";
17131@@ -1977,15 +1985,10 @@
17132 else
17133 {
17134 const Package* package = no->package();
17135- const std::string& unique_prefix(package == NULL
17136- ? gogo->unique_prefix()
17137- : package->unique_prefix());
17138- const std::string& package_name(package == NULL
17139- ? gogo->package_name()
17140- : package->name());
17141- n.assign(unique_prefix);
17142- n.append(1, '.');
17143- n.append(package_name);
17144+ const std::string& pkgpath(package == NULL
17145+ ? gogo->pkgpath()
17146+ : package->pkgpath());
17147+ n.assign(pkgpath);
17148 if (name->in_function() != NULL)
17149 {
17150 n.append(1, '.');
17151@@ -2096,7 +2099,8 @@
17152 vals->push_back(Expression::make_nil(bloc));
17153 else
17154 {
17155- s = Expression::make_string(Gogo::hidden_name_prefix(method_name), bloc);
17156+ s = Expression::make_string(Gogo::hidden_name_pkgpath(method_name),
17157+ bloc);
17158 vals->push_back(Expression::make_unary(OPERATOR_AND, s, bloc));
17159 }
17160
17161@@ -2230,15 +2234,13 @@
17162 return true;
17163 else
17164 {
17165+ Numeric_constant nc;
17166+ if (!at->length()->numeric_constant_value(&nc))
17167+ return false;
17168 mpz_t ival;
17169- mpz_init(ival);
17170- Type* dummy;
17171- bool length_known = at->length()->integer_constant_value(true,
17172- ival,
17173- &dummy);
17174+ if (!nc.to_int(&ival))
17175+ return false;
17176 mpz_clear(ival);
17177- if (!length_known)
17178- return false;
17179 return at->element_type()->is_backend_type_size_known(gogo);
17180 }
17181 }
17182@@ -4670,7 +4672,7 @@
17183 fvals->push_back(Expression::make_nil(bloc));
17184 else
17185 {
17186- std::string n = Gogo::hidden_name_prefix(pf->field_name());
17187+ std::string n = Gogo::hidden_name_pkgpath(pf->field_name());
17188 Expression* s = Expression::make_string(n, bloc);
17189 fvals->push_back(Expression::make_unary(OPERATOR_AND, s, bloc));
17190 }
17191@@ -5106,17 +5108,22 @@
17192 // Try to determine the lengths. If we can't, assume the arrays
17193 // are not identical.
17194 bool ret = false;
17195- mpz_t v1;
17196- mpz_init(v1);
17197- Type* type1;
17198- mpz_t v2;
17199- mpz_init(v2);
17200- Type* type2;
17201- if (l1->integer_constant_value(true, v1, &type1)
17202- && l2->integer_constant_value(true, v2, &type2))
17203- ret = mpz_cmp(v1, v2) == 0;
17204- mpz_clear(v1);
17205- mpz_clear(v2);
17206+ Numeric_constant nc1, nc2;
17207+ if (l1->numeric_constant_value(&nc1)
17208+ && l2->numeric_constant_value(&nc2))
17209+ {
17210+ mpz_t v1;
17211+ if (nc1.to_int(&v1))
17212+ {
17213+ mpz_t v2;
17214+ if (nc2.to_int(&v2))
17215+ {
17216+ ret = mpz_cmp(v1, v2) == 0;
17217+ mpz_clear(v2);
17218+ }
17219+ mpz_clear(v1);
17220+ }
17221+ }
17222 return ret;
17223 }
17224
17225@@ -5154,58 +5161,44 @@
17226 return false;
17227 }
17228
17229- mpz_t val;
17230- mpz_init(val);
17231- Type* vt;
17232- if (!this->length_->integer_constant_value(true, val, &vt))
17233+ Numeric_constant nc;
17234+ if (!this->length_->numeric_constant_value(&nc))
17235 {
17236- mpfr_t fval;
17237- mpfr_init(fval);
17238- if (!this->length_->float_constant_value(fval, &vt))
17239- {
17240- if (this->length_->type()->integer_type() != NULL
17241- || this->length_->type()->float_type() != NULL)
17242- error_at(this->length_->location(),
17243- "array bound is not constant");
17244- else
17245- error_at(this->length_->location(),
17246- "array bound is not numeric");
17247- mpfr_clear(fval);
17248- mpz_clear(val);
17249- return false;
17250- }
17251- if (!mpfr_integer_p(fval))
17252- {
17253- error_at(this->length_->location(),
17254- "array bound truncated to integer");
17255- mpfr_clear(fval);
17256- mpz_clear(val);
17257- return false;
17258- }
17259- mpz_init(val);
17260- mpfr_get_z(val, fval, GMP_RNDN);
17261- mpfr_clear(fval);
17262+ if (this->length_->type()->integer_type() != NULL
17263+ || this->length_->type()->float_type() != NULL)
17264+ error_at(this->length_->location(), "array bound is not constant");
17265+ else
17266+ error_at(this->length_->location(), "array bound is not numeric");
17267+ return false;
17268 }
17269
17270- if (mpz_sgn(val) < 0)
17271+ unsigned long val;
17272+ switch (nc.to_unsigned_long(&val))
17273 {
17274+ case Numeric_constant::NC_UL_VALID:
17275+ break;
17276+ case Numeric_constant::NC_UL_NOTINT:
17277+ error_at(this->length_->location(), "array bound truncated to integer");
17278+ return false;
17279+ case Numeric_constant::NC_UL_NEGATIVE:
17280 error_at(this->length_->location(), "negative array bound");
17281- mpz_clear(val);
17282 return false;
17283+ case Numeric_constant::NC_UL_BIG:
17284+ error_at(this->length_->location(), "array bound overflows");
17285+ return false;
17286+ default:
17287+ go_unreachable();
17288 }
17289
17290 Type* int_type = Type::lookup_integer_type("int");
17291- int tbits = int_type->integer_type()->bits();
17292- int vbits = mpz_sizeinbase(val, 2);
17293- if (vbits + 1 > tbits)
17294+ unsigned int tbits = int_type->integer_type()->bits();
17295+ if (sizeof(val) <= tbits * 8
17296+ && val >> (tbits - 1) != 0)
17297 {
17298 error_at(this->length_->location(), "array bound overflows");
17299- mpz_clear(val);
17300 return false;
17301 }
17302
17303- mpz_clear(val);
17304-
17305 return true;
17306 }
17307
17308@@ -5457,11 +5450,16 @@
17309 go_assert(this->length_ != NULL);
17310 if (this->length_tree_ == NULL_TREE)
17311 {
17312+ Numeric_constant nc;
17313 mpz_t val;
17314- mpz_init(val);
17315- Type* t;
17316- if (this->length_->integer_constant_value(true, val, &t))
17317+ if (this->length_->numeric_constant_value(&nc) && nc.to_int(&val))
17318 {
17319+ if (mpz_sgn(val) < 0)
17320+ {
17321+ this->length_tree_ = error_mark_node;
17322+ return this->length_tree_;
17323+ }
17324+ Type* t = nc.type();
17325 if (t == NULL)
17326 t = Type::lookup_integer_type("int");
17327 else if (t->is_abstract())
17328@@ -5472,8 +5470,6 @@
17329 }
17330 else
17331 {
17332- mpz_clear(val);
17333-
17334 // Make up a translation context for the array length
17335 // expression. FIXME: This won't work in general.
17336 Translate_context context(gogo, NULL, NULL, NULL);
17337@@ -5824,23 +5820,17 @@
17338 ret->push_back('[');
17339 if (this->length_ != NULL)
17340 {
17341- mpz_t val;
17342- mpz_init(val);
17343- Type* type;
17344- if (!this->length_->integer_constant_value(true, val, &type))
17345- error_at(this->length_->location(),
17346- "array length must be integer constant expression");
17347- else if (mpz_cmp_si(val, 0) < 0)
17348- error_at(this->length_->location(), "array length is negative");
17349- else if (mpz_cmp_ui(val, mpz_get_ui(val)) != 0)
17350- error_at(this->length_->location(), "array length is too large");
17351+ Numeric_constant nc;
17352+ unsigned long val;
17353+ if (!this->length_->numeric_constant_value(&nc)
17354+ || nc.to_unsigned_long(&val) != Numeric_constant::NC_UL_VALID)
17355+ error_at(this->length_->location(), "invalid array length");
17356 else
17357 {
17358 char buf[50];
17359- snprintf(buf, sizeof buf, "%lu", mpz_get_ui(val));
17360+ snprintf(buf, sizeof buf, "%lu", val);
17361 ret->append(buf);
17362 }
17363- mpz_clear(val);
17364 }
17365 ret->push_back(']');
17366
17367@@ -5856,23 +5846,17 @@
17368 this->append_mangled_name(this->element_type_, gogo, ret);
17369 if (this->length_ != NULL)
17370 {
17371- mpz_t val;
17372- mpz_init(val);
17373- Type* type;
17374- if (!this->length_->integer_constant_value(true, val, &type))
17375- error_at(this->length_->location(),
17376- "array length must be integer constant expression");
17377- else if (mpz_cmp_si(val, 0) < 0)
17378- error_at(this->length_->location(), "array length is negative");
17379- else if (mpz_cmp_ui(val, mpz_get_ui(val)) != 0)
17380- error_at(this->length_->location(), "array size is too large");
17381+ Numeric_constant nc;
17382+ unsigned long val;
17383+ if (!this->length_->numeric_constant_value(&nc)
17384+ || nc.to_unsigned_long(&val) != Numeric_constant::NC_UL_VALID)
17385+ error_at(this->length_->location(), "invalid array length");
17386 else
17387 {
17388 char buf[50];
17389- snprintf(buf, sizeof buf, "%lu", mpz_get_ui(val));
17390+ snprintf(buf, sizeof buf, "%lu", val);
17391 ret->append(buf);
17392 }
17393- mpz_clear(val);
17394 }
17395 ret->push_back('e');
17396 }
17397@@ -6576,7 +6560,11 @@
17398 Interface_type::is_identical(const Interface_type* t,
17399 bool errors_are_identical) const
17400 {
17401- go_assert(this->methods_are_finalized_ && t->methods_are_finalized_);
17402+ // If methods have not been finalized, then we are asking whether
17403+ // func redeclarations are the same. This is an error, so for
17404+ // simplicity we say they are never the same.
17405+ if (!this->methods_are_finalized_ || !t->methods_are_finalized_)
17406+ return false;
17407
17408 // We require the same methods with the same types. The methods
17409 // have already been sorted.
17410@@ -7072,7 +7060,7 @@
17411 mvals->push_back(Expression::make_nil(bloc));
17412 else
17413 {
17414- s = Gogo::hidden_name_prefix(pm->name());
17415+ s = Gogo::hidden_name_pkgpath(pm->name());
17416 e = Expression::make_string(s, bloc);
17417 mvals->push_back(Expression::make_unary(OPERATOR_AND, e, bloc));
17418 }
17419@@ -7121,11 +7109,15 @@
17420 {
17421 if (!Gogo::is_hidden_name(p->name()))
17422 ret->append(p->name());
17423+ else if (gogo->pkgpath_from_option())
17424+ ret->append(p->name().substr(1));
17425 else
17426 {
17427- // This matches what the gc compiler does.
17428- std::string prefix = Gogo::hidden_name_prefix(p->name());
17429- ret->append(prefix.substr(prefix.find('.') + 1));
17430+ // If no -fgo-pkgpath option, backward compatibility
17431+ // for how this used to work before -fgo-pkgpath was
17432+ // introduced.
17433+ std::string pkgpath = Gogo::hidden_name_pkgpath(p->name());
17434+ ret->append(pkgpath.substr(pkgpath.find('.') + 1));
17435 ret->push_back('.');
17436 ret->append(Gogo::unpack_hidden_name(p->name()));
17437 }
17438@@ -7955,20 +7947,14 @@
17439 // where we are going to be comparing named types for equality. In
17440 // other cases, which are cases where the runtime is going to
17441 // compare hash codes to see if the types are the same, we need to
17442- // include the package prefix and name in the hash.
17443+ // include the pkgpath in the hash.
17444 if (gogo != NULL && !Gogo::is_hidden_name(name) && !this->is_builtin())
17445 {
17446 const Package* package = this->named_object()->package();
17447 if (package == NULL)
17448- {
17449- ret = Type::hash_string(gogo->unique_prefix(), ret);
17450- ret = Type::hash_string(gogo->package_name(), ret);
17451- }
17452+ ret = Type::hash_string(gogo->pkgpath(), ret);
17453 else
17454- {
17455- ret = Type::hash_string(package->unique_prefix(), ret);
17456- ret = Type::hash_string(package->name(), ret);
17457- }
17458+ ret = Type::hash_string(package->pkgpath(), ret);
17459 }
17460
17461 return ret;
17462@@ -8340,11 +8326,16 @@
17463 }
17464 if (!this->is_builtin())
17465 {
17466+ // We handle -fgo-prefix and -fgo-pkgpath differently here for
17467+ // compatibility with how the compiler worked before
17468+ // -fgo-pkgpath was introduced.
17469 const Package* package = this->named_object_->package();
17470- if (package != NULL)
17471- ret->append(package->name());
17472+ if (gogo->pkgpath_from_option())
17473+ ret->append(package != NULL ? package->pkgpath() : gogo->pkgpath());
17474 else
17475- ret->append(gogo->package_name());
17476+ ret->append(package != NULL
17477+ ? package->package_name()
17478+ : gogo->package_name());
17479 ret->push_back('.');
17480 }
17481 if (this->in_function_ != NULL)
17482@@ -8371,16 +8362,11 @@
17483 go_assert(this->in_function_ == NULL);
17484 else
17485 {
17486- const std::string& unique_prefix(no->package() == NULL
17487- ? gogo->unique_prefix()
17488- : no->package()->unique_prefix());
17489- const std::string& package_name(no->package() == NULL
17490- ? gogo->package_name()
17491- : no->package()->name());
17492- name = unique_prefix;
17493+ const std::string& pkgpath(no->package() == NULL
17494+ ? gogo->pkgpath_symbol()
17495+ : no->package()->pkgpath_symbol());
17496+ name = pkgpath;
17497 name.append(1, '.');
17498- name.append(package_name);
17499- name.append(1, '.');
17500 if (this->in_function_ != NULL)
17501 {
17502 name.append(Gogo::unpack_hidden_name(this->in_function_->name()));
17503@@ -9503,9 +9489,9 @@
17504 const Named_object* no = this->named_object();
17505 std::string name;
17506 if (no->package() == NULL)
17507- name = gogo->package_name();
17508+ name = gogo->pkgpath_symbol();
17509 else
17510- name = no->package()->name();
17511+ name = no->package()->pkgpath_symbol();
17512 name += '.';
17513 name += Gogo::unpack_hidden_name(no->name());
17514 char buf[20];
17515Index: gcc/go/gofrontend/import.cc
17516===================================================================
17517--- gcc/go/gofrontend/import.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
17518+++ gcc/go/gofrontend/import.cc (.../branches/gcc-4_7-branch) (wersja 187906)
17519@@ -281,13 +281,24 @@
17520 std::string package_name = this->read_identifier();
17521 this->require_c_string(";\n");
17522
17523- this->require_c_string("prefix ");
17524- std::string unique_prefix = this->read_identifier();
17525- this->require_c_string(";\n");
17526+ std::string pkgpath;
17527+ if (this->match_c_string("prefix "))
17528+ {
17529+ this->advance(7);
17530+ std::string unique_prefix = this->read_identifier();
17531+ this->require_c_string(";\n");
17532+ pkgpath = unique_prefix + '.' + package_name;
17533+ }
17534+ else
17535+ {
17536+ this->require_c_string("pkgpath ");
17537+ pkgpath = this->read_identifier();
17538+ this->require_c_string(";\n");
17539+ }
17540
17541 this->package_ = gogo->add_imported_package(package_name, local_name,
17542 is_local_name_exported,
17543- unique_prefix,
17544+ pkgpath,
17545 this->location_,
17546 &this->add_to_globals_);
17547 if (this->package_ == NULL)
17548@@ -353,10 +364,18 @@
17549 Import::read_one_import()
17550 {
17551 this->require_c_string("import ");
17552+ std::string package_name = this->read_identifier();
17553+ this->require_c_string(" ");
17554+ std::string pkgpath = this->read_identifier();
17555+ this->require_c_string(" \"");
17556 Stream* stream = this->stream_;
17557- while (stream->peek_char() != ';')
17558+ while (stream->peek_char() != '"')
17559 stream->advance(1);
17560- this->require_c_string(";\n");
17561+ this->require_c_string("\";\n");
17562+
17563+ Package* p = this->gogo_->register_package(pkgpath,
17564+ Linemap::unknown_location());
17565+ p->set_package_name(package_name, this->location());
17566 }
17567
17568 // Read the list of import control functions.
17569@@ -572,55 +591,50 @@
17570 while ((c = stream->get_char()) != '"')
17571 type_name += c;
17572
17573- // If this type is in the current package, the name will be
17574- // .PREFIX.PACKAGE.NAME or simply NAME with no dots. Otherwise, a
17575- // non-hidden symbol will be PREFIX.PACKAGE.NAME and a hidden symbol
17576- // will be .PREFIX.PACKAGE.NAME.
17577- std::string package_name;
17578- std::string unique_prefix;
17579+ // If this type is in the package we are currently importing, the
17580+ // name will be .PKGPATH.NAME or simply NAME with no dots.
17581+ // Otherwise, a non-hidden symbol will be PKGPATH.NAME and a hidden
17582+ // symbol will be .PKGPATH.NAME.
17583+ std::string pkgpath;
17584 if (type_name.find('.') != std::string::npos)
17585 {
17586- bool is_hidden = false;
17587 size_t start = 0;
17588 if (type_name[0] == '.')
17589- {
17590- ++start;
17591- is_hidden = true;
17592- }
17593- size_t dot1 = type_name.find('.', start);
17594- size_t dot2;
17595- if (dot1 == std::string::npos)
17596- dot2 = std::string::npos;
17597- else
17598- dot2 = type_name.find('.', dot1 + 1);
17599- if (dot1 == std::string::npos || dot2 == std::string::npos)
17600- {
17601- error_at(this->location_,
17602- ("error at import data at %d: missing dot in type name"),
17603- stream->pos());
17604- stream->set_saw_error();
17605- }
17606- else
17607- {
17608- unique_prefix = type_name.substr(start, dot1 - start);
17609- package_name = type_name.substr(dot1 + 1, dot2 - (dot1 + 1));
17610- }
17611- if (!is_hidden)
17612- type_name.erase(0, dot2 + 1);
17613+ start = 1;
17614+ size_t dot = type_name.rfind('.');
17615+ pkgpath = type_name.substr(start, dot - start);
17616+ if (type_name[0] != '.')
17617+ type_name.erase(0, dot + 1);
17618 }
17619
17620 this->require_c_string(" ");
17621
17622+ // The package name may follow. This is the name of the package in
17623+ // the package clause of that package. The type name will include
17624+ // the pkgpath, which may be different.
17625+ std::string package_name;
17626+ if (stream->peek_char() == '"')
17627+ {
17628+ stream->advance(1);
17629+ while ((c = stream->get_char()) != '"')
17630+ package_name += c;
17631+ this->require_c_string(" ");
17632+ }
17633+
17634 // Declare the type in the appropriate package. If we haven't seen
17635 // it before, mark it as invisible. We declare it before we read
17636 // the actual definition of the type, since the definition may refer
17637 // to the type itself.
17638 Package* package;
17639- if (package_name.empty())
17640+ if (pkgpath.empty() || pkgpath == this->gogo_->pkgpath())
17641 package = this->package_;
17642 else
17643- package = this->gogo_->register_package(package_name, unique_prefix,
17644- Linemap::unknown_location());
17645+ {
17646+ package = this->gogo_->register_package(pkgpath,
17647+ Linemap::unknown_location());
17648+ if (!package_name.empty())
17649+ package->set_package_name(package_name, this->location());
17650+ }
17651
17652 Named_object* no = package->bindings()->lookup(type_name);
17653 if (no == NULL)
17654@@ -628,8 +642,7 @@
17655 else if (!no->is_type_declaration() && !no->is_type())
17656 {
17657 error_at(this->location_, "imported %<%s.%s%> both type and non-type",
17658- Gogo::message_name(package->name()).c_str(),
17659- Gogo::message_name(type_name).c_str());
17660+ pkgpath.c_str(), Gogo::message_name(type_name).c_str());
17661 stream->set_saw_error();
17662 return Type::make_error_type();
17663 }
17664@@ -669,6 +682,9 @@
17665 // This type has not yet been imported.
17666 ntype->clear_is_visible();
17667
17668+ if (!type->is_undefined() && type->interface_type() != NULL)
17669+ this->gogo_->record_interface_type(type->interface_type());
17670+
17671 type = ntype;
17672 }
17673 else if (no->is_type())
17674@@ -769,9 +785,7 @@
17675 if (ret == "?")
17676 ret.clear();
17677 else if (!Lex::is_exported_name(ret))
17678- ret = ('.' + this->package_->unique_prefix()
17679- + '.' + this->package_->name()
17680- + '.' + ret);
17681+ ret = '.' + this->package_->pkgpath() + '.' + ret;
17682 return ret;
17683 }
17684
17685Index: gcc/go/gofrontend/parse.h
17686===================================================================
17687--- gcc/go/gofrontend/parse.h (.../tags/gcc_4_7_0_release) (wersja 187906)
17688+++ gcc/go/gofrontend/parse.h (.../branches/gcc-4_7-branch) (wersja 187906)
17689@@ -162,7 +162,8 @@
17690
17691 // Parser nonterminals.
17692 void identifier_list(Typed_identifier_list*);
17693- Expression_list* expression_list(Expression*, bool may_be_sink);
17694+ Expression_list* expression_list(Expression*, bool may_be_sink,
17695+ bool may_be_composite_lit);
17696 bool qualified_ident(std::string*, Named_object**);
17697 Type* type();
17698 bool type_may_start_here();
17699@@ -207,6 +208,7 @@
17700 bool is_coloneq, bool type_from_init, bool* is_new);
17701 Named_object* create_dummy_global(Type*, Expression*, Location);
17702 void simple_var_decl_or_assignment(const std::string&, Location,
17703+ bool may_be_composite_lit,
17704 Range_clause*, Type_switch*);
17705 void function_decl();
17706 Typed_identifier* receiver();
17707@@ -239,8 +241,9 @@
17708 void expression_stat(Expression*);
17709 void send_stmt(Expression*);
17710 void inc_dec_stat(Expression*);
17711- void assignment(Expression*, Range_clause*);
17712- void tuple_assignment(Expression_list*, Range_clause*);
17713+ void assignment(Expression*, bool may_be_composite_lit, Range_clause*);
17714+ void tuple_assignment(Expression_list*, bool may_be_composite_lit,
17715+ Range_clause*);
17716 void send();
17717 void go_or_defer_stat();
17718 void return_stat();
17719Index: gcc/go/gofrontend/expressions.cc
17720===================================================================
17721--- gcc/go/gofrontend/expressions.cc (.../tags/gcc_4_7_0_release) (wersja 187906)
17722+++ gcc/go/gofrontend/expressions.cc (.../branches/gcc-4_7-branch) (wersja 187906)
17723@@ -6,6 +6,8 @@
17724
17725 #include "go-system.h"
17726
17727+#include <algorithm>
17728+
17729 #include <gmp.h>
17730
17731 #ifndef ENABLE_BUILD_WITH_CXX
17732@@ -50,57 +52,6 @@
17733 {
17734 }
17735
17736-// If this expression has a constant integer value, return it.
17737-
17738-bool
17739-Expression::integer_constant_value(bool iota_is_constant, mpz_t val,
17740- Type** ptype) const
17741-{
17742- *ptype = NULL;
17743- return this->do_integer_constant_value(iota_is_constant, val, ptype);
17744-}
17745-
17746-// If this expression has a constant floating point value, return it.
17747-
17748-bool
17749-Expression::float_constant_value(mpfr_t val, Type** ptype) const
17750-{
17751- *ptype = NULL;
17752- if (this->do_float_constant_value(val, ptype))
17753- return true;
17754- mpz_t ival;
17755- mpz_init(ival);
17756- Type* t;
17757- bool ret;
17758- if (!this->do_integer_constant_value(false, ival, &t))
17759- ret = false;
17760- else
17761- {
17762- mpfr_set_z(val, ival, GMP_RNDN);
17763- ret = true;
17764- }
17765- mpz_clear(ival);
17766- return ret;
17767-}
17768-
17769-// If this expression has a constant complex value, return it.
17770-
17771-bool
17772-Expression::complex_constant_value(mpfr_t real, mpfr_t imag,
17773- Type** ptype) const
17774-{
17775- *ptype = NULL;
17776- if (this->do_complex_constant_value(real, imag, ptype))
17777- return true;
17778- Type *t;
17779- if (this->float_constant_value(real, &t))
17780- {
17781- mpfr_set_ui(imag, 0, GMP_RNDN);
17782- return true;
17783- }
17784- return false;
17785-}
17786-
17787 // Traverse the expressions.
17788
17789 int
17790@@ -824,27 +775,12 @@
17791 { return true; }
17792
17793 bool
17794- do_integer_constant_value(bool, mpz_t val, Type**) const
17795+ do_numeric_constant_value(Numeric_constant* nc) const
17796 {
17797- mpz_set_ui(val, 0);
17798+ nc->set_unsigned_long(NULL, 0);
17799 return true;
17800 }
17801
17802- bool
17803- do_float_constant_value(mpfr_t val, Type**) const
17804- {
17805- mpfr_set_ui(val, 0, GMP_RNDN);
17806- return true;
17807- }
17808-
17809- bool
17810- do_complex_constant_value(mpfr_t real, mpfr_t imag, Type**) const
17811- {
17812- mpfr_set_ui(real, 0, GMP_RNDN);
17813- mpfr_set_ui(imag, 0, GMP_RNDN);
17814- return true;
17815- }
17816-
17817 void
17818 do_discarding_value()
17819 { }
17820@@ -1376,31 +1312,19 @@
17821 && TREE_CODE(TREE_OPERAND(fnaddr, 0)) == FUNCTION_DECL);
17822 TREE_ADDRESSABLE(TREE_OPERAND(fnaddr, 0)) = 1;
17823
17824- // For a normal non-nested function call, that is all we have to do.
17825- if (!this->function_->is_function()
17826- || this->function_->func_value()->enclosing() == NULL)
17827- {
17828- go_assert(this->closure_ == NULL);
17829- return fnaddr;
17830- }
17831+ // If there is no closure, that is all have to do.
17832+ if (this->closure_ == NULL)
17833+ return fnaddr;
17834
17835- // For a nested function call, we have to always allocate a
17836- // trampoline. If we don't always allocate, then closures will not
17837- // be reliably distinct.
17838- Expression* closure = this->closure_;
17839- tree closure_tree;
17840- if (closure == NULL)
17841- closure_tree = null_pointer_node;
17842- else
17843- {
17844- // Get the value of the closure. This will be a pointer to
17845- // space allocated on the heap.
17846- closure_tree = closure->get_tree(context);
17847- if (closure_tree == error_mark_node)
17848- return error_mark_node;
17849- go_assert(POINTER_TYPE_P(TREE_TYPE(closure_tree)));
17850- }
17851+ go_assert(this->function_->func_value()->enclosing() != NULL);
17852
17853+ // Get the value of the closure. This will be a pointer to space
17854+ // allocated on the heap.
17855+ tree closure_tree = this->closure_->get_tree(context);
17856+ if (closure_tree == error_mark_node)
17857+ return error_mark_node;
17858+ go_assert(POINTER_TYPE_P(TREE_TYPE(closure_tree)));
17859+
17860 // Now we need to build some code on the heap. This code will load
17861 // the static chain pointer with the closure and then jump to the
17862 // body of the function. The normal gcc approach is to build the
17863@@ -1759,10 +1683,6 @@
17864 static Expression*
17865 do_import(Import*);
17866
17867- // Return whether VAL fits in the type.
17868- static bool
17869- check_constant(mpz_t val, Type*, Location);
17870-
17871 // Write VAL to string dump.
17872 static void
17873 export_integer(String_dump* exp, const mpz_t val);
17874@@ -1777,7 +1697,7 @@
17875 { return true; }
17876
17877 bool
17878- do_integer_constant_value(bool, mpz_t val, Type** ptype) const;
17879+ do_numeric_constant_value(Numeric_constant* nc) const;
17880
17881 Type*
17882 do_type();
17883@@ -1817,15 +1737,16 @@
17884 bool is_character_constant_;
17885 };
17886
17887-// Return an integer constant value.
17888+// Return a numeric constant for this expression. We have to mark
17889+// this as a character when appropriate.
17890
17891 bool
17892-Integer_expression::do_integer_constant_value(bool, mpz_t val,
17893- Type** ptype) const
17894+Integer_expression::do_numeric_constant_value(Numeric_constant* nc) const
17895 {
17896- if (this->type_ != NULL)
17897- *ptype = this->type_;
17898- mpz_set(val, this->val_);
17899+ if (this->is_character_constant_)
17900+ nc->set_rune(this->type_, this->val_);
17901+ else
17902+ nc->set_int(this->type_, this->val_);
17903 return true;
17904 }
17905
17906@@ -1853,10 +1774,7 @@
17907 {
17908 if (this->type_ != NULL && !this->type_->is_abstract())
17909 ;
17910- else if (context->type != NULL
17911- && (context->type->integer_type() != NULL
17912- || context->type->float_type() != NULL
17913- || context->type->complex_type() != NULL))
17914+ else if (context->type != NULL && context->type->is_numeric_type())
17915 this->type_ = context->type;
17916 else if (!context->may_be_abstract)
17917 {
17918@@ -1867,55 +1785,20 @@
17919 }
17920 }
17921
17922-// Return true if the integer VAL fits in the range of the type TYPE.
17923-// Otherwise give an error and return false. TYPE may be NULL.
17924-
17925-bool
17926-Integer_expression::check_constant(mpz_t val, Type* type,
17927- Location location)
17928-{
17929- if (type == NULL)
17930- return true;
17931- Integer_type* itype = type->integer_type();
17932- if (itype == NULL || itype->is_abstract())
17933- return true;
17934-
17935- int bits = mpz_sizeinbase(val, 2);
17936-
17937- if (itype->is_unsigned())
17938- {
17939- // For an unsigned type we can only accept a nonnegative number,
17940- // and we must be able to represent at least BITS.
17941- if (mpz_sgn(val) >= 0
17942- && bits <= itype->bits())
17943- return true;
17944- }
17945- else
17946- {
17947- // For a signed type we need an extra bit to indicate the sign.
17948- // We have to handle the most negative integer specially.
17949- if (bits + 1 <= itype->bits()
17950- || (bits <= itype->bits()
17951- && mpz_sgn(val) < 0
17952- && (mpz_scan1(val, 0)
17953- == static_cast<unsigned long>(itype->bits() - 1))
17954- && mpz_scan0(val, itype->bits()) == ULONG_MAX))
17955- return true;
17956- }
17957-
17958- error_at(location, "integer constant overflow");
17959- return false;
17960-}
17961-
17962 // Check the type of an integer constant.
17963
17964 void
17965 Integer_expression::do_check_types(Gogo*)
17966 {
17967- if (this->type_ == NULL)
17968+ Type* type = this->type_;
17969+ if (type == NULL)
17970 return;
17971- if (!Integer_expression::check_constant(this->val_, this->type_,
17972- this->location()))
17973+ Numeric_constant nc;
17974+ if (this->is_character_constant_)
17975+ nc.set_rune(NULL, this->val_);
17976+ else
17977+ nc.set_int(NULL, this->val_);
17978+ if (!nc.set_type(type, true, this->location()))
17979 this->set_is_error();
17980 }
17981
17982@@ -2117,14 +2000,6 @@
17983 mpfr_init_set(this->val_, *val, GMP_RNDN);
17984 }
17985
17986- // Constrain VAL to fit into TYPE.
17987- static void
17988- constrain_float(mpfr_t val, Type* type);
17989-
17990- // Return whether VAL fits in the type.
17991- static bool
17992- check_constant(mpfr_t val, Type*, Location);
17993-
17994 // Write VAL to export data.
17995 static void
17996 export_float(String_dump* exp, const mpfr_t val);
17997@@ -2139,7 +2014,11 @@
17998 { return true; }
17999
18000 bool
18001- do_float_constant_value(mpfr_t val, Type**) const;
18002+ do_numeric_constant_value(Numeric_constant* nc) const
18003+ {
18004+ nc->set_float(this->type_, this->val_);
18005+ return true;
18006+ }
18007
18008 Type*
18009 do_type();
18010@@ -2171,27 +2050,6 @@
18011 Type* type_;
18012 };
18013
18014-// Constrain VAL to fit into TYPE.
18015-
18016-void
18017-Float_expression::constrain_float(mpfr_t val, Type* type)
18018-{
18019- Float_type* ftype = type->float_type();
18020- if (ftype != NULL && !ftype->is_abstract())
18021- mpfr_prec_round(val, ftype->bits(), GMP_RNDN);
18022-}
18023-
18024-// Return a floating point constant value.
18025-
18026-bool
18027-Float_expression::do_float_constant_value(mpfr_t val, Type** ptype) const
18028-{
18029- if (this->type_ != NULL)
18030- *ptype = this->type_;
18031- mpfr_set(val, this->val_, GMP_RNDN);
18032- return true;
18033-}
18034-
18035 // Return the current type. If we haven't set the type yet, we return
18036 // an abstract float type.
18037
18038@@ -2220,73 +2078,18 @@
18039 this->type_ = Type::lookup_float_type("float64");
18040 }
18041
18042-// Return true if the floating point value VAL fits in the range of
18043-// the type TYPE. Otherwise give an error and return false. TYPE may
18044-// be NULL.
18045-
18046-bool
18047-Float_expression::check_constant(mpfr_t val, Type* type,
18048- Location location)
18049-{
18050- if (type == NULL)
18051- return true;
18052- Float_type* ftype = type->float_type();
18053- if (ftype == NULL || ftype->is_abstract())
18054- return true;
18055-
18056- // A NaN or Infinity always fits in the range of the type.
18057- if (mpfr_nan_p(val) || mpfr_inf_p(val) || mpfr_zero_p(val))
18058- return true;
18059-
18060- mp_exp_t exp = mpfr_get_exp(val);
18061- mp_exp_t max_exp;
18062- switch (ftype->bits())
18063- {
18064- case 32:
18065- max_exp = 128;
18066- break;
18067- case 64:
18068- max_exp = 1024;
18069- break;
18070- default:
18071- go_unreachable();
18072- }
18073- if (exp > max_exp)
18074- {
18075- error_at(location, "floating point constant overflow");
18076- return false;
18077- }
18078- return true;
18079-}
18080-
18081 // Check the type of a float value.
18082
18083 void
18084 Float_expression::do_check_types(Gogo*)
18085 {
18086- if (this->type_ == NULL)
18087+ Type* type = this->type_;
18088+ if (type == NULL)
18089 return;
18090-
18091- if (!Float_expression::check_constant(this->val_, this->type_,
18092- this->location()))
18093+ Numeric_constant nc;
18094+ nc.set_float(NULL, this->val_);
18095+ if (!nc.set_type(this->type_, true, this->location()))
18096 this->set_is_error();
18097-
18098- Integer_type* integer_type = this->type_->integer_type();
18099- if (integer_type != NULL)
18100- {
18101- if (!mpfr_integer_p(this->val_))
18102- this->report_error(_("floating point constant truncated to integer"));
18103- else
18104- {
18105- go_assert(!integer_type->is_abstract());
18106- mpz_t ival;
18107- mpz_init(ival);
18108- mpfr_get_z(ival, this->val_, GMP_RNDN);
18109- Integer_expression::check_constant(ival, integer_type,
18110- this->location());
18111- mpz_clear(ival);
18112- }
18113- }
18114 }
18115
18116 // Get a tree for a float constant.
18117@@ -2371,14 +2174,6 @@
18118 mpfr_init_set(this->imag_, *imag, GMP_RNDN);
18119 }
18120
18121- // Constrain REAL/IMAG to fit into TYPE.
18122- static void
18123- constrain_complex(mpfr_t real, mpfr_t imag, Type* type);
18124-
18125- // Return whether REAL/IMAG fits in the type.
18126- static bool
18127- check_constant(mpfr_t real, mpfr_t imag, Type*, Location);
18128-
18129 // Write REAL/IMAG to string dump.
18130 static void
18131 export_complex(String_dump* exp, const mpfr_t real, const mpfr_t val);
18132@@ -2394,7 +2189,11 @@
18133 { return true; }
18134
18135 bool
18136- do_complex_constant_value(mpfr_t real, mpfr_t imag, Type**) const;
18137+ do_numeric_constant_value(Numeric_constant* nc) const
18138+ {
18139+ nc->set_complex(this->type_, this->real_, this->imag_);
18140+ return true;
18141+ }
18142
18143 Type*
18144 do_type();
18145@@ -2430,32 +2229,6 @@
18146 Type* type_;
18147 };
18148
18149-// Constrain REAL/IMAG to fit into TYPE.
18150-
18151-void
18152-Complex_expression::constrain_complex(mpfr_t real, mpfr_t imag, Type* type)
18153-{
18154- Complex_type* ctype = type->complex_type();
18155- if (ctype != NULL && !ctype->is_abstract())
18156- {
18157- mpfr_prec_round(real, ctype->bits() / 2, GMP_RNDN);
18158- mpfr_prec_round(imag, ctype->bits() / 2, GMP_RNDN);
18159- }
18160-}
18161-
18162-// Return a complex constant value.
18163-
18164-bool
18165-Complex_expression::do_complex_constant_value(mpfr_t real, mpfr_t imag,
18166- Type** ptype) const
18167-{
18168- if (this->type_ != NULL)
18169- *ptype = this->type_;
18170- mpfr_set(real, this->real_, GMP_RNDN);
18171- mpfr_set(imag, this->imag_, GMP_RNDN);
18172- return true;
18173-}
18174-
18175 // Return the current type. If we haven't set the type yet, we return
18176 // an abstract complex type.
18177
18178@@ -2482,65 +2255,17 @@
18179 this->type_ = Type::lookup_complex_type("complex128");
18180 }
18181
18182-// Return true if the complex value REAL/IMAG fits in the range of the
18183-// type TYPE. Otherwise give an error and return false. TYPE may be
18184-// NULL.
18185-
18186-bool
18187-Complex_expression::check_constant(mpfr_t real, mpfr_t imag, Type* type,
18188- Location location)
18189-{
18190- if (type == NULL)
18191- return true;
18192- Complex_type* ctype = type->complex_type();
18193- if (ctype == NULL || ctype->is_abstract())
18194- return true;
18195-
18196- mp_exp_t max_exp;
18197- switch (ctype->bits())
18198- {
18199- case 64:
18200- max_exp = 128;
18201- break;
18202- case 128:
18203- max_exp = 1024;
18204- break;
18205- default:
18206- go_unreachable();
18207- }
18208-
18209- // A NaN or Infinity always fits in the range of the type.
18210- if (!mpfr_nan_p(real) && !mpfr_inf_p(real) && !mpfr_zero_p(real))
18211- {
18212- if (mpfr_get_exp(real) > max_exp)
18213- {
18214- error_at(location, "complex real part constant overflow");
18215- return false;
18216- }
18217- }
18218-
18219- if (!mpfr_nan_p(imag) && !mpfr_inf_p(imag) && !mpfr_zero_p(imag))
18220- {
18221- if (mpfr_get_exp(imag) > max_exp)
18222- {
18223- error_at(location, "complex imaginary part constant overflow");
18224- return false;
18225- }
18226- }
18227-
18228- return true;
18229-}
18230-
18231 // Check the type of a complex value.
18232
18233 void
18234 Complex_expression::do_check_types(Gogo*)
18235 {
18236- if (this->type_ == NULL)
18237+ Type* type = this->type_;
18238+ if (type == NULL)
18239 return;
18240-
18241- if (!Complex_expression::check_constant(this->real_, this->imag_,
18242- this->type_, this->location()))
18243+ Numeric_constant nc;
18244+ nc.set_complex(NULL, this->real_, this->imag_);
18245+ if (!nc.set_type(this->type_, true, this->location()))
18246 this->set_is_error();
18247 }
18248
18249@@ -2665,18 +2390,11 @@
18250 { return true; }
18251
18252 bool
18253- do_integer_constant_value(bool, mpz_t val, Type**) const;
18254+ do_numeric_constant_value(Numeric_constant* nc) const;
18255
18256 bool
18257- do_float_constant_value(mpfr_t val, Type**) const;
18258+ do_string_constant_value(std::string* val) const;
18259
18260- bool
18261- do_complex_constant_value(mpfr_t real, mpfr_t imag, Type**) const;
18262-
18263- bool
18264- do_string_constant_value(std::string* val) const
18265- { return this->constant_->const_value()->expr()->string_constant_value(val); }
18266-
18267 Type*
18268 do_type();
18269
18270@@ -2755,110 +2473,49 @@
18271 return this;
18272 }
18273
18274-// Return an integer constant value.
18275+// Return a numeric constant value.
18276
18277 bool
18278-Const_expression::do_integer_constant_value(bool iota_is_constant, mpz_t val,
18279- Type** ptype) const
18280+Const_expression::do_numeric_constant_value(Numeric_constant* nc) const
18281 {
18282 if (this->seen_)
18283 return false;
18284
18285- Type* ctype;
18286- if (this->type_ != NULL)
18287- ctype = this->type_;
18288- else
18289- ctype = this->constant_->const_value()->type();
18290- if (ctype != NULL && ctype->integer_type() == NULL)
18291- return false;
18292-
18293 Expression* e = this->constant_->const_value()->expr();
18294-
18295+
18296 this->seen_ = true;
18297
18298- Type* t;
18299- bool r = e->integer_constant_value(iota_is_constant, val, &t);
18300+ bool r = e->numeric_constant_value(nc);
18301
18302 this->seen_ = false;
18303
18304- if (r
18305- && ctype != NULL
18306- && !Integer_expression::check_constant(val, ctype, this->location()))
18307- return false;
18308-
18309- *ptype = ctype != NULL ? ctype : t;
18310- return r;
18311-}
18312-
18313-// Return a floating point constant value.
18314-
18315-bool
18316-Const_expression::do_float_constant_value(mpfr_t val, Type** ptype) const
18317-{
18318- if (this->seen_)
18319- return false;
18320-
18321 Type* ctype;
18322 if (this->type_ != NULL)
18323 ctype = this->type_;
18324 else
18325 ctype = this->constant_->const_value()->type();
18326- if (ctype != NULL && ctype->float_type() == NULL)
18327- return false;
18328-
18329- this->seen_ = true;
18330-
18331- Type* t;
18332- bool r = this->constant_->const_value()->expr()->float_constant_value(val,
18333- &t);
18334-
18335- this->seen_ = false;
18336-
18337 if (r && ctype != NULL)
18338 {
18339- if (!Float_expression::check_constant(val, ctype, this->location()))
18340+ if (!nc->set_type(ctype, false, this->location()))
18341 return false;
18342- Float_expression::constrain_float(val, ctype);
18343 }
18344- *ptype = ctype != NULL ? ctype : t;
18345+
18346 return r;
18347 }
18348
18349-// Return a complex constant value.
18350-
18351 bool
18352-Const_expression::do_complex_constant_value(mpfr_t real, mpfr_t imag,
18353- Type **ptype) const
18354+Const_expression::do_string_constant_value(std::string* val) const
18355 {
18356 if (this->seen_)
18357 return false;
18358
18359- Type* ctype;
18360- if (this->type_ != NULL)
18361- ctype = this->type_;
18362- else
18363- ctype = this->constant_->const_value()->type();
18364- if (ctype != NULL && ctype->complex_type() == NULL)
18365- return false;
18366+ Expression* e = this->constant_->const_value()->expr();
18367
18368 this->seen_ = true;
18369-
18370- Type *t;
18371- bool r = this->constant_->const_value()->expr()->complex_constant_value(real,
18372- imag,
18373- &t);
18374-
18375+ bool ok = e->string_constant_value(val);
18376 this->seen_ = false;
18377
18378- if (r && ctype != NULL)
18379- {
18380- if (!Complex_expression::check_constant(real, imag, ctype,
18381- this->location()))
18382- return false;
18383- Complex_expression::constrain_complex(real, imag, ctype);
18384- }
18385- *ptype = ctype != NULL ? ctype : t;
18386- return r;
18387+ return ok;
18388 }
18389
18390 // Return the type of the const reference.
18391@@ -2909,12 +2566,8 @@
18392 if (ctype != NULL && !ctype->is_abstract())
18393 ;
18394 else if (context->type != NULL
18395- && (context->type->integer_type() != NULL
18396- || context->type->float_type() != NULL
18397- || context->type->complex_type() != NULL)
18398- && (cetype->integer_type() != NULL
18399- || cetype->float_type() != NULL
18400- || cetype->complex_type() != NULL))
18401+ && context->type->is_numeric_type()
18402+ && cetype->is_numeric_type())
18403 this->type_ = context->type;
18404 else if (context->type != NULL
18405 && context->type->is_string_type()
18406@@ -2976,35 +2629,15 @@
18407
18408 this->check_for_init_loop();
18409
18410- if (this->type_ == NULL || this->type_->is_abstract())
18411- return;
18412-
18413- // Check for integer overflow.
18414- if (this->type_->integer_type() != NULL)
18415+ // Check that numeric constant fits in type.
18416+ if (this->type_ != NULL && this->type_->is_numeric_type())
18417 {
18418- mpz_t ival;
18419- mpz_init(ival);
18420- Type* dummy;
18421- if (!this->integer_constant_value(true, ival, &dummy))
18422+ Numeric_constant nc;
18423+ if (this->constant_->const_value()->expr()->numeric_constant_value(&nc))
18424 {
18425- mpfr_t fval;
18426- mpfr_init(fval);
18427- Expression* cexpr = this->constant_->const_value()->expr();
18428- if (cexpr->float_constant_value(fval, &dummy))
18429- {
18430- if (!mpfr_integer_p(fval))
18431- this->report_error(_("floating point constant "
18432- "truncated to integer"));
18433- else
18434- {
18435- mpfr_get_z(ival, fval, GMP_RNDN);
18436- Integer_expression::check_constant(ival, this->type_,
18437- this->location());
18438- }
18439- }
18440- mpfr_clear(fval);
18441+ if (!nc.set_type(this->type_, true, this->location()))
18442+ this->set_is_error();
18443 }
18444- mpz_clear(ival);
18445 }
18446 }
18447
18448@@ -3028,41 +2661,18 @@
18449 // object is an abstract int or float, we try to get the abstract
18450 // value. Otherwise we may lose something in the conversion.
18451 if (this->type_ != NULL
18452+ && this->type_->is_numeric_type()
18453 && (this->constant_->const_value()->type() == NULL
18454 || this->constant_->const_value()->type()->is_abstract()))
18455 {
18456 Expression* expr = this->constant_->const_value()->expr();
18457- mpz_t ival;
18458- mpz_init(ival);
18459- Type* t;
18460- if (expr->integer_constant_value(true, ival, &t))
18461+ Numeric_constant nc;
18462+ if (expr->numeric_constant_value(&nc)
18463+ && nc.set_type(this->type_, false, this->location()))
18464 {
18465- tree ret = Expression::integer_constant_tree(ival, type_tree);
18466- mpz_clear(ival);
18467- return ret;
18468+ Expression* e = nc.expression(this->location());
18469+ return e->get_tree(context);
18470 }
18471- mpz_clear(ival);
18472-
18473- mpfr_t fval;
18474- mpfr_init(fval);
18475- if (expr->float_constant_value(fval, &t))
18476- {
18477- tree ret = Expression::float_constant_tree(fval, type_tree);
18478- mpfr_clear(fval);
18479- return ret;
18480- }
18481-
18482- mpfr_t imag;
18483- mpfr_init(imag);
18484- if (expr->complex_constant_value(fval, imag, &t))
18485- {
18486- tree ret = Expression::complex_constant_tree(fval, imag, type_tree);
18487- mpfr_clear(fval);
18488- mpfr_clear(imag);
18489- return ret;
18490- }
18491- mpfr_clear(imag);
18492- mpfr_clear(fval);
18493 }
18494
18495 tree const_tree = this->constant_->get_tree(gogo, context->function());
18496@@ -3279,15 +2889,9 @@
18497 { return this->expr_->is_constant(); }
18498
18499 bool
18500- do_integer_constant_value(bool, mpz_t, Type**) const;
18501+ do_numeric_constant_value(Numeric_constant*) const;
18502
18503 bool
18504- do_float_constant_value(mpfr_t, Type**) const;
18505-
18506- bool
18507- do_complex_constant_value(mpfr_t, mpfr_t, Type**) const;
18508-
18509- bool
18510 do_string_constant_value(std::string*) const;
18511
18512 Type*
18513@@ -3351,84 +2955,17 @@
18514 Expression* val = this->expr_;
18515 Location location = this->location();
18516
18517- if (type->integer_type() != NULL)
18518+ if (type->is_numeric_type())
18519 {
18520- mpz_t ival;
18521- mpz_init(ival);
18522- Type* dummy;
18523- if (val->integer_constant_value(false, ival, &dummy))
18524+ Numeric_constant nc;
18525+ if (val->numeric_constant_value(&nc))
18526 {
18527- if (!Integer_expression::check_constant(ival, type, location))
18528- mpz_set_ui(ival, 0);
18529- Expression* ret = Expression::make_integer(&ival, type, location);
18530- mpz_clear(ival);
18531- return ret;
18532+ if (!nc.set_type(type, true, location))
18533+ return Expression::make_error(location);
18534+ return nc.expression(location);
18535 }
18536-
18537- mpfr_t fval;
18538- mpfr_init(fval);
18539- if (val->float_constant_value(fval, &dummy))
18540- {
18541- if (!mpfr_integer_p(fval))
18542- {
18543- error_at(location,
18544- "floating point constant truncated to integer");
18545- return Expression::make_error(location);
18546- }
18547- mpfr_get_z(ival, fval, GMP_RNDN);
18548- if (!Integer_expression::check_constant(ival, type, location))
18549- mpz_set_ui(ival, 0);
18550- Expression* ret = Expression::make_integer(&ival, type, location);
18551- mpfr_clear(fval);
18552- mpz_clear(ival);
18553- return ret;
18554- }
18555- mpfr_clear(fval);
18556- mpz_clear(ival);
18557 }
18558
18559- if (type->float_type() != NULL)
18560- {
18561- mpfr_t fval;
18562- mpfr_init(fval);
18563- Type* dummy;
18564- if (val->float_constant_value(fval, &dummy))
18565- {
18566- if (!Float_expression::check_constant(fval, type, location))
18567- mpfr_set_ui(fval, 0, GMP_RNDN);
18568- Float_expression::constrain_float(fval, type);
18569- Expression *ret = Expression::make_float(&fval, type, location);
18570- mpfr_clear(fval);
18571- return ret;
18572- }
18573- mpfr_clear(fval);
18574- }
18575-
18576- if (type->complex_type() != NULL)
18577- {
18578- mpfr_t real;
18579- mpfr_t imag;
18580- mpfr_init(real);
18581- mpfr_init(imag);
18582- Type* dummy;
18583- if (val->complex_constant_value(real, imag, &dummy))
18584- {
18585- if (!Complex_expression::check_constant(real, imag, type, location))
18586- {
18587- mpfr_set_ui(real, 0, GMP_RNDN);
18588- mpfr_set_ui(imag, 0, GMP_RNDN);
18589- }
18590- Complex_expression::constrain_complex(real, imag, type);
18591- Expression* ret = Expression::make_complex(&real, &imag, type,
18592- location);
18593- mpfr_clear(real);
18594- mpfr_clear(imag);
18595- return ret;
18596- }
18597- mpfr_clear(real);
18598- mpfr_clear(imag);
18599- }
18600-
18601 if (type->is_slice_type())
18602 {
18603 Type* element_type = type->array_type()->element_type()->forwarded();
18604@@ -3491,120 +3028,19 @@
18605 return this;
18606 }
18607
18608-// Return the constant integer value if there is one.
18609+// Return the constant numeric value if there is one.
18610
18611 bool
18612-Type_conversion_expression::do_integer_constant_value(bool iota_is_constant,
18613- mpz_t val,
18614- Type** ptype) const
18615+Type_conversion_expression::do_numeric_constant_value(
18616+ Numeric_constant* nc) const
18617 {
18618- if (this->type_->integer_type() == NULL)
18619+ if (!this->type_->is_numeric_type())
18620 return false;
18621-
18622- mpz_t ival;
18623- mpz_init(ival);
18624- Type* dummy;
18625- if (this->expr_->integer_constant_value(iota_is_constant, ival, &dummy))
18626- {
18627- if (!Integer_expression::check_constant(ival, this->type_,
18628- this->location()))
18629- {
18630- mpz_clear(ival);
18631- return false;
18632- }
18633- mpz_set(val, ival);
18634- mpz_clear(ival);
18635- *ptype = this->type_;
18636- return true;
18637- }
18638- mpz_clear(ival);
18639-
18640- mpfr_t fval;
18641- mpfr_init(fval);
18642- if (this->expr_->float_constant_value(fval, &dummy))
18643- {
18644- mpfr_get_z(val, fval, GMP_RNDN);
18645- mpfr_clear(fval);
18646- if (!Integer_expression::check_constant(val, this->type_,
18647- this->location()))
18648- return false;
18649- *ptype = this->type_;
18650- return true;
18651- }
18652- mpfr_clear(fval);
18653-
18654- return false;
18655-}
18656-
18657-// Return the constant floating point value if there is one.
18658-
18659-bool
18660-Type_conversion_expression::do_float_constant_value(mpfr_t val,
18661- Type** ptype) const
18662-{
18663- if (this->type_->float_type() == NULL)
18664+ if (!this->expr_->numeric_constant_value(nc))
18665 return false;
18666-
18667- mpfr_t fval;
18668- mpfr_init(fval);
18669- Type* dummy;
18670- if (this->expr_->float_constant_value(fval, &dummy))
18671- {
18672- if (!Float_expression::check_constant(fval, this->type_,
18673- this->location()))
18674- {
18675- mpfr_clear(fval);
18676- return false;
18677- }
18678- mpfr_set(val, fval, GMP_RNDN);
18679- mpfr_clear(fval);
18680- Float_expression::constrain_float(val, this->type_);
18681- *ptype = this->type_;
18682- return true;
18683- }
18684- mpfr_clear(fval);
18685-
18686- return false;
18687+ return nc->set_type(this->type_, false, this->location());
18688 }
18689
18690-// Return the constant complex value if there is one.
18691-
18692-bool
18693-Type_conversion_expression::do_complex_constant_value(mpfr_t real,
18694- mpfr_t imag,
18695- Type **ptype) const
18696-{
18697- if (this->type_->complex_type() == NULL)
18698- return false;
18699-
18700- mpfr_t rval;
18701- mpfr_t ival;
18702- mpfr_init(rval);
18703- mpfr_init(ival);
18704- Type* dummy;
18705- if (this->expr_->complex_constant_value(rval, ival, &dummy))
18706- {
18707- if (!Complex_expression::check_constant(rval, ival, this->type_,
18708- this->location()))
18709- {
18710- mpfr_clear(rval);
18711- mpfr_clear(ival);
18712- return false;
18713- }
18714- mpfr_set(real, rval, GMP_RNDN);
18715- mpfr_set(imag, ival, GMP_RNDN);
18716- mpfr_clear(rval);
18717- mpfr_clear(ival);
18718- Complex_expression::constrain_complex(real, imag, this->type_);
18719- *ptype = this->type_;
18720- return true;
18721- }
18722- mpfr_clear(rval);
18723- mpfr_clear(ival);
18724-
18725- return false;
18726-}
18727-
18728 // Return the constant string value if there is one.
18729
18730 bool
18731@@ -3613,20 +3049,17 @@
18732 if (this->type_->is_string_type()
18733 && this->expr_->type()->integer_type() != NULL)
18734 {
18735- mpz_t ival;
18736- mpz_init(ival);
18737- Type* dummy;
18738- if (this->expr_->integer_constant_value(false, ival, &dummy))
18739+ Numeric_constant nc;
18740+ if (this->expr_->numeric_constant_value(&nc))
18741 {
18742- unsigned long ulval = mpz_get_ui(ival);
18743- if (mpz_cmp_ui(ival, ulval) == 0)
18744+ unsigned long ival;
18745+ if (nc.to_unsigned_long(&ival) == Numeric_constant::NC_UL_VALID)
18746 {
18747- Lex::append_char(ulval, true, val, this->location());
18748- mpz_clear(ival);
18749+ val->clear();
18750+ Lex::append_char(ival, true, val, this->location());
18751 return true;
18752 }
18753 }
18754- mpz_clear(ival);
18755 }
18756
18757 // FIXME: Could handle conversion from const []int here.
18758@@ -4041,23 +3474,12 @@
18759 this->create_temp_ = true;
18760 }
18761
18762- // Apply unary opcode OP to UVAL, setting VAL. Return true if this
18763- // could be done, false if not.
18764+ // Apply unary opcode OP to UNC, setting NC. Return true if this
18765+ // could be done, false if not. Issue errors for overflow.
18766 static bool
18767- eval_integer(Operator op, Type* utype, mpz_t uval, mpz_t val,
18768- Location);
18769+ eval_constant(Operator op, const Numeric_constant* unc,
18770+ Location, Numeric_constant* nc);
18771
18772- // Apply unary opcode OP to UVAL, setting VAL. Return true if this
18773- // could be done, false if not.
18774- static bool
18775- eval_float(Operator op, mpfr_t uval, mpfr_t val);
18776-
18777- // Apply unary opcode OP to UREAL/UIMAG, setting REAL/IMAG. Return
18778- // true if this could be done, false if not.
18779- static bool
18780- eval_complex(Operator op, mpfr_t ureal, mpfr_t uimag, mpfr_t real,
18781- mpfr_t imag);
18782-
18783 static Expression*
18784 do_import(Import*);
18785
18786@@ -4073,14 +3495,8 @@
18787 do_is_constant() const;
18788
18789 bool
18790- do_integer_constant_value(bool, mpz_t, Type**) const;
18791+ do_numeric_constant_value(Numeric_constant*) const;
18792
18793- bool
18794- do_float_constant_value(mpfr_t, Type**) const;
18795-
18796- bool
18797- do_complex_constant_value(mpfr_t, mpfr_t, Type**) const;
18798-
18799 Type*
18800 do_type();
18801
18802@@ -4178,63 +3594,15 @@
18803 return Expression::make_error(this->location());
18804 }
18805
18806- if (op == OPERATOR_PLUS || op == OPERATOR_MINUS
18807- || op == OPERATOR_NOT || op == OPERATOR_XOR)
18808+ if (op == OPERATOR_PLUS || op == OPERATOR_MINUS || op == OPERATOR_XOR)
18809 {
18810- Expression* ret = NULL;
18811-
18812- mpz_t eval;
18813- mpz_init(eval);
18814- Type* etype;
18815- if (expr->integer_constant_value(false, eval, &etype))
18816+ Numeric_constant nc;
18817+ if (expr->numeric_constant_value(&nc))
18818 {
18819- mpz_t val;
18820- mpz_init(val);
18821- if (Unary_expression::eval_integer(op, etype, eval, val, loc))
18822- ret = Expression::make_integer(&val, etype, loc);
18823- mpz_clear(val);
18824+ Numeric_constant result;
18825+ if (Unary_expression::eval_constant(op, &nc, loc, &result))
18826+ return result.expression(loc);
18827 }
18828- mpz_clear(eval);
18829- if (ret != NULL)
18830- return ret;
18831-
18832- if (op == OPERATOR_PLUS || op == OPERATOR_MINUS)
18833- {
18834- mpfr_t fval;
18835- mpfr_init(fval);
18836- Type* ftype;
18837- if (expr->float_constant_value(fval, &ftype))
18838- {
18839- mpfr_t val;
18840- mpfr_init(val);
18841- if (Unary_expression::eval_float(op, fval, val))
18842- ret = Expression::make_float(&val, ftype, loc);
18843- mpfr_clear(val);
18844- }
18845- if (ret != NULL)
18846- {
18847- mpfr_clear(fval);
18848- return ret;
18849- }
18850-
18851- mpfr_t ival;
18852- mpfr_init(ival);
18853- if (expr->complex_constant_value(fval, ival, &ftype))
18854- {
18855- mpfr_t real;
18856- mpfr_t imag;
18857- mpfr_init(real);
18858- mpfr_init(imag);
18859- if (Unary_expression::eval_complex(op, fval, ival, real, imag))
18860- ret = Expression::make_complex(&real, &imag, ftype, loc);
18861- mpfr_clear(real);
18862- mpfr_clear(imag);
18863- }
18864- mpfr_clear(ival);
18865- mpfr_clear(fval);
18866- if (ret != NULL)
18867- return ret;
18868- }
18869 }
18870
18871 return this;
18872@@ -4269,199 +3637,174 @@
18873 return this->expr_->is_constant();
18874 }
18875
18876-// Apply unary opcode OP to UVAL, setting VAL. UTYPE is the type of
18877-// UVAL, if known; it may be NULL. Return true if this could be done,
18878-// false if not.
18879+// Apply unary opcode OP to UNC, setting NC. Return true if this
18880+// could be done, false if not. Issue errors for overflow.
18881
18882 bool
18883-Unary_expression::eval_integer(Operator op, Type* utype, mpz_t uval, mpz_t val,
18884- Location location)
18885+Unary_expression::eval_constant(Operator op, const Numeric_constant* unc,
18886+ Location location, Numeric_constant* nc)
18887 {
18888 switch (op)
18889 {
18890 case OPERATOR_PLUS:
18891- mpz_set(val, uval);
18892+ *nc = *unc;
18893 return true;
18894+
18895 case OPERATOR_MINUS:
18896- mpz_neg(val, uval);
18897- return Integer_expression::check_constant(val, utype, location);
18898- case OPERATOR_NOT:
18899- mpz_set_ui(val, mpz_cmp_si(uval, 0) == 0 ? 1 : 0);
18900- return true;
18901- case OPERATOR_XOR:
18902- if (utype == NULL
18903- || utype->integer_type() == NULL
18904- || utype->integer_type()->is_abstract())
18905- mpz_com(val, uval);
18906+ if (unc->is_int() || unc->is_rune())
18907+ break;
18908+ else if (unc->is_float())
18909+ {
18910+ mpfr_t uval;
18911+ unc->get_float(&uval);
18912+ mpfr_t val;
18913+ mpfr_init(val);
18914+ mpfr_neg(val, uval, GMP_RNDN);
18915+ nc->set_float(unc->type(), val);
18916+ mpfr_clear(uval);
18917+ mpfr_clear(val);
18918+ return true;
18919+ }
18920+ else if (unc->is_complex())
18921+ {
18922+ mpfr_t ureal, uimag;
18923+ unc->get_complex(&ureal, &uimag);
18924+ mpfr_t real, imag;
18925+ mpfr_init(real);
18926+ mpfr_init(imag);
18927+ mpfr_neg(real, ureal, GMP_RNDN);
18928+ mpfr_neg(imag, uimag, GMP_RNDN);
18929+ nc->set_complex(unc->type(), real, imag);
18930+ mpfr_clear(ureal);
18931+ mpfr_clear(uimag);
18932+ mpfr_clear(real);
18933+ mpfr_clear(imag);
18934+ return true;
18935+ }
18936 else
18937- {
18938- // The number of HOST_WIDE_INTs that it takes to represent
18939- // UVAL.
18940- size_t count = ((mpz_sizeinbase(uval, 2)
18941- + HOST_BITS_PER_WIDE_INT
18942- - 1)
18943- / HOST_BITS_PER_WIDE_INT);
18944+ go_unreachable();
18945
18946- unsigned HOST_WIDE_INT* phwi = new unsigned HOST_WIDE_INT[count];
18947- memset(phwi, 0, count * sizeof(HOST_WIDE_INT));
18948+ case OPERATOR_XOR:
18949+ break;
18950
18951- size_t obits = utype->integer_type()->bits();
18952-
18953- if (!utype->integer_type()->is_unsigned()
18954- && mpz_sgn(uval) < 0)
18955- {
18956- mpz_t adj;
18957- mpz_init_set_ui(adj, 1);
18958- mpz_mul_2exp(adj, adj, obits);
18959- mpz_add(uval, uval, adj);
18960- mpz_clear(adj);
18961- }
18962-
18963- size_t ecount;
18964- mpz_export(phwi, &ecount, -1, sizeof(HOST_WIDE_INT), 0, 0, uval);
18965- go_assert(ecount <= count);
18966-
18967- // Trim down to the number of words required by the type.
18968- size_t ocount = ((obits + HOST_BITS_PER_WIDE_INT - 1)
18969- / HOST_BITS_PER_WIDE_INT);
18970- go_assert(ocount <= count);
18971-
18972- for (size_t i = 0; i < ocount; ++i)
18973- phwi[i] = ~phwi[i];
18974-
18975- size_t clearbits = ocount * HOST_BITS_PER_WIDE_INT - obits;
18976- if (clearbits != 0)
18977- phwi[ocount - 1] &= (((unsigned HOST_WIDE_INT) (HOST_WIDE_INT) -1)
18978- >> clearbits);
18979-
18980- mpz_import(val, ocount, -1, sizeof(HOST_WIDE_INT), 0, 0, phwi);
18981-
18982- if (!utype->integer_type()->is_unsigned()
18983- && mpz_tstbit(val, obits - 1))
18984- {
18985- mpz_t adj;
18986- mpz_init_set_ui(adj, 1);
18987- mpz_mul_2exp(adj, adj, obits);
18988- mpz_sub(val, val, adj);
18989- mpz_clear(adj);
18990- }
18991-
18992- delete[] phwi;
18993- }
18994- return Integer_expression::check_constant(val, utype, location);
18995+ case OPERATOR_NOT:
18996 case OPERATOR_AND:
18997 case OPERATOR_MULT:
18998 return false;
18999+
19000 default:
19001 go_unreachable();
19002 }
19003-}
19004
19005-// Apply unary opcode OP to UVAL, setting VAL. Return true if this
19006-// could be done, false if not.
19007+ if (!unc->is_int() && !unc->is_rune())
19008+ return false;
19009
19010-bool
19011-Unary_expression::eval_float(Operator op, mpfr_t uval, mpfr_t val)
19012-{
19013+ mpz_t uval;
19014+ if (unc->is_rune())
19015+ unc->get_rune(&uval);
19016+ else
19017+ unc->get_int(&uval);
19018+ mpz_t val;
19019+ mpz_init(val);
19020+
19021 switch (op)
19022 {
19023- case OPERATOR_PLUS:
19024- mpfr_set(val, uval, GMP_RNDN);
19025- return true;
19026 case OPERATOR_MINUS:
19027- mpfr_neg(val, uval, GMP_RNDN);
19028- return true;
19029+ mpz_neg(val, uval);
19030+ break;
19031+
19032 case OPERATOR_NOT:
19033+ mpz_set_ui(val, mpz_cmp_si(uval, 0) == 0 ? 1 : 0);
19034+ break;
19035+
19036 case OPERATOR_XOR:
19037- case OPERATOR_AND:
19038- case OPERATOR_MULT:
19039- return false;
19040- default:
19041- go_unreachable();
19042- }
19043-}
19044+ {
19045+ Type* utype = unc->type();
19046+ if (utype->integer_type() == NULL
19047+ || utype->integer_type()->is_abstract())
19048+ mpz_com(val, uval);
19049+ else
19050+ {
19051+ // The number of HOST_WIDE_INTs that it takes to represent
19052+ // UVAL.
19053+ size_t count = ((mpz_sizeinbase(uval, 2)
19054+ + HOST_BITS_PER_WIDE_INT
19055+ - 1)
19056+ / HOST_BITS_PER_WIDE_INT);
19057
19058-// Apply unary opcode OP to RVAL/IVAL, setting REAL/IMAG. Return true
19059-// if this could be done, false if not.
19060+ unsigned HOST_WIDE_INT* phwi = new unsigned HOST_WIDE_INT[count];
19061+ memset(phwi, 0, count * sizeof(HOST_WIDE_INT));
19062
19063-bool
19064-Unary_expression::eval_complex(Operator op, mpfr_t rval, mpfr_t ival,
19065- mpfr_t real, mpfr_t imag)
19066-{
19067- switch (op)
19068- {
19069- case OPERATOR_PLUS:
19070- mpfr_set(real, rval, GMP_RNDN);
19071- mpfr_set(imag, ival, GMP_RNDN);
19072- return true;
19073- case OPERATOR_MINUS:
19074- mpfr_neg(real, rval, GMP_RNDN);
19075- mpfr_neg(imag, ival, GMP_RNDN);
19076- return true;
19077- case OPERATOR_NOT:
19078- case OPERATOR_XOR:
19079- case OPERATOR_AND:
19080- case OPERATOR_MULT:
19081- return false;
19082+ size_t obits = utype->integer_type()->bits();
19083+
19084+ if (!utype->integer_type()->is_unsigned() && mpz_sgn(uval) < 0)
19085+ {
19086+ mpz_t adj;
19087+ mpz_init_set_ui(adj, 1);
19088+ mpz_mul_2exp(adj, adj, obits);
19089+ mpz_add(uval, uval, adj);
19090+ mpz_clear(adj);
19091+ }
19092+
19093+ size_t ecount;
19094+ mpz_export(phwi, &ecount, -1, sizeof(HOST_WIDE_INT), 0, 0, uval);
19095+ go_assert(ecount <= count);
19096+
19097+ // Trim down to the number of words required by the type.
19098+ size_t ocount = ((obits + HOST_BITS_PER_WIDE_INT - 1)
19099+ / HOST_BITS_PER_WIDE_INT);
19100+ go_assert(ocount <= count);
19101+
19102+ for (size_t i = 0; i < ocount; ++i)
19103+ phwi[i] = ~phwi[i];
19104+
19105+ size_t clearbits = ocount * HOST_BITS_PER_WIDE_INT - obits;
19106+ if (clearbits != 0)
19107+ phwi[ocount - 1] &= (((unsigned HOST_WIDE_INT) (HOST_WIDE_INT) -1)
19108+ >> clearbits);
19109+
19110+ mpz_import(val, ocount, -1, sizeof(HOST_WIDE_INT), 0, 0, phwi);
19111+
19112+ if (!utype->integer_type()->is_unsigned()
19113+ && mpz_tstbit(val, obits - 1))
19114+ {
19115+ mpz_t adj;
19116+ mpz_init_set_ui(adj, 1);
19117+ mpz_mul_2exp(adj, adj, obits);
19118+ mpz_sub(val, val, adj);
19119+ mpz_clear(adj);
19120+ }
19121+
19122+ delete[] phwi;
19123+ }
19124+ }
19125+ break;
19126+
19127 default:
19128 go_unreachable();
19129 }
19130-}
19131
19132-// Return the integral constant value of a unary expression, if it has one.
19133+ if (unc->is_rune())
19134+ nc->set_rune(NULL, val);
19135+ else
19136+ nc->set_int(NULL, val);
19137
19138-bool
19139-Unary_expression::do_integer_constant_value(bool iota_is_constant, mpz_t val,
19140- Type** ptype) const
19141-{
19142- mpz_t uval;
19143- mpz_init(uval);
19144- bool ret;
19145- if (!this->expr_->integer_constant_value(iota_is_constant, uval, ptype))
19146- ret = false;
19147- else
19148- ret = Unary_expression::eval_integer(this->op_, *ptype, uval, val,
19149- this->location());
19150 mpz_clear(uval);
19151- return ret;
19152-}
19153+ mpz_clear(val);
19154
19155-// Return the floating point constant value of a unary expression, if
19156-// it has one.
19157-
19158-bool
19159-Unary_expression::do_float_constant_value(mpfr_t val, Type** ptype) const
19160-{
19161- mpfr_t uval;
19162- mpfr_init(uval);
19163- bool ret;
19164- if (!this->expr_->float_constant_value(uval, ptype))
19165- ret = false;
19166- else
19167- ret = Unary_expression::eval_float(this->op_, uval, val);
19168- mpfr_clear(uval);
19169- return ret;
19170+ return nc->set_type(unc->type(), true, location);
19171 }
19172
19173-// Return the complex constant value of a unary expression, if it has
19174-// one.
19175+// Return the integral constant value of a unary expression, if it has one.
19176
19177 bool
19178-Unary_expression::do_complex_constant_value(mpfr_t real, mpfr_t imag,
19179- Type** ptype) const
19180+Unary_expression::do_numeric_constant_value(Numeric_constant* nc) const
19181 {
19182- mpfr_t rval;
19183- mpfr_t ival;
19184- mpfr_init(rval);
19185- mpfr_init(ival);
19186- bool ret;
19187- if (!this->expr_->complex_constant_value(rval, ival, ptype))
19188- ret = false;
19189- else
19190- ret = Unary_expression::eval_complex(this->op_, rval, ival, real, imag);
19191- mpfr_clear(rval);
19192- mpfr_clear(ival);
19193- return ret;
19194+ Numeric_constant unc;
19195+ if (!this->expr_->numeric_constant_value(&unc))
19196+ return false;
19197+ return Unary_expression::eval_constant(this->op_, &unc, this->location(),
19198+ nc);
19199 }
19200
19201 // Return the type of a unary expression.
19202@@ -4558,6 +3901,10 @@
19203 break;
19204
19205 case OPERATOR_NOT:
19206+ if (!type->is_boolean_type())
19207+ this->report_error(_("expected boolean type"));
19208+ break;
19209+
19210 case OPERATOR_XOR:
19211 if (type->integer_type() == NULL
19212 && !type->is_boolean_type())
19213@@ -4685,19 +4032,50 @@
19214
19215 if (this->create_temp_
19216 && !TREE_ADDRESSABLE(TREE_TYPE(expr))
19217- && !DECL_P(expr)
19218+ && (TREE_CODE(expr) == CONST_DECL || !DECL_P(expr))
19219 && TREE_CODE(expr) != INDIRECT_REF
19220 && TREE_CODE(expr) != COMPONENT_REF)
19221 {
19222- tree tmp = create_tmp_var(TREE_TYPE(expr), get_name(expr));
19223- DECL_IGNORED_P(tmp) = 1;
19224- DECL_INITIAL(tmp) = expr;
19225- TREE_ADDRESSABLE(tmp) = 1;
19226- return build2_loc(loc.gcc_location(), COMPOUND_EXPR,
19227- build_pointer_type(TREE_TYPE(expr)),
19228- build1_loc(loc.gcc_location(), DECL_EXPR,
19229- void_type_node, tmp),
19230- build_fold_addr_expr_loc(loc.gcc_location(), tmp));
19231+ if (current_function_decl != NULL)
19232+ {
19233+ tree tmp = create_tmp_var(TREE_TYPE(expr), get_name(expr));
19234+ DECL_IGNORED_P(tmp) = 1;
19235+ DECL_INITIAL(tmp) = expr;
19236+ TREE_ADDRESSABLE(tmp) = 1;
19237+ return build2_loc(loc.gcc_location(), COMPOUND_EXPR,
19238+ build_pointer_type(TREE_TYPE(expr)),
19239+ build1_loc(loc.gcc_location(), DECL_EXPR,
19240+ void_type_node, tmp),
19241+ build_fold_addr_expr_loc(loc.gcc_location(),
19242+ tmp));
19243+ }
19244+ else
19245+ {
19246+ tree tmp = build_decl(loc.gcc_location(), VAR_DECL,
19247+ create_tmp_var_name("A"), TREE_TYPE(expr));
19248+ DECL_EXTERNAL(tmp) = 0;
19249+ TREE_PUBLIC(tmp) = 0;
19250+ TREE_STATIC(tmp) = 1;
19251+ DECL_ARTIFICIAL(tmp) = 1;
19252+ TREE_ADDRESSABLE(tmp) = 1;
19253+ tree make_tmp;
19254+ if (!TREE_CONSTANT(expr))
19255+ make_tmp = fold_build2_loc(loc.gcc_location(), INIT_EXPR,
19256+ void_type_node, tmp, expr);
19257+ else
19258+ {
19259+ TREE_READONLY(tmp) = 1;
19260+ TREE_CONSTANT(tmp) = 1;
19261+ DECL_INITIAL(tmp) = expr;
19262+ make_tmp = NULL_TREE;
19263+ }
19264+ rest_of_decl_compilation(tmp, 1, 0);
19265+ tree addr = build_fold_addr_expr_loc(loc.gcc_location(), tmp);
19266+ if (make_tmp == NULL_TREE)
19267+ return addr;
19268+ return build2_loc(loc.gcc_location(), COMPOUND_EXPR,
19269+ TREE_TYPE(addr), make_tmp, addr);
19270+ }
19271 }
19272
19273 return build_fold_addr_expr_loc(loc.gcc_location(), expr);
19274@@ -4854,124 +4232,239 @@
19275 return Expression::traverse(&this->right_, traverse);
19276 }
19277
19278-// Compare integer constants according to OP.
19279+// Return the type to use for a binary operation on operands of
19280+// LEFT_TYPE and RIGHT_TYPE. These are the types of constants and as
19281+// such may be NULL or abstract.
19282
19283 bool
19284-Binary_expression::compare_integer(Operator op, mpz_t left_val,
19285- mpz_t right_val)
19286+Binary_expression::operation_type(Operator op, Type* left_type,
19287+ Type* right_type, Type** result_type)
19288 {
19289- int i = mpz_cmp(left_val, right_val);
19290+ if (left_type != right_type
19291+ && !left_type->is_abstract()
19292+ && !right_type->is_abstract()
19293+ && left_type->base() != right_type->base()
19294+ && op != OPERATOR_LSHIFT
19295+ && op != OPERATOR_RSHIFT)
19296+ {
19297+ // May be a type error--let it be diagnosed elsewhere.
19298+ return false;
19299+ }
19300+
19301+ if (op == OPERATOR_LSHIFT || op == OPERATOR_RSHIFT)
19302+ {
19303+ if (left_type->integer_type() != NULL)
19304+ *result_type = left_type;
19305+ else
19306+ *result_type = Type::make_abstract_integer_type();
19307+ }
19308+ else if (!left_type->is_abstract() && left_type->named_type() != NULL)
19309+ *result_type = left_type;
19310+ else if (!right_type->is_abstract() && right_type->named_type() != NULL)
19311+ *result_type = right_type;
19312+ else if (!left_type->is_abstract())
19313+ *result_type = left_type;
19314+ else if (!right_type->is_abstract())
19315+ *result_type = right_type;
19316+ else if (left_type->complex_type() != NULL)
19317+ *result_type = left_type;
19318+ else if (right_type->complex_type() != NULL)
19319+ *result_type = right_type;
19320+ else if (left_type->float_type() != NULL)
19321+ *result_type = left_type;
19322+ else if (right_type->float_type() != NULL)
19323+ *result_type = right_type;
19324+ else if (left_type->integer_type() != NULL
19325+ && left_type->integer_type()->is_rune())
19326+ *result_type = left_type;
19327+ else if (right_type->integer_type() != NULL
19328+ && right_type->integer_type()->is_rune())
19329+ *result_type = right_type;
19330+ else
19331+ *result_type = left_type;
19332+
19333+ return true;
19334+}
19335+
19336+// Convert an integer comparison code and an operator to a boolean
19337+// value.
19338+
19339+bool
19340+Binary_expression::cmp_to_bool(Operator op, int cmp)
19341+{
19342 switch (op)
19343 {
19344 case OPERATOR_EQEQ:
19345- return i == 0;
19346+ return cmp == 0;
19347+ break;
19348 case OPERATOR_NOTEQ:
19349- return i != 0;
19350+ return cmp != 0;
19351+ break;
19352 case OPERATOR_LT:
19353- return i < 0;
19354+ return cmp < 0;
19355+ break;
19356 case OPERATOR_LE:
19357- return i <= 0;
19358+ return cmp <= 0;
19359 case OPERATOR_GT:
19360- return i > 0;
19361+ return cmp > 0;
19362 case OPERATOR_GE:
19363- return i >= 0;
19364+ return cmp >= 0;
19365 default:
19366 go_unreachable();
19367 }
19368 }
19369
19370-// Compare floating point constants according to OP.
19371+// Compare constants according to OP.
19372
19373 bool
19374-Binary_expression::compare_float(Operator op, Type* type, mpfr_t left_val,
19375- mpfr_t right_val)
19376+Binary_expression::compare_constant(Operator op, Numeric_constant* left_nc,
19377+ Numeric_constant* right_nc,
19378+ Location location, bool* result)
19379 {
19380- int i;
19381- if (type == NULL)
19382- i = mpfr_cmp(left_val, right_val);
19383+ Type* left_type = left_nc->type();
19384+ Type* right_type = right_nc->type();
19385+
19386+ Type* type;
19387+ if (!Binary_expression::operation_type(op, left_type, right_type, &type))
19388+ return false;
19389+
19390+ // When comparing an untyped operand to a typed operand, we are
19391+ // effectively coercing the untyped operand to the other operand's
19392+ // type, so make sure that is valid.
19393+ if (!left_nc->set_type(type, true, location)
19394+ || !right_nc->set_type(type, true, location))
19395+ return false;
19396+
19397+ bool ret;
19398+ int cmp;
19399+ if (type->complex_type() != NULL)
19400+ {
19401+ if (op != OPERATOR_EQEQ && op != OPERATOR_NOTEQ)
19402+ return false;
19403+ ret = Binary_expression::compare_complex(left_nc, right_nc, &cmp);
19404+ }
19405+ else if (type->float_type() != NULL)
19406+ ret = Binary_expression::compare_float(left_nc, right_nc, &cmp);
19407 else
19408+ ret = Binary_expression::compare_integer(left_nc, right_nc, &cmp);
19409+
19410+ if (ret)
19411+ *result = Binary_expression::cmp_to_bool(op, cmp);
19412+
19413+ return ret;
19414+}
19415+
19416+// Compare integer constants.
19417+
19418+bool
19419+Binary_expression::compare_integer(const Numeric_constant* left_nc,
19420+ const Numeric_constant* right_nc,
19421+ int* cmp)
19422+{
19423+ mpz_t left_val;
19424+ if (!left_nc->to_int(&left_val))
19425+ return false;
19426+ mpz_t right_val;
19427+ if (!right_nc->to_int(&right_val))
19428 {
19429- mpfr_t lv;
19430- mpfr_init_set(lv, left_val, GMP_RNDN);
19431- mpfr_t rv;
19432- mpfr_init_set(rv, right_val, GMP_RNDN);
19433- Float_expression::constrain_float(lv, type);
19434- Float_expression::constrain_float(rv, type);
19435- i = mpfr_cmp(lv, rv);
19436- mpfr_clear(lv);
19437- mpfr_clear(rv);
19438+ mpz_clear(left_val);
19439+ return false;
19440 }
19441- switch (op)
19442+
19443+ *cmp = mpz_cmp(left_val, right_val);
19444+
19445+ mpz_clear(left_val);
19446+ mpz_clear(right_val);
19447+
19448+ return true;
19449+}
19450+
19451+// Compare floating point constants.
19452+
19453+bool
19454+Binary_expression::compare_float(const Numeric_constant* left_nc,
19455+ const Numeric_constant* right_nc,
19456+ int* cmp)
19457+{
19458+ mpfr_t left_val;
19459+ if (!left_nc->to_float(&left_val))
19460+ return false;
19461+ mpfr_t right_val;
19462+ if (!right_nc->to_float(&right_val))
19463 {
19464- case OPERATOR_EQEQ:
19465- return i == 0;
19466- case OPERATOR_NOTEQ:
19467- return i != 0;
19468- case OPERATOR_LT:
19469- return i < 0;
19470- case OPERATOR_LE:
19471- return i <= 0;
19472- case OPERATOR_GT:
19473- return i > 0;
19474- case OPERATOR_GE:
19475- return i >= 0;
19476- default:
19477- go_unreachable();
19478+ mpfr_clear(left_val);
19479+ return false;
19480 }
19481+
19482+ // We already coerced both operands to the same type. If that type
19483+ // is not an abstract type, we need to round the values accordingly.
19484+ Type* type = left_nc->type();
19485+ if (!type->is_abstract() && type->float_type() != NULL)
19486+ {
19487+ int bits = type->float_type()->bits();
19488+ mpfr_prec_round(left_val, bits, GMP_RNDN);
19489+ mpfr_prec_round(right_val, bits, GMP_RNDN);
19490+ }
19491+
19492+ *cmp = mpfr_cmp(left_val, right_val);
19493+
19494+ mpfr_clear(left_val);
19495+ mpfr_clear(right_val);
19496+
19497+ return true;
19498 }
19499
19500-// Compare complex constants according to OP. Complex numbers may
19501-// only be compared for equality.
19502+// Compare complex constants. Complex numbers may only be compared
19503+// for equality.
19504
19505 bool
19506-Binary_expression::compare_complex(Operator op, Type* type,
19507- mpfr_t left_real, mpfr_t left_imag,
19508- mpfr_t right_real, mpfr_t right_imag)
19509+Binary_expression::compare_complex(const Numeric_constant* left_nc,
19510+ const Numeric_constant* right_nc,
19511+ int* cmp)
19512 {
19513- bool is_equal;
19514- if (type == NULL)
19515- is_equal = (mpfr_cmp(left_real, right_real) == 0
19516- && mpfr_cmp(left_imag, right_imag) == 0);
19517- else
19518+ mpfr_t left_real, left_imag;
19519+ if (!left_nc->to_complex(&left_real, &left_imag))
19520+ return false;
19521+ mpfr_t right_real, right_imag;
19522+ if (!right_nc->to_complex(&right_real, &right_imag))
19523 {
19524- mpfr_t lr;
19525- mpfr_t li;
19526- mpfr_init_set(lr, left_real, GMP_RNDN);
19527- mpfr_init_set(li, left_imag, GMP_RNDN);
19528- mpfr_t rr;
19529- mpfr_t ri;
19530- mpfr_init_set(rr, right_real, GMP_RNDN);
19531- mpfr_init_set(ri, right_imag, GMP_RNDN);
19532- Complex_expression::constrain_complex(lr, li, type);
19533- Complex_expression::constrain_complex(rr, ri, type);
19534- is_equal = mpfr_cmp(lr, rr) == 0 && mpfr_cmp(li, ri) == 0;
19535- mpfr_clear(lr);
19536- mpfr_clear(li);
19537- mpfr_clear(rr);
19538- mpfr_clear(ri);
19539+ mpfr_clear(left_real);
19540+ mpfr_clear(left_imag);
19541+ return false;
19542 }
19543- switch (op)
19544+
19545+ // We already coerced both operands to the same type. If that type
19546+ // is not an abstract type, we need to round the values accordingly.
19547+ Type* type = left_nc->type();
19548+ if (!type->is_abstract() && type->complex_type() != NULL)
19549 {
19550- case OPERATOR_EQEQ:
19551- return is_equal;
19552- case OPERATOR_NOTEQ:
19553- return !is_equal;
19554- default:
19555- go_unreachable();
19556+ int bits = type->complex_type()->bits();
19557+ mpfr_prec_round(left_real, bits / 2, GMP_RNDN);
19558+ mpfr_prec_round(left_imag, bits / 2, GMP_RNDN);
19559+ mpfr_prec_round(right_real, bits / 2, GMP_RNDN);
19560+ mpfr_prec_round(right_imag, bits / 2, GMP_RNDN);
19561 }
19562+
19563+ *cmp = (mpfr_cmp(left_real, right_real) != 0
19564+ || mpfr_cmp(left_imag, right_imag) != 0);
19565+
19566+ mpfr_clear(left_real);
19567+ mpfr_clear(left_imag);
19568+ mpfr_clear(right_real);
19569+ mpfr_clear(right_imag);
19570+
19571+ return true;
19572 }
19573
19574-// Apply binary opcode OP to LEFT_VAL and RIGHT_VAL, setting VAL.
19575-// LEFT_TYPE is the type of LEFT_VAL, RIGHT_TYPE is the type of
19576-// RIGHT_VAL; LEFT_TYPE and/or RIGHT_TYPE may be NULL. Return true if
19577-// this could be done, false if not.
19578+// Apply binary opcode OP to LEFT_NC and RIGHT_NC, setting NC. Return
19579+// true if this could be done, false if not. Issue errors at LOCATION
19580+// as appropriate.
19581
19582 bool
19583-Binary_expression::eval_integer(Operator op, Type* left_type, mpz_t left_val,
19584- Type* right_type, mpz_t right_val,
19585- Location location, mpz_t val)
19586+Binary_expression::eval_constant(Operator op, Numeric_constant* left_nc,
19587+ Numeric_constant* right_nc,
19588+ Location location, Numeric_constant* nc)
19589 {
19590- bool is_shift_op = false;
19591 switch (op)
19592 {
19593 case OPERATOR_OROR:
19594@@ -4982,9 +4475,68 @@
19595 case OPERATOR_LE:
19596 case OPERATOR_GT:
19597 case OPERATOR_GE:
19598- // These return boolean values. We should probably handle them
19599- // anyhow in case a type conversion is used on the result.
19600+ // These return boolean values and as such must be handled
19601+ // elsewhere.
19602+ go_unreachable();
19603+ default:
19604+ break;
19605+ }
19606+
19607+ Type* left_type = left_nc->type();
19608+ Type* right_type = right_nc->type();
19609+
19610+ Type* type;
19611+ if (!Binary_expression::operation_type(op, left_type, right_type, &type))
19612+ return false;
19613+
19614+ bool is_shift = op == OPERATOR_LSHIFT || op == OPERATOR_RSHIFT;
19615+
19616+ // When combining an untyped operand with a typed operand, we are
19617+ // effectively coercing the untyped operand to the other operand's
19618+ // type, so make sure that is valid.
19619+ if (!left_nc->set_type(type, true, location))
19620+ return false;
19621+ if (!is_shift && !right_nc->set_type(type, true, location))
19622+ return false;
19623+
19624+ bool r;
19625+ if (type->complex_type() != NULL)
19626+ r = Binary_expression::eval_complex(op, left_nc, right_nc, location, nc);
19627+ else if (type->float_type() != NULL)
19628+ r = Binary_expression::eval_float(op, left_nc, right_nc, location, nc);
19629+ else
19630+ r = Binary_expression::eval_integer(op, left_nc, right_nc, location, nc);
19631+
19632+ if (r)
19633+ r = nc->set_type(type, true, location);
19634+
19635+ return r;
19636+}
19637+
19638+// Apply binary opcode OP to LEFT_NC and RIGHT_NC, setting NC, using
19639+// integer operations. Return true if this could be done, false if
19640+// not.
19641+
19642+bool
19643+Binary_expression::eval_integer(Operator op, const Numeric_constant* left_nc,
19644+ const Numeric_constant* right_nc,
19645+ Location location, Numeric_constant* nc)
19646+{
19647+ mpz_t left_val;
19648+ if (!left_nc->to_int(&left_val))
19649+ return false;
19650+ mpz_t right_val;
19651+ if (!right_nc->to_int(&right_val))
19652+ {
19653+ mpz_clear(left_val);
19654 return false;
19655+ }
19656+
19657+ mpz_t val;
19658+ mpz_init(val);
19659+
19660+ switch (op)
19661+ {
19662 case OPERATOR_PLUS:
19663 mpz_add(val, left_val, right_val);
19664 break;
19665@@ -5007,7 +4559,6 @@
19666 {
19667 error_at(location, "division by zero");
19668 mpz_set_ui(val, 0);
19669- return true;
19670 }
19671 break;
19672 case OPERATOR_MOD:
19673@@ -5017,20 +4568,18 @@
19674 {
19675 error_at(location, "division by zero");
19676 mpz_set_ui(val, 0);
19677- return true;
19678 }
19679 break;
19680 case OPERATOR_LSHIFT:
19681 {
19682 unsigned long shift = mpz_get_ui(right_val);
19683- if (mpz_cmp_ui(right_val, shift) != 0 || shift > 0x100000)
19684+ if (mpz_cmp_ui(right_val, shift) == 0 && shift <= 0x100000)
19685+ mpz_mul_2exp(val, left_val, shift);
19686+ else
19687 {
19688 error_at(location, "shift count overflow");
19689 mpz_set_ui(val, 0);
19690- return true;
19691 }
19692- mpz_mul_2exp(val, left_val, shift);
19693- is_shift_op = true;
19694 break;
19695 }
19696 break;
19697@@ -5041,13 +4590,14 @@
19698 {
19699 error_at(location, "shift count overflow");
19700 mpz_set_ui(val, 0);
19701- return true;
19702 }
19703- if (mpz_cmp_ui(left_val, 0) >= 0)
19704- mpz_tdiv_q_2exp(val, left_val, shift);
19705 else
19706- mpz_fdiv_q_2exp(val, left_val, shift);
19707- is_shift_op = true;
19708+ {
19709+ if (mpz_cmp_ui(left_val, 0) >= 0)
19710+ mpz_tdiv_q_2exp(val, left_val, shift);
19711+ else
19712+ mpz_fdiv_q_2exp(val, left_val, shift);
19713+ }
19714 break;
19715 }
19716 break;
19717@@ -5067,63 +4617,47 @@
19718 go_unreachable();
19719 }
19720
19721- Type* type = left_type;
19722- if (!is_shift_op)
19723- {
19724- if (type == NULL)
19725- type = right_type;
19726- else if (type != right_type && right_type != NULL)
19727- {
19728- if (type->is_abstract())
19729- type = right_type;
19730- else if (!right_type->is_abstract())
19731- {
19732- // This look like a type error which should be diagnosed
19733- // elsewhere. Don't do anything here, to avoid an
19734- // unhelpful chain of error messages.
19735- return true;
19736- }
19737- }
19738- }
19739+ mpz_clear(left_val);
19740+ mpz_clear(right_val);
19741
19742- if (type != NULL && !type->is_abstract())
19743- {
19744- // We have to check the operands too, as we have implicitly
19745- // coerced them to TYPE.
19746- if ((type != left_type
19747- && !Integer_expression::check_constant(left_val, type, location))
19748- || (!is_shift_op
19749- && type != right_type
19750- && !Integer_expression::check_constant(right_val, type,
19751- location))
19752- || !Integer_expression::check_constant(val, type, location))
19753- mpz_set_ui(val, 0);
19754- }
19755+ if (left_nc->is_rune()
19756+ || (op != OPERATOR_LSHIFT
19757+ && op != OPERATOR_RSHIFT
19758+ && right_nc->is_rune()))
19759+ nc->set_rune(NULL, val);
19760+ else
19761+ nc->set_int(NULL, val);
19762
19763+ mpz_clear(val);
19764+
19765 return true;
19766 }
19767
19768-// Apply binary opcode OP to LEFT_VAL and RIGHT_VAL, setting VAL.
19769-// Return true if this could be done, false if not.
19770+// Apply binary opcode OP to LEFT_NC and RIGHT_NC, setting NC, using
19771+// floating point operations. Return true if this could be done,
19772+// false if not.
19773
19774 bool
19775-Binary_expression::eval_float(Operator op, Type* left_type, mpfr_t left_val,
19776- Type* right_type, mpfr_t right_val,
19777- mpfr_t val, Location location)
19778+Binary_expression::eval_float(Operator op, const Numeric_constant* left_nc,
19779+ const Numeric_constant* right_nc,
19780+ Location location, Numeric_constant* nc)
19781 {
19782+ mpfr_t left_val;
19783+ if (!left_nc->to_float(&left_val))
19784+ return false;
19785+ mpfr_t right_val;
19786+ if (!right_nc->to_float(&right_val))
19787+ {
19788+ mpfr_clear(left_val);
19789+ return false;
19790+ }
19791+
19792+ mpfr_t val;
19793+ mpfr_init(val);
19794+
19795+ bool ret = true;
19796 switch (op)
19797 {
19798- case OPERATOR_OROR:
19799- case OPERATOR_ANDAND:
19800- case OPERATOR_EQEQ:
19801- case OPERATOR_NOTEQ:
19802- case OPERATOR_LT:
19803- case OPERATOR_LE:
19804- case OPERATOR_GT:
19805- case OPERATOR_GE:
19806- // These return boolean values. We should probably handle them
19807- // anyhow in case a type conversion is used on the result.
19808- return false;
19809 case OPERATOR_PLUS:
19810 mpfr_add(val, left_val, right_val, GMP_RNDN);
19811 break;
19812@@ -5134,78 +4668,64 @@
19813 case OPERATOR_XOR:
19814 case OPERATOR_AND:
19815 case OPERATOR_BITCLEAR:
19816- return false;
19817+ case OPERATOR_MOD:
19818+ case OPERATOR_LSHIFT:
19819+ case OPERATOR_RSHIFT:
19820+ mpfr_set_ui(val, 0, GMP_RNDN);
19821+ ret = false;
19822+ break;
19823 case OPERATOR_MULT:
19824 mpfr_mul(val, left_val, right_val, GMP_RNDN);
19825 break;
19826 case OPERATOR_DIV:
19827- if (mpfr_zero_p(right_val))
19828- error_at(location, "division by zero");
19829- mpfr_div(val, left_val, right_val, GMP_RNDN);
19830+ if (!mpfr_zero_p(right_val))
19831+ mpfr_div(val, left_val, right_val, GMP_RNDN);
19832+ else
19833+ {
19834+ error_at(location, "division by zero");
19835+ mpfr_set_ui(val, 0, GMP_RNDN);
19836+ }
19837 break;
19838- case OPERATOR_MOD:
19839- return false;
19840- case OPERATOR_LSHIFT:
19841- case OPERATOR_RSHIFT:
19842- return false;
19843 default:
19844 go_unreachable();
19845 }
19846
19847- Type* type = left_type;
19848- if (type == NULL)
19849- type = right_type;
19850- else if (type != right_type && right_type != NULL)
19851- {
19852- if (type->is_abstract())
19853- type = right_type;
19854- else if (!right_type->is_abstract())
19855- {
19856- // This looks like a type error which should be diagnosed
19857- // elsewhere. Don't do anything here, to avoid an unhelpful
19858- // chain of error messages.
19859- return true;
19860- }
19861- }
19862+ mpfr_clear(left_val);
19863+ mpfr_clear(right_val);
19864
19865- if (type != NULL && !type->is_abstract())
19866- {
19867- if ((type != left_type
19868- && !Float_expression::check_constant(left_val, type, location))
19869- || (type != right_type
19870- && !Float_expression::check_constant(right_val, type,
19871- location))
19872- || !Float_expression::check_constant(val, type, location))
19873- mpfr_set_ui(val, 0, GMP_RNDN);
19874- }
19875+ nc->set_float(NULL, val);
19876+ mpfr_clear(val);
19877
19878- return true;
19879+ return ret;
19880 }
19881
19882-// Apply binary opcode OP to LEFT_REAL/LEFT_IMAG and
19883-// RIGHT_REAL/RIGHT_IMAG, setting REAL/IMAG. Return true if this
19884-// could be done, false if not.
19885+// Apply binary opcode OP to LEFT_NC and RIGHT_NC, setting NC, using
19886+// complex operations. Return true if this could be done, false if
19887+// not.
19888
19889 bool
19890-Binary_expression::eval_complex(Operator op, Type* left_type,
19891- mpfr_t left_real, mpfr_t left_imag,
19892- Type *right_type,
19893- mpfr_t right_real, mpfr_t right_imag,
19894- mpfr_t real, mpfr_t imag,
19895- Location location)
19896+Binary_expression::eval_complex(Operator op, const Numeric_constant* left_nc,
19897+ const Numeric_constant* right_nc,
19898+ Location location, Numeric_constant* nc)
19899 {
19900+ mpfr_t left_real, left_imag;
19901+ if (!left_nc->to_complex(&left_real, &left_imag))
19902+ return false;
19903+ mpfr_t right_real, right_imag;
19904+ if (!right_nc->to_complex(&right_real, &right_imag))
19905+ {
19906+ mpfr_clear(left_real);
19907+ mpfr_clear(left_imag);
19908+ return false;
19909+ }
19910+
19911+ mpfr_t real, imag;
19912+ mpfr_init(real);
19913+ mpfr_init(imag);
19914+
19915+ bool ret = true;
19916 switch (op)
19917 {
19918- case OPERATOR_OROR:
19919- case OPERATOR_ANDAND:
19920- case OPERATOR_EQEQ:
19921- case OPERATOR_NOTEQ:
19922- case OPERATOR_LT:
19923- case OPERATOR_LE:
19924- case OPERATOR_GT:
19925- case OPERATOR_GE:
19926- // These return boolean values and must be handled differently.
19927- return false;
19928 case OPERATOR_PLUS:
19929 mpfr_add(real, left_real, right_real, GMP_RNDN);
19930 mpfr_add(imag, left_imag, right_imag, GMP_RNDN);
19931@@ -5218,7 +4738,13 @@
19932 case OPERATOR_XOR:
19933 case OPERATOR_AND:
19934 case OPERATOR_BITCLEAR:
19935- return false;
19936+ case OPERATOR_MOD:
19937+ case OPERATOR_LSHIFT:
19938+ case OPERATOR_RSHIFT:
19939+ mpfr_set_ui(real, 0, GMP_RNDN);
19940+ mpfr_set_ui(imag, 0, GMP_RNDN);
19941+ ret = false;
19942+ break;
19943 case OPERATOR_MULT:
19944 {
19945 // You might think that multiplying two complex numbers would
19946@@ -5371,7 +4897,12 @@
19947 // scale the values to try to avoid this.
19948
19949 if (mpfr_zero_p(right_real) && mpfr_zero_p(right_imag))
19950- error_at(location, "division by zero");
19951+ {
19952+ error_at(location, "division by zero");
19953+ mpfr_set_ui(real, 0, GMP_RNDN);
19954+ mpfr_set_ui(imag, 0, GMP_RNDN);
19955+ break;
19956+ }
19957
19958 mpfr_t rra;
19959 mpfr_t ria;
19960@@ -5502,48 +5033,20 @@
19961 mpfr_clear(ria);
19962 }
19963 break;
19964- case OPERATOR_MOD:
19965- return false;
19966- case OPERATOR_LSHIFT:
19967- case OPERATOR_RSHIFT:
19968- return false;
19969 default:
19970 go_unreachable();
19971 }
19972
19973- Type* type = left_type;
19974- if (type == NULL)
19975- type = right_type;
19976- else if (type != right_type && right_type != NULL)
19977- {
19978- if (type->is_abstract())
19979- type = right_type;
19980- else if (!right_type->is_abstract())
19981- {
19982- // This looks like a type error which should be diagnosed
19983- // elsewhere. Don't do anything here, to avoid an unhelpful
19984- // chain of error messages.
19985- return true;
19986- }
19987- }
19988+ mpfr_clear(left_real);
19989+ mpfr_clear(left_imag);
19990+ mpfr_clear(right_real);
19991+ mpfr_clear(right_imag);
19992
19993- if (type != NULL && !type->is_abstract())
19994- {
19995- if ((type != left_type
19996- && !Complex_expression::check_constant(left_real, left_imag,
19997- type, location))
19998- || (type != right_type
19999- && !Complex_expression::check_constant(right_real, right_imag,
20000- type, location))
20001- || !Complex_expression::check_constant(real, imag, type,
20002- location))
20003- {
20004- mpfr_set_ui(real, 0, GMP_RNDN);
20005- mpfr_set_ui(imag, 0, GMP_RNDN);
20006- }
20007- }
20008+ nc->set_complex(NULL, real, imag);
20009+ mpfr_clear(real);
20010+ mpfr_clear(imag);
20011
20012- return true;
20013+ return ret;
20014 }
20015
20016 // Lower a binary expression. We have to evaluate constant
20017@@ -5566,290 +5069,36 @@
20018 || op == OPERATOR_GT
20019 || op == OPERATOR_GE);
20020
20021- // Integer constant expressions.
20022+ // Numeric constant expressions.
20023 {
20024- mpz_t left_val;
20025- mpz_init(left_val);
20026- Type* left_type;
20027- mpz_t right_val;
20028- mpz_init(right_val);
20029- Type* right_type;
20030- if (left->integer_constant_value(false, left_val, &left_type)
20031- && right->integer_constant_value(false, right_val, &right_type))
20032+ Numeric_constant left_nc;
20033+ Numeric_constant right_nc;
20034+ if (left->numeric_constant_value(&left_nc)
20035+ && right->numeric_constant_value(&right_nc))
20036 {
20037- Expression* ret = NULL;
20038- if (left_type != right_type
20039- && left_type != NULL
20040- && !left_type->is_abstract()
20041- && right_type != NULL
20042- && !right_type->is_abstract()
20043- && left_type->base() != right_type->base()
20044- && op != OPERATOR_LSHIFT
20045- && op != OPERATOR_RSHIFT)
20046+ if (is_comparison)
20047 {
20048- // May be a type error--let it be diagnosed later.
20049- return this;
20050+ bool result;
20051+ if (!Binary_expression::compare_constant(op, &left_nc,
20052+ &right_nc, location,
20053+ &result))
20054+ return this;
20055+ return Expression::make_cast(Type::lookup_bool_type(),
20056+ Expression::make_boolean(result,
20057+ location),
20058+ location);
20059 }
20060- else if (is_comparison)
20061- {
20062- bool b = Binary_expression::compare_integer(op, left_val,
20063- right_val);
20064- ret = Expression::make_cast(Type::lookup_bool_type(),
20065- Expression::make_boolean(b, location),
20066- location);
20067- }
20068 else
20069 {
20070- mpz_t val;
20071- mpz_init(val);
20072-
20073- if (Binary_expression::eval_integer(op, left_type, left_val,
20074- right_type, right_val,
20075- location, val))
20076- {
20077- go_assert(op != OPERATOR_OROR && op != OPERATOR_ANDAND);
20078- Type* type;
20079- if (op == OPERATOR_LSHIFT || op == OPERATOR_RSHIFT)
20080- type = left_type;
20081- else if (left_type == NULL)
20082- type = right_type;
20083- else if (right_type == NULL)
20084- type = left_type;
20085- else if (!left_type->is_abstract()
20086- && left_type->named_type() != NULL)
20087- type = left_type;
20088- else if (!right_type->is_abstract()
20089- && right_type->named_type() != NULL)
20090- type = right_type;
20091- else if (!left_type->is_abstract())
20092- type = left_type;
20093- else if (!right_type->is_abstract())
20094- type = right_type;
20095- else if (left_type->float_type() != NULL)
20096- type = left_type;
20097- else if (right_type->float_type() != NULL)
20098- type = right_type;
20099- else if (left_type->complex_type() != NULL)
20100- type = left_type;
20101- else if (right_type->complex_type() != NULL)
20102- type = right_type;
20103- else
20104- type = left_type;
20105-
20106- bool is_character = false;
20107- if (type == NULL)
20108- {
20109- Type* t = this->left_->type();
20110- if (t->integer_type() != NULL
20111- && t->integer_type()->is_rune())
20112- is_character = true;
20113- else if (op != OPERATOR_LSHIFT && op != OPERATOR_RSHIFT)
20114- {
20115- t = this->right_->type();
20116- if (t->integer_type() != NULL
20117- && t->integer_type()->is_rune())
20118- is_character = true;
20119- }
20120- }
20121-
20122- if (is_character)
20123- ret = Expression::make_character(&val, type, location);
20124- else
20125- ret = Expression::make_integer(&val, type, location);
20126- }
20127-
20128- mpz_clear(val);
20129+ Numeric_constant nc;
20130+ if (!Binary_expression::eval_constant(op, &left_nc, &right_nc,
20131+ location, &nc))
20132+ return this;
20133+ return nc.expression(location);
20134 }
20135-
20136- if (ret != NULL)
20137- {
20138- mpz_clear(right_val);
20139- mpz_clear(left_val);
20140- return ret;
20141- }
20142 }
20143- mpz_clear(right_val);
20144- mpz_clear(left_val);
20145 }
20146
20147- // Floating point constant expressions.
20148- {
20149- mpfr_t left_val;
20150- mpfr_init(left_val);
20151- Type* left_type;
20152- mpfr_t right_val;
20153- mpfr_init(right_val);
20154- Type* right_type;
20155- if (left->float_constant_value(left_val, &left_type)
20156- && right->float_constant_value(right_val, &right_type))
20157- {
20158- Expression* ret = NULL;
20159- if (left_type != right_type
20160- && left_type != NULL
20161- && right_type != NULL
20162- && left_type->base() != right_type->base()
20163- && op != OPERATOR_LSHIFT
20164- && op != OPERATOR_RSHIFT)
20165- {
20166- // May be a type error--let it be diagnosed later.
20167- return this;
20168- }
20169- else if (is_comparison)
20170- {
20171- bool b = Binary_expression::compare_float(op,
20172- (left_type != NULL
20173- ? left_type
20174- : right_type),
20175- left_val, right_val);
20176- ret = Expression::make_boolean(b, location);
20177- }
20178- else
20179- {
20180- mpfr_t val;
20181- mpfr_init(val);
20182-
20183- if (Binary_expression::eval_float(op, left_type, left_val,
20184- right_type, right_val, val,
20185- location))
20186- {
20187- go_assert(op != OPERATOR_OROR && op != OPERATOR_ANDAND
20188- && op != OPERATOR_LSHIFT && op != OPERATOR_RSHIFT);
20189- Type* type;
20190- if (left_type == NULL)
20191- type = right_type;
20192- else if (right_type == NULL)
20193- type = left_type;
20194- else if (!left_type->is_abstract()
20195- && left_type->named_type() != NULL)
20196- type = left_type;
20197- else if (!right_type->is_abstract()
20198- && right_type->named_type() != NULL)
20199- type = right_type;
20200- else if (!left_type->is_abstract())
20201- type = left_type;
20202- else if (!right_type->is_abstract())
20203- type = right_type;
20204- else if (left_type->float_type() != NULL)
20205- type = left_type;
20206- else if (right_type->float_type() != NULL)
20207- type = right_type;
20208- else
20209- type = left_type;
20210- ret = Expression::make_float(&val, type, location);
20211- }
20212-
20213- mpfr_clear(val);
20214- }
20215-
20216- if (ret != NULL)
20217- {
20218- mpfr_clear(right_val);
20219- mpfr_clear(left_val);
20220- return ret;
20221- }
20222- }
20223- mpfr_clear(right_val);
20224- mpfr_clear(left_val);
20225- }
20226-
20227- // Complex constant expressions.
20228- {
20229- mpfr_t left_real;
20230- mpfr_t left_imag;
20231- mpfr_init(left_real);
20232- mpfr_init(left_imag);
20233- Type* left_type;
20234-
20235- mpfr_t right_real;
20236- mpfr_t right_imag;
20237- mpfr_init(right_real);
20238- mpfr_init(right_imag);
20239- Type* right_type;
20240-
20241- if (left->complex_constant_value(left_real, left_imag, &left_type)
20242- && right->complex_constant_value(right_real, right_imag, &right_type))
20243- {
20244- Expression* ret = NULL;
20245- if (left_type != right_type
20246- && left_type != NULL
20247- && right_type != NULL
20248- && left_type->base() != right_type->base())
20249- {
20250- // May be a type error--let it be diagnosed later.
20251- return this;
20252- }
20253- else if (op == OPERATOR_EQEQ || op == OPERATOR_NOTEQ)
20254- {
20255- bool b = Binary_expression::compare_complex(op,
20256- (left_type != NULL
20257- ? left_type
20258- : right_type),
20259- left_real,
20260- left_imag,
20261- right_real,
20262- right_imag);
20263- ret = Expression::make_boolean(b, location);
20264- }
20265- else
20266- {
20267- mpfr_t real;
20268- mpfr_t imag;
20269- mpfr_init(real);
20270- mpfr_init(imag);
20271-
20272- if (Binary_expression::eval_complex(op, left_type,
20273- left_real, left_imag,
20274- right_type,
20275- right_real, right_imag,
20276- real, imag,
20277- location))
20278- {
20279- go_assert(op != OPERATOR_OROR && op != OPERATOR_ANDAND
20280- && op != OPERATOR_LSHIFT && op != OPERATOR_RSHIFT);
20281- Type* type;
20282- if (left_type == NULL)
20283- type = right_type;
20284- else if (right_type == NULL)
20285- type = left_type;
20286- else if (!left_type->is_abstract()
20287- && left_type->named_type() != NULL)
20288- type = left_type;
20289- else if (!right_type->is_abstract()
20290- && right_type->named_type() != NULL)
20291- type = right_type;
20292- else if (!left_type->is_abstract())
20293- type = left_type;
20294- else if (!right_type->is_abstract())
20295- type = right_type;
20296- else if (left_type->complex_type() != NULL)
20297- type = left_type;
20298- else if (right_type->complex_type() != NULL)
20299- type = right_type;
20300- else
20301- type = left_type;
20302- ret = Expression::make_complex(&real, &imag, type,
20303- location);
20304- }
20305- mpfr_clear(real);
20306- mpfr_clear(imag);
20307- }
20308-
20309- if (ret != NULL)
20310- {
20311- mpfr_clear(left_real);
20312- mpfr_clear(left_imag);
20313- mpfr_clear(right_real);
20314- mpfr_clear(right_imag);
20315- return ret;
20316- }
20317- }
20318-
20319- mpfr_clear(left_real);
20320- mpfr_clear(left_imag);
20321- mpfr_clear(right_real);
20322- mpfr_clear(right_imag);
20323- }
20324-
20325 // String constant expressions.
20326 if (left->type()->is_string_type() && right->type()->is_string_type())
20327 {
20328@@ -5864,79 +5113,15 @@
20329 else if (is_comparison)
20330 {
20331 int cmp = left_string.compare(right_string);
20332- bool r;
20333- switch (op)
20334- {
20335- case OPERATOR_EQEQ:
20336- r = cmp == 0;
20337- break;
20338- case OPERATOR_NOTEQ:
20339- r = cmp != 0;
20340- break;
20341- case OPERATOR_LT:
20342- r = cmp < 0;
20343- break;
20344- case OPERATOR_LE:
20345- r = cmp <= 0;
20346- break;
20347- case OPERATOR_GT:
20348- r = cmp > 0;
20349- break;
20350- case OPERATOR_GE:
20351- r = cmp >= 0;
20352- break;
20353- default:
20354- go_unreachable();
20355- }
20356- return Expression::make_boolean(r, location);
20357+ bool r = Binary_expression::cmp_to_bool(op, cmp);
20358+ return Expression::make_cast(Type::lookup_bool_type(),
20359+ Expression::make_boolean(r,
20360+ location),
20361+ location);
20362 }
20363 }
20364 }
20365
20366- // Special case for shift of a floating point constant.
20367- if (op == OPERATOR_LSHIFT || op == OPERATOR_RSHIFT)
20368- {
20369- mpfr_t left_val;
20370- mpfr_init(left_val);
20371- Type* left_type;
20372- mpz_t right_val;
20373- mpz_init(right_val);
20374- Type* right_type;
20375- if (left->float_constant_value(left_val, &left_type)
20376- && right->integer_constant_value(false, right_val, &right_type)
20377- && mpfr_integer_p(left_val)
20378- && (left_type == NULL
20379- || left_type->is_abstract()
20380- || left_type->integer_type() != NULL))
20381- {
20382- mpz_t left_int;
20383- mpz_init(left_int);
20384- mpfr_get_z(left_int, left_val, GMP_RNDN);
20385-
20386- mpz_t val;
20387- mpz_init(val);
20388-
20389- Expression* ret = NULL;
20390- if (Binary_expression::eval_integer(op, left_type, left_int,
20391- right_type, right_val,
20392- location, val))
20393- ret = Expression::make_integer(&val, left_type, location);
20394-
20395- mpz_clear(left_int);
20396- mpz_clear(val);
20397-
20398- if (ret != NULL)
20399- {
20400- mpfr_clear(left_val);
20401- mpz_clear(right_val);
20402- return ret;
20403- }
20404- }
20405-
20406- mpfr_clear(left_val);
20407- mpz_clear(right_val);
20408- }
20409-
20410 // Lower struct and array comparisons.
20411 if (op == OPERATOR_EQEQ || op == OPERATOR_NOTEQ)
20412 {
20413@@ -6114,156 +5299,32 @@
20414 return Expression::make_cast(unsafe_pointer_type, expr, loc);
20415 }
20416
20417-// Return the integer constant value, if it has one.
20418+// Return the numeric constant value, if it has one.
20419
20420 bool
20421-Binary_expression::do_integer_constant_value(bool iota_is_constant, mpz_t val,
20422- Type** ptype) const
20423+Binary_expression::do_numeric_constant_value(Numeric_constant* nc) const
20424 {
20425- mpz_t left_val;
20426- mpz_init(left_val);
20427- Type* left_type;
20428- if (!this->left_->integer_constant_value(iota_is_constant, left_val,
20429- &left_type))
20430- {
20431- mpz_clear(left_val);
20432- return false;
20433- }
20434+ Operator op = this->op_;
20435
20436- mpz_t right_val;
20437- mpz_init(right_val);
20438- Type* right_type;
20439- if (!this->right_->integer_constant_value(iota_is_constant, right_val,
20440- &right_type))
20441- {
20442- mpz_clear(right_val);
20443- mpz_clear(left_val);
20444- return false;
20445- }
20446+ if (op == OPERATOR_EQEQ
20447+ || op == OPERATOR_NOTEQ
20448+ || op == OPERATOR_LT
20449+ || op == OPERATOR_LE
20450+ || op == OPERATOR_GT
20451+ || op == OPERATOR_GE)
20452+ return false;
20453
20454- bool ret;
20455- if (left_type != right_type
20456- && left_type != NULL
20457- && right_type != NULL
20458- && left_type->base() != right_type->base()
20459- && this->op_ != OPERATOR_RSHIFT
20460- && this->op_ != OPERATOR_LSHIFT)
20461- ret = false;
20462- else
20463- ret = Binary_expression::eval_integer(this->op_, left_type, left_val,
20464- right_type, right_val,
20465- this->location(), val);
20466+ Numeric_constant left_nc;
20467+ if (!this->left_->numeric_constant_value(&left_nc))
20468+ return false;
20469+ Numeric_constant right_nc;
20470+ if (!this->right_->numeric_constant_value(&right_nc))
20471+ return false;
20472
20473- mpz_clear(right_val);
20474- mpz_clear(left_val);
20475-
20476- if (ret)
20477- *ptype = left_type;
20478-
20479- return ret;
20480+ return Binary_expression::eval_constant(op, &left_nc, &right_nc,
20481+ this->location(), nc);
20482 }
20483
20484-// Return the floating point constant value, if it has one.
20485-
20486-bool
20487-Binary_expression::do_float_constant_value(mpfr_t val, Type** ptype) const
20488-{
20489- mpfr_t left_val;
20490- mpfr_init(left_val);
20491- Type* left_type;
20492- if (!this->left_->float_constant_value(left_val, &left_type))
20493- {
20494- mpfr_clear(left_val);
20495- return false;
20496- }
20497-
20498- mpfr_t right_val;
20499- mpfr_init(right_val);
20500- Type* right_type;
20501- if (!this->right_->float_constant_value(right_val, &right_type))
20502- {
20503- mpfr_clear(right_val);
20504- mpfr_clear(left_val);
20505- return false;
20506- }
20507-
20508- bool ret;
20509- if (left_type != right_type
20510- && left_type != NULL
20511- && right_type != NULL
20512- && left_type->base() != right_type->base())
20513- ret = false;
20514- else
20515- ret = Binary_expression::eval_float(this->op_, left_type, left_val,
20516- right_type, right_val,
20517- val, this->location());
20518-
20519- mpfr_clear(left_val);
20520- mpfr_clear(right_val);
20521-
20522- if (ret)
20523- *ptype = left_type;
20524-
20525- return ret;
20526-}
20527-
20528-// Return the complex constant value, if it has one.
20529-
20530-bool
20531-Binary_expression::do_complex_constant_value(mpfr_t real, mpfr_t imag,
20532- Type** ptype) const
20533-{
20534- mpfr_t left_real;
20535- mpfr_t left_imag;
20536- mpfr_init(left_real);
20537- mpfr_init(left_imag);
20538- Type* left_type;
20539- if (!this->left_->complex_constant_value(left_real, left_imag, &left_type))
20540- {
20541- mpfr_clear(left_real);
20542- mpfr_clear(left_imag);
20543- return false;
20544- }
20545-
20546- mpfr_t right_real;
20547- mpfr_t right_imag;
20548- mpfr_init(right_real);
20549- mpfr_init(right_imag);
20550- Type* right_type;
20551- if (!this->right_->complex_constant_value(right_real, right_imag,
20552- &right_type))
20553- {
20554- mpfr_clear(left_real);
20555- mpfr_clear(left_imag);
20556- mpfr_clear(right_real);
20557- mpfr_clear(right_imag);
20558- return false;
20559- }
20560-
20561- bool ret;
20562- if (left_type != right_type
20563- && left_type != NULL
20564- && right_type != NULL
20565- && left_type->base() != right_type->base())
20566- ret = false;
20567- else
20568- ret = Binary_expression::eval_complex(this->op_, left_type,
20569- left_real, left_imag,
20570- right_type,
20571- right_real, right_imag,
20572- real, imag,
20573- this->location());
20574- mpfr_clear(left_real);
20575- mpfr_clear(left_imag);
20576- mpfr_clear(right_real);
20577- mpfr_clear(right_imag);
20578-
20579- if (ret)
20580- *ptype = left_type;
20581-
20582- return ret;
20583-}
20584-
20585 // Note that the value is being discarded.
20586
20587 void
20588@@ -6305,41 +5366,13 @@
20589 case OPERATOR_AND:
20590 case OPERATOR_BITCLEAR:
20591 {
20592- Type* left_type = this->left_->type();
20593- Type* right_type = this->right_->type();
20594- if (left_type->is_error())
20595- return left_type;
20596- else if (right_type->is_error())
20597- return right_type;
20598- else if (!Type::are_compatible_for_binop(left_type, right_type))
20599- {
20600- this->report_error(_("incompatible types in binary expression"));
20601- return Type::make_error_type();
20602- }
20603- else if (!left_type->is_abstract() && left_type->named_type() != NULL)
20604- return left_type;
20605- else if (!right_type->is_abstract() && right_type->named_type() != NULL)
20606- return right_type;
20607- else if (!left_type->is_abstract())
20608- return left_type;
20609- else if (!right_type->is_abstract())
20610- return right_type;
20611- else if (left_type->complex_type() != NULL)
20612- return left_type;
20613- else if (right_type->complex_type() != NULL)
20614- return right_type;
20615- else if (left_type->float_type() != NULL)
20616- return left_type;
20617- else if (right_type->float_type() != NULL)
20618- return right_type;
20619- else if (left_type->integer_type() != NULL
20620- && left_type->integer_type()->is_rune())
20621- return left_type;
20622- else if (right_type->integer_type() != NULL
20623- && right_type->integer_type()->is_rune())
20624- return right_type;
20625- else
20626- return left_type;
20627+ Type* type;
20628+ if (!Binary_expression::operation_type(this->op_,
20629+ this->left_->type(),
20630+ this->right_->type(),
20631+ &type))
20632+ return Type::make_error_type();
20633+ return type;
20634 }
20635
20636 case OPERATOR_LSHIFT:
20637@@ -6604,21 +5637,25 @@
20638 this->report_error(_("shift count not unsigned integer"));
20639 else
20640 {
20641- mpz_t val;
20642- mpz_init(val);
20643- Type* type;
20644- if (this->right_->integer_constant_value(true, val, &type))
20645+ Numeric_constant nc;
20646+ if (this->right_->numeric_constant_value(&nc))
20647 {
20648- if (mpz_sgn(val) < 0)
20649+ mpz_t val;
20650+ if (!nc.to_int(&val))
20651+ this->report_error(_("shift count not unsigned integer"));
20652+ else
20653 {
20654- this->report_error(_("negative shift count"));
20655- mpz_set_ui(val, 0);
20656- Location rloc = this->right_->location();
20657- this->right_ = Expression::make_integer(&val, right_type,
20658- rloc);
20659+ if (mpz_sgn(val) < 0)
20660+ {
20661+ this->report_error(_("negative shift count"));
20662+ mpz_set_ui(val, 0);
20663+ Location rloc = this->right_->location();
20664+ this->right_ = Expression::make_integer(&val, right_type,
20665+ rloc);
20666+ }
20667+ mpz_clear(val);
20668 }
20669 }
20670- mpz_clear(val);
20671 }
20672 }
20673 }
20674@@ -6637,6 +5674,7 @@
20675 enum tree_code code;
20676 bool use_left_type = true;
20677 bool is_shift_op = false;
20678+ bool is_idiv_op = false;
20679 switch (this->op_)
20680 {
20681 case OPERATOR_EQEQ:
20682@@ -6679,11 +5717,15 @@
20683 if (t->float_type() != NULL || t->complex_type() != NULL)
20684 code = RDIV_EXPR;
20685 else
20686- code = TRUNC_DIV_EXPR;
20687+ {
20688+ code = TRUNC_DIV_EXPR;
20689+ is_idiv_op = true;
20690+ }
20691 }
20692 break;
20693 case OPERATOR_MOD:
20694 code = TRUNC_MOD_EXPR;
20695+ is_idiv_op = true;
20696 break;
20697 case OPERATOR_LSHIFT:
20698 code = LSHIFT_EXPR;
20699@@ -6704,6 +5746,7 @@
20700 go_unreachable();
20701 }
20702
20703+ location_t gccloc = this->location().gcc_location();
20704 tree type = use_left_type ? TREE_TYPE(left) : TREE_TYPE(right);
20705
20706 if (this->left_->type()->is_string_type())
20707@@ -6731,28 +5774,27 @@
20708 }
20709
20710 tree eval_saved = NULL_TREE;
20711- if (is_shift_op)
20712+ if (is_shift_op
20713+ || (is_idiv_op && (go_check_divide_zero || go_check_divide_overflow)))
20714 {
20715 // Make sure the values are evaluated.
20716- if (!DECL_P(left) && TREE_SIDE_EFFECTS(left))
20717+ if (!DECL_P(left))
20718 {
20719 left = save_expr(left);
20720 eval_saved = left;
20721 }
20722- if (!DECL_P(right) && TREE_SIDE_EFFECTS(right))
20723+ if (!DECL_P(right))
20724 {
20725 right = save_expr(right);
20726 if (eval_saved == NULL_TREE)
20727 eval_saved = right;
20728 else
20729- eval_saved = fold_build2_loc(this->location().gcc_location(),
20730- COMPOUND_EXPR,
20731+ eval_saved = fold_build2_loc(gccloc, COMPOUND_EXPR,
20732 void_type_node, eval_saved, right);
20733 }
20734 }
20735
20736- tree ret = fold_build2_loc(this->location().gcc_location(),
20737- code,
20738+ tree ret = fold_build2_loc(gccloc, code,
20739 compute_type != NULL_TREE ? compute_type : type,
20740 left, right);
20741
20742@@ -6770,41 +5812,118 @@
20743 tree compare = fold_build2(LT_EXPR, boolean_type_node, right,
20744 build_int_cst_type(TREE_TYPE(right), bits));
20745
20746- tree overflow_result = fold_convert_loc(this->location().gcc_location(),
20747- TREE_TYPE(left),
20748+ tree overflow_result = fold_convert_loc(gccloc, TREE_TYPE(left),
20749 integer_zero_node);
20750 if (this->op_ == OPERATOR_RSHIFT
20751 && !this->left_->type()->integer_type()->is_unsigned())
20752 {
20753 tree neg =
20754- fold_build2_loc(this->location().gcc_location(), LT_EXPR,
20755- boolean_type_node, left,
20756- fold_convert_loc(this->location().gcc_location(),
20757- TREE_TYPE(left),
20758+ fold_build2_loc(gccloc, LT_EXPR, boolean_type_node,
20759+ left,
20760+ fold_convert_loc(gccloc, TREE_TYPE(left),
20761 integer_zero_node));
20762 tree neg_one =
20763- fold_build2_loc(this->location().gcc_location(),
20764- MINUS_EXPR, TREE_TYPE(left),
20765- fold_convert_loc(this->location().gcc_location(),
20766- TREE_TYPE(left),
20767+ fold_build2_loc(gccloc, MINUS_EXPR, TREE_TYPE(left),
20768+ fold_convert_loc(gccloc, TREE_TYPE(left),
20769 integer_zero_node),
20770- fold_convert_loc(this->location().gcc_location(),
20771- TREE_TYPE(left),
20772+ fold_convert_loc(gccloc, TREE_TYPE(left),
20773 integer_one_node));
20774 overflow_result =
20775- fold_build3_loc(this->location().gcc_location(), COND_EXPR,
20776- TREE_TYPE(left), neg, neg_one,
20777- overflow_result);
20778+ fold_build3_loc(gccloc, COND_EXPR, TREE_TYPE(left),
20779+ neg, neg_one, overflow_result);
20780 }
20781
20782- ret = fold_build3_loc(this->location().gcc_location(), COND_EXPR,
20783- TREE_TYPE(left), compare, ret, overflow_result);
20784+ ret = fold_build3_loc(gccloc, COND_EXPR, TREE_TYPE(left),
20785+ compare, ret, overflow_result);
20786
20787 if (eval_saved != NULL_TREE)
20788- ret = fold_build2_loc(this->location().gcc_location(), COMPOUND_EXPR,
20789- TREE_TYPE(ret), eval_saved, ret);
20790+ ret = fold_build2_loc(gccloc, COMPOUND_EXPR, TREE_TYPE(ret),
20791+ eval_saved, ret);
20792 }
20793
20794+ // Add checks for division by zero and division overflow as needed.
20795+ if (is_idiv_op)
20796+ {
20797+ if (go_check_divide_zero)
20798+ {
20799+ // right == 0
20800+ tree check = fold_build2_loc(gccloc, EQ_EXPR, boolean_type_node,
20801+ right,
20802+ fold_convert_loc(gccloc,
20803+ TREE_TYPE(right),
20804+ integer_zero_node));
20805+
20806+ // __go_runtime_error(RUNTIME_ERROR_DIVISION_BY_ZERO), 0
20807+ int errcode = RUNTIME_ERROR_DIVISION_BY_ZERO;
20808+ tree panic = fold_build2_loc(gccloc, COMPOUND_EXPR, TREE_TYPE(ret),
20809+ Gogo::runtime_error(errcode,
20810+ this->location()),
20811+ fold_convert_loc(gccloc, TREE_TYPE(ret),
20812+ integer_zero_node));
20813+
20814+ // right == 0 ? (__go_runtime_error(...), 0) : ret
20815+ ret = fold_build3_loc(gccloc, COND_EXPR, TREE_TYPE(ret),
20816+ check, panic, ret);
20817+ }
20818+
20819+ if (go_check_divide_overflow)
20820+ {
20821+ // right == -1
20822+ // FIXME: It would be nice to say that this test is expected
20823+ // to return false.
20824+ tree m1 = integer_minus_one_node;
20825+ tree check = fold_build2_loc(gccloc, EQ_EXPR, boolean_type_node,
20826+ right,
20827+ fold_convert_loc(gccloc,
20828+ TREE_TYPE(right),
20829+ m1));
20830+
20831+ tree overflow;
20832+ if (TYPE_UNSIGNED(TREE_TYPE(ret)))
20833+ {
20834+ // An unsigned -1 is the largest possible number, so
20835+ // dividing is always 1 or 0.
20836+ tree cmp = fold_build2_loc(gccloc, EQ_EXPR, boolean_type_node,
20837+ left, right);
20838+ if (this->op_ == OPERATOR_DIV)
20839+ overflow = fold_build3_loc(gccloc, COND_EXPR, TREE_TYPE(ret),
20840+ cmp,
20841+ fold_convert_loc(gccloc,
20842+ TREE_TYPE(ret),
20843+ integer_one_node),
20844+ fold_convert_loc(gccloc,
20845+ TREE_TYPE(ret),
20846+ integer_zero_node));
20847+ else
20848+ overflow = fold_build3_loc(gccloc, COND_EXPR, TREE_TYPE(ret),
20849+ cmp,
20850+ fold_convert_loc(gccloc,
20851+ TREE_TYPE(ret),
20852+ integer_zero_node),
20853+ left);
20854+ }
20855+ else
20856+ {
20857+ // Computing left / -1 is the same as computing - left,
20858+ // which does not overflow since Go sets -fwrapv.
20859+ if (this->op_ == OPERATOR_DIV)
20860+ overflow = fold_build1_loc(gccloc, NEGATE_EXPR, TREE_TYPE(left),
20861+ left);
20862+ else
20863+ overflow = integer_zero_node;
20864+ }
20865+ overflow = fold_convert_loc(gccloc, TREE_TYPE(ret), overflow);
20866+
20867+ // right == -1 ? - left : ret
20868+ ret = fold_build3_loc(gccloc, COND_EXPR, TREE_TYPE(ret),
20869+ check, overflow, ret);
20870+ }
20871+
20872+ if (eval_saved != NULL_TREE)
20873+ ret = fold_build2_loc(gccloc, COMPOUND_EXPR, TREE_TYPE(ret),
20874+ eval_saved, ret);
20875+ }
20876+
20877 return ret;
20878 }
20879
20880@@ -7094,7 +6213,9 @@
20881 make_tmp = NULL_TREE;
20882 arg = right_tree;
20883 }
20884- else if (TREE_ADDRESSABLE(TREE_TYPE(right_tree)) || DECL_P(right_tree))
20885+ else if (TREE_ADDRESSABLE(TREE_TYPE(right_tree))
20886+ || (TREE_CODE(right_tree) != CONST_DECL
20887+ && DECL_P(right_tree)))
20888 {
20889 make_tmp = NULL_TREE;
20890 arg = build_fold_addr_expr_loc(location.gcc_location(), right_tree);
20891@@ -7390,14 +6511,8 @@
20892 do_is_constant() const;
20893
20894 bool
20895- do_integer_constant_value(bool, mpz_t, Type**) const;
20896+ do_numeric_constant_value(Numeric_constant*) const;
20897
20898- bool
20899- do_float_constant_value(mpfr_t, Type**) const;
20900-
20901- bool
20902- do_complex_constant_value(mpfr_t, mpfr_t, Type**) const;
20903-
20904 void
20905 do_discarding_value();
20906
20907@@ -7619,7 +6734,7 @@
20908 if (this->code_ == BUILTIN_LEN || this->code_ == BUILTIN_CAP)
20909 {
20910 Expression* arg = this->one_arg();
20911- if (!arg->is_constant())
20912+ if (arg != NULL && !arg->is_constant())
20913 {
20914 Find_call_expression find_call;
20915 Expression::traverse(&arg, &find_call);
20916@@ -7628,37 +6743,9 @@
20917 }
20918 }
20919
20920- mpz_t ival;
20921- mpz_init(ival);
20922- Type* type;
20923- if (this->integer_constant_value(true, ival, &type))
20924- {
20925- Expression* ret = Expression::make_integer(&ival, type, loc);
20926- mpz_clear(ival);
20927- return ret;
20928- }
20929- mpz_clear(ival);
20930-
20931- mpfr_t rval;
20932- mpfr_init(rval);
20933- if (this->float_constant_value(rval, &type))
20934- {
20935- Expression* ret = Expression::make_float(&rval, type, loc);
20936- mpfr_clear(rval);
20937- return ret;
20938- }
20939-
20940- mpfr_t imag;
20941- mpfr_init(imag);
20942- if (this->complex_constant_value(rval, imag, &type))
20943- {
20944- Expression* ret = Expression::make_complex(&rval, &imag, type, loc);
20945- mpfr_clear(rval);
20946- mpfr_clear(imag);
20947- return ret;
20948- }
20949- mpfr_clear(rval);
20950- mpfr_clear(imag);
20951+ Numeric_constant nc;
20952+ if (this->numeric_constant_value(&nc))
20953+ return nc.expression(loc);
20954 }
20955
20956 switch (this->code_)
20957@@ -7906,43 +6993,14 @@
20958 return true;
20959
20960 // Check for a floating point constant with integer value.
20961- mpfr_t fval;
20962- mpfr_init(fval);
20963-
20964- Type* dummy;
20965- if (e->float_constant_value(fval, &dummy) && mpfr_integer_p(fval))
20966+ Numeric_constant nc;
20967+ mpz_t ival;
20968+ if (e->numeric_constant_value(&nc) && nc.to_int(&ival))
20969 {
20970- mpz_t ival;
20971- mpz_init(ival);
20972-
20973- bool ok = false;
20974-
20975- mpfr_clear_overflow();
20976- mpfr_clear_erangeflag();
20977- mpfr_get_z(ival, fval, GMP_RNDN);
20978- if (!mpfr_overflow_p()
20979- && !mpfr_erangeflag_p()
20980- && mpz_sgn(ival) >= 0)
20981- {
20982- Named_type* ntype = Type::lookup_integer_type("int");
20983- Integer_type* inttype = ntype->integer_type();
20984- mpz_t max;
20985- mpz_init_set_ui(max, 1);
20986- mpz_mul_2exp(max, max, inttype->bits() - 1);
20987- ok = mpz_cmp(ival, max) < 0;
20988- mpz_clear(max);
20989- }
20990 mpz_clear(ival);
20991-
20992- if (ok)
20993- {
20994- mpfr_clear(fval);
20995- return true;
20996- }
20997+ return true;
20998 }
20999
21000- mpfr_clear(fval);
21001-
21002 return false;
21003 }
21004
21005@@ -7996,7 +7054,7 @@
21006 Builtin_call_expression::one_arg() const
21007 {
21008 const Expression_list* args = this->args();
21009- if (args->size() != 1)
21010+ if (args == NULL || args->size() != 1)
21011 return NULL;
21012 return args->front();
21013 }
21014@@ -8073,12 +7131,10 @@
21015 return false;
21016 }
21017
21018-// Return an integer constant value if possible.
21019+// Return a numeric constant if possible.
21020
21021 bool
21022-Builtin_call_expression::do_integer_constant_value(bool iota_is_constant,
21023- mpz_t val,
21024- Type** ptype) const
21025+Builtin_call_expression::do_numeric_constant_value(Numeric_constant* nc) const
21026 {
21027 if (this->code_ == BUILTIN_LEN
21028 || this->code_ == BUILTIN_CAP)
21029@@ -8093,8 +7149,8 @@
21030 std::string sval;
21031 if (arg->string_constant_value(&sval))
21032 {
21033- mpz_set_ui(val, sval.length());
21034- *ptype = Type::lookup_integer_type("int");
21035+ nc->set_unsigned_long(Type::lookup_integer_type("int"),
21036+ sval.length());
21037 return true;
21038 }
21039 }
21040@@ -8111,13 +7167,15 @@
21041 return false;
21042 Expression* e = arg_type->array_type()->length();
21043 this->seen_ = true;
21044- bool r = e->integer_constant_value(iota_is_constant, val, ptype);
21045+ bool r = e->numeric_constant_value(nc);
21046 this->seen_ = false;
21047 if (r)
21048 {
21049- *ptype = Type::lookup_integer_type("int");
21050- return true;
21051+ if (!nc->set_type(Type::lookup_integer_type("int"), false,
21052+ this->location()))
21053+ r = false;
21054 }
21055+ return r;
21056 }
21057 }
21058 else if (this->code_ == BUILTIN_SIZEOF
21059@@ -8158,8 +7216,8 @@
21060 else
21061 go_unreachable();
21062
21063- mpz_set_ui(val, ret);
21064- *ptype = NULL;
21065+ nc->set_unsigned_long(Type::lookup_integer_type("uintptr"),
21066+ static_cast<unsigned long>(ret));
21067 return true;
21068 }
21069 else if (this->code_ == BUILTIN_OFFSETOF)
21070@@ -8181,88 +7239,73 @@
21071 farg->field_index(),
21072 &offset))
21073 return false;
21074- mpz_set_ui(val, offset);
21075+ nc->set_unsigned_long(Type::lookup_integer_type("uintptr"),
21076+ static_cast<unsigned long>(offset));
21077 return true;
21078 }
21079- return false;
21080-}
21081-
21082-// Return a floating point constant value if possible.
21083-
21084-bool
21085-Builtin_call_expression::do_float_constant_value(mpfr_t val,
21086- Type** ptype) const
21087-{
21088- if (this->code_ == BUILTIN_REAL || this->code_ == BUILTIN_IMAG)
21089+ else if (this->code_ == BUILTIN_REAL || this->code_ == BUILTIN_IMAG)
21090 {
21091 Expression* arg = this->one_arg();
21092 if (arg == NULL)
21093 return false;
21094
21095+ Numeric_constant argnc;
21096+ if (!arg->numeric_constant_value(&argnc))
21097+ return false;
21098+
21099 mpfr_t real;
21100 mpfr_t imag;
21101- mpfr_init(real);
21102- mpfr_init(imag);
21103+ if (!argnc.to_complex(&real, &imag))
21104+ return false;
21105
21106- bool ret = false;
21107- Type* type;
21108- if (arg->complex_constant_value(real, imag, &type))
21109- {
21110- if (this->code_ == BUILTIN_REAL)
21111- mpfr_set(val, real, GMP_RNDN);
21112- else
21113- mpfr_set(val, imag, GMP_RNDN);
21114- *ptype = Builtin_call_expression::real_imag_type(type);
21115- ret = true;
21116- }
21117-
21118- mpfr_clear(real);
21119- mpfr_clear(imag);
21120- return ret;
21121+ Type* type = Builtin_call_expression::real_imag_type(argnc.type());
21122+ if (this->code_ == BUILTIN_REAL)
21123+ nc->set_float(type, real);
21124+ else
21125+ nc->set_float(type, imag);
21126+ return true;
21127 }
21128-
21129- return false;
21130-}
21131-
21132-// Return a complex constant value if possible.
21133-
21134-bool
21135-Builtin_call_expression::do_complex_constant_value(mpfr_t real, mpfr_t imag,
21136- Type** ptype) const
21137-{
21138- if (this->code_ == BUILTIN_COMPLEX)
21139+ else if (this->code_ == BUILTIN_COMPLEX)
21140 {
21141 const Expression_list* args = this->args();
21142 if (args == NULL || args->size() != 2)
21143 return false;
21144
21145+ Numeric_constant rnc;
21146+ if (!args->front()->numeric_constant_value(&rnc))
21147+ return false;
21148+ Numeric_constant inc;
21149+ if (!args->back()->numeric_constant_value(&inc))
21150+ return false;
21151+
21152+ if (rnc.type() != NULL
21153+ && !rnc.type()->is_abstract()
21154+ && inc.type() != NULL
21155+ && !inc.type()->is_abstract()
21156+ && !Type::are_identical(rnc.type(), inc.type(), false, NULL))
21157+ return false;
21158+
21159 mpfr_t r;
21160- mpfr_init(r);
21161- Type* rtype;
21162- if (!args->front()->float_constant_value(r, &rtype))
21163+ if (!rnc.to_float(&r))
21164+ return false;
21165+ mpfr_t i;
21166+ if (!inc.to_float(&i))
21167 {
21168 mpfr_clear(r);
21169 return false;
21170 }
21171
21172- mpfr_t i;
21173- mpfr_init(i);
21174+ Type* arg_type = rnc.type();
21175+ if (arg_type == NULL || arg_type->is_abstract())
21176+ arg_type = inc.type();
21177
21178- bool ret = false;
21179- Type* itype;
21180- if (args->back()->float_constant_value(i, &itype)
21181- && Type::are_identical(rtype, itype, false, NULL))
21182- {
21183- mpfr_set(real, r, GMP_RNDN);
21184- mpfr_set(imag, i, GMP_RNDN);
21185- *ptype = Builtin_call_expression::complex_type(rtype);
21186- ret = true;
21187- }
21188+ Type* type = Builtin_call_expression::complex_type(arg_type);
21189+ nc->set_complex(type, r, i);
21190
21191 mpfr_clear(r);
21192 mpfr_clear(i);
21193
21194- return ret;
21195+ return true;
21196 }
21197
21198 return false;
21199@@ -8330,10 +7373,12 @@
21200 case BUILTIN_CAP:
21201 case BUILTIN_COPY:
21202 case BUILTIN_LEN:
21203+ return Type::lookup_integer_type("int");
21204+
21205 case BUILTIN_ALIGNOF:
21206 case BUILTIN_OFFSETOF:
21207 case BUILTIN_SIZEOF:
21208- return Type::lookup_integer_type("int");
21209+ return Type::lookup_integer_type("uintptr");
21210
21211 case BUILTIN_CLOSE:
21212 case BUILTIN_DELETE:
21213@@ -8461,15 +7506,19 @@
21214 {
21215 if (atype->integer_type() != NULL)
21216 {
21217- mpz_t val;
21218- mpz_init(val);
21219- Type* dummy;
21220- if (this->integer_constant_value(true, val, &dummy)
21221- && mpz_sgn(val) >= 0)
21222- want_type = Type::lookup_integer_type("uint64");
21223- else
21224+ Numeric_constant nc;
21225+ if (this->numeric_constant_value(&nc))
21226+ {
21227+ mpz_t val;
21228+ if (nc.to_int(&val))
21229+ {
21230+ if (mpz_sgn(val) >= 0)
21231+ want_type = Type::lookup_integer_type("uint64");
21232+ mpz_clear(val);
21233+ }
21234+ }
21235+ if (want_type == NULL)
21236 want_type = Type::lookup_integer_type("int64");
21237- mpz_clear(val);
21238 }
21239 else if (atype->float_type() != NULL)
21240 want_type = Type::lookup_float_type("float64");
21241@@ -8521,6 +7570,8 @@
21242 void
21243 Builtin_call_expression::do_check_types(Gogo*)
21244 {
21245+ if (this->is_error_expression())
21246+ return;
21247 switch (this->code_)
21248 {
21249 case BUILTIN_INVALID:
21250@@ -9148,20 +8199,17 @@
21251 case BUILTIN_OFFSETOF:
21252 case BUILTIN_ALIGNOF:
21253 {
21254- mpz_t val;
21255- mpz_init(val);
21256- Type* dummy;
21257- bool b = this->integer_constant_value(true, val, &dummy);
21258- if (!b)
21259+ Numeric_constant nc;
21260+ unsigned long val;
21261+ if (!this->numeric_constant_value(&nc)
21262+ || nc.to_unsigned_long(&val) != Numeric_constant::NC_UL_VALID)
21263 {
21264 go_assert(saw_errors());
21265 return error_mark_node;
21266 }
21267- Type* int_type = Type::lookup_integer_type("int");
21268- tree type = type_to_tree(int_type->get_backend(gogo));
21269- tree ret = Expression::integer_constant_tree(val, type);
21270- mpz_clear(val);
21271- return ret;
21272+ Type* uintptr_type = Type::lookup_integer_type("uintptr");
21273+ tree type = type_to_tree(uintptr_type->get_backend(gogo));
21274+ return build_int_cst(type, val);
21275 }
21276
21277 case BUILTIN_COPY:
21278@@ -9376,51 +8424,38 @@
21279 void
21280 Builtin_call_expression::do_export(Export* exp) const
21281 {
21282- bool ok = false;
21283+ Numeric_constant nc;
21284+ if (!this->numeric_constant_value(&nc))
21285+ {
21286+ error_at(this->location(), "value is not constant");
21287+ return;
21288+ }
21289
21290- mpz_t val;
21291- mpz_init(val);
21292- Type* dummy;
21293- if (this->integer_constant_value(true, val, &dummy))
21294+ if (nc.is_int())
21295 {
21296+ mpz_t val;
21297+ nc.get_int(&val);
21298 Integer_expression::export_integer(exp, val);
21299- ok = true;
21300+ mpz_clear(val);
21301 }
21302- mpz_clear(val);
21303-
21304- if (!ok)
21305+ else if (nc.is_float())
21306 {
21307 mpfr_t fval;
21308- mpfr_init(fval);
21309- if (this->float_constant_value(fval, &dummy))
21310- {
21311- Float_expression::export_float(exp, fval);
21312- ok = true;
21313- }
21314+ nc.get_float(&fval);
21315+ Float_expression::export_float(exp, fval);
21316 mpfr_clear(fval);
21317 }
21318-
21319- if (!ok)
21320+ else if (nc.is_complex())
21321 {
21322 mpfr_t real;
21323 mpfr_t imag;
21324- mpfr_init(real);
21325- mpfr_init(imag);
21326- if (this->complex_constant_value(real, imag, &dummy))
21327- {
21328- Complex_expression::export_complex(exp, real, imag);
21329- ok = true;
21330- }
21331+ Complex_expression::export_complex(exp, real, imag);
21332 mpfr_clear(real);
21333 mpfr_clear(imag);
21334 }
21335+ else
21336+ go_unreachable();
21337
21338- if (!ok)
21339- {
21340- error_at(this->location(), "value is not constant");
21341- return;
21342- }
21343-
21344 // A trailing space lets us reliably identify the end of the number.
21345 exp->write_c_string(" ");
21346 }
21347@@ -9635,7 +8670,14 @@
21348 new_args->push_back(*pa);
21349 else if (this->is_varargs_)
21350 {
21351- this->report_error(_("too many arguments"));
21352+ if ((*pa)->type()->is_slice_type())
21353+ this->report_error(_("too many arguments"));
21354+ else
21355+ {
21356+ error_at(this->location(),
21357+ _("invalid use of %<...%> with non-slice"));
21358+ this->set_is_error();
21359+ }
21360 return;
21361 }
21362 else
21363@@ -9880,6 +8922,9 @@
21364 void
21365 Call_expression::do_check_types(Gogo*)
21366 {
21367+ if (this->classification() == EXPRESSION_ERROR)
21368+ return;
21369+
21370 Function_type* fntype = this->get_function_type();
21371 if (fntype == NULL)
21372 {
21373@@ -9915,7 +8960,17 @@
21374 }
21375
21376 // Note that varargs was handled by the lower_varargs() method, so
21377- // we don't have to worry about it here.
21378+ // we don't have to worry about it here unless something is wrong.
21379+ if (this->is_varargs_ && !this->varargs_are_lowered_)
21380+ {
21381+ if (!fntype->is_varargs())
21382+ {
21383+ error_at(this->location(),
21384+ _("invalid use of %<...%> calling non-variadic function"));
21385+ this->set_is_error();
21386+ return;
21387+ }
21388+ }
21389
21390 const Typed_identifier_list* parameters = fntype->parameters();
21391 if (this->args_ == NULL)
21392@@ -10197,7 +9252,7 @@
21393 ref->set_is_lvalue();
21394 tree temp_tree = ref->get_tree(context);
21395 if (temp_tree == error_mark_node)
21396- continue;
21397+ return error_mark_node;
21398
21399 tree val_tree = build3_loc(loc.gcc_location(), COMPONENT_REF,
21400 TREE_TYPE(field), call_tree, field, NULL_TREE);
21401@@ -10660,16 +9715,14 @@
21402 unsigned int int_bits =
21403 Type::lookup_integer_type("int")->integer_type()->bits();
21404
21405- Type* dummy;
21406+ Numeric_constant lvalnc;
21407 mpz_t lval;
21408- mpz_init(lval);
21409 bool lval_valid = (array_type->length() != NULL
21410- && array_type->length()->integer_constant_value(true,
21411- lval,
21412- &dummy));
21413+ && array_type->length()->numeric_constant_value(&lvalnc)
21414+ && lvalnc.to_int(&lval));
21415+ Numeric_constant inc;
21416 mpz_t ival;
21417- mpz_init(ival);
21418- if (this->start_->integer_constant_value(true, ival, &dummy))
21419+ if (this->start_->numeric_constant_value(&inc) && inc.to_int(&ival))
21420 {
21421 if (mpz_sgn(ival) < 0
21422 || mpz_sizeinbase(ival, 2) >= int_bits
21423@@ -10681,22 +9734,26 @@
21424 error_at(this->start_->location(), "array index out of bounds");
21425 this->set_is_error();
21426 }
21427+ mpz_clear(ival);
21428 }
21429 if (this->end_ != NULL && !this->end_->is_nil_expression())
21430 {
21431- if (this->end_->integer_constant_value(true, ival, &dummy))
21432+ Numeric_constant enc;
21433+ mpz_t eval;
21434+ if (this->end_->numeric_constant_value(&enc) && enc.to_int(&eval))
21435 {
21436- if (mpz_sgn(ival) < 0
21437- || mpz_sizeinbase(ival, 2) >= int_bits
21438- || (lval_valid && mpz_cmp(ival, lval) > 0))
21439+ if (mpz_sgn(eval) < 0
21440+ || mpz_sizeinbase(eval, 2) >= int_bits
21441+ || (lval_valid && mpz_cmp(eval, lval) > 0))
21442 {
21443 error_at(this->end_->location(), "array index out of bounds");
21444 this->set_is_error();
21445 }
21446+ mpz_clear(eval);
21447 }
21448 }
21449- mpz_clear(ival);
21450- mpz_clear(lval);
21451+ if (lval_valid)
21452+ mpz_clear(lval);
21453
21454 // A slice of an array requires an addressable array. A slice of a
21455 // slice is always possible.
21456@@ -11071,10 +10128,9 @@
21457 std::string sval;
21458 bool sval_valid = this->string_->string_constant_value(&sval);
21459
21460+ Numeric_constant inc;
21461 mpz_t ival;
21462- mpz_init(ival);
21463- Type* dummy;
21464- if (this->start_->integer_constant_value(true, ival, &dummy))
21465+ if (this->start_->numeric_constant_value(&inc) && inc.to_int(&ival))
21466 {
21467 if (mpz_sgn(ival) < 0
21468 || (sval_valid && mpz_cmp_ui(ival, sval.length()) >= 0))
21469@@ -11082,20 +10138,23 @@
21470 error_at(this->start_->location(), "string index out of bounds");
21471 this->set_is_error();
21472 }
21473+ mpz_clear(ival);
21474 }
21475 if (this->end_ != NULL && !this->end_->is_nil_expression())
21476 {
21477- if (this->end_->integer_constant_value(true, ival, &dummy))
21478+ Numeric_constant enc;
21479+ mpz_t eval;
21480+ if (this->end_->numeric_constant_value(&enc) && enc.to_int(&eval))
21481 {
21482- if (mpz_sgn(ival) < 0
21483- || (sval_valid && mpz_cmp_ui(ival, sval.length()) > 0))
21484+ if (mpz_sgn(eval) < 0
21485+ || (sval_valid && mpz_cmp_ui(eval, sval.length()) > 0))
21486 {
21487 error_at(this->end_->location(), "string index out of bounds");
21488 this->set_is_error();
21489 }
21490+ mpz_clear(eval);
21491 }
21492 }
21493- mpz_clear(ival);
21494 }
21495
21496 // Get a tree for a string index.
21497@@ -11667,7 +10726,8 @@
21498 tree
21499 Interface_field_reference_expression::do_get_tree(Translate_context*)
21500 {
21501- go_unreachable();
21502+ error_at(this->location(), "reference to method other than calling it");
21503+ return error_mark_node;
21504 }
21505
21506 // Dump ast representation for an interface field reference.
21507@@ -12052,9 +11112,15 @@
21508 Struct_construction_expression(Type* type, Expression_list* vals,
21509 Location location)
21510 : Expression(EXPRESSION_STRUCT_CONSTRUCTION, location),
21511- type_(type), vals_(vals)
21512+ type_(type), vals_(vals), traverse_order_(NULL)
21513 { }
21514
21515+ // Set the traversal order, used to ensure that we implement the
21516+ // order of evaluation rules. Takes ownership of the argument.
21517+ void
21518+ set_traverse_order(std::vector<int>* traverse_order)
21519+ { this->traverse_order_ = traverse_order; }
21520+
21521 // Return whether this is a constant initializer.
21522 bool
21523 is_constant_struct() const;
21524@@ -12076,8 +11142,12 @@
21525 Expression*
21526 do_copy()
21527 {
21528- return new Struct_construction_expression(this->type_, this->vals_->copy(),
21529- this->location());
21530+ Struct_construction_expression* ret =
21531+ new Struct_construction_expression(this->type_, this->vals_->copy(),
21532+ this->location());
21533+ if (this->traverse_order_ != NULL)
21534+ ret->set_traverse_order(this->traverse_order_);
21535+ return ret;
21536 }
21537
21538 tree
21539@@ -12095,6 +11165,9 @@
21540 // The list of values, in order of the fields in the struct. A NULL
21541 // entry means that the field should be zero-initialized.
21542 Expression_list* vals_;
21543+ // If not NULL, the order in which to traverse vals_. This is used
21544+ // so that we implement the order of evaluation rules correctly.
21545+ std::vector<int>* traverse_order_;
21546 };
21547
21548 // Traversal.
21549@@ -12102,9 +11175,26 @@
21550 int
21551 Struct_construction_expression::do_traverse(Traverse* traverse)
21552 {
21553- if (this->vals_ != NULL
21554- && this->vals_->traverse(traverse) == TRAVERSE_EXIT)
21555- return TRAVERSE_EXIT;
21556+ if (this->vals_ != NULL)
21557+ {
21558+ if (this->traverse_order_ == NULL)
21559+ {
21560+ if (this->vals_->traverse(traverse) == TRAVERSE_EXIT)
21561+ return TRAVERSE_EXIT;
21562+ }
21563+ else
21564+ {
21565+ for (std::vector<int>::const_iterator p =
21566+ this->traverse_order_->begin();
21567+ p != this->traverse_order_->end();
21568+ ++p)
21569+ {
21570+ if (Expression::traverse(&this->vals_->at(*p), traverse)
21571+ == TRAVERSE_EXIT)
21572+ return TRAVERSE_EXIT;
21573+ }
21574+ }
21575+ }
21576 if (Type::traverse(this->type_, traverse) == TRAVERSE_EXIT)
21577 return TRAVERSE_EXIT;
21578 return TRAVERSE_CONTINUE;
21579@@ -12331,11 +11421,12 @@
21580 {
21581 protected:
21582 Array_construction_expression(Expression_classification classification,
21583- Type* type, Expression_list* vals,
21584- Location location)
21585+ Type* type,
21586+ const std::vector<unsigned long>* indexes,
21587+ Expression_list* vals, Location location)
21588 : Expression(classification, location),
21589- type_(type), vals_(vals)
21590- { }
21591+ type_(type), indexes_(indexes), vals_(vals)
21592+ { go_assert(indexes == NULL || indexes->size() == vals->size()); }
21593
21594 public:
21595 // Return whether this is a constant initializer.
21596@@ -12364,6 +11455,11 @@
21597 void
21598 do_export(Export*) const;
21599
21600+ // The indexes.
21601+ const std::vector<unsigned long>*
21602+ indexes()
21603+ { return this->indexes_; }
21604+
21605 // The list of values.
21606 Expression_list*
21607 vals()
21608@@ -12379,7 +11475,10 @@
21609 private:
21610 // The type of the array to construct.
21611 Type* type_;
21612- // The list of values.
21613+ // The list of indexes into the array, one for each value. This may
21614+ // be NULL, in which case the indexes start at zero and increment.
21615+ const std::vector<unsigned long>* indexes_;
21616+ // The list of values. This may be NULL if there are no values.
21617 Expression_list* vals_;
21618 };
21619
21620@@ -12462,20 +11561,6 @@
21621 this->set_is_error();
21622 }
21623 }
21624-
21625- Expression* length = at->length();
21626- if (length != NULL && !length->is_error_expression())
21627- {
21628- mpz_t val;
21629- mpz_init(val);
21630- Type* type;
21631- if (at->length()->integer_constant_value(true, val, &type))
21632- {
21633- if (this->vals_->size() > mpz_get_ui(val))
21634- this->report_error(_("too many elements in composite literal"));
21635- }
21636- mpz_clear(val);
21637- }
21638 }
21639
21640 // Get a constructor tree for the array values.
21641@@ -12493,12 +11578,22 @@
21642 if (this->vals_ != NULL)
21643 {
21644 size_t i = 0;
21645+ std::vector<unsigned long>::const_iterator pi;
21646+ if (this->indexes_ != NULL)
21647+ pi = this->indexes_->begin();
21648 for (Expression_list::const_iterator pv = this->vals_->begin();
21649 pv != this->vals_->end();
21650 ++pv, ++i)
21651 {
21652+ if (this->indexes_ != NULL)
21653+ go_assert(pi != this->indexes_->end());
21654 constructor_elt* elt = VEC_quick_push(constructor_elt, values, NULL);
21655- elt->index = size_int(i);
21656+
21657+ if (this->indexes_ == NULL)
21658+ elt->index = size_int(i);
21659+ else
21660+ elt->index = size_int(*pi);
21661+
21662 if (*pv == NULL)
21663 {
21664 Gogo* gogo = context->gogo();
21665@@ -12519,7 +11614,11 @@
21666 return error_mark_node;
21667 if (!TREE_CONSTANT(elt->value))
21668 is_constant = false;
21669+ if (this->indexes_ != NULL)
21670+ ++pi;
21671 }
21672+ if (this->indexes_ != NULL)
21673+ go_assert(pi == this->indexes_->end());
21674 }
21675
21676 tree ret = build_constructor(type_tree, values);
21677@@ -12537,13 +11636,28 @@
21678 exp->write_type(this->type_);
21679 if (this->vals_ != NULL)
21680 {
21681+ std::vector<unsigned long>::const_iterator pi;
21682+ if (this->indexes_ != NULL)
21683+ pi = this->indexes_->begin();
21684 for (Expression_list::const_iterator pv = this->vals_->begin();
21685 pv != this->vals_->end();
21686 ++pv)
21687 {
21688 exp->write_c_string(", ");
21689+
21690+ if (this->indexes_ != NULL)
21691+ {
21692+ char buf[100];
21693+ snprintf(buf, sizeof buf, "%lu", *pi);
21694+ exp->write_c_string(buf);
21695+ exp->write_c_string(":");
21696+ }
21697+
21698 if (*pv != NULL)
21699 (*pv)->export_expression(exp);
21700+
21701+ if (this->indexes_ != NULL)
21702+ ++pi;
21703 }
21704 }
21705 exp->write_c_string(")");
21706@@ -12555,8 +11669,7 @@
21707 Array_construction_expression::do_dump_expression(
21708 Ast_dump_context* ast_dump_context) const
21709 {
21710- Expression* length = this->type_->array_type() != NULL ?
21711- this->type_->array_type()->length() : NULL;
21712+ Expression* length = this->type_->array_type()->length();
21713
21714 ast_dump_context->ostream() << "[" ;
21715 if (length != NULL)
21716@@ -12566,7 +11679,22 @@
21717 ast_dump_context->ostream() << "]" ;
21718 ast_dump_context->dump_type(this->type_);
21719 ast_dump_context->ostream() << "{" ;
21720- ast_dump_context->dump_expression_list(this->vals_);
21721+ if (this->indexes_ == NULL)
21722+ ast_dump_context->dump_expression_list(this->vals_);
21723+ else
21724+ {
21725+ Expression_list::const_iterator pv = this->vals_->begin();
21726+ for (std::vector<unsigned long>::const_iterator pi =
21727+ this->indexes_->begin();
21728+ pi != this->indexes_->end();
21729+ ++pi, ++pv)
21730+ {
21731+ if (pi != this->indexes_->begin())
21732+ ast_dump_context->ostream() << ", ";
21733+ ast_dump_context->ostream() << *pi << ':';
21734+ ast_dump_context->dump_expression(*pv);
21735+ }
21736+ }
21737 ast_dump_context->ostream() << "}" ;
21738
21739 }
21740@@ -12577,20 +11705,19 @@
21741 public Array_construction_expression
21742 {
21743 public:
21744- Fixed_array_construction_expression(Type* type, Expression_list* vals,
21745- Location location)
21746+ Fixed_array_construction_expression(Type* type,
21747+ const std::vector<unsigned long>* indexes,
21748+ Expression_list* vals, Location location)
21749 : Array_construction_expression(EXPRESSION_FIXED_ARRAY_CONSTRUCTION,
21750- type, vals, location)
21751- {
21752- go_assert(type->array_type() != NULL
21753- && type->array_type()->length() != NULL);
21754- }
21755+ type, indexes, vals, location)
21756+ { go_assert(type->array_type() != NULL && !type->is_slice_type()); }
21757
21758 protected:
21759 Expression*
21760 do_copy()
21761 {
21762 return new Fixed_array_construction_expression(this->type(),
21763+ this->indexes(),
21764 (this->vals() == NULL
21765 ? NULL
21766 : this->vals()->copy()),
21767@@ -12599,9 +11726,6 @@
21768
21769 tree
21770 do_get_tree(Translate_context*);
21771-
21772- void
21773- do_dump_expression(Ast_dump_context*);
21774 };
21775
21776 // Return a tree for constructing a fixed array.
21777@@ -12614,35 +11738,17 @@
21778 return this->get_constructor_tree(context, type_to_tree(btype));
21779 }
21780
21781-// Dump ast representation of an array construction expressin.
21782-
21783-void
21784-Fixed_array_construction_expression::do_dump_expression(
21785- Ast_dump_context* ast_dump_context)
21786-{
21787-
21788- ast_dump_context->ostream() << "[";
21789- ast_dump_context->dump_expression (this->type()->array_type()->length());
21790- ast_dump_context->ostream() << "]";
21791- ast_dump_context->dump_type(this->type());
21792- ast_dump_context->ostream() << "{";
21793- ast_dump_context->dump_expression_list(this->vals());
21794- ast_dump_context->ostream() << "}";
21795-
21796-}
21797 // Construct an open array.
21798
21799 class Open_array_construction_expression : public Array_construction_expression
21800 {
21801 public:
21802- Open_array_construction_expression(Type* type, Expression_list* vals,
21803- Location location)
21804+ Open_array_construction_expression(Type* type,
21805+ const std::vector<unsigned long>* indexes,
21806+ Expression_list* vals, Location location)
21807 : Array_construction_expression(EXPRESSION_OPEN_ARRAY_CONSTRUCTION,
21808- type, vals, location)
21809- {
21810- go_assert(type->array_type() != NULL
21811- && type->array_type()->length() == NULL);
21812- }
21813+ type, indexes, vals, location)
21814+ { go_assert(type->is_slice_type()); }
21815
21816 protected:
21817 // Note that taking the address of an open array literal is invalid.
21818@@ -12651,6 +11757,7 @@
21819 do_copy()
21820 {
21821 return new Open_array_construction_expression(this->type(),
21822+ this->indexes(),
21823 (this->vals() == NULL
21824 ? NULL
21825 : this->vals()->copy()),
21826@@ -12702,13 +11809,18 @@
21827 }
21828 else
21829 {
21830- tree max = size_int(this->vals()->size() - 1);
21831+ unsigned long max_index;
21832+ if (this->indexes() == NULL)
21833+ max_index = this->vals()->size() - 1;
21834+ else
21835+ max_index = this->indexes()->back();
21836+ tree max_tree = size_int(max_index);
21837 tree constructor_type = build_array_type(element_type_tree,
21838- build_index_type(max));
21839+ build_index_type(max_tree));
21840 if (constructor_type == error_mark_node)
21841 return error_mark_node;
21842 values = this->get_constructor_tree(context, constructor_type);
21843- length_tree = size_int(this->vals()->size());
21844+ length_tree = size_int(max_index + 1);
21845 }
21846
21847 if (values == error_mark_node)
21848@@ -12816,7 +11928,7 @@
21849 Location location)
21850 {
21851 go_assert(type->is_slice_type());
21852- return new Open_array_construction_expression(type, vals, location);
21853+ return new Open_array_construction_expression(type, NULL, vals, location);
21854 }
21855
21856 // Construct a map.
21857@@ -13170,7 +12282,7 @@
21858 lower_array(Type*);
21859
21860 Expression*
21861- make_array(Type*, Expression_list*);
21862+ make_array(Type*, const std::vector<unsigned long>*, Expression_list*);
21863
21864 Expression*
21865 lower_map(Gogo*, Named_object*, Statement_inserter*, Type*);
21866@@ -13285,6 +12397,7 @@
21867
21868 size_t field_count = st->field_count();
21869 std::vector<Expression*> vals(field_count);
21870+ std::vector<int>* traverse_order = new(std::vector<int>);
21871 Expression_list::const_iterator p = this->vals_->begin();
21872 while (p != this->vals_->end())
21873 {
21874@@ -13437,6 +12550,7 @@
21875 type->named_type()->message_name().c_str());
21876
21877 vals[index] = val;
21878+ traverse_order->push_back(index);
21879 }
21880
21881 Expression_list* list = new Expression_list;
21882@@ -13444,9 +12558,23 @@
21883 for (size_t i = 0; i < field_count; ++i)
21884 list->push_back(vals[i]);
21885
21886- return new Struct_construction_expression(type, list, location);
21887+ Struct_construction_expression* ret =
21888+ new Struct_construction_expression(type, list, location);
21889+ ret->set_traverse_order(traverse_order);
21890+ return ret;
21891 }
21892
21893+// Used to sort an index/value array.
21894+
21895+class Index_value_compare
21896+{
21897+ public:
21898+ bool
21899+ operator()(const std::pair<unsigned long, Expression*>& a,
21900+ const std::pair<unsigned long, Expression*>& b)
21901+ { return a.first < b.first; }
21902+};
21903+
21904 // Lower an array composite literal.
21905
21906 Expression*
21907@@ -13454,10 +12582,13 @@
21908 {
21909 Location location = this->location();
21910 if (this->vals_ == NULL || !this->has_keys_)
21911- return this->make_array(type, this->vals_);
21912+ return this->make_array(type, NULL, this->vals_);
21913
21914- std::vector<Expression*> vals;
21915- vals.reserve(this->vals_->size());
21916+ std::vector<unsigned long>* indexes = new std::vector<unsigned long>;
21917+ indexes->reserve(this->vals_->size());
21918+ bool indexes_out_of_order = false;
21919+ Expression_list* vals = new Expression_list();
21920+ vals->reserve(this->vals_->size());
21921 unsigned long index = 0;
21922 Expression_list::const_iterator p = this->vals_->begin();
21923 while (p != this->vals_->end())
21924@@ -13470,104 +12601,141 @@
21925
21926 ++p;
21927
21928- if (index_expr != NULL)
21929+ if (index_expr == NULL)
21930 {
21931- mpz_t ival;
21932- mpz_init(ival);
21933+ if (!indexes->empty())
21934+ indexes->push_back(index);
21935+ }
21936+ else
21937+ {
21938+ if (indexes->empty() && !vals->empty())
21939+ {
21940+ for (size_t i = 0; i < vals->size(); ++i)
21941+ indexes->push_back(i);
21942+ }
21943
21944- Type* dummy;
21945- if (!index_expr->integer_constant_value(true, ival, &dummy))
21946+ Numeric_constant nc;
21947+ if (!index_expr->numeric_constant_value(&nc))
21948 {
21949- mpz_clear(ival);
21950 error_at(index_expr->location(),
21951 "index expression is not integer constant");
21952 return Expression::make_error(location);
21953 }
21954
21955- if (mpz_sgn(ival) < 0)
21956+ switch (nc.to_unsigned_long(&index))
21957 {
21958- mpz_clear(ival);
21959+ case Numeric_constant::NC_UL_VALID:
21960+ break;
21961+ case Numeric_constant::NC_UL_NOTINT:
21962+ error_at(index_expr->location(),
21963+ "index expression is not integer constant");
21964+ return Expression::make_error(location);
21965+ case Numeric_constant::NC_UL_NEGATIVE:
21966 error_at(index_expr->location(), "index expression is negative");
21967 return Expression::make_error(location);
21968- }
21969-
21970- index = mpz_get_ui(ival);
21971- if (mpz_cmp_ui(ival, index) != 0)
21972- {
21973- mpz_clear(ival);
21974+ case Numeric_constant::NC_UL_BIG:
21975 error_at(index_expr->location(), "index value overflow");
21976 return Expression::make_error(location);
21977+ default:
21978+ go_unreachable();
21979 }
21980
21981 Named_type* ntype = Type::lookup_integer_type("int");
21982 Integer_type* inttype = ntype->integer_type();
21983- mpz_t max;
21984- mpz_init_set_ui(max, 1);
21985- mpz_mul_2exp(max, max, inttype->bits() - 1);
21986- bool ok = mpz_cmp(ival, max) < 0;
21987- mpz_clear(max);
21988- if (!ok)
21989+ if (sizeof(index) <= static_cast<size_t>(inttype->bits() * 8)
21990+ && index >> (inttype->bits() - 1) != 0)
21991 {
21992- mpz_clear(ival);
21993 error_at(index_expr->location(), "index value overflow");
21994 return Expression::make_error(location);
21995 }
21996
21997- mpz_clear(ival);
21998-
21999- // FIXME: Our representation isn't very good; this avoids
22000- // thrashing.
22001- if (index > 0x1000000)
22002+ if (std::find(indexes->begin(), indexes->end(), index)
22003+ != indexes->end())
22004 {
22005- error_at(index_expr->location(), "index too large for compiler");
22006+ error_at(index_expr->location(), "duplicate value for index %lu",
22007+ index);
22008 return Expression::make_error(location);
22009 }
22010- }
22011
22012- if (index == vals.size())
22013- vals.push_back(val);
22014- else
22015- {
22016- if (index > vals.size())
22017- {
22018- vals.reserve(index + 32);
22019- vals.resize(index + 1, static_cast<Expression*>(NULL));
22020- }
22021- if (vals[index] != NULL)
22022- {
22023- error_at((index_expr != NULL
22024- ? index_expr->location()
22025- : val->location()),
22026- "duplicate value for index %lu",
22027- index);
22028- return Expression::make_error(location);
22029- }
22030- vals[index] = val;
22031+ if (!indexes->empty() && index < indexes->back())
22032+ indexes_out_of_order = true;
22033+
22034+ indexes->push_back(index);
22035 }
22036
22037+ vals->push_back(val);
22038+
22039 ++index;
22040 }
22041
22042- size_t size = vals.size();
22043- Expression_list* list = new Expression_list;
22044- list->reserve(size);
22045- for (size_t i = 0; i < size; ++i)
22046- list->push_back(vals[i]);
22047+ if (indexes->empty())
22048+ {
22049+ delete indexes;
22050+ indexes = NULL;
22051+ }
22052
22053- return this->make_array(type, list);
22054+ if (indexes_out_of_order)
22055+ {
22056+ typedef std::vector<std::pair<unsigned long, Expression*> > V;
22057+
22058+ V v;
22059+ v.reserve(indexes->size());
22060+ std::vector<unsigned long>::const_iterator pi = indexes->begin();
22061+ for (Expression_list::const_iterator pe = vals->begin();
22062+ pe != vals->end();
22063+ ++pe, ++pi)
22064+ v.push_back(std::make_pair(*pi, *pe));
22065+
22066+ std::sort(v.begin(), v.end(), Index_value_compare());
22067+
22068+ delete indexes;
22069+ delete vals;
22070+ indexes = new std::vector<unsigned long>();
22071+ indexes->reserve(v.size());
22072+ vals = new Expression_list();
22073+ vals->reserve(v.size());
22074+
22075+ for (V::const_iterator p = v.begin(); p != v.end(); ++p)
22076+ {
22077+ indexes->push_back(p->first);
22078+ vals->push_back(p->second);
22079+ }
22080+ }
22081+
22082+ return this->make_array(type, indexes, vals);
22083 }
22084
22085 // Actually build the array composite literal. This handles
22086 // [...]{...}.
22087
22088 Expression*
22089-Composite_literal_expression::make_array(Type* type, Expression_list* vals)
22090+Composite_literal_expression::make_array(
22091+ Type* type,
22092+ const std::vector<unsigned long>* indexes,
22093+ Expression_list* vals)
22094 {
22095 Location location = this->location();
22096 Array_type* at = type->array_type();
22097+
22098 if (at->length() != NULL && at->length()->is_nil_expression())
22099 {
22100- size_t size = vals == NULL ? 0 : vals->size();
22101+ size_t size;
22102+ if (vals == NULL)
22103+ size = 0;
22104+ else if (indexes != NULL)
22105+ size = indexes->back() + 1;
22106+ else
22107+ {
22108+ size = vals->size();
22109+ Integer_type* it = Type::lookup_integer_type("int")->integer_type();
22110+ if (sizeof(size) <= static_cast<size_t>(it->bits() * 8)
22111+ && size >> (it->bits() - 1) != 0)
22112+ {
22113+ error_at(location, "too many elements in composite literal");
22114+ return Expression::make_error(location);
22115+ }
22116+ }
22117+
22118 mpz_t vlen;
22119 mpz_init_set_ui(vlen, size);
22120 Expression* elen = Expression::make_integer(&vlen, NULL, location);
22121@@ -13575,10 +12743,43 @@
22122 at = Type::make_array_type(at->element_type(), elen);
22123 type = at;
22124 }
22125+ else if (at->length() != NULL
22126+ && !at->length()->is_error_expression()
22127+ && this->vals_ != NULL)
22128+ {
22129+ Numeric_constant nc;
22130+ unsigned long val;
22131+ if (at->length()->numeric_constant_value(&nc)
22132+ && nc.to_unsigned_long(&val) == Numeric_constant::NC_UL_VALID)
22133+ {
22134+ if (indexes == NULL)
22135+ {
22136+ if (this->vals_->size() > val)
22137+ {
22138+ error_at(location, "too many elements in composite literal");
22139+ return Expression::make_error(location);
22140+ }
22141+ }
22142+ else
22143+ {
22144+ unsigned long max = indexes->back();
22145+ if (max >= val)
22146+ {
22147+ error_at(location,
22148+ ("some element keys in composite literal "
22149+ "are out of range"));
22150+ return Expression::make_error(location);
22151+ }
22152+ }
22153+ }
22154+ }
22155+
22156 if (at->length() != NULL)
22157- return new Fixed_array_construction_expression(type, vals, location);
22158+ return new Fixed_array_construction_expression(type, indexes, vals,
22159+ location);
22160 else
22161- return new Open_array_construction_expression(type, vals, location);
22162+ return new Open_array_construction_expression(type, indexes, vals,
22163+ location);
22164 }
22165
22166 // Lower a map composite literal.
22167@@ -14449,3 +13650,600 @@
22168 return true;
22169 return false;
22170 }
22171+
22172+// Class Numeric_constant.
22173+
22174+// Destructor.
22175+
22176+Numeric_constant::~Numeric_constant()
22177+{
22178+ this->clear();
22179+}
22180+
22181+// Copy constructor.
22182+
22183+Numeric_constant::Numeric_constant(const Numeric_constant& a)
22184+ : classification_(a.classification_), type_(a.type_)
22185+{
22186+ switch (a.classification_)
22187+ {
22188+ case NC_INVALID:
22189+ break;
22190+ case NC_INT:
22191+ case NC_RUNE:
22192+ mpz_init_set(this->u_.int_val, a.u_.int_val);
22193+ break;
22194+ case NC_FLOAT:
22195+ mpfr_init_set(this->u_.float_val, a.u_.float_val, GMP_RNDN);
22196+ break;
22197+ case NC_COMPLEX:
22198+ mpfr_init_set(this->u_.complex_val.real, a.u_.complex_val.real,
22199+ GMP_RNDN);
22200+ mpfr_init_set(this->u_.complex_val.imag, a.u_.complex_val.imag,
22201+ GMP_RNDN);
22202+ break;
22203+ default:
22204+ go_unreachable();
22205+ }
22206+}
22207+
22208+// Assignment operator.
22209+
22210+Numeric_constant&
22211+Numeric_constant::operator=(const Numeric_constant& a)
22212+{
22213+ this->clear();
22214+ this->classification_ = a.classification_;
22215+ this->type_ = a.type_;
22216+ switch (a.classification_)
22217+ {
22218+ case NC_INVALID:
22219+ break;
22220+ case NC_INT:
22221+ case NC_RUNE:
22222+ mpz_init_set(this->u_.int_val, a.u_.int_val);
22223+ break;
22224+ case NC_FLOAT:
22225+ mpfr_init_set(this->u_.float_val, a.u_.float_val, GMP_RNDN);
22226+ break;
22227+ case NC_COMPLEX:
22228+ mpfr_init_set(this->u_.complex_val.real, a.u_.complex_val.real,
22229+ GMP_RNDN);
22230+ mpfr_init_set(this->u_.complex_val.imag, a.u_.complex_val.imag,
22231+ GMP_RNDN);
22232+ break;
22233+ default:
22234+ go_unreachable();
22235+ }
22236+ return *this;
22237+}
22238+
22239+// Clear the contents.
22240+
22241+void
22242+Numeric_constant::clear()
22243+{
22244+ switch (this->classification_)
22245+ {
22246+ case NC_INVALID:
22247+ break;
22248+ case NC_INT:
22249+ case NC_RUNE:
22250+ mpz_clear(this->u_.int_val);
22251+ break;
22252+ case NC_FLOAT:
22253+ mpfr_clear(this->u_.float_val);
22254+ break;
22255+ case NC_COMPLEX:
22256+ mpfr_clear(this->u_.complex_val.real);
22257+ mpfr_clear(this->u_.complex_val.imag);
22258+ break;
22259+ default:
22260+ go_unreachable();
22261+ }
22262+ this->classification_ = NC_INVALID;
22263+}
22264+
22265+// Set to an unsigned long value.
22266+
22267+void
22268+Numeric_constant::set_unsigned_long(Type* type, unsigned long val)
22269+{
22270+ this->clear();
22271+ this->classification_ = NC_INT;
22272+ this->type_ = type;
22273+ mpz_init_set_ui(this->u_.int_val, val);
22274+}
22275+
22276+// Set to an integer value.
22277+
22278+void
22279+Numeric_constant::set_int(Type* type, const mpz_t val)
22280+{
22281+ this->clear();
22282+ this->classification_ = NC_INT;
22283+ this->type_ = type;
22284+ mpz_init_set(this->u_.int_val, val);
22285+}
22286+
22287+// Set to a rune value.
22288+
22289+void
22290+Numeric_constant::set_rune(Type* type, const mpz_t val)
22291+{
22292+ this->clear();
22293+ this->classification_ = NC_RUNE;
22294+ this->type_ = type;
22295+ mpz_init_set(this->u_.int_val, val);
22296+}
22297+
22298+// Set to a floating point value.
22299+
22300+void
22301+Numeric_constant::set_float(Type* type, const mpfr_t val)
22302+{
22303+ this->clear();
22304+ this->classification_ = NC_FLOAT;
22305+ this->type_ = type;
22306+ // Numeric constants do not have negative zero values, so remove
22307+ // them here. They also don't have infinity or NaN values, but we
22308+ // should never see them here.
22309+ if (mpfr_zero_p(val))
22310+ mpfr_init_set_ui(this->u_.float_val, 0, GMP_RNDN);
22311+ else
22312+ mpfr_init_set(this->u_.float_val, val, GMP_RNDN);
22313+}
22314+
22315+// Set to a complex value.
22316+
22317+void
22318+Numeric_constant::set_complex(Type* type, const mpfr_t real, const mpfr_t imag)
22319+{
22320+ this->clear();
22321+ this->classification_ = NC_COMPLEX;
22322+ this->type_ = type;
22323+ mpfr_init_set(this->u_.complex_val.real, real, GMP_RNDN);
22324+ mpfr_init_set(this->u_.complex_val.imag, imag, GMP_RNDN);
22325+}
22326+
22327+// Get an int value.
22328+
22329+void
22330+Numeric_constant::get_int(mpz_t* val) const
22331+{
22332+ go_assert(this->is_int());
22333+ mpz_init_set(*val, this->u_.int_val);
22334+}
22335+
22336+// Get a rune value.
22337+
22338+void
22339+Numeric_constant::get_rune(mpz_t* val) const
22340+{
22341+ go_assert(this->is_rune());
22342+ mpz_init_set(*val, this->u_.int_val);
22343+}
22344+
22345+// Get a floating point value.
22346+
22347+void
22348+Numeric_constant::get_float(mpfr_t* val) const
22349+{
22350+ go_assert(this->is_float());
22351+ mpfr_init_set(*val, this->u_.float_val, GMP_RNDN);
22352+}
22353+
22354+// Get a complex value.
22355+
22356+void
22357+Numeric_constant::get_complex(mpfr_t* real, mpfr_t* imag) const
22358+{
22359+ go_assert(this->is_complex());
22360+ mpfr_init_set(*real, this->u_.complex_val.real, GMP_RNDN);
22361+ mpfr_init_set(*imag, this->u_.complex_val.imag, GMP_RNDN);
22362+}
22363+
22364+// Express value as unsigned long if possible.
22365+
22366+Numeric_constant::To_unsigned_long
22367+Numeric_constant::to_unsigned_long(unsigned long* val) const
22368+{
22369+ switch (this->classification_)
22370+ {
22371+ case NC_INT:
22372+ case NC_RUNE:
22373+ return this->mpz_to_unsigned_long(this->u_.int_val, val);
22374+ case NC_FLOAT:
22375+ return this->mpfr_to_unsigned_long(this->u_.float_val, val);
22376+ case NC_COMPLEX:
22377+ if (!mpfr_zero_p(this->u_.complex_val.imag))
22378+ return NC_UL_NOTINT;
22379+ return this->mpfr_to_unsigned_long(this->u_.complex_val.real, val);
22380+ default:
22381+ go_unreachable();
22382+ }
22383+}
22384+
22385+// Express integer value as unsigned long if possible.
22386+
22387+Numeric_constant::To_unsigned_long
22388+Numeric_constant::mpz_to_unsigned_long(const mpz_t ival,
22389+ unsigned long *val) const
22390+{
22391+ if (mpz_sgn(ival) < 0)
22392+ return NC_UL_NEGATIVE;
22393+ unsigned long ui = mpz_get_ui(ival);
22394+ if (mpz_cmp_ui(ival, ui) != 0)
22395+ return NC_UL_BIG;
22396+ *val = ui;
22397+ return NC_UL_VALID;
22398+}
22399+
22400+// Express floating point value as unsigned long if possible.
22401+
22402+Numeric_constant::To_unsigned_long
22403+Numeric_constant::mpfr_to_unsigned_long(const mpfr_t fval,
22404+ unsigned long *val) const
22405+{
22406+ if (!mpfr_integer_p(fval))
22407+ return NC_UL_NOTINT;
22408+ mpz_t ival;
22409+ mpz_init(ival);
22410+ mpfr_get_z(ival, fval, GMP_RNDN);
22411+ To_unsigned_long ret = this->mpz_to_unsigned_long(ival, val);
22412+ mpz_clear(ival);
22413+ return ret;
22414+}
22415+
22416+// Convert value to integer if possible.
22417+
22418+bool
22419+Numeric_constant::to_int(mpz_t* val) const
22420+{
22421+ switch (this->classification_)
22422+ {
22423+ case NC_INT:
22424+ case NC_RUNE:
22425+ mpz_init_set(*val, this->u_.int_val);
22426+ return true;
22427+ case NC_FLOAT:
22428+ if (!mpfr_integer_p(this->u_.float_val))
22429+ return false;
22430+ mpz_init(*val);
22431+ mpfr_get_z(*val, this->u_.float_val, GMP_RNDN);
22432+ return true;
22433+ case NC_COMPLEX:
22434+ if (!mpfr_zero_p(this->u_.complex_val.imag)
22435+ || !mpfr_integer_p(this->u_.complex_val.real))
22436+ return false;
22437+ mpz_init(*val);
22438+ mpfr_get_z(*val, this->u_.complex_val.real, GMP_RNDN);
22439+ return true;
22440+ default:
22441+ go_unreachable();
22442+ }
22443+}
22444+
22445+// Convert value to floating point if possible.
22446+
22447+bool
22448+Numeric_constant::to_float(mpfr_t* val) const
22449+{
22450+ switch (this->classification_)
22451+ {
22452+ case NC_INT:
22453+ case NC_RUNE:
22454+ mpfr_init_set_z(*val, this->u_.int_val, GMP_RNDN);
22455+ return true;
22456+ case NC_FLOAT:
22457+ mpfr_init_set(*val, this->u_.float_val, GMP_RNDN);
22458+ return true;
22459+ case NC_COMPLEX:
22460+ if (!mpfr_zero_p(this->u_.complex_val.imag))
22461+ return false;
22462+ mpfr_init_set(*val, this->u_.complex_val.real, GMP_RNDN);
22463+ return true;
22464+ default:
22465+ go_unreachable();
22466+ }
22467+}
22468+
22469+// Convert value to complex.
22470+
22471+bool
22472+Numeric_constant::to_complex(mpfr_t* vr, mpfr_t* vi) const
22473+{
22474+ switch (this->classification_)
22475+ {
22476+ case NC_INT:
22477+ case NC_RUNE:
22478+ mpfr_init_set_z(*vr, this->u_.int_val, GMP_RNDN);
22479+ mpfr_init_set_ui(*vi, 0, GMP_RNDN);
22480+ return true;
22481+ case NC_FLOAT:
22482+ mpfr_init_set(*vr, this->u_.float_val, GMP_RNDN);
22483+ mpfr_init_set_ui(*vi, 0, GMP_RNDN);
22484+ return true;
22485+ case NC_COMPLEX:
22486+ mpfr_init_set(*vr, this->u_.complex_val.real, GMP_RNDN);
22487+ mpfr_init_set(*vi, this->u_.complex_val.imag, GMP_RNDN);
22488+ return true;
22489+ default:
22490+ go_unreachable();
22491+ }
22492+}
22493+
22494+// Get the type.
22495+
22496+Type*
22497+Numeric_constant::type() const
22498+{
22499+ if (this->type_ != NULL)
22500+ return this->type_;
22501+ switch (this->classification_)
22502+ {
22503+ case NC_INT:
22504+ return Type::make_abstract_integer_type();
22505+ case NC_RUNE:
22506+ return Type::make_abstract_character_type();
22507+ case NC_FLOAT:
22508+ return Type::make_abstract_float_type();
22509+ case NC_COMPLEX:
22510+ return Type::make_abstract_complex_type();
22511+ default:
22512+ go_unreachable();
22513+ }
22514+}
22515+
22516+// If the constant can be expressed in TYPE, then set the type of the
22517+// constant to TYPE and return true. Otherwise return false, and, if
22518+// ISSUE_ERROR is true, report an appropriate error message.
22519+
22520+bool
22521+Numeric_constant::set_type(Type* type, bool issue_error, Location loc)
22522+{
22523+ bool ret;
22524+ if (type == NULL)
22525+ ret = true;
22526+ else if (type->integer_type() != NULL)
22527+ ret = this->check_int_type(type->integer_type(), issue_error, loc);
22528+ else if (type->float_type() != NULL)
22529+ ret = this->check_float_type(type->float_type(), issue_error, loc);
22530+ else if (type->complex_type() != NULL)
22531+ ret = this->check_complex_type(type->complex_type(), issue_error, loc);
22532+ else
22533+ go_unreachable();
22534+ if (ret)
22535+ this->type_ = type;
22536+ return ret;
22537+}
22538+
22539+// Check whether the constant can be expressed in an integer type.
22540+
22541+bool
22542+Numeric_constant::check_int_type(Integer_type* type, bool issue_error,
22543+ Location location) const
22544+{
22545+ mpz_t val;
22546+ switch (this->classification_)
22547+ {
22548+ case NC_INT:
22549+ case NC_RUNE:
22550+ mpz_init_set(val, this->u_.int_val);
22551+ break;
22552+
22553+ case NC_FLOAT:
22554+ if (!mpfr_integer_p(this->u_.float_val))
22555+ {
22556+ if (issue_error)
22557+ error_at(location, "floating point constant truncated to integer");
22558+ return false;
22559+ }
22560+ mpz_init(val);
22561+ mpfr_get_z(val, this->u_.float_val, GMP_RNDN);
22562+ break;
22563+
22564+ case NC_COMPLEX:
22565+ if (!mpfr_integer_p(this->u_.complex_val.real)
22566+ || !mpfr_zero_p(this->u_.complex_val.imag))
22567+ {
22568+ if (issue_error)
22569+ error_at(location, "complex constant truncated to integer");
22570+ return false;
22571+ }
22572+ mpz_init(val);
22573+ mpfr_get_z(val, this->u_.complex_val.real, GMP_RNDN);
22574+ break;
22575+
22576+ default:
22577+ go_unreachable();
22578+ }
22579+
22580+ bool ret;
22581+ if (type->is_abstract())
22582+ ret = true;
22583+ else
22584+ {
22585+ int bits = mpz_sizeinbase(val, 2);
22586+ if (type->is_unsigned())
22587+ {
22588+ // For an unsigned type we can only accept a nonnegative
22589+ // number, and we must be able to represents at least BITS.
22590+ ret = mpz_sgn(val) >= 0 && bits <= type->bits();
22591+ }
22592+ else
22593+ {
22594+ // For a signed type we need an extra bit to indicate the
22595+ // sign. We have to handle the most negative integer
22596+ // specially.
22597+ ret = (bits + 1 <= type->bits()
22598+ || (bits <= type->bits()
22599+ && mpz_sgn(val) < 0
22600+ && (mpz_scan1(val, 0)
22601+ == static_cast<unsigned long>(type->bits() - 1))
22602+ && mpz_scan0(val, type->bits()) == ULONG_MAX));
22603+ }
22604+ }
22605+
22606+ if (!ret && issue_error)
22607+ error_at(location, "integer constant overflow");
22608+
22609+ return ret;
22610+}
22611+
22612+// Check whether the constant can be expressed in a floating point
22613+// type.
22614+
22615+bool
22616+Numeric_constant::check_float_type(Float_type* type, bool issue_error,
22617+ Location location) const
22618+{
22619+ mpfr_t val;
22620+ switch (this->classification_)
22621+ {
22622+ case NC_INT:
22623+ case NC_RUNE:
22624+ mpfr_init_set_z(val, this->u_.int_val, GMP_RNDN);
22625+ break;
22626+
22627+ case NC_FLOAT:
22628+ mpfr_init_set(val, this->u_.float_val, GMP_RNDN);
22629+ break;
22630+
22631+ case NC_COMPLEX:
22632+ if (!mpfr_zero_p(this->u_.complex_val.imag))
22633+ {
22634+ if (issue_error)
22635+ error_at(location, "complex constant truncated to float");
22636+ return false;
22637+ }
22638+ mpfr_init_set(val, this->u_.complex_val.real, GMP_RNDN);
22639+ break;
22640+
22641+ default:
22642+ go_unreachable();
22643+ }
22644+
22645+ bool ret;
22646+ if (type->is_abstract())
22647+ ret = true;
22648+ else if (mpfr_nan_p(val) || mpfr_inf_p(val) || mpfr_zero_p(val))
22649+ {
22650+ // A NaN or Infinity always fits in the range of the type.
22651+ ret = true;
22652+ }
22653+ else
22654+ {
22655+ mp_exp_t exp = mpfr_get_exp(val);
22656+ mp_exp_t max_exp;
22657+ switch (type->bits())
22658+ {
22659+ case 32:
22660+ max_exp = 128;
22661+ break;
22662+ case 64:
22663+ max_exp = 1024;
22664+ break;
22665+ default:
22666+ go_unreachable();
22667+ }
22668+
22669+ ret = exp <= max_exp;
22670+ }
22671+
22672+ mpfr_clear(val);
22673+
22674+ if (!ret && issue_error)
22675+ error_at(location, "floating point constant overflow");
22676+
22677+ return ret;
22678+}
22679+
22680+// Check whether the constant can be expressed in a complex type.
22681+
22682+bool
22683+Numeric_constant::check_complex_type(Complex_type* type, bool issue_error,
22684+ Location location) const
22685+{
22686+ if (type->is_abstract())
22687+ return true;
22688+
22689+ mp_exp_t max_exp;
22690+ switch (type->bits())
22691+ {
22692+ case 64:
22693+ max_exp = 128;
22694+ break;
22695+ case 128:
22696+ max_exp = 1024;
22697+ break;
22698+ default:
22699+ go_unreachable();
22700+ }
22701+
22702+ mpfr_t real;
22703+ switch (this->classification_)
22704+ {
22705+ case NC_INT:
22706+ case NC_RUNE:
22707+ mpfr_init_set_z(real, this->u_.int_val, GMP_RNDN);
22708+ break;
22709+
22710+ case NC_FLOAT:
22711+ mpfr_init_set(real, this->u_.float_val, GMP_RNDN);
22712+ break;
22713+
22714+ case NC_COMPLEX:
22715+ if (!mpfr_nan_p(this->u_.complex_val.imag)
22716+ && !mpfr_inf_p(this->u_.complex_val.imag)
22717+ && !mpfr_zero_p(this->u_.complex_val.imag))
22718+ {
22719+ if (mpfr_get_exp(this->u_.complex_val.imag) > max_exp)
22720+ {
22721+ if (issue_error)
22722+ error_at(location, "complex imaginary part overflow");
22723+ return false;
22724+ }
22725+ }
22726+ mpfr_init_set(real, this->u_.complex_val.real, GMP_RNDN);
22727+ break;
22728+
22729+ default:
22730+ go_unreachable();
22731+ }
22732+
22733+ bool ret;
22734+ if (mpfr_nan_p(real) || mpfr_inf_p(real) || mpfr_zero_p(real))
22735+ ret = true;
22736+ else
22737+ ret = mpfr_get_exp(real) <= max_exp;
22738+
22739+ mpfr_clear(real);
22740+
22741+ if (!ret && issue_error)
22742+ error_at(location, "complex real part overflow");
22743+
22744+ return ret;
22745+}
22746+
22747+// Return an Expression for this value.
22748+
22749+Expression*
22750+Numeric_constant::expression(Location loc) const
22751+{
22752+ switch (this->classification_)
22753+ {
22754+ case NC_INT:
22755+ return Expression::make_integer(&this->u_.int_val, this->type_, loc);
22756+ case NC_RUNE:
22757+ return Expression::make_character(&this->u_.int_val, this->type_, loc);
22758+ case NC_FLOAT:
22759+ return Expression::make_float(&this->u_.float_val, this->type_, loc);
22760+ case NC_COMPLEX:
22761+ return Expression::make_complex(&this->u_.complex_val.real,
22762+ &this->u_.complex_val.imag,
22763+ this->type_, loc);
22764+ default:
22765+ go_unreachable();
22766+ }
22767+}
22768Index: gcc/go/go-c.h
22769===================================================================
22770--- gcc/go/go-c.h (.../tags/gcc_4_7_0_release) (wersja 187906)
22771+++ gcc/go/go-c.h (.../branches/gcc-4_7-branch) (wersja 187906)
22772@@ -38,11 +38,11 @@
22773
22774 extern int go_enable_dump (const char*);
22775 extern int go_enable_optimize (const char*);
22776-extern void go_set_prefix (const char*);
22777
22778 extern void go_add_search_path (const char*);
22779
22780-extern void go_create_gogo (int int_type_size, int pointer_size);
22781+extern void go_create_gogo (int int_type_size, int pointer_size,
22782+ const char* pkgpath, const char *prefix);
22783
22784 extern void go_parse_input_files (const char**, unsigned int,
22785 bool only_check_syntax,
22786Index: gcc/recog.c
22787===================================================================
22788--- gcc/recog.c (.../tags/gcc_4_7_0_release) (wersja 187906)
22789+++ gcc/recog.c (.../branches/gcc-4_7-branch) (wersja 187906)
22790@@ -2673,6 +2673,16 @@
22791 /* Every address operand can be reloaded to fit. */
22792 && strict < 0)
22793 win = 1;
22794+ /* Cater to architectures like IA-64 that define extra memory
22795+ constraints without using define_memory_constraint. */
22796+ else if (reload_in_progress
22797+ && REG_P (op)
22798+ && REGNO (op) >= FIRST_PSEUDO_REGISTER
22799+ && reg_renumber[REGNO (op)] < 0
22800+ && reg_equiv_mem (REGNO (op)) != 0
22801+ && EXTRA_CONSTRAINT_STR
22802+ (reg_equiv_mem (REGNO (op)), c, p))
22803+ win = 1;
22804 #endif
22805 break;
22806 }
22807Index: gcc/ada/a-zchuni.adb
22808===================================================================
22809--- gcc/ada/a-zchuni.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
22810+++ gcc/ada/a-zchuni.adb (.../branches/gcc-4_7-branch) (wersja 187906)
22811
22812Zmiany atrybutów dla: gcc/ada/a-zchuni.adb
22813___________________________________________________________________
22814Deleted: svn:executable
22815## -1 +0,0 ##
22816-*
22817\ No newline at end of property
22818Index: gcc/ada/a-zchuni.ads
22819===================================================================
22820--- gcc/ada/a-zchuni.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
22821+++ gcc/ada/a-zchuni.ads (.../branches/gcc-4_7-branch) (wersja 187906)
22822
22823Zmiany atrybutów dla: gcc/ada/a-zchuni.ads
22824___________________________________________________________________
22825Deleted: svn:executable
22826## -1 +0,0 ##
22827-*
22828\ No newline at end of property
22829Index: gcc/ada/s-tasloc.adb
22830===================================================================
22831--- gcc/ada/s-tasloc.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
22832+++ gcc/ada/s-tasloc.adb (.../branches/gcc-4_7-branch) (wersja 187906)
22833
22834Zmiany atrybutów dla: gcc/ada/s-tasloc.adb
22835___________________________________________________________________
22836Deleted: svn:executable
22837## -1 +0,0 ##
22838-*
22839\ No newline at end of property
22840Index: gcc/ada/s-tasloc.ads
22841===================================================================
22842--- gcc/ada/s-tasloc.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
22843+++ gcc/ada/s-tasloc.ads (.../branches/gcc-4_7-branch) (wersja 187906)
22844
22845Zmiany atrybutów dla: gcc/ada/s-tasloc.ads
22846___________________________________________________________________
22847Deleted: svn:executable
22848## -1 +0,0 ##
22849-*
22850\ No newline at end of property
22851Index: gcc/ada/s-string.adb
22852===================================================================
22853--- gcc/ada/s-string.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
22854+++ gcc/ada/s-string.adb (.../branches/gcc-4_7-branch) (wersja 187906)
22855
22856Zmiany atrybutów dla: gcc/ada/s-string.adb
22857___________________________________________________________________
22858Deleted: svn:executable
22859## -1 +0,0 ##
22860-*
22861\ No newline at end of property
22862Index: gcc/ada/a-envvar.adb
22863===================================================================
22864--- gcc/ada/a-envvar.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
22865+++ gcc/ada/a-envvar.adb (.../branches/gcc-4_7-branch) (wersja 187906)
22866
22867Zmiany atrybutów dla: gcc/ada/a-envvar.adb
22868___________________________________________________________________
22869Deleted: svn:executable
22870## -1 +0,0 ##
22871-*
22872\ No newline at end of property
22873Index: gcc/ada/s-string.ads
22874===================================================================
22875--- gcc/ada/s-string.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
22876+++ gcc/ada/s-string.ads (.../branches/gcc-4_7-branch) (wersja 187906)
22877
22878Zmiany atrybutów dla: gcc/ada/s-string.ads
22879___________________________________________________________________
22880Deleted: svn:executable
22881## -1 +0,0 ##
22882-*
22883\ No newline at end of property
22884Index: gcc/ada/a-envvar.ads
22885===================================================================
22886--- gcc/ada/a-envvar.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
22887+++ gcc/ada/a-envvar.ads (.../branches/gcc-4_7-branch) (wersja 187906)
22888
22889Zmiany atrybutów dla: gcc/ada/a-envvar.ads
22890___________________________________________________________________
22891Deleted: svn:executable
22892## -1 +0,0 ##
22893-*
22894\ No newline at end of property
22895Index: gcc/ada/sem_aux.adb
22896===================================================================
22897--- gcc/ada/sem_aux.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
22898+++ gcc/ada/sem_aux.adb (.../branches/gcc-4_7-branch) (wersja 187906)
22899
22900Zmiany atrybutów dla: gcc/ada/sem_aux.adb
22901___________________________________________________________________
22902Deleted: svn:executable
22903## -1 +0,0 ##
22904-*
22905\ No newline at end of property
22906Index: gcc/ada/g-wispch.adb
22907===================================================================
22908--- gcc/ada/g-wispch.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
22909+++ gcc/ada/g-wispch.adb (.../branches/gcc-4_7-branch) (wersja 187906)
22910
22911Zmiany atrybutów dla: gcc/ada/g-wispch.adb
22912___________________________________________________________________
22913Deleted: svn:executable
22914## -1 +0,0 ##
22915-*
22916\ No newline at end of property
22917Index: gcc/ada/sem_aux.ads
22918===================================================================
22919--- gcc/ada/sem_aux.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
22920+++ gcc/ada/sem_aux.ads (.../branches/gcc-4_7-branch) (wersja 187906)
22921
22922Zmiany atrybutów dla: gcc/ada/sem_aux.ads
22923___________________________________________________________________
22924Deleted: svn:executable
22925## -1 +0,0 ##
22926-*
22927\ No newline at end of property
22928Index: gcc/ada/g-wispch.ads
22929===================================================================
22930--- gcc/ada/g-wispch.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
22931+++ gcc/ada/g-wispch.ads (.../branches/gcc-4_7-branch) (wersja 187906)
22932
22933Zmiany atrybutów dla: gcc/ada/g-wispch.ads
22934___________________________________________________________________
22935Deleted: svn:executable
22936## -1 +0,0 ##
22937-*
22938\ No newline at end of property
22939Index: gcc/ada/a-tirsfi.adb
22940===================================================================
22941--- gcc/ada/a-tirsfi.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
22942+++ gcc/ada/a-tirsfi.adb (.../branches/gcc-4_7-branch) (wersja 187906)
22943
22944Zmiany atrybutów dla: gcc/ada/a-tirsfi.adb
22945___________________________________________________________________
22946Deleted: svn:executable
22947## -1 +0,0 ##
22948-*
22949\ No newline at end of property
22950Index: gcc/ada/a-tirsfi.ads
22951===================================================================
22952--- gcc/ada/a-tirsfi.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
22953+++ gcc/ada/a-tirsfi.ads (.../branches/gcc-4_7-branch) (wersja 187906)
22954
22955Zmiany atrybutów dla: gcc/ada/a-tirsfi.ads
22956___________________________________________________________________
22957Deleted: svn:executable
22958## -1 +0,0 ##
22959-*
22960\ No newline at end of property
22961Index: gcc/ada/g-encstr.adb
22962===================================================================
22963--- gcc/ada/g-encstr.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
22964+++ gcc/ada/g-encstr.adb (.../branches/gcc-4_7-branch) (wersja 187906)
22965
22966Zmiany atrybutów dla: gcc/ada/g-encstr.adb
22967___________________________________________________________________
22968Deleted: svn:executable
22969## -1 +0,0 ##
22970-*
22971\ No newline at end of property
22972Index: gcc/ada/g-encstr.ads
22973===================================================================
22974--- gcc/ada/g-encstr.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
22975+++ gcc/ada/g-encstr.ads (.../branches/gcc-4_7-branch) (wersja 187906)
22976
22977Zmiany atrybutów dla: gcc/ada/g-encstr.ads
22978___________________________________________________________________
22979Deleted: svn:executable
22980## -1 +0,0 ##
22981-*
22982\ No newline at end of property
22983Index: gcc/ada/s-regpat.adb
22984===================================================================
22985--- gcc/ada/s-regpat.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
22986+++ gcc/ada/s-regpat.adb (.../branches/gcc-4_7-branch) (wersja 187906)
22987
22988Zmiany atrybutów dla: gcc/ada/s-regpat.adb
22989___________________________________________________________________
22990Deleted: svn:executable
22991## -1 +0,0 ##
22992-*
22993\ No newline at end of property
22994Index: gcc/ada/s-regpat.ads
22995===================================================================
22996--- gcc/ada/s-regpat.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
22997+++ gcc/ada/s-regpat.ads (.../branches/gcc-4_7-branch) (wersja 187906)
22998
22999Zmiany atrybutów dla: gcc/ada/s-regpat.ads
23000___________________________________________________________________
23001Deleted: svn:executable
23002## -1 +0,0 ##
23003-*
23004\ No newline at end of property
23005Index: gcc/ada/a-zrstfi.adb
23006===================================================================
23007--- gcc/ada/a-zrstfi.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
23008+++ gcc/ada/a-zrstfi.adb (.../branches/gcc-4_7-branch) (wersja 187906)
23009
23010Zmiany atrybutów dla: gcc/ada/a-zrstfi.adb
23011___________________________________________________________________
23012Deleted: svn:executable
23013## -1 +0,0 ##
23014-*
23015\ No newline at end of property
23016Index: gcc/ada/a-zrstfi.ads
23017===================================================================
23018--- gcc/ada/a-zrstfi.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
23019+++ gcc/ada/a-zrstfi.ads (.../branches/gcc-4_7-branch) (wersja 187906)
23020
23021Zmiany atrybutów dla: gcc/ada/a-zrstfi.ads
23022___________________________________________________________________
23023Deleted: svn:executable
23024## -1 +0,0 ##
23025-*
23026\ No newline at end of property
23027Index: gcc/ada/sem_prag.adb
23028===================================================================
23029--- gcc/ada/sem_prag.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
23030+++ gcc/ada/sem_prag.adb (.../branches/gcc-4_7-branch) (wersja 187906)
23031@@ -2972,16 +2972,29 @@
23032 Set_Has_Delayed_Freeze (E);
23033 end if;
23034
23035- -- An interesting improvement here. If an object of type X is
23036- -- declared atomic, and the type X is not atomic, that's a
23037+ -- An interesting improvement here. If an object of composite
23038+ -- type X is declared atomic, and the type X isn't, that's a
23039 -- pity, since it may not have appropriate alignment etc. We
23040 -- can rescue this in the special case where the object and
23041 -- type are in the same unit by just setting the type as
23042 -- atomic, so that the back end will process it as atomic.
23043
23044+ -- Note: we used to do this for elementary types as well,
23045+ -- but that turns out to be a bad idea and can have unwanted
23046+ -- effects, most notably if the type is elementary, the object
23047+ -- a simple component within a record, and both are in a spec:
23048+ -- every object of this type in the entire program will be
23049+ -- treated as atomic, thus incurring a potentially costly
23050+ -- synchronization operation for every access.
23051+
23052+ -- Of course it would be best if the back end could just adjust
23053+ -- the alignment etc for the specific object, but that's not
23054+ -- something we are capable of doing at this point.
23055+
23056 Utyp := Underlying_Type (Etype (E));
23057
23058 if Present (Utyp)
23059+ and then Is_Composite_Type (Utyp)
23060 and then Sloc (E) > No_Location
23061 and then Sloc (Utyp) > No_Location
23062 and then
23063Index: gcc/ada/a-suezst.adb
23064===================================================================
23065--- gcc/ada/a-suezst.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
23066+++ gcc/ada/a-suezst.adb (.../branches/gcc-4_7-branch) (wersja 187906)
23067
23068Zmiany atrybutów dla: gcc/ada/a-suezst.adb
23069___________________________________________________________________
23070Deleted: svn:executable
23071## -1 +0,0 ##
23072-*
23073\ No newline at end of property
23074Index: gcc/ada/a-suezst.ads
23075===================================================================
23076--- gcc/ada/a-suezst.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
23077+++ gcc/ada/a-suezst.ads (.../branches/gcc-4_7-branch) (wersja 187906)
23078
23079Zmiany atrybutów dla: gcc/ada/a-suezst.ads
23080___________________________________________________________________
23081Deleted: svn:executable
23082## -1 +0,0 ##
23083-*
23084\ No newline at end of property
23085Index: gcc/ada/a-zchhan.adb
23086===================================================================
23087--- gcc/ada/a-zchhan.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
23088+++ gcc/ada/a-zchhan.adb (.../branches/gcc-4_7-branch) (wersja 187906)
23089
23090Zmiany atrybutów dla: gcc/ada/a-zchhan.adb
23091___________________________________________________________________
23092Deleted: svn:executable
23093## -1 +0,0 ##
23094-*
23095\ No newline at end of property
23096Index: gcc/ada/a-zchhan.ads
23097===================================================================
23098--- gcc/ada/a-zchhan.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
23099+++ gcc/ada/a-zchhan.ads (.../branches/gcc-4_7-branch) (wersja 187906)
23100
23101Zmiany atrybutów dla: gcc/ada/a-zchhan.ads
23102___________________________________________________________________
23103Deleted: svn:executable
23104## -1 +0,0 ##
23105-*
23106\ No newline at end of property
23107Index: gcc/ada/mlib-utl.adb
23108===================================================================
23109--- gcc/ada/mlib-utl.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
23110+++ gcc/ada/mlib-utl.adb (.../branches/gcc-4_7-branch) (wersja 187906)
23111@@ -6,7 +6,7 @@
23112 -- --
23113 -- B o d y --
23114 -- --
23115--- Copyright (C) 2002-2011, AdaCore --
23116+-- Copyright (C) 2002-2012, AdaCore --
23117 -- --
23118 -- GNAT is free software; you can redistribute it and/or modify it under --
23119 -- terms of the GNU General Public License as published by the Free Soft- --
23120@@ -31,8 +31,6 @@
23121
23122 with Interfaces.C.Strings; use Interfaces.C.Strings;
23123
23124-with System;
23125-
23126 package body MLib.Utl is
23127
23128 Adalib_Path : String_Access := null;
23129@@ -353,16 +351,13 @@
23130 -- Pointer to a string representing the linker option which specifies
23131 -- the response file.
23132
23133- Using_GNU_Linker : Boolean;
23134- for Using_GNU_Linker'Size use Character'Size;
23135- pragma Import (C, Using_GNU_Linker, "__gnat_using_gnu_linker");
23136- -- Predicate indicating whether this target uses the GNU linker. In
23137- -- this case we must output a GNU linker compatible response file.
23138+ Object_File_Option : constant String := Value (Object_File_Option_Ptr);
23139+ -- The linker option which specifies the response file as a string
23140
23141- Opening : aliased constant String := """";
23142- Closing : aliased constant String := '"' & ASCII.LF;
23143- -- Needed to quote object paths in object list files when GNU linker
23144- -- is used.
23145+ Using_GNU_response_file : constant Boolean :=
23146+ Object_File_Option'Length > 0
23147+ and then Object_File_Option (Object_File_Option'Last) = '@';
23148+ -- Whether a GNU response file is used
23149
23150 Tname : String_Access;
23151 Tname_FD : File_Descriptor := Invalid_FD;
23152@@ -390,7 +385,7 @@
23153
23154 Position : Object_Position;
23155
23156- procedure Write_RF (A : System.Address; N : Integer);
23157+ procedure Write_RF (S : String);
23158 -- Write a string to the response file and check if it was successful.
23159 -- Fail the program if it was not successful (disk full).
23160
23161@@ -398,12 +393,38 @@
23162 -- Write_RF --
23163 --------------
23164
23165- procedure Write_RF (A : System.Address; N : Integer) is
23166- Status : Integer;
23167+ procedure Write_RF (S : String) is
23168+ Success : Boolean := True;
23169 begin
23170- Status := Write (Tname_FD, A, N);
23171+ -- If a GNU response file is used, space and backslash need to be
23172+ -- escaped because they are interpreted as a string separator and
23173+ -- an escape character respectively by the underlying mechanism.
23174+ -- On the other hand, quote and double-quote are not escaped since
23175+ -- they are interpreted as string delimiters on both sides.
23176
23177- if Status /= N then
23178+ if Using_GNU_response_file then
23179+ for I in S'Range loop
23180+ if S (I) = ' ' or else S (I) = '\' then
23181+ if Write (Tname_FD, ASCII.BACK_SLASH'Address, 1) /= 1 then
23182+ Success := False;
23183+ end if;
23184+ end if;
23185+
23186+ if Write (Tname_FD, S (I)'Address, 1) /= 1 then
23187+ Success := False;
23188+ end if;
23189+ end loop;
23190+ else
23191+ if Write (Tname_FD, S'Address, S'Length) /= S'Length then
23192+ Success := False;
23193+ end if;
23194+ end if;
23195+
23196+ if Write (Tname_FD, ASCII.LF'Address, 1) /= 1 then
23197+ Success := False;
23198+ end if;
23199+
23200+ if not Success then
23201 Fail ("cannot generate response file to link library: disk full");
23202 end if;
23203 end Write_RF;
23204@@ -529,53 +550,10 @@
23205
23206 Create_Temp_File (Tname_FD, Tname);
23207
23208- -- If target is using the GNU linker we must add a special header
23209- -- and footer in the response file.
23210-
23211- -- The syntax is : INPUT (object1.o object2.o ... )
23212-
23213- -- Because the GNU linker does not like name with characters such
23214- -- as '!', we must put the object paths between double quotes.
23215-
23216- if Using_GNU_Linker then
23217- declare
23218- GNU_Header : aliased constant String := "INPUT (";
23219-
23220- begin
23221- Write_RF (GNU_Header'Address, GNU_Header'Length);
23222- end;
23223- end if;
23224-
23225 for J in Objects'Range loop
23226- -- Opening quote for GNU linker
23227-
23228- if Using_GNU_Linker then
23229- Write_RF (Opening'Address, 1);
23230- end if;
23231-
23232- Write_RF (Objects (J).all'Address, Objects (J).all'Length);
23233-
23234- -- Closing quote for GNU linker
23235-
23236- if Using_GNU_Linker then
23237- Write_RF (Closing'Address, 2);
23238-
23239- else
23240- Write_RF (ASCII.LF'Address, 1);
23241- end if;
23242+ Write_RF (Objects (J).all);
23243 end loop;
23244
23245- -- Handle GNU linker response file footer
23246-
23247- if Using_GNU_Linker then
23248- declare
23249- GNU_Footer : aliased constant String := ")";
23250-
23251- begin
23252- Write_RF (GNU_Footer'Address, GNU_Footer'Length);
23253- end;
23254- end if;
23255-
23256 Close (Tname_FD, Closing_Status);
23257
23258 if not Closing_Status then
23259@@ -583,8 +561,7 @@
23260 end if;
23261
23262 A := A + 1;
23263- Arguments (A) :=
23264- new String'(Value (Object_File_Option_Ptr) & Tname.all);
23265+ Arguments (A) := new String'(Object_File_Option & Tname.all);
23266
23267 else
23268 A := A + Objects'Length;
23269@@ -596,17 +573,15 @@
23270
23271 Spawn (Driver.all, Arguments (1 .. A), Success);
23272
23273- if Tname /= null then
23274- Delete_File (Tname.all, Closing_Status);
23275+ if Success then
23276+ -- Delete the temporary file used in conjunction with linking
23277+ -- if one was created.
23278
23279- if not Closing_Status then
23280- Write_Str ("warning: could not delete response file """);
23281- Write_Str (Tname.all);
23282- Write_Line (""" to link library");
23283+ if Tname_FD /= Invalid_FD then
23284+ Delete_File (Tname.all);
23285 end if;
23286- end if;
23287
23288- if not Success then
23289+ else
23290 if Driver_Name = No_Name then
23291 Fail (Gcc_Name.all & " execution error");
23292 else
23293Index: gcc/ada/gnatlink.adb
23294===================================================================
23295--- gcc/ada/gnatlink.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
23296+++ gcc/ada/gnatlink.adb (.../branches/gcc-4_7-branch) (wersja 187906)
23297@@ -178,6 +178,19 @@
23298 -- Predicate indicating whether the linker has an option whereby the
23299 -- names of object files can be passed to the linker in a file.
23300
23301+ Object_File_Option_Ptr : Interfaces.C.Strings.chars_ptr;
23302+ pragma Import (C, Object_File_Option_Ptr, "__gnat_object_file_option");
23303+ -- Pointer to a string representing the linker option which specifies
23304+ -- the response file.
23305+
23306+ Object_File_Option : constant String := Value (Object_File_Option_Ptr);
23307+ -- The linker option which specifies the response file as a string
23308+
23309+ Using_GNU_response_file : constant Boolean :=
23310+ Object_File_Option'Length > 0
23311+ and then Object_File_Option (Object_File_Option'Last) = '@';
23312+ -- Whether a GNU response file is used
23313+
23314 Object_List_File_Required : Boolean := False;
23315 -- Set to True to force generation of a response file
23316
23317@@ -760,28 +773,12 @@
23318 -- Pointer to string specifying the default extension for
23319 -- object libraries, e.g. Unix uses ".a", VMS uses ".olb".
23320
23321- Object_File_Option_Ptr : Interfaces.C.Strings.chars_ptr;
23322- pragma Import (C, Object_File_Option_Ptr, "__gnat_object_file_option");
23323- -- Pointer to a string representing the linker option which specifies
23324- -- the response file.
23325-
23326- Using_GNU_Linker : Boolean;
23327- for Using_GNU_Linker'Size use Character'Size;
23328- pragma Import (C, Using_GNU_Linker, "__gnat_using_gnu_linker");
23329- -- Predicate indicating whether this target uses the GNU linker. In
23330- -- this case we must output a GNU linker compatible response file.
23331-
23332 Separate_Run_Path_Options : Boolean;
23333 for Separate_Run_Path_Options'Size use Character'Size;
23334 pragma Import
23335 (C, Separate_Run_Path_Options, "__gnat_separate_run_path_options");
23336 -- Whether separate rpath options should be emitted for each directory
23337
23338- Opening : aliased constant String := """";
23339- Closing : aliased constant String := '"' & ASCII.LF;
23340- -- Needed to quote object paths in object list files when GNU linker
23341- -- is used.
23342-
23343 procedure Get_Next_Line;
23344 -- Read the next line from the binder file without the line
23345 -- terminator.
23346@@ -804,6 +801,10 @@
23347 -- after Store_File_Context. The binder file context will be restored
23348 -- with the data stored by the last Store_File_Context call.
23349
23350+ procedure Write_RF (S : String);
23351+ -- Write a string to the response file and check if it was successful.
23352+ -- Fail the program if it was not successful (disk full).
23353+
23354 -------------------
23355 -- Get_Next_Line --
23356 -------------------
23357@@ -897,6 +898,46 @@
23358 end if;
23359 end Store_File_Context;
23360
23361+ --------------
23362+ -- Write_RF --
23363+ --------------
23364+
23365+ procedure Write_RF (S : String) is
23366+ Success : Boolean := True;
23367+ begin
23368+ -- If a GNU response file is used, space and backslash need to be
23369+ -- escaped because they are interpreted as a string separator and
23370+ -- an escape character respectively by the underlying mechanism.
23371+ -- On the other hand, quote and double-quote are not escaped since
23372+ -- they are interpreted as string delimiters on both sides.
23373+
23374+ if Using_GNU_response_file then
23375+ for I in S'Range loop
23376+ if S (I) = ' ' or else S (I) = '\' then
23377+ if Write (Tname_FD, ASCII.BACK_SLASH'Address, 1) /= 1 then
23378+ Success := False;
23379+ end if;
23380+ end if;
23381+
23382+ if Write (Tname_FD, S (I)'Address, 1) /= 1 then
23383+ Success := False;
23384+ end if;
23385+ end loop;
23386+ else
23387+ if Write (Tname_FD, S'Address, S'Length) /= S'Length then
23388+ Success := False;
23389+ end if;
23390+ end if;
23391+
23392+ if Write (Tname_FD, ASCII.LF'Address, 1) /= 1 then
23393+ Success := False;
23394+ end if;
23395+
23396+ if not Success then
23397+ Exit_With_Error ("Error generating response file: disk full");
23398+ end if;
23399+ end Write_RF;
23400+
23401 -- Start of processing for Process_Binder_File
23402
23403 begin
23404@@ -985,61 +1026,14 @@
23405 -- ??? Status of Write and Close operations should be checked, and
23406 -- failure should occur if a status is wrong.
23407
23408- -- If target is using the GNU linker we must add a special header
23409- -- and footer in the response file.
23410-
23411- -- The syntax is : INPUT (object1.o object2.o ... )
23412-
23413- -- Because the GNU linker does not like name with characters such
23414- -- as '!', we must put the object paths between double quotes.
23415-
23416- if Using_GNU_Linker then
23417- declare
23418- GNU_Header : aliased constant String := "INPUT (";
23419-
23420- begin
23421- Status := Write (Tname_FD, GNU_Header'Address,
23422- GNU_Header'Length);
23423- end;
23424- end if;
23425-
23426 for J in Objs_Begin .. Objs_End loop
23427+ Write_RF (Linker_Objects.Table (J).all);
23428
23429- -- Opening quote for GNU linker
23430-
23431- if Using_GNU_Linker then
23432- Status := Write (Tname_FD, Opening'Address, 1);
23433- end if;
23434-
23435- Status := Write (Tname_FD, Linker_Objects.Table (J).all'Address,
23436- Linker_Objects.Table (J).all'Length);
23437-
23438- -- Closing quote for GNU linker
23439-
23440- if Using_GNU_Linker then
23441- Status := Write (Tname_FD, Closing'Address, 2);
23442-
23443- else
23444- Status := Write (Tname_FD, ASCII.LF'Address, 1);
23445- end if;
23446-
23447 Response_File_Objects.Increment_Last;
23448 Response_File_Objects.Table (Response_File_Objects.Last) :=
23449 Linker_Objects.Table (J);
23450 end loop;
23451
23452- -- Handle GNU linker response file footer
23453-
23454- if Using_GNU_Linker then
23455- declare
23456- GNU_Footer : aliased constant String := ")";
23457-
23458- begin
23459- Status := Write (Tname_FD, GNU_Footer'Address,
23460- GNU_Footer'Length);
23461- end;
23462- end if;
23463-
23464 Close (Tname_FD, Closing_Status);
23465
23466 -- Add the special objects list file option together with the name
23467@@ -1047,7 +1041,7 @@
23468 -- file table.
23469
23470 Linker_Objects.Table (Objs_Begin) :=
23471- new String'(Value (Object_File_Option_Ptr) &
23472+ new String'(Object_File_Option &
23473 Tname (Tname'First .. Tname'Last - 1));
23474
23475 -- The slots containing these object file names are then removed
23476@@ -2213,14 +2207,15 @@
23477
23478 System.OS_Lib.Spawn (Linker_Path.all, Args, Success);
23479
23480- -- Delete the temporary file used in conjunction with linking if
23481- -- one was created. See Process_Bind_File for details.
23482+ if Success then
23483+ -- Delete the temporary file used in conjunction with linking
23484+ -- if one was created. See Process_Bind_File for details.
23485
23486- if Tname_FD /= Invalid_FD then
23487- Delete (Tname);
23488- end if;
23489+ if Tname_FD /= Invalid_FD then
23490+ Delete (Tname);
23491+ end if;
23492
23493- if not Success then
23494+ else
23495 Error_Msg ("error when calling " & Linker_Path.all);
23496 Exit_Program (E_Fatal);
23497 end if;
23498Index: gcc/ada/a-suenco.adb
23499===================================================================
23500--- gcc/ada/a-suenco.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
23501+++ gcc/ada/a-suenco.adb (.../branches/gcc-4_7-branch) (wersja 187906)
23502
23503Zmiany atrybutów dla: gcc/ada/a-suenco.adb
23504___________________________________________________________________
23505Deleted: svn:executable
23506## -1 +0,0 ##
23507-*
23508\ No newline at end of property
23509Index: gcc/ada/a-suenco.ads
23510===================================================================
23511--- gcc/ada/a-suenco.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
23512+++ gcc/ada/a-suenco.ads (.../branches/gcc-4_7-branch) (wersja 187906)
23513
23514Zmiany atrybutów dla: gcc/ada/a-suenco.ads
23515___________________________________________________________________
23516Deleted: svn:executable
23517## -1 +0,0 ##
23518-*
23519\ No newline at end of property
23520Index: gcc/ada/a-chacon.adb
23521===================================================================
23522--- gcc/ada/a-chacon.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
23523+++ gcc/ada/a-chacon.adb (.../branches/gcc-4_7-branch) (wersja 187906)
23524
23525Zmiany atrybutów dla: gcc/ada/a-chacon.adb
23526___________________________________________________________________
23527Deleted: svn:executable
23528## -1 +0,0 ##
23529-*
23530\ No newline at end of property
23531Index: gcc/ada/a-chacon.ads
23532===================================================================
23533--- gcc/ada/a-chacon.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
23534+++ gcc/ada/a-chacon.ads (.../branches/gcc-4_7-branch) (wersja 187906)
23535
23536Zmiany atrybutów dla: gcc/ada/a-chacon.ads
23537___________________________________________________________________
23538Deleted: svn:executable
23539## -1 +0,0 ##
23540-*
23541\ No newline at end of property
23542Index: gcc/ada/a-lcteio.ads
23543===================================================================
23544--- gcc/ada/a-lcteio.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
23545+++ gcc/ada/a-lcteio.ads (.../branches/gcc-4_7-branch) (wersja 187906)
23546
23547Zmiany atrybutów dla: gcc/ada/a-lcteio.ads
23548___________________________________________________________________
23549Deleted: svn:executable
23550## -1 +0,0 ##
23551-*
23552\ No newline at end of property
23553Index: gcc/ada/a-fzteio.ads
23554===================================================================
23555--- gcc/ada/a-fzteio.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
23556+++ gcc/ada/a-fzteio.ads (.../branches/gcc-4_7-branch) (wersja 187906)
23557
23558Zmiany atrybutów dla: gcc/ada/a-fzteio.ads
23559___________________________________________________________________
23560Deleted: svn:executable
23561## -1 +0,0 ##
23562-*
23563\ No newline at end of property
23564Index: gcc/ada/s-inmaop-vxworks.adb
23565===================================================================
23566--- gcc/ada/s-inmaop-vxworks.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
23567+++ gcc/ada/s-inmaop-vxworks.adb (.../branches/gcc-4_7-branch) (wersja 187906)
23568
23569Zmiany atrybutów dla: gcc/ada/s-inmaop-vxworks.adb
23570___________________________________________________________________
23571Deleted: svn:executable
23572## -1 +0,0 ##
23573-*
23574\ No newline at end of property
23575Index: gcc/ada/g-decstr.adb
23576===================================================================
23577--- gcc/ada/g-decstr.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
23578+++ gcc/ada/g-decstr.adb (.../branches/gcc-4_7-branch) (wersja 187906)
23579
23580Zmiany atrybutów dla: gcc/ada/g-decstr.adb
23581___________________________________________________________________
23582Deleted: svn:executable
23583## -1 +0,0 ##
23584-*
23585\ No newline at end of property
23586Index: gcc/ada/g-decstr.ads
23587===================================================================
23588--- gcc/ada/g-decstr.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
23589+++ gcc/ada/g-decstr.ads (.../branches/gcc-4_7-branch) (wersja 187906)
23590
23591Zmiany atrybutów dla: gcc/ada/g-decstr.ads
23592___________________________________________________________________
23593Deleted: svn:executable
23594## -1 +0,0 ##
23595-*
23596\ No newline at end of property
23597Index: gcc/ada/a-coteio.ads
23598===================================================================
23599--- gcc/ada/a-coteio.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
23600+++ gcc/ada/a-coteio.ads (.../branches/gcc-4_7-branch) (wersja 187906)
23601
23602Zmiany atrybutów dla: gcc/ada/a-coteio.ads
23603___________________________________________________________________
23604Deleted: svn:executable
23605## -1 +0,0 ##
23606-*
23607\ No newline at end of property
23608Index: gcc/ada/s-except.adb
23609===================================================================
23610--- gcc/ada/s-except.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
23611+++ gcc/ada/s-except.adb (.../branches/gcc-4_7-branch) (wersja 187906)
23612
23613Zmiany atrybutów dla: gcc/ada/s-except.adb
23614___________________________________________________________________
23615Deleted: svn:executable
23616## -1 +0,0 ##
23617-*
23618\ No newline at end of property
23619Index: gcc/ada/g-spchge.adb
23620===================================================================
23621--- gcc/ada/g-spchge.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
23622+++ gcc/ada/g-spchge.adb (.../branches/gcc-4_7-branch) (wersja 187906)
23623
23624Zmiany atrybutów dla: gcc/ada/g-spchge.adb
23625___________________________________________________________________
23626Deleted: svn:executable
23627## -1 +0,0 ##
23628-*
23629\ No newline at end of property
23630Index: gcc/ada/ChangeLog
23631===================================================================
23632--- gcc/ada/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187906)
23633+++ gcc/ada/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187906)
23634@@ -1,3 +1,154 @@
23635+2012-05-25 Eric Botcazou <ebotcazou@adacore.com>
23636+
23637+ PR ada/52362
23638+ * link.c (__gnat_object_file_option): Set to "-Wl,@" for GNU linker.
23639+ (__gnat_using_gnu_linker): Delete.
23640+ * gnatlink.adb (Gnatlink): Declare Object_File_Option_Ptr here...
23641+ Declare Object_File_Option string constant and Using_GNU_response_file
23642+ boolean constant.
23643+ (Process_Binder_File): ...instead of here. Delete Using_GNU_Linker,
23644+ Opening and Closing local variables. Do not handle the GNU linker
23645+ specially.
23646+ (Write_RF): New procedure to write into the response file. Escape some
23647+ characters if a GNU response file is used. Keep track of error status.
23648+ Invoke Write_RF to write into the response file. Delete the file only
23649+ if the link was successful.
23650+ * mlib-utl.adb: Do not `with' package System.
23651+ (Gcc): Likewise. Declare Object_File_Option string constant and
23652+ Using_GNU_response_file boolean constant.
23653+ (Write_RF): Take a string instead of address and length. Escape some
23654+ characters if a GNU response file is used.
23655+ Invoke Write_RF to write into the response file. Delete the file only
23656+ if the link was successful. Do not warn if it cannot be deleted.
23657+
23658+2012-05-20 Eric Botcazou <ebotcazou@adacore.com>
23659+
23660+ * gcc-interface/utils.c (gnat_write_global_declarations): Put a name
23661+ on the dummy global variable.
23662+
23663+2012-05-19 Eric Botcazou <ebotcazou@adacore.com>
23664+
23665+ * gcc-interface/decl.c (Has_Thiscall_Convention): New macro.
23666+ (gnat_to_gnu_entity) <E_Subprogram_Type>: Test it to set the thiscall
23667+ calling convention
23668+ (get_minimal_subprog_decl): Likewise.
23669+ (gnat_first_param_is_class): New predicate.
23670+
23671+ Backport from mainline
23672+ 2012-05-15 Javier Miranda <miranda@adacore.com>
23673+
23674+ * exp_ch3.adb (Build_Offset_To_Top): Modify the
23675+ expansion of the offset_to_top functions to ensure that their
23676+ profile is conformant with the profile specified in Ada.Tags. No
23677+ change in functionality.
23678+
23679+2012-05-18 Eric Botcazou <ebotcazou@adacore.com>
23680+
23681+ * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: For an object at
23682+ global level with unconstrained nominal subtype and a non-fixed size,
23683+ make a variable for the size.
23684+
23685+2012-05-15 Andris Pavenis <andris.pavenis@iki.fi>
23686+
23687+ PR ada/52494
23688+ * s-taprop-dummy.adb (Specific): New package.
23689+
23690+2012-05-15 Eric Botcazou <ebotcazou@adacore.com>
23691+
23692+ * sem_prag.adb (Process_Atomic_Shared_Volatile): Propagate
23693+ atomicity from an object to its underlying type only if it
23694+ is composite.
23695+
23696+2012-05-06 Pascal Obry <obry@adacore.com>
23697+
23698+ Revert
23699+ 2012-02-24 Dave Korn <dave.korn.cygwin@gmail.com>
23700+
23701+ * gcc-interface/Makefile.in (WIN_SO_PREFIX [windows targets]): New
23702+ Windows-specific make variable.
23703+ (WIN_SO_INSTALL_DIR [windows targets]): Likewise.
23704+ (install-gnatlib): Respect the above during installation when set,
23705+ and also install any windows import library that has been built.
23706+ (gnatlib-shared-win32): Use WIN_SO_PREFIX to name output DLL and also
23707+ build a corresponding import library.
23708+
23709+2012-04-30 Eric Botcazou <ebotcazou@adacore.com>
23710+
23711+ * gcc-interface/utils.c (finish_record_type): Force the traditional GCC
23712+ layout for bitfields on the type if it is packed or has a representation
23713+ clause and an alternate layout is available.
23714+
23715+2012-04-09 Mike Stump <mikestump@comcast.net>
23716+
23717+ * a-assert.ads: Remove execute permission.
23718+ * a-chacon.ads: Likewise.
23719+ * a-coteio.ads: Likewise.
23720+ * a-envvar.ads: Likewise.
23721+ * a-exetim-mingw.ads: Likewise.
23722+ * a-fzteio.ads: Likewise.
23723+ * a-izteio.ads: Likewise.
23724+ * a-lcteio.ads: Likewise.
23725+ * a-llctio.ads: Likewise.
23726+ * a-scteio.ads: Likewise.
23727+ * a-suenco.ads: Likewise.
23728+ * a-suenst.ads: Likewise.
23729+ * a-suewst.ads: Likewise.
23730+ * a-suezst.ads: Likewise.
23731+ * a-tirsfi.ads: Likewise.
23732+ * a-wichha.ads: Likewise.
23733+ * a-zchara.ads: Likewise.
23734+ * a-zchhan.ads: Likewise.
23735+ * a-zchuni.ads: Likewise.
23736+ * a-zrstfi.ads: Likewise.
23737+ * aspects.ads: Likewise.
23738+ * g-byorma.ads: Likewise.
23739+ * g-decstr.ads: Likewise.
23740+ * g-encstr.ads: Likewise.
23741+ * g-spchge.ads: Likewise.
23742+ * g-u3spch.ads: Likewise.
23743+ * g-wispch.ads: Likewise.
23744+ * g-zspche.ads: Likewise.
23745+ * namet-sp.ads: Likewise.
23746+ * s-os_lib.ads: Likewise.
23747+ * s-regexp.ads: Likewise.
23748+ * s-regpat.ads: Likewise.
23749+ * s-string.ads: Likewise.
23750+ * s-tasloc.ads: Likewise.
23751+ * s-utf_32.ads: Likewise.
23752+ * sem_aux.ads: Likewise.
23753+ * a-assert.adb: Likewise.
23754+ * a-chacon.adb: Likewise.
23755+ * a-envvar.adb: Likewise.
23756+ * a-exetim-mingw.adb: Likewise.
23757+ * a-suenco.adb: Likewise.
23758+ * a-suenst.adb: Likewise.
23759+ * a-suewst.adb: Likewise.
23760+ * a-suezst.adb: Likewise.
23761+ * a-tirsfi.adb: Likewise.
23762+ * a-wichha.adb: Likewise.
23763+ * a-zchhan.adb: Likewise.
23764+ * a-zchuni.adb: Likewise.
23765+ * a-zrstfi.adb: Likewise.
23766+ * aspects.adb: Likewise.
23767+ * g-byorma.adb: Likewise.
23768+ * g-decstr.adb: Likewise.
23769+ * g-encstr.adb: Likewise.
23770+ * g-spchge.adb: Likewise.
23771+ * g-u3spch.adb: Likewise.
23772+ * g-wispch.adb: Likewise.
23773+ * g-zspche.adb: Likewise.
23774+ * namet-sp.adb: Likewise.
23775+ * s-except.adb: Likewise.
23776+ * s-inmaop-vxworks.adb: Likewise.
23777+ * s-os_lib.adb: Likewise.
23778+ * s-regexp.adb: Likewise.
23779+ * s-regpat.adb: Likewise.
23780+ * s-string.adb: Likewise.
23781+ * s-tasloc.adb: Likewise.
23782+ * s-utf_32.adb: Likewise.
23783+ * s-wchcon.adb: Likewise.
23784+ * sem_aux.adb: Likewise.
23785+
23786 2012-03-22 Release Manager
23787
23788 * GCC 4.7.0 released.
23789Index: gcc/ada/g-spchge.ads
23790===================================================================
23791--- gcc/ada/g-spchge.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
23792+++ gcc/ada/g-spchge.ads (.../branches/gcc-4_7-branch) (wersja 187906)
23793
23794Zmiany atrybutów dla: gcc/ada/g-spchge.ads
23795___________________________________________________________________
23796Deleted: svn:executable
23797## -1 +0,0 ##
23798-*
23799\ No newline at end of property
23800Index: gcc/ada/g-u3spch.adb
23801===================================================================
23802--- gcc/ada/g-u3spch.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
23803+++ gcc/ada/g-u3spch.adb (.../branches/gcc-4_7-branch) (wersja 187906)
23804
23805Zmiany atrybutów dla: gcc/ada/g-u3spch.adb
23806___________________________________________________________________
23807Deleted: svn:executable
23808## -1 +0,0 ##
23809-*
23810\ No newline at end of property
23811Index: gcc/ada/g-u3spch.ads
23812===================================================================
23813--- gcc/ada/g-u3spch.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
23814+++ gcc/ada/g-u3spch.ads (.../branches/gcc-4_7-branch) (wersja 187906)
23815
23816Zmiany atrybutów dla: gcc/ada/g-u3spch.ads
23817___________________________________________________________________
23818Deleted: svn:executable
23819## -1 +0,0 ##
23820-*
23821\ No newline at end of property
23822Index: gcc/ada/s-utf_32.adb
23823===================================================================
23824--- gcc/ada/s-utf_32.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
23825+++ gcc/ada/s-utf_32.adb (.../branches/gcc-4_7-branch) (wersja 187906)
23826
23827Zmiany atrybutów dla: gcc/ada/s-utf_32.adb
23828___________________________________________________________________
23829Deleted: svn:executable
23830## -1 +0,0 ##
23831-*
23832\ No newline at end of property
23833Index: gcc/ada/s-utf_32.ads
23834===================================================================
23835--- gcc/ada/s-utf_32.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
23836+++ gcc/ada/s-utf_32.ads (.../branches/gcc-4_7-branch) (wersja 187906)
23837
23838Zmiany atrybutów dla: gcc/ada/s-utf_32.ads
23839___________________________________________________________________
23840Deleted: svn:executable
23841## -1 +0,0 ##
23842-*
23843\ No newline at end of property
23844Index: gcc/ada/aspects.adb
23845===================================================================
23846--- gcc/ada/aspects.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
23847+++ gcc/ada/aspects.adb (.../branches/gcc-4_7-branch) (wersja 187906)
23848
23849Zmiany atrybutów dla: gcc/ada/aspects.adb
23850___________________________________________________________________
23851Deleted: svn:executable
23852## -1 +0,0 ##
23853-*
23854\ No newline at end of property
23855Index: gcc/ada/aspects.ads
23856===================================================================
23857--- gcc/ada/aspects.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
23858+++ gcc/ada/aspects.ads (.../branches/gcc-4_7-branch) (wersja 187906)
23859
23860Zmiany atrybutów dla: gcc/ada/aspects.ads
23861___________________________________________________________________
23862Deleted: svn:executable
23863## -1 +0,0 ##
23864-*
23865\ No newline at end of property
23866Index: gcc/ada/a-izteio.ads
23867===================================================================
23868--- gcc/ada/a-izteio.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
23869+++ gcc/ada/a-izteio.ads (.../branches/gcc-4_7-branch) (wersja 187906)
23870
23871Zmiany atrybutów dla: gcc/ada/a-izteio.ads
23872___________________________________________________________________
23873Deleted: svn:executable
23874## -1 +0,0 ##
23875-*
23876\ No newline at end of property
23877Index: gcc/ada/g-byorma.adb
23878===================================================================
23879--- gcc/ada/g-byorma.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
23880+++ gcc/ada/g-byorma.adb (.../branches/gcc-4_7-branch) (wersja 187906)
23881
23882Zmiany atrybutów dla: gcc/ada/g-byorma.adb
23883___________________________________________________________________
23884Deleted: svn:executable
23885## -1 +0,0 ##
23886-*
23887\ No newline at end of property
23888Index: gcc/ada/g-byorma.ads
23889===================================================================
23890--- gcc/ada/g-byorma.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
23891+++ gcc/ada/g-byorma.ads (.../branches/gcc-4_7-branch) (wersja 187906)
23892
23893Zmiany atrybutów dla: gcc/ada/g-byorma.ads
23894___________________________________________________________________
23895Deleted: svn:executable
23896## -1 +0,0 ##
23897-*
23898\ No newline at end of property
23899Index: gcc/ada/s-regexp.adb
23900===================================================================
23901--- gcc/ada/s-regexp.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
23902+++ gcc/ada/s-regexp.adb (.../branches/gcc-4_7-branch) (wersja 187906)
23903
23904Zmiany atrybutów dla: gcc/ada/s-regexp.adb
23905___________________________________________________________________
23906Deleted: svn:executable
23907## -1 +0,0 ##
23908-*
23909\ No newline at end of property
23910Index: gcc/ada/s-regexp.ads
23911===================================================================
23912--- gcc/ada/s-regexp.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
23913+++ gcc/ada/s-regexp.ads (.../branches/gcc-4_7-branch) (wersja 187906)
23914
23915Zmiany atrybutów dla: gcc/ada/s-regexp.ads
23916___________________________________________________________________
23917Deleted: svn:executable
23918## -1 +0,0 ##
23919-*
23920\ No newline at end of property
23921Index: gcc/ada/a-suenst.adb
23922===================================================================
23923--- gcc/ada/a-suenst.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
23924+++ gcc/ada/a-suenst.adb (.../branches/gcc-4_7-branch) (wersja 187906)
23925
23926Zmiany atrybutów dla: gcc/ada/a-suenst.adb
23927___________________________________________________________________
23928Deleted: svn:executable
23929## -1 +0,0 ##
23930-*
23931\ No newline at end of property
23932Index: gcc/ada/a-suenst.ads
23933===================================================================
23934--- gcc/ada/a-suenst.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
23935+++ gcc/ada/a-suenst.ads (.../branches/gcc-4_7-branch) (wersja 187906)
23936
23937Zmiany atrybutów dla: gcc/ada/a-suenst.ads
23938___________________________________________________________________
23939Deleted: svn:executable
23940## -1 +0,0 ##
23941-*
23942\ No newline at end of property
23943Index: gcc/ada/s-wchcon.adb
23944===================================================================
23945--- gcc/ada/s-wchcon.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
23946+++ gcc/ada/s-wchcon.adb (.../branches/gcc-4_7-branch) (wersja 187906)
23947
23948Zmiany atrybutów dla: gcc/ada/s-wchcon.adb
23949___________________________________________________________________
23950Deleted: svn:executable
23951## -1 +0,0 ##
23952-*
23953\ No newline at end of property
23954Index: gcc/ada/g-zspche.adb
23955===================================================================
23956--- gcc/ada/g-zspche.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
23957+++ gcc/ada/g-zspche.adb (.../branches/gcc-4_7-branch) (wersja 187906)
23958
23959Zmiany atrybutów dla: gcc/ada/g-zspche.adb
23960___________________________________________________________________
23961Deleted: svn:executable
23962## -1 +0,0 ##
23963-*
23964\ No newline at end of property
23965Index: gcc/ada/a-llctio.ads
23966===================================================================
23967--- gcc/ada/a-llctio.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
23968+++ gcc/ada/a-llctio.ads (.../branches/gcc-4_7-branch) (wersja 187906)
23969
23970Zmiany atrybutów dla: gcc/ada/a-llctio.ads
23971___________________________________________________________________
23972Deleted: svn:executable
23973## -1 +0,0 ##
23974-*
23975\ No newline at end of property
23976Index: gcc/ada/g-zspche.ads
23977===================================================================
23978--- gcc/ada/g-zspche.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
23979+++ gcc/ada/g-zspche.ads (.../branches/gcc-4_7-branch) (wersja 187906)
23980
23981Zmiany atrybutów dla: gcc/ada/g-zspche.ads
23982___________________________________________________________________
23983Deleted: svn:executable
23984## -1 +0,0 ##
23985-*
23986\ No newline at end of property
23987Index: gcc/ada/a-exetim-mingw.adb
23988===================================================================
23989--- gcc/ada/a-exetim-mingw.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
23990+++ gcc/ada/a-exetim-mingw.adb (.../branches/gcc-4_7-branch) (wersja 187906)
23991
23992Zmiany atrybutów dla: gcc/ada/a-exetim-mingw.adb
23993___________________________________________________________________
23994Deleted: svn:executable
23995## -1 +0,0 ##
23996-*
23997\ No newline at end of property
23998Index: gcc/ada/a-exetim-mingw.ads
23999===================================================================
24000--- gcc/ada/a-exetim-mingw.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
24001+++ gcc/ada/a-exetim-mingw.ads (.../branches/gcc-4_7-branch) (wersja 187906)
24002
24003Zmiany atrybutów dla: gcc/ada/a-exetim-mingw.ads
24004___________________________________________________________________
24005Deleted: svn:executable
24006## -1 +0,0 ##
24007-*
24008\ No newline at end of property
24009Index: gcc/ada/a-wichha.adb
24010===================================================================
24011--- gcc/ada/a-wichha.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
24012+++ gcc/ada/a-wichha.adb (.../branches/gcc-4_7-branch) (wersja 187906)
24013
24014Zmiany atrybutów dla: gcc/ada/a-wichha.adb
24015___________________________________________________________________
24016Deleted: svn:executable
24017## -1 +0,0 ##
24018-*
24019\ No newline at end of property
24020Index: gcc/ada/a-wichha.ads
24021===================================================================
24022--- gcc/ada/a-wichha.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
24023+++ gcc/ada/a-wichha.ads (.../branches/gcc-4_7-branch) (wersja 187906)
24024
24025Zmiany atrybutów dla: gcc/ada/a-wichha.ads
24026___________________________________________________________________
24027Deleted: svn:executable
24028## -1 +0,0 ##
24029-*
24030\ No newline at end of property
24031Index: gcc/ada/gcc-interface/utils.c
24032===================================================================
24033--- gcc/ada/gcc-interface/utils.c (.../tags/gcc_4_7_0_release) (wersja 187906)
24034+++ gcc/ada/gcc-interface/utils.c (.../branches/gcc-4_7-branch) (wersja 187906)
24035@@ -704,6 +704,19 @@
24036 case where there is a rep clause but all fields have errors and
24037 no longer have a position. */
24038 TYPE_SIZE (record_type) = 0;
24039+
24040+ /* Ensure we use the traditional GCC layout for bitfields when we need
24041+ to pack the record type or have a representation clause. The other
24042+ possible layout (Microsoft C compiler), if available, would prevent
24043+ efficient packing in almost all cases. */
24044+#ifdef TARGET_MS_BITFIELD_LAYOUT
24045+ if (TARGET_MS_BITFIELD_LAYOUT && TYPE_PACKED (record_type))
24046+ decl_attributes (&record_type,
24047+ tree_cons (get_identifier ("gcc_struct"),
24048+ NULL_TREE, NULL_TREE),
24049+ ATTR_FLAG_TYPE_IN_PLACE);
24050+#endif
24051+
24052 layout_type (record_type);
24053 }
24054
24055@@ -4896,8 +4909,12 @@
24056 if (!VEC_empty (tree, types_used_by_cur_var_decl))
24057 {
24058 struct varpool_node *node;
24059+ char *label;
24060+
24061+ ASM_FORMAT_PRIVATE_NAME (label, first_global_object_name, 0);
24062 dummy_global
24063- = build_decl (BUILTINS_LOCATION, VAR_DECL, NULL_TREE, void_type_node);
24064+ = build_decl (BUILTINS_LOCATION, VAR_DECL, get_identifier (label),
24065+ void_type_node);
24066 TREE_STATIC (dummy_global) = 1;
24067 TREE_ASM_WRITTEN (dummy_global) = 1;
24068 node = varpool_node (dummy_global);
24069Index: gcc/ada/gcc-interface/Makefile.in
24070===================================================================
24071--- gcc/ada/gcc-interface/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187906)
24072+++ gcc/ada/gcc-interface/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187906)
24073@@ -1589,19 +1589,16 @@
24074 # the Cygwin port has always been a CygMing frankenhybrid and it is
24075 # a long-term project to disentangle them.
24076 ifeq ($(strip $(filter-out cygwin%,$(osys))),)
24077- WIN_SO_PREFIX=cyg
24078 LIBGNAT_TARGET_PAIRS = \
24079 s-memory.adb<s-memory.adb \
24080 g-socthi.ads<g-socthi.ads \
24081 g-socthi.adb<g-socthi.adb
24082 else
24083- WIN_SO_PREFIX=lib
24084 LIBGNAT_TARGET_PAIRS = \
24085 s-memory.adb<s-memory-mingw.adb \
24086 g-socthi.ads<g-socthi-mingw.ads \
24087 g-socthi.adb<g-socthi-mingw.adb
24088 endif
24089- WIN_SO_INSTALL_DIR = $(bindir)
24090 LIBGNAT_TARGET_PAIRS += \
24091 a-dirval.adb<a-dirval-mingw.adb \
24092 a-excpol.adb<a-excpol-abort.adb \
24093@@ -2452,14 +2449,11 @@
24094 # for shared libraries on some targets, e.g. on HP-UX where the x
24095 # permission is required.
24096 # Also install the .dSYM directories if they exist (these directories
24097-# contain the debug information for the shared libraries on darwin),
24098-# and the windows import libraries if they exist.
24099- libpfx=$(if $(WIN_SO_PREFIX),$(WIN_SO_PREFIX),lib); \
24100- librtlobjdir=$(if $(WIN_SO_INSTALL_DIR),$(WIN_SO_INSTALL_DIR),$(ADA_RTL_OBJ_DIR)); \
24101+# contain the debug information for the shared libraries on darwin)
24102 for file in gnat gnarl; do \
24103- if [ -f $(RTSDIR)/$${libpfx}$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) ]; then \
24104- $(INSTALL) $(RTSDIR)/$${libpfx}$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) \
24105- $(DESTDIR)$${librtlobjdir}; \
24106+ if [ -f $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) ]; then \
24107+ $(INSTALL) $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) \
24108+ $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
24109 fi; \
24110 if [ -f $(RTSDIR)/lib$${file}$(soext) ]; then \
24111 $(LN_S) lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) \
24112@@ -2469,10 +2463,6 @@
24113 $(CP) -r $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).dSYM \
24114 $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
24115 fi; \
24116- if [ -f $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext)$(arext) ]; then \
24117- $(INSTALL_DATA) $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext)$(arext) \
24118- $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
24119- fi; \
24120 done
24121 # This copy must be done preserving the date on the original file.
24122 for file in $(RTSDIR)/*.ad?; do \
24123@@ -2684,18 +2674,16 @@
24124 cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
24125 | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared -shared-libgcc \
24126 $(PICFLAG_FOR_TARGET) \
24127- -o $(WIN_SO_PREFIX)gnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
24128- -Wl,-out-implib,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)$(arext) \
24129+ -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
24130 $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \
24131- $(SO_OPTS)$(WIN_SO_PREFIX)gnat$(hyphen)$(LIBRARY_VERSION)$(soext) $(MISCLIB)
24132+ $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) $(MISCLIB)
24133 cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
24134 | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared -shared-libgcc \
24135 $(PICFLAG_FOR_TARGET) \
24136- -o $(WIN_SO_PREFIX)gnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
24137- -Wl,-out-implib,libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext)$(arext) \
24138+ -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
24139 $(GNATRTL_TASKING_OBJS) \
24140- $(SO_OPTS)$(WIN_SO_PREFIX)gnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
24141- $(THREADSLIB) -L. -lgnat$(hyphen)$(LIBRARY_VERSION)
24142+ $(SO_OPTS)libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
24143+ $(THREADSLIB) -Wl,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)
24144
24145 gnatlib-shared-darwin:
24146 $(MAKE) $(FLAGS_TO_PASS) \
24147Index: gcc/ada/gcc-interface/decl.c
24148===================================================================
24149--- gcc/ada/gcc-interface/decl.c (.../tags/gcc_4_7_0_release) (wersja 187906)
24150+++ gcc/ada/gcc-interface/decl.c (.../branches/gcc-4_7-branch) (wersja 187906)
24151@@ -50,19 +50,23 @@
24152 #include "ada-tree.h"
24153 #include "gigi.h"
24154
24155-/* Convention_Stdcall should be processed in a specific way on 32 bits
24156- Windows targets only. The macro below is a helper to avoid having to
24157- check for a Windows specific attribute throughout this unit. */
24158+/* "stdcall" and "thiscall" conventions should be processed in a specific way
24159+ on 32-bit x86/Windows only. The macros below are helpers to avoid having
24160+ to check for a Windows specific attribute throughout this unit. */
24161
24162 #if TARGET_DLLIMPORT_DECL_ATTRIBUTES
24163 #ifdef TARGET_64BIT
24164 #define Has_Stdcall_Convention(E) \
24165 (!TARGET_64BIT && Convention (E) == Convention_Stdcall)
24166+#define Has_Thiscall_Convention(E) \
24167+ (!TARGET_64BIT && gnat_first_param_is_class (E))
24168 #else
24169 #define Has_Stdcall_Convention(E) (Convention (E) == Convention_Stdcall)
24170+#define Has_Thiscall_Convention(E) (gnat_first_param_is_class (E))
24171 #endif
24172 #else
24173 #define Has_Stdcall_Convention(E) 0
24174+#define Has_Thiscall_Convention(E) 0
24175 #endif
24176
24177 /* Stack realignment is necessary for functions with foreign conventions when
24178@@ -140,6 +144,7 @@
24179
24180 static void relate_alias_sets (tree, tree, enum alias_set_op);
24181
24182+static bool gnat_first_param_is_class (Entity_Id) ATTRIBUTE_UNUSED;
24183 static bool allocatable_size_p (tree, bool);
24184 static void prepend_one_attribute_to (struct attrib **,
24185 enum attr_type, tree, tree, Node_Id);
24186@@ -778,6 +783,14 @@
24187 gnu_size = max_size (TYPE_SIZE (gnu_type), true);
24188 mutable_p = true;
24189 }
24190+
24191+ /* If we are at global level and the size isn't constant, call
24192+ elaborate_expression_1 to make a variable for it rather than
24193+ calculating it each time. */
24194+ if (global_bindings_p () && !TREE_CONSTANT (gnu_size))
24195+ gnu_size = elaborate_expression_1 (gnu_size, gnat_entity,
24196+ get_identifier ("SIZE"),
24197+ definition, false);
24198 }
24199
24200 /* If the size is zero byte, make it one byte since some linkers have
24201@@ -4402,6 +4415,11 @@
24202 (&attr_list, ATTR_MACHINE_ATTRIBUTE,
24203 get_identifier ("stdcall"), NULL_TREE,
24204 gnat_entity);
24205+ else if (Has_Thiscall_Convention (gnat_entity))
24206+ prepend_one_attribute_to
24207+ (&attr_list, ATTR_MACHINE_ATTRIBUTE,
24208+ get_identifier ("thiscall"), NULL_TREE,
24209+ gnat_entity);
24210
24211 /* If we should request stack realignment for a foreign convention
24212 subprogram, do so. Note that this applies to task entry points in
24213@@ -5282,6 +5300,10 @@
24214 prepend_one_attribute_to (&attr_list, ATTR_MACHINE_ATTRIBUTE,
24215 get_identifier ("stdcall"), NULL_TREE,
24216 gnat_entity);
24217+ else if (Has_Thiscall_Convention (gnat_entity))
24218+ prepend_one_attribute_to (&attr_list, ATTR_MACHINE_ATTRIBUTE,
24219+ get_identifier ("thiscall"), NULL_TREE,
24220+ gnat_entity);
24221
24222 if (No (Interface_Name (gnat_entity)) && gnu_ext_name == gnu_entity_name)
24223 gnu_ext_name = NULL_TREE;
24224@@ -5330,6 +5352,63 @@
24225 }
24226 }
24227
24228+/* Return whether the E_Subprogram_Type/E_Function/E_Procedure GNAT_ENTITY has
24229+ a first parameter with a class or equivalent type.
24230+
24231+ We use the predicate on 32-bit x86/Windows to find out whether we need to
24232+ use the "thiscall" calling convention for GNAT_ENTITY. This convention is
24233+ the one set for C++ methods (functions with METHOD_TYPE) by the back-end.
24234+ Now in Ada primitive operations are regular subprograms (e.g. you can have
24235+ common pointers to both) so we cannot compute an equivalent of METHOD_TYPE
24236+ and so we set the calling convention in an uniform way. */
24237+
24238+static bool
24239+gnat_first_param_is_class (Entity_Id gnat_entity)
24240+{
24241+ Entity_Id gnat_param = First_Formal_With_Extras (gnat_entity);
24242+ Entity_Id gnat_type;
24243+ Node_Id node;
24244+
24245+ if (No (gnat_param))
24246+ return false;
24247+
24248+ gnat_type = Underlying_Type (Etype (gnat_param));
24249+
24250+ /* This is the main case. Note that we must return the same value for
24251+ regular tagged types and CW types since dispatching calls have a CW
24252+ type on the caller side and a tagged type on the callee side. */
24253+ if (Is_Tagged_Type (gnat_type))
24254+ return True;
24255+
24256+ /* C++ classes with no virtual functions can be imported as limited
24257+ record types, but we need to return true for the constructors. */
24258+ if (Is_CPP_Class (gnat_type))
24259+ return True;
24260+
24261+ /* The language-level "protected" calling convention doesn't distinguish
24262+ tagged protected types from non-tagged protected types (e.g. you can
24263+ have common pointers to both) so we must use a single low-level calling
24264+ convention for it. Since tagged protected types can be derived from
24265+ simple limited interfaces, we need to pick the calling convention of
24266+ the latters. */
24267+ if (Is_Protected_Record_Type (gnat_type))
24268+ return True;
24269+
24270+ /* If this is the special E_Subprogram_Type built for the declaration of
24271+ an access to protected subprogram type, the first parameter will have
24272+ type Address, but we must return true to be consistent with above. */
24273+ if (Is_Itype (gnat_entity)
24274+ && Present (node = Associated_Node_For_Itype (gnat_entity))
24275+ && Nkind (node) == N_Full_Type_Declaration
24276+ && Ekind (Defining_Identifier (node)) == E_Access_Subprogram_Type
24277+ && Present (node = Original_Access_Type (Defining_Identifier (node)))
24278+ && (Ekind (node) == E_Access_Protected_Subprogram_Type
24279+ || Ekind (node) == E_Anonymous_Access_Protected_Subprogram_Type))
24280+ return True;
24281+
24282+ return False;
24283+}
24284+
24285 /* Finalize the processing of From_With_Type incomplete types. */
24286
24287 void
24288Index: gcc/ada/namet-sp.adb
24289===================================================================
24290--- gcc/ada/namet-sp.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
24291+++ gcc/ada/namet-sp.adb (.../branches/gcc-4_7-branch) (wersja 187906)
24292
24293Zmiany atrybutów dla: gcc/ada/namet-sp.adb
24294___________________________________________________________________
24295Deleted: svn:executable
24296## -1 +0,0 ##
24297-*
24298\ No newline at end of property
24299Index: gcc/ada/namet-sp.ads
24300===================================================================
24301--- gcc/ada/namet-sp.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
24302+++ gcc/ada/namet-sp.ads (.../branches/gcc-4_7-branch) (wersja 187906)
24303
24304Zmiany atrybutów dla: gcc/ada/namet-sp.ads
24305___________________________________________________________________
24306Deleted: svn:executable
24307## -1 +0,0 ##
24308-*
24309\ No newline at end of property
24310Index: gcc/ada/a-assert.adb
24311===================================================================
24312--- gcc/ada/a-assert.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
24313+++ gcc/ada/a-assert.adb (.../branches/gcc-4_7-branch) (wersja 187906)
24314
24315Zmiany atrybutów dla: gcc/ada/a-assert.adb
24316___________________________________________________________________
24317Deleted: svn:executable
24318## -1 +0,0 ##
24319-*
24320\ No newline at end of property
24321Index: gcc/ada/a-assert.ads
24322===================================================================
24323--- gcc/ada/a-assert.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
24324+++ gcc/ada/a-assert.ads (.../branches/gcc-4_7-branch) (wersja 187906)
24325
24326Zmiany atrybutów dla: gcc/ada/a-assert.ads
24327___________________________________________________________________
24328Deleted: svn:executable
24329## -1 +0,0 ##
24330-*
24331\ No newline at end of property
24332Index: gcc/ada/a-suewst.adb
24333===================================================================
24334--- gcc/ada/a-suewst.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
24335+++ gcc/ada/a-suewst.adb (.../branches/gcc-4_7-branch) (wersja 187906)
24336
24337Zmiany atrybutów dla: gcc/ada/a-suewst.adb
24338___________________________________________________________________
24339Deleted: svn:executable
24340## -1 +0,0 ##
24341-*
24342\ No newline at end of property
24343Index: gcc/ada/a-suewst.ads
24344===================================================================
24345--- gcc/ada/a-suewst.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
24346+++ gcc/ada/a-suewst.ads (.../branches/gcc-4_7-branch) (wersja 187906)
24347
24348Zmiany atrybutów dla: gcc/ada/a-suewst.ads
24349___________________________________________________________________
24350Deleted: svn:executable
24351## -1 +0,0 ##
24352-*
24353\ No newline at end of property
24354Index: gcc/ada/a-scteio.ads
24355===================================================================
24356--- gcc/ada/a-scteio.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
24357+++ gcc/ada/a-scteio.ads (.../branches/gcc-4_7-branch) (wersja 187906)
24358
24359Zmiany atrybutów dla: gcc/ada/a-scteio.ads
24360___________________________________________________________________
24361Deleted: svn:executable
24362## -1 +0,0 ##
24363-*
24364\ No newline at end of property
24365Index: gcc/ada/exp_ch3.adb
24366===================================================================
24367--- gcc/ada/exp_ch3.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
24368+++ gcc/ada/exp_ch3.adb (.../branches/gcc-4_7-branch) (wersja 187906)
24369@@ -1883,9 +1883,10 @@
24370
24371 procedure Build_Offset_To_Top_Function (Iface_Comp : Entity_Id);
24372 -- Generate:
24373- -- function Fxx (O : in Rec_Typ) return Storage_Offset is
24374+ -- function Fxx (O : Address) return Storage_Offset is
24375+ -- type Acc is access all <Typ>;
24376 -- begin
24377- -- return O.Iface_Comp'Position;
24378+ -- return Acc!(O).Iface_Comp'Position;
24379 -- end Fxx;
24380
24381 ----------------------------------
24382@@ -1896,6 +1897,7 @@
24383 Body_Node : Node_Id;
24384 Func_Id : Entity_Id;
24385 Spec_Node : Node_Id;
24386+ Acc_Type : Entity_Id;
24387
24388 begin
24389 Func_Id := Make_Temporary (Loc, 'F');
24390@@ -1912,7 +1914,7 @@
24391 Make_Defining_Identifier (Loc, Name_uO),
24392 In_Present => True,
24393 Parameter_Type =>
24394- New_Reference_To (Rec_Type, Loc))));
24395+ New_Reference_To (RTE (RE_Address), Loc))));
24396 Set_Result_Definition (Spec_Node,
24397 New_Reference_To (RTE (RE_Storage_Offset), Loc));
24398
24399@@ -1924,7 +1926,19 @@
24400
24401 Body_Node := New_Node (N_Subprogram_Body, Loc);
24402 Set_Specification (Body_Node, Spec_Node);
24403- Set_Declarations (Body_Node, New_List);
24404+
24405+ Acc_Type := Make_Temporary (Loc, 'T');
24406+ Set_Declarations (Body_Node, New_List (
24407+ Make_Full_Type_Declaration (Loc,
24408+ Defining_Identifier => Acc_Type,
24409+ Type_Definition =>
24410+ Make_Access_To_Object_Definition (Loc,
24411+ All_Present => True,
24412+ Null_Exclusion_Present => False,
24413+ Constant_Present => False,
24414+ Subtype_Indication =>
24415+ New_Reference_To (Rec_Type, Loc)))));
24416+
24417 Set_Handled_Statement_Sequence (Body_Node,
24418 Make_Handled_Sequence_Of_Statements (Loc,
24419 Statements => New_List (
24420@@ -1933,7 +1947,9 @@
24421 Make_Attribute_Reference (Loc,
24422 Prefix =>
24423 Make_Selected_Component (Loc,
24424- Prefix => Make_Identifier (Loc, Name_uO),
24425+ Prefix =>
24426+ Unchecked_Convert_To (Acc_Type,
24427+ Make_Identifier (Loc, Name_uO)),
24428 Selector_Name =>
24429 New_Reference_To (Iface_Comp, Loc)),
24430 Attribute_Name => Name_Position)))));
24431Index: gcc/ada/s-os_lib.adb
24432===================================================================
24433--- gcc/ada/s-os_lib.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
24434+++ gcc/ada/s-os_lib.adb (.../branches/gcc-4_7-branch) (wersja 187906)
24435
24436Zmiany atrybutów dla: gcc/ada/s-os_lib.adb
24437___________________________________________________________________
24438Deleted: svn:executable
24439## -1 +0,0 ##
24440-*
24441\ No newline at end of property
24442Index: gcc/ada/s-os_lib.ads
24443===================================================================
24444--- gcc/ada/s-os_lib.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
24445+++ gcc/ada/s-os_lib.ads (.../branches/gcc-4_7-branch) (wersja 187906)
24446
24447Zmiany atrybutów dla: gcc/ada/s-os_lib.ads
24448___________________________________________________________________
24449Deleted: svn:executable
24450## -1 +0,0 ##
24451-*
24452\ No newline at end of property
24453Index: gcc/ada/s-taprop-dummy.adb
24454===================================================================
24455--- gcc/ada/s-taprop-dummy.adb (.../tags/gcc_4_7_0_release) (wersja 187906)
24456+++ gcc/ada/s-taprop-dummy.adb (.../branches/gcc-4_7-branch) (wersja 187906)
24457@@ -6,7 +6,7 @@
24458 -- --
24459 -- B o d y --
24460 -- --
24461--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
24462+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
24463 -- --
24464 -- GNARL is free software; you can redistribute it and/or modify it under --
24465 -- terms of the GNU General Public License as published by the Free Soft- --
24466@@ -46,6 +46,28 @@
24467 pragma Warnings (Off);
24468 -- Turn off warnings since so many unreferenced parameters
24469
24470+ --------------------
24471+ -- Local Packages --
24472+ --------------------
24473+
24474+ package Specific is
24475+
24476+ procedure Set (Self_Id : Task_Id);
24477+ pragma Inline (Set);
24478+ -- Set the self id for the current task
24479+
24480+ end Specific;
24481+
24482+ package body Specific is
24483+
24484+ procedure Set (Self_Id : Task_Id) is
24485+ begin
24486+ null;
24487+ end Set;
24488+
24489+ end Specific;
24490+ -- The body of this package is target specific
24491+
24492 ----------------------------------
24493 -- ATCB allocation/deallocation --
24494 ----------------------------------
24495Index: gcc/ada/a-zchara.ads
24496===================================================================
24497--- gcc/ada/a-zchara.ads (.../tags/gcc_4_7_0_release) (wersja 187906)
24498+++ gcc/ada/a-zchara.ads (.../branches/gcc-4_7-branch) (wersja 187906)
24499
24500Zmiany atrybutów dla: gcc/ada/a-zchara.ads
24501___________________________________________________________________
24502Deleted: svn:executable
24503## -1 +0,0 ##
24504-*
24505\ No newline at end of property
24506Index: gcc/ada/link.c
24507===================================================================
24508--- gcc/ada/link.c (.../tags/gcc_4_7_0_release) (wersja 187906)
24509+++ gcc/ada/link.c (.../branches/gcc-4_7-branch) (wersja 187906)
24510@@ -72,27 +72,12 @@
24511 /* shared_libgcc_default gives the system dependent link method that */
24512 /* be used by default for linking libgcc (shared or static) */
24513
24514-/* using_gnu_linker is set to 1 when the GNU linker is used under this */
24515-/* target. */
24516-
24517 /* separate_run_path_options is set to 1 when separate "rpath" arguments */
24518 /* must be passed to the linker for each directory in the rpath. */
24519
24520 /* default_libgcc_subdir is the subdirectory name (from the installation */
24521 /* root) where we may find a shared libgcc to use by default. */
24522
24523-/* RESPONSE FILE & GNU LINKER */
24524-/* -------------------------- */
24525-/* objlist_file_supported and using_gnu_link used together tell gnatlink */
24526-/* to generate a GNU style response file. Note that object_file_option */
24527-/* must be set to "" in this case, since no option is required for a */
24528-/* response file to be passed to GNU ld. With a GNU linker we use the */
24529-/* linker script to implement the response file feature. Any file passed */
24530-/* in the GNU ld command line with an unknown extension is supposed to be */
24531-/* a linker script. Each linker script augment the current configuration. */
24532-/* The format of such response file is as follow : */
24533-/* INPUT (obj1.p obj2.o ...) */
24534-
24535 #define SHARED 'H'
24536 #define STATIC 'T'
24537
24538@@ -103,7 +88,6 @@
24539 unsigned char __gnat_objlist_file_supported = 1;
24540 char __gnat_shared_libgnat_default = STATIC;
24541 char __gnat_shared_libgcc_default = STATIC;
24542-unsigned char __gnat_using_gnu_linker = 0;
24543 const char *__gnat_object_library_extension = ".a";
24544 unsigned char __gnat_separate_run_path_options = 0;
24545 const char *__gnat_default_libgcc_subdir = "lib";
24546@@ -115,7 +99,6 @@
24547 unsigned char __gnat_objlist_file_supported = 1;
24548 char __gnat_shared_libgnat_default = STATIC;
24549 char __gnat_shared_libgcc_default = STATIC;
24550-unsigned char __gnat_using_gnu_linker = 0;
24551 const char *__gnat_object_library_extension = ".a";
24552 unsigned char __gnat_separate_run_path_options = 0;
24553
24554@@ -129,13 +112,12 @@
24555 #endif
24556
24557 #elif defined (__WIN32)
24558-const char *__gnat_object_file_option = "";
24559+const char *__gnat_object_file_option = "-Wl,@";
24560 const char *__gnat_run_path_option = "";
24561 int __gnat_link_max = 30000;
24562 unsigned char __gnat_objlist_file_supported = 1;
24563 char __gnat_shared_libgnat_default = STATIC;
24564 char __gnat_shared_libgcc_default = STATIC;
24565-unsigned char __gnat_using_gnu_linker = 1;
24566 const char *__gnat_object_library_extension = ".a";
24567 unsigned char __gnat_separate_run_path_options = 0;
24568 const char *__gnat_default_libgcc_subdir = "lib";
24569@@ -147,19 +129,17 @@
24570 unsigned char __gnat_objlist_file_supported = 1;
24571 char __gnat_shared_libgnat_default = STATIC;
24572 char __gnat_shared_libgcc_default = STATIC;
24573-unsigned char __gnat_using_gnu_linker = 0;
24574 const char *__gnat_object_library_extension = ".a";
24575 unsigned char __gnat_separate_run_path_options = 0;
24576 const char *__gnat_default_libgcc_subdir = "lib";
24577
24578 #elif defined (__FreeBSD__)
24579-const char *__gnat_object_file_option = "";
24580+const char *__gnat_object_file_option = "-Wl,@";
24581 const char *__gnat_run_path_option = "-Wl,-rpath,";
24582 char __gnat_shared_libgnat_default = STATIC;
24583 char __gnat_shared_libgcc_default = STATIC;
24584 int __gnat_link_max = 8192;
24585 unsigned char __gnat_objlist_file_supported = 1;
24586-unsigned char __gnat_using_gnu_linker = 1;
24587 const char *__gnat_object_library_extension = ".a";
24588 unsigned char __gnat_separate_run_path_options = 0;
24589 const char *__gnat_default_libgcc_subdir = "lib";
24590@@ -171,19 +151,17 @@
24591 char __gnat_shared_libgcc_default = SHARED;
24592 int __gnat_link_max = 262144;
24593 unsigned char __gnat_objlist_file_supported = 1;
24594-unsigned char __gnat_using_gnu_linker = 0;
24595 const char *__gnat_object_library_extension = ".a";
24596 unsigned char __gnat_separate_run_path_options = 1;
24597 const char *__gnat_default_libgcc_subdir = "lib";
24598
24599 #elif defined (linux) || defined(__GLIBC__)
24600-const char *__gnat_object_file_option = "";
24601+const char *__gnat_object_file_option = "-Wl,@";
24602 const char *__gnat_run_path_option = "-Wl,-rpath,";
24603 char __gnat_shared_libgnat_default = STATIC;
24604 char __gnat_shared_libgcc_default = STATIC;
24605 int __gnat_link_max = 8192;
24606 unsigned char __gnat_objlist_file_supported = 1;
24607-unsigned char __gnat_using_gnu_linker = 1;
24608 const char *__gnat_object_library_extension = ".a";
24609 unsigned char __gnat_separate_run_path_options = 0;
24610 #if defined (__x86_64)
24611@@ -202,7 +180,6 @@
24612 char __gnat_shared_libgcc_default = STATIC;
24613 int __gnat_link_max = 15000;
24614 const unsigned char __gnat_objlist_file_supported = 1;
24615-unsigned char __gnat_using_gnu_linker = 0;
24616 const char *__gnat_object_library_extension = ".a";
24617 unsigned char __gnat_separate_run_path_options = 0;
24618 const char *__gnat_default_libgcc_subdir = "lib";
24619@@ -211,13 +188,12 @@
24620 /* These are the settings for all systems that use gnu ld. GNU style response
24621 file is supported, the shared library default is STATIC. */
24622
24623-const char *__gnat_object_file_option = "";
24624+const char *__gnat_object_file_option = "-Wl,@";
24625 const char *__gnat_run_path_option = "";
24626 char __gnat_shared_libgnat_default = STATIC;
24627 char __gnat_shared_libgcc_default = STATIC;
24628 int __gnat_link_max = 8192;
24629 unsigned char __gnat_objlist_file_supported = 1;
24630-unsigned char __gnat_using_gnu_linker = 1;
24631 const char *__gnat_object_library_extension = ".a";
24632 unsigned char __gnat_separate_run_path_options = 0;
24633 const char *__gnat_default_libgcc_subdir = "lib";
24634@@ -229,7 +205,6 @@
24635 char __gnat_shared_libgcc_default = STATIC;
24636 int __gnat_link_max = 2147483647;
24637 unsigned char __gnat_objlist_file_supported = 0;
24638-unsigned char __gnat_using_gnu_linker = 0;
24639 const char *__gnat_object_library_extension = ".olb";
24640 unsigned char __gnat_separate_run_path_options = 0;
24641 const char *__gnat_default_libgcc_subdir = "lib";
24642@@ -241,7 +216,6 @@
24643 char __gnat_shared_libgcc_default = STATIC;
24644 int __gnat_link_max = 2147483647;
24645 unsigned char __gnat_objlist_file_supported = 0;
24646-unsigned char __gnat_using_gnu_linker = 0;
24647 const char *__gnat_object_library_extension = ".a";
24648 unsigned char __gnat_separate_run_path_options = 0;
24649 #if defined (__sparc_v9__) || defined (__sparcv9)
24650@@ -259,7 +233,6 @@
24651 char __gnat_shared_libgcc_default = STATIC;
24652 int __gnat_link_max = 2147483647;
24653 unsigned char __gnat_objlist_file_supported = 0;
24654-unsigned char __gnat_using_gnu_linker = 0;
24655 const char *__gnat_object_library_extension = ".a";
24656 unsigned char __gnat_separate_run_path_options = 0;
24657 const char *__gnat_default_libgcc_subdir = "lib";
24658@@ -274,7 +247,6 @@
24659 char __gnat_shared_libgcc_default = STATIC;
24660 int __gnat_link_max = 2147483647;
24661 unsigned char __gnat_objlist_file_supported = 0;
24662-unsigned char __gnat_using_gnu_linker = 0;
24663 const char *__gnat_object_library_extension = ".a";
24664 unsigned char __gnat_separate_run_path_options = 0;
24665 const char *__gnat_default_libgcc_subdir = "lib";
24666Index: gcc/fortran/trans-array.c
24667===================================================================
24668--- gcc/fortran/trans-array.c (.../tags/gcc_4_7_0_release) (wersja 187906)
24669+++ gcc/fortran/trans-array.c (.../branches/gcc-4_7-branch) (wersja 187906)
24670@@ -2401,6 +2401,11 @@
24671 bool skip_nested = false;
24672 int n;
24673
24674+ /* Don't evaluate the arguments for realloc_lhs_loop_for_fcn_call; otherwise,
24675+ arguments could get evaluated multiple times. */
24676+ if (ss->is_alloc_lhs)
24677+ return;
24678+
24679 outer_loop = outermost_loop (loop);
24680
24681 /* TODO: This can generate bad code if there are ordering dependencies,
24682Index: gcc/fortran/ChangeLog
24683===================================================================
24684--- gcc/fortran/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187906)
24685+++ gcc/fortran/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187906)
24686@@ -1,3 +1,63 @@
24687+2012-05-23 Tobias Burnus <burnus@net-b.de>
24688+
24689+ PR fortran/53389
24690+ * trans-array.c (gfc_add_loop_ss_code): Don't evaluate expression, if
24691+ ss->is_alloc_lhs is set.
24692+
24693+2012-05-07 Tobias Burnus <burnus@net-b.de>
24694+
24695+ Backport from mainline:
24696+ 2012-05-07 Tobias Burnus <burnus@net-b.de>
24697+
24698+ PR fortran/53255
24699+ * resolve.c (resolve_typebound_static): Fix handling
24700+ of overridden specific to generic operator.
24701+
24702+2012-05-05 Tobias Burnus <burnus@net-b.de>
24703+
24704+ Backport from mainline:
24705+ 2012-05-04 Tobias Burnus <burnus@net-b.de>
24706+
24707+ PR fortran/53111
24708+ * resolve.c (resolve_fl_derived): Fix -std=f95
24709+ diagnostic for generic vs. DT names.
24710+
24711+2012-05-02 Tobias Burnus <burnus@net-b.de>
24712+
24713+ Backport from mainline
24714+ 2012-04-12 Tobias Burnus <burnus@net-b.de>
24715+
24716+ PR fortran/52864
24717+ * expr.c (gfc_check_vardef_context): Fix assignment check for
24718+ pointer components.
24719+
24720+2012-04-30 Thomas Koenig <tkoenig@gcc.gnu.org>
24721+
24722+ PR fortran/53148
24723+ Backport from trunk
24724+ * frontend-passes.c (create_var): If the statement has a label,
24725+ put the label around the block.
24726+
24727+2012-04-07 Thomas Koenig <tkoenig@gcc.gnu.org>
24728+
24729+ PR fortran/52893
24730+ Backport from trunk
24731+ * frontend-passes.c: Keep track of wether we are in an implicit
24732+ DO loop; do not do function elimination if we are.
24733+
24734+2012-04-07 Thomas Koenig <tkoenig@gcc.gnu.org>
24735+
24736+ PR fortran/52668
24737+ Backport from trunk
24738+ * module.c: Only mark symbols as use_only if they have been
24739+ imported via an only list.
24740+
24741+2012-03-22 Tobias Burnus <burnus@net-b.de>
24742+
24743+ PR fortran/52452
24744+ * resolve.c (resolve_intrinsic): Don't search for a
24745+ function if we know that it is a subroutine.
24746+
24747 2012-03-22 Release Manager
24748
24749 * GCC 4.7.0 released.
24750Index: gcc/fortran/expr.c
24751===================================================================
24752--- gcc/fortran/expr.c (.../tags/gcc_4_7_0_release) (wersja 187906)
24753+++ gcc/fortran/expr.c (.../branches/gcc-4_7-branch) (wersja 187906)
24754@@ -4654,7 +4654,11 @@
24755 if (ptr_component && ref->type == REF_COMPONENT)
24756 check_intentin = false;
24757 if (ref->type == REF_COMPONENT && ref->u.c.component->attr.pointer)
24758- ptr_component = true;
24759+ {
24760+ ptr_component = true;
24761+ if (!pointer)
24762+ check_intentin = false;
24763+ }
24764 }
24765 if (check_intentin && sym->attr.intent == INTENT_IN)
24766 {
24767Index: gcc/fortran/module.c
24768===================================================================
24769--- gcc/fortran/module.c (.../tags/gcc_4_7_0_release) (wersja 187906)
24770+++ gcc/fortran/module.c (.../branches/gcc-4_7-branch) (wersja 187906)
24771@@ -4388,9 +4388,24 @@
24772
24773 /* Mark as only or rename for later diagnosis for explicitly imported
24774 but not used warnings; don't mark internal symbols such as __vtab,
24775- __def_init etc. */
24776+ __def_init etc. Only mark them if they have been explicitly loaded. */
24777+
24778 if (only_flag && sym->name[0] != '_' && sym->name[1] != '_')
24779- sym->attr.use_only = 1;
24780+ {
24781+ gfc_use_rename *u;
24782+
24783+ /* Search the use/rename list for the variable; if the variable is
24784+ found, mark it. */
24785+ for (u = gfc_rename_list; u; u = u->next)
24786+ {
24787+ if (strcmp (u->use_name, sym->name) == 0)
24788+ {
24789+ sym->attr.use_only = 1;
24790+ break;
24791+ }
24792+ }
24793+ }
24794+
24795 if (p->u.rsym.renamed)
24796 sym->attr.use_rename = 1;
24797
24798Index: gcc/fortran/frontend-passes.c
24799===================================================================
24800--- gcc/fortran/frontend-passes.c (.../tags/gcc_4_7_0_release) (wersja 187906)
24801+++ gcc/fortran/frontend-passes.c (.../branches/gcc-4_7-branch) (wersja 187906)
24802@@ -70,6 +70,10 @@
24803
24804 static bool in_omp_workshare;
24805
24806+/* Keep track of iterators for array constructors. */
24807+
24808+static int iterator_level;
24809+
24810 /* Entry point - run all passes for a namespace. So far, only an
24811 optimization pass is run. */
24812
24813@@ -179,6 +183,12 @@
24814 if (forall_level > 0)
24815 return 0;
24816
24817+ /* Function elimination inside an iterator could lead to functions
24818+ which depend on iterator variables being moved outside. */
24819+
24820+ if (iterator_level > 0)
24821+ return 0;
24822+
24823 /* If we don't know the shape at compile time, we create an allocatable
24824 temporary variable to hold the intermediate result, but only if
24825 allocation on assignment is active. */
24826@@ -260,6 +270,16 @@
24827 inserted_block->ext.block.assoc = NULL;
24828
24829 ns->code = *current_code;
24830+
24831+ /* If the statement has a label, make sure it is transferred to
24832+ the newly created block. */
24833+
24834+ if ((*current_code)->here)
24835+ {
24836+ inserted_block->here = (*current_code)->here;
24837+ (*current_code)->here = NULL;
24838+ }
24839+
24840 inserted_block->next = (*current_code)->next;
24841 changed_statement = &(inserted_block->ext.block.ns->code);
24842 (*current_code)->next = NULL;
24843@@ -581,6 +601,7 @@
24844
24845 current_ns = ns;
24846 forall_level = 0;
24847+ iterator_level = 0;
24848 in_omp_workshare = false;
24849
24850 gfc_code_walker (&ns->code, convert_do_while, dummy_expr_callback, NULL);
24851@@ -1140,9 +1161,13 @@
24852 for (c = gfc_constructor_first ((*e)->value.constructor); c;
24853 c = gfc_constructor_next (c))
24854 {
24855- WALK_SUBEXPR (c->expr);
24856- if (c->iterator != NULL)
24857+ if (c->iterator == NULL)
24858+ WALK_SUBEXPR (c->expr);
24859+ else
24860 {
24861+ iterator_level ++;
24862+ WALK_SUBEXPR (c->expr);
24863+ iterator_level --;
24864 WALK_SUBEXPR (c->iterator->var);
24865 WALK_SUBEXPR (c->iterator->start);
24866 WALK_SUBEXPR (c->iterator->end);
24867Index: gcc/fortran/resolve.c
24868===================================================================
24869--- gcc/fortran/resolve.c (.../tags/gcc_4_7_0_release) (wersja 187906)
24870+++ gcc/fortran/resolve.c (.../branches/gcc-4_7-branch) (wersja 187906)
24871@@ -1496,7 +1496,7 @@
24872
24873 if (sym->intmod_sym_id)
24874 isym = gfc_intrinsic_function_by_id ((gfc_isym_id) sym->intmod_sym_id);
24875- else
24876+ else if (!sym->attr.subroutine)
24877 isym = gfc_find_function (sym->name);
24878
24879 if (isym)
24880@@ -5624,12 +5624,11 @@
24881 e->value.compcall.actual = NULL;
24882
24883 /* If we find a deferred typebound procedure, check for derived types
24884- that an over-riding typebound procedure has not been missed. */
24885- if (e->value.compcall.tbp->deferred
24886- && e->value.compcall.name
24887- && !e->value.compcall.tbp->non_overridable
24888- && e->value.compcall.base_object
24889- && e->value.compcall.base_object->ts.type == BT_DERIVED)
24890+ that an overriding typebound procedure has not been missed. */
24891+ if (e->value.compcall.name
24892+ && !e->value.compcall.tbp->non_overridable
24893+ && e->value.compcall.base_object
24894+ && e->value.compcall.base_object->ts.type == BT_DERIVED)
24895 {
24896 gfc_symtree *st;
24897 gfc_symbol *derived;
24898@@ -11991,6 +11990,8 @@
24899 if (!sym->attr.is_class)
24900 gfc_find_symbol (sym->name, sym->ns, 0, &gen_dt);
24901 if (gen_dt && gen_dt->generic && gen_dt->generic->next
24902+ && (!gen_dt->generic->sym->attr.use_assoc
24903+ || gen_dt->generic->sym->module != gen_dt->generic->next->sym->module)
24904 && gfc_notify_std (GFC_STD_F2003, "Fortran 2003: Generic name '%s' of "
24905 "function '%s' at %L being the same name as derived "
24906 "type at %L", sym->name,
24907Index: gcc/configure.ac
24908===================================================================
24909--- gcc/configure.ac (.../tags/gcc_4_7_0_release) (wersja 187906)
24910+++ gcc/configure.ac (.../branches/gcc-4_7-branch) (wersja 187906)
24911@@ -213,9 +213,6 @@
24912 [Define to enable the use of a default linker.])
24913 fi
24914
24915-gnu_ld=`if test x"$gnu_ld_flag" = x"yes"; then echo 1; else echo 0; fi`
24916-AC_DEFINE_UNQUOTED(HAVE_GNU_LD, $gnu_ld, [Define if using GNU ld.])
24917-
24918 AC_MSG_CHECKING([whether a default linker was specified])
24919 if test x"${DEFAULT_LINKER+set}" = x"set"; then
24920 if test x"$gnu_ld_flag" = x"no"; then
24921@@ -256,9 +253,6 @@
24922 [Define to enable the use of a default assembler.])
24923 fi
24924
24925-gnu_as=`if test x"$gas_flag" = x"yes"; then echo 1; else echo 0; fi`
24926-AC_DEFINE_UNQUOTED(HAVE_GNU_AS, $gnu_as, [Define if using GNU as.])
24927-
24928 AC_MSG_CHECKING([whether a default assembler was specified])
24929 if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
24930 if test x"$gas_flag" = x"no"; then
24931@@ -1336,6 +1330,12 @@
24932 efficiently supported by the host hardware.])
24933 fi
24934
24935+gnu_ld_bool=`if test x"$gnu_ld" = x"yes"; then echo 1; else echo 0; fi`
24936+AC_DEFINE_UNQUOTED(HAVE_GNU_LD, $gnu_ld_bool, [Define to 1 if using GNU ld.])
24937+
24938+gnu_as_bool=`if test x"$gas" = x"yes"; then echo 1; else echo 0; fi`
24939+AC_DEFINE_UNQUOTED(HAVE_GNU_AS, $gnu_as_bool, [Define to 1 if using GNU as.])
24940+
24941 count=a
24942 for f in $host_xm_file; do
24943 count=${count}x
24944@@ -4430,7 +4430,15 @@
24945 fi
24946
24947 case "$target:$tm_file" in
24948- powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*)
24949+ powerpc64-*-freebsd* | powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*)
24950+ case "$target" in
24951+ *-*-linux*)
24952+ emul_name="-melf64ppc"
24953+ ;;
24954+ *-*-freebsd*)
24955+ emul_name="-melf64ppc_fbsd"
24956+ ;;
24957+ esac
24958 AC_CACHE_CHECK(linker support for omitting dot symbols,
24959 gcc_cv_ld_no_dot_syms,
24960 [gcc_cv_ld_no_dot_syms=no
24961@@ -4457,7 +4465,7 @@
24962 EOF
24963 if $gcc_cv_as -a64 -o conftest1.o conftest1.s > /dev/null 2>&1 \
24964 && $gcc_cv_as -a64 -o conftest2.o conftest2.s > /dev/null 2>&1 \
24965- && $gcc_cv_ld -melf64ppc -o conftest conftest1.o conftest2.o > /dev/null 2>&1; then
24966+ && $gcc_cv_ld $emul_name -o conftest conftest1.o conftest2.o > /dev/null 2>&1; then
24967 gcc_cv_ld_no_dot_syms=yes
24968 fi
24969 rm -f conftest conftest1.o conftest2.o conftest1.s conftest2.s
24970@@ -4487,7 +4495,7 @@
24971 ld 9,ie0@got@tprel@l(9)
24972 EOF
24973 if $gcc_cv_as -a64 -o conftest.o conftest.s > /dev/null 2>&1 \
24974- && $gcc_cv_ld -melf64ppc --no-toc-sort -o conftest conftest.o > /dev/null 2>&1; then
24975+ && $gcc_cv_ld $emul_name --no-toc-sort -o conftest conftest.o > /dev/null 2>&1; then
24976 gcc_cv_ld_large_toc=yes
24977 fi
24978 rm -f conftest conftest.o conftest.s
24979Index: gcc/BASE-VER
24980===================================================================
24981--- gcc/BASE-VER (.../tags/gcc_4_7_0_release) (wersja 187906)
24982+++ gcc/BASE-VER (.../branches/gcc-4_7-branch) (wersja 187906)
24983@@ -1 +1 @@
24984-4.7.0
24985+4.7.1
24986Index: gcc/function.c
24987===================================================================
24988--- gcc/function.c (.../tags/gcc_4_7_0_release) (wersja 187906)
24989+++ gcc/function.c (.../branches/gcc-4_7-branch) (wersja 187906)
24990@@ -5287,6 +5287,10 @@
24991 if (CALL_P (insn))
24992 return !SIBLING_CALL_P (insn);
24993
24994+ /* We need a frame to get the unique CFA expected by the unwinder. */
24995+ if (cfun->can_throw_non_call_exceptions && can_throw_internal (insn))
24996+ return true;
24997+
24998 CLEAR_HARD_REG_SET (hardregs);
24999 for (df_rec = DF_INSN_DEFS (insn); *df_rec; df_rec++)
25000 {
25001Index: gcc/gcc-ar.c
25002===================================================================
25003--- gcc/gcc-ar.c (.../tags/gcc_4_7_0_release) (wersja 187906)
25004+++ gcc/gcc-ar.c (.../branches/gcc-4_7-branch) (wersja 187906)
25005@@ -1,5 +1,5 @@
25006 /* Wrapper for ar/ranlib/nm to pass the LTO plugin.
25007- Copyright (C) 2011 Free Software Foundation, Inc.
25008+ Copyright (C) 2011, 2012 Free Software Foundation, Inc.
25009 Contributed by Andi Kleen.
25010
25011 This file is part of GCC.
25012@@ -52,11 +52,16 @@
25013 /* XXX implement more magic from gcc.c? */
25014 nprefix = getenv ("GCC_EXEC_PREFIX");
25015 if (!nprefix)
25016+ nprefix = av[0];
25017+ else
25018+ nprefix = concat (nprefix, "gcc-" PERSONALITY, NULL);
25019+
25020+ nprefix = make_relative_prefix (nprefix,
25021+ standard_bin_prefix,
25022+ standard_libexec_prefix);
25023+ if (nprefix == NULL)
25024 nprefix = standard_libexec_prefix;
25025
25026- nprefix = make_relative_prefix (av[0],
25027- standard_bin_prefix,
25028- nprefix);
25029 plugin = concat (nprefix,
25030 dir_separator,
25031 DEFAULT_TARGET_MACHINE,
25032@@ -65,7 +70,7 @@
25033 dir_separator,
25034 LTOPLUGINSONAME,
25035 NULL);
25036- if (access (plugin, X_OK))
25037+ if (access (plugin, R_OK))
25038 {
25039 fprintf (stderr, "%s: Cannot find plugin %s\n", av[0], plugin);
25040 exit (1);
25041Index: gcc/tree-vectorizer.h
25042===================================================================
25043--- gcc/tree-vectorizer.h (.../tags/gcc_4_7_0_release) (wersja 187906)
25044+++ gcc/tree-vectorizer.h (.../branches/gcc-4_7-branch) (wersja 187906)
25045@@ -476,6 +476,13 @@
25046 tree dr_step;
25047 tree dr_aligned_to;
25048
25049+ /* For loop PHI nodes, the evolution part of it. This makes sure
25050+ this information is still available in vect_update_ivs_after_vectorizer
25051+ where we may not be able to re-analyze the PHI nodes evolution as
25052+ peeling for the prologue loop can make it unanalyzable. The evolution
25053+ part is still correct though. */
25054+ tree loop_phi_evolution_part;
25055+
25056 /* Used for various bookkeeping purposes, generally holding a pointer to
25057 some other stmt S that is in some way "related" to this stmt.
25058 Current use of this field is:
25059@@ -572,6 +579,7 @@
25060 #define STMT_VINFO_GROUP_SAME_DR_STMT(S) (S)->same_dr_stmt
25061 #define STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE(S) (S)->read_write_dep
25062 #define STMT_VINFO_STRIDED_ACCESS(S) ((S)->first_element != NULL && (S)->data_ref_info)
25063+#define STMT_VINFO_LOOP_PHI_EVOLUTION_PART(S) (S)->loop_phi_evolution_part
25064
25065 #define GROUP_FIRST_ELEMENT(S) (S)->first_element
25066 #define GROUP_NEXT_ELEMENT(S) (S)->next_element
25067Index: gcc/tree-if-conv.c
25068===================================================================
25069--- gcc/tree-if-conv.c (.../tags/gcc_4_7_0_release) (wersja 187906)
25070+++ gcc/tree-if-conv.c (.../branches/gcc-4_7-branch) (wersja 187906)
25071@@ -1543,11 +1543,19 @@
25072 gimple_stmt_iterator gsi;
25073 basic_block bb = ifc_bbs[i];
25074 tree cond = bb_predicate (bb);
25075+ bool swap;
25076 gimple stmt;
25077
25078 if (is_true_predicate (cond))
25079 continue;
25080
25081+ swap = false;
25082+ if (TREE_CODE (cond) == TRUTH_NOT_EXPR)
25083+ {
25084+ swap = true;
25085+ cond = TREE_OPERAND (cond, 0);
25086+ }
25087+
25088 for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
25089 if ((stmt = gsi_stmt (gsi))
25090 && gimple_assign_single_p (stmt)
25091@@ -1559,6 +1567,15 @@
25092
25093 lhs = ifc_temp_var (type, unshare_expr (lhs), &gsi);
25094 rhs = ifc_temp_var (type, unshare_expr (rhs), &gsi);
25095+ if (swap)
25096+ {
25097+ tree tem = lhs;
25098+ lhs = rhs;
25099+ rhs = tem;
25100+ }
25101+ cond = force_gimple_operand_gsi_1 (&gsi, unshare_expr (cond),
25102+ is_gimple_condexpr, NULL_TREE,
25103+ true, GSI_SAME_STMT);
25104 rhs = build3 (COND_EXPR, type, unshare_expr (cond), rhs, lhs);
25105 gimple_assign_set_rhs1 (stmt, ifc_temp_var (type, rhs, &gsi));
25106 update_stmt (stmt);
25107Index: gcc/tree-vect-loop.c
25108===================================================================
25109--- gcc/tree-vect-loop.c (.../tags/gcc_4_7_0_release) (wersja 187906)
25110+++ gcc/tree-vect-loop.c (.../branches/gcc-4_7-branch) (wersja 187906)
25111@@ -565,11 +565,15 @@
25112 /* Analyze the evolution function. */
25113 access_fn = analyze_scalar_evolution (loop, def);
25114 if (access_fn)
25115- STRIP_NOPS (access_fn);
25116- if (access_fn && vect_print_dump_info (REPORT_DETAILS))
25117 {
25118- fprintf (vect_dump, "Access function of PHI: ");
25119- print_generic_expr (vect_dump, access_fn, TDF_SLIM);
25120+ STRIP_NOPS (access_fn);
25121+ if (vect_print_dump_info (REPORT_DETAILS))
25122+ {
25123+ fprintf (vect_dump, "Access function of PHI: ");
25124+ print_generic_expr (vect_dump, access_fn, TDF_SLIM);
25125+ }
25126+ STMT_VINFO_LOOP_PHI_EVOLUTION_PART (stmt_vinfo)
25127+ = evolution_part_in_loop_num (access_fn, loop->num);
25128 }
25129
25130 if (!access_fn
25131@@ -579,6 +583,8 @@
25132 continue;
25133 }
25134
25135+ gcc_assert (STMT_VINFO_LOOP_PHI_EVOLUTION_PART (stmt_vinfo) != NULL_TREE);
25136+
25137 if (vect_print_dump_info (REPORT_DETAILS))
25138 fprintf (vect_dump, "Detected induction.");
25139 STMT_VINFO_DEF_TYPE (stmt_vinfo) = vect_induction_def;
25140@@ -1320,7 +1326,9 @@
25141 return false;
25142
25143 op_def_stmt = SSA_NAME_DEF_STMT (phi_op);
25144- if (!op_def_stmt || !vinfo_for_stmt (op_def_stmt))
25145+ if (!op_def_stmt
25146+ || !flow_bb_inside_loop_p (loop, gimple_bb (op_def_stmt))
25147+ || !vinfo_for_stmt (op_def_stmt))
25148 return false;
25149
25150 if (STMT_VINFO_RELEVANT (vinfo_for_stmt (op_def_stmt))
25151@@ -5042,12 +5050,46 @@
25152 tree vec_def;
25153
25154 gcc_assert (ncopies >= 1);
25155- /* FORNOW. This restriction should be relaxed. */
25156- if (nested_in_vect_loop_p (loop, phi) && ncopies > 1)
25157+ /* FORNOW. These restrictions should be relaxed. */
25158+ if (nested_in_vect_loop_p (loop, phi))
25159 {
25160- if (vect_print_dump_info (REPORT_DETAILS))
25161- fprintf (vect_dump, "multiple types in nested loop.");
25162- return false;
25163+ imm_use_iterator imm_iter;
25164+ use_operand_p use_p;
25165+ gimple exit_phi;
25166+ edge latch_e;
25167+ tree loop_arg;
25168+
25169+ if (ncopies > 1)
25170+ {
25171+ if (vect_print_dump_info (REPORT_DETAILS))
25172+ fprintf (vect_dump, "multiple types in nested loop.");
25173+ return false;
25174+ }
25175+
25176+ exit_phi = NULL;
25177+ latch_e = loop_latch_edge (loop->inner);
25178+ loop_arg = PHI_ARG_DEF_FROM_EDGE (phi, latch_e);
25179+ FOR_EACH_IMM_USE_FAST (use_p, imm_iter, loop_arg)
25180+ {
25181+ if (!flow_bb_inside_loop_p (loop->inner,
25182+ gimple_bb (USE_STMT (use_p))))
25183+ {
25184+ exit_phi = USE_STMT (use_p);
25185+ break;
25186+ }
25187+ }
25188+ if (exit_phi)
25189+ {
25190+ stmt_vec_info exit_phi_vinfo = vinfo_for_stmt (exit_phi);
25191+ if (!(STMT_VINFO_RELEVANT_P (exit_phi_vinfo)
25192+ && !STMT_VINFO_LIVE_P (exit_phi_vinfo)))
25193+ {
25194+ if (vect_print_dump_info (REPORT_DETAILS))
25195+ fprintf (vect_dump, "inner-loop induction only used outside "
25196+ "of the outer vectorized loop.");
25197+ return false;
25198+ }
25199+ }
25200 }
25201
25202 if (!STMT_VINFO_RELEVANT_P (stmt_info))
25203Index: gcc/tree-data-ref.c
25204===================================================================
25205--- gcc/tree-data-ref.c (.../tags/gcc_4_7_0_release) (wersja 187906)
25206+++ gcc/tree-data-ref.c (.../branches/gcc-4_7-branch) (wersja 187906)
25207@@ -856,7 +856,7 @@
25208 dr_analyze_indices (struct data_reference *dr, loop_p nest, loop_p loop)
25209 {
25210 VEC (tree, heap) *access_fns = NULL;
25211- tree ref, *aref, op;
25212+ tree ref, op;
25213 tree base, off, access_fn;
25214 basic_block before_loop;
25215
25216@@ -869,7 +869,7 @@
25217 return;
25218 }
25219
25220- ref = unshare_expr (DR_REF (dr));
25221+ ref = DR_REF (dr);
25222 before_loop = block_before_loop (nest);
25223
25224 /* REALPART_EXPR and IMAGPART_EXPR can be handled like accesses
25225@@ -887,61 +887,84 @@
25226 }
25227
25228 /* Analyze access functions of dimensions we know to be independent. */
25229- aref = &ref;
25230- while (handled_component_p (*aref))
25231+ while (handled_component_p (ref))
25232 {
25233- if (TREE_CODE (*aref) == ARRAY_REF)
25234+ if (TREE_CODE (ref) == ARRAY_REF)
25235 {
25236- op = TREE_OPERAND (*aref, 1);
25237+ op = TREE_OPERAND (ref, 1);
25238 access_fn = analyze_scalar_evolution (loop, op);
25239 access_fn = instantiate_scev (before_loop, loop, access_fn);
25240 VEC_safe_push (tree, heap, access_fns, access_fn);
25241- /* For ARRAY_REFs the base is the reference with the index replaced
25242- by zero if we can not strip it as the outermost component. */
25243- if (*aref == ref)
25244- {
25245- *aref = TREE_OPERAND (*aref, 0);
25246- continue;
25247- }
25248- else
25249- TREE_OPERAND (*aref, 1) = build_int_cst (TREE_TYPE (op), 0);
25250 }
25251+ else if (TREE_CODE (ref) == COMPONENT_REF
25252+ && TREE_CODE (TREE_TYPE (TREE_OPERAND (ref, 0))) == RECORD_TYPE)
25253+ {
25254+ /* For COMPONENT_REFs of records (but not unions!) use the
25255+ FIELD_DECL offset as constant access function so we can
25256+ disambiguate a[i].f1 and a[i].f2. */
25257+ tree off = component_ref_field_offset (ref);
25258+ off = size_binop (PLUS_EXPR,
25259+ size_binop (MULT_EXPR,
25260+ fold_convert (bitsizetype, off),
25261+ bitsize_int (BITS_PER_UNIT)),
25262+ DECL_FIELD_BIT_OFFSET (TREE_OPERAND (ref, 1)));
25263+ VEC_safe_push (tree, heap, access_fns, off);
25264+ }
25265+ else
25266+ /* If we have an unhandled component we could not translate
25267+ to an access function stop analyzing. We have determined
25268+ our base object in this case. */
25269+ break;
25270
25271- aref = &TREE_OPERAND (*aref, 0);
25272+ ref = TREE_OPERAND (ref, 0);
25273 }
25274
25275 /* If the address operand of a MEM_REF base has an evolution in the
25276 analyzed nest, add it as an additional independent access-function. */
25277- if (TREE_CODE (*aref) == MEM_REF)
25278+ if (TREE_CODE (ref) == MEM_REF)
25279 {
25280- op = TREE_OPERAND (*aref, 0);
25281+ op = TREE_OPERAND (ref, 0);
25282 access_fn = analyze_scalar_evolution (loop, op);
25283 access_fn = instantiate_scev (before_loop, loop, access_fn);
25284 if (TREE_CODE (access_fn) == POLYNOMIAL_CHREC)
25285 {
25286 tree orig_type;
25287+ tree memoff = TREE_OPERAND (ref, 1);
25288 base = initial_condition (access_fn);
25289 orig_type = TREE_TYPE (base);
25290 STRIP_USELESS_TYPE_CONVERSION (base);
25291 split_constant_offset (base, &base, &off);
25292 /* Fold the MEM_REF offset into the evolutions initial
25293 value to make more bases comparable. */
25294- if (!integer_zerop (TREE_OPERAND (*aref, 1)))
25295+ if (!integer_zerop (memoff))
25296 {
25297 off = size_binop (PLUS_EXPR, off,
25298- fold_convert (ssizetype,
25299- TREE_OPERAND (*aref, 1)));
25300- TREE_OPERAND (*aref, 1)
25301- = build_int_cst (TREE_TYPE (TREE_OPERAND (*aref, 1)), 0);
25302+ fold_convert (ssizetype, memoff));
25303+ memoff = build_int_cst (TREE_TYPE (memoff), 0);
25304 }
25305 access_fn = chrec_replace_initial_condition
25306 (access_fn, fold_convert (orig_type, off));
25307- *aref = fold_build2_loc (EXPR_LOCATION (*aref),
25308- MEM_REF, TREE_TYPE (*aref),
25309- base, TREE_OPERAND (*aref, 1));
25310+ /* ??? This is still not a suitable base object for
25311+ dr_may_alias_p - the base object needs to be an
25312+ access that covers the object as whole. With
25313+ an evolution in the pointer this cannot be
25314+ guaranteed.
25315+ As a band-aid, mark the access so we can special-case
25316+ it in dr_may_alias_p. */
25317+ ref = fold_build2_loc (EXPR_LOCATION (ref),
25318+ MEM_REF, TREE_TYPE (ref),
25319+ base, memoff);
25320+ DR_UNCONSTRAINED_BASE (dr) = true;
25321 VEC_safe_push (tree, heap, access_fns, access_fn);
25322 }
25323 }
25324+ else if (DECL_P (ref))
25325+ {
25326+ /* Canonicalize DR_BASE_OBJECT to MEM_REF form. */
25327+ ref = build2 (MEM_REF, TREE_TYPE (ref),
25328+ build_fold_addr_expr (ref),
25329+ build_int_cst (reference_alias_ptr_type (ref), 0));
25330+ }
25331
25332 DR_BASE_OBJECT (dr) = ref;
25333 DR_ACCESS_FNS (dr) = access_fns;
25334@@ -1345,6 +1368,27 @@
25335 return false;
25336 }
25337
25338+ /* If we had an evolution in a MEM_REF BASE_OBJECT we do not know
25339+ the size of the base-object. So we cannot do any offset/overlap
25340+ based analysis but have to rely on points-to information only. */
25341+ if (TREE_CODE (addr_a) == MEM_REF
25342+ && DR_UNCONSTRAINED_BASE (a))
25343+ {
25344+ if (TREE_CODE (addr_b) == MEM_REF
25345+ && DR_UNCONSTRAINED_BASE (b))
25346+ return ptr_derefs_may_alias_p (TREE_OPERAND (addr_a, 0),
25347+ TREE_OPERAND (addr_b, 0));
25348+ else
25349+ return ptr_derefs_may_alias_p (TREE_OPERAND (addr_a, 0),
25350+ build_fold_addr_expr (addr_b));
25351+ }
25352+ else if (TREE_CODE (addr_b) == MEM_REF
25353+ && DR_UNCONSTRAINED_BASE (b))
25354+ return ptr_derefs_may_alias_p (build_fold_addr_expr (addr_a),
25355+ TREE_OPERAND (addr_b, 0));
25356+
25357+ /* Otherwise DR_BASE_OBJECT is an access that covers the whole object
25358+ that is being subsetted in the loop nest. */
25359 if (DR_IS_WRITE (a) && DR_IS_WRITE (b))
25360 return refs_output_dependent_p (addr_a, addr_b);
25361 else if (DR_IS_READ (a) && DR_IS_WRITE (b))
25362@@ -1709,6 +1753,76 @@
25363 return double_int_to_tree (unsigned_type_node, nit);
25364 }
25365
25366+/* Determine whether the CHREC is always positive/negative. If the expression
25367+ cannot be statically analyzed, return false, otherwise set the answer into
25368+ VALUE. */
25369+
25370+static bool
25371+chrec_is_positive (tree chrec, bool *value)
25372+{
25373+ bool value0, value1, value2;
25374+ tree end_value, nb_iter;
25375+
25376+ switch (TREE_CODE (chrec))
25377+ {
25378+ case POLYNOMIAL_CHREC:
25379+ if (!chrec_is_positive (CHREC_LEFT (chrec), &value0)
25380+ || !chrec_is_positive (CHREC_RIGHT (chrec), &value1))
25381+ return false;
25382+
25383+ /* FIXME -- overflows. */
25384+ if (value0 == value1)
25385+ {
25386+ *value = value0;
25387+ return true;
25388+ }
25389+
25390+ /* Otherwise the chrec is under the form: "{-197, +, 2}_1",
25391+ and the proof consists in showing that the sign never
25392+ changes during the execution of the loop, from 0 to
25393+ loop->nb_iterations. */
25394+ if (!evolution_function_is_affine_p (chrec))
25395+ return false;
25396+
25397+ nb_iter = number_of_latch_executions (get_chrec_loop (chrec));
25398+ if (chrec_contains_undetermined (nb_iter))
25399+ return false;
25400+
25401+#if 0
25402+ /* TODO -- If the test is after the exit, we may decrease the number of
25403+ iterations by one. */
25404+ if (after_exit)
25405+ nb_iter = chrec_fold_minus (type, nb_iter, build_int_cst (type, 1));
25406+#endif
25407+
25408+ end_value = chrec_apply (CHREC_VARIABLE (chrec), chrec, nb_iter);
25409+
25410+ if (!chrec_is_positive (end_value, &value2))
25411+ return false;
25412+
25413+ *value = value0;
25414+ return value0 == value1;
25415+
25416+ case INTEGER_CST:
25417+ switch (tree_int_cst_sgn (chrec))
25418+ {
25419+ case -1:
25420+ *value = false;
25421+ break;
25422+ case 1:
25423+ *value = true;
25424+ break;
25425+ default:
25426+ return false;
25427+ }
25428+ return true;
25429+
25430+ default:
25431+ return false;
25432+ }
25433+}
25434+
25435+
25436 /* Analyze a SIV (Single Index Variable) subscript where CHREC_A is a
25437 constant, and CHREC_B is an affine function. *OVERLAPS_A and
25438 *OVERLAPS_B are initialized to the functions that describe the
25439@@ -1732,6 +1846,15 @@
25440 chrec_b = chrec_convert (type, chrec_b, NULL);
25441 difference = chrec_fold_minus (type, initial_condition (chrec_b), chrec_a);
25442
25443+ /* Special case overlap in the first iteration. */
25444+ if (integer_zerop (difference))
25445+ {
25446+ *overlaps_a = conflict_fn (1, affine_fn_cst (integer_zero_node));
25447+ *overlaps_b = conflict_fn (1, affine_fn_cst (integer_zero_node));
25448+ *last_conflicts = integer_one_node;
25449+ return;
25450+ }
25451+
25452 if (!chrec_is_positive (initial_condition (difference), &value0))
25453 {
25454 if (dump_file && (dump_flags & TDF_DETAILS))
25455@@ -3416,6 +3539,7 @@
25456 unsigned int i;
25457 tree last_conflicts;
25458 struct subscript *subscript;
25459+ tree res = NULL_TREE;
25460
25461 for (i = 0; VEC_iterate (subscript_p, DDR_SUBSCRIPTS (ddr), i, subscript);
25462 i++)
25463@@ -3427,40 +3551,43 @@
25464 &overlaps_a, &overlaps_b,
25465 &last_conflicts, loop_nest);
25466
25467+ if (SUB_CONFLICTS_IN_A (subscript))
25468+ free_conflict_function (SUB_CONFLICTS_IN_A (subscript));
25469+ if (SUB_CONFLICTS_IN_B (subscript))
25470+ free_conflict_function (SUB_CONFLICTS_IN_B (subscript));
25471+
25472+ SUB_CONFLICTS_IN_A (subscript) = overlaps_a;
25473+ SUB_CONFLICTS_IN_B (subscript) = overlaps_b;
25474+ SUB_LAST_CONFLICT (subscript) = last_conflicts;
25475+
25476+ /* If there is any undetermined conflict function we have to
25477+ give a conservative answer in case we cannot prove that
25478+ no dependence exists when analyzing another subscript. */
25479 if (CF_NOT_KNOWN_P (overlaps_a)
25480 || CF_NOT_KNOWN_P (overlaps_b))
25481 {
25482- finalize_ddr_dependent (ddr, chrec_dont_know);
25483- dependence_stats.num_dependence_undetermined++;
25484- free_conflict_function (overlaps_a);
25485- free_conflict_function (overlaps_b);
25486- return false;
25487+ res = chrec_dont_know;
25488+ continue;
25489 }
25490
25491+ /* When there is a subscript with no dependence we can stop. */
25492 else if (CF_NO_DEPENDENCE_P (overlaps_a)
25493 || CF_NO_DEPENDENCE_P (overlaps_b))
25494 {
25495- finalize_ddr_dependent (ddr, chrec_known);
25496- dependence_stats.num_dependence_independent++;
25497- free_conflict_function (overlaps_a);
25498- free_conflict_function (overlaps_b);
25499- return false;
25500+ res = chrec_known;
25501+ break;
25502 }
25503+ }
25504
25505- else
25506- {
25507- if (SUB_CONFLICTS_IN_A (subscript))
25508- free_conflict_function (SUB_CONFLICTS_IN_A (subscript));
25509- if (SUB_CONFLICTS_IN_B (subscript))
25510- free_conflict_function (SUB_CONFLICTS_IN_B (subscript));
25511+ if (res == NULL_TREE)
25512+ return true;
25513
25514- SUB_CONFLICTS_IN_A (subscript) = overlaps_a;
25515- SUB_CONFLICTS_IN_B (subscript) = overlaps_b;
25516- SUB_LAST_CONFLICT (subscript) = last_conflicts;
25517- }
25518- }
25519-
25520- return true;
25521+ if (res == chrec_known)
25522+ dependence_stats.num_dependence_independent++;
25523+ else
25524+ dependence_stats.num_dependence_undetermined++;
25525+ finalize_ddr_dependent (ddr, res);
25526+ return false;
25527 }
25528
25529 /* Computes the conflicting iterations in LOOP_NEST, and initialize DDR. */
25530@@ -4049,11 +4176,10 @@
25531 if (dump_file && (dump_flags & TDF_DETAILS))
25532 {
25533 fprintf (dump_file, "(compute_affine_dependence\n");
25534- fprintf (dump_file, " (stmt_a = \n");
25535- print_gimple_stmt (dump_file, DR_STMT (dra), 0, 0);
25536- fprintf (dump_file, ")\n (stmt_b = \n");
25537- print_gimple_stmt (dump_file, DR_STMT (drb), 0, 0);
25538- fprintf (dump_file, ")\n");
25539+ fprintf (dump_file, " stmt_a: ");
25540+ print_gimple_stmt (dump_file, DR_STMT (dra), 0, TDF_SLIM);
25541+ fprintf (dump_file, " stmt_b: ");
25542+ print_gimple_stmt (dump_file, DR_STMT (drb), 0, TDF_SLIM);
25543 }
25544
25545 /* Analyze only when the dependence relation is not yet known. */
25546@@ -4129,7 +4255,14 @@
25547 }
25548
25549 if (dump_file && (dump_flags & TDF_DETAILS))
25550- fprintf (dump_file, ")\n");
25551+ {
25552+ if (DDR_ARE_DEPENDENT (ddr) == chrec_known)
25553+ fprintf (dump_file, ") -> no dependence\n");
25554+ else if (DDR_ARE_DEPENDENT (ddr) == chrec_dont_know)
25555+ fprintf (dump_file, ") -> dependence analysis failed\n");
25556+ else
25557+ fprintf (dump_file, ")\n");
25558+ }
25559 }
25560
25561 /* Compute in DEPENDENCE_RELATIONS the data dependence graph for all
25562@@ -5075,20 +5208,19 @@
25563 VEC (data_reference_p, heap) **datarefs)
25564 {
25565 struct graph *rdg = NULL;
25566- VEC (gimple, heap) *stmts = VEC_alloc (gimple, heap, 10);
25567
25568- compute_data_dependences_for_loop (loop, false, loop_nest, datarefs,
25569- dependence_relations);
25570-
25571- if (known_dependences_p (*dependence_relations))
25572+ if (compute_data_dependences_for_loop (loop, false, loop_nest, datarefs,
25573+ dependence_relations)
25574+ && known_dependences_p (*dependence_relations))
25575 {
25576+ VEC (gimple, heap) *stmts = VEC_alloc (gimple, heap, 10);
25577 stmts_from_loop (loop, &stmts);
25578 rdg = build_empty_rdg (VEC_length (gimple, stmts));
25579 create_rdg_vertices (rdg, stmts);
25580 create_rdg_edges (rdg, *dependence_relations);
25581+ VEC_free (gimple, heap, stmts);
25582 }
25583
25584- VEC_free (gimple, heap, stmts);
25585 return rdg;
25586 }
25587
25588Index: gcc/tree-data-ref.h
25589===================================================================
25590--- gcc/tree-data-ref.h (.../tags/gcc_4_7_0_release) (wersja 187906)
25591+++ gcc/tree-data-ref.h (.../branches/gcc-4_7-branch) (wersja 187906)
25592@@ -60,16 +60,17 @@
25593 };
25594
25595 /* Describes the evolutions of indices of the memory reference. The indices
25596- are indices of the ARRAY_REFs and the operands of INDIRECT_REFs.
25597- For ARRAY_REFs, BASE_OBJECT is the reference with zeroed indices
25598- (note that this reference does not have to be valid, if zero does not
25599- belong to the range of the array; hence it is not recommended to use
25600- BASE_OBJECT in any code generation). For INDIRECT_REFs, the address is
25601- set to the loop-invariant part of the address of the object, except for
25602- the constant offset. For the examples above,
25603+ are indices of the ARRAY_REFs, indexes in artificial dimensions
25604+ added for member selection of records and the operands of MEM_REFs.
25605+ BASE_OBJECT is the part of the reference that is loop-invariant
25606+ (note that this reference does not have to cover the whole object
25607+ being accessed, in which case UNCONSTRAINED_BASE is set; hence it is
25608+ not recommended to use BASE_OBJECT in any code generation).
25609+ For the examples above,
25610
25611- base_object: a[0].b[0][0] *(p + x + 4B * j_0)
25612+ base_object: a *(p + x + 4B * j_0)
25613 indices: {j_0, +, 1}_2 {16, +, 4}_2
25614+ 4
25615 {i_0, +, 1}_1
25616 {j_0, +, 1}_2
25617 */
25618@@ -81,18 +82,17 @@
25619
25620 /* A list of chrecs. Access functions of the indices. */
25621 VEC(tree,heap) *access_fns;
25622+
25623+ /* Whether BASE_OBJECT is an access representing the whole object
25624+ or whether the access could not be constrained. */
25625+ bool unconstrained_base;
25626 };
25627
25628 struct dr_alias
25629 {
25630 /* The alias information that should be used for new pointers to this
25631- location. SYMBOL_TAG is either a DECL or a SYMBOL_MEMORY_TAG. */
25632+ location. */
25633 struct ptr_info_def *ptr_info;
25634-
25635- /* The set of virtual operands corresponding to this memory reference,
25636- serving as a description of the alias information for the memory
25637- reference. This could be eliminated if we had alias oracle. */
25638- bitmap vops;
25639 };
25640
25641 /* An integer vector. A vector formally consists of an element of a vector
25642@@ -201,6 +201,7 @@
25643 #define DR_STMT(DR) (DR)->stmt
25644 #define DR_REF(DR) (DR)->ref
25645 #define DR_BASE_OBJECT(DR) (DR)->indices.base_object
25646+#define DR_UNCONSTRAINED_BASE(DR) (DR)->indices.unconstrained_base
25647 #define DR_ACCESS_FNS(DR) (DR)->indices.access_fns
25648 #define DR_ACCESS_FN(DR, I) VEC_index (tree, DR_ACCESS_FNS (DR), I)
25649 #define DR_NUM_DIMENSIONS(DR) VEC_length (tree, DR_ACCESS_FNS (DR))
25650Index: gcc/tree-vect-data-refs.c
25651===================================================================
25652--- gcc/tree-vect-data-refs.c (.../tags/gcc_4_7_0_release) (wersja 187906)
25653+++ gcc/tree-vect-data-refs.c (.../branches/gcc-4_7-branch) (wersja 187906)
25654@@ -1141,12 +1141,8 @@
25655 if (!known_alignment_for_access_p (dr))
25656 {
25657 tree type = (TREE_TYPE (DR_REF (dr)));
25658- tree ba = DR_BASE_OBJECT (dr);
25659- bool is_packed = false;
25660+ bool is_packed = contains_packed_reference (DR_REF (dr));
25661
25662- if (ba)
25663- is_packed = contains_packed_reference (ba);
25664-
25665 if (compare_tree_int (TYPE_SIZE (type), TYPE_ALIGN (type)) > 0)
25666 is_packed = true;
25667
25668@@ -4672,13 +4668,8 @@
25669 return dr_explicit_realign_optimized;
25670 }
25671 if (!known_alignment_for_access_p (dr))
25672- {
25673- tree ba = DR_BASE_OBJECT (dr);
25674+ is_packed = contains_packed_reference (DR_REF (dr));
25675
25676- if (ba)
25677- is_packed = contains_packed_reference (ba);
25678- }
25679-
25680 if (targetm.vectorize.
25681 support_vector_misalignment (mode, type,
25682 DR_MISALIGNMENT (dr), is_packed))
25683@@ -4691,13 +4682,8 @@
25684 tree type = (TREE_TYPE (DR_REF (dr)));
25685
25686 if (!known_alignment_for_access_p (dr))
25687- {
25688- tree ba = DR_BASE_OBJECT (dr);
25689+ is_packed = contains_packed_reference (DR_REF (dr));
25690
25691- if (ba)
25692- is_packed = contains_packed_reference (ba);
25693- }
25694-
25695 if (targetm.vectorize.
25696 support_vector_misalignment (mode, type,
25697 DR_MISALIGNMENT (dr), is_packed))
25698Index: gcc/trans-mem.c
25699===================================================================
25700--- gcc/trans-mem.c (.../tags/gcc_4_7_0_release) (wersja 187906)
25701+++ gcc/trans-mem.c (.../branches/gcc-4_7-branch) (wersja 187906)
25702@@ -4721,7 +4721,7 @@
25703 /* If this function makes no calls and has no irrevocable blocks,
25704 then there's nothing to do. */
25705 /* ??? Remove non-aborting top-level transactions. */
25706- if (!node->callees && !d->irrevocable_blocks_clone)
25707+ if (!node->callees && !node->indirect_calls && !d->irrevocable_blocks_clone)
25708 return;
25709
25710 current_function_decl = d->clone->decl;
25711Index: gcc/c-typeck.c
25712===================================================================
25713--- gcc/c-typeck.c (.../tags/gcc_4_7_0_release) (wersja 187906)
25714+++ gcc/c-typeck.c (.../branches/gcc-4_7-branch) (wersja 187906)
25715@@ -4410,6 +4410,11 @@
25716 ret = fold_build3_loc (colon_loc, COND_EXPR, result_type, ifexp, op1, op2);
25717 else
25718 {
25719+ if (int_operands)
25720+ {
25721+ op1 = remove_c_maybe_const_expr (op1);
25722+ op2 = remove_c_maybe_const_expr (op2);
25723+ }
25724 ret = build3 (COND_EXPR, result_type, ifexp, op1, op2);
25725 if (int_operands)
25726 ret = note_integer_operands (ret);
25727@@ -7598,7 +7603,7 @@
25728
25729 FOR_EACH_CONSTRUCTOR_ELT (constructor_elements, ix, index, value)
25730 {
25731- add_pending_init (index, value, NULL_TREE, false,
25732+ add_pending_init (index, value, NULL_TREE, true,
25733 braced_init_obstack);
25734 }
25735 constructor_elements = 0;
25736@@ -7691,7 +7696,7 @@
25737 }
25738
25739 value = build_int_cst_wide (type, val[1], val[0]);
25740- add_pending_init (purpose, value, NULL_TREE, false,
25741+ add_pending_init (purpose, value, NULL_TREE, true,
25742 braced_init_obstack);
25743 }
25744
25745@@ -9734,7 +9739,7 @@
25746 sc = convert (TREE_TYPE (type0), sc);
25747 op1 = build_vector_from_val (type0, sc);
25748 if (!maybe_const)
25749- op0 = c_wrap_maybe_const (op1, true);
25750+ op1 = c_wrap_maybe_const (op1, true);
25751 orig_type1 = type1 = TREE_TYPE (op1);
25752 code1 = TREE_CODE (type1);
25753 converted = 1;
25754Index: gcc/gimplify.c
25755===================================================================
25756--- gcc/gimplify.c (.../tags/gcc_4_7_0_release) (wersja 187906)
25757+++ gcc/gimplify.c (.../branches/gcc-4_7-branch) (wersja 187906)
25758@@ -1425,6 +1425,13 @@
25759 && !TYPE_SIZES_GIMPLIFIED (TREE_TYPE (decl)))
25760 gimplify_type_sizes (TREE_TYPE (decl), seq_p);
25761
25762+ /* ??? DECL_ORIGINAL_TYPE is streamed for LTO so it needs to be gimplified
25763+ in case its size expressions contain problematic nodes like CALL_EXPR. */
25764+ if (TREE_CODE (decl) == TYPE_DECL
25765+ && DECL_ORIGINAL_TYPE (decl)
25766+ && !TYPE_SIZES_GIMPLIFIED (DECL_ORIGINAL_TYPE (decl)))
25767+ gimplify_type_sizes (DECL_ORIGINAL_TYPE (decl), seq_p);
25768+
25769 if (TREE_CODE (decl) == VAR_DECL && !DECL_EXTERNAL (decl))
25770 {
25771 tree init = DECL_INITIAL (decl);
25772Index: gcc/tree-ssa-phiopt.c
25773===================================================================
25774--- gcc/tree-ssa-phiopt.c (.../tags/gcc_4_7_0_release) (wersja 187906)
25775+++ gcc/tree-ssa-phiopt.c (.../branches/gcc-4_7-branch) (wersja 187906)
25776@@ -1556,8 +1556,17 @@
25777 /* Compute and check data dependencies in both basic blocks. */
25778 then_ddrs = VEC_alloc (ddr_p, heap, 1);
25779 else_ddrs = VEC_alloc (ddr_p, heap, 1);
25780- compute_all_dependences (then_datarefs, &then_ddrs, NULL, false);
25781- compute_all_dependences (else_datarefs, &else_ddrs, NULL, false);
25782+ if (!compute_all_dependences (then_datarefs, &then_ddrs, NULL, false)
25783+ || !compute_all_dependences (else_datarefs, &else_ddrs, NULL, false))
25784+ {
25785+ free_dependence_relations (then_ddrs);
25786+ free_dependence_relations (else_ddrs);
25787+ free_data_refs (then_datarefs);
25788+ free_data_refs (else_datarefs);
25789+ VEC_free (gimple, heap, then_stores);
25790+ VEC_free (gimple, heap, else_stores);
25791+ return false;
25792+ }
25793 blocks[0] = then_bb;
25794 blocks[1] = else_bb;
25795 blocks[2] = join_bb;
25796Index: gcc/expmed.c
25797===================================================================
25798--- gcc/expmed.c (.../tags/gcc_4_7_0_release) (wersja 187906)
25799+++ gcc/expmed.c (.../branches/gcc-4_7-branch) (wersja 187906)
25800@@ -550,7 +550,10 @@
25801 {
25802 /* If I is 0, use the low-order word in both field and target;
25803 if I is 1, use the next to lowest word; and so on. */
25804- unsigned int wordnum = (backwards ? nwords - i - 1 : i);
25805+ unsigned int wordnum = (backwards
25806+ ? GET_MODE_SIZE (fieldmode) / UNITS_PER_WORD
25807+ - i - 1
25808+ : i);
25809 unsigned int bit_offset = (backwards
25810 ? MAX ((int) bitsize - ((int) i + 1)
25811 * BITS_PER_WORD,
25812@@ -828,8 +831,7 @@
25813 /* Under the C++0x memory model, we must not touch bits outside the
25814 bit region. Adjust the address to start at the beginning of the
25815 bit region. */
25816- if (MEM_P (str_rtx)
25817- && bitregion_start > 0)
25818+ if (MEM_P (str_rtx) && bitregion_start > 0)
25819 {
25820 enum machine_mode bestmode;
25821 enum machine_mode op_mode;
25822@@ -839,6 +841,8 @@
25823 if (op_mode == MAX_MACHINE_MODE)
25824 op_mode = VOIDmode;
25825
25826+ gcc_assert ((bitregion_start % BITS_PER_UNIT) == 0);
25827+
25828 offset = bitregion_start / BITS_PER_UNIT;
25829 bitnum -= bitregion_start;
25830 bitregion_end -= bitregion_start;
25831Index: gcc/gimple-fold.c
25832===================================================================
25833--- gcc/gimple-fold.c (.../tags/gcc_4_7_0_release) (wersja 187906)
25834+++ gcc/gimple-fold.c (.../branches/gcc-4_7-branch) (wersja 187906)
25835@@ -671,13 +671,10 @@
25836
25837 if (TREE_CODE (arg) != SSA_NAME)
25838 {
25839- if (TREE_CODE (arg) == COND_EXPR)
25840- return get_maxval_strlen (COND_EXPR_THEN (arg), length, visited, type)
25841- && get_maxval_strlen (COND_EXPR_ELSE (arg), length, visited, type);
25842 /* We can end up with &(*iftmp_1)[0] here as well, so handle it. */
25843- else if (TREE_CODE (arg) == ADDR_EXPR
25844- && TREE_CODE (TREE_OPERAND (arg, 0)) == ARRAY_REF
25845- && integer_zerop (TREE_OPERAND (TREE_OPERAND (arg, 0), 1)))
25846+ if (TREE_CODE (arg) == ADDR_EXPR
25847+ && TREE_CODE (TREE_OPERAND (arg, 0)) == ARRAY_REF
25848+ && integer_zerop (TREE_OPERAND (TREE_OPERAND (arg, 0), 1)))
25849 {
25850 tree aop0 = TREE_OPERAND (TREE_OPERAND (arg, 0), 0);
25851 if (TREE_CODE (aop0) == INDIRECT_REF
25852@@ -737,6 +734,13 @@
25853 tree rhs = gimple_assign_rhs1 (def_stmt);
25854 return get_maxval_strlen (rhs, length, visited, type);
25855 }
25856+ else if (gimple_assign_rhs_code (def_stmt) == COND_EXPR)
25857+ {
25858+ tree op2 = gimple_assign_rhs2 (def_stmt);
25859+ tree op3 = gimple_assign_rhs3 (def_stmt);
25860+ return get_maxval_strlen (op2, length, visited, type)
25861+ && get_maxval_strlen (op3, length, visited, type);
25862+ }
25863 return false;
25864
25865 case GIMPLE_PHI:
25866@@ -3101,7 +3105,7 @@
25867 offset += token * size;
25868 fn = fold_ctor_reference (TREE_TYPE (TREE_TYPE (v)), DECL_INITIAL (v),
25869 offset, size);
25870- if (!fn)
25871+ if (!fn || integer_zerop (fn))
25872 return NULL_TREE;
25873 gcc_assert (TREE_CODE (fn) == ADDR_EXPR
25874 || TREE_CODE (fn) == FDESC_EXPR);
25875Index: gcc/tree-ssa-pre.c
25876===================================================================
25877--- gcc/tree-ssa-pre.c (.../tags/gcc_4_7_0_release) (wersja 187906)
25878+++ gcc/tree-ssa-pre.c (.../branches/gcc-4_7-branch) (wersja 187906)
25879@@ -2618,19 +2618,6 @@
25880 sbitmap_free (changed_blocks);
25881 }
25882
25883-/* Return true if we can value number the call in STMT. This is true
25884- if we have a pure or constant call to a real function. */
25885-
25886-static bool
25887-can_value_number_call (gimple stmt)
25888-{
25889- if (gimple_call_internal_p (stmt))
25890- return false;
25891- if (gimple_call_flags (stmt) & (ECF_PURE | ECF_CONST))
25892- return true;
25893- return false;
25894-}
25895-
25896 /* Return true if OP is a tree which we can perform PRE on.
25897 This may not match the operations we can value number, but in
25898 a perfect world would. */
25899@@ -3959,8 +3946,7 @@
25900 or control flow.
25901 If this isn't a call or it is the last stmt in the
25902 basic-block then the CFG represents things correctly. */
25903- if (is_gimple_call (stmt)
25904- && !stmt_ends_bb_p (stmt))
25905+ if (is_gimple_call (stmt) && !stmt_ends_bb_p (stmt))
25906 {
25907 /* Non-looping const functions always return normally.
25908 Otherwise the call might not return or have side-effects
25909@@ -3982,8 +3968,7 @@
25910 bitmap_value_insert_into_set (AVAIL_OUT (block), e);
25911 }
25912
25913- if (gimple_has_volatile_ops (stmt)
25914- || stmt_could_throw_p (stmt))
25915+ if (gimple_has_side_effects (stmt) || stmt_could_throw_p (stmt))
25916 continue;
25917
25918 switch (gimple_code (stmt))
25919@@ -4001,7 +3986,8 @@
25920 pre_expr result = NULL;
25921 VEC(vn_reference_op_s, heap) *ops = NULL;
25922
25923- if (!can_value_number_call (stmt))
25924+ /* We can value number only calls to real functions. */
25925+ if (gimple_call_internal_p (stmt))
25926 continue;
25927
25928 copy_reference_ops_from_call (stmt, &ops);
25929@@ -4337,6 +4323,7 @@
25930 has the same value number as its rhs. If so, the store is
25931 dead. */
25932 else if (gimple_assign_single_p (stmt)
25933+ && !gimple_has_volatile_ops (stmt)
25934 && !is_gimple_reg (gimple_assign_lhs (stmt))
25935 && (TREE_CODE (rhs) == SSA_NAME
25936 || is_gimple_min_invariant (rhs)))
25937Index: gcc/tree-sra.c
25938===================================================================
25939--- gcc/tree-sra.c (.../tags/gcc_4_7_0_release) (wersja 187906)
25940+++ gcc/tree-sra.c (.../branches/gcc-4_7-branch) (wersja 187906)
25941@@ -3120,7 +3120,13 @@
25942 }
25943 else
25944 {
25945- if (access_has_children_p (lacc) && access_has_children_p (racc))
25946+ if (access_has_children_p (lacc)
25947+ && access_has_children_p (racc)
25948+ /* When an access represents an unscalarizable region, it usually
25949+ represents accesses with variable offset and thus must not be used
25950+ to generate new memory accesses. */
25951+ && !lacc->grp_unscalarizable_region
25952+ && !racc->grp_unscalarizable_region)
25953 {
25954 gimple_stmt_iterator orig_gsi = *gsi;
25955 enum unscalarized_data_handling refreshed;
25956@@ -4693,8 +4699,8 @@
25957 if (dump_file)
25958 fprintf (dump_file, "Adjusting call (%i -> %i) %s -> %s\n",
25959 cs->caller->uid, cs->callee->uid,
25960- cgraph_node_name (cs->caller),
25961- cgraph_node_name (cs->callee));
25962+ xstrdup (cgraph_node_name (cs->caller)),
25963+ xstrdup (cgraph_node_name (cs->callee)));
25964
25965 ipa_modify_call_arguments (cs, cs->call_stmt, adjustments);
25966
25967Index: gcc/tree-predcom.c
25968===================================================================
25969--- gcc/tree-predcom.c (.../tags/gcc_4_7_0_release) (wersja 187906)
25970+++ gcc/tree-predcom.c (.../branches/gcc-4_7-branch) (wersja 187906)
25971@@ -1707,6 +1707,7 @@
25972 {
25973 name = PHI_RESULT (stmt);
25974 next = single_nonlooparound_use (name);
25975+ reset_debug_uses (stmt);
25976 psi = gsi_for_stmt (stmt);
25977 remove_phi_node (&psi, true);
25978
25979@@ -1728,6 +1729,7 @@
25980 gcc_assert (TREE_CODE (name) == SSA_NAME);
25981
25982 next = single_nonlooparound_use (name);
25983+ reset_debug_uses (stmt);
25984
25985 mark_virtual_ops_for_renaming (stmt);
25986 gsi_remove (&bsi, true);
25987Index: gcc/lto/lang.opt
25988===================================================================
25989--- gcc/lto/lang.opt (.../tags/gcc_4_7_0_release) (wersja 187906)
25990+++ gcc/lto/lang.opt (.../branches/gcc-4_7-branch) (wersja 187906)
25991@@ -25,7 +25,7 @@
25992 LTO
25993
25994 fltrans
25995-LTO Report Var(flag_ltrans) Optimization
25996+LTO Report Var(flag_ltrans)
25997 Run the link-time optimizer in local transformation (LTRANS) mode.
25998
25999 fltrans-output-list=
26000@@ -33,7 +33,7 @@
26001 Specify a file to which a list of files output by LTRANS is written.
26002
26003 fwpa
26004-LTO Driver Report Var(flag_wpa) Optimization
26005+LTO Driver Report Var(flag_wpa)
26006 Run the link-time optimizer in whole program analysis (WPA) mode.
26007
26008 fresolution=
26009Index: gcc/lto/ChangeLog
26010===================================================================
26011--- gcc/lto/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187906)
26012+++ gcc/lto/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187906)
26013@@ -1,3 +1,8 @@
26014+2012-05-04 Richard Guenther <rguenther@suse.de>
26015+
26016+ * lang.opt (fwpa): Do not mark as Optimization.
26017+ (fltrans): Likewise.
26018+
26019 2012-03-22 Release Manager
26020
26021 * GCC 4.7.0 released.
26022Index: gcc/ipa-prop.c
26023===================================================================
26024--- gcc/ipa-prop.c (.../tags/gcc_4_7_0_release) (wersja 187906)
26025+++ gcc/ipa-prop.c (.../branches/gcc-4_7-branch) (wersja 187906)
26026@@ -230,8 +230,8 @@
26027 continue;
26028
26029 fprintf (f, " callsite %s/%i -> %s/%i : \n",
26030- cgraph_node_name (node), node->uid,
26031- cgraph_node_name (cs->callee), cs->callee->uid);
26032+ xstrdup (cgraph_node_name (node)), node->uid,
26033+ xstrdup (cgraph_node_name (cs->callee)), cs->callee->uid);
26034 ipa_print_node_jump_functions_for_edge (f, cs);
26035 }
26036
26037@@ -1780,8 +1780,8 @@
26038 fprintf (dump_file, "ipa-prop: Discovered %s call to a known target "
26039 "(%s/%i -> %s/%i), for stmt ",
26040 ie->indirect_info->polymorphic ? "a virtual" : "an indirect",
26041- cgraph_node_name (ie->caller), ie->caller->uid,
26042- cgraph_node_name (ie->callee), ie->callee->uid);
26043+ xstrdup (cgraph_node_name (ie->caller)), ie->caller->uid,
26044+ xstrdup (cgraph_node_name (ie->callee)), ie->callee->uid);
26045 if (ie->call_stmt)
26046 print_gimple_stmt (dump_file, ie->call_stmt, 2, TDF_SLIM);
26047 else
26048Index: gcc/po/es.po
26049===================================================================
26050--- gcc/po/es.po (.../tags/gcc_4_7_0_release) (wersja 187906)
26051+++ gcc/po/es.po (.../branches/gcc-4_7-branch) (wersja 187906)
26052@@ -1,4 +1,4 @@
26053-# Mensajes en español para gcc-4.7-b20120128.
26054+# Mensajes en español para gcc-4.7.0.
26055 # Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
26056 # This file is distributed under the same license as the gcc package.
26057 # Cristian Othón Martínez Vera <cfuga@cfuga.mx>, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
26058@@ -7,10 +7,10 @@
26059 #
26060 msgid ""
26061 msgstr ""
26062-"Project-Id-Version: gcc 4.7-b20120128\n"
26063+"Project-Id-Version: gcc 4.7.0\n"
26064 "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
26065-"POT-Creation-Date: 2012-01-27 16:13+0000\n"
26066-"PO-Revision-Date: 2012-01-31 08:34-0600\n"
26067+"POT-Creation-Date: 2012-03-18 14:00+0000\n"
26068+"PO-Revision-Date: 2012-03-26 10:36-0600\n"
26069 "Last-Translator: Cristian Othón Martínez Vera <cfuga@cfuga.mx>\n"
26070 "Language-Team: Spanish <es@li.org>\n"
26071 "Language: es\n"
26072@@ -19,7 +19,7 @@
26073 "Content-Transfer-Encoding: 8bit\n"
26074 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
26075
26076-#: c-decl.c:4712 c-typeck.c:5944 toplev.c:1013 c-family/c-pretty-print.c:424
26077+#: c-decl.c:4713 c-typeck.c:5944 toplev.c:1013 c-family/c-pretty-print.c:424
26078 #: cp/error.c:656 cp/error.c:938
26079 msgid "<anonymous>"
26080 msgstr "<anónimo>"
26081@@ -229,13 +229,13 @@
26082
26083 #: diagnostic.c:136
26084 #, c-format
26085-msgid "%s: all warnings being treated as errors\n"
26086-msgstr "%s: todos los avisos se tratan como errores\n"
26087+msgid "%s: all warnings being treated as errors"
26088+msgstr "%s: todos los avisos se tratan como errores"
26089
26090 #: diagnostic.c:141
26091 #, c-format
26092-msgid "%s: some warnings being treated as errors\n"
26093-msgstr "%s: algunos avisos se tratan como errores\n"
26094+msgid "%s: some warnings being treated as errors"
26095+msgstr "%s: algunos avisos se tratan como errores"
26096
26097 #: diagnostic.c:219
26098 #, c-format
26099@@ -321,22 +321,22 @@
26100 #. TARGET_PRINT_OPERAND must handle them.
26101 #. We can't handle floating point constants;
26102 #. PRINT_OPERAND must handle them.
26103-#: final.c:3615 config/i386/i386.c:13019 config/pdp11/pdp11.c:1689
26104+#: final.c:3615 config/i386/i386.c:13033 config/pdp11/pdp11.c:1689
26105 #, c-format
26106 msgid "floating constant misused"
26107 msgstr "constante de coma flotante mal usada"
26108
26109-#: final.c:3673 config/i386/i386.c:13117 config/pdp11/pdp11.c:1730
26110+#: final.c:3673 config/i386/i386.c:13131 config/pdp11/pdp11.c:1730
26111 #, c-format
26112 msgid "invalid expression as operand"
26113 msgstr "expresión inválida como operando"
26114
26115-#: gcc.c:1323
26116+#: gcc.c:1329
26117 #, c-format
26118 msgid "Using built-in specs.\n"
26119 msgstr "Usando especificaciones internas.\n"
26120
26121-#: gcc.c:1520
26122+#: gcc.c:1526
26123 #, c-format
26124 msgid ""
26125 "Setting spec %s to '%s'\n"
26126@@ -345,22 +345,22 @@
26127 "Cambiando la especificación %s a '%s'\n"
26128 "\n"
26129
26130-#: gcc.c:1630
26131+#: gcc.c:1636
26132 #, c-format
26133 msgid "Reading specs from %s\n"
26134 msgstr "Leyendo especificaciones de %s\n"
26135
26136-#: gcc.c:1755
26137+#: gcc.c:1761
26138 #, c-format
26139 msgid "could not find specs file %s\n"
26140 msgstr "no se puede encontrar el fichero de especificaciones %s\n"
26141
26142-#: gcc.c:1824
26143+#: gcc.c:1830
26144 #, c-format
26145 msgid "rename spec %s to %s\n"
26146 msgstr "renombrando la especificación %s a %s\n"
26147
26148-#: gcc.c:1826
26149+#: gcc.c:1832
26150 #, c-format
26151 msgid ""
26152 "spec is '%s'\n"
26153@@ -369,13 +369,13 @@
26154 "la especificacion es '%s'\n"
26155 "\n"
26156
26157-#: gcc.c:2243
26158+#: gcc.c:2249
26159 #, c-format
26160 msgid "%s\n"
26161 msgstr "%s\n"
26162
26163 # El código require 'y' o 'Y' como respuesta afirmativa. cfuga
26164-#: gcc.c:2607
26165+#: gcc.c:2613
26166 #, c-format
26167 msgid ""
26168 "\n"
26169@@ -384,81 +384,81 @@
26170 "\n"
26171 "¿Continuar? (y ó n) "
26172
26173-#: gcc.c:2747
26174+#: gcc.c:2753
26175 #, c-format
26176 msgid "# %s %.2f %.2f\n"
26177 msgstr "# %s %.2f %.2f\n"
26178
26179-#: gcc.c:2949
26180+#: gcc.c:2955
26181 #, c-format
26182 msgid "Usage: %s [options] file...\n"
26183 msgstr "Modo de empleo: %s [opciones] fichero...\n"
26184
26185-#: gcc.c:2950
26186+#: gcc.c:2956
26187 msgid "Options:\n"
26188 msgstr "Opciones:\n"
26189
26190-#: gcc.c:2952
26191+#: gcc.c:2958
26192 msgid " -pass-exit-codes Exit with highest error code from a phase\n"
26193 msgstr " -pass-exit-codes Sale con el código de error más alto de una fase\n"
26194
26195-#: gcc.c:2953
26196+#: gcc.c:2959
26197 msgid " --help Display this information\n"
26198 msgstr " --help Muestra esta información\n"
26199
26200-#: gcc.c:2954
26201+#: gcc.c:2960
26202 msgid " --target-help Display target specific command line options\n"
26203 msgstr " --target-help Muestra opciones de línea de órdenes específicas del objetivo\n"
26204
26205-#: gcc.c:2955
26206-msgid " --help={target|optimizers|warnings|params|[^]{joined|separate|undocumented}}[,...]\n"
26207-msgstr " --help={target|optimizers|warnings|params|[^]{joined|separate|undocumented}}[,...]\n"
26208+#: gcc.c:2961
26209+msgid " --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...]\n"
26210+msgstr " --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...]\n"
26211
26212-#: gcc.c:2956
26213+#: gcc.c:2962
26214 msgid " Display specific types of command line options\n"
26215 msgstr " Muestra tipos específicos de opciones de línea de órdenes\n"
26216
26217-#: gcc.c:2958
26218+#: gcc.c:2964
26219 msgid " (Use '-v --help' to display command line options of sub-processes)\n"
26220 msgstr " (Use '-v --help' para mostrar las opciones de línea de órdenes de los subprocesos)\n"
26221
26222-#: gcc.c:2959
26223+#: gcc.c:2965
26224 msgid " --version Display compiler version information\n"
26225 msgstr " --version Muestra la información de versión del compilador\n"
26226
26227-#: gcc.c:2960
26228+#: gcc.c:2966
26229 msgid " -dumpspecs Display all of the built in spec strings\n"
26230 msgstr " -dumpspecs Muestra todas las cadenas internas de especificación\n"
26231
26232-#: gcc.c:2961
26233+#: gcc.c:2967
26234 msgid " -dumpversion Display the version of the compiler\n"
26235 msgstr " -dumpversion Muestra la versión del compilador\n"
26236
26237-#: gcc.c:2962
26238+#: gcc.c:2968
26239 msgid " -dumpmachine Display the compiler's target processor\n"
26240 msgstr " -dumpmachine Muestra el procesador objetivo del compilador\n"
26241
26242-#: gcc.c:2963
26243+#: gcc.c:2969
26244 msgid " -print-search-dirs Display the directories in the compiler's search path\n"
26245 msgstr " -print-search-dirs Muestra los directorios en la ruta de búsqueda del compilador\n"
26246
26247-#: gcc.c:2964
26248+#: gcc.c:2970
26249 msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
26250 msgstr " -print-libgcc-file-name Muestra el nombre de la biblioteca que acompaña al compilador\n"
26251
26252-#: gcc.c:2965
26253+#: gcc.c:2971
26254 msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
26255 msgstr " -print-file-name=<bib> Muestra la ruta completa a la biblioteca <bib>\n"
26256
26257-#: gcc.c:2966
26258+#: gcc.c:2972
26259 msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
26260 msgstr " -print-prog-name=<prog> Muestra la ruta completa del programa componente del compilador <prog>\n"
26261
26262-#: gcc.c:2967
26263+#: gcc.c:2973
26264 msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
26265 msgstr " -print-multi-directory Muestra el directorio raíz para las versiones de libgcc\n"
26266
26267-#: gcc.c:2968
26268+#: gcc.c:2974
26269 msgid ""
26270 " -print-multi-lib Display the mapping between command line options and\n"
26271 " multiple library search directories\n"
26272@@ -466,51 +466,51 @@
26273 " -print-multi-lib Muestra el mapeo entre las opciones de línea de órdenes\n"
26274 " y los múltiples directorios de búsqueda de bibliotecas\n"
26275
26276-#: gcc.c:2971
26277+#: gcc.c:2977
26278 msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
26279 msgstr " -print-multi-os-directory Muestra la ruta relativa para las bibliotecas del SO\n"
26280
26281-#: gcc.c:2972
26282+#: gcc.c:2978
26283 msgid " -print-sysroot Display the target libraries directory\n"
26284 msgstr " -print-sysroot Muestra el directorio de las bibliotecas objetivo\n"
26285
26286-#: gcc.c:2973
26287+#: gcc.c:2979
26288 msgid " -print-sysroot-headers-suffix Display the sysroot suffix used to find headers\n"
26289 msgstr " -print-sysroot-headers-suffix Muestra el sufijo sysroot que se usa para buscar encabezados\n"
26290
26291-#: gcc.c:2974
26292+#: gcc.c:2980
26293 msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
26294 msgstr " -Wa,<opciones> Pasa <opciones> separadas por coma al ensamblador\n"
26295
26296-#: gcc.c:2975
26297+#: gcc.c:2981
26298 msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
26299 msgstr " -Wp,<opciones> Pasa <opciones> separadas por coma al preprocesador\n"
26300
26301-#: gcc.c:2976
26302+#: gcc.c:2982
26303 msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
26304 msgstr " -Wl,<opciones> Pasa <opciones> separadas por coma al enlazador\n"
26305
26306-#: gcc.c:2977
26307+#: gcc.c:2983
26308 msgid " -Xassembler <arg> Pass <arg> on to the assembler\n"
26309 msgstr " -Xassembler <argumento> Pasa el <argumento> al ensamblador\n"
26310
26311-#: gcc.c:2978
26312+#: gcc.c:2984
26313 msgid " -Xpreprocessor <arg> Pass <arg> on to the preprocessor\n"
26314 msgstr " -Xpreprocessor <argumento> Pasa el <argumento> al preprocesador\n"
26315
26316-#: gcc.c:2979
26317+#: gcc.c:2985
26318 msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
26319 msgstr " -Xlinker <argumento> Pasa el <argumento> al enlazador\n"
26320
26321-#: gcc.c:2980
26322+#: gcc.c:2986
26323 msgid " -save-temps Do not delete intermediate files\n"
26324 msgstr " -save-temps No borra los ficheros intermedios\n"
26325
26326-#: gcc.c:2981
26327+#: gcc.c:2987
26328 msgid " -save-temps=<arg> Do not delete intermediate files\n"
26329 msgstr " -save-temps=<arg> No borra los ficheros intermedios\n"
26330
26331-#: gcc.c:2982
26332+#: gcc.c:2988
26333 msgid ""
26334 " -no-canonical-prefixes Do not canonicalize paths when building relative\n"
26335 " prefixes to other gcc components\n"
26336@@ -518,23 +518,23 @@
26337 " -no-canonical-prefixes No crea rutas completas al construir prefijos\n"
26338 " relativos a otros componentes de gcc\n"
26339
26340-#: gcc.c:2985
26341+#: gcc.c:2991
26342 msgid " -pipe Use pipes rather than intermediate files\n"
26343 msgstr " -pipe Usa tuberías en lugar de ficheros intermedios\n"
26344
26345-#: gcc.c:2986
26346+#: gcc.c:2992
26347 msgid " -time Time the execution of each subprocess\n"
26348 msgstr " -time Obtiene el tiempo de ejecución de cada subproceso\n"
26349
26350-#: gcc.c:2987
26351+#: gcc.c:2993
26352 msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
26353 msgstr " -specs=<fichero> Sobrepone las especificaciones internas con el contenido del <fichero>\n"
26354
26355-#: gcc.c:2988
26356+#: gcc.c:2994
26357 msgid " -std=<standard> Assume that the input sources are for <standard>\n"
26358 msgstr " -std=<estándar> Asume que los ficheros de entrada son para el <estándar>\n"
26359
26360-#: gcc.c:2989
26361+#: gcc.c:2995
26362 msgid ""
26363 " --sysroot=<directory> Use <directory> as the root directory for headers\n"
26364 " and libraries\n"
26365@@ -542,43 +542,43 @@
26366 " --sysroot=<directorio> Usa el <directorio> como directorio raíz para\n"
26367 " los encabezados y bibliotecas\n"
26368
26369-#: gcc.c:2992
26370+#: gcc.c:2998
26371 msgid " -B <directory> Add <directory> to the compiler's search paths\n"
26372 msgstr " -B <directorio> Agrega el <directorio> a las rutas de búsqueda del compilador\n"
26373
26374-#: gcc.c:2993
26375+#: gcc.c:2999
26376 msgid " -v Display the programs invoked by the compiler\n"
26377 msgstr " -v Muestra los programas invocados por el compilador\n"
26378
26379-#: gcc.c:2994
26380+#: gcc.c:3000
26381 msgid " -### Like -v but options quoted and commands not executed\n"
26382 msgstr " -### Como -v pero no se ejecutan las opciones entre comillas y las órdenes\n"
26383
26384-#: gcc.c:2995
26385+#: gcc.c:3001
26386 msgid " -E Preprocess only; do not compile, assemble or link\n"
26387 msgstr " -E Solamente preprocesa; no compila, ensambla o enlaza\n"
26388
26389-#: gcc.c:2996
26390+#: gcc.c:3002
26391 msgid " -S Compile only; do not assemble or link\n"
26392 msgstr " -S Solamente compila; no ensambla o enlaza\n"
26393
26394-#: gcc.c:2997
26395+#: gcc.c:3003
26396 msgid " -c Compile and assemble, but do not link\n"
26397 msgstr " -c Compila y ensambla, pero no enlaza\n"
26398
26399-#: gcc.c:2998
26400+#: gcc.c:3004
26401 msgid " -o <file> Place the output into <file>\n"
26402 msgstr " -o <fichero> Coloca la salida en el <fichero>\n"
26403
26404-#: gcc.c:2999
26405+#: gcc.c:3005
26406 msgid " -pie Create a position independent executable\n"
26407 msgstr " -pie Genera un ejecutable independiente de posición\n"
26408
26409-#: gcc.c:3000
26410+#: gcc.c:3006
26411 msgid " -shared Create a shared library\n"
26412 msgstr " -shared Crea una biblioteca compartida\n"
26413
26414-#: gcc.c:3001
26415+#: gcc.c:3007
26416 msgid ""
26417 " -x <language> Specify the language of the following input files\n"
26418 " Permissible languages include: c c++ assembler none\n"
26419@@ -590,7 +590,7 @@
26420 " 'none' significa revertir a la conducta habitual de\n"
26421 " adivinar el lenguaje basado en la extensión del fichero\n"
26422
26423-#: gcc.c:3008
26424+#: gcc.c:3014
26425 #, c-format
26426 msgid ""
26427 "\n"
26428@@ -603,27 +603,27 @@
26429 " automáticamente a los varios subprocesos invocados por %s. Para pasar\n"
26430 " otras opciones a estos procesos se deben usar las opciones -W<letra>.\n"
26431
26432-#: gcc.c:5233
26433+#: gcc.c:5239
26434 #, c-format
26435 msgid "Processing spec (%s), which is '%s'\n"
26436 msgstr "Se procesa la especificación (%s), la cual es '%s'\n"
26437
26438-#: gcc.c:6472
26439+#: gcc.c:6497
26440 #, c-format
26441 msgid "install: %s%s\n"
26442 msgstr "instalar: %s%s\n"
26443
26444-#: gcc.c:6475
26445+#: gcc.c:6500
26446 #, c-format
26447 msgid "programs: %s\n"
26448 msgstr "programas: %s\n"
26449
26450-#: gcc.c:6477
26451+#: gcc.c:6502
26452 #, c-format
26453 msgid "libraries: %s\n"
26454 msgstr "bibliotecas: %s\n"
26455
26456-#: gcc.c:6552
26457+#: gcc.c:6577
26458 #, c-format
26459 msgid ""
26460 "\n"
26461@@ -632,16 +632,16 @@
26462 "\n"
26463 "Para instrucciones de reporte de bichos, por favor vea:\n"
26464
26465-#: gcc.c:6568
26466+#: gcc.c:6593
26467 #, c-format
26468 msgid "%s %s%s\n"
26469 msgstr "%s %s%s\n"
26470
26471-#: gcc.c:6571 gcov.c:488 fortran/gfortranspec.c:305 java/jcf-dump.c:1165
26472+#: gcc.c:6596 gcov.c:488 fortran/gfortranspec.c:305 java/jcf-dump.c:1165
26473 msgid "(C)"
26474 msgstr "(C)"
26475
26476-#: gcc.c:6572 java/jcf-dump.c:1166
26477+#: gcc.c:6597 java/jcf-dump.c:1166
26478 #, c-format
26479 msgid ""
26480 "This is free software; see the source for copying conditions. There is NO\n"
26481@@ -653,32 +653,32 @@
26482 "PARTICULAR\n"
26483 "\n"
26484
26485-#: gcc.c:6589
26486+#: gcc.c:6614
26487 #, c-format
26488 msgid "Target: %s\n"
26489 msgstr "Objetivo: %s\n"
26490
26491-#: gcc.c:6590
26492+#: gcc.c:6615
26493 #, c-format
26494 msgid "Configured with: %s\n"
26495 msgstr "Configurado con: %s\n"
26496
26497-#: gcc.c:6604
26498+#: gcc.c:6629
26499 #, c-format
26500 msgid "Thread model: %s\n"
26501 msgstr "Modelo de hilos: %s\n"
26502
26503-#: gcc.c:6615
26504+#: gcc.c:6640
26505 #, c-format
26506 msgid "gcc version %s %s\n"
26507 msgstr "gcc versión %s %s\n"
26508
26509-#: gcc.c:6618
26510+#: gcc.c:6643
26511 #, c-format
26512 msgid "gcc driver version %s %sexecuting gcc version %s\n"
26513 msgstr "controlador gcc versión %s %sejecutando gcc versión %s\n"
26514
26515-#: gcc.c:6865
26516+#: gcc.c:6897
26517 #, c-format
26518 msgid ""
26519 "\n"
26520@@ -691,14 +691,14 @@
26521 "======================\n"
26522 "\n"
26523
26524-#: gcc.c:6866
26525+#: gcc.c:6898
26526 #, c-format
26527 msgid ""
26528 "Use \"-Wl,OPTION\" to pass \"OPTION\" to the linker.\n"
26529 "\n"
26530 msgstr "Utilice \"-Wl,OPCIÓN\" para pasar la \"OPCIÓN\" al enlazador.\n"
26531
26532-#: gcc.c:8058
26533+#: gcc.c:8090
26534 #, c-format
26535 msgid ""
26536 "Assembler options\n"
26537@@ -709,7 +709,7 @@
26538 "=======================\n"
26539 "\n"
26540
26541-#: gcc.c:8059
26542+#: gcc.c:8091
26543 #, c-format
26544 msgid ""
26545 "Use \"-Wa,OPTION\" to pass \"OPTION\" to the assembler.\n"
26546@@ -1185,27 +1185,27 @@
26547 msgid "At top level:"
26548 msgstr "En el nivel principal:"
26549
26550-#: langhooks.c:394 cp/error.c:2985
26551+#: langhooks.c:394 cp/error.c:2987
26552 #, c-format
26553 msgid "In member function %qs"
26554 msgstr "En la función miembro %qs"
26555
26556-#: langhooks.c:398 cp/error.c:2988
26557+#: langhooks.c:398 cp/error.c:2990
26558 #, c-format
26559 msgid "In function %qs"
26560 msgstr "En la función %qs"
26561
26562-#: langhooks.c:449 cp/error.c:2938
26563+#: langhooks.c:449 cp/error.c:2940
26564 #, c-format
26565 msgid " inlined from %qs at %s:%d:%d"
26566 msgstr " incluído en línea de %qs en %s:%d:%d"
26567
26568-#: langhooks.c:454 cp/error.c:2943
26569+#: langhooks.c:454 cp/error.c:2945
26570 #, c-format
26571 msgid " inlined from %qs at %s:%d"
26572 msgstr " incluído en línea de %qs en %s:%d"
26573
26574-#: langhooks.c:460 cp/error.c:2949
26575+#: langhooks.c:460 cp/error.c:2951
26576 #, c-format
26577 msgid " inlined from %qs"
26578 msgstr " incluído en línea de %qs"
26579@@ -1397,7 +1397,7 @@
26580 msgid "VOIDmode on an output"
26581 msgstr "modoVOID en una salida"
26582
26583-#: reload1.c:8653
26584+#: reload1.c:8658
26585 msgid "failure trying to reload:"
26586 msgstr "falla al tratar de recargar:"
26587
26588@@ -1409,39 +1409,39 @@
26589 msgid "insn does not satisfy its constraints:"
26590 msgstr "la insn no satisface sus restricciones:"
26591
26592-#: targhooks.c:1403
26593+#: targhooks.c:1404
26594 #, c-format
26595 msgid "created and used with differing settings of '%s'"
26596 msgstr "creado y usado con diferentes opciones de '%s'"
26597
26598-#: targhooks.c:1405
26599+#: targhooks.c:1406
26600 msgid "out of memory"
26601 msgstr "memoria agotada"
26602
26603-#: targhooks.c:1420
26604+#: targhooks.c:1421
26605 msgid "created and used with different settings of -fpic"
26606 msgstr "creado y usado con diferentes opciones de -fpic"
26607
26608-#: targhooks.c:1422
26609+#: targhooks.c:1423
26610 msgid "created and used with different settings of -fpie"
26611 msgstr "creado y usado con diferentes opciones de -fpie"
26612
26613-#: tlink.c:387
26614+#: tlink.c:392
26615 #, c-format
26616 msgid "collect: reading %s\n"
26617 msgstr "collect: leyendo %s\n"
26618
26619-#: tlink.c:537
26620+#: tlink.c:548
26621 #, c-format
26622 msgid "collect: recompiling %s\n"
26623 msgstr "collect: recompilando %s\n"
26624
26625-#: tlink.c:744
26626+#: tlink.c:632
26627 #, c-format
26628 msgid "collect: tweaking %s in %s\n"
26629 msgstr "collect: alterando %s en %s\n"
26630
26631-#: tlink.c:794
26632+#: tlink.c:848
26633 #, c-format
26634 msgid "collect: relinking\n"
26635 msgstr "collect: reenlazando\n"
26636@@ -2523,121 +2523,121 @@
26637 msgid "<return-value>"
26638 msgstr "<valor-devolución>"
26639
26640-#: c-family/c-pretty-print.c:2138 cp/error.c:1802 cp/error.c:2711
26641+#: c-family/c-pretty-print.c:2138 cp/error.c:1802 cp/error.c:2713
26642 msgid "<unknown>"
26643 msgstr "<desconocido>"
26644
26645-#: config/alpha/alpha.c:5017
26646+#: config/alpha/alpha.c:5022
26647 #, c-format
26648 msgid "invalid %%H value"
26649 msgstr "valor %%H inválido"
26650
26651-#: config/alpha/alpha.c:5038 config/bfin/bfin.c:1423
26652+#: config/alpha/alpha.c:5043 config/bfin/bfin.c:1423
26653 #, c-format
26654 msgid "invalid %%J value"
26655 msgstr "valor %%J inválido"
26656
26657-#: config/alpha/alpha.c:5068 config/ia64/ia64.c:5291
26658+#: config/alpha/alpha.c:5073 config/ia64/ia64.c:5291
26659 #, c-format
26660 msgid "invalid %%r value"
26661 msgstr "valor %%r inválido"
26662
26663-#: config/alpha/alpha.c:5078 config/ia64/ia64.c:5245
26664-#: config/rs6000/rs6000.c:15003 config/xtensa/xtensa.c:2350
26665+#: config/alpha/alpha.c:5083 config/ia64/ia64.c:5245
26666+#: config/rs6000/rs6000.c:15019 config/xtensa/xtensa.c:2350
26667 #, c-format
26668 msgid "invalid %%R value"
26669 msgstr "valor %%R inválido"
26670
26671-#: config/alpha/alpha.c:5084 config/rs6000/rs6000.c:14922
26672+#: config/alpha/alpha.c:5089 config/rs6000/rs6000.c:14938
26673 #: config/xtensa/xtensa.c:2317
26674 #, c-format
26675 msgid "invalid %%N value"
26676 msgstr "valor %%N inválido"
26677
26678-#: config/alpha/alpha.c:5092 config/rs6000/rs6000.c:14950
26679+#: config/alpha/alpha.c:5097 config/rs6000/rs6000.c:14966
26680 #, c-format
26681 msgid "invalid %%P value"
26682 msgstr "valor %%P inválido"
26683
26684-#: config/alpha/alpha.c:5100
26685+#: config/alpha/alpha.c:5105
26686 #, c-format
26687 msgid "invalid %%h value"
26688 msgstr "valor %%h inválido"
26689
26690-#: config/alpha/alpha.c:5108 config/xtensa/xtensa.c:2343
26691+#: config/alpha/alpha.c:5113 config/xtensa/xtensa.c:2343
26692 #, c-format
26693 msgid "invalid %%L value"
26694 msgstr "valor %%L inválido"
26695
26696-#: config/alpha/alpha.c:5147 config/rs6000/rs6000.c:14904
26697+#: config/alpha/alpha.c:5152 config/rs6000/rs6000.c:14920
26698 #, c-format
26699 msgid "invalid %%m value"
26700 msgstr "valor %%m inválido"
26701
26702-#: config/alpha/alpha.c:5155 config/rs6000/rs6000.c:14912
26703+#: config/alpha/alpha.c:5160 config/rs6000/rs6000.c:14928
26704 #, c-format
26705 msgid "invalid %%M value"
26706 msgstr "valor %%M inválido"
26707
26708-#: config/alpha/alpha.c:5199
26709+#: config/alpha/alpha.c:5204
26710 #, c-format
26711 msgid "invalid %%U value"
26712 msgstr "valor %%U inválido"
26713
26714-#: config/alpha/alpha.c:5207 config/alpha/alpha.c:5218
26715-#: config/rs6000/rs6000.c:15011
26716+#: config/alpha/alpha.c:5212 config/alpha/alpha.c:5223
26717+#: config/rs6000/rs6000.c:15027
26718 #, c-format
26719 msgid "invalid %%s value"
26720 msgstr "valor %%s inválido"
26721
26722-#: config/alpha/alpha.c:5229
26723+#: config/alpha/alpha.c:5234
26724 #, c-format
26725 msgid "invalid %%C value"
26726 msgstr "valor %%C inválido"
26727
26728-#: config/alpha/alpha.c:5266 config/rs6000/rs6000.c:14769
26729+#: config/alpha/alpha.c:5271 config/rs6000/rs6000.c:14785
26730 #, c-format
26731 msgid "invalid %%E value"
26732 msgstr "valor %%E inválido"
26733
26734-#: config/alpha/alpha.c:5291 config/alpha/alpha.c:5339
26735+#: config/alpha/alpha.c:5296 config/alpha/alpha.c:5344
26736 #, c-format
26737 msgid "unknown relocation unspec"
26738 msgstr "reubicación unspec desconocida"
26739
26740-#: config/alpha/alpha.c:5300 config/rs6000/rs6000.c:15377
26741-#: config/spu/spu.c:1744
26742+#: config/alpha/alpha.c:5305 config/cr16/cr16.c:1537
26743+#: config/rs6000/rs6000.c:15393 config/spu/spu.c:1744
26744 #, c-format
26745 msgid "invalid %%xn code"
26746 msgstr "código %%xn inválido"
26747
26748-#: config/arm/arm.c:17110 config/arm/arm.c:17128
26749+#: config/arm/arm.c:17113 config/arm/arm.c:17131
26750 #, c-format
26751 msgid "predicated Thumb instruction"
26752 msgstr "instrucción de predicado Thumb"
26753
26754-#: config/arm/arm.c:17116
26755+#: config/arm/arm.c:17119
26756 #, c-format
26757 msgid "predicated instruction in conditional sequence"
26758 msgstr "instrucción de predicado en una secuencia condicional"
26759
26760-#: config/arm/arm.c:17247
26761+#: config/arm/arm.c:17250
26762 #, c-format
26763 msgid "Unsupported operand for code '%c'"
26764 msgstr "No se admite el operando para el código '%c'"
26765
26766-#: config/arm/arm.c:17295
26767+#: config/arm/arm.c:17298
26768 #, c-format
26769 msgid "invalid shift operand"
26770 msgstr "operando de desplazamiento inválido"
26771
26772-#: config/arm/arm.c:17352 config/arm/arm.c:17374 config/arm/arm.c:17384
26773-#: config/arm/arm.c:17394 config/arm/arm.c:17404 config/arm/arm.c:17443
26774-#: config/arm/arm.c:17461 config/arm/arm.c:17496 config/arm/arm.c:17515
26775-#: config/arm/arm.c:17530 config/arm/arm.c:17557 config/arm/arm.c:17564
26776-#: config/arm/arm.c:17582 config/arm/arm.c:17589 config/arm/arm.c:17597
26777-#: config/arm/arm.c:17618 config/arm/arm.c:17625 config/arm/arm.c:17750
26778-#: config/arm/arm.c:17757 config/arm/arm.c:17780 config/arm/arm.c:17787
26779+#: config/arm/arm.c:17355 config/arm/arm.c:17377 config/arm/arm.c:17387
26780+#: config/arm/arm.c:17397 config/arm/arm.c:17407 config/arm/arm.c:17446
26781+#: config/arm/arm.c:17464 config/arm/arm.c:17499 config/arm/arm.c:17518
26782+#: config/arm/arm.c:17533 config/arm/arm.c:17560 config/arm/arm.c:17567
26783+#: config/arm/arm.c:17585 config/arm/arm.c:17592 config/arm/arm.c:17600
26784+#: config/arm/arm.c:17621 config/arm/arm.c:17628 config/arm/arm.c:17753
26785+#: config/arm/arm.c:17760 config/arm/arm.c:17783 config/arm/arm.c:17790
26786 #: config/bfin/bfin.c:1436 config/bfin/bfin.c:1443 config/bfin/bfin.c:1450
26787 #: config/bfin/bfin.c:1457 config/bfin/bfin.c:1466 config/bfin/bfin.c:1473
26788 #: config/bfin/bfin.c:1480 config/bfin/bfin.c:1487
26789@@ -2645,78 +2645,79 @@
26790 msgid "invalid operand for code '%c'"
26791 msgstr "operando inválido para el código '%c'"
26792
26793-#: config/arm/arm.c:17456
26794+#: config/arm/arm.c:17459
26795 #, c-format
26796 msgid "instruction never executed"
26797 msgstr "la instrucción nunca se ejecuta"
26798
26799-#: config/arm/arm.c:17799
26800+#: config/arm/arm.c:17802
26801 #, c-format
26802 msgid "missing operand"
26803 msgstr "falta un operando"
26804
26805-#: config/arm/arm.c:20399
26806+#: config/arm/arm.c:20404
26807 msgid "function parameters cannot have __fp16 type"
26808 msgstr "los parámetros de la función no pueden tener el tipo __fp16"
26809
26810-#: config/arm/arm.c:20409
26811+#: config/arm/arm.c:20414
26812 msgid "functions cannot return __fp16 type"
26813 msgstr "la función no puede devolver el tipo __fp16"
26814
26815-#: config/avr/avr.c:1698
26816+#: config/avr/avr.c:1695
26817 #, c-format
26818 msgid "address operand requires constraint for X, Y, or Z register"
26819 msgstr "el operando de dirección requiere una restricción para los registros X, Y, o Z"
26820
26821-#: config/avr/avr.c:1851
26822+#: config/avr/avr.c:1848
26823 msgid "operands to %T/%t must be reg + const_int:"
26824 msgstr "los operandos para %T/%t deben ser reg + const_int:"
26825
26826-#: config/avr/avr.c:1883 config/avr/avr.c:1938
26827+#: config/avr/avr.c:1886 config/avr/avr.c:1941
26828 msgid "bad address, not an I/O address:"
26829 msgstr "dirección errónea, no es una dirección de E/S:"
26830
26831-#: config/avr/avr.c:1892
26832+#: config/avr/avr.c:1895
26833 msgid "bad address, not a constant:"
26834 msgstr "dirección errónea, no es una constante:"
26835
26836-#: config/avr/avr.c:1910
26837+#: config/avr/avr.c:1913
26838 msgid "bad address, not (reg+disp):"
26839 msgstr "dirección errónea, no (reg+disp):"
26840
26841-#: config/avr/avr.c:1917
26842+#: config/avr/avr.c:1920
26843 msgid "bad address, not post_inc or pre_dec:"
26844 msgstr "dirección errónea, no hay post_inc o pre_dec:"
26845
26846-#: config/avr/avr.c:1928
26847+#: config/avr/avr.c:1931
26848 msgid "internal compiler error. Bad address:"
26849 msgstr "error interno del compilador. Dirección errónea:"
26850
26851-#: config/avr/avr.c:1958
26852+#: config/avr/avr.c:1961
26853 msgid "internal compiler error. Unknown mode:"
26854 msgstr "error interno del compilador. Modo desconocido:"
26855
26856-#: config/avr/avr.c:2918 config/avr/avr.c:3491 config/avr/avr.c:3776
26857+#: config/avr/avr.c:2922 config/avr/avr.c:3495 config/avr/avr.c:3780
26858 msgid "invalid insn:"
26859 msgstr "insn inválida:"
26860
26861-#: config/avr/avr.c:2947 config/avr/avr.c:3022 config/avr/avr.c:3065
26862-#: config/avr/avr.c:3084 config/avr/avr.c:3175 config/avr/avr.c:3344
26863-#: config/avr/avr.c:3554 config/avr/avr.c:3669 config/avr/avr.c:3805
26864-#: config/avr/avr.c:3898
26865+#: config/avr/avr.c:2951 config/avr/avr.c:3026 config/avr/avr.c:3069
26866+#: config/avr/avr.c:3088 config/avr/avr.c:3179 config/avr/avr.c:3348
26867+#: config/avr/avr.c:3558 config/avr/avr.c:3673 config/avr/avr.c:3809
26868+#: config/avr/avr.c:3900 config/avr/avr.c:4022
26869 msgid "incorrect insn:"
26870 msgstr "insn incorrecta:"
26871
26872-#: config/avr/avr.c:3099 config/avr/avr.c:3260 config/avr/avr.c:3415
26873-#: config/avr/avr.c:3622 config/avr/avr.c:3715 config/avr/avr.c:3953
26874+#: config/avr/avr.c:3103 config/avr/avr.c:3264 config/avr/avr.c:3419
26875+#: config/avr/avr.c:3626 config/avr/avr.c:3719 config/avr/avr.c:3956
26876+#: config/avr/avr.c:4077
26877 msgid "unknown move insn:"
26878 msgstr "insn move desconocida:"
26879
26880-#: config/avr/avr.c:4367
26881+#: config/avr/avr.c:4491
26882 msgid "bad shift insn:"
26883 msgstr "insn shift errónea:"
26884
26885-#: config/avr/avr.c:4475 config/avr/avr.c:4958 config/avr/avr.c:5375
26886+#: config/avr/avr.c:4599 config/avr/avr.c:5080 config/avr/avr.c:5495
26887 msgid "internal compiler error. Incorrect shift:"
26888 msgstr "error interno del compilador. Desplazamiento incorrecto:"
26889
26890@@ -2731,7 +2732,7 @@
26891 msgstr "operando const_double inválido"
26892
26893 #: config/cris/cris.c:579 config/moxie/moxie.c:111 final.c:3129 final.c:3131
26894-#: fold-const.c:287 gcc.c:4603 gcc.c:4617 loop-iv.c:2968 loop-iv.c:2977
26895+#: fold-const.c:287 gcc.c:4609 gcc.c:4623 loop-iv.c:2968 loop-iv.c:2977
26896 #: rtl-error.c:103 toplev.c:346 tree-ssa-loop-niter.c:1916 tree-vrp.c:6041
26897 #: cp/typeck.c:5334 java/expr.c:390 lto/lto-object.c:184 lto/lto-object.c:282
26898 #: lto/lto-object.c:339 lto/lto-object.c:363
26899@@ -2832,7 +2833,7 @@
26900
26901 #. Unknown flag.
26902 #. Undocumented flag.
26903-#: config/epiphany/epiphany.c:1193 config/m32r/m32r.c:2217
26904+#: config/epiphany/epiphany.c:1196 config/m32r/m32r.c:2217
26905 #: config/sparc/sparc.c:8293
26906 #, c-format
26907 msgid "invalid operand output code"
26908@@ -2962,67 +2963,72 @@
26909 msgid "bad output_condmove_single operand"
26910 msgstr "operando output_condmove_single erróneo"
26911
26912-#: config/i386/i386.c:13111
26913+#: config/i386/i386.c:13125
26914 #, c-format
26915 msgid "invalid UNSPEC as operand"
26916 msgstr "UNSPEC inválido como operando"
26917
26918-#: config/i386/i386.c:13721
26919+#: config/i386/i386.c:13748
26920 #, c-format
26921 msgid "'%%&' used without any local dynamic TLS references"
26922 msgstr "se usó '%%&' sin ninguna referencia TLS dinámica local"
26923
26924-#: config/i386/i386.c:13812 config/i386/i386.c:13887
26925+#: config/i386/i386.c:13839 config/i386/i386.c:13914
26926 #, c-format
26927 msgid "invalid operand size for operand code '%c'"
26928 msgstr "tamaño de operando inválido para el código de operando '%c'"
26929
26930-#: config/i386/i386.c:13882
26931+#: config/i386/i386.c:13909
26932 #, c-format
26933 msgid "invalid operand type used with operand code '%c'"
26934 msgstr "se usó un tipo de operando inválido con el código de operando '%c'"
26935
26936-#: config/i386/i386.c:13963 config/i386/i386.c:14003
26937+#: config/i386/i386.c:13990 config/i386/i386.c:14030
26938 #, c-format
26939 msgid "operand is not a condition code, invalid operand code 'D'"
26940 msgstr "el operando no es un código de condición, código de operando 'D' inválido"
26941
26942-#: config/i386/i386.c:14029
26943+#: config/i386/i386.c:14056
26944 #, c-format
26945 msgid "operand is neither a constant nor a condition code, invalid operand code 'C'"
26946 msgstr "el operando no es una constante ni un código de condición, código de operando 'C' inválido"
26947
26948-#: config/i386/i386.c:14039
26949+#: config/i386/i386.c:14066
26950 #, c-format
26951 msgid "operand is neither a constant nor a condition code, invalid operand code 'F'"
26952 msgstr "el operando no es una constante ni un código de condición, código de operando 'F' inválido"
26953
26954-#: config/i386/i386.c:14057
26955+#: config/i386/i386.c:14084
26956 #, c-format
26957 msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
26958 msgstr "el operando no es una constante ni un código de condición, código de operando 'c' inválido"
26959
26960-#: config/i386/i386.c:14067
26961+#: config/i386/i386.c:14094
26962 #, c-format
26963 msgid "operand is neither a constant nor a condition code, invalid operand code 'f'"
26964 msgstr "el operando no es una constante ni un código de condición, código de operando 'f' inválido"
26965
26966-#: config/i386/i386.c:14170
26967+#: config/i386/i386.c:14109
26968 #, c-format
26969+msgid "operand is not an offsettable memory reference, invalid operand code 'H'"
26970+msgstr "el operando no es una referencia de memoria desplazable, código de operando 'H' inválido"
26971+
26972+#: config/i386/i386.c:14204
26973+#, c-format
26974 msgid "operand is not a condition code, invalid operand code 'Y'"
26975 msgstr "el operando no es un código de condición, código de operando 'Y' inválido"
26976
26977-#: config/i386/i386.c:14200
26978+#: config/i386/i386.c:14234
26979 #, c-format
26980 msgid "invalid operand code '%c'"
26981 msgstr "código de operando '%c' inválido"
26982
26983-#: config/i386/i386.c:14255
26984+#: config/i386/i386.c:14289
26985 #, c-format
26986 msgid "invalid constraints for operand"
26987 msgstr "restricciones inválidas para el operando"
26988
26989-#: config/i386/i386.c:23269
26990+#: config/i386/i386.c:23303
26991 msgid "unknown insn mode"
26992 msgstr "modo insn desconocido"
26993
26994@@ -3073,12 +3079,13 @@
26995 msgid "invalid operation on %<__fpreg%>"
26996 msgstr "operación inválida en %<__fpreg%>"
26997
26998-#: config/iq2000/iq2000.c:3130
26999+#: config/iq2000/iq2000.c:3130 config/tilegx/tilegx.c:5131
27000+#: config/tilepro/tilepro.c:4702
27001 #, c-format
27002 msgid "invalid %%P operand"
27003 msgstr "operando %%P inválido"
27004
27005-#: config/iq2000/iq2000.c:3138 config/rs6000/rs6000.c:14940
27006+#: config/iq2000/iq2000.c:3138 config/rs6000/rs6000.c:14956
27007 #, c-format
27008 msgid "invalid %%p value"
27009 msgstr "valor %%p inválido"
27010@@ -3157,7 +3164,7 @@
27011 msgstr "la dirección de post-incremento no es un registro"
27012
27013 #: config/m32r/m32r.c:2321 config/m32r/m32r.c:2335
27014-#: config/rs6000/rs6000.c:24531
27015+#: config/rs6000/rs6000.c:24548
27016 msgid "bad address"
27017 msgstr "dirección errónea"
27018
27019@@ -3204,19 +3211,19 @@
27020 msgid "letter %c was found & insn was not CONST_INT"
27021 msgstr "se encontró la letra %c y la insn no era CONS_INT"
27022
27023-#: config/mips/mips.c:7547 config/mips/mips.c:7568 config/mips/mips.c:7688
27024+#: config/mips/mips.c:7709 config/mips/mips.c:7730 config/mips/mips.c:7850
27025 #, c-format
27026 msgid "'%%%c' is not a valid operand prefix"
27027 msgstr "'%%%c' no es un prefijo de operando válido"
27028
27029-#: config/mips/mips.c:7625 config/mips/mips.c:7632 config/mips/mips.c:7639
27030-#: config/mips/mips.c:7646 config/mips/mips.c:7706 config/mips/mips.c:7720
27031-#: config/mips/mips.c:7733 config/mips/mips.c:7742
27032+#: config/mips/mips.c:7787 config/mips/mips.c:7794 config/mips/mips.c:7801
27033+#: config/mips/mips.c:7808 config/mips/mips.c:7868 config/mips/mips.c:7882
27034+#: config/mips/mips.c:7895 config/mips/mips.c:7904
27035 #, c-format
27036 msgid "invalid use of '%%%c'"
27037 msgstr "uso inválido de '%%%c'"
27038
27039-#: config/mips/mips.c:7964
27040+#: config/mips/mips.c:8126
27041 msgid "mips_debugger_offset called with non stack/frame/arg pointer"
27042 msgstr "se llamó a mips_debuger_offset con un puntero que no es stack/frame/arg"
27043
27044@@ -3292,194 +3299,194 @@
27045 msgid "Try running '%s' in the shell to raise its limit.\n"
27046 msgstr "Pruebe ejecutar '%s' en el intérprete de órdenes para elevar su límite.\n"
27047
27048-#: config/rs6000/rs6000.c:2745
27049+#: config/rs6000/rs6000.c:2758
27050 msgid "-mvsx requires hardware floating point"
27051 msgstr "-mvsx requiere coma flotante de hardware"
27052
27053-#: config/rs6000/rs6000.c:2750
27054+#: config/rs6000/rs6000.c:2763
27055 msgid "-mvsx and -mpaired are incompatible"
27056 msgstr "-mvsx y -mpaired son incompatibles"
27057
27058-#: config/rs6000/rs6000.c:2755
27059+#: config/rs6000/rs6000.c:2768
27060 msgid "-mvsx used with little endian code"
27061 msgstr "se usó -mvsx con código little endian"
27062
27063-#: config/rs6000/rs6000.c:2757
27064+#: config/rs6000/rs6000.c:2770
27065 msgid "-mvsx needs indexed addressing"
27066 msgstr "-mvsx necesita direccionamiento indizado"
27067
27068-#: config/rs6000/rs6000.c:2761
27069+#: config/rs6000/rs6000.c:2774
27070 msgid "-mvsx and -mno-altivec are incompatible"
27071 msgstr "-mvsx y -mno-altivec son incompatibles"
27072
27073-#: config/rs6000/rs6000.c:2763
27074+#: config/rs6000/rs6000.c:2776
27075 msgid "-mno-altivec disables vsx"
27076 msgstr "-mno-altivec desactiva vsx"
27077
27078-#: config/rs6000/rs6000.c:7311
27079+#: config/rs6000/rs6000.c:7324
27080 msgid "bad move"
27081 msgstr "move erróneo"
27082
27083-#: config/rs6000/rs6000.c:14750
27084+#: config/rs6000/rs6000.c:14766
27085 #, c-format
27086 msgid "invalid %%c value"
27087 msgstr "valor %%c inválido"
27088
27089-#: config/rs6000/rs6000.c:14778
27090+#: config/rs6000/rs6000.c:14794
27091 #, c-format
27092 msgid "invalid %%f value"
27093 msgstr "valor %%f inválido"
27094
27095-#: config/rs6000/rs6000.c:14787
27096+#: config/rs6000/rs6000.c:14803
27097 #, c-format
27098 msgid "invalid %%F value"
27099 msgstr "valor %%F inválido"
27100
27101-#: config/rs6000/rs6000.c:14796
27102+#: config/rs6000/rs6000.c:14812
27103 #, c-format
27104 msgid "invalid %%G value"
27105 msgstr "valor %%G inválido"
27106
27107-#: config/rs6000/rs6000.c:14831
27108+#: config/rs6000/rs6000.c:14847
27109 #, c-format
27110 msgid "invalid %%j code"
27111 msgstr "código %%j inválido"
27112
27113-#: config/rs6000/rs6000.c:14841
27114+#: config/rs6000/rs6000.c:14857
27115 #, c-format
27116 msgid "invalid %%J code"
27117 msgstr "código %%J inválido"
27118
27119-#: config/rs6000/rs6000.c:14851
27120+#: config/rs6000/rs6000.c:14867
27121 #, c-format
27122 msgid "invalid %%k value"
27123 msgstr "valor %%k inválido"
27124
27125-#: config/rs6000/rs6000.c:14866 config/xtensa/xtensa.c:2336
27126+#: config/rs6000/rs6000.c:14882 config/xtensa/xtensa.c:2336
27127 #, c-format
27128 msgid "invalid %%K value"
27129 msgstr "valor %%K inválido"
27130
27131-#: config/rs6000/rs6000.c:14930
27132+#: config/rs6000/rs6000.c:14946
27133 #, c-format
27134 msgid "invalid %%O value"
27135 msgstr "valor %%O inválido"
27136
27137-#: config/rs6000/rs6000.c:14977
27138+#: config/rs6000/rs6000.c:14993
27139 #, c-format
27140 msgid "invalid %%q value"
27141 msgstr "valor %%q inválido"
27142
27143-#: config/rs6000/rs6000.c:15021
27144+#: config/rs6000/rs6000.c:15037
27145 #, c-format
27146 msgid "invalid %%S value"
27147 msgstr "valor %%S inválido"
27148
27149-#: config/rs6000/rs6000.c:15061
27150+#: config/rs6000/rs6000.c:15077
27151 #, c-format
27152 msgid "invalid %%T value"
27153 msgstr "valor %%T inválido"
27154
27155-#: config/rs6000/rs6000.c:15071
27156+#: config/rs6000/rs6000.c:15087
27157 #, c-format
27158 msgid "invalid %%u value"
27159 msgstr "valor %%u inválido"
27160
27161-#: config/rs6000/rs6000.c:15080 config/xtensa/xtensa.c:2306
27162+#: config/rs6000/rs6000.c:15096 config/xtensa/xtensa.c:2306
27163 #, c-format
27164 msgid "invalid %%v value"
27165 msgstr "valor %%v inválido"
27166
27167-#: config/rs6000/rs6000.c:15179 config/xtensa/xtensa.c:2357
27168+#: config/rs6000/rs6000.c:15195 config/xtensa/xtensa.c:2357
27169 #, c-format
27170 msgid "invalid %%x value"
27171 msgstr "valor %%x inválido"
27172
27173-#: config/rs6000/rs6000.c:15325
27174+#: config/rs6000/rs6000.c:15341
27175 #, c-format
27176 msgid "invalid %%y value, try using the 'Z' constraint"
27177 msgstr "valor %%y inválido, pruebe usando la restricción 'Z'"
27178
27179-#: config/rs6000/rs6000.c:26941
27180+#: config/rs6000/rs6000.c:26958
27181 msgid "AltiVec argument passed to unprototyped function"
27182 msgstr "Se pasó un argumento Altivec a una función sin prototipo"
27183
27184-#: config/s390/s390.c:5135
27185+#: config/s390/s390.c:5140
27186 #, c-format
27187 msgid "symbolic memory references are only supported on z10 or later"
27188 msgstr "las referencias a memoria simbólica sólo se admiten en z10 o posterior"
27189
27190-#: config/s390/s390.c:5146
27191+#: config/s390/s390.c:5151
27192 #, c-format
27193 msgid "cannot decompose address"
27194 msgstr "no se puede descomponer la dirección"
27195
27196-#: config/s390/s390.c:5205
27197+#: config/s390/s390.c:5210
27198 #, c-format
27199 msgid "invalid comparison operator for 'E' output modifier"
27200 msgstr "operador de comparación inválido para el modificador de salida 'E'"
27201
27202-#: config/s390/s390.c:5226
27203+#: config/s390/s390.c:5231
27204 #, c-format
27205 msgid "invalid reference for 'J' output modifier"
27206 msgstr "referencia inválida para el modificador de salida 'J'"
27207
27208-#: config/s390/s390.c:5240
27209+#: config/s390/s390.c:5245
27210 #, c-format
27211 msgid "memory reference expected for 'O' output modifier"
27212 msgstr "se esperaba una referencia de memoria para el modificador de salida 'O'"
27213
27214-#: config/s390/s390.c:5251
27215+#: config/s390/s390.c:5256
27216 #, c-format
27217 msgid "invalid address for 'O' output modifier"
27218 msgstr "dirección inválida para el modificador de salida 'O'"
27219
27220-#: config/s390/s390.c:5269
27221+#: config/s390/s390.c:5274
27222 #, c-format
27223 msgid "memory reference expected for 'R' output modifier"
27224 msgstr "se esperaba una referencia de memoria para el modificador de salida 'R'"
27225
27226-#: config/s390/s390.c:5280
27227+#: config/s390/s390.c:5285
27228 #, c-format
27229 msgid "invalid address for 'R' output modifier"
27230 msgstr "dirección inválida para el modificador de salida 'R'"
27231
27232-#: config/s390/s390.c:5298
27233+#: config/s390/s390.c:5303
27234 #, c-format
27235 msgid "memory reference expected for 'S' output modifier"
27236 msgstr "se esperaba una referencia de memoria para el modificador de salida 'S'"
27237
27238-#: config/s390/s390.c:5308
27239+#: config/s390/s390.c:5313
27240 #, c-format
27241 msgid "invalid address for 'S' output modifier"
27242 msgstr "dirección inválida para el modificador de saida 'S'"
27243
27244-#: config/s390/s390.c:5328
27245+#: config/s390/s390.c:5333
27246 #, c-format
27247 msgid "register or memory expression expected for 'N' output modifier"
27248 msgstr "se esperaba un registro o expresión de memoria para el modificador de salida 'N'"
27249
27250-#: config/s390/s390.c:5338
27251+#: config/s390/s390.c:5343
27252 #, c-format
27253 msgid "register or memory expression expected for 'M' output modifier"
27254 msgstr "se esperaba un registro o expresión de memoria para el modificador de salida 'M'"
27255
27256-#: config/s390/s390.c:5403
27257+#: config/s390/s390.c:5408
27258 #, c-format
27259 msgid "invalid constant - try using an output modifier"
27260 msgstr "constante inválida - pruebe usar un modificador de salida"
27261
27262-#: config/s390/s390.c:5406
27263+#: config/s390/s390.c:5411
27264 #, c-format
27265 msgid "invalid constant for output modifier '%c'"
27266 msgstr "constante inválida para el modificador de salida '%c'"
27267
27268-#: config/s390/s390.c:5413
27269+#: config/s390/s390.c:5418
27270 #, c-format
27271 msgid "invalid expression - try using an output modifier"
27272 msgstr "expresión inválida - pruebe usar un modificador de salida"
27273
27274-#: config/s390/s390.c:5416
27275+#: config/s390/s390.c:5421
27276 #, c-format
27277 msgid "invalid expression for output modifier '%c'"
27278 msgstr "expresión inválida para el modificador de salida '%c'"
27279@@ -3489,25 +3496,25 @@
27280 msgid "invalid operand for code: '%c'"
27281 msgstr "operando inválido para code: '%c'"
27282
27283-#: config/sh/sh.c:1026
27284+#: config/sh/sh.c:1031
27285 #, c-format
27286 msgid "invalid operand to %%R"
27287 msgstr "operando inválido para %%R"
27288
27289-#: config/sh/sh.c:1053
27290+#: config/sh/sh.c:1058
27291 #, c-format
27292 msgid "invalid operand to %%S"
27293 msgstr "operando inválido para %%S"
27294
27295-#: config/sh/sh.c:9137
27296+#: config/sh/sh.c:9142
27297 msgid "created and used with different architectures / ABIs"
27298 msgstr "creado y usado con diferentes arquitecturas / ABIs"
27299
27300-#: config/sh/sh.c:9139
27301+#: config/sh/sh.c:9144
27302 msgid "created and used with different ABIs"
27303 msgstr "creado y usado con diferentes ABIs"
27304
27305-#: config/sh/sh.c:9141
27306+#: config/sh/sh.c:9146
27307 msgid "created and used with different endianness"
27308 msgstr "creado y usado con diferente orden de bits"
27309
27310@@ -3526,12 +3533,13 @@
27311 msgid "invalid %%B operand"
27312 msgstr "operando %%B inválido"
27313
27314-#: config/sparc/sparc.c:8232
27315+#: config/sparc/sparc.c:8232 config/tilegx/tilegx.c:4934
27316+#: config/tilepro/tilepro.c:4505
27317 #, c-format
27318 msgid "invalid %%C operand"
27319 msgstr "operando %%C inválido"
27320
27321-#: config/sparc/sparc.c:8249
27322+#: config/sparc/sparc.c:8249 config/tilegx/tilegx.c:4967
27323 #, c-format
27324 msgid "invalid %%D operand"
27325 msgstr "operando %%D inválido"
27326@@ -3576,6 +3584,91 @@
27327 msgid "xstormy16_print_operand: unknown code"
27328 msgstr "xstormy16_print_operand: código desconocido"
27329
27330+#: config/tilegx/tilegx.c:4919 config/tilepro/tilepro.c:4490
27331+#, c-format
27332+msgid "invalid %%c operand"
27333+msgstr "operando %%c inválido"
27334+
27335+#: config/tilegx/tilegx.c:4950
27336+#, c-format
27337+msgid "invalid %%d operand"
27338+msgstr "operando %%d inválido"
27339+
27340+#: config/tilegx/tilegx.c:5033
27341+#, c-format
27342+msgid "invalid %%H specifier"
27343+msgstr "especificador %%H inválido"
27344+
27345+#: config/tilegx/tilegx.c:5069 config/tilepro/tilepro.c:4519
27346+#, c-format
27347+msgid "invalid %%h operand"
27348+msgstr "operando %%h inválido"
27349+
27350+#: config/tilegx/tilegx.c:5081 config/tilepro/tilepro.c:4583
27351+#, c-format
27352+msgid "invalid %%I operand"
27353+msgstr "operando %%I inválido"
27354+
27355+#: config/tilegx/tilegx.c:5095 config/tilepro/tilepro.c:4597
27356+#, c-format
27357+msgid "invalid %%i operand"
27358+msgstr "operando %%i inválido"
27359+
27360+#: config/tilegx/tilegx.c:5118 config/tilepro/tilepro.c:4620
27361+#, c-format
27362+msgid "invalid %%j operand"
27363+msgstr "operando %%j inválido"
27364+
27365+#: config/tilegx/tilegx.c:5149
27366+#, c-format
27367+msgid "invalid %%%c operand"
27368+msgstr "operando %%%c inválido"
27369+
27370+#: config/tilegx/tilegx.c:5164 config/tilepro/tilepro.c:4734
27371+#, c-format
27372+msgid "invalid %%N operand"
27373+msgstr "operando %%N inválido"
27374+
27375+#: config/tilegx/tilegx.c:5208
27376+#, c-format
27377+msgid "invalid operand for 'r' specifier"
27378+msgstr "operando inválido para el especificador 'r'"
27379+
27380+#: config/tilegx/tilegx.c:5233 config/tilepro/tilepro.c:4816
27381+#, c-format
27382+msgid "unable to print out operand yet; code == %d (%c)"
27383+msgstr "aún no se puede mostrar el operando; code == %d (%c)"
27384+
27385+#: config/tilepro/tilepro.c:4555
27386+#, c-format
27387+msgid "invalid %%H operand"
27388+msgstr "operando %%H inválido"
27389+
27390+#: config/tilepro/tilepro.c:4659
27391+#, c-format
27392+msgid "invalid %%L operand"
27393+msgstr "operando %%L inválido"
27394+
27395+#: config/tilepro/tilepro.c:4719
27396+#, c-format
27397+msgid "invalid %%M operand"
27398+msgstr "operando %%M inválido"
27399+
27400+#: config/tilepro/tilepro.c:4762
27401+#, c-format
27402+msgid "invalid %%t operand"
27403+msgstr "operando %%t inválido"
27404+
27405+#: config/tilepro/tilepro.c:4769
27406+#, c-format
27407+msgid "invalid %%t operand '"
27408+msgstr "operando %%t inválido '"
27409+
27410+#: config/tilepro/tilepro.c:4790
27411+#, c-format
27412+msgid "invalid %%r operand"
27413+msgstr "operando %%r inválido"
27414+
27415 #: config/v850/v850.c:260
27416 msgid "const_double_split got a bad insn:"
27417 msgstr "const_double_split recibió una insn errónea:"
27418@@ -3724,7 +3817,7 @@
27419 msgid "<declaration error>"
27420 msgstr "<error de declaración>"
27421
27422-#: cp/error.c:1432 cp/error.c:2802
27423+#: cp/error.c:1432 cp/error.c:2804
27424 msgid "with"
27425 msgstr "con"
27426
27427@@ -3742,111 +3835,111 @@
27428 msgid "<throw-expression>"
27429 msgstr "<expresión-throw>"
27430
27431-#: cp/error.c:2334
27432+#: cp/error.c:2336
27433 msgid "<unparsed>"
27434 msgstr "<sidecodificar>"
27435
27436-#: cp/error.c:2484
27437+#: cp/error.c:2486
27438 msgid "<expression error>"
27439 msgstr "<error de expresión>"
27440
27441-#: cp/error.c:2498
27442+#: cp/error.c:2500
27443 msgid "<unknown operator>"
27444 msgstr "<operador desconocido>"
27445
27446-#: cp/error.c:2754
27447+#: cp/error.c:2756
27448 msgid "{unknown}"
27449 msgstr "{desconocida}"
27450
27451-#: cp/error.c:2869
27452+#: cp/error.c:2871
27453 msgid "At global scope:"
27454 msgstr "En el ámbito global:"
27455
27456-#: cp/error.c:2975
27457+#: cp/error.c:2977
27458 #, c-format
27459 msgid "In static member function %qs"
27460 msgstr "En la función miembro static %qs"
27461
27462-#: cp/error.c:2977
27463+#: cp/error.c:2979
27464 #, c-format
27465 msgid "In copy constructor %qs"
27466 msgstr "En el constructor copia %qs"
27467
27468-#: cp/error.c:2979
27469+#: cp/error.c:2981
27470 #, c-format
27471 msgid "In constructor %qs"
27472 msgstr "En el constructor %qs"
27473
27474-#: cp/error.c:2981
27475+#: cp/error.c:2983
27476 #, c-format
27477 msgid "In destructor %qs"
27478 msgstr "En el destructor %qs"
27479
27480-#: cp/error.c:2983
27481+#: cp/error.c:2985
27482 msgid "In lambda function"
27483 msgstr "En la función lambda"
27484
27485-#: cp/error.c:3003
27486+#: cp/error.c:3005
27487 #, c-format
27488 msgid "%s: In substitution of %qS:\n"
27489 msgstr "%s: En la sustitución de %qS:\n"
27490
27491-#: cp/error.c:3004
27492+#: cp/error.c:3006
27493 msgid "%s: In instantiation of %q#D:\n"
27494 msgstr "%s: En la instanciación de %q#D:\n"
27495
27496-#: cp/error.c:3027
27497+#: cp/error.c:3029
27498 #, c-format
27499 msgid "%s:%d:%d: "
27500 msgstr "%s:%d:%d: "
27501
27502-#: cp/error.c:3030
27503+#: cp/error.c:3032
27504 #, c-format
27505 msgid "%s:%d: "
27506 msgstr "%s:%d: "
27507
27508-#: cp/error.c:3038
27509+#: cp/error.c:3040
27510 #, c-format
27511 msgid "recursively required by substitution of %qS\n"
27512 msgstr "se requiere recursivamente para la sustitución de %qS\n"
27513
27514-#: cp/error.c:3039
27515+#: cp/error.c:3041
27516 #, c-format
27517 msgid "required by substitution of %qS\n"
27518 msgstr "se requiere para la sustitución de %qS\n"
27519
27520-#: cp/error.c:3044
27521+#: cp/error.c:3046
27522 msgid "recursively required from %q#D\n"
27523 msgstr "se requiere recursivamente desde %q#D\n"
27524
27525-#: cp/error.c:3045
27526+#: cp/error.c:3047
27527 msgid "required from %q#D\n"
27528 msgstr "se requiere desde %q#D\n"
27529
27530-#: cp/error.c:3052
27531+#: cp/error.c:3054
27532 msgid "recursively required from here"
27533 msgstr "se requiere recursivamente desde aquí"
27534
27535-#: cp/error.c:3053
27536+#: cp/error.c:3055
27537 msgid "required from here"
27538 msgstr "se requiere desde aquí"
27539
27540-#: cp/error.c:3095
27541+#: cp/error.c:3097
27542 #, c-format
27543 msgid "%s:%d:%d: [ skipping %d instantiation contexts ]\n"
27544 msgstr "%s:%d:%d: [ se saltan %d contextos de instanciación ]\n"
27545
27546-#: cp/error.c:3099
27547+#: cp/error.c:3101
27548 #, c-format
27549 msgid "%s:%d: [ skipping %d instantiation contexts ]\n"
27550 msgstr "%s:%d: [ se saltan %d contextos de instanciación ]\n"
27551
27552-#: cp/error.c:3161
27553+#: cp/error.c:3163
27554 #, c-format
27555 msgid "%s:%d:%d: in constexpr expansion of %qs"
27556 msgstr "%s:%d:%d: en la expansión de la expresión constante de %qs"
27557
27558-#: cp/error.c:3165
27559+#: cp/error.c:3167
27560 #, c-format
27561 msgid "%s:%d: in constexpr expansion of %qs"
27562 msgstr "%s:%d: en la expansión de la expresión constante de %qs"
27563@@ -3855,7 +3948,7 @@
27564 msgid "candidates are:"
27565 msgstr "los candidatos son:"
27566
27567-#: cp/pt.c:17792 cp/call.c:3289
27568+#: cp/pt.c:17805 cp/call.c:3289
27569 #, gcc-internal-format
27570 msgid "candidate is:"
27571 msgid_plural "candidates are:"
27572@@ -4046,7 +4139,7 @@
27573 msgid "Driving:"
27574 msgstr "Conduciendo:"
27575
27576-#: fortran/interface.c:2477 fortran/intrinsic.c:3641
27577+#: fortran/interface.c:2478 fortran/intrinsic.c:3641
27578 msgid "actual argument to INTENT = OUT/INOUT"
27579 msgstr "argumento actual de INTENT = OUT/INOUT"
27580
27581@@ -4112,13 +4205,13 @@
27582 msgid "%s tag"
27583 msgstr "etiqueta %s"
27584
27585-#: fortran/io.c:2872
27586+#: fortran/io.c:2868
27587 msgid "internal unit in WRITE"
27588 msgstr "unidad interna en WRITE"
27589
27590 #. For INQUIRE, all tags except FILE, ID and UNIT are variable definition
27591 #. contexts. Thus, use an extended RESOLVE_TAG macro for that.
27592-#: fortran/io.c:4066
27593+#: fortran/io.c:4062
27594 #, c-format
27595 msgid "%s tag with INQUIRE"
27596 msgstr "etiqueta %s con INQUIRE"
27597@@ -4128,75 +4221,75 @@
27598 msgid "Syntax error in expression at %C"
27599 msgstr "Error sintáctico en la expresión en %C"
27600
27601-#: fortran/module.c:1054
27602+#: fortran/module.c:1061
27603 msgid "Unexpected EOF"
27604 msgstr "Fin de fichero inesperado"
27605
27606-#: fortran/module.c:1139
27607+#: fortran/module.c:1146
27608 msgid "Integer overflow"
27609 msgstr "Desbordamiento entero"
27610
27611-#: fortran/module.c:1169
27612+#: fortran/module.c:1176
27613 msgid "Name too long"
27614 msgstr "Nombre demasiado largo"
27615
27616-#: fortran/module.c:1271 fortran/module.c:1374
27617+#: fortran/module.c:1278 fortran/module.c:1381
27618 msgid "Bad name"
27619 msgstr "Nombre erróneo"
27620
27621-#: fortran/module.c:1398
27622+#: fortran/module.c:1405
27623 msgid "Expected name"
27624 msgstr "Se esperaba un nombre"
27625
27626-#: fortran/module.c:1401
27627+#: fortran/module.c:1408
27628 msgid "Expected left parenthesis"
27629 msgstr "Se esperaba un paréntesis izquierdo"
27630
27631-#: fortran/module.c:1404
27632+#: fortran/module.c:1411
27633 msgid "Expected right parenthesis"
27634 msgstr "Se esperaba un paréntesis derecho"
27635
27636-#: fortran/module.c:1407
27637+#: fortran/module.c:1414
27638 msgid "Expected integer"
27639 msgstr "Se esperaba un entero"
27640
27641-#: fortran/module.c:1410 fortran/module.c:2312
27642+#: fortran/module.c:1417 fortran/module.c:2332
27643 msgid "Expected string"
27644 msgstr "Se esperaba una cadena"
27645
27646-#: fortran/module.c:1435
27647+#: fortran/module.c:1442
27648 msgid "find_enum(): Enum not found"
27649 msgstr "find_enum(): No se encontró el enumerador"
27650
27651-#: fortran/module.c:2065
27652+#: fortran/module.c:2085
27653 msgid "Expected attribute bit name"
27654 msgstr "Se esperaba un nombre de atributo de bit"
27655
27656-#: fortran/module.c:2963
27657+#: fortran/module.c:2983
27658 msgid "Expected integer string"
27659 msgstr "Se esperaba una cadena entera"
27660
27661-#: fortran/module.c:2967
27662+#: fortran/module.c:2987
27663 msgid "Error converting integer"
27664 msgstr "Error al convertir el entero"
27665
27666-#: fortran/module.c:2989
27667+#: fortran/module.c:3009
27668 msgid "Expected real string"
27669 msgstr "Se esperaba una cadena real"
27670
27671-#: fortran/module.c:3211
27672+#: fortran/module.c:3231
27673 msgid "Expected expression type"
27674 msgstr "Se esperaba un tipo de expresión"
27675
27676-#: fortran/module.c:3265
27677+#: fortran/module.c:3285
27678 msgid "Bad operator"
27679 msgstr "Operador erróneo"
27680
27681-#: fortran/module.c:3354
27682+#: fortran/module.c:3374
27683 msgid "Bad type in constant expression"
27684 msgstr "Tipo erróneo en la expresión constante"
27685
27686-#: fortran/module.c:6050
27687+#: fortran/module.c:6087
27688 msgid "Unexpected end of module"
27689 msgstr "Fin de módulo inesperado"
27690
27691@@ -4224,11 +4317,11 @@
27692 msgid "implied END DO"
27693 msgstr "END DO implícito"
27694
27695-#: fortran/parse.c:1475 fortran/resolve.c:9409
27696+#: fortran/parse.c:1475 fortran/resolve.c:9396
27697 msgid "assignment"
27698 msgstr "asignación"
27699
27700-#: fortran/parse.c:1478 fortran/resolve.c:9448 fortran/resolve.c:9451
27701+#: fortran/parse.c:1478 fortran/resolve.c:9435 fortran/resolve.c:9438
27702 msgid "pointer assignment"
27703 msgstr "asignación de puntero"
27704
27705@@ -4244,115 +4337,115 @@
27706 msgid "internal function"
27707 msgstr "función interna"
27708
27709-#: fortran/resolve.c:1983
27710+#: fortran/resolve.c:1973
27711 msgid "elemental procedure"
27712 msgstr "procedimiento elemental"
27713
27714-#: fortran/resolve.c:3811
27715+#: fortran/resolve.c:3798
27716 #, c-format
27717 msgid "Invalid context for NULL() pointer at %%L"
27718 msgstr "Contexto inválido para el puntero NULL() en %%L"
27719
27720-#: fortran/resolve.c:3827
27721+#: fortran/resolve.c:3814
27722 #, c-format
27723 msgid "Operand of unary numeric operator '%s' at %%L is %s"
27724 msgstr "El operando del operador numérico unario '%s' en %%L es %s"
27725
27726-#: fortran/resolve.c:3843
27727+#: fortran/resolve.c:3830
27728 #, c-format
27729 msgid "Operands of binary numeric operator '%s' at %%L are %s/%s"
27730 msgstr "Los operandos del operador binario numérico '%s' en %%L son %s/%s"
27731
27732-#: fortran/resolve.c:3858
27733+#: fortran/resolve.c:3845
27734 #, c-format
27735 msgid "Operands of string concatenation operator at %%L are %s/%s"
27736 msgstr "Los operandos del operador de concatenación de cadenas en %%L son %s/%s"
27737
27738-#: fortran/resolve.c:3877
27739+#: fortran/resolve.c:3864
27740 #, c-format
27741 msgid "Operands of logical operator '%s' at %%L are %s/%s"
27742 msgstr "Los operandos del operador lógico '%s' en %%L son %s/%s"
27743
27744-#: fortran/resolve.c:3891
27745+#: fortran/resolve.c:3878
27746 #, c-format
27747 msgid "Operand of .not. operator at %%L is %s"
27748 msgstr "El operando del operador .not. en %%L es %s"
27749
27750-#: fortran/resolve.c:3905
27751+#: fortran/resolve.c:3892
27752 msgid "COMPLEX quantities cannot be compared at %L"
27753 msgstr "Las cantidades COMPLEX no se pueden comparar en %L"
27754
27755-#: fortran/resolve.c:3934
27756+#: fortran/resolve.c:3921
27757 #, c-format
27758 msgid "Logicals at %%L must be compared with %s instead of %s"
27759 msgstr "Los lógicos en %%L se deben comparar con %s en lugar de %s"
27760
27761-#: fortran/resolve.c:3940
27762+#: fortran/resolve.c:3927
27763 #, c-format
27764 msgid "Operands of comparison operator '%s' at %%L are %s/%s"
27765 msgstr "Los operandos del operador de comparación '%s' en %%L son %s/%s"
27766
27767-#: fortran/resolve.c:3948
27768+#: fortran/resolve.c:3935
27769 #, c-format
27770 msgid "Unknown operator '%s' at %%L"
27771 msgstr "Operador '%s' desconocido en %%L"
27772
27773-#: fortran/resolve.c:3950
27774+#: fortran/resolve.c:3937
27775 #, c-format
27776 msgid "Operand of user operator '%s' at %%L is %s"
27777 msgstr "El operando del operador de usuario '%s' en %%L es %s"
27778
27779-#: fortran/resolve.c:3954
27780+#: fortran/resolve.c:3941
27781 #, c-format
27782 msgid "Operands of user operator '%s' at %%L are %s/%s"
27783 msgstr "Los operandos del operador de usuario '%s' en %%L son %s/%s"
27784
27785-#: fortran/resolve.c:4042
27786+#: fortran/resolve.c:4029
27787 #, c-format
27788 msgid "Inconsistent ranks for operator at %%L and %%L"
27789 msgstr "Rangos inconsistentes para el operador en %%L y %%L"
27790
27791-#: fortran/resolve.c:6415
27792+#: fortran/resolve.c:6402
27793 msgid "Loop variable"
27794 msgstr "Variable de ciclo"
27795
27796-#: fortran/resolve.c:6419
27797+#: fortran/resolve.c:6406
27798 msgid "iterator variable"
27799 msgstr "variable de iterador"
27800
27801-#: fortran/resolve.c:6424
27802+#: fortran/resolve.c:6411
27803 msgid "Start expression in DO loop"
27804 msgstr "Expresión de inicio en el bucle DO"
27805
27806-#: fortran/resolve.c:6428
27807+#: fortran/resolve.c:6415
27808 msgid "End expression in DO loop"
27809 msgstr "Expresión de fin en el bucle DO"
27810
27811-#: fortran/resolve.c:6432
27812+#: fortran/resolve.c:6419
27813 msgid "Step expression in DO loop"
27814 msgstr "Expresión de paso en el bucle DO"
27815
27816-#: fortran/resolve.c:6688 fortran/resolve.c:6691
27817+#: fortran/resolve.c:6675 fortran/resolve.c:6678
27818 msgid "DEALLOCATE object"
27819 msgstr "objeto DEALLOCATE"
27820
27821-#: fortran/resolve.c:7033 fortran/resolve.c:7035
27822+#: fortran/resolve.c:7020 fortran/resolve.c:7022
27823 msgid "ALLOCATE object"
27824 msgstr "objeto ALLOCATE"
27825
27826-#: fortran/resolve.c:7215 fortran/resolve.c:8448
27827+#: fortran/resolve.c:7202 fortran/resolve.c:8435
27828 msgid "STAT variable"
27829 msgstr "variable STAT"
27830
27831-#: fortran/resolve.c:7258 fortran/resolve.c:8460
27832+#: fortran/resolve.c:7245 fortran/resolve.c:8447
27833 msgid "ERRMSG variable"
27834 msgstr "variable ERRMSG"
27835
27836-#: fortran/resolve.c:8326
27837+#: fortran/resolve.c:8313
27838 msgid "item in READ"
27839 msgstr "elemento en READ"
27840
27841-#: fortran/resolve.c:8472
27842+#: fortran/resolve.c:8459
27843 msgid "ACQUIRED_LOCK variable"
27844 msgstr "variable ACQUIRED_LOCK"
27845
27846@@ -4365,17 +4458,17 @@
27847 msgid "Integer overflow when calculating the amount of memory to allocate"
27848 msgstr "Desborde entero al calcular la cantidad de memoria a reservar"
27849
27850-#: fortran/trans-decl.c:4776
27851+#: fortran/trans-decl.c:4791
27852 #, c-format
27853 msgid "Actual string length does not match the declared one for dummy argument '%s' (%ld/%ld)"
27854 msgstr "La longitud de la cadena actual no coincide con la declarada para el argumento dummy '%s' (%ld/%ld)"
27855
27856-#: fortran/trans-decl.c:4784
27857+#: fortran/trans-decl.c:4799
27858 #, c-format
27859 msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)"
27860 msgstr "La longitud de la cadena actual es más corta que la declarada para el argumento dummy '%s' (%ld/%ld)"
27861
27862-#: fortran/trans-expr.c:5960
27863+#: fortran/trans-expr.c:5964
27864 #, c-format
27865 msgid "Target of rank remapping is too small (%ld < %ld)"
27866 msgstr "El objetivo del remapeo de rango es demasiado pequeño (%ld < %ld)"
27867@@ -4406,16 +4499,16 @@
27868 msgid "Assigned label is not a target label"
27869 msgstr "La etiqueta asignada no es una etiqueta objetivo"
27870
27871-#: fortran/trans-stmt.c:771
27872+#: fortran/trans-stmt.c:793
27873 #, c-format
27874 msgid "Invalid image number %d in SYNC IMAGES"
27875 msgstr "Número de imagen %d inválido en SYNC IMAGES"
27876
27877-#: fortran/trans-stmt.c:1347 fortran/trans-stmt.c:1628
27878+#: fortran/trans-stmt.c:1369 fortran/trans-stmt.c:1650
27879 msgid "Loop variable has been modified"
27880 msgstr "Se modificó la variable de ciclo"
27881
27882-#: fortran/trans-stmt.c:1487
27883+#: fortran/trans-stmt.c:1509
27884 msgid "DO step value is zero"
27885 msgstr "El valor de paso de DO es cero"
27886
27887@@ -4616,47 +4709,77 @@
27888 msgid "-fuse-linker-plugin is not supported in this configuration"
27889 msgstr "-fuse-linker-plugin no se admite en esta configuración"
27890
27891-#: gcc.c:777 ada/gcc-interface/lang-specs.h:33 java/jvspec.c:80
27892+#: gcc.c:778 ada/gcc-interface/lang-specs.h:33 java/jvspec.c:80
27893 msgid "-pg and -fomit-frame-pointer are incompatible"
27894 msgstr "-pg y -fomit-frame-pointer son incompatibles"
27895
27896-#: gcc.c:939
27897+#: gcc.c:945
27898 msgid "GNU C no longer supports -traditional without -E"
27899 msgstr "C de GNU ya no admite -traditional sin usar -E"
27900
27901-#: gcc.c:948
27902+#: gcc.c:954
27903 msgid "-E or -x required when input is from standard input"
27904 msgstr "se requiere -E ó -x cuando la entrada es de entrada estándar"
27905
27906-#: config/alpha/freebsd.h:34 config/ia64/freebsd.h:26 config/i386/freebsd.h:96
27907-#: config/i386/freebsd64.h:35 config/arm/freebsd.h:31
27908-#: config/rs6000/sysv4.h:772 config/sparc/freebsd.h:46
27909+#: config/cris/cris.h:192
27910+msgid "do not specify both -march=... and -mcpu=..."
27911+msgstr "no especifique -march=... y -mcpu=... al mismo tiempo"
27912+
27913+#: config/alpha/freebsd.h:34 config/sparc/freebsd.h:46
27914+#: config/ia64/freebsd.h:26 config/arm/freebsd.h:31 config/i386/freebsd.h:96
27915+#: config/i386/freebsd64.h:35 config/rs6000/sysv4.h:772
27916 msgid "consider using '-pg' instead of '-p' with gprof(1)"
27917 msgstr "considere usar '-pg' en lugar de '-p' con gprof(1)"
27918
27919-#: fortran/lang-specs.h:55 fortran/lang-specs.h:69
27920-msgid "gfortran does not support -E without -cpp"
27921-msgstr "gfortran no admite -E sin usar -cpp"
27922+#: ada/gcc-interface/lang-specs.h:34
27923+msgid "-c or -S required for Ada"
27924+msgstr "se requiere -c o -S para Ada"
27925
27926-#: config/i386/mingw-w64.h:83 config/i386/mingw32.h:116
27927-#: config/i386/cygwin.h:114
27928-msgid "shared and mdll are not compatible"
27929-msgstr "shared y mdll no son compatibles"
27930+#: ada/gcc-interface/lang-specs.h:52
27931+msgid "-c required for gnat2why"
27932+msgstr "se requiere -c para gnat2why"
27933
27934-#: config/vax/netbsd-elf.h:51
27935-msgid "the -shared option is not currently supported for VAX ELF"
27936-msgstr "la opción -shared no se admite actualmente en ELF de VAX"
27937+#: config/rx/rx.h:57
27938+msgid "-mas100-syntax is incompatible with -gdwarf"
27939+msgstr "-mas100-syntax es incompatible con -gdwarf"
27940
27941+#: config/rx/rx.h:58
27942+msgid "rx200 cpu does not have FPU hardware"
27943+msgstr "el cpu rx200 no tiene FPU de hardware"
27944+
27945+#: config/sparc/linux64.h:158 config/sparc/linux64.h:165
27946 #: config/sparc/netbsd-elf.h:109 config/sparc/netbsd-elf.h:118
27947-#: config/sparc/sol2.h:201 config/sparc/sol2.h:207 config/sparc/linux64.h:158
27948-#: config/sparc/linux64.h:165
27949+#: config/sparc/sol2.h:201 config/sparc/sol2.h:207
27950 msgid "may not use both -m32 and -m64"
27951 msgstr "no se pueden usar -m32 y -m64 al mismo tiempo"
27952
27953-#: config/vax/vax.h:50 config/vax/vax.h:51
27954-msgid "profiling not supported with -mg"
27955-msgstr "el análisis de perfil no se admite con -mg"
27956+#: config/pa/pa64-hpux.h:30 config/pa/pa64-hpux.h:33 config/pa/pa64-hpux.h:42
27957+#: config/pa/pa64-hpux.h:45 config/pa/pa-hpux10.h:89 config/pa/pa-hpux10.h:92
27958+#: config/pa/pa-hpux10.h:100 config/pa/pa-hpux10.h:103
27959+#: config/pa/pa-hpux11.h:108 config/pa/pa-hpux11.h:111
27960+msgid "warning: consider linking with '-static' as system libraries with"
27961+msgstr "aviso: considere enlazar con '-static' como bibliotecas de sistema con"
27962
27963+#: config/pa/pa64-hpux.h:31 config/pa/pa64-hpux.h:34 config/pa/pa64-hpux.h:43
27964+#: config/pa/pa64-hpux.h:46 config/pa/pa-hpux10.h:90 config/pa/pa-hpux10.h:93
27965+#: config/pa/pa-hpux10.h:101 config/pa/pa-hpux10.h:104
27966+#: config/pa/pa-hpux11.h:109 config/pa/pa-hpux11.h:112
27967+msgid " profiling support are only provided in archive format"
27968+msgstr " soporte a análisis de perfil sólo se proveen en formato de archivo"
27969+
27970+#: config/lynx.h:70
27971+msgid "cannot use mthreads and mlegacy-threads together"
27972+msgstr "no se pueden usar mthreads y mlegacy-threads juntos"
27973+
27974+#: config/lynx.h:95
27975+msgid "cannot use mshared and static together"
27976+msgstr "no se pueden usar mshared y static juntos"
27977+
27978+#: config/i386/mingw-w64.h:83 config/i386/mingw32.h:116
27979+#: config/i386/cygwin.h:114
27980+msgid "shared and mdll are not compatible"
27981+msgstr "shared y mdll no son compatibles"
27982+
27983 #: config/s390/tpf.h:116
27984 msgid "static is not supported on TPF-OS"
27985 msgstr "static no se admite en TPF-OS"
27986@@ -4673,42 +4796,6 @@
27987 msgid "-msingle-float and -msoft-float cannot both be specified"
27988 msgstr "no se pueden especificar -msingle-float y -msoft-float al mismo tiempo"
27989
27990-#: config/lynx.h:70
27991-msgid "cannot use mthreads and mlegacy-threads together"
27992-msgstr "no se pueden usar mthreads y mlegacy-threads juntos"
27993-
27994-#: config/lynx.h:95
27995-msgid "cannot use mshared and static together"
27996-msgstr "no se pueden usar mshared y static juntos"
27997-
27998-#: objcp/lang-specs.h:58
27999-msgid "objc++-cpp-output is deprecated; please use objective-c++-cpp-output instead"
28000-msgstr "objc++-cpp-output es obsoleto; pr favor use en su lugar objective-c++-cpp-output"
28001-
28002-#: ada/gcc-interface/lang-specs.h:34
28003-msgid "-c or -S required for Ada"
28004-msgstr "se requiere -c o -S para Ada"
28005-
28006-#: ada/gcc-interface/lang-specs.h:52
28007-msgid "-c required for gnat2why"
28008-msgstr "se requiere -c para gnat2why"
28009-
28010-#: java/lang-specs.h:33
28011-msgid "-fjni and -femit-class-files are incompatible"
28012-msgstr "-fjni y -femit-class-files son incompatibles"
28013-
28014-#: java/lang-specs.h:34
28015-msgid "-fjni and -femit-class-file are incompatible"
28016-msgstr "-fjni y -femit-class-file son incompatibles"
28017-
28018-#: java/lang-specs.h:35 java/lang-specs.h:36
28019-msgid "-femit-class-file should used along with -fsyntax-only"
28020-msgstr "-femit-class-file se debe usar junto con -fsyntax-only"
28021-
28022-#: config/mcore/mcore.h:54
28023-msgid "the m210 does not have little endian support"
28024-msgstr "el m210 no admite little endian"
28025-
28026 #: config/sol2-bi.h:108 config/sol2-bi.h:113
28027 msgid "does not support multilib"
28028 msgstr "no se admite multilib"
28029@@ -4725,64 +4812,50 @@
28030 msgid "no processor type specified for linking"
28031 msgstr "no existe el tipo de procesador especificado para enlazar"
28032
28033-#: config/sh/sh.h:430 config/sh/sh.h:433
28034-msgid "SH2a does not support little-endian"
28035-msgstr "SH2a no se admite para little-endian"
28036+#: fortran/lang-specs.h:55 fortran/lang-specs.h:69
28037+msgid "gfortran does not support -E without -cpp"
28038+msgstr "gfortran no admite -E sin usar -cpp"
28039
28040-#: config/pa/pa-hpux10.h:89 config/pa/pa-hpux10.h:92 config/pa/pa-hpux10.h:100
28041-#: config/pa/pa-hpux10.h:103 config/pa/pa-hpux11.h:108
28042-#: config/pa/pa-hpux11.h:111 config/pa/pa64-hpux.h:30 config/pa/pa64-hpux.h:33
28043-#: config/pa/pa64-hpux.h:42 config/pa/pa64-hpux.h:45
28044-msgid "warning: consider linking with '-static' as system libraries with"
28045-msgstr "aviso: considere enlazar con '-static' como bibliotecas de sistema con"
28046+#: config/mcore/mcore.h:54
28047+msgid "the m210 does not have little endian support"
28048+msgstr "el m210 no admite little endian"
28049
28050-#: config/pa/pa-hpux10.h:90 config/pa/pa-hpux10.h:93 config/pa/pa-hpux10.h:101
28051-#: config/pa/pa-hpux10.h:104 config/pa/pa-hpux11.h:109
28052-#: config/pa/pa-hpux11.h:112 config/pa/pa64-hpux.h:31 config/pa/pa64-hpux.h:34
28053-#: config/pa/pa64-hpux.h:43 config/pa/pa64-hpux.h:46
28054-msgid " profiling support are only provided in archive format"
28055-msgstr " soporte a análisis de perfil sólo se proveen en formato de archivo"
28056-
28057 #: config/vxworks.h:71
28058 msgid "-Xbind-now and -Xbind-lazy are incompatible"
28059 msgstr "-Xbind-now y -Xbind-lazy son incompatibles"
28060
28061-#: config/darwin.h:242
28062+#: config/darwin.h:244
28063 msgid "-current_version only allowed with -dynamiclib"
28064 msgstr "sólo se permite -current_version con -dynamiclib"
28065
28066-#: config/darwin.h:244
28067+#: config/darwin.h:246
28068 msgid "-install_name only allowed with -dynamiclib"
28069 msgstr "sólo se permite -install_name con -dynamiclib"
28070
28071-#: config/darwin.h:249
28072+#: config/darwin.h:251
28073 msgid "-bundle not allowed with -dynamiclib"
28074 msgstr "no se permite -bundle con -dynamiclib"
28075
28076-#: config/darwin.h:250
28077+#: config/darwin.h:252
28078 msgid "-bundle_loader not allowed with -dynamiclib"
28079 msgstr "no se permite -bundle_loader con -dynamiclib"
28080
28081-#: config/darwin.h:251
28082+#: config/darwin.h:253
28083 msgid "-client_name not allowed with -dynamiclib"
28084 msgstr "no se permite -client_name con -dynamiclib"
28085
28086-#: config/darwin.h:256
28087+#: config/darwin.h:258
28088 msgid "-force_flat_namespace not allowed with -dynamiclib"
28089 msgstr "no se permite -force_flat_namespace con -dynamiclib"
28090
28091-#: config/darwin.h:258
28092+#: config/darwin.h:260
28093 msgid "-keep_private_externs not allowed with -dynamiclib"
28094 msgstr "no se permite keep_private_externs con -dynamiclib"
28095
28096-#: config/darwin.h:259
28097+#: config/darwin.h:261
28098 msgid "-private_bundle not allowed with -dynamiclib"
28099 msgstr "no se permite -private_bundle con -dynamiclib"
28100
28101-#: config/cris/cris.h:192
28102-msgid "do not specify both -march=... and -mcpu=..."
28103-msgstr "no especifique -march=... y -mcpu=... al mismo tiempo"
28104-
28105 #: objc/lang-specs.h:31 objc/lang-specs.h:42
28106 msgid "GNU Objective C no longer supports traditional compilation"
28107 msgstr "Objective C de GNU ya no admite compilación tradicional"
28108@@ -4791,18 +4864,38 @@
28109 msgid "objc-cpp-output is deprecated; please use objective-c-cpp-output instead"
28110 msgstr "objc-cpp-output es obsoleto; por favor use en su lugar objective-c-cpp-output"
28111
28112-#: config/rx/rx.h:57
28113-msgid "-mas100-syntax is incompatible with -gdwarf"
28114-msgstr "-mas100-syntax es incompatible con -gdwarf"
28115+#: config/vax/netbsd-elf.h:51
28116+msgid "the -shared option is not currently supported for VAX ELF"
28117+msgstr "la opción -shared no se admite actualmente en ELF de VAX"
28118
28119-#: config/rx/rx.h:58
28120-msgid "rx200 cpu does not have FPU hardware"
28121-msgstr "el cpu rx200 no tiene FPU de hardware"
28122+#: java/lang-specs.h:33
28123+msgid "-fjni and -femit-class-files are incompatible"
28124+msgstr "-fjni y -femit-class-files son incompatibles"
28125
28126+#: java/lang-specs.h:34
28127+msgid "-fjni and -femit-class-file are incompatible"
28128+msgstr "-fjni y -femit-class-file son incompatibles"
28129+
28130+#: java/lang-specs.h:35 java/lang-specs.h:36
28131+msgid "-femit-class-file should used along with -fsyntax-only"
28132+msgstr "-femit-class-file se debe usar junto con -fsyntax-only"
28133+
28134+#: config/sh/sh.h:430 config/sh/sh.h:433
28135+msgid "SH2a does not support little-endian"
28136+msgstr "SH2a no se admite para little-endian"
28137+
28138 #: config/rs6000/darwin.h:96
28139 msgid " conflicting code gen style switches are used"
28140 msgstr " se usan interruptores de estilo de generación de código en conflicto"
28141
28142+#: objcp/lang-specs.h:58
28143+msgid "objc++-cpp-output is deprecated; please use objective-c++-cpp-output instead"
28144+msgstr "objc++-cpp-output es obsoleto; pr favor use en su lugar objective-c++-cpp-output"
28145+
28146+#: config/vax/vax.h:50 config/vax/vax.h:51
28147+msgid "profiling not supported with -mg"
28148+msgstr "el análisis de perfil no se admite con -mg"
28149+
28150 #: java/lang.opt:122
28151 msgid "Warn if deprecated empty statements are found"
28152 msgstr "Avisa si se encuentran declaraciones vacías obsoletas"
28153@@ -5104,7 +5197,7 @@
28154 msgstr "Permite signos de dólar en nombres de entidades"
28155
28156 #: fortran/lang.opt:371 common.opt:659 common.opt:826 common.opt:830
28157-#: common.opt:834 common.opt:838 common.opt:1323
28158+#: common.opt:834 common.opt:838 common.opt:1320
28159 msgid "Does nothing. Preserved for backward compatibility."
28160 msgstr "No hace nada. Preservado por compatibilidad hacia atrás."
28161
28162@@ -5229,7 +5322,7 @@
28163 msgstr "Permite la revisión de rango durante la compilación"
28164
28165 #: fortran/lang.opt:503
28166-msgid "Interpret any REAl(4) as a REAL(8)"
28167+msgid "Interpret any REAL(4) as a REAL(8)"
28168 msgstr "Interpreta cualquier REAL(4) como un REAL(8)"
28169
28170 #: fortran/lang.opt:507
28171@@ -5237,7 +5330,7 @@
28172 msgstr "Interpreta cualquier REAL(4) como un REAL(10)"
28173
28174 #: fortran/lang.opt:511
28175-msgid "Interpret any REAL(4) as a REAl(16)"
28176+msgid "Interpret any REAL(4) as a REAL(16)"
28177 msgstr "Interpreta cualquier REAL(4) como un REAL(16)"
28178
28179 #: fortran/lang.opt:515
28180@@ -5249,7 +5342,7 @@
28181 msgstr "Interpreta cualquier REAL(8) como un REAL(10)"
28182
28183 #: fortran/lang.opt:523
28184-msgid "Interpret any REAL(8) as a REAl(16)"
28185+msgid "Interpret any REAL(8) as a REAL(16)"
28186 msgstr "Interpreta cualquier REAL(8) como un REAL(16)"
28187
28188 #: fortran/lang.opt:527
28189@@ -8679,6 +8772,58 @@
28190 msgid "Set register to hold -1."
28191 msgstr "Establece el registro para conservar -1."
28192
28193+#: config/cr16/cr16.opt:23
28194+msgid "-msim Use simulator runtime"
28195+msgstr "-msim Usa el simulador de tiempo de ejecución"
28196+
28197+#: config/cr16/cr16.opt:27
28198+msgid "Generate SBIT, CBIT instructions"
28199+msgstr "Genera instrucciones SBIT, CBIT"
28200+
28201+#: config/cr16/cr16.opt:31
28202+msgid "Support multiply accumulate instructions"
28203+msgstr "Da soporte a múltiples instrucciones de acumulador"
28204+
28205+#: config/cr16/cr16.opt:38
28206+msgid "Treat data references as near, far or medium. medium is default"
28207+msgstr "Trata las referencias a datos como near, far o medium. Por defecto es medium"
28208+
28209+#: config/cr16/cr16.opt:42
28210+msgid "Generate code for CR16C architecture"
28211+msgstr "Genera código para la arquitectura CR16C"
28212+
28213+#: config/cr16/cr16.opt:46
28214+msgid "Generate code for CR16C+ architecture (Default)"
28215+msgstr "Genera código para la arquitectura CR16C+ (Por defecto)"
28216+
28217+#: config/cr16/cr16.opt:50
28218+msgid "Treat integers as 32-bit."
28219+msgstr "Trata los enteros como 32-bit."
28220+
28221+#: config/tilegx/tilegx.opt:24 config/tilepro/tilepro.opt:29
28222+msgid "-mcpu=CPU\tUse features of and schedule code for given CPU"
28223+msgstr "-mcpu=CPU\tUsa las características y el código de calendarizador para el CPU dado"
28224+
28225+#: config/tilegx/tilegx.opt:28
28226+msgid "Known TILE-Gx CPUs (for use with the -mcpu= option):"
28227+msgstr "CPUs TILE-Gx conocidos (para usar con la opción -mcpu=):"
28228+
28229+#: config/tilegx/tilegx.opt:35
28230+msgid "Compile with 32 bit longs and pointers."
28231+msgstr "Compila con longs y punteros de 32 bit."
28232+
28233+#: config/tilegx/tilegx.opt:39
28234+msgid "Compile with 64 bit longs and pointers."
28235+msgstr "Compila con longs y punteros de 64 bit."
28236+
28237+#: config/tilepro/tilepro.opt:24
28238+msgid "Compile with 32 bit longs and pointers, which is the only supported"
28239+msgstr "Compila con longs y punteros de 32 bit, el cual es el único admitido"
28240+
28241+#: config/tilepro/tilepro.opt:33
28242+msgid "Known TILEPro CPUs (for use with the -mcpu= option):"
28243+msgstr "CPUs TILEPro conocidos (para uso con la opción -mcpu=):"
28244+
28245 #: config/picochip/picochip.opt:23
28246 msgid "Specify which type of AE to target. This option sets the mul-type and byte-access."
28247 msgstr "Especifica a qué tipo de AE se apunta. Esta opción establece el tipo muly el acceso a byte."
28248@@ -8714,7 +8859,7 @@
28249 #: config/darwin.opt:53 c-family/c.opt:71 c-family/c.opt:74 c-family/c.opt:77
28250 #: c-family/c.opt:80 c-family/c.opt:179 c-family/c.opt:182 c-family/c.opt:220
28251 #: c-family/c.opt:224 c-family/c.opt:236 c-family/c.opt:1125
28252-#: c-family/c.opt:1133 common.opt:301 common.opt:304 common.opt:2281
28253+#: c-family/c.opt:1133 common.opt:301 common.opt:304 common.opt:2278
28254 #, c-format
28255 msgid "missing filename after %qs"
28256 msgstr "falta un nombre de fichero después de %qs"
28257@@ -9577,8 +9722,8 @@
28258 msgstr "Avisa sobre constantes de coma flotante sin sufijo"
28259
28260 #: c-family/c.opt:666
28261-msgid "Warn about"
28262-msgstr "Avisa sobre"
28263+msgid "Warn when typedefs locally defined in a function are not used"
28264+msgstr "Avisa cuando se definen typedefs localmente en una función pero no se usan"
28265
28266 #: c-family/c.opt:670
28267 msgid "Warn about macros defined in the main file that are not used"
28268@@ -9681,9 +9826,9 @@
28269 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"
28270
28271 #: c-family/c.opt:768 c-family/c.opt:955 common.opt:937 common.opt:1115
28272-#: common.opt:1393 common.opt:1647 common.opt:1683 common.opt:1768
28273-#: common.opt:1772 common.opt:1848 common.opt:1926 common.opt:1942
28274-#: common.opt:2026
28275+#: common.opt:1390 common.opt:1644 common.opt:1680 common.opt:1765
28276+#: common.opt:1769 common.opt:1845 common.opt:1923 common.opt:1939
28277+#: common.opt:2023
28278 msgid "Does nothing. Preserved for backward compatibility."
28279 msgstr "No hace nada. Se preserva por compatibilidad hacia atrás."
28280
28281@@ -10721,1126 +10866,1126 @@
28282 msgid "Perform indirect inlining"
28283 msgstr "Realiza la inclusión en línea indirecta"
28284
28285-#: common.opt:1255
28286-msgid "Pay attention to the \"inline\" keyword"
28287-msgstr "Pone atención a la palabra clave \"inline\""
28288+#: common.opt:1252
28289+msgid "Enable inlining of function declared \"inline\", disabling disables all inlining"
28290+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"
28291
28292-#: common.opt:1259
28293-msgid "Integrate simple functions into their callers when code size is known to not growth"
28294-msgstr "Integra las funciones simples en sus invocadores"
28295+#: common.opt:1256
28296+msgid "Integrate functions into their callers when code size is known not to grow"
28297+msgstr "Integra las funciones en sus invocadores cuando se sabe que el tamaño del código no crece"
28298
28299-#: common.opt:1263
28300-msgid "Integrate simple functions into their callers"
28301-msgstr "Integra las funciones simples en sus invocadores"
28302+#: common.opt:1260
28303+msgid "Integrate functions not declared \"inline\" into their callers when profitable"
28304+msgstr "Integra las funciones que no se declaran \"inline\" en sus invocadores cuando es rentable"
28305
28306-#: common.opt:1267
28307-msgid "Integrate functions called once into their callers"
28308-msgstr "Integra las funciones llamadas una vez en sus invocadores"
28309+#: common.opt:1264
28310+msgid "Integrate functions only required by their single caller"
28311+msgstr "Integra las funciones sólo requeridas por su invocador único"
28312
28313-#: common.opt:1274
28314+#: common.opt:1271
28315 msgid "-finline-limit=<number>\tLimit the size of inlined functions to <number>"
28316 msgstr "-finline-limit=<número>\tLimita el tamaño de las funciones incluídas en línea a <número>"
28317
28318-#: common.opt:1278
28319+#: common.opt:1275
28320 msgid "Inline __atomic operations when a lock free instruction sequence is available."
28321 msgstr "Coloca en línea las operaciones __atomic cuando una secuencia de instrucciones lock free está disponible"
28322
28323-#: common.opt:1282
28324+#: common.opt:1279
28325 msgid "Instrument function entry and exit with profiling calls"
28326 msgstr "Instrumenta funciones de entrada y salida con llamadas de análisis de perfil"
28327
28328-#: common.opt:1286
28329+#: common.opt:1283
28330 msgid "-finstrument-functions-exclude-function-list=name,... Do not instrument listed functions"
28331 msgstr "-finstrument-functions-exclude-functions-list=nombre,... No instrumenta las funciones enlistadas"
28332
28333-#: common.opt:1290
28334+#: common.opt:1287
28335 msgid "-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files"
28336 msgstr "-finstrument-functions-exclude-file-list=fichero,... No instrumenta las funciones enlistadas en ficheros"
28337
28338-#: common.opt:1294
28339+#: common.opt:1291
28340 msgid "Perform Interprocedural constant propagation"
28341 msgstr "Realiza la propagación interprocedural de las constantes"
28342
28343-#: common.opt:1298
28344+#: common.opt:1295
28345 msgid "Perform cloning to make Interprocedural constant propagation stronger"
28346 msgstr "Realiza la clonación para hacer la propagación constante Interprocedural más fuerte"
28347
28348-#: common.opt:1302
28349+#: common.opt:1299
28350 msgid "Perform interprocedural profile propagation"
28351 msgstr "Realiza la propagación de perfil interprocedural"
28352
28353-#: common.opt:1306
28354+#: common.opt:1303
28355 msgid "Perform interprocedural points-to analysis"
28356 msgstr "Realiza el análisis interprocedural de puntero-a"
28357
28358-#: common.opt:1310
28359+#: common.opt:1307
28360 msgid "Discover pure and const functions"
28361 msgstr "Descubre funciones pure y const"
28362
28363-#: common.opt:1314
28364+#: common.opt:1311
28365 msgid "Discover readonly and non addressable static variables"
28366 msgstr "Descubre variables estáticas de sólo lectura y no direccionables"
28367
28368-#: common.opt:1318
28369+#: common.opt:1315
28370 msgid "Perform matrix layout flattening and transposing based"
28371 msgstr "Realiza la ubicación de matriz basado en aplanado y transposición"
28372
28373-#: common.opt:1327
28374+#: common.opt:1324
28375 msgid "-fira-algorithm=[CB|priority] Set the used IRA algorithm"
28376 msgstr "-fira-algorithm=[CB|priority] Establece el algoritmo IRA a usar"
28377
28378-#: common.opt:1330
28379+#: common.opt:1327
28380 #, c-format
28381 msgid "unknown IRA algorithm %qs"
28382 msgstr "algoritmo IRA %qs desconocido"
28383
28384-#: common.opt:1340
28385+#: common.opt:1337
28386 msgid "-fira-region=[one|all|mixed] Set regions for IRA"
28387 msgstr "-fira-region=[one|all|mixed] Establece las regiones para IRA"
28388
28389-#: common.opt:1343
28390+#: common.opt:1340
28391 #, c-format
28392 msgid "unknown IRA region %qs"
28393 msgstr "región IRA %qs desconocida"
28394
28395-#: common.opt:1356
28396+#: common.opt:1353
28397 msgid "Use IRA based register pressure calculation"
28398 msgstr "Usa el cálculo de presión de registros basado en IRA"
28399
28400-#: common.opt:1361
28401+#: common.opt:1358
28402 msgid "Share slots for saving different hard registers."
28403 msgstr "Comparte ranuras para ahorrar registros hard diferentes."
28404
28405-#: common.opt:1365
28406+#: common.opt:1362
28407 msgid "Share stack slots for spilled pseudo-registers."
28408 msgstr "Comparte ranuras de pila para pseudo-registros derramados."
28409
28410-#: common.opt:1369
28411+#: common.opt:1366
28412 msgid "-fira-verbose=<number>\tControl IRA's level of diagnostic messages."
28413 msgstr "-fira-verbose=<número>\tControla el nivel de mensajes de diagnóstico de IRA."
28414
28415-#: common.opt:1373
28416+#: common.opt:1370
28417 msgid "Optimize induction variables on trees"
28418 msgstr "Optimiza la inducción de variables en los árboles"
28419
28420-#: common.opt:1377
28421+#: common.opt:1374
28422 msgid "Use jump tables for sufficiently large switch statements"
28423 msgstr "Usa tablas de salto para las declaraciones switch suficientemente grandes"
28424
28425-#: common.opt:1381
28426+#: common.opt:1378
28427 msgid "Generate code for functions even if they are fully inlined"
28428 msgstr "Genera código para las funciones aún si están completamente incluídas en línea"
28429
28430-#: common.opt:1385
28431+#: common.opt:1382
28432 msgid "Emit static const variables even if they are not used"
28433 msgstr "Emite variables static const aún si no se usan"
28434
28435-#: common.opt:1389
28436+#: common.opt:1386
28437 msgid "Give external symbols a leading underscore"
28438 msgstr "Da a los símbolos externos un subrayado inicial"
28439
28440-#: common.opt:1397
28441+#: common.opt:1394
28442 msgid "Enable link-time optimization."
28443 msgstr "Activa las optimizaciones de tiempo de enlace."
28444
28445-#: common.opt:1401
28446+#: common.opt:1398
28447 msgid "Link-time optimization with number of parallel jobs or jobserver."
28448 msgstr "Optimización en tiempo de enlace con el número de trabajos paralelos o el servidor de trabajos."
28449
28450-#: common.opt:1405
28451+#: common.opt:1402
28452 msgid "Partition functions and vars at linktime based on object files they originate from"
28453 msgstr "Particiona funciones y variables en tiempo de enlace basado en los ficheros objetos de los que se originaron"
28454
28455-#: common.opt:1409
28456+#: common.opt:1406
28457 msgid "Partition functions and vars at linktime into approximately same sized buckets"
28458 msgstr "Particiona funciones y variables en tiempo de enlace en cubos de aproximadamente el mismo tamaño"
28459
28460-#: common.opt:1413
28461+#: common.opt:1410
28462 msgid "Disable partioning and streaming"
28463 msgstr "Desactiva el particionamiento y flujo"
28464
28465-#: common.opt:1418
28466+#: common.opt:1415
28467 msgid "-flto-compression-level=<number>\tUse zlib compression level <number> for IL"
28468 msgstr "-flto-compression-level=<número>\tUsa el nivel de compresión de zlib <número> para IL"
28469
28470-#: common.opt:1422
28471+#: common.opt:1419
28472 msgid "Report various link-time optimization statistics"
28473 msgstr "Reporta varias estadísticas de optimización de tiempo de enlace"
28474
28475-#: common.opt:1426
28476+#: common.opt:1423
28477 msgid "Set errno after built-in math functions"
28478 msgstr "Establece errno después de las funciones matemáticas internas"
28479
28480-#: common.opt:1430
28481+#: common.opt:1427
28482 msgid "-fmax-errors=<number>\tMaximum number of errors to report"
28483 msgstr "-fmax-errors=<número>\tNúmero máximo de errores a reportar"
28484
28485-#: common.opt:1434
28486+#: common.opt:1431
28487 msgid "Report on permanent memory allocation"
28488 msgstr "Reporta el alojamiento en memoria permanente"
28489
28490-#: common.opt:1441
28491+#: common.opt:1438
28492 msgid "Attempt to merge identical constants and constant variables"
28493 msgstr "Intenta mezclar constantes idénticas y variables constantes"
28494
28495-#: common.opt:1445
28496+#: common.opt:1442
28497 msgid "Attempt to merge identical constants across compilation units"
28498 msgstr "Intenta mezclar constantes idénticas a través de las unidades de compilación"
28499
28500-#: common.opt:1449
28501+#: common.opt:1446
28502 msgid "Attempt to merge identical debug strings across compilation units"
28503 msgstr "Intenta mezclar cadenas de depuración idénticas a través de las unidades de compilación"
28504
28505-#: common.opt:1453
28506+#: common.opt:1450
28507 msgid "-fmessage-length=<number>\tLimit diagnostics to <number> characters per line. 0 suppresses line-wrapping"
28508 msgstr "-fmessage-length=<número>\tLimita los diagnósticos a <número> caracteres por línea. 0 suprime el corte de línea"
28509
28510-#: common.opt:1457
28511+#: common.opt:1454
28512 msgid "Perform SMS based modulo scheduling before the first scheduling pass"
28513 msgstr "Realiza la calendarización SMS basada en módulo antes del primer paso de calendarización"
28514
28515-#: common.opt:1461
28516+#: common.opt:1458
28517 msgid "Perform SMS based modulo scheduling with register moves allowed"
28518 msgstr "Realiza la calendarización módulo basada en SMS con movimientos permitidos de registros"
28519
28520-#: common.opt:1465
28521+#: common.opt:1462
28522 msgid "Move loop invariant computations out of loops"
28523 msgstr "Mueve las computaciones invariantes de bucles fuera de los bucles"
28524
28525-#: common.opt:1469
28526+#: common.opt:1466
28527 msgid "Use the RTL dead code elimination pass"
28528 msgstr "Usa el paso de eliminación de código muerto de RTL"
28529
28530-#: common.opt:1473
28531+#: common.opt:1470
28532 msgid "Use the RTL dead store elimination pass"
28533 msgstr "Usa la eliminación de almacenamiento muerto de RTL"
28534
28535-#: common.opt:1477
28536+#: common.opt:1474
28537 msgid "Enable/Disable the traditional scheduling in loops that already passed modulo scheduling"
28538 msgstr "Activa/Desactiva la calendarización tradicional en bucles que ya pasaron la calendarización módulo"
28539
28540-#: common.opt:1481
28541+#: common.opt:1478
28542 msgid "Support synchronous non-call exceptions"
28543 msgstr "Permite las excepciones síncronas que no son llamadas"
28544
28545-#: common.opt:1485
28546+#: common.opt:1482
28547 msgid "When possible do not generate stack frames"
28548 msgstr "Cuando sea posible no genera marcos de pila"
28549
28550-#: common.opt:1489
28551+#: common.opt:1486
28552 msgid "Do the full register move optimization pass"
28553 msgstr "Hace el paso completo de optimización de movimiento de registros"
28554
28555-#: common.opt:1493
28556+#: common.opt:1490
28557 msgid "Optimize sibling and tail recursive calls"
28558 msgstr "Optimiza las llamadas recursivas hermanadas y de extremo"
28559
28560-#: common.opt:1497
28561+#: common.opt:1494
28562 msgid "Perform partial inlining"
28563 msgstr "Realiza la inclusión en línea parcial"
28564
28565-#: common.opt:1501 common.opt:1505
28566+#: common.opt:1498 common.opt:1502
28567 msgid "Report on memory allocation before interprocedural optimization"
28568 msgstr "Reporta la ubicación de memoria antes de la optimización interprocedural"
28569
28570-#: common.opt:1509
28571+#: common.opt:1506
28572 msgid "Pack structure members together without holes"
28573 msgstr "Empaqueta juntos a los miembros de la estructura sin agujeros"
28574
28575-#: common.opt:1513
28576+#: common.opt:1510
28577 msgid "-fpack-struct=<number>\tSet initial maximum structure member alignment"
28578 msgstr "-fpack-struct=<número>\tEstablece la alineación inicial máxima de estructuras miembro"
28579
28580-#: common.opt:1517
28581+#: common.opt:1514
28582 msgid "Return small aggregates in memory, not registers"
28583 msgstr "Devuelve los agregados small en memoria, no en registros"
28584
28585-#: common.opt:1521
28586+#: common.opt:1518
28587 msgid "Perform loop peeling"
28588 msgstr "Realiza el pelado de bucles"
28589
28590-#: common.opt:1525
28591+#: common.opt:1522
28592 msgid "Enable machine specific peephole optimizations"
28593 msgstr "Activa las optimizaciones de mirilla específicas de la máquina"
28594
28595-#: common.opt:1529
28596+#: common.opt:1526
28597 msgid "Enable an RTL peephole pass before sched2"
28598 msgstr "Activa un paso de mirilla RTL antes de sched2"
28599
28600-#: common.opt:1533
28601+#: common.opt:1530
28602 msgid "Generate position-independent code if possible (large mode)"
28603 msgstr "Genera código independiente de posición si es posible (modo large)"
28604
28605-#: common.opt:1537
28606+#: common.opt:1534
28607 msgid "Generate position-independent code for executables if possible (large mode)"
28608 msgstr "Genera código independiente de posición para ejecutables si es posible (modo large)"
28609
28610-#: common.opt:1541
28611+#: common.opt:1538
28612 msgid "Generate position-independent code if possible (small mode)"
28613 msgstr "Genera código independiente de posición si es posible (modo small)"
28614
28615-#: common.opt:1545
28616+#: common.opt:1542
28617 msgid "Generate position-independent code for executables if possible (small mode)"
28618 msgstr "Genera código independiente de posición para ejecutables si es posible (modo small)"
28619
28620-#: common.opt:1549
28621+#: common.opt:1546
28622 msgid "Specify a plugin to load"
28623 msgstr "Especifica un plugin a cargar"
28624
28625-#: common.opt:1553
28626+#: common.opt:1550
28627 msgid "-fplugin-arg-<name>-<key>[=<value>]\tSpecify argument <key>=<value> for plugin <name>"
28628 msgstr "-fplugin-arg-<nom>-<clave>[=<valor>]\tEspecifica el argumento <clave>=<valor> para el plugin <nom>bre"
28629
28630-#: common.opt:1557
28631+#: common.opt:1554
28632 msgid "Run predictive commoning optimization."
28633 msgstr "Ejecuta la optimización comunizadora predictiva."
28634
28635-#: common.opt:1561
28636+#: common.opt:1558
28637 msgid "Generate prefetch instructions, if available, for arrays in loops"
28638 msgstr "Genera instrucciones de precargado, si están disponibles, para matrices en bucles"
28639
28640-#: common.opt:1565
28641+#: common.opt:1562
28642 msgid "Enable basic program profiling code"
28643 msgstr "Activa el código básico de análisis de perfil del programa"
28644
28645-#: common.opt:1569
28646+#: common.opt:1566
28647 msgid "Insert arc-based program profiling code"
28648 msgstr "Inserta el código de análisis de perfil de programa basado en arc"
28649
28650-#: common.opt:1573
28651+#: common.opt:1570
28652 msgid "Set the top-level directory for storing the profile data."
28653 msgstr "Establece el directorio de nivel principal para almacenar los datos de perfilado."
28654
28655-#: common.opt:1578
28656+#: common.opt:1575
28657 msgid "Enable correction of flow inconsistent profile data input"
28658 msgstr "Activa la corrección de datos de entrada de perfilado inconsistente de flujo"
28659
28660-#: common.opt:1582
28661+#: common.opt:1579
28662 msgid "Enable common options for generating profile info for profile feedback directed optimizations"
28663 msgstr "Activa las opciones comunes para generar información de análisis de perfil para optimizaciones dirigidas por retroalimentación de perfil"
28664
28665-#: common.opt:1586
28666+#: common.opt:1583
28667 msgid "Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir="
28668 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="
28669
28670-#: common.opt:1590
28671+#: common.opt:1587
28672 msgid "Enable common options for performing profile feedback directed optimizations"
28673 msgstr "Activa las opciones comunes para realizar optimizaciones dirigidas por retroalimentación de perfil"
28674
28675-#: common.opt:1594
28676+#: common.opt:1591
28677 msgid "Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir="
28678 msgstr "Activa las opciones comunes para realizar optimizaciones dirigidas por retroalimentación de perfil, y establece -fprofile-dir="
28679
28680-#: common.opt:1598
28681+#: common.opt:1595
28682 msgid "Insert code to profile values of expressions"
28683 msgstr "Inserta el código para perfilar valores de expresiones"
28684
28685-#: common.opt:1605
28686+#: common.opt:1602
28687 msgid "-frandom-seed=<string>\tMake compile reproducible using <string>"
28688 msgstr "-frandom-seed=<cadena>\tHace que se pueda reproducir la compilación utilizando la <cadena>"
28689
28690-#: common.opt:1615
28691+#: common.opt:1612
28692 msgid "Record gcc command line switches in the object file."
28693 msgstr "Guarda las opciones de la línea de órdenes de gcc en el fichero objeto."
28694
28695-#: common.opt:1619
28696+#: common.opt:1616
28697 msgid "Return small aggregates in registers"
28698 msgstr "Devuelve agregados small en registros"
28699
28700-#: common.opt:1623
28701+#: common.opt:1620
28702 msgid "Enables a register move optimization"
28703 msgstr "Permite una optimización de movimiento de registros"
28704
28705-#: common.opt:1627
28706+#: common.opt:1624
28707 msgid "Perform a register renaming optimization pass"
28708 msgstr "Realiza el paso de optimización de renombrado de registros"
28709
28710-#: common.opt:1631
28711+#: common.opt:1628
28712 msgid "Reorder basic blocks to improve code placement"
28713 msgstr "Reordena los bloques básicos para mejorar la ubicación del código"
28714
28715-#: common.opt:1635
28716+#: common.opt:1632
28717 msgid "Reorder basic blocks and partition into hot and cold sections"
28718 msgstr "Reordena los bloques básicos y particionar en secciones caliente y fría"
28719
28720-#: common.opt:1639
28721+#: common.opt:1636
28722 msgid "Reorder functions to improve code placement"
28723 msgstr "Reordena las funciones para mejorar la ubicación del código"
28724
28725-#: common.opt:1643
28726+#: common.opt:1640
28727 msgid "Add a common subexpression elimination pass after loop optimizations"
28728 msgstr "Ejecuta un paso de eliminación de subexpresión común después de las optimizaciones de bucles"
28729
28730-#: common.opt:1651
28731+#: common.opt:1648
28732 msgid "Disable optimizations that assume default FP rounding behavior"
28733 msgstr "Desactiva las optimizaciones que asumen la conducta de un FP que redondea por defecto"
28734
28735-#: common.opt:1655
28736+#: common.opt:1652
28737 msgid "Enable scheduling across basic blocks"
28738 msgstr "Activa la calendarización entre bloques básicos"
28739
28740-#: common.opt:1659
28741+#: common.opt:1656
28742 msgid "Enable register pressure sensitive insn scheduling"
28743 msgstr "Activa la calendarización de insn sensible a la presión de registros"
28744
28745-#: common.opt:1663
28746+#: common.opt:1660
28747 msgid "Allow speculative motion of non-loads"
28748 msgstr "Permite el movimiento especulativo de insn que no son load"
28749
28750-#: common.opt:1667
28751+#: common.opt:1664
28752 msgid "Allow speculative motion of some loads"
28753 msgstr "Permite el movimiento especulativo de algunas loads"
28754
28755-#: common.opt:1671
28756+#: common.opt:1668
28757 msgid "Allow speculative motion of more loads"
28758 msgstr "Permite el movimiento especulativo de más loads"
28759
28760-#: common.opt:1675
28761+#: common.opt:1672
28762 msgid "-fsched-verbose=<number>\tSet the verbosity level of the scheduler"
28763 msgstr "-fsched-verbose=<número>\tEstablece el nivel de detalle del calendarizador"
28764
28765-#: common.opt:1679
28766+#: common.opt:1676
28767 msgid "If scheduling post reload, do superblock scheduling"
28768 msgstr "Si se calendariza después de la recarga, hace la calendarización de superbloque"
28769
28770-#: common.opt:1687
28771+#: common.opt:1684
28772 msgid "Reschedule instructions before register allocation"
28773 msgstr "Recalendariza las instrucciones antes del alojamiento de registros"
28774
28775-#: common.opt:1691
28776+#: common.opt:1688
28777 msgid "Reschedule instructions after register allocation"
28778 msgstr "Recalendariza las instrucciones después del alojamiento de registros"
28779
28780-#: common.opt:1698
28781+#: common.opt:1695
28782 msgid "Schedule instructions using selective scheduling algorithm"
28783 msgstr "Calendariza instrucciones usando el algoritmo de calendarización selectivo"
28784
28785-#: common.opt:1702
28786+#: common.opt:1699
28787 msgid "Run selective scheduling after reload"
28788 msgstr "Ejecuta la calendarización selectiva después de recargar"
28789
28790-#: common.opt:1706
28791+#: common.opt:1703
28792 msgid "Perform software pipelining of inner loops during selective scheduling"
28793 msgstr "Realiza el `pipelining' de software de los bucles internos durante la calendarización selectiva"
28794
28795-#: common.opt:1710
28796+#: common.opt:1707
28797 msgid "Perform software pipelining of outer loops during selective scheduling"
28798 msgstr "Realiza el `pipelining' de software de los bucles externos durante la calendarización selectiva"
28799
28800-#: common.opt:1714
28801+#: common.opt:1711
28802 msgid "Reschedule pipelined regions without pipelining"
28803 msgstr "Recalendariza las regiones `pipelined' sin `pipelining'"
28804
28805-#: common.opt:1720
28806+#: common.opt:1717
28807 msgid "Allow premature scheduling of queued insns"
28808 msgstr "Permite la calendarización prematura de insns encoladas"
28809
28810-#: common.opt:1724
28811+#: common.opt:1721
28812 msgid "-fsched-stalled-insns=<number>\tSet number of queued insns that can be prematurely scheduled"
28813 msgstr "-fsched-stalled-insns=<número>\tEstablece el número de insns encoladas que se pueden calendarizar prematuramente"
28814
28815-#: common.opt:1732
28816+#: common.opt:1729
28817 msgid "Set dependence distance checking in premature scheduling of queued insns"
28818 msgstr "Establece la revisión de distancia de dependencias en la calendarización prematura de insns encoladas"
28819
28820-#: common.opt:1736
28821+#: common.opt:1733
28822 msgid "-fsched-stalled-insns-dep=<number>\tSet dependence distance checking in premature scheduling of queued insns"
28823 msgstr "-fsched-stalled-insns-dep=<número>\tEstablece la revisión de distancia de dependencias en la calendarización prematura de insns encoladas"
28824
28825-#: common.opt:1740
28826+#: common.opt:1737
28827 msgid "Enable the group heuristic in the scheduler"
28828 msgstr "Activa la heurística de grupo en el calendarizador"
28829
28830-#: common.opt:1744
28831+#: common.opt:1741
28832 msgid "Enable the critical path heuristic in the scheduler"
28833 msgstr "Activa la heurística de ruta crítica en el calendarizador"
28834
28835-#: common.opt:1748
28836+#: common.opt:1745
28837 msgid "Enable the speculative instruction heuristic in the scheduler"
28838 msgstr "Activa la heurística de instrucción especulativa en el calendarizador"
28839
28840-#: common.opt:1752
28841+#: common.opt:1749
28842 msgid "Enable the rank heuristic in the scheduler"
28843 msgstr "Activa la heurística de rango en el calendarizador"
28844
28845-#: common.opt:1756
28846+#: common.opt:1753
28847 msgid "Enable the last instruction heuristic in the scheduler"
28848 msgstr "Activa la heurística de última instrucción en el calendarizador"
28849
28850-#: common.opt:1760
28851+#: common.opt:1757
28852 msgid "Enable the dependent count heuristic in the scheduler"
28853 msgstr "Activa la heurística de cuenta dependiente en el calendarizador"
28854
28855-#: common.opt:1764
28856+#: common.opt:1761
28857 msgid "Access data in the same section from shared anchor points"
28858 msgstr "Accede datos en la misma sección que los puntos de anclaje compartidos"
28859
28860-#: common.opt:1776
28861+#: common.opt:1773
28862 msgid "Turn on Redundant Extensions Elimination pass."
28863 msgstr "Activa el paso de Eliminación de Extensiones Redundantes."
28864
28865-#: common.opt:1780
28866+#: common.opt:1777
28867 msgid "Show column numbers in diagnostics, when available. Default on"
28868 msgstr "Muestra los números de columna en los diagnósticos, cuando estén disponible. Activado por defecto"
28869
28870-#: common.opt:1784
28871+#: common.opt:1781
28872 msgid "Emit function prologues only before parts of the function that need it,"
28873 msgstr "Emite prólogos de función sólo después de que las partes de la función que los necesitan,"
28874
28875-#: common.opt:1789
28876+#: common.opt:1786
28877 msgid "Disable optimizations observable by IEEE signaling NaNs"
28878 msgstr "Desactiva las optimizaciones observables con IEEE señalando NaNs"
28879
28880-#: common.opt:1793
28881+#: common.opt:1790
28882 msgid "Disable floating point optimizations that ignore the IEEE signedness of zero"
28883 msgstr "Desactiva las optimizaciones de coma flotante que ignoran el signo de IEEE para cero"
28884
28885-#: common.opt:1797
28886+#: common.opt:1794
28887 msgid "Convert floating point constants to single precision constants"
28888 msgstr "Convierte las constantes de coma flotante a constantes de precisión simple"
28889
28890-#: common.opt:1801
28891+#: common.opt:1798
28892 msgid "Split lifetimes of induction variables when loops are unrolled"
28893 msgstr "Divide los tiempos de vida de las variables de inducción cuando se desenrollen los bucles"
28894
28895-#: common.opt:1805
28896+#: common.opt:1802
28897 msgid "Generate discontiguous stack frames"
28898 msgstr "Genera marcos de pila discontiguos"
28899
28900-#: common.opt:1809
28901+#: common.opt:1806
28902 msgid "Split wide types into independent registers"
28903 msgstr "Divide los tipos anchos en registros independientes"
28904
28905-#: common.opt:1813
28906+#: common.opt:1810
28907 msgid "Apply variable expansion when loops are unrolled"
28908 msgstr "Aplica la expansión de variables cuando se desenrollan los bucles"
28909
28910-#: common.opt:1817
28911+#: common.opt:1814
28912 msgid "-fstack-check=[no|generic|specific]\tInsert stack checking code into the program"
28913 msgstr "-fstack-check=[no|generic|specific]\tInserta código de revisión de la pila en el programa"
28914
28915-#: common.opt:1821
28916+#: common.opt:1818
28917 msgid "Insert stack checking code into the program. Same as -fstack-check=specific"
28918 msgstr "Inserta código de revisión de la pila en el programai. Igual que -fstach-check=specific"
28919
28920-#: common.opt:1828
28921+#: common.opt:1825
28922 msgid "-fstack-limit-register=<register>\tTrap if the stack goes past <register>"
28923 msgstr "-fstack-limit-register=<register>\tCaptura si la pila pasa del <registro>"
28924
28925-#: common.opt:1832
28926+#: common.opt:1829
28927 msgid "-fstack-limit-symbol=<name>\tTrap if the stack goes past symbol <name>"
28928 msgstr "-fstack-limit-symbol=<nombre>\tCaptura si la pila pasa del símbolo <nombre>"
28929
28930-#: common.opt:1836
28931+#: common.opt:1833
28932 msgid "Use propolice as a stack protection method"
28933 msgstr "Usa propolice como un método de protección de pila"
28934
28935-#: common.opt:1840
28936+#: common.opt:1837
28937 msgid "Use a stack protection method for every function"
28938 msgstr "Usa un método de protección de pila para cada función"
28939
28940-#: common.opt:1844
28941+#: common.opt:1841
28942 msgid "Output stack usage information on a per-function basis"
28943 msgstr "Información de uso de pila de salida basada por función"
28944
28945-#: common.opt:1856
28946+#: common.opt:1853
28947 msgid "Assume strict aliasing rules apply"
28948 msgstr "Asume que se aplican las reglas estrictas de alias"
28949
28950-#: common.opt:1860
28951+#: common.opt:1857
28952 msgid "Treat signed overflow as undefined"
28953 msgstr "Trata el desbordamiento de signo como indefinido"
28954
28955-#: common.opt:1864
28956+#: common.opt:1861
28957 msgid "Check for syntax errors, then stop"
28958 msgstr "Busca errores de sintaxis, y termina"
28959
28960-#: common.opt:1868
28961+#: common.opt:1865
28962 msgid "Create data files needed by \"gcov\""
28963 msgstr "Crea ficheros de datos necesarios para \"gcov\""
28964
28965-#: common.opt:1872
28966+#: common.opt:1869
28967 msgid "Perform jump threading optimizations"
28968 msgstr "Realiza optimizaciones de hilado de saltos"
28969
28970-#: common.opt:1876
28971+#: common.opt:1873
28972 msgid "Report the time taken by each compiler pass"
28973 msgstr "Reporta el tiempo tomado por cada paso del compilador"
28974
28975-#: common.opt:1880
28976+#: common.opt:1877
28977 msgid "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tSet the default thread-local storage code generation model"
28978 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"
28979
28980-#: common.opt:1883
28981+#: common.opt:1880
28982 #, c-format
28983 msgid "unknown TLS model %qs"
28984 msgstr "modelo TLS %qs desconocido"
28985
28986-#: common.opt:1899
28987+#: common.opt:1896
28988 msgid "Reorder top level functions, variables, and asms"
28989 msgstr "Reordena las funciones de nivel superior, variables y asms"
28990
28991-#: common.opt:1903
28992+#: common.opt:1900
28993 msgid "Perform superblock formation via tail duplication"
28994 msgstr "Realiza la formación de superbloques a través de la duplicación de colas"
28995
28996-#: common.opt:1910
28997+#: common.opt:1907
28998 msgid "Assume floating-point operations can trap"
28999 msgstr "Asume que las operaciones de coma flotante pueden atrapar"
29000
29001-#: common.opt:1914
29002+#: common.opt:1911
29003 msgid "Trap for signed overflow in addition, subtraction and multiplication"
29004 msgstr "Atrapar desbordamientos signed en adición, sustracción y multiplicación"
29005
29006-#: common.opt:1918
29007+#: common.opt:1915
29008 msgid "Enable SSA-CCP optimization on trees"
29009 msgstr "Activa la optimización SSA-CCP en árboles"
29010
29011-#: common.opt:1922
29012+#: common.opt:1919
29013 msgid "Enable SSA-BIT-CCP optimization on trees"
29014 msgstr "Activa la optimización SSA-BIT-CCP en árboles"
29015
29016-#: common.opt:1930
29017+#: common.opt:1927
29018 msgid "Enable loop header copying on trees"
29019 msgstr "Activa la copia de encabezado de bucles en árboles"
29020
29021-#: common.opt:1934
29022+#: common.opt:1931
29023 msgid "Replace SSA temporaries with better names in copies"
29024 msgstr "Reemplaza temporales SSA con mejores nombres en las copias"
29025
29026-#: common.opt:1938
29027+#: common.opt:1935
29028 msgid "Enable copy propagation on trees"
29029 msgstr "Activa la propagación de copia en árboles"
29030
29031-#: common.opt:1946
29032+#: common.opt:1943
29033 msgid "Transform condition stores into unconditional ones"
29034 msgstr "Transforma los almacenamientos condicionales a incondicionales"
29035
29036-#: common.opt:1950
29037+#: common.opt:1947
29038 msgid "Perform conversions of switch initializations."
29039 msgstr "Realiza la conversión de las inicializaciones de switch."
29040
29041-#: common.opt:1954
29042+#: common.opt:1951
29043 msgid "Enable SSA dead code elimination optimization on trees"
29044 msgstr "Activa la optimización de eliminación de código muerto SSA en árboles"
29045
29046-#: common.opt:1958
29047+#: common.opt:1955
29048 msgid "Enable dominator optimizations"
29049 msgstr "Activa las optimizaciones dominadoras"
29050
29051-#: common.opt:1962
29052+#: common.opt:1959
29053 msgid "Enable tail merging on trees"
29054 msgstr "Activa la mezcla de colas en árboles"
29055
29056-#: common.opt:1966
29057+#: common.opt:1963
29058 msgid "Enable dead store elimination"
29059 msgstr "Activa la eliminación de almacenamiento muerto"
29060
29061-#: common.opt:1970
29062+#: common.opt:1967
29063 msgid "Enable forward propagation on trees"
29064 msgstr "Activa la propagación hacia adelante en árboles"
29065
29066-#: common.opt:1974
29067+#: common.opt:1971
29068 msgid "Enable Full Redundancy Elimination (FRE) on trees"
29069 msgstr "Activa la Eliminación de Redundancia Completa en árboles"
29070
29071-#: common.opt:1978
29072+#: common.opt:1975
29073 msgid "Enable string length optimizations on trees"
29074 msgstr "Activa la optimizaciones de longitud de cadenas en árboles"
29075
29076-#: common.opt:1982
29077+#: common.opt:1979
29078 msgid "Enable loop distribution on trees"
29079 msgstr "Activa la distribución de bucles en árboles"
29080
29081-#: common.opt:1986
29082+#: common.opt:1983
29083 msgid "Enable loop distribution for patterns transformed into a library call"
29084 msgstr "Activa la distribución de bucles por patrones transformados en una llamada a biblioteca"
29085
29086-#: common.opt:1990
29087+#: common.opt:1987
29088 msgid "Enable loop invariant motion on trees"
29089 msgstr "Permite el movimiento invariante de bucles en árboles"
29090
29091-#: common.opt:1994
29092+#: common.opt:1991
29093 msgid "Enable loop interchange transforms. Same as -floop-interchange"
29094 msgstr "Activa las transformaciones de intercambio de bucle. Igual que -floop-interchange"
29095
29096-#: common.opt:1998
29097+#: common.opt:1995
29098 msgid "Create canonical induction variables in loops"
29099 msgstr "Crea variables de inducción canónica en los bucles"
29100
29101-#: common.opt:2002
29102+#: common.opt:1999
29103 msgid "Enable loop optimizations on tree level"
29104 msgstr "Activa las optimizaciones de bucles a nivel de árbol"
29105
29106-#: common.opt:2006
29107+#: common.opt:2003
29108 msgid "Enable automatic parallelization of loops"
29109 msgstr "Activa la paralelización automática de bucles"
29110
29111-#: common.opt:2010
29112+#: common.opt:2007
29113 msgid "Enable hoisting loads from conditional pointers."
29114 msgstr "Activa las cargas de elevación de punteros condicionales."
29115
29116-#: common.opt:2014
29117+#: common.opt:2011
29118 msgid "Enable SSA-PRE optimization on trees"
29119 msgstr "Activa las optimizaciones SSA-PRE en árboles"
29120
29121-#: common.opt:2018
29122+#: common.opt:2015
29123 msgid "Perform function-local points-to analysis on trees."
29124 msgstr "Realiza el análisis puntero-a función-local en árboles."
29125
29126-#: common.opt:2022
29127+#: common.opt:2019
29128 msgid "Enable reassociation on tree level"
29129 msgstr "Activa la reasociación a nivel de árbol"
29130
29131-#: common.opt:2030
29132+#: common.opt:2027
29133 msgid "Enable SSA code sinking on trees"
29134 msgstr "Activa el hundimiento de código SSA en árboles"
29135
29136-#: common.opt:2034
29137+#: common.opt:2031
29138 msgid "Perform scalar replacement of aggregates"
29139 msgstr "Realiza el reemplazo escalar de agregados"
29140
29141-#: common.opt:2038
29142+#: common.opt:2035
29143 msgid "Replace temporary expressions in the SSA->normal pass"
29144 msgstr "Reemplaza expresiones temporales en el paso SSA->normal"
29145
29146-#: common.opt:2042
29147+#: common.opt:2039
29148 msgid "Perform live range splitting during the SSA->normal pass"
29149 msgstr "Realizar la división de rango vivo durante el paso SSA->normal"
29150
29151-#: common.opt:2046
29152+#: common.opt:2043
29153 msgid "Perform Value Range Propagation on trees"
29154 msgstr "Realiza la Propagación de Rango Valor en árboles"
29155
29156-#: common.opt:2050
29157+#: common.opt:2047
29158 msgid "Compile whole compilation unit at a time"
29159 msgstr "Compila la unidad de compilación completa a la vez"
29160
29161-#: common.opt:2054
29162+#: common.opt:2051
29163 msgid "Perform loop unrolling when iteration count is known"
29164 msgstr "Realiza el desenrollamiento del bucle cuando se conoce la cuenta de iteración"
29165
29166-#: common.opt:2058
29167+#: common.opt:2055
29168 msgid "Perform loop unrolling for all loops"
29169 msgstr "Realiza el desenrollamiento del bucle para todos los bucles"
29170
29171-#: common.opt:2065
29172+#: common.opt:2062
29173 msgid "Allow loop optimizations to assume that the loops behave in normal way"
29174 msgstr "Permite que las optimizaciones de bucle asuman que los bucles se comportan normalmente"
29175
29176-#: common.opt:2069
29177+#: common.opt:2066
29178 msgid "Allow optimization for floating-point arithmetic which may change the"
29179 msgstr "Permite la optimización para la aritmética de coma flotante la cual puede cambiar"
29180
29181-#: common.opt:2074
29182+#: common.opt:2071
29183 msgid "Same as -fassociative-math for expressions which include division."
29184 msgstr "Igual que -fassociative-math para las expresiones que incluyen división."
29185
29186-#: common.opt:2082
29187+#: common.opt:2079
29188 msgid "Allow math optimizations that may violate IEEE or ISO standards"
29189 msgstr "Permite optimizaciones matemáticas que pueden violar los estándares IEEE ó ISO"
29190
29191-#: common.opt:2086
29192+#: common.opt:2083
29193 msgid "Perform loop unswitching"
29194 msgstr "Realiza la eliminación de opciones de bucle"
29195
29196-#: common.opt:2090
29197+#: common.opt:2087
29198 msgid "Just generate unwind tables for exception handling"
29199 msgstr "Sólo genera tablas de desenredo para manejo de excepciones"
29200
29201-#: common.opt:2102
29202+#: common.opt:2099
29203 msgid "Perform variable tracking"
29204 msgstr "Realiza seguimiento de variables"
29205
29206-#: common.opt:2110
29207+#: common.opt:2107
29208 msgid "Perform variable tracking by annotating assignments"
29209 msgstr "Realiza seguimiento de variables con asignación de anotaciones"
29210
29211-#: common.opt:2116
29212+#: common.opt:2113
29213 msgid "Toggle -fvar-tracking-assignments"
29214 msgstr "Cambia -fvar-tracking-assignments"
29215
29216-#: common.opt:2120
29217+#: common.opt:2117
29218 msgid "Perform variable tracking and also tag variables that are uninitialized"
29219 msgstr "Realiza el seguimiento de variables y también marca las variables que no se inicializaron"
29220
29221-#: common.opt:2124
29222+#: common.opt:2121
29223 msgid "Enable loop vectorization on trees"
29224 msgstr "Activa la vectorización de bucles en árboles"
29225
29226-#: common.opt:2128
29227+#: common.opt:2125
29228 msgid "Enable basic block vectorization (SLP) on trees"
29229 msgstr "Activa la vectorización de bloque básico (SLP) en árboles"
29230
29231-#: common.opt:2132
29232+#: common.opt:2129
29233 msgid "Enable use of cost model in vectorization"
29234 msgstr "Activa el uso del modelo costo en la vectorización"
29235
29236-#: common.opt:2136
29237+#: common.opt:2133
29238 msgid "Enable loop versioning when doing loop vectorization on trees"
29239 msgstr "Activa las versiones de bucles cuando se hace vectorización de bucles en árboles"
29240
29241-#: common.opt:2140
29242+#: common.opt:2137
29243 msgid "-ftree-vectorizer-verbose=<number>\tSet the verbosity level of the vectorizer"
29244 msgstr "-ftree-vectorizer-verbose=<número>\tEstablece el nivel de detalle del vectorizador"
29245
29246-#: common.opt:2144
29247+#: common.opt:2141
29248 msgid "Enable copy propagation of scalar-evolution information."
29249 msgstr "Activa la propagación de copia de la información escalar-evolución."
29250
29251-#: common.opt:2154
29252+#: common.opt:2151
29253 msgid "Add extra commentary to assembler output"
29254 msgstr "Agrega comentarios extra a la salida de ensamblador"
29255
29256-#: common.opt:2158
29257+#: common.opt:2155
29258 msgid "-fvisibility=[default|internal|hidden|protected]\tSet the default symbol visibility"
29259 msgstr "-fvisibility=[default|internal|hidden|protected]\tEstablece la visibilidad de símbolos por defecto"
29260
29261-#: common.opt:2161
29262+#: common.opt:2158
29263 #, c-format
29264 msgid "unrecognized visibility value %qs"
29265 msgstr "no se reconoce el valor de visibilidad %qs"
29266
29267-#: common.opt:2177
29268+#: common.opt:2174
29269 msgid "Use expression value profiles in optimizations"
29270 msgstr "Usa perfiles de valor de expresión en las optimizaciones"
29271
29272-#: common.opt:2181
29273+#: common.opt:2178
29274 msgid "Construct webs and split unrelated uses of single variable"
29275 msgstr "Construye redes y divide usos no relacionados de una sola variable"
29276
29277-#: common.opt:2185
29278+#: common.opt:2182
29279 msgid "Enable conditional dead code elimination for builtin calls"
29280 msgstr "Activa la eliminación de código muerto condicional para llamadas internas"
29281
29282-#: common.opt:2189
29283+#: common.opt:2186
29284 msgid "Perform whole program optimizations"
29285 msgstr "Realiza optimizaciones del programa completo"
29286
29287 # wraps around? No entiendo bien. cfuga
29288-#: common.opt:2193
29289+#: common.opt:2190
29290 msgid "Assume signed arithmetic overflow wraps around"
29291 msgstr "Asume que el desbordamiento aritmético con signo se envuelve"
29292
29293-#: common.opt:2197
29294+#: common.opt:2194
29295 msgid "Put zero initialized data in the bss section"
29296 msgstr "Pone los datos inicializados a cero en la sección bss"
29297
29298-#: common.opt:2201
29299+#: common.opt:2198
29300 msgid "Generate debug information in default format"
29301 msgstr "Genera información de depuración en el formato por defecto"
29302
29303-#: common.opt:2205
29304+#: common.opt:2202
29305 msgid "Generate debug information in COFF format"
29306 msgstr "Genera información de depuración en el formato COFF"
29307
29308-#: common.opt:2209
29309+#: common.opt:2206
29310 msgid "Generate debug information in DWARF v2 (or later) format"
29311 msgstr "Genera información de depuración en el formato DWARF v2 (o posterior)"
29312
29313-#: common.opt:2213
29314+#: common.opt:2210
29315 msgid "Generate debug information in default extended format"
29316 msgstr "Genera información de depuración en el formato extendido por defecto"
29317
29318-#: common.opt:2217
29319+#: common.opt:2214
29320 msgid "Don't record gcc command line switches in DWARF DW_AT_producer."
29321 msgstr "No guarda las opciones de la línea de órdenes de gcc en DW_AT_producer de DWARF."
29322
29323-#: common.opt:2221
29324+#: common.opt:2218
29325 msgid "Record gcc command line switches in DWARF DW_AT_producer."
29326 msgstr "Guarda las opciones de la línea de órdenes de gcc en DW_AT_producer de DWARF."
29327
29328-#: common.opt:2225
29329+#: common.opt:2222
29330 msgid "Generate debug information in STABS format"
29331 msgstr "Genera información de depuración en el formato STABS"
29332
29333-#: common.opt:2229
29334+#: common.opt:2226
29335 msgid "Generate debug information in extended STABS format"
29336 msgstr "Genera información de depuración en el formato STABS extendido"
29337
29338-#: common.opt:2233
29339+#: common.opt:2230
29340 msgid "Emit DWARF additions beyond selected version"
29341 msgstr "Emite adiciones DWARF más allá de la versión seleccionada"
29342
29343-#: common.opt:2237
29344+#: common.opt:2234
29345 msgid "Don't emit DWARF additions beyond selected version"
29346 msgstr "No emite adiciones DWARF más allá de la versión seleccionada"
29347
29348-#: common.opt:2241
29349+#: common.opt:2238
29350 msgid "Toggle debug information generation"
29351 msgstr "Cambia la generación de información de depuración"
29352
29353-#: common.opt:2245
29354+#: common.opt:2242
29355 msgid "Generate debug information in VMS format"
29356 msgstr "Genera información de depuración en el formato VMS"
29357
29358-#: common.opt:2249
29359+#: common.opt:2246
29360 msgid "Generate debug information in XCOFF format"
29361 msgstr "Genera información de depuración en el formato XCOFF"
29362
29363-#: common.opt:2253
29364+#: common.opt:2250
29365 msgid "Generate debug information in extended XCOFF format"
29366 msgstr "Genera información de depuración en el formato XCOFF extendido"
29367
29368-#: common.opt:2260
29369+#: common.opt:2257
29370 msgid "-iplugindir=<dir>\tSet <dir> to be the default plugin directory"
29371 msgstr "-iplugindir=<dir>\tDefine <dir> como el directorio de plugins por defecto"
29372
29373-#: common.opt:2282
29374+#: common.opt:2279
29375 msgid "-o <file>\tPlace output into <file>"
29376 msgstr "-o <fichero>\tColoca la salida en el <fichero>"
29377
29378-#: common.opt:2286
29379+#: common.opt:2283
29380 msgid "Enable function profiling"
29381 msgstr "Activa el análisis de perfil de las funciones"
29382
29383-#: common.opt:2293
29384+#: common.opt:2290
29385 msgid "Issue warnings needed for strict compliance to the standard"
29386 msgstr "Activa los avisos necesarios para cumplir estrictamente con el estándar"
29387
29388-#: common.opt:2297
29389+#: common.opt:2294
29390 msgid "Like -pedantic but issue them as errors"
29391 msgstr "Como -pedantic pero los muestra como errores"
29392
29393-#: common.opt:2334
29394+#: common.opt:2331
29395 msgid "Do not display functions compiled or elapsed time"
29396 msgstr "No muestra las funciones compiladas o el tiempo transcurrido"
29397
29398-#: common.opt:2366
29399+#: common.opt:2363
29400 msgid "Enable verbose output"
29401 msgstr "Activa la salida detallada"
29402
29403-#: common.opt:2370
29404+#: common.opt:2367
29405 msgid "Display the compiler's version"
29406 msgstr "Muestra la versión del compilador"
29407
29408-#: common.opt:2374
29409+#: common.opt:2371
29410 msgid "Suppress warnings"
29411 msgstr "Suprime avisos"
29412
29413-#: common.opt:2384
29414+#: common.opt:2381
29415 msgid "Create a shared library"
29416 msgstr "Crea una biblioteca compartida"
29417
29418-#: common.opt:2417
29419+#: common.opt:2414
29420 msgid "Create a position independent executable"
29421 msgstr "Genera un ejecutable independiente de posición"
29422
29423-#: go/gofrontend/expressions.cc:912
29424+#: go/gofrontend/expressions.cc:917
29425 msgid "invalid use of type"
29426 msgstr "uso inválido del tipo"
29427
29428-#: go/gofrontend/expressions.cc:2273 go/gofrontend/expressions.cc:2991
29429+#: go/gofrontend/expressions.cc:2278 go/gofrontend/expressions.cc:2996
29430 msgid "floating point constant truncated to integer"
29431 msgstr "se truncó la constante de coma flotante a entero"
29432
29433-#: go/gofrontend/expressions.cc:2871 go/gofrontend/expressions.cc:2941
29434-#: go/gofrontend/expressions.cc:2957
29435+#: go/gofrontend/expressions.cc:2876 go/gofrontend/expressions.cc:2946
29436+#: go/gofrontend/expressions.cc:2962
29437 msgid "constant refers to itself"
29438 msgstr "la constante se refiere a sí misma"
29439
29440-#: go/gofrontend/expressions.cc:4537
29441+#: go/gofrontend/expressions.cc:4557
29442 msgid "expected numeric type"
29443 msgstr "se esperaba un tipo numérico"
29444
29445-#: go/gofrontend/expressions.cc:4544
29446+#: go/gofrontend/expressions.cc:4564
29447 msgid "expected integer or boolean type"
29448 msgstr "se esperaba un tipo entero o booleano"
29449
29450-#: go/gofrontend/expressions.cc:4551
29451+#: go/gofrontend/expressions.cc:4571
29452 msgid "invalid operand for unary %<&%>"
29453 msgstr "operando inválido para el unario %<&%>"
29454
29455-#: go/gofrontend/expressions.cc:4560
29456+#: go/gofrontend/expressions.cc:4580
29457 msgid "expected pointer"
29458 msgstr "se esperaba un puntero"
29459
29460-#: go/gofrontend/expressions.cc:6258 go/gofrontend/expressions.cc:6509
29461-#: go/gofrontend/expressions.cc:6527
29462+#: go/gofrontend/expressions.cc:6316 go/gofrontend/expressions.cc:6567
29463+#: go/gofrontend/expressions.cc:6585
29464 msgid "incompatible types in binary expression"
29465 msgstr "tipos incompatibles en la expresión binaria"
29466
29467-#: go/gofrontend/expressions.cc:6541
29468+#: go/gofrontend/expressions.cc:6599
29469 msgid "shift of non-integer operand"
29470 msgstr "desplazamiento de un operando que no es entero"
29471
29472-#: go/gofrontend/expressions.cc:6546
29473+#: go/gofrontend/expressions.cc:6604
29474 msgid "shift count not unsigned integer"
29475 msgstr "la cuenta de desplazamiento no es un entero sin signo"
29476
29477-#: go/gofrontend/expressions.cc:6556
29478+#: go/gofrontend/expressions.cc:6614
29479 msgid "negative shift count"
29480 msgstr "cuenta de desplazamiento negativa"
29481
29482-#: go/gofrontend/expressions.cc:7264
29483+#: go/gofrontend/expressions.cc:7322
29484 msgid "object is not a method"
29485 msgstr "el objeto no es un método"
29486
29487-#: go/gofrontend/expressions.cc:7273
29488+#: go/gofrontend/expressions.cc:7331
29489 msgid "method type does not match object type"
29490 msgstr "el tipo de método no coincide con el tipo de objeto"
29491
29492-#: go/gofrontend/expressions.cc:7553
29493+#: go/gofrontend/expressions.cc:7611
29494 msgid "invalid use of %<...%> with builtin function"
29495 msgstr "uso inválido de %<..%> con la función interna"
29496
29497-#: go/gofrontend/expressions.cc:7615 go/gofrontend/expressions.cc:7669
29498-#: go/gofrontend/expressions.cc:7714 go/gofrontend/expressions.cc:8421
29499-#: go/gofrontend/expressions.cc:8565 go/gofrontend/expressions.cc:8608
29500-#: go/gofrontend/expressions.cc:8657 go/gofrontend/expressions.cc:9829
29501-#: go/gofrontend/expressions.cc:9848
29502+#: go/gofrontend/expressions.cc:7673 go/gofrontend/expressions.cc:7730
29503+#: go/gofrontend/expressions.cc:7775 go/gofrontend/expressions.cc:8502
29504+#: go/gofrontend/expressions.cc:8647 go/gofrontend/expressions.cc:8690
29505+#: go/gofrontend/expressions.cc:8746 go/gofrontend/expressions.cc:9924
29506+#: go/gofrontend/expressions.cc:9943
29507 msgid "not enough arguments"
29508 msgstr "faltan argumentos"
29509
29510-#: go/gofrontend/expressions.cc:7617 go/gofrontend/expressions.cc:7671
29511-#: go/gofrontend/expressions.cc:8426 go/gofrontend/expressions.cc:8548
29512-#: go/gofrontend/expressions.cc:8570 go/gofrontend/expressions.cc:8613
29513-#: go/gofrontend/expressions.cc:8659 go/gofrontend/expressions.cc:9546
29514-#: go/gofrontend/expressions.cc:9834 go/gofrontend/expressions.cc:9855
29515+#: go/gofrontend/expressions.cc:7675 go/gofrontend/expressions.cc:7732
29516+#: go/gofrontend/expressions.cc:8507 go/gofrontend/expressions.cc:8630
29517+#: go/gofrontend/expressions.cc:8652 go/gofrontend/expressions.cc:8695
29518+#: go/gofrontend/expressions.cc:8748 go/gofrontend/expressions.cc:9638
29519+#: go/gofrontend/expressions.cc:9929 go/gofrontend/expressions.cc:9950
29520 msgid "too many arguments"
29521 msgstr "demasiados argumentos"
29522
29523-#: go/gofrontend/expressions.cc:7673
29524+#: go/gofrontend/expressions.cc:7734
29525 msgid "argument 1 must be a map"
29526 msgstr "el argumento 1 debe ser un mapa"
29527
29528-#: go/gofrontend/expressions.cc:7740
29529+#: go/gofrontend/expressions.cc:7801
29530 msgid "invalid type for make function"
29531 msgstr "tipo inválido para la función make"
29532
29533-#: go/gofrontend/expressions.cc:7750
29534+#: go/gofrontend/expressions.cc:7815
29535 msgid "length required when allocating a slice"
29536 msgstr "se requiere longitud al alojar una rebanada"
29537
29538-#: go/gofrontend/expressions.cc:7764
29539+#: go/gofrontend/expressions.cc:7829
29540 msgid "bad size for make"
29541 msgstr "tamaño erróneo para make"
29542
29543-#: go/gofrontend/expressions.cc:7776
29544+#: go/gofrontend/expressions.cc:7844
29545 msgid "bad capacity when making slice"
29546 msgstr "capacidad errónea al crear la rebanada"
29547
29548-#: go/gofrontend/expressions.cc:7784
29549+#: go/gofrontend/expressions.cc:7855
29550 msgid "too many arguments to make"
29551 msgstr "demasiados argumentos para make"
29552
29553-#: go/gofrontend/expressions.cc:8467
29554+#: go/gofrontend/expressions.cc:8549
29555 msgid "argument must be array or slice or channel"
29556 msgstr "el argumento debe ser matriz o rebanada o canal"
29557
29558-#: go/gofrontend/expressions.cc:8477
29559+#: go/gofrontend/expressions.cc:8559
29560 msgid "argument must be string or array or slice or map or channel"
29561 msgstr "el argumento debe ser cadena o matriz o rebanada o mapa o canal"
29562
29563-#: go/gofrontend/expressions.cc:8523
29564+#: go/gofrontend/expressions.cc:8605
29565 msgid "unsupported argument type to builtin function"
29566 msgstr "no se admite el tipo de argumento para la función interna"
29567
29568-#: go/gofrontend/expressions.cc:8534
29569+#: go/gofrontend/expressions.cc:8616
29570 msgid "argument must be channel"
29571 msgstr "el argumento debe ser canal"
29572
29573-#: go/gofrontend/expressions.cc:8536
29574+#: go/gofrontend/expressions.cc:8618
29575 msgid "cannot close receive-only channel"
29576 msgstr "no se puede cerrar un canal de sólo recepción"
29577
29578-#: go/gofrontend/expressions.cc:8556
29579+#: go/gofrontend/expressions.cc:8638
29580 msgid "argument must be a field reference"
29581 msgstr "el argumento debe ser una referencia de campo"
29582
29583-#: go/gofrontend/expressions.cc:8583
29584+#: go/gofrontend/expressions.cc:8665
29585 msgid "left argument must be a slice"
29586 msgstr "el argumento izquierdo debe ser una rebanada"
29587
29588-#: go/gofrontend/expressions.cc:8591
29589+#: go/gofrontend/expressions.cc:8673
29590 msgid "element types must be the same"
29591 msgstr "los tipos de elemento deben ser el mismo"
29592
29593-#: go/gofrontend/expressions.cc:8596
29594+#: go/gofrontend/expressions.cc:8678
29595 msgid "first argument must be []byte"
29596 msgstr "el primer argumento debe ser []byte"
29597
29598-#: go/gofrontend/expressions.cc:8599
29599+#: go/gofrontend/expressions.cc:8681
29600 msgid "second argument must be slice or string"
29601 msgstr "el segundo argumento debe ser una rebanada o una cadena"
29602
29603-#: go/gofrontend/expressions.cc:8632
29604-msgid "arguments 1 and 2 have different types"
29605-msgstr "los argumentos 1 y 2 tienen tipos diferentes"
29606+#: go/gofrontend/expressions.cc:8722
29607+msgid "argument 2 has invalid type"
29608+msgstr "el argumento 2 es de tipo inválido"
29609
29610-#: go/gofrontend/expressions.cc:8649
29611+#: go/gofrontend/expressions.cc:8738
29612 msgid "argument must have complex type"
29613 msgstr "el argumento debe tener tipo complejo"
29614
29615-#: go/gofrontend/expressions.cc:8667
29616+#: go/gofrontend/expressions.cc:8756
29617 msgid "complex arguments must have identical types"
29618 msgstr "los argumentos complejos deben tener tipos idénticos"
29619
29620-#: go/gofrontend/expressions.cc:8669
29621+#: go/gofrontend/expressions.cc:8758
29622 msgid "complex arguments must have floating-point type"
29623 msgstr "los argumentos complejos deben tener tipo de coma flotante"
29624
29625-#: go/gofrontend/expressions.cc:9792 go/gofrontend/expressions.cc:10217
29626+#: go/gofrontend/expressions.cc:9887 go/gofrontend/expressions.cc:10318
29627 msgid "expected function"
29628 msgstr "se esperaba función"
29629
29630-#: go/gofrontend/expressions.cc:9811
29631+#: go/gofrontend/expressions.cc:9906
29632 msgid "incompatible type for receiver"
29633 msgstr "tipo incompatible para el receptor"
29634
29635-#: go/gofrontend/expressions.cc:10226 go/gofrontend/expressions.cc:10240
29636+#: go/gofrontend/expressions.cc:10327 go/gofrontend/expressions.cc:10341
29637 msgid "number of results does not match number of values"
29638 msgstr "el número de resultados no coincide con el número de valores"
29639
29640-#: go/gofrontend/expressions.cc:10535 go/gofrontend/expressions.cc:10943
29641+#: go/gofrontend/expressions.cc:10645 go/gofrontend/expressions.cc:11065
29642 msgid "index must be integer"
29643 msgstr "el índice debe ser entero"
29644
29645-#: go/gofrontend/expressions.cc:10541 go/gofrontend/expressions.cc:10947
29646+#: go/gofrontend/expressions.cc:10651 go/gofrontend/expressions.cc:11069
29647 msgid "slice end must be integer"
29648 msgstr "el final de la rebanada debe ser entero"
29649
29650-#: go/gofrontend/expressions.cc:10596
29651+#: go/gofrontend/expressions.cc:10706
29652 msgid "slice of unaddressable value"
29653 msgstr "rebanada con valor que no es direccionable"
29654
29655-#: go/gofrontend/expressions.cc:11175
29656+#: go/gofrontend/expressions.cc:11297
29657 msgid "incompatible type for map index"
29658 msgstr "tipo incompatibles para el índice de mapa"
29659
29660-#: go/gofrontend/expressions.cc:11523
29661+#: go/gofrontend/expressions.cc:11645
29662 msgid "expected interface or pointer to interface"
29663 msgstr "se esperaba interfaz o puntero a interfaz"
29664
29665-#: go/gofrontend/expressions.cc:12049
29666+#: go/gofrontend/expressions.cc:12182
29667 msgid "too many expressions for struct"
29668 msgstr "demasiadas expresiones para struct"
29669
29670-#: go/gofrontend/expressions.cc:12062
29671+#: go/gofrontend/expressions.cc:12195
29672 msgid "too few expressions for struct"
29673 msgstr "faltan expresiones para struct"
29674
29675-#: go/gofrontend/expressions.cc:12342
29676+#: go/gofrontend/expressions.cc:12475
29677 msgid "too many elements in composite literal"
29678 msgstr "demasiados elementos en la literal compuesta"
29679
29680-#: go/gofrontend/expressions.cc:13611 go/gofrontend/expressions.cc:13619
29681+#: go/gofrontend/expressions.cc:13744 go/gofrontend/expressions.cc:13752
29682 msgid "invalid unsafe.Pointer conversion"
29683 msgstr "conversión unsafe.Pointer inválida"
29684
29685-#: go/gofrontend/expressions.cc:13624 go/gofrontend/statements.cc:1539
29686+#: go/gofrontend/expressions.cc:13757 go/gofrontend/statements.cc:1539
29687 msgid "type assertion only valid for interface types"
29688 msgstr "la aserción de tipo sólo es válida para los tipos de interfaz"
29689
29690-#: go/gofrontend/expressions.cc:13636
29691+#: go/gofrontend/expressions.cc:13769
29692 msgid "impossible type assertion: type does not implement interface"
29693 msgstr "aserción de tipo imposible: el tipo no implementa interfaz"
29694
29695-#: go/gofrontend/expressions.cc:13820 go/gofrontend/statements.cc:1387
29696+#: go/gofrontend/expressions.cc:13953 go/gofrontend/statements.cc:1387
29697 msgid "expected channel"
29698 msgstr "se esperaba canal"
29699
29700-#: go/gofrontend/expressions.cc:13825 go/gofrontend/statements.cc:1392
29701+#: go/gofrontend/expressions.cc:13958 go/gofrontend/statements.cc:1392
29702 msgid "invalid receive on send-only channel"
29703 msgstr "recepción inválida en canal de sólo envío"
29704
29705@@ -11888,117 +12033,117 @@
29706 msgid "range clause must have array, slice, string, map, or channel type"
29707 msgstr "la cláusula de rango debe tener tipo matriz, rebanada, cadena, mapa o canal"
29708
29709-#: go/gofrontend/types.cc:509
29710+#: go/gofrontend/types.cc:527
29711 msgid "invalid comparison of non-ordered type"
29712 msgstr "comparación inválida de tipo que no es ordenado"
29713
29714-#: go/gofrontend/types.cc:525
29715+#: go/gofrontend/types.cc:543
29716 msgid "slice can only be compared to nil"
29717 msgstr "la rebanada sólo se puede comparar con nil"
29718
29719-#: go/gofrontend/types.cc:527
29720+#: go/gofrontend/types.cc:545
29721 msgid "map can only be compared to nil"
29722 msgstr "el mapa sólo se puede comparar con nil"
29723
29724-#: go/gofrontend/types.cc:529
29725+#: go/gofrontend/types.cc:547
29726 msgid "func can only be compared to nil"
29727 msgstr "la función sólo se puede comparar con nil"
29728
29729-#: go/gofrontend/types.cc:535
29730+#: go/gofrontend/types.cc:553
29731 #, c-format
29732 msgid "invalid operation (%s)"
29733 msgstr "operación inválida (%s)"
29734
29735-#: go/gofrontend/types.cc:558
29736+#: go/gofrontend/types.cc:576
29737 msgid "invalid comparison of non-comparable type"
29738 msgstr "comparación inválida de tipo que no es comparable"
29739
29740-#: go/gofrontend/types.cc:576
29741+#: go/gofrontend/types.cc:594
29742 msgid "invalid comparison of non-comparable struct"
29743 msgstr "comparación inválida de struct que no es comparable"
29744
29745-#: go/gofrontend/types.cc:587
29746+#: go/gofrontend/types.cc:605
29747 msgid "invalid comparison of non-comparable array"
29748 msgstr "comparación inválida de matriz que no es comparable"
29749
29750-#: go/gofrontend/types.cc:699
29751+#: go/gofrontend/types.cc:636
29752+msgid "multiple value function call in single value context"
29753+msgstr "llamada a función de valor múltiple en un contexto de un solo valor"
29754+
29755+#: go/gofrontend/types.cc:723
29756 msgid "need explicit conversion"
29757 msgstr "necesita conversión implícita"
29758
29759-#: go/gofrontend/types.cc:701
29760-msgid "multiple value function call in single value context"
29761-msgstr "llamada a función de valor múltiple en un contexto de un solo valor"
29762-
29763-#: go/gofrontend/types.cc:709
29764+#: go/gofrontend/types.cc:730
29765 #, c-format
29766 msgid "cannot use type %s as type %s"
29767 msgstr "no se puede usar el tipo %s como tipo %s"
29768
29769-#: go/gofrontend/types.cc:2980
29770+#: go/gofrontend/types.cc:3205
29771 msgid "different receiver types"
29772 msgstr "tipos de receptor diferentes"
29773
29774-#: go/gofrontend/types.cc:3000 go/gofrontend/types.cc:3013
29775-#: go/gofrontend/types.cc:3028
29776+#: go/gofrontend/types.cc:3225 go/gofrontend/types.cc:3238
29777+#: go/gofrontend/types.cc:3253
29778 msgid "different number of parameters"
29779 msgstr "número diferente de parámetros"
29780
29781-#: go/gofrontend/types.cc:3021
29782+#: go/gofrontend/types.cc:3246
29783 msgid "different parameter types"
29784 msgstr "tipos de parámetro diferentes"
29785
29786-#: go/gofrontend/types.cc:3036
29787+#: go/gofrontend/types.cc:3261
29788 msgid "different varargs"
29789 msgstr "varargs diferentes"
29790
29791-#: go/gofrontend/types.cc:3045 go/gofrontend/types.cc:3058
29792-#: go/gofrontend/types.cc:3073
29793+#: go/gofrontend/types.cc:3270 go/gofrontend/types.cc:3283
29794+#: go/gofrontend/types.cc:3298
29795 msgid "different number of results"
29796 msgstr "número diferente de resultados"
29797
29798-#: go/gofrontend/types.cc:3066
29799+#: go/gofrontend/types.cc:3291
29800 msgid "different result types"
29801 msgstr "tipos de resultado diferentes"
29802
29803-#: go/gofrontend/types.cc:4054
29804+#: go/gofrontend/types.cc:4247
29805 #, c-format
29806 msgid "implicit assignment of %s%s%s hidden field %s%s%s"
29807 msgstr "asignación implícita de %s%s%s campo oculto %s%s%s"
29808
29809-#: go/gofrontend/types.cc:6423
29810+#: go/gofrontend/types.cc:6651
29811 #, c-format
29812 msgid "need explicit conversion; missing method %s%s%s"
29813 msgstr "se necesita conversión explícita; falta el método %s%s%s"
29814
29815-#: go/gofrontend/types.cc:6440 go/gofrontend/types.cc:6582
29816+#: go/gofrontend/types.cc:6668 go/gofrontend/types.cc:6810
29817 #, c-format
29818 msgid "incompatible type for method %s%s%s"
29819 msgstr "tipo incompatible para el método %s%s%s"
29820
29821-#: go/gofrontend/types.cc:6444 go/gofrontend/types.cc:6586
29822+#: go/gofrontend/types.cc:6672 go/gofrontend/types.cc:6814
29823 #, c-format
29824 msgid "incompatible type for method %s%s%s (%s)"
29825 msgstr "tipo incompatible para el método %s%s%s (%s)"
29826
29827-#: go/gofrontend/types.cc:6523 go/gofrontend/types.cc:6536
29828+#: go/gofrontend/types.cc:6751 go/gofrontend/types.cc:6764
29829 msgid "pointer to interface type has no methods"
29830 msgstr "el puntero a tipo de interfaz no tiene métodos"
29831
29832-#: go/gofrontend/types.cc:6525 go/gofrontend/types.cc:6538
29833+#: go/gofrontend/types.cc:6753 go/gofrontend/types.cc:6766
29834 msgid "type has no methods"
29835 msgstr "el tipo no tiene métodos"
29836
29837-#: go/gofrontend/types.cc:6559
29838+#: go/gofrontend/types.cc:6787
29839 #, c-format
29840 msgid "ambiguous method %s%s%s"
29841 msgstr "método ambiguo %s%s%s"
29842
29843-#: go/gofrontend/types.cc:6562
29844+#: go/gofrontend/types.cc:6790
29845 #, c-format
29846 msgid "missing method %s%s%s"
29847 msgstr "falta el método %s%s%s"
29848
29849-#: go/gofrontend/types.cc:6602
29850+#: go/gofrontend/types.cc:6830
29851 #, c-format
29852 msgid "method %s%s%s requires a pointer"
29853 msgstr "el método %s%s%s requiere un puntero"
29854@@ -12065,150 +12210,150 @@
29855 msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
29856 msgstr "el tercer argumento para %<__builtin_prefetch%> es inválido; se usa cero"
29857
29858-#: builtins.c:4214 gimplify.c:2406
29859+#: builtins.c:4243 gimplify.c:2407
29860 #, gcc-internal-format
29861 msgid "too few arguments to function %<va_start%>"
29862 msgstr "faltan argumentos para la función %<va_start%>"
29863
29864-#: builtins.c:4372
29865+#: builtins.c:4401
29866 #, gcc-internal-format
29867 msgid "first argument to %<va_arg%> not of type %<va_list%>"
29868 msgstr "el primer argumento para %<va_arg%> no es del tipo %<va_list%>"
29869
29870-#: builtins.c:4388
29871+#: builtins.c:4417
29872 #, gcc-internal-format
29873 msgid "%qT is promoted to %qT when passed through %<...%>"
29874 msgstr "%qT se promueve a %qT cuando pasa a través de %<...%>"
29875
29876-#: builtins.c:4393
29877+#: builtins.c:4422
29878 #, gcc-internal-format
29879 msgid "(so you should pass %qT not %qT to %<va_arg%>)"
29880 msgstr "(así que debe pasar %qT y no %qT a %<va_arg%>)"
29881
29882 #. We can, however, treat "undefined" any way we please.
29883 #. Call abort to encourage the user to fix the program.
29884-#: builtins.c:4400 c-typeck.c:2787
29885+#: builtins.c:4429 c-typeck.c:2787
29886 #, gcc-internal-format
29887 msgid "if this code is reached, the program will abort"
29888 msgstr "si se alcanza este código, el programa abortará"
29889
29890-#: builtins.c:4527
29891+#: builtins.c:4556
29892 #, gcc-internal-format
29893 msgid "invalid argument to %<__builtin_frame_address%>"
29894 msgstr "argumento inválido para %<__builtin_frame_address%>"
29895
29896-#: builtins.c:4529
29897+#: builtins.c:4558
29898 #, gcc-internal-format
29899 msgid "invalid argument to %<__builtin_return_address%>"
29900 msgstr "argumento inválido para %<__builtin_return_address%>"
29901
29902-#: builtins.c:4542
29903+#: builtins.c:4571
29904 #, gcc-internal-format
29905 msgid "unsupported argument to %<__builtin_frame_address%>"
29906 msgstr "argumento no admitido para %<__builtin_frame_address%>"
29907
29908-#: builtins.c:4544
29909+#: builtins.c:4573
29910 #, gcc-internal-format
29911 msgid "unsupported argument to %<__builtin_return_address%>"
29912 msgstr "argumento no admitido para %<__builtin_return_address%>"
29913
29914-#: builtins.c:4808
29915+#: builtins.c:4837
29916 #, gcc-internal-format
29917 msgid "both arguments to %<__builtin___clear_cache%> must be pointers"
29918 msgstr "ambos argumentos de %<__builtin_clear_cache%> deben ser punteros"
29919
29920-#: builtins.c:4903
29921+#: builtins.c:4937
29922 #, gcc-internal-format
29923 msgid "trampoline generated for nested function %qD"
29924 msgstr "se generó un trampolín para la función anidada %qD"
29925
29926-#: builtins.c:5198 builtins.c:5211
29927+#: builtins.c:5233 builtins.c:5246
29928 #, gcc-internal-format
29929 msgid "%qD changed semantics in GCC 4.4"
29930 msgstr "%qD cambió su semántica en GCC 4.4"
29931
29932-#: builtins.c:5310
29933+#: builtins.c:5345
29934 #, gcc-internal-format
29935 msgid "invalid memory model argument to builtin"
29936 msgstr "argumento de modelo de memoria inválido para la función interna"
29937
29938-#: builtins.c:5330
29939+#: builtins.c:5365
29940 #, gcc-internal-format
29941 msgid "invalid memory model for %<__atomic_exchange%>"
29942 msgstr "modelo de memoria inválido para %<__atomic_exchange%>"
29943
29944-#: builtins.c:5366
29945+#: builtins.c:5401
29946 #, gcc-internal-format
29947 msgid "invalid failure memory model for %<__atomic_compare_exchange%>"
29948 msgstr "falla de modelo de memoria inválido para %<__atomic_compare_exchange%>"
29949
29950-#: builtins.c:5372
29951+#: builtins.c:5407
29952 #, gcc-internal-format
29953 msgid "failure memory model cannot be stronger than success memory model for %<__atomic_compare_exchange%>"
29954 msgstr "la falla de modelo de memoria no puede ser más fuerte que el modelo de memoria exitoso para %<__atomic_compare_exchange%>"
29955
29956-#: builtins.c:5418
29957+#: builtins.c:5453
29958 #, gcc-internal-format
29959 msgid "invalid memory model for %<__atomic_load%>"
29960 msgstr "modelo de memoria inválido para %<__atomic_load%>"
29961
29962-#: builtins.c:5448 builtins.c:5554
29963+#: builtins.c:5483 builtins.c:5589
29964 #, gcc-internal-format
29965 msgid "invalid memory model for %<__atomic_store%>"
29966 msgstr "modelo de memoria inválido para %<__atomic_store%>"
29967
29968-#: builtins.c:5663
29969+#: builtins.c:5698
29970 #, gcc-internal-format
29971 msgid "non-constant argument 1 to __atomic_always_lock_free"
29972 msgstr "el argumento 1 para __atomic_always_lock_free no es una constante"
29973
29974-#: builtins.c:5705
29975+#: builtins.c:5740
29976 #, gcc-internal-format
29977 msgid "non-integer argument 1 to __atomic_is_lock_free"
29978 msgstr "el argumento 1 para __atomic_is_lock_free no es un entero"
29979
29980 #. All valid uses of __builtin_va_arg_pack () are removed during
29981 #. inlining.
29982-#: builtins.c:5989 expr.c:9944
29983+#: builtins.c:6023 expr.c:9989
29984 #, gcc-internal-format
29985 msgid "%Kinvalid use of %<__builtin_va_arg_pack ()%>"
29986 msgstr "%Kuso inválido de %<__builtin_va_arg_pack ()%>"
29987
29988 #. All valid uses of __builtin_va_arg_pack_len () are removed during
29989 #. inlining.
29990-#: builtins.c:5995
29991+#: builtins.c:6029
29992 #, gcc-internal-format
29993 msgid "%Kinvalid use of %<__builtin_va_arg_pack_len ()%>"
29994 msgstr "%Kuso inválido de %<__builtin_va_arg_pack_len ()%>"
29995
29996-#: builtins.c:6234
29997+#: builtins.c:6268
29998 #, gcc-internal-format
29999 msgid "%<__builtin_longjmp%> second argument must be 1"
30000 msgstr "el segundo argumento de %<__builtin_longjump%> debe ser 1"
30001
30002-#: builtins.c:7077
30003+#: builtins.c:7113
30004 #, gcc-internal-format
30005 msgid "target format does not support infinity"
30006 msgstr "el formato objetivo no soporta infinito"
30007
30008-#: builtins.c:12058
30009+#: builtins.c:12094
30010 #, gcc-internal-format
30011 msgid "%<va_start%> used in function with fixed args"
30012 msgstr "se usó %<va_start%> en una función con argumentos fijos"
30013
30014-#: builtins.c:12066
30015+#: builtins.c:12102
30016 #, gcc-internal-format
30017 msgid "wrong number of arguments to function %<va_start%>"
30018 msgstr "número erróneo argumentos para la función %<va_start%>"
30019
30020 #. Evidently an out of date version of <stdarg.h>; can't validate
30021 #. va_start's second argument, but can still work as intended.
30022-#: builtins.c:12079
30023+#: builtins.c:12115
30024 #, gcc-internal-format
30025 msgid "%<__builtin_next_arg%> called without an argument"
30026 msgstr "se llamó a %<__builtin_next_arg%> sin un argumento"
30027
30028-#: builtins.c:12084
30029+#: builtins.c:12120
30030 #, gcc-internal-format
30031 msgid "wrong number of arguments to function %<__builtin_next_arg%>"
30032 msgstr "número erróneo de argumentos para la función %<__builtin_next_arg%>"
30033@@ -12218,42 +12363,42 @@
30034 #. argument. We just warn and set the arg to be the last
30035 #. argument so that we will get wrong-code because of
30036 #. it.
30037-#: builtins.c:12114
30038+#: builtins.c:12150
30039 #, gcc-internal-format
30040 msgid "second parameter of %<va_start%> not last named argument"
30041 msgstr "el segundo parámetro de %<va_start%> no es el último argumento nombrado"
30042
30043-#: builtins.c:12124
30044+#: builtins.c:12160
30045 #, gcc-internal-format
30046 msgid "undefined behaviour when second parameter of %<va_start%> is declared with %<register%> storage"
30047 msgstr "la conducta es indefinida cuando el segundo parámetro de %<va_start%> se declara con almacenamiento %<register%>"
30048
30049-#: builtins.c:12360
30050+#: builtins.c:12396
30051 #, gcc-internal-format
30052 msgid "%Kfirst argument of %D must be a pointer, second integer constant"
30053 msgstr "%Kel primer argumento de %D debe ser un puntero, el segundo una constante entera"
30054
30055-#: builtins.c:12373
30056+#: builtins.c:12409
30057 #, gcc-internal-format
30058 msgid "%Klast argument of %D is not integer constant between 0 and 3"
30059 msgstr "%Kel último argumento de %D no es una constante entera entre 0 y 3"
30060
30061-#: builtins.c:12418 builtins.c:12569 builtins.c:12626
30062+#: builtins.c:12454 builtins.c:12605 builtins.c:12662
30063 #, gcc-internal-format
30064 msgid "%Kcall to %D will always overflow destination buffer"
30065 msgstr "%Kla llamada a %D siempre desbordará el almacenamiento temporal destino"
30066
30067-#: builtins.c:12559
30068+#: builtins.c:12595
30069 #, gcc-internal-format
30070 msgid "%Kcall to %D might overflow destination buffer"
30071 msgstr "%Kla llamada a %D puede desbordar el almacenamiento temporal destino"
30072
30073-#: builtins.c:12647
30074+#: builtins.c:12683
30075 #, gcc-internal-format
30076 msgid "%Kattempt to free a non-heap object %qD"
30077 msgstr "%Kse intenta liberar un objeto %qD que no es de pila"
30078
30079-#: builtins.c:12650
30080+#: builtins.c:12686
30081 #, gcc-internal-format
30082 msgid "%Kattempt to free a non-heap object"
30083 msgstr "%Kse intenta liberar un objeto que no es de pila"
30084@@ -12324,7 +12469,7 @@
30085 msgid "type of array %q+D completed incompatibly with implicit initialization"
30086 msgstr "el tipo de la matriz %q+D se completó de forma incompatible con la inicialización implícita"
30087
30088-#: c-decl.c:1462 c-decl.c:5851 c-decl.c:6681 c-decl.c:7393
30089+#: c-decl.c:1462 c-decl.c:5852 c-decl.c:6682 c-decl.c:7394
30090 #, gcc-internal-format
30091 msgid "originally defined here"
30092 msgstr "se definió originalmente aquí"
30093@@ -12386,7 +12531,7 @@
30094 msgid "built-in function %q+D declared as non-function"
30095 msgstr "la función interna %q+D no se declara como función"
30096
30097-#: c-decl.c:1674 c-decl.c:1847 c-decl.c:2558
30098+#: c-decl.c:1674 c-decl.c:1847 c-decl.c:2559
30099 #, gcc-internal-format
30100 msgid "declaration of %q+D shadows a built-in function"
30101 msgstr "la declaración de %q+D oscurece una función interna"
30102@@ -12519,212 +12664,212 @@
30103 msgid "redundant redeclaration of %q+D"
30104 msgstr "redeclaración redundante de %q+D"
30105
30106-#: c-decl.c:2545
30107+#: c-decl.c:2546
30108 #, gcc-internal-format
30109 msgid "declaration of %q+D shadows previous non-variable"
30110 msgstr "la declaración de %q+D oscurece a una declaración previa que no es variable"
30111
30112-#: c-decl.c:2550
30113+#: c-decl.c:2551
30114 #, gcc-internal-format
30115 msgid "declaration of %q+D shadows a parameter"
30116 msgstr "la declaración de %q+D oscurece un parámetro"
30117
30118-#: c-decl.c:2553
30119+#: c-decl.c:2554
30120 #, gcc-internal-format
30121 msgid "declaration of %q+D shadows a global declaration"
30122 msgstr "la declaración de %q+D oscurece a una declaración global"
30123
30124-#: c-decl.c:2563
30125+#: c-decl.c:2564
30126 #, gcc-internal-format
30127 msgid "declaration of %q+D shadows a previous local"
30128 msgstr "la declaración de %q+D oscurece a una declaración local previa"
30129
30130-#: c-decl.c:2567 cp/name-lookup.c:1150 cp/name-lookup.c:1193
30131+#: c-decl.c:2568 cp/name-lookup.c:1150 cp/name-lookup.c:1193
30132 #, gcc-internal-format
30133 msgid "shadowed declaration is here"
30134 msgstr "aquí está la declaración oscurecida"
30135
30136-#: c-decl.c:2694
30137+#: c-decl.c:2695
30138 #, gcc-internal-format
30139 msgid "nested extern declaration of %qD"
30140 msgstr "declaración externa anidada de %qD"
30141
30142-#: c-decl.c:2870 c-decl.c:2873
30143+#: c-decl.c:2871 c-decl.c:2874
30144 #, gcc-internal-format
30145 msgid "implicit declaration of function %qE"
30146 msgstr "declaración implícita de la función %qE"
30147
30148-#: c-decl.c:2936
30149+#: c-decl.c:2937
30150 #, gcc-internal-format
30151 msgid "incompatible implicit declaration of built-in function %qD"
30152 msgstr "declaración implícita incompatible de la función interna %qD"
30153
30154-#: c-decl.c:2945
30155+#: c-decl.c:2946
30156 #, gcc-internal-format
30157 msgid "incompatible implicit declaration of function %qD"
30158 msgstr "declaración implícita incompatible de la función %qD"
30159
30160-#: c-decl.c:2998
30161+#: c-decl.c:2999
30162 #, gcc-internal-format
30163 msgid "%qE undeclared here (not in a function)"
30164 msgstr "%qE no se declaró aquí (no en una función)"
30165
30166-#: c-decl.c:3004
30167+#: c-decl.c:3005
30168 #, gcc-internal-format
30169 msgid "%qE undeclared (first use in this function)"
30170 msgstr "%qE no se declaró aquí (primer uso en esta función)"
30171
30172-#: c-decl.c:3007
30173+#: c-decl.c:3008
30174 #, gcc-internal-format
30175 msgid "each undeclared identifier is reported only once for each function it appears in"
30176 msgstr "cada identificador sin declarar se reporta sólo una vez para cada función en el que aparece"
30177
30178-#: c-decl.c:3057 cp/decl.c:2593
30179+#: c-decl.c:3058 cp/decl.c:2598
30180 #, gcc-internal-format
30181 msgid "label %qE referenced outside of any function"
30182 msgstr "la etiqueta %qE es referenciada fuera de cualquier función"
30183
30184-#: c-decl.c:3093
30185+#: c-decl.c:3094
30186 #, gcc-internal-format
30187 msgid "jump into scope of identifier with variably modified type"
30188 msgstr "salto al ámbito de un identificador con tipo modificado variablemente"
30189
30190-#: c-decl.c:3096
30191+#: c-decl.c:3097
30192 #, gcc-internal-format
30193 msgid "jump skips variable initialization"
30194 msgstr "el salto evita la inicialización de la variable"
30195
30196-#: c-decl.c:3097 c-decl.c:3153 c-decl.c:3242
30197+#: c-decl.c:3098 c-decl.c:3154 c-decl.c:3243
30198 #, gcc-internal-format
30199 msgid "label %qD defined here"
30200 msgstr "la etiqueta %qD se define aquí"
30201
30202-#: c-decl.c:3098 c-decl.c:3370
30203+#: c-decl.c:3099 c-decl.c:3371
30204 #, gcc-internal-format
30205 msgid "%qD declared here"
30206 msgstr "%qD se declara aquí"
30207
30208-#: c-decl.c:3152 c-decl.c:3241
30209+#: c-decl.c:3153 c-decl.c:3242
30210 #, gcc-internal-format
30211 msgid "jump into statement expression"
30212 msgstr "salto a una expresión de declaración"
30213
30214-#: c-decl.c:3174
30215+#: c-decl.c:3175
30216 #, gcc-internal-format
30217 msgid "duplicate label declaration %qE"
30218 msgstr "declaración duplicada de la etiqueta %qE"
30219
30220-#: c-decl.c:3272 cp/decl.c:2916
30221+#: c-decl.c:3273 cp/decl.c:2921
30222 #, gcc-internal-format
30223 msgid "duplicate label %qD"
30224 msgstr "etiqueta %qD duplicada"
30225
30226-#: c-decl.c:3303
30227+#: c-decl.c:3304
30228 #, gcc-internal-format
30229 msgid "traditional C lacks a separate namespace for labels, identifier %qE conflicts"
30230 msgstr "C tradicional carece de un espacio de nombres separado para etiquetas, el identificador %qE genera un conflicto con"
30231
30232-#: c-decl.c:3368
30233+#: c-decl.c:3369
30234 #, gcc-internal-format
30235 msgid "switch jumps over variable initialization"
30236 msgstr "el switch salta sobre la inicialización de la variable"
30237
30238-#: c-decl.c:3369 c-decl.c:3380
30239+#: c-decl.c:3370 c-decl.c:3381
30240 #, gcc-internal-format
30241 msgid "switch starts here"
30242 msgstr "switch inicia aquí"
30243
30244-#: c-decl.c:3379
30245+#: c-decl.c:3380
30246 #, gcc-internal-format
30247 msgid "switch jumps into statement expression"
30248 msgstr "switch salta dentro de una expresión de declaración"
30249
30250-#: c-decl.c:3450
30251+#: c-decl.c:3451
30252 #, gcc-internal-format
30253 msgid "%qE defined as wrong kind of tag"
30254 msgstr "%qE definido como un tipo erróneo de etiqueta"
30255
30256-#: c-decl.c:3673 c-typeck.c:10999 c-family/c-common.c:4164
30257+#: c-decl.c:3674 c-typeck.c:10999 c-family/c-common.c:4164
30258 #, gcc-internal-format
30259 msgid "invalid use of %<restrict%>"
30260 msgstr "uso inválido de %<restrict%>"
30261
30262-#: c-decl.c:3683
30263+#: c-decl.c:3684
30264 #, gcc-internal-format
30265 msgid "unnamed struct/union that defines no instances"
30266 msgstr "struct/union sin nombre que no define ninguna instancia"
30267
30268-#: c-decl.c:3693
30269+#: c-decl.c:3694
30270 #, gcc-internal-format
30271 msgid "empty declaration with storage class specifier does not redeclare tag"
30272 msgstr "una declaración vacía con especificadores de clase de almacenamiento no redeclara la etiqueta"
30273
30274-#: c-decl.c:3707
30275+#: c-decl.c:3708
30276 #, gcc-internal-format
30277 msgid "empty declaration with type qualifier does not redeclare tag"
30278 msgstr "una declaración vacía con calificador de tipo no redeclara la etiqueta"
30279
30280-#: c-decl.c:3718
30281+#: c-decl.c:3719
30282 #, gcc-internal-format
30283 msgid "empty declaration with %<_Alignas%> does not redeclare tag"
30284 msgstr "una declaración vacía con %<_Alignas%> no redeclara la etiqueta"
30285
30286-#: c-decl.c:3740 c-decl.c:3747
30287+#: c-decl.c:3741 c-decl.c:3748
30288 #, gcc-internal-format
30289 msgid "useless type name in empty declaration"
30290 msgstr "nombre de tipo sin uso en una declaración vacía"
30291
30292-#: c-decl.c:3755
30293+#: c-decl.c:3756
30294 #, gcc-internal-format
30295 msgid "%<inline%> in empty declaration"
30296 msgstr "%<inline%> en una declaración vacía"
30297
30298-#: c-decl.c:3761
30299+#: c-decl.c:3762
30300 #, gcc-internal-format
30301 msgid "%<_Noreturn%> in empty declaration"
30302 msgstr "%<_Noreturn%> en una declaración vacía"
30303
30304-#: c-decl.c:3767
30305+#: c-decl.c:3768
30306 #, gcc-internal-format
30307 msgid "%<auto%> in file-scope empty declaration"
30308 msgstr "%<auto%> en una declaración vacía en ámbito de fichero"
30309
30310-#: c-decl.c:3773
30311+#: c-decl.c:3774
30312 #, gcc-internal-format
30313 msgid "%<register%> in file-scope empty declaration"
30314 msgstr "%<register%> en una declaración vacía en ámbito de fichero"
30315
30316-#: c-decl.c:3779
30317+#: c-decl.c:3780
30318 #, gcc-internal-format
30319 msgid "useless storage class specifier in empty declaration"
30320 msgstr "especificador de clase de almacenamiento sin uso en una declaración vacía"
30321
30322-#: c-decl.c:3785
30323+#: c-decl.c:3786
30324 #, gcc-internal-format
30325 msgid "useless %<__thread%> in empty declaration"
30326 msgstr "%<__thread%> sin uso en la declaración vacía"
30327
30328-#: c-decl.c:3794
30329+#: c-decl.c:3795
30330 #, gcc-internal-format
30331 msgid "useless type qualifier in empty declaration"
30332 msgstr "calificador de tipo sin uso en una declaración vacía"
30333
30334-#: c-decl.c:3800
30335+#: c-decl.c:3801
30336 #, gcc-internal-format
30337 msgid "useless %<_Alignas%> in empty declaration"
30338 msgstr "%<_Alignas%> sin uso en la declaración vacía"
30339
30340-#: c-decl.c:3807 c-parser.c:1498
30341+#: c-decl.c:3808 c-parser.c:1498
30342 #, gcc-internal-format
30343 msgid "empty declaration"
30344 msgstr "declaración vacía"
30345
30346-#: c-decl.c:3879
30347+#: c-decl.c:3880
30348 #, gcc-internal-format
30349 msgid "ISO C90 does not support %<static%> or type qualifiers in parameter array declarators"
30350 msgstr "ISO C90 no admite %<static%> o calificadores de tipo en los declaradores de parámetros de matrices"
30351
30352-#: c-decl.c:3883
30353+#: c-decl.c:3884
30354 #, gcc-internal-format
30355 msgid "ISO C90 does not support %<[*]%> array declarators"
30356 msgstr "ISO C90 no admite declaradores de matriz %<[*]%>"
30357@@ -12732,28 +12877,28 @@
30358 #. C99 6.7.5.2p4
30359 #. A function definition isn't function prototype scope C99 6.2.1p4.
30360 #. C99 6.7.5.2p4
30361-#: c-decl.c:3890 c-decl.c:6249
30362+#: c-decl.c:3891 c-decl.c:6250
30363 #, gcc-internal-format
30364 msgid "%<[*]%> not allowed in other than function prototype scope"
30365 msgstr "no se permite %<[*]%> en otro lugar que no sea el ámbido de prototipo de función"
30366
30367-#: c-decl.c:4003
30368+#: c-decl.c:4004
30369 #, gcc-internal-format
30370 msgid "%q+D is usually a function"
30371 msgstr "%q+D generalmente es una función"
30372
30373-#: c-decl.c:4012
30374+#: c-decl.c:4013
30375 #, gcc-internal-format
30376 msgid "typedef %qD is initialized (use __typeof__ instead)"
30377 msgstr "typedef %qD está inicializado (utilice __typeof__ en su lugar)"
30378
30379-#: c-decl.c:4017
30380+#: c-decl.c:4018
30381 #, gcc-internal-format
30382 msgid "function %qD is initialized like a variable"
30383 msgstr "la función %qD está inicializada como una variable"
30384
30385 #. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
30386-#: c-decl.c:4023
30387+#: c-decl.c:4024
30388 #, gcc-internal-format
30389 msgid "parameter %qD is initialized"
30390 msgstr "el parámetro %qD está inicializado"
30391@@ -12762,272 +12907,272 @@
30392 #. of VLAs themselves count as VLAs, it does not make
30393 #. sense to permit them to be initialized given that
30394 #. ordinary VLAs may not be initialized.
30395-#: c-decl.c:4042 c-decl.c:4057 c-typeck.c:6374
30396+#: c-decl.c:4043 c-decl.c:4058 c-typeck.c:6374
30397 #, gcc-internal-format
30398 msgid "variable-sized object may not be initialized"
30399 msgstr "un objeto de tamaño variable puede no ser inicializado"
30400
30401-#: c-decl.c:4048
30402+#: c-decl.c:4049
30403 #, gcc-internal-format
30404 msgid "variable %qD has initializer but incomplete type"
30405 msgstr "la variable %qD tiene inicializador pero de tipo de dato incompleto"
30406
30407-#: c-decl.c:4137 cp/decl.c:4418 cp/decl.c:12643
30408+#: c-decl.c:4138 cp/decl.c:4428 cp/decl.c:12657
30409 #, gcc-internal-format
30410 msgid "inline function %q+D given attribute noinline"
30411 msgstr "se le dió a la función incluída en línea %q+D un atributo noinline"
30412
30413-#: c-decl.c:4188
30414+#: c-decl.c:4189
30415 #, gcc-internal-format
30416 msgid "uninitialized const member in %qT is invalid in C++"
30417 msgstr "el miembro const sin inicializar en %qT es inválido en C++"
30418
30419-#: c-decl.c:4190 cp/init.c:2115 cp/init.c:2130
30420+#: c-decl.c:4191 cp/init.c:2115 cp/init.c:2130
30421 #, gcc-internal-format
30422 msgid "%qD should be initialized"
30423 msgstr "%qD se debe inicializar"
30424
30425-#: c-decl.c:4268
30426+#: c-decl.c:4269
30427 #, gcc-internal-format
30428 msgid "initializer fails to determine size of %q+D"
30429 msgstr "el inicializador no puede determinar el tamaño de %q+D"
30430
30431-#: c-decl.c:4273
30432+#: c-decl.c:4274
30433 #, gcc-internal-format
30434 msgid "array size missing in %q+D"
30435 msgstr "falta el tamaño de la matriz en %q+D"
30436
30437-#: c-decl.c:4285
30438+#: c-decl.c:4286
30439 #, gcc-internal-format
30440 msgid "zero or negative size array %q+D"
30441 msgstr "matriz %q+D de tamaño cero o negativo"
30442
30443-#: c-decl.c:4340 varasm.c:1966
30444+#: c-decl.c:4341 varasm.c:1966
30445 #, gcc-internal-format
30446 msgid "storage size of %q+D isn%'t known"
30447 msgstr "no se conoce el tamaño de almacenamiento de %q+D"
30448
30449-#: c-decl.c:4351
30450+#: c-decl.c:4352
30451 #, gcc-internal-format
30452 msgid "storage size of %q+D isn%'t constant"
30453 msgstr "el tamaño de almacenamiento de %q+D no es constante"
30454
30455-#: c-decl.c:4401
30456+#: c-decl.c:4402
30457 #, gcc-internal-format
30458 msgid "ignoring asm-specifier for non-static local variable %q+D"
30459 msgstr "se descarta el especificador asm para la variable local que no es estática %q+D"
30460
30461-#: c-decl.c:4431
30462+#: c-decl.c:4432
30463 #, gcc-internal-format
30464 msgid "cannot put object with volatile field into register"
30465 msgstr "no se puede poner un objeto con un campo volatile en register"
30466
30467-#: c-decl.c:4518
30468+#: c-decl.c:4519
30469 #, gcc-internal-format
30470 msgid "uninitialized const %qD is invalid in C++"
30471 msgstr "const %qD sin inicializar es inválida en C++"
30472
30473-#: c-decl.c:4576
30474+#: c-decl.c:4577
30475 #, gcc-internal-format
30476 msgid "ISO C forbids forward parameter declarations"
30477 msgstr "ISO C prohíbe declaraciones adelantadas de parámetros"
30478
30479-#: c-decl.c:4666
30480+#: c-decl.c:4667
30481 #, gcc-internal-format
30482 msgid "defining a type in a compound literal is invalid in C++"
30483 msgstr "definir un tipo en una literal compuesta es inválido en C++"
30484
30485-#: c-decl.c:4718 c-decl.c:4733
30486+#: c-decl.c:4719 c-decl.c:4734
30487 #, gcc-internal-format
30488 msgid "bit-field %qs width not an integer constant"
30489 msgstr "la anchura del campo de bits %qs no es una constante entera"
30490
30491-#: c-decl.c:4728
30492+#: c-decl.c:4729
30493 #, gcc-internal-format
30494 msgid "bit-field %qs width not an integer constant expression"
30495 msgstr "la anchura del campo de bits %qs no es una expresión constante entera"
30496
30497-#: c-decl.c:4739
30498+#: c-decl.c:4740
30499 #, gcc-internal-format
30500 msgid "negative width in bit-field %qs"
30501 msgstr "anchura negativa en el campo de bit %qs"
30502
30503-#: c-decl.c:4744
30504+#: c-decl.c:4745
30505 #, gcc-internal-format
30506 msgid "zero width for bit-field %qs"
30507 msgstr "anchura cero para el campo de bits %qs"
30508
30509-#: c-decl.c:4754
30510+#: c-decl.c:4755
30511 #, gcc-internal-format
30512 msgid "bit-field %qs has invalid type"
30513 msgstr "el campo de bits %qs tiene un tipo inválido"
30514
30515-#: c-decl.c:4764
30516+#: c-decl.c:4765
30517 #, gcc-internal-format
30518 msgid "type of bit-field %qs is a GCC extension"
30519 msgstr "el tipo de campo de bits %qs es una extensión de GCC"
30520
30521-#: c-decl.c:4770
30522+#: c-decl.c:4771
30523 #, gcc-internal-format
30524 msgid "width of %qs exceeds its type"
30525 msgstr "la anchura de %qs excede su tipo"
30526
30527-#: c-decl.c:4783
30528+#: c-decl.c:4784
30529 #, gcc-internal-format
30530 msgid "%qs is narrower than values of its type"
30531 msgstr "%qs es más estrecho que los valores de su tipo"
30532
30533-#: c-decl.c:4802
30534+#: c-decl.c:4803
30535 #, gcc-internal-format
30536 msgid "ISO C90 forbids array %qE whose size can%'t be evaluated"
30537 msgstr "ISO C90 prohíbe la matriz %qE cuyo tamaño no se puede evaluar"
30538
30539-#: c-decl.c:4806
30540+#: c-decl.c:4807
30541 #, gcc-internal-format
30542 msgid "ISO C90 forbids array whose size can%'t be evaluated"
30543 msgstr "ISO C90 prohíbe la matriz cuyo tamaño no se puede evaluar"
30544
30545-#: c-decl.c:4813
30546+#: c-decl.c:4814
30547 #, gcc-internal-format
30548 msgid "ISO C90 forbids variable length array %qE"
30549 msgstr "ISO C90 prohíbe la matriz de longitud variable %qE"
30550
30551-#: c-decl.c:4816
30552+#: c-decl.c:4817
30553 #, gcc-internal-format
30554 msgid "ISO C90 forbids variable length array"
30555 msgstr "ISO C90 prohíbe la matriz de longitud variable"
30556
30557-#: c-decl.c:4825
30558+#: c-decl.c:4826
30559 #, gcc-internal-format
30560 msgid "the size of array %qE can%'t be evaluated"
30561 msgstr "el tamaño de la matriz %qE no se puede evaluar"
30562
30563-#: c-decl.c:4829
30564+#: c-decl.c:4830
30565 #, gcc-internal-format
30566 msgid "the size of array can %'t be evaluated"
30567 msgstr "el tamaño de la matriz no se puede evaluar"
30568
30569-#: c-decl.c:4835
30570+#: c-decl.c:4836
30571 #, gcc-internal-format
30572 msgid "variable length array %qE is used"
30573 msgstr "se usó la matriz de longitud variable %qE"
30574
30575-#: c-decl.c:4839 cp/decl.c:8053
30576+#: c-decl.c:4840 cp/decl.c:8063
30577 #, gcc-internal-format
30578 msgid "variable length array is used"
30579 msgstr "se usó la matriz de longitud variable"
30580
30581-#: c-decl.c:4998 c-decl.c:5346 c-decl.c:5356
30582+#: c-decl.c:4999 c-decl.c:5347 c-decl.c:5357
30583 #, gcc-internal-format
30584 msgid "variably modified %qE at file scope"
30585 msgstr "%qE variablemente modificado en el ámbito del fichero"
30586
30587-#: c-decl.c:5000
30588+#: c-decl.c:5001
30589 #, gcc-internal-format
30590 msgid "variably modified field at file scope"
30591 msgstr "campo variablemente modificado en el ámbito del fichero"
30592
30593-#: c-decl.c:5020
30594+#: c-decl.c:5021
30595 #, gcc-internal-format
30596 msgid "type defaults to %<int%> in declaration of %qE"
30597 msgstr "el tipo de dato por defecto es %<int%> en la declaración de %qE"
30598
30599-#: c-decl.c:5024
30600+#: c-decl.c:5025
30601 #, gcc-internal-format
30602 msgid "type defaults to %<int%> in type name"
30603 msgstr "el tipo de dato por defecto es %<int%> en el nombre de tipo"
30604
30605-#: c-decl.c:5057
30606+#: c-decl.c:5058
30607 #, gcc-internal-format
30608 msgid "duplicate %<const%>"
30609 msgstr "%<const%> duplicado"
30610
30611-#: c-decl.c:5059
30612+#: c-decl.c:5060
30613 #, gcc-internal-format
30614 msgid "duplicate %<restrict%>"
30615 msgstr "%<restrict%> duplicado"
30616
30617-#: c-decl.c:5061
30618+#: c-decl.c:5062
30619 #, gcc-internal-format
30620 msgid "duplicate %<volatile%>"
30621 msgstr "%<volatile%> duplicado"
30622
30623-#: c-decl.c:5065
30624+#: c-decl.c:5066
30625 #, gcc-internal-format, gfc-internal-format
30626 msgid "conflicting named address spaces (%s vs %s)"
30627 msgstr "espacios de direcciones nombrados generan un conflicto (%s vs %s)"
30628
30629-#: c-decl.c:5089
30630+#: c-decl.c:5090
30631 #, gcc-internal-format
30632 msgid "function definition declared %<auto%>"
30633 msgstr "la definición de la función se declaró como %<auto%>"
30634
30635-#: c-decl.c:5091
30636+#: c-decl.c:5092
30637 #, gcc-internal-format
30638 msgid "function definition declared %<register%>"
30639 msgstr "la definición de la función se declaró como %<register%>"
30640
30641-#: c-decl.c:5093
30642+#: c-decl.c:5094
30643 #, gcc-internal-format
30644 msgid "function definition declared %<typedef%>"
30645 msgstr "la definición de la función se declaró como %<typedef%>"
30646
30647-#: c-decl.c:5095
30648+#: c-decl.c:5096
30649 #, gcc-internal-format
30650 msgid "function definition declared %<__thread%>"
30651 msgstr "la definición de la función se declaró como %<__thread%>"
30652
30653-#: c-decl.c:5112
30654+#: c-decl.c:5113
30655 #, gcc-internal-format
30656 msgid "storage class specified for structure field %qE"
30657 msgstr "se especificó una clase de almacenamiento para el campo de la estructura %qE"
30658
30659-#: c-decl.c:5115
30660+#: c-decl.c:5116
30661 #, gcc-internal-format
30662 msgid "storage class specified for structure field"
30663 msgstr "se especificó una clase de almacenamiento para el campo de la estructura"
30664
30665-#: c-decl.c:5119
30666+#: c-decl.c:5120
30667 #, gcc-internal-format
30668 msgid "storage class specified for parameter %qE"
30669 msgstr "se especificó una clase de almacenamiento para el parámetro %qE"
30670
30671-#: c-decl.c:5122
30672+#: c-decl.c:5123
30673 #, gcc-internal-format
30674 msgid "storage class specified for unnamed parameter"
30675 msgstr "se especificó una clase de almacenamiento para un parámetro sin nombre"
30676
30677-#: c-decl.c:5125 cp/decl.c:9020
30678+#: c-decl.c:5126 cp/decl.c:9030
30679 #, gcc-internal-format
30680 msgid "storage class specified for typename"
30681 msgstr "se especificó una clase de almacenamiento para el nombre de tipo"
30682
30683-#: c-decl.c:5142
30684+#: c-decl.c:5143
30685 #, gcc-internal-format
30686 msgid "%qE initialized and declared %<extern%>"
30687 msgstr "%qE se inicializó y declaró como %<extern%>"
30688
30689-#: c-decl.c:5146
30690+#: c-decl.c:5147
30691 #, gcc-internal-format
30692 msgid "%qE has both %<extern%> and initializer"
30693 msgstr "%qE tiene %<extern%> e inicializador al mismo tiempo"
30694
30695-#: c-decl.c:5151
30696+#: c-decl.c:5152
30697 #, gcc-internal-format
30698 msgid "file-scope declaration of %qE specifies %<auto%>"
30699 msgstr "la declaración del ámbito de fichero de %qE especifica %<auto%>"
30700
30701-#: c-decl.c:5155
30702+#: c-decl.c:5156
30703 #, gcc-internal-format
30704 msgid "file-scope declaration of %qE specifies %<register%>"
30705 msgstr "la declaración del ámbito de fichero de %qE especifica %<register%>"
30706
30707-#: c-decl.c:5160
30708+#: c-decl.c:5161
30709 #, gcc-internal-format
30710 msgid "nested function %qE declared %<extern%>"
30711 msgstr "la función anidada %qE se declaró %<extern%>"
30712
30713-#: c-decl.c:5163
30714+#: c-decl.c:5164
30715 #, gcc-internal-format
30716 msgid "function-scope %qE implicitly auto and declared %<__thread%>"
30717 msgstr "el ámbito de la función %qE es implícitamente auto y declarado %<__thread%>"
30718@@ -13035,657 +13180,657 @@
30719 #. Only the innermost declarator (making a parameter be of
30720 #. array type which is converted to pointer type)
30721 #. may have static or type qualifiers.
30722-#: c-decl.c:5210 c-decl.c:5540
30723+#: c-decl.c:5211 c-decl.c:5541
30724 #, gcc-internal-format
30725 msgid "static or type qualifiers in non-parameter array declarator"
30726 msgstr "static o calificadores de tipo en un declarador de matriz que no es parámetro"
30727
30728-#: c-decl.c:5258
30729+#: c-decl.c:5259
30730 #, gcc-internal-format
30731 msgid "declaration of %qE as array of voids"
30732 msgstr "la declaración de %qE como una matriz de voids"
30733
30734-#: c-decl.c:5260
30735+#: c-decl.c:5261
30736 #, gcc-internal-format
30737 msgid "declaration of type name as array of voids"
30738 msgstr "declaración de nombre de tipo como una matriz de voids"
30739
30740-#: c-decl.c:5267
30741+#: c-decl.c:5268
30742 #, gcc-internal-format
30743 msgid "declaration of %qE as array of functions"
30744 msgstr "declaración de %qE como una matriz de funciones"
30745
30746-#: c-decl.c:5270
30747+#: c-decl.c:5271
30748 #, gcc-internal-format
30749 msgid "declaration of type name as array of functions"
30750 msgstr "declaración de nombre de tipo como una matriz de funciones"
30751
30752-#: c-decl.c:5277 c-decl.c:7177
30753+#: c-decl.c:5278 c-decl.c:7178
30754 #, gcc-internal-format
30755 msgid "invalid use of structure with flexible array member"
30756 msgstr "uso inválido de una estructura con un miembro de matriz flexible"
30757
30758-#: c-decl.c:5303
30759+#: c-decl.c:5304
30760 #, gcc-internal-format
30761 msgid "size of array %qE has non-integer type"
30762 msgstr "el tamaño de la matriz %qE es de un tipo no entero"
30763
30764-#: c-decl.c:5307
30765+#: c-decl.c:5308
30766 #, gcc-internal-format
30767 msgid "size of unnamed array has non-integer type"
30768 msgstr "el tamaño de la matriz sin nombre es de un tipo no entero"
30769
30770-#: c-decl.c:5317
30771+#: c-decl.c:5318
30772 #, gcc-internal-format
30773 msgid "ISO C forbids zero-size array %qE"
30774 msgstr "ISO C prohíbe la matriz %qE de tamaño cero"
30775
30776-#: c-decl.c:5320
30777+#: c-decl.c:5321
30778 #, gcc-internal-format
30779 msgid "ISO C forbids zero-size array"
30780 msgstr "ISO C prohíbe matrices de tamaño cero"
30781
30782-#: c-decl.c:5329
30783+#: c-decl.c:5330
30784 #, gcc-internal-format
30785 msgid "size of array %qE is negative"
30786 msgstr "el tamaño de la matriz %qE es negativo"
30787
30788-#: c-decl.c:5331
30789+#: c-decl.c:5332
30790 #, gcc-internal-format
30791 msgid "size of unnamed array is negative"
30792 msgstr "el tamaño de la matriz sin nombre es negativo"
30793
30794-#: c-decl.c:5405 c-decl.c:5808
30795+#: c-decl.c:5406 c-decl.c:5809
30796 #, gcc-internal-format
30797 msgid "size of array %qE is too large"
30798 msgstr "el tamaño de la matriz %qE es demasiado grande"
30799
30800-#: c-decl.c:5408 c-decl.c:5810
30801+#: c-decl.c:5409 c-decl.c:5811
30802 #, gcc-internal-format
30803 msgid "size of unnamed array is too large"
30804 msgstr "el tamaño de la matriz sin nombre es demasiado grande"
30805
30806-#: c-decl.c:5445
30807+#: c-decl.c:5446
30808 #, gcc-internal-format
30809 msgid "ISO C90 does not support flexible array members"
30810 msgstr "ISO C90 no admite miembros de matriz flexibles"
30811
30812 #. C99 6.7.5.2p4
30813-#: c-decl.c:5466
30814+#: c-decl.c:5467
30815 #, gcc-internal-format
30816 msgid "%<[*]%> not in a declaration"
30817 msgstr "%<[*]%> fuera de una declaración"
30818
30819-#: c-decl.c:5479
30820+#: c-decl.c:5480
30821 #, gcc-internal-format
30822 msgid "array type has incomplete element type"
30823 msgstr "el tipo matriz tiene tipo de elemento incompleto"
30824
30825-#: c-decl.c:5573
30826+#: c-decl.c:5574
30827 #, gcc-internal-format
30828 msgid "%qE declared as function returning a function"
30829 msgstr "%qE que se declaró como función devuelve una función"
30830
30831-#: c-decl.c:5576
30832+#: c-decl.c:5577
30833 #, gcc-internal-format
30834 msgid "type name declared as function returning a function"
30835 msgstr "el nombre de tipo que se declaró como función devuelve una función"
30836
30837-#: c-decl.c:5583
30838+#: c-decl.c:5584
30839 #, gcc-internal-format
30840 msgid "%qE declared as function returning an array"
30841 msgstr "%qE que se declaró como función devuelve una matriz"
30842
30843-#: c-decl.c:5586
30844+#: c-decl.c:5587
30845 #, gcc-internal-format
30846 msgid "type name declared as function returning an array"
30847 msgstr "el nombre de tipo que se declaró como función devuelve una matriz"
30848
30849-#: c-decl.c:5614
30850+#: c-decl.c:5615
30851 #, gcc-internal-format
30852 msgid "function definition has qualified void return type"
30853 msgstr "la definición de la función tiene un tipo de devolución void calificado"
30854
30855-#: c-decl.c:5617 cp/decl.c:9126
30856+#: c-decl.c:5618 cp/decl.c:9136
30857 #, gcc-internal-format
30858 msgid "type qualifiers ignored on function return type"
30859 msgstr "se descartan los calificadores de tipo en el tipo de devolución de la función"
30860
30861-#: c-decl.c:5646 c-decl.c:5824 c-decl.c:5936 c-decl.c:6031
30862+#: c-decl.c:5647 c-decl.c:5825 c-decl.c:5937 c-decl.c:6032
30863 #, gcc-internal-format
30864 msgid "ISO C forbids qualified function types"
30865 msgstr "ISO C prohíbe los tipos de función calificados"
30866
30867-#: c-decl.c:5713
30868+#: c-decl.c:5714
30869 #, gcc-internal-format
30870 msgid "%qs combined with %<auto%> qualifier for %qE"
30871 msgstr "%qs combinado con el calificador %<auto%> para %qE"
30872
30873-#: c-decl.c:5717
30874+#: c-decl.c:5718
30875 #, gcc-internal-format
30876 msgid "%qs combined with %<register%> qualifier for %qE"
30877 msgstr "%qs combinado con el calificador %<register%> para %qE"
30878
30879-#: c-decl.c:5723
30880+#: c-decl.c:5724
30881 #, gcc-internal-format
30882 msgid "%qs specified for auto variable %qE"
30883 msgstr "se especificó %qs para la variable auto %qE"
30884
30885-#: c-decl.c:5739
30886+#: c-decl.c:5740
30887 #, gcc-internal-format
30888 msgid "%qs specified for parameter %qE"
30889 msgstr "se especificó %qs para el parámetro %qE"
30890
30891-#: c-decl.c:5742
30892+#: c-decl.c:5743
30893 #, gcc-internal-format
30894 msgid "%qs specified for unnamed parameter"
30895 msgstr "se especificó %qs para el parámetro sin nombre"
30896
30897-#: c-decl.c:5748
30898+#: c-decl.c:5749
30899 #, gcc-internal-format
30900 msgid "%qs specified for structure field %qE"
30901 msgstr "se especificó %qs para el campo de estructura %qE"
30902
30903-#: c-decl.c:5751
30904+#: c-decl.c:5752
30905 #, gcc-internal-format
30906 msgid "%qs specified for structure field"
30907 msgstr "se especificó %qs para el campo de estructura"
30908
30909-#: c-decl.c:5764
30910+#: c-decl.c:5765
30911 #, gcc-internal-format
30912 msgid "alignment specified for typedef %qE"
30913 msgstr "se especificó la alineación para la definición de tipo %qE"
30914
30915-#: c-decl.c:5766
30916+#: c-decl.c:5767
30917 #, gcc-internal-format
30918 msgid "alignment specified for %<register%> object %qE"
30919 msgstr "se especificó la alineación para el objeto %<register%> %qE"
30920
30921-#: c-decl.c:5771
30922+#: c-decl.c:5772
30923 #, gcc-internal-format
30924 msgid "alignment specified for parameter %qE"
30925 msgstr "se especificó la alineación para el parámetro %qE"
30926
30927-#: c-decl.c:5773
30928+#: c-decl.c:5774
30929 #, gcc-internal-format
30930 msgid "alignment specified for unnamed parameter"
30931 msgstr "se especificó la alineación para el parámetro sin nombre"
30932
30933-#: c-decl.c:5778
30934+#: c-decl.c:5779
30935 #, gcc-internal-format
30936 msgid "alignment specified for bit-field %qE"
30937 msgstr "se especificó la alineación para el campo de bits %qE"
30938
30939-#: c-decl.c:5780
30940+#: c-decl.c:5781
30941 #, gcc-internal-format
30942 msgid "alignment specified for unnamed bit-field"
30943 msgstr "se especificó la alineación para el campo de bits sin nombre"
30944
30945-#: c-decl.c:5783
30946+#: c-decl.c:5784
30947 #, gcc-internal-format
30948 msgid "alignment specified for function %qE"
30949 msgstr "se especificó la alineación para la función %qE"
30950
30951-#: c-decl.c:5790
30952+#: c-decl.c:5791
30953 #, gcc-internal-format
30954 msgid "%<_Alignas%> specifiers cannot reduce alignment of %qE"
30955 msgstr "los especificadores %<_Alignas%> no pueden reducir la alineación de %qE"
30956
30957-#: c-decl.c:5793
30958+#: c-decl.c:5794
30959 #, gcc-internal-format
30960 msgid "%<_Alignas%> specifiers cannot reduce alignment of unnamed field"
30961 msgstr "los especificadores %<_Alignas%> no pueden reducir la alineación del campo sin nombre"
30962
30963-#: c-decl.c:5832
30964+#: c-decl.c:5833
30965 #, gcc-internal-format
30966 msgid "typedef %q+D declared %<inline%>"
30967 msgstr "la definición de tipo %q+D se declaró como %<inline%>"
30968
30969-#: c-decl.c:5834
30970+#: c-decl.c:5835
30971 #, gcc-internal-format
30972 msgid "typedef %q+D declared %<_Noreturn%>"
30973 msgstr "la definición de tipo %q+D se declaró como %<_Noreturn%>"
30974
30975-#: c-decl.c:5870
30976+#: c-decl.c:5871
30977 #, gcc-internal-format
30978 msgid "ISO C forbids const or volatile function types"
30979 msgstr "ISO C prohíbe los tipos de función const o volatile"
30980
30981 #. C99 6.7.2.1p8
30982-#: c-decl.c:5880
30983+#: c-decl.c:5881
30984 #, gcc-internal-format
30985 msgid "a member of a structure or union cannot have a variably modified type"
30986 msgstr "un miembro de una estructura o union no puede tener un tipo modificado variablemente"
30987
30988-#: c-decl.c:5897 cp/decl.c:8281
30989+#: c-decl.c:5898 cp/decl.c:8291
30990 #, gcc-internal-format
30991 msgid "variable or field %qE declared void"
30992 msgstr "se declaró la variable o campo %qE como void"
30993
30994-#: c-decl.c:5928
30995+#: c-decl.c:5929
30996 #, gcc-internal-format
30997 msgid "attributes in parameter array declarator ignored"
30998 msgstr "se descartan los atributos en los declaradores de parámetros de matriz"
30999
31000-#: c-decl.c:5962
31001+#: c-decl.c:5963
31002 #, gcc-internal-format
31003 msgid "parameter %q+D declared %<inline%>"
31004 msgstr "el parámetro %q+D se declaró %<inline%>"
31005
31006-#: c-decl.c:5964
31007+#: c-decl.c:5965
31008 #, gcc-internal-format
31009 msgid "parameter %q+D declared %<_Noreturn%>"
31010 msgstr "el parámetro %q+D se declaró %<_Noreturn%>"
31011
31012-#: c-decl.c:5977
31013+#: c-decl.c:5978
31014 #, gcc-internal-format
31015 msgid "field %qE declared as a function"
31016 msgstr "el campo %qE se declaró como una función"
31017
31018-#: c-decl.c:5984
31019+#: c-decl.c:5985
31020 #, gcc-internal-format
31021 msgid "field %qE has incomplete type"
31022 msgstr "el campo %qE tiene tipo de dato incompleto"
31023
31024-#: c-decl.c:5986
31025+#: c-decl.c:5987
31026 #, gcc-internal-format
31027 msgid "unnamed field has incomplete type"
31028 msgstr "el campo sin nombre tiene tipo de dato incompleto"
31029
31030-#: c-decl.c:6003 c-decl.c:6014 c-decl.c:6017
31031+#: c-decl.c:6004 c-decl.c:6015 c-decl.c:6018
31032 #, gcc-internal-format
31033 msgid "invalid storage class for function %qE"
31034 msgstr "clase de almacenamiento inválida para la función %qE"
31035
31036-#: c-decl.c:6068
31037+#: c-decl.c:6069
31038 #, gcc-internal-format
31039 msgid "cannot inline function %<main%>"
31040 msgstr "no se puede incluir en línea la función %<main%>"
31041
31042-#: c-decl.c:6070
31043+#: c-decl.c:6071
31044 #, gcc-internal-format
31045 msgid "%<main%> declared %<_Noreturn%>"
31046 msgstr "%<main%> se declaró como %<_Noreturn%>"
31047
31048-#: c-decl.c:6083
31049+#: c-decl.c:6084
31050 #, gcc-internal-format
31051 msgid "ISO C99 does not support %<_Noreturn%>"
31052 msgstr "ISO C99 no admite %<_Noreturn%>"
31053
31054-#: c-decl.c:6086
31055+#: c-decl.c:6087
31056 #, gcc-internal-format
31057 msgid "ISO C90 does not support %<_Noreturn%>"
31058 msgstr "ISO C90 no admite %<_Noreturn%>"
31059
31060-#: c-decl.c:6115
31061+#: c-decl.c:6116
31062 #, gcc-internal-format
31063 msgid "variable previously declared %<static%> redeclared %<extern%>"
31064 msgstr "una variable previamente declarada como %<static%> se redeclara como %<extern%>"
31065
31066-#: c-decl.c:6125
31067+#: c-decl.c:6126
31068 #, gcc-internal-format
31069 msgid "variable %q+D declared %<inline%>"
31070 msgstr "la variable %q+D se declaró como %<inline%>"
31071
31072-#: c-decl.c:6127
31073+#: c-decl.c:6128
31074 #, gcc-internal-format
31075 msgid "variable %q+D declared %<_Noreturn%>"
31076 msgstr "la variable %q+D se declaró como %<_Noreturn%>"
31077
31078-#: c-decl.c:6162
31079+#: c-decl.c:6163
31080 #, gcc-internal-format
31081 msgid "non-nested function with variably modified type"
31082 msgstr "función no anidada con tipo modificado variablemente"
31083
31084-#: c-decl.c:6164
31085+#: c-decl.c:6165
31086 #, gcc-internal-format
31087 msgid "object with variably modified type must have no linkage"
31088 msgstr "un objeto con tipo modificado variablemente no debe tener enlace"
31089
31090-#: c-decl.c:6254 c-decl.c:7813
31091+#: c-decl.c:6255 c-decl.c:7815
31092 #, gcc-internal-format
31093 msgid "function declaration isn%'t a prototype"
31094 msgstr "la declaración de la función no es un prototipo"
31095
31096-#: c-decl.c:6263
31097+#: c-decl.c:6264
31098 #, gcc-internal-format
31099 msgid "parameter names (without types) in function declaration"
31100 msgstr "nombres de parámetros (sin tipos) en la declaración de la función"
31101
31102-#: c-decl.c:6301
31103+#: c-decl.c:6302
31104 #, gcc-internal-format
31105 msgid "parameter %u (%q+D) has incomplete type"
31106 msgstr "el parámetro %u (%q+D) tiene tipo incompleto"
31107
31108-#: c-decl.c:6305
31109+#: c-decl.c:6306
31110 #, gcc-internal-format, gfc-internal-format
31111 msgid "parameter %u has incomplete type"
31112 msgstr "el parámetro %u tiene tipo incompleto"
31113
31114-#: c-decl.c:6316
31115+#: c-decl.c:6317
31116 #, gcc-internal-format
31117 msgid "parameter %u (%q+D) has void type"
31118 msgstr "el parámetro %u (%q+D) tiene tipo void"
31119
31120-#: c-decl.c:6320
31121+#: c-decl.c:6321
31122 #, gcc-internal-format, gfc-internal-format
31123 msgid "parameter %u has void type"
31124 msgstr "el parámetro %u tiene tipo void"
31125
31126-#: c-decl.c:6405
31127+#: c-decl.c:6406
31128 #, gcc-internal-format
31129 msgid "%<void%> as only parameter may not be qualified"
31130 msgstr "no se puede calificar %<void%> si es el único parámetro"
31131
31132-#: c-decl.c:6409 c-decl.c:6444
31133+#: c-decl.c:6410 c-decl.c:6445
31134 #, gcc-internal-format
31135 msgid "%<void%> must be the only parameter"
31136 msgstr "%<void%> debe ser el único parámetro"
31137
31138-#: c-decl.c:6438
31139+#: c-decl.c:6439
31140 #, gcc-internal-format
31141 msgid "parameter %q+D has just a forward declaration"
31142 msgstr "el parámetro %q+D sólo tiene una declaración posterior"
31143
31144 #. The %s will be one of 'struct', 'union', or 'enum'.
31145-#: c-decl.c:6483
31146+#: c-decl.c:6484
31147 #, gcc-internal-format
31148 msgid "%<%s %E%> declared inside parameter list"
31149 msgstr "se declaró %<%s %E%> dentro de la lista de parámetros"
31150
31151 #. The %s will be one of 'struct', 'union', or 'enum'.
31152-#: c-decl.c:6487
31153+#: c-decl.c:6488
31154 #, gcc-internal-format, gfc-internal-format
31155 msgid "anonymous %s declared inside parameter list"
31156 msgstr "el %s anónimo se declaró dentro de una lista de parámetros"
31157
31158-#: c-decl.c:6492
31159+#: c-decl.c:6493
31160 #, gcc-internal-format
31161 msgid "its scope is only this definition or declaration, which is probably not what you want"
31162 msgstr "su ámbito es solamente esta definición o declaración, lo cual probablemente no es lo que desea"
31163
31164-#: c-decl.c:6592
31165+#: c-decl.c:6593
31166 #, gcc-internal-format
31167 msgid "enum type defined here"
31168 msgstr "se definió el tipo enum aquí"
31169
31170-#: c-decl.c:6598
31171+#: c-decl.c:6599
31172 #, gcc-internal-format
31173 msgid "struct defined here"
31174 msgstr "se definió struct aquí"
31175
31176-#: c-decl.c:6604
31177+#: c-decl.c:6605
31178 #, gcc-internal-format
31179 msgid "union defined here"
31180 msgstr "se definió union aquí"
31181
31182-#: c-decl.c:6677
31183+#: c-decl.c:6678
31184 #, gcc-internal-format
31185 msgid "redefinition of %<union %E%>"
31186 msgstr "redefinición de %<union %E%>"
31187
31188-#: c-decl.c:6679
31189+#: c-decl.c:6680
31190 #, gcc-internal-format
31191 msgid "redefinition of %<struct %E%>"
31192 msgstr "redefinición de %<struct %E%>"
31193
31194-#: c-decl.c:6688
31195+#: c-decl.c:6689
31196 #, gcc-internal-format
31197 msgid "nested redefinition of %<union %E%>"
31198 msgstr "redefinición anidada de %<union %E%>"
31199
31200-#: c-decl.c:6690
31201+#: c-decl.c:6691
31202 #, gcc-internal-format
31203 msgid "nested redefinition of %<struct %E%>"
31204 msgstr "redefinición anidada de %<struct %E%>"
31205
31206-#: c-decl.c:6722 c-decl.c:7411
31207+#: c-decl.c:6723 c-decl.c:7412
31208 #, gcc-internal-format
31209 msgid "defining type in %qs expression is invalid in C++"
31210 msgstr "la definición de tipo en %qs es inválida en C++"
31211
31212-#: c-decl.c:6791 cp/decl.c:4147
31213+#: c-decl.c:6792 cp/decl.c:4152
31214 #, gcc-internal-format
31215 msgid "declaration does not declare anything"
31216 msgstr "la declaración no declara nada"
31217
31218-#: c-decl.c:6798
31219+#: c-decl.c:6799
31220 #, gcc-internal-format
31221 msgid "ISO C99 doesn%'t support unnamed structs/unions"
31222 msgstr "ISO C99 no admite structs/unions sin nombre"
31223
31224-#: c-decl.c:6801
31225+#: c-decl.c:6802
31226 #, gcc-internal-format
31227 msgid "ISO C90 doesn%'t support unnamed structs/unions"
31228 msgstr "ISO C90 no admite structs/unions sin nombre"
31229
31230-#: c-decl.c:6893 c-decl.c:6912 c-decl.c:6975
31231+#: c-decl.c:6894 c-decl.c:6913 c-decl.c:6976
31232 #, gcc-internal-format
31233 msgid "duplicate member %q+D"
31234 msgstr "miembro %q+D duplicado"
31235
31236-#: c-decl.c:7085
31237+#: c-decl.c:7086
31238 #, gcc-internal-format
31239 msgid "union has no named members"
31240 msgstr "union no tiene miembros nombrados"
31241
31242-#: c-decl.c:7087
31243+#: c-decl.c:7088
31244 #, gcc-internal-format
31245 msgid "union has no members"
31246 msgstr "union no tiene miembros"
31247
31248-#: c-decl.c:7092
31249+#: c-decl.c:7093
31250 #, gcc-internal-format
31251 msgid "struct has no named members"
31252 msgstr "struct no tiene miembros nombrados"
31253
31254-#: c-decl.c:7094
31255+#: c-decl.c:7095
31256 #, gcc-internal-format
31257 msgid "struct has no members"
31258 msgstr "struct no tiene miembros"
31259
31260-#: c-decl.c:7157
31261+#: c-decl.c:7158
31262 #, gcc-internal-format
31263 msgid "flexible array member in union"
31264 msgstr "miembro de matriz flexible en union"
31265
31266-#: c-decl.c:7163
31267+#: c-decl.c:7164
31268 #, gcc-internal-format
31269 msgid "flexible array member not at end of struct"
31270 msgstr "el miembro de matriz flexible no está al final del struct"
31271
31272-#: c-decl.c:7169
31273+#: c-decl.c:7170
31274 #, gcc-internal-format
31275 msgid "flexible array member in otherwise empty struct"
31276 msgstr "el miembro de matriz flexible sería de otra manera un struct vacío"
31277
31278-#: c-decl.c:7288
31279+#: c-decl.c:7289
31280 #, gcc-internal-format
31281 msgid "union cannot be made transparent"
31282 msgstr "union no se puede hacer transparente"
31283
31284-#: c-decl.c:7384
31285+#: c-decl.c:7385
31286 #, gcc-internal-format
31287 msgid "nested redefinition of %<enum %E%>"
31288 msgstr "redefinición anidada de %<enum %E%>"
31289
31290 #. This enum is a named one that has been declared already.
31291-#: c-decl.c:7391
31292+#: c-decl.c:7392
31293 #, gcc-internal-format
31294 msgid "redeclaration of %<enum %E%>"
31295 msgstr "redeclaración de %<enum %E%>"
31296
31297-#: c-decl.c:7466
31298+#: c-decl.c:7467
31299 #, gcc-internal-format
31300 msgid "enumeration values exceed range of largest integer"
31301 msgstr "los valores de enumeración exceden el rango del entero más grande"
31302
31303-#: c-decl.c:7483
31304+#: c-decl.c:7484
31305 #, gcc-internal-format
31306 msgid "specified mode too small for enumeral values"
31307 msgstr "el modo especificado es demasiado pequeño para valores enumerados"
31308
31309-#: c-decl.c:7588 c-decl.c:7604
31310+#: c-decl.c:7589 c-decl.c:7605
31311 #, gcc-internal-format
31312 msgid "enumerator value for %qE is not an integer constant"
31313 msgstr "el valor de enumerador para %qE no es una constante entera"
31314
31315-#: c-decl.c:7599
31316+#: c-decl.c:7600
31317 #, gcc-internal-format
31318 msgid "enumerator value for %qE is not an integer constant expression"
31319 msgstr "el valor de enumerador para %qE no es una expresión constante entera"
31320
31321-#: c-decl.c:7623
31322+#: c-decl.c:7624
31323 #, gcc-internal-format
31324 msgid "overflow in enumeration values"
31325 msgstr "desbordamiento en valores de enumeración"
31326
31327-#: c-decl.c:7631
31328+#: c-decl.c:7632
31329 #, gcc-internal-format
31330 msgid "ISO C restricts enumerator values to range of %<int%>"
31331 msgstr "ISO C restringe los valores de enumeración al rango de %<int%>"
31332
31333-#: c-decl.c:7715
31334+#: c-decl.c:7717
31335 #, gcc-internal-format
31336 msgid "inline function %qD given attribute noinline"
31337 msgstr "se le dió a la función incluída en línea %qD un atributo noinline"
31338
31339-#: c-decl.c:7733
31340+#: c-decl.c:7735
31341 #, gcc-internal-format
31342 msgid "return type is an incomplete type"
31343 msgstr "el tipo de devolución es un tipo de dato incompleto"
31344
31345-#: c-decl.c:7743
31346+#: c-decl.c:7745
31347 #, gcc-internal-format
31348 msgid "return type defaults to %<int%>"
31349 msgstr "el tipo de devolución por defecto es %<int%>"
31350
31351-#: c-decl.c:7821
31352+#: c-decl.c:7823
31353 #, gcc-internal-format
31354 msgid "no previous prototype for %qD"
31355 msgstr "no hay un prototipo previo para %qD"
31356
31357-#: c-decl.c:7830
31358+#: c-decl.c:7832
31359 #, gcc-internal-format
31360 msgid "%qD was used with no prototype before its definition"
31361 msgstr "se usó %qD sin prototipo antes de su definición"
31362
31363-#: c-decl.c:7837
31364+#: c-decl.c:7839
31365 #, gcc-internal-format
31366 msgid "no previous declaration for %qD"
31367 msgstr "no hay declaración previa para %qD"
31368
31369-#: c-decl.c:7847
31370+#: c-decl.c:7849
31371 #, gcc-internal-format
31372 msgid "%qD was used with no declaration before its definition"
31373 msgstr "se usó %qD sin declaración antes de su definición"
31374
31375-#: c-decl.c:7866
31376+#: c-decl.c:7868
31377 #, gcc-internal-format
31378 msgid "return type of %qD is not %<int%>"
31379 msgstr "el tipo de devolución de %qD no es %<int%>"
31380
31381-#: c-decl.c:7872
31382+#: c-decl.c:7874
31383 #, gcc-internal-format
31384 msgid "%qD is normally a non-static function"
31385 msgstr "%qD generalmente es una función que no es static"
31386
31387-#: c-decl.c:7909
31388+#: c-decl.c:7911
31389 #, gcc-internal-format
31390 msgid "old-style parameter declarations in prototyped function definition"
31391 msgstr "declaraciones de parámetros de estilo antiguo en la definición de una función prototipo"
31392
31393-#: c-decl.c:7923
31394+#: c-decl.c:7925
31395 #, gcc-internal-format
31396 msgid "traditional C rejects ISO C style function definitions"
31397 msgstr "C tradicional rechaza la definición de funciones de estilo ISO C"
31398
31399-#: c-decl.c:7939
31400+#: c-decl.c:7941
31401 #, gcc-internal-format
31402 msgid "parameter name omitted"
31403 msgstr "se omitió el nombre del parámetro"
31404
31405-#: c-decl.c:7976
31406+#: c-decl.c:7978
31407 #, gcc-internal-format
31408 msgid "old-style function definition"
31409 msgstr "definición de función de estilo antiguo"
31410
31411-#: c-decl.c:7985
31412+#: c-decl.c:7987
31413 #, gcc-internal-format
31414 msgid "parameter name missing from parameter list"
31415 msgstr "falta el nombre del parámetro de la lista de parámetros"
31416
31417-#: c-decl.c:8000
31418+#: c-decl.c:8002
31419 #, gcc-internal-format
31420 msgid "%qD declared as a non-parameter"
31421 msgstr "%qD se declaró como un no-parámetro"
31422
31423-#: c-decl.c:8006
31424+#: c-decl.c:8008
31425 #, gcc-internal-format
31426 msgid "multiple parameters named %qD"
31427 msgstr "múltiples parámetros nombrados %qD"
31428
31429-#: c-decl.c:8015
31430+#: c-decl.c:8017
31431 #, gcc-internal-format
31432 msgid "parameter %qD declared with void type"
31433 msgstr "el parámetro %qD se declaró con tipo void"
31434
31435-#: c-decl.c:8044 c-decl.c:8048
31436+#: c-decl.c:8046 c-decl.c:8050
31437 #, gcc-internal-format
31438 msgid "type of %qD defaults to %<int%>"
31439 msgstr "el tipo de %qD es %<int%> por defecto"
31440
31441-#: c-decl.c:8068
31442+#: c-decl.c:8070
31443 #, gcc-internal-format
31444 msgid "parameter %qD has incomplete type"
31445 msgstr "el parámetro %qD tiene tipo incompleto"
31446
31447-#: c-decl.c:8075
31448+#: c-decl.c:8077
31449 #, gcc-internal-format
31450 msgid "declaration for parameter %qD but no such parameter"
31451 msgstr "existe la declaración para el parámetro %qD pero no hay tal parámetro"
31452
31453-#: c-decl.c:8127
31454+#: c-decl.c:8129
31455 #, gcc-internal-format
31456 msgid "number of arguments doesn%'t match built-in prototype"
31457 msgstr "el número de argumentos no coinciden con el prototipo interno"
31458
31459-#: c-decl.c:8138
31460+#: c-decl.c:8140
31461 #, gcc-internal-format
31462 msgid "number of arguments doesn%'t match prototype"
31463 msgstr "el número de argumentos no coinciden con el prototipo"
31464
31465-#: c-decl.c:8141 c-decl.c:8183 c-decl.c:8197
31466+#: c-decl.c:8143 c-decl.c:8185 c-decl.c:8199
31467 #, gcc-internal-format
31468 msgid "prototype declaration"
31469 msgstr "declaración de prototipo"
31470
31471-#: c-decl.c:8175
31472+#: c-decl.c:8177
31473 #, gcc-internal-format
31474 msgid "promoted argument %qD doesn%'t match built-in prototype"
31475 msgstr "el argumento promovido %qD no coincide con el prototipo interno"
31476
31477-#: c-decl.c:8180
31478+#: c-decl.c:8182
31479 #, gcc-internal-format
31480 msgid "promoted argument %qD doesn%'t match prototype"
31481 msgstr "el argumento promovido %qD no coincide con el prototipo"
31482
31483-#: c-decl.c:8190
31484+#: c-decl.c:8192
31485 #, gcc-internal-format
31486 msgid "argument %qD doesn%'t match built-in prototype"
31487 msgstr "el argumento %qD no coincide con el prototipo interno"
31488
31489-#: c-decl.c:8195
31490+#: c-decl.c:8197
31491 #, gcc-internal-format
31492 msgid "argument %qD doesn%'t match prototype"
31493 msgstr "el argumento %qD no coincide con el prototipo"
31494
31495-#: c-decl.c:8378 cp/decl.c:13501
31496+#: c-decl.c:8380 cp/decl.c:13515
31497 #, gcc-internal-format
31498 msgid "no return statement in function returning non-void"
31499 msgstr "no hay una declaración de devolución en la función que no devuelve void"
31500
31501-#: c-decl.c:8398
31502+#: c-decl.c:8400
31503 #, gcc-internal-format
31504 msgid "parameter %qD set but not used"
31505 msgstr "se definió el parámetro %qD pero no se usa"
31506@@ -13693,172 +13838,172 @@
31507 #. If we get here, declarations have been used in a for loop without
31508 #. the C99 for loop scope. This doesn't make much sense, so don't
31509 #. allow it.
31510-#: c-decl.c:8487
31511+#: c-decl.c:8489
31512 #, gcc-internal-format
31513 msgid "%<for%> loop initial declarations are only allowed in C99 mode"
31514 msgstr "sólo se permiten las declaraciones iniciales del bucle %<for%> en modo C99"
31515
31516-#: c-decl.c:8492
31517+#: c-decl.c:8494
31518 #, gcc-internal-format
31519 msgid "use option -std=c99 or -std=gnu99 to compile your code"
31520 msgstr "use la opción -std=c99 o -std=gnu99 para compilar su código"
31521
31522-#: c-decl.c:8526
31523+#: c-decl.c:8528
31524 #, gcc-internal-format
31525 msgid "declaration of static variable %qD in %<for%> loop initial declaration"
31526 msgstr "declaración de la variable static %qD en la declaración inicial del bucle %<for%>"
31527
31528-#: c-decl.c:8530
31529+#: c-decl.c:8532
31530 #, gcc-internal-format
31531 msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
31532 msgstr "declaración de la variable %<extern%> %qD en la declaración inicial del bucle %<for%>"
31533
31534-#: c-decl.c:8537
31535+#: c-decl.c:8539
31536 #, gcc-internal-format
31537 msgid "%<struct %E%> declared in %<for%> loop initial declaration"
31538 msgstr "%<struct %E%> se declaró en la declaración inicial del bucle %<for%>"
31539
31540-#: c-decl.c:8542
31541+#: c-decl.c:8544
31542 #, gcc-internal-format
31543 msgid "%<union %E%> declared in %<for%> loop initial declaration"
31544 msgstr "%<union %E%> se declaró en la declaración inicial del bucle %<for%>"
31545
31546-#: c-decl.c:8546
31547+#: c-decl.c:8548
31548 #, gcc-internal-format
31549 msgid "%<enum %E%> declared in %<for%> loop initial declaration"
31550 msgstr "%<enum %E%> se declaró en la declaración inicial del bucle %<for%>"
31551
31552-#: c-decl.c:8550
31553+#: c-decl.c:8552
31554 #, gcc-internal-format
31555 msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
31556 msgstr "declaración de %qD que no es variable en la declaración inicial del bucle %<for%>"
31557
31558-#: c-decl.c:8819
31559+#: c-decl.c:8821
31560 #, gcc-internal-format
31561 msgid "incompatible address space qualifiers %qs and %qs"
31562 msgstr "calificadores de espacio de direcciones incompatibles %qs y %qs"
31563
31564-#: c-decl.c:8858 c-decl.c:9169 c-decl.c:9563
31565+#: c-decl.c:8860 c-decl.c:9171 c-decl.c:9565
31566 #, gcc-internal-format
31567 msgid "duplicate %qE"
31568 msgstr "%qE duplicado"
31569
31570-#: c-decl.c:8884 c-decl.c:9180 c-decl.c:9437
31571+#: c-decl.c:8886 c-decl.c:9182 c-decl.c:9439
31572 #, gcc-internal-format
31573 msgid "two or more data types in declaration specifiers"
31574 msgstr "dos o más tipos de datos en los especificadores de la declaración"
31575
31576-#: c-decl.c:8896 cp/parser.c:2512
31577+#: c-decl.c:8898 cp/parser.c:2512
31578 #, gcc-internal-format
31579 msgid "%<long long long%> is too long for GCC"
31580 msgstr "%<long long long%> es demasiado largo para GCC"
31581
31582-#: c-decl.c:8909
31583+#: c-decl.c:8911
31584 #, gcc-internal-format
31585 msgid "ISO C90 does not support %<long long%>"
31586 msgstr "ISO C90 no admite %<long long%>"
31587
31588-#: c-decl.c:9075 c-parser.c:6639
31589+#: c-decl.c:9077 c-parser.c:6639
31590 #, gcc-internal-format
31591 msgid "ISO C90 does not support complex types"
31592 msgstr "ISO C90 no admite tipos complejos"
31593
31594-#: c-decl.c:9114
31595+#: c-decl.c:9116
31596 #, gcc-internal-format
31597 msgid "ISO C does not support saturating types"
31598 msgstr "ISO C no admite tipos saturantes"
31599
31600-#: c-decl.c:9188
31601+#: c-decl.c:9190
31602 #, gcc-internal-format
31603 msgid "%<__int128%> is not supported for this target"
31604 msgstr "no se admite %<__int128%> para este objetivo"
31605
31606-#: c-decl.c:9193
31607+#: c-decl.c:9195
31608 #, gcc-internal-format
31609 msgid "ISO C does not support %<__int128%> type"
31610 msgstr "ISO C no admite el tipo %<__int128%>"
31611
31612-#: c-decl.c:9396
31613+#: c-decl.c:9398
31614 #, gcc-internal-format
31615 msgid "ISO C does not support decimal floating point"
31616 msgstr "ISO C no admite coma flotante decimal"
31617
31618-#: c-decl.c:9418 c-decl.c:9644 c-parser.c:6232
31619+#: c-decl.c:9420 c-decl.c:9646 c-parser.c:6232
31620 #, gcc-internal-format
31621 msgid "fixed-point types not supported for this target"
31622 msgstr "no se admiten tipos de coma fija para este objetivo"
31623
31624-#: c-decl.c:9420
31625+#: c-decl.c:9422
31626 #, gcc-internal-format
31627 msgid "ISO C does not support fixed-point types"
31628 msgstr "ISO C no admite tipos de coma fija"
31629
31630-#: c-decl.c:9454
31631+#: c-decl.c:9456
31632 #, gcc-internal-format
31633 msgid "C++ lookup of %qD would return a field, not a type"
31634 msgstr "la búsqueda en C++ de %qD devolvería un campo, no un tipo"
31635
31636-#: c-decl.c:9467
31637+#: c-decl.c:9469
31638 #, gcc-internal-format
31639 msgid "%qE fails to be a typedef or built in type"
31640 msgstr "%qE falla al ser un typedef o un tipo interno del compilador"
31641
31642-#: c-decl.c:9509
31643+#: c-decl.c:9511
31644 #, gcc-internal-format
31645 msgid "%qE is not at beginning of declaration"
31646 msgstr "%qE no está al inicio de la declaración"
31647
31648-#: c-decl.c:9528
31649+#: c-decl.c:9530
31650 #, gcc-internal-format
31651 msgid "%<__thread%> used with %<auto%>"
31652 msgstr "se usó %<__thread%> con %<auto%>"
31653
31654-#: c-decl.c:9530
31655+#: c-decl.c:9532
31656 #, gcc-internal-format
31657 msgid "%<__thread%> used with %<register%>"
31658 msgstr "se usó %<__thread%> con %<register%>"
31659
31660-#: c-decl.c:9532
31661+#: c-decl.c:9534
31662 #, gcc-internal-format
31663 msgid "%<__thread%> used with %<typedef%>"
31664 msgstr "se usó %<__thread%> con %<typedef%>"
31665
31666-#: c-decl.c:9543
31667+#: c-decl.c:9545
31668 #, gcc-internal-format
31669 msgid "%<__thread%> before %<extern%>"
31670 msgstr "%<__thread%> antes de %<extern%>"
31671
31672-#: c-decl.c:9552
31673+#: c-decl.c:9554
31674 #, gcc-internal-format
31675 msgid "%<__thread%> before %<static%>"
31676 msgstr "%<__thread%> antes de %<static%>"
31677
31678-#: c-decl.c:9568
31679+#: c-decl.c:9570
31680 #, gcc-internal-format
31681 msgid "multiple storage classes in declaration specifiers"
31682 msgstr "múltiples clases de almacenamiento en los especificadores de declaración"
31683
31684-#: c-decl.c:9575
31685+#: c-decl.c:9577
31686 #, gcc-internal-format
31687 msgid "%<__thread%> used with %qE"
31688 msgstr "se usó %<__thread%> con %qE"
31689
31690-#: c-decl.c:9642
31691+#: c-decl.c:9644
31692 #, gcc-internal-format
31693 msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
31694 msgstr "se usó %<_Sat%> sin %<_Fract%> o %<_Accum%>"
31695
31696-#: c-decl.c:9656
31697+#: c-decl.c:9658
31698 #, gcc-internal-format
31699 msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
31700 msgstr "ISO C no admite %<complex%> simples que significan %<double complex%>"
31701
31702-#: c-decl.c:9701 c-decl.c:9714 c-decl.c:9740
31703+#: c-decl.c:9703 c-decl.c:9716 c-decl.c:9742
31704 #, gcc-internal-format
31705 msgid "ISO C does not support complex integer types"
31706 msgstr "ISO C no admite tipos enteros complejos"
31707
31708-#: c-decl.c:9894 toplev.c:484
31709+#: c-decl.c:9896 toplev.c:484
31710 #, gcc-internal-format
31711 msgid "%q+F used but never defined"
31712 msgstr "se usa %q+F pero nunca se define"
31713@@ -14458,7 +14603,7 @@
31714 msgid "collapsed loops not perfectly nested"
31715 msgstr "los bucles colapsados no están perfectamente anidados"
31716
31717-#: c-parser.c:10102 cp/parser.c:26364 cp/parser.c:26402 cp/pt.c:12677
31718+#: c-parser.c:10102 cp/parser.c:26364 cp/parser.c:26402 cp/pt.c:12690
31719 #, gcc-internal-format
31720 msgid "iteration variable %qD should not be firstprivate"
31721 msgstr "la variable de iteración %qD no debe ser firstprivate"
31722@@ -14687,7 +14832,7 @@
31723 msgid "too many arguments to method %qE"
31724 msgstr "demasiados argumentos para el método %qE"
31725
31726-#: c-typeck.c:3036 c-family/c-common.c:8433 c-family/c-common.c:9359
31727+#: c-typeck.c:3036 c-family/c-common.c:8433 c-family/c-common.c:9361
31728 #, gcc-internal-format
31729 msgid "too many arguments to function %qE"
31730 msgstr "demasiados argumentos para la función %qE"
31731@@ -14912,7 +15057,7 @@
31732 msgid "pointer/integer type mismatch in conditional expression"
31733 msgstr "los tipos de datos punteros/enteros no coinciden en la expresión condicional"
31734
31735-#: c-typeck.c:4373 tree-cfg.c:3824
31736+#: c-typeck.c:4373 tree-cfg.c:3821
31737 #, gcc-internal-format
31738 msgid "type mismatch in conditional expression"
31739 msgstr "los tipos de datos no coinciden en la expresión condicional"
31740@@ -15322,7 +15467,7 @@
31741 msgid "invalid initializer"
31742 msgstr "inicializador inválido"
31743
31744-#: c-typeck.c:6652 cp/decl.c:5526
31745+#: c-typeck.c:6652 cp/decl.c:5536
31746 #, gcc-internal-format
31747 msgid "opaque vector types cannot be initialized"
31748 msgstr "no se pueden inicializar los tipos de vector opacos"
31749@@ -15703,7 +15848,7 @@
31750 msgid "C++ requires promoted type, not enum type, in %<va_arg%>"
31751 msgstr "C++ requiere un tipo promovido, no un tipo enum, en %<va_arg%>"
31752
31753-#: calls.c:2311
31754+#: calls.c:2316
31755 #, gcc-internal-format
31756 msgid "function call has aggregate value"
31757 msgstr "la llamada a la función tiene valor agregado"
31758@@ -16168,217 +16313,222 @@
31759 msgid "caller edge frequency %i does not match BB frequency %i"
31760 msgstr "la frecuencia de borde llamador %i no coincide con la frecuencia BB %i"
31761
31762-#: cgraphunit.c:501
31763+#: cgraphunit.c:507
31764 #, gcc-internal-format, gfc-internal-format
31765 msgid "aux field set for edge %s->%s"
31766 msgstr "campo aux establecido para el borde %s->%s"
31767
31768-#: cgraphunit.c:508
31769+#: cgraphunit.c:514
31770 #, gcc-internal-format
31771 msgid "execution count is negative"
31772 msgstr "la cuenta de ejecución es negativa"
31773
31774-#: cgraphunit.c:513
31775+#: cgraphunit.c:519
31776 #, gcc-internal-format
31777 msgid "externally visible inline clone"
31778 msgstr "clon incluído en línea visible externamente"
31779
31780-#: cgraphunit.c:518
31781+#: cgraphunit.c:524
31782 #, gcc-internal-format
31783 msgid "inline clone with address taken"
31784 msgstr "clon incluído en línea con dirección tomada"
31785
31786-#: cgraphunit.c:523
31787+#: cgraphunit.c:529
31788 #, gcc-internal-format
31789 msgid "inline clone is needed"
31790 msgstr "se necesita un clon incluído en línea"
31791
31792-#: cgraphunit.c:530
31793+#: cgraphunit.c:536
31794 #, gcc-internal-format, gfc-internal-format
31795 msgid "aux field set for indirect edge from %s"
31796 msgstr "se define el campo aux para el borde indirecto desde %s"
31797
31798-#: cgraphunit.c:537
31799+#: cgraphunit.c:543
31800 #, gcc-internal-format, gfc-internal-format
31801 msgid "An indirect edge from %s is not marked as indirect or has associated indirect_info, the corresponding statement is: "
31802 msgstr "Un borde indirecto de %s no está marcado como indirecto o tiene indirect_info asociado, la declaración correspondiente es: "
31803
31804-#: cgraphunit.c:554
31805+#: cgraphunit.c:560
31806 #, gcc-internal-format
31807 msgid "inlined_to pointer is wrong"
31808 msgstr "el puntero inlined_to está mal"
31809
31810-#: cgraphunit.c:559
31811+#: cgraphunit.c:565
31812 #, gcc-internal-format
31813 msgid "multiple inline callers"
31814 msgstr "múltiples llamantes inline"
31815
31816-#: cgraphunit.c:566
31817+#: cgraphunit.c:572
31818 #, gcc-internal-format
31819 msgid "inlined_to pointer set for noninline callers"
31820 msgstr "se estableció el puntero inlined_to para llamantes no-inline"
31821
31822-#: cgraphunit.c:575
31823+#: cgraphunit.c:581
31824 #, gcc-internal-format
31825 msgid "inlined_to pointer is set but no predecessors found"
31826 msgstr "se estableció el puntero inlined_to, pero no se encontraron predecesores"
31827
31828-#: cgraphunit.c:580
31829+#: cgraphunit.c:586
31830 #, gcc-internal-format
31831 msgid "inlined_to pointer refers to itself"
31832 msgstr "el puntero inlined_to se refiere a sí mismo"
31833
31834-#: cgraphunit.c:586
31835+#: cgraphunit.c:592
31836 #, gcc-internal-format
31837 msgid "node not found in cgraph_hash"
31838 msgstr "no se encontró un nodo en cgraph_hash"
31839
31840-#: cgraphunit.c:598
31841+#: cgraphunit.c:604
31842 #, gcc-internal-format
31843 msgid "node has wrong clone_of"
31844 msgstr "el nodo tiene un clone_of erróneo"
31845
31846-#: cgraphunit.c:610
31847+#: cgraphunit.c:616
31848 #, gcc-internal-format
31849 msgid "node has wrong clone list"
31850 msgstr "el nodo tiene una lista de clones errónea"
31851
31852-#: cgraphunit.c:616
31853+#: cgraphunit.c:622
31854 #, gcc-internal-format
31855 msgid "node is in clone list but it is not clone"
31856 msgstr "el nodo está en la lista de clones pero no es clon"
31857
31858-#: cgraphunit.c:621
31859+#: cgraphunit.c:627
31860 #, gcc-internal-format
31861 msgid "node has wrong prev_clone pointer"
31862 msgstr "el nodo tiene un puntero prev_clone erróneo"
31863
31864-#: cgraphunit.c:626
31865+#: cgraphunit.c:632
31866 #, gcc-internal-format
31867 msgid "double linked list of clones corrupted"
31868 msgstr "lista de clones doblemente ligada corrrupta"
31869
31870-#: cgraphunit.c:635
31871+#: cgraphunit.c:641
31872 #, gcc-internal-format
31873 msgid "non-DECL_ONE_ONLY node in a same_comdat_group list"
31874 msgstr "nodo que no es DECL_ONE_ONLY en una lista same_comdat_group"
31875
31876-#: cgraphunit.c:640
31877+#: cgraphunit.c:646
31878 #, gcc-internal-format
31879 msgid "node is alone in a comdat group"
31880 msgstr "el nodo está solo en un grupo comdat"
31881
31882-#: cgraphunit.c:647
31883+#: cgraphunit.c:653
31884 #, gcc-internal-format
31885 msgid "same_comdat_group is not a circular list"
31886 msgstr "same_comdat_group no es una lista circular"
31887
31888-#: cgraphunit.c:664
31889+#: cgraphunit.c:670
31890 #, gcc-internal-format
31891 msgid "Alias has call edges"
31892 msgstr "Alias tiene bordes de llamada"
31893
31894-#: cgraphunit.c:670
31895+#: cgraphunit.c:676
31896 #, gcc-internal-format
31897-msgid "Alias has non-alias refernece"
31898+msgid "Alias has non-alias reference"
31899 msgstr "Alias tiene una referencia que no es alias"
31900
31901-#: cgraphunit.c:675
31902+#: cgraphunit.c:681
31903 #, gcc-internal-format
31904 msgid "Alias has more than one alias reference"
31905 msgstr "Alias tiene más de una referencia alias"
31906
31907-#: cgraphunit.c:682
31908+#: cgraphunit.c:688
31909 #, gcc-internal-format
31910 msgid "Analyzed alias has no reference"
31911 msgstr "El alias analizado no tiene referencia"
31912
31913-#: cgraphunit.c:690
31914+#: cgraphunit.c:696
31915 #, gcc-internal-format
31916 msgid "No edge out of thunk node"
31917 msgstr "No hay un borde fuera de un nodo thunk"
31918
31919-#: cgraphunit.c:695
31920+#: cgraphunit.c:701
31921 #, gcc-internal-format
31922 msgid "More than one edge out of thunk node"
31923 msgstr "Más de un borde fuera de un nodo thunk"
31924
31925-#: cgraphunit.c:700
31926+#: cgraphunit.c:706
31927 #, gcc-internal-format
31928 msgid "Thunk is not supposed to have body"
31929 msgstr "No se supone que thunk tenga cuerpo"
31930
31931-#: cgraphunit.c:730
31932+#: cgraphunit.c:736
31933 #, gcc-internal-format
31934 msgid "shared call_stmt:"
31935 msgstr "call_stmt compartida:"
31936
31937-#: cgraphunit.c:738
31938+#: cgraphunit.c:744
31939 #, gcc-internal-format
31940 msgid "edge points to wrong declaration:"
31941 msgstr "puntos de borde para una declaración errónea:"
31942
31943-#: cgraphunit.c:747
31944+#: cgraphunit.c:753
31945 #, gcc-internal-format
31946 msgid "an indirect edge with unknown callee corresponding to a call_stmt with a known declaration:"
31947 msgstr "un borde indirecto con un llamante desconocido que corresponde a call_stmt con una declaración conocida:"
31948
31949-#: cgraphunit.c:757
31950+#: cgraphunit.c:763
31951 #, gcc-internal-format
31952 msgid "missing callgraph edge for call stmt:"
31953 msgstr "falta el borde de callgraph para la llamada stmt:"
31954
31955-#: cgraphunit.c:773
31956+#: cgraphunit.c:779
31957 #, gcc-internal-format, gfc-internal-format
31958 msgid "edge %s->%s has no corresponding call_stmt"
31959 msgstr "el borde %s->%s no tiene un call_stmt correspondiente"
31960
31961-#: cgraphunit.c:785
31962+#: cgraphunit.c:791
31963 #, gcc-internal-format, gfc-internal-format
31964 msgid "an indirect edge from %s has no corresponding call_stmt"
31965 msgstr "un borde indirecto desde %s no tiene un call_stmt correspondiente"
31966
31967-#: cgraphunit.c:796
31968+#: cgraphunit.c:802
31969 #, gcc-internal-format
31970 msgid "verify_cgraph_node failed"
31971 msgstr "falló verify_cgraph_node"
31972
31973-#: cgraphunit.c:940
31974+#: cgraphunit.c:851
31975 #, gcc-internal-format
31976+msgid "function %q+D part of alias cycle"
31977+msgstr "la función %q+D es parte de un ciclo de alias"
31978+
31979+#: cgraphunit.c:956
31980+#, gcc-internal-format
31981 msgid "%<weakref%> attribute should be accompanied with an %<alias%> attribute"
31982 msgstr "el atributo %<weakref%> se debe acompañar con un atributo %<alias%>"
31983
31984-#: cgraphunit.c:995 cgraphunit.c:1040
31985+#: cgraphunit.c:1011 cgraphunit.c:1056
31986 #, gcc-internal-format
31987 msgid "%<externally_visible%> attribute have effect only on public objects"
31988 msgstr "el atributo %<externally_visible%> sólo tiene efecto en objetos públicos"
31989
31990-#: cgraphunit.c:1004
31991+#: cgraphunit.c:1020
31992 #, gcc-internal-format
31993 msgid "%<weakref%> attribute ignored because function is defined"
31994 msgstr "se descarta el atributo %<weakref%> porque ya se definió la función"
31995
31996-#: cgraphunit.c:1016
31997+#: cgraphunit.c:1032
31998 #, gcc-internal-format
31999 msgid "always_inline function might not be inlinable"
32000 msgstr "una función always_inline tal vez no se puede incluir en línea"
32001
32002-#: cgraphunit.c:1050
32003+#: cgraphunit.c:1066
32004 #, gcc-internal-format
32005 msgid "%<weakref%> attribute ignored because variable is initialized"
32006 msgstr "se descarta el atributo %<weakref%> porque ya se inicializó la variable"
32007
32008-#: cgraphunit.c:1404
32009+#: cgraphunit.c:1420
32010 #, gcc-internal-format
32011 msgid "failed to reclaim unneeded function"
32012 msgstr "falló al reclamar una función innecesaria"
32013
32014-#: cgraphunit.c:1430
32015+#: cgraphunit.c:1447
32016 #, gcc-internal-format
32017-msgid "failed to reclaim unneeded functionin same comdat group"
32018+msgid "failed to reclaim unneeded function in same comdat group"
32019 msgstr "falló al reclamar una función innecesaria en el mismo grupo comdat"
32020
32021-#: cgraphunit.c:2233
32022+#: cgraphunit.c:2251
32023 #, gcc-internal-format
32024 msgid "nodes with unreleased memory found"
32025 msgstr "se encontraron nodos sin memoria liberada"
32026@@ -16448,12 +16598,12 @@
32027 msgid "cannot find '%s'"
32028 msgstr "no se puede encontrar '%s'"
32029
32030-#: collect2.c:2081 collect2.c:2617 collect2.c:2813 gcc.c:2652
32031+#: collect2.c:2081 collect2.c:2617 collect2.c:2813 gcc.c:2658
32032 #, gcc-internal-format
32033 msgid "pex_init failed: %m"
32034 msgstr "falló pex_init: %m"
32035
32036-#: collect2.c:2090 collect2.c:2626 collect2.c:2821 gcc.c:6995
32037+#: collect2.c:2090 collect2.c:2626 collect2.c:2821 gcc.c:7027
32038 #, gcc-internal-format
32039 msgid "%s: %m"
32040 msgstr "%s: %m"
32041@@ -16563,82 +16713,82 @@
32042 msgid "aggregate value used where a fixed-point was expected"
32043 msgstr "se usó un valor agregado donde se esperaba uno de coma fija"
32044
32045-#: coverage.c:188
32046+#: coverage.c:189
32047 #, gcc-internal-format
32048 msgid "%qs is not a gcov data file"
32049 msgstr "%qs no es un fichero de datos gcov"
32050
32051-#: coverage.c:199
32052+#: coverage.c:200
32053 #, gcc-internal-format
32054 msgid "%qs is version %q.*s, expected version %q.*s"
32055 msgstr "%qs es versión %q.*s, se esperaba la versión %q.*s"
32056
32057-#: coverage.c:275 coverage.c:284
32058+#: coverage.c:276 coverage.c:285
32059 #, gcc-internal-format, gfc-internal-format
32060 msgid "Profile data for function %u is corrupted"
32061 msgstr "La información de análisis de perfil para la función %u está corrupta"
32062
32063-#: coverage.c:276
32064+#: coverage.c:277
32065 #, gcc-internal-format
32066 msgid "checksum is (%x,%x) instead of (%x,%x)"
32067 msgstr "la suma de comprobación es (%x,%x) en lugar de (%x,%x)"
32068
32069-#: coverage.c:285
32070+#: coverage.c:286
32071 #, gcc-internal-format, gfc-internal-format
32072 msgid "number of counters is %d instead of %d"
32073 msgstr "el número de contadores es %d en lugar de %d"
32074
32075-#: coverage.c:291
32076+#: coverage.c:292
32077 #, gcc-internal-format, gfc-internal-format
32078 msgid "cannot merge separate %s counters for function %u"
32079 msgstr "no se pueden mezclar contadores %s separados para la función %u"
32080
32081-#: coverage.c:310
32082+#: coverage.c:311
32083 #, gcc-internal-format
32084 msgid "%qs has overflowed"
32085 msgstr "%qs se ha desbordado"
32086
32087-#: coverage.c:360
32088+#: coverage.c:361
32089 #, gcc-internal-format
32090 msgid "the control flow of function %qE does not match its profile data (counter %qs)"
32091 msgstr "el flujo de control de la función %qE no coincide con sus datos de análisis de perfil (contador %qs)"
32092
32093-#: coverage.c:364
32094+#: coverage.c:365
32095 #, gcc-internal-format
32096 msgid "use -Wno-error=coverage-mismatch to tolerate the mismatch but performance may drop if the function is hot"
32097 msgstr "use -Wno-error=coverage-mismatch para tolerar la diferencia pero el rendmiento puede disminuir si la función está caliente"
32098
32099-#: coverage.c:370
32100+#: coverage.c:371
32101 #, gcc-internal-format
32102 msgid "coverage mismatch ignored"
32103 msgstr "se descarta la diferencia de cobertura"
32104
32105-#: coverage.c:372
32106+#: coverage.c:373
32107 #, gcc-internal-format
32108 msgid "execution counts estimated"
32109 msgstr "cuentas de ejecución estimadas"
32110
32111-#: coverage.c:373
32112+#: coverage.c:374
32113 #, gcc-internal-format
32114 msgid "execution counts assumed to be zero"
32115 msgstr "se asume que las cuentas de ejecución son cero"
32116
32117-#: coverage.c:376
32118+#: coverage.c:377
32119 #, gcc-internal-format
32120 msgid "this can result in poorly optimized code"
32121 msgstr "esto puede resultar en código probremente optimizado"
32122
32123-#: coverage.c:384
32124+#: coverage.c:385
32125 #, gcc-internal-format
32126 msgid "source locations for function %qE have changed, the profile data may be out of date"
32127 msgstr "cambiaron las ubicaciones de fuente para la función %qE, los datos de análisis de perfil pueden estar desactualizados"
32128
32129-#: coverage.c:602
32130+#: coverage.c:603
32131 #, gcc-internal-format
32132 msgid "error writing %qs"
32133 msgstr "error al escribir %qs"
32134
32135-#: coverage.c:1098
32136+#: coverage.c:1111
32137 #, gcc-internal-format, gfc-internal-format
32138 msgid "cannot open %s"
32139 msgstr "no se puede abrir %s"
32140@@ -16713,27 +16863,27 @@
32141 msgid "multiple EH personalities are supported only with assemblers supporting .cfi_personality directive"
32142 msgstr "sólo se admiten múltiples personalidades EH con ensambladores que admiten la directiva cfi.personality"
32143
32144-#: dwarf2out.c:10672
32145+#: dwarf2out.c:10704
32146 #, gcc-internal-format, gfc-internal-format
32147 msgid "non-delegitimized UNSPEC %s (%d) found in variable location"
32148 msgstr "se encontró UNSPEC %s (%d) que no está delegitimado la ubicación de variable"
32149
32150-#: emit-rtl.c:2541
32151+#: emit-rtl.c:2556
32152 #, gcc-internal-format
32153 msgid "invalid rtl sharing found in the insn"
32154 msgstr "se encontró una compartición de rtl inválida en la insn"
32155
32156-#: emit-rtl.c:2543
32157+#: emit-rtl.c:2558
32158 #, gcc-internal-format
32159 msgid "shared rtx"
32160 msgstr "rtx compartido"
32161
32162-#: emit-rtl.c:2545
32163+#: emit-rtl.c:2560
32164 #, gcc-internal-format
32165 msgid "internal consistency failure"
32166 msgstr "falla interna de consistencia"
32167
32168-#: emit-rtl.c:3676
32169+#: emit-rtl.c:3691
32170 #, gcc-internal-format
32171 msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
32172 msgstr "ICE: se usa emit_insn donde se necesita emit_jump_insn:\n"
32173@@ -16828,17 +16978,17 @@
32174 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"
32175 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"
32176
32177-#: expr.c:7479
32178+#: expr.c:7523
32179 #, gcc-internal-format
32180 msgid "local frame unavailable (naked function?)"
32181 msgstr "el marco local no está disponible (¿Función desnuda?)"
32182
32183-#: expr.c:9951
32184+#: expr.c:9996
32185 #, gcc-internal-format
32186 msgid "%Kcall to %qs declared with attribute error: %s"
32187 msgstr "%Kla llamada a %qs se redeclaró con error de atributo: %s"
32188
32189-#: expr.c:9958
32190+#: expr.c:10003
32191 #, gcc-internal-format
32192 msgid "%Kcall to %qs declared with attribute warning: %s"
32193 msgstr "%Kla llamada a %qs se redecló con aviso de atributo: %s"
32194@@ -16853,12 +17003,12 @@
32195 msgid "the frame size of %wd bytes is larger than %wd bytes"
32196 msgstr "el tamaño de marco de %wd bytes es mayor que %wd bytes"
32197
32198-#: final.c:4430 toplev.c:1421 tree-optimize.c:171
32199+#: final.c:4430 toplev.c:1421 tree-optimize.c:173
32200 #, gcc-internal-format
32201 msgid "could not open final insn dump file %qs: %m"
32202 msgstr "no se puede abrir el fichero de volcado de insn final %qs: %m"
32203
32204-#: final.c:4483 tree-optimize.c:187
32205+#: final.c:4483 tree-optimize.c:189
32206 #, gcc-internal-format
32207 msgid "could not close final insn dump file %qs: %m"
32208 msgstr "no se puede cerrar el fichero de volcado de insn final %qs: %m"
32209@@ -16913,7 +17063,7 @@
32210 msgid "assuming signed overflow does not occur when combining constants around a comparison"
32211 msgstr "se asume que el desbordamiento con signo no sucede cuando se combinan constantes alrededor de una comparación"
32212
32213-#: fold-const.c:14205
32214+#: fold-const.c:14219
32215 #, gcc-internal-format
32216 msgid "fold check: original tree changed by fold"
32217 msgstr "fold check: el árbol original cambió por un pliegue"
32218@@ -16923,7 +17073,7 @@
32219 msgid "total size of local objects too large"
32220 msgstr "el tamaño total de los objetos locales es demasiado grande"
32221
32222-#: function.c:1732 gimplify.c:5155
32223+#: function.c:1732 gimplify.c:5156
32224 #, gcc-internal-format
32225 msgid "impossible constraint in %<asm%>"
32226 msgstr "restricción imposible en %<asm%>"
32227@@ -16948,132 +17098,132 @@
32228 msgid "unused parameter %q+D"
32229 msgstr "parámetro %q+D sin uso"
32230
32231-#: gcc.c:1726 gcc.c:1746
32232+#: gcc.c:1732 gcc.c:1752
32233 #, gcc-internal-format, gfc-internal-format
32234 msgid "specs %%include syntax malformed after %ld characters"
32235 msgstr "sintaxis de specs %%include mal formada después de %ld caracteres"
32236
32237-#: gcc.c:1772 gcc.c:1781 gcc.c:1791 gcc.c:1801
32238+#: gcc.c:1778 gcc.c:1787 gcc.c:1797 gcc.c:1807
32239 #, gcc-internal-format, gfc-internal-format
32240 msgid "specs %%rename syntax malformed after %ld characters"
32241 msgstr "sintaxis de specs %%rename mal formada después de %ld caracteres"
32242
32243-#: gcc.c:1811
32244+#: gcc.c:1817
32245 #, gcc-internal-format, gfc-internal-format
32246 msgid "specs %s spec was not found to be renamed"
32247 msgstr "la especificación specs %s no se encontró para ser renombrada"
32248
32249-#: gcc.c:1818
32250+#: gcc.c:1824
32251 #, gcc-internal-format
32252 msgid "%s: attempt to rename spec %qs to already defined spec %qs"
32253 msgstr "%s: se intentó renombrar la especificación %qs a la especificación %qs que ya estaba definida"
32254
32255-#: gcc.c:1839
32256+#: gcc.c:1845
32257 #, gcc-internal-format, gfc-internal-format
32258 msgid "specs unknown %% command after %ld characters"
32259 msgstr "orden specs %% desconocida después de %ld caracteres"
32260
32261-#: gcc.c:1850 gcc.c:1863
32262+#: gcc.c:1856 gcc.c:1869
32263 #, gcc-internal-format, gfc-internal-format
32264 msgid "specs file malformed after %ld characters"
32265 msgstr "fichero specs mal formado después de %ld caracteres"
32266
32267-#: gcc.c:1915
32268+#: gcc.c:1921
32269 #, gcc-internal-format
32270 msgid "spec file has no spec for linking"
32271 msgstr "el fichero de especificación no tiene especificaciones para enlazar"
32272
32273-#: gcc.c:2444
32274+#: gcc.c:2450
32275 #, gcc-internal-format
32276 msgid "system path %qs is not absolute"
32277 msgstr "la ruta del sistema %qs no es absoluta"
32278
32279-#: gcc.c:2529
32280+#: gcc.c:2535
32281 #, gcc-internal-format
32282 msgid "-pipe not supported"
32283 msgstr "no se admite -pipe"
32284
32285-#: gcc.c:2691
32286+#: gcc.c:2697
32287 #, gcc-internal-format
32288 msgid "failed to get exit status: %m"
32289 msgstr "no se puede obtener el estado de salida: %m"
32290
32291-#: gcc.c:2697
32292+#: gcc.c:2703
32293 #, gcc-internal-format
32294 msgid "failed to get process times: %m"
32295 msgstr "no se pueden obtener los tiempos de proceso: %m"
32296
32297-#: gcc.c:2723
32298+#: gcc.c:2729
32299 #, gcc-internal-format, gfc-internal-format
32300 msgid "%s (program %s)"
32301 msgstr "%s (programa %s)"
32302
32303-#: gcc.c:3142 opts-common.c:986 opts-common.c:1058
32304+#: gcc.c:3148 opts-common.c:986 opts-common.c:1058
32305 #, gcc-internal-format
32306 msgid "unrecognized command line option %qs"
32307 msgstr "no se reconoce la opción de línea de órdenes %qs"
32308
32309-#: gcc.c:3395
32310+#: gcc.c:3401
32311 #, gcc-internal-format
32312 msgid "%qs is an unknown -save-temps option"
32313 msgstr "%qs es una opción desconocida para -save-temps"
32314
32315-#: gcc.c:3856
32316+#: gcc.c:3862
32317 #, gcc-internal-format
32318 msgid "-pipe ignored because -save-temps specified"
32319 msgstr "se descarta -pipe porque se especificó -save-temps"
32320
32321-#: gcc.c:3942
32322+#: gcc.c:3948
32323 #, gcc-internal-format
32324 msgid "%<-x %s%> after last input file has no effect"
32325 msgstr "%<-x %s%> después del último fichero de entrada no tiene efecto"
32326
32327-#: gcc.c:4109
32328+#: gcc.c:4115
32329 #, gcc-internal-format
32330 msgid "unable to locate default linker script %qs in the library search paths"
32331 msgstr "no se puede localizar el guión de enlazador por defecto %qs en las rutas de búsqueda de bibliotecas"
32332
32333-#: gcc.c:4312
32334+#: gcc.c:4318
32335 #, gcc-internal-format
32336 msgid "switch %qs does not start with %<-%>"
32337 msgstr "la opción %qs no inicia con %<-%>"
32338
32339-#: gcc.c:4315
32340+#: gcc.c:4321
32341 #, gcc-internal-format
32342 msgid "spec-generated switch is just %<-%>"
32343 msgstr "la opción generada de especificación sólo es %<-%>"
32344
32345-#: gcc.c:4406
32346+#: gcc.c:4412
32347 #, gcc-internal-format, gfc-internal-format
32348 msgid "could not open temporary response file %s"
32349 msgstr "no se puede abrir el fichero de respuesta temporal %s"
32350
32351-#: gcc.c:4412
32352+#: gcc.c:4418
32353 #, gcc-internal-format, gfc-internal-format
32354 msgid "could not write to temporary response file %s"
32355 msgstr "no se puede escribir en el fichero de respuesta temporal %s"
32356
32357-#: gcc.c:4418
32358+#: gcc.c:4424
32359 #, gcc-internal-format, gfc-internal-format
32360 msgid "could not close temporary response file %s"
32361 msgstr "no se puede cerrar el fichero de respuesta temporal %s"
32362
32363-#: gcc.c:4541
32364+#: gcc.c:4547
32365 #, gcc-internal-format
32366 msgid "spec %qs invalid"
32367 msgstr "la especificación %qs es inválida"
32368
32369-#: gcc.c:4690
32370+#: gcc.c:4696
32371 #, gcc-internal-format
32372 msgid "spec %qs has invalid %<%%0%c%>"
32373 msgstr "la especificación %qs tiene un %<%%0%c%> inválido"
32374
32375-#: gcc.c:5000
32376+#: gcc.c:5006
32377 #, gcc-internal-format
32378 msgid "spec %qs has invalid %<%%W%c%>"
32379 msgstr "la especificación %qs tiene un %<%%W%c%> inválido"
32380
32381-#: gcc.c:5022
32382+#: gcc.c:5028
32383 #, gcc-internal-format
32384 msgid "spec %qs has invalid %<%%x%c%>"
32385 msgstr "la especificación %qs tiene un %<%%x%c%> inválido"
32386@@ -17081,210 +17231,210 @@
32387 #. Catch the case where a spec string contains something like
32388 #. '%{foo:%*}'. i.e. there is no * in the pattern on the left
32389 #. hand side of the :.
32390-#: gcc.c:5210
32391+#: gcc.c:5216
32392 #, gcc-internal-format
32393 msgid "spec failure: %<%%*%> has not been initialized by pattern match"
32394 msgstr "falla de especificación: %<%%*%> no ha sido inicializado por coincidencia de patrón"
32395
32396-#: gcc.c:5253
32397+#: gcc.c:5259
32398 #, gcc-internal-format
32399 msgid "spec failure: unrecognized spec option %qc"
32400 msgstr "falla de especificación: no se reconoce la opción de especificación %qc"
32401
32402-#: gcc.c:5313
32403+#: gcc.c:5319
32404 #, gcc-internal-format
32405 msgid "unknown spec function %qs"
32406 msgstr "función de especificación %qs desconocida"
32407
32408-#: gcc.c:5331
32409+#: gcc.c:5337
32410 #, gcc-internal-format
32411 msgid "error in args to spec function %qs"
32412 msgstr "error en los argumentos para la función de especificación %qs"
32413
32414-#: gcc.c:5379
32415+#: gcc.c:5385
32416 #, gcc-internal-format
32417 msgid "malformed spec function name"
32418 msgstr "nombre de la función de especificación malformado"
32419
32420 #. )
32421-#: gcc.c:5382
32422+#: gcc.c:5388
32423 #, gcc-internal-format
32424 msgid "no arguments for spec function"
32425 msgstr "no hay argumentos para la función de especificación"
32426
32427-#: gcc.c:5401
32428+#: gcc.c:5407
32429 #, gcc-internal-format
32430 msgid "malformed spec function arguments"
32431 msgstr "argumentos de la función de especificación malformados"
32432
32433-#: gcc.c:5647
32434+#: gcc.c:5668
32435 #, gcc-internal-format
32436 msgid "braced spec %qs is invalid at %qc"
32437 msgstr "la especificación entre llaves %qs es inválida en %qc"
32438
32439-#: gcc.c:5735
32440+#: gcc.c:5756
32441 #, gcc-internal-format
32442 msgid "braced spec body %qs is invalid"
32443 msgstr "el cuerpo de la especificación entre llaves %qs es inválido"
32444
32445-#: gcc.c:5984
32446+#: gcc.c:6005
32447 #, gcc-internal-format, gfc-internal-format
32448 msgid "%s: could not determine length of compare-debug file %s"
32449 msgstr "%s: no se puede determinar la longitud del fichero para comparar depuración %s"
32450
32451-#: gcc.c:5995
32452+#: gcc.c:6016
32453 #, gcc-internal-format, gfc-internal-format
32454 msgid "%s: -fcompare-debug failure (length)"
32455 msgstr "%s: falló -fcompare-debug (longitud)"
32456
32457-#: gcc.c:6005 gcc.c:6046
32458+#: gcc.c:6026 gcc.c:6067
32459 #, gcc-internal-format, gfc-internal-format
32460 msgid "%s: could not open compare-debug file %s"
32461 msgstr "%s: no se puede abrir el fichero para comparar depuración %s"
32462
32463-#: gcc.c:6025 gcc.c:6062
32464+#: gcc.c:6046 gcc.c:6083
32465 #, gcc-internal-format, gfc-internal-format
32466 msgid "%s: -fcompare-debug failure"
32467 msgstr "%s: falló -fcompare-debug"
32468
32469-#: gcc.c:6140
32470+#: gcc.c:6161
32471 #, gcc-internal-format
32472 msgid "atexit failed"
32473 msgstr "falló atexit"
32474
32475-#: gcc.c:6281
32476+#: gcc.c:6302
32477 #, gcc-internal-format
32478 msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC"
32479 msgstr "falla de especificación: más de un argumento para SYSROOT_SUFFIX_SPEC"
32480
32481-#: gcc.c:6304
32482+#: gcc.c:6325
32483 #, gcc-internal-format
32484 msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC"
32485 msgstr "falla de especificación: más de un argumento para SYSROOT_HEADERS_SUFFIX_SPEC"
32486
32487-#: gcc.c:6466
32488+#: gcc.c:6491
32489 #, gcc-internal-format
32490 msgid "unrecognized option %<-%s%>"
32491 msgstr "no se reconoce la opción %<-%s%>"
32492
32493 #. The error status indicates that only one set of fixed
32494 #. headers should be built.
32495-#: gcc.c:6543
32496+#: gcc.c:6568
32497 #, gcc-internal-format
32498 msgid "not configured with sysroot headers suffix"
32499 msgstr "no se configuró con el sufijo de encabezados sysroot"
32500
32501-#: gcc.c:6626
32502+#: gcc.c:6651
32503 #, gcc-internal-format
32504 msgid "no input files"
32505 msgstr "no hay ficheros de entrada"
32506
32507-#: gcc.c:6675
32508+#: gcc.c:6700
32509 #, gcc-internal-format
32510 msgid "cannot specify -o with -c, -S or -E with multiple files"
32511 msgstr "no se puede especificar -o con -c, -S o -E y con múltiples ficheros"
32512
32513-#: gcc.c:6705
32514+#: gcc.c:6730
32515 #, gcc-internal-format, gfc-internal-format
32516 msgid "%s: %s compiler not installed on this system"
32517 msgstr "%s: el compilador %s no está instalado en este sistema"
32518
32519-#: gcc.c:6727
32520+#: gcc.c:6752
32521 #, gcc-internal-format
32522 msgid "recompiling with -fcompare-debug"
32523 msgstr "se recompila con -fcompare-debug"
32524
32525-#: gcc.c:6743
32526+#: gcc.c:6768
32527 #, gcc-internal-format
32528 msgid "during -fcompare-debug recompilation"
32529 msgstr "durante la recompilación -fcompare-debug"
32530
32531-#: gcc.c:6752
32532+#: gcc.c:6777
32533 #, gcc-internal-format
32534 msgid "comparing final insns dumps"
32535 msgstr "se comparan volcados finales de insns"
32536
32537-#: gcc.c:6853
32538+#: gcc.c:6883
32539 #, gcc-internal-format, gfc-internal-format
32540 msgid "-fuse-linker-plugin, but %s not found"
32541 msgstr "-fuse-linker-plugin, pero no se encontró %s"
32542
32543-#: gcc.c:6883
32544+#: gcc.c:6915
32545 #, gcc-internal-format, gfc-internal-format
32546 msgid "%s: linker input file unused because linking not done"
32547 msgstr "%s: no se usó el fichero de entrada del enlazador porque no se hizo enlace"
32548
32549-#: gcc.c:6924
32550+#: gcc.c:6956
32551 #, gcc-internal-format, gfc-internal-format
32552 msgid "language %s not recognized"
32553 msgstr "no se reconoce el lenguaje %s"
32554
32555-#: gcc.c:7150
32556+#: gcc.c:7182
32557 #, gcc-internal-format
32558 msgid "multilib spec %qs is invalid"
32559 msgstr "la especificación multilib %qs es inválida"
32560
32561-#: gcc.c:7342
32562+#: gcc.c:7374
32563 #, gcc-internal-format
32564 msgid "multilib exclusions %qs is invalid"
32565 msgstr "las exclusiones multilib %qs son inválidas"
32566
32567-#: gcc.c:7400 gcc.c:7541
32568+#: gcc.c:7432 gcc.c:7573
32569 #, gcc-internal-format
32570 msgid "multilib select %qs is invalid"
32571 msgstr "la selección multilib %qs es inválida"
32572
32573-#: gcc.c:7579
32574+#: gcc.c:7611
32575 #, gcc-internal-format
32576 msgid "multilib exclusion %qs is invalid"
32577 msgstr "la exclusión multilib %qs es inválida"
32578
32579-#: gcc.c:7785
32580+#: gcc.c:7817
32581 #, gcc-internal-format
32582 msgid "environment variable %qs not defined"
32583 msgstr "no se definió la variable de ambiente %qs"
32584
32585-#: gcc.c:7897 gcc.c:7902
32586+#: gcc.c:7929 gcc.c:7934
32587 #, gcc-internal-format
32588 msgid "invalid version number %qs"
32589 msgstr "número de versión %qs inválido"
32590
32591-#: gcc.c:7945
32592+#: gcc.c:7977
32593 #, gcc-internal-format, gfc-internal-format
32594 msgid "too few arguments to %%:version-compare"
32595 msgstr "faltan argumentos para %%:version-compare"
32596
32597-#: gcc.c:7951
32598+#: gcc.c:7983
32599 #, gcc-internal-format, gfc-internal-format
32600 msgid "too many arguments to %%:version-compare"
32601 msgstr "demasiados argumentos para %%:version-compare"
32602
32603-#: gcc.c:7992
32604+#: gcc.c:8024
32605 #, gcc-internal-format
32606 msgid "unknown operator %qs in %%:version-compare"
32607 msgstr "operador %qs desconocido en %%:version-compare"
32608
32609-#: gcc.c:8115
32610+#: gcc.c:8147
32611 #, gcc-internal-format, gfc-internal-format
32612 msgid "too many arguments to %%:compare-debug-dump-opt"
32613 msgstr "demasiados argumentos para %%:compare-debug-dump-opt"
32614
32615-#: gcc.c:8183
32616+#: gcc.c:8215
32617 #, gcc-internal-format, gfc-internal-format
32618 msgid "too many arguments to %%:compare-debug-self-opt"
32619 msgstr "demasiados argumentos para %%:compare-debug-self-opt"
32620
32621-#: gcc.c:8218
32622+#: gcc.c:8250
32623 #, gcc-internal-format, gfc-internal-format
32624 msgid "too few arguments to %%:compare-debug-auxbase-opt"
32625 msgstr "faltan argumentos para %%:compare-debug-auxbase-opt"
32626
32627-#: gcc.c:8221
32628+#: gcc.c:8253
32629 #, gcc-internal-format, gfc-internal-format
32630 msgid "too many arguments to %%:compare-debug-auxbase-opt"
32631 msgstr "demasiados argumentos para %%:compare-debug-auxbase-opt"
32632
32633-#: gcc.c:8228
32634+#: gcc.c:8260
32635 #, gcc-internal-format, gfc-internal-format
32636 msgid "argument to %%:compare-debug-auxbase-opt does not end in .gk"
32637 msgstr "el argumento para %%:compare-debug-auxbase-opt no termina en .gk"
32638@@ -17367,67 +17517,67 @@
32639 msgid "gimple check: expected %s(%s), have %s(%s) in %s, at %s:%d"
32640 msgstr "revisión gimple: se esperaba %s(%s), se tiene %s(%s) en %s, en %s:%d"
32641
32642-#: gimplify.c:2510
32643+#: gimplify.c:2511
32644 #, gcc-internal-format
32645 msgid "using result of function returning %<void%>"
32646 msgstr "se usa el resultado de una función que devuelve %<void%>"
32647
32648-#: gimplify.c:5040
32649+#: gimplify.c:5041
32650 #, gcc-internal-format, gfc-internal-format
32651 msgid "invalid lvalue in asm output %d"
32652 msgstr "l-valor inválido en la salida asm %d"
32653
32654-#: gimplify.c:5156
32655+#: gimplify.c:5157
32656 #, gcc-internal-format, gfc-internal-format
32657 msgid "non-memory input %d must stay in memory"
32658 msgstr "la entrada que no es de memoria %d debe permanecer en memoria"
32659
32660-#: gimplify.c:5178
32661+#: gimplify.c:5179
32662 #, gcc-internal-format, gfc-internal-format
32663 msgid "memory input %d is not directly addressable"
32664 msgstr "la entrada de memoria %d no es directamente direccionable"
32665
32666-#: gimplify.c:5673
32667+#: gimplify.c:5674
32668 #, gcc-internal-format
32669 msgid "threadprivate variable %qE used in untied task"
32670 msgstr "se usó la variable threadprivate %qE en una tarea sin atar"
32671
32672-#: gimplify.c:5675 gimplify.c:5737
32673+#: gimplify.c:5676 gimplify.c:5738
32674 #, gcc-internal-format
32675 msgid "enclosing task"
32676 msgstr "tarea contenedora"
32677
32678-#: gimplify.c:5734
32679+#: gimplify.c:5735
32680 #, gcc-internal-format
32681 msgid "%qE not specified in enclosing parallel"
32682 msgstr "no se especificó %qE en el paralelo que lo contiene"
32683
32684-#: gimplify.c:5739
32685+#: gimplify.c:5740
32686 #, gcc-internal-format
32687 msgid "enclosing parallel"
32688 msgstr "paralelo contenedor"
32689
32690-#: gimplify.c:5844
32691+#: gimplify.c:5845
32692 #, gcc-internal-format
32693 msgid "iteration variable %qE should be private"
32694 msgstr "la variable de iteración %qE debe ser private"
32695
32696-#: gimplify.c:5858
32697+#: gimplify.c:5859
32698 #, gcc-internal-format
32699 msgid "iteration variable %qE should not be firstprivate"
32700 msgstr "la variable de iteración %qE no debe ser firstprivate"
32701
32702-#: gimplify.c:5861
32703+#: gimplify.c:5862
32704 #, gcc-internal-format
32705 msgid "iteration variable %qE should not be reduction"
32706 msgstr "la variable de iteración %qE no debe ser reduction"
32707
32708-#: gimplify.c:6024
32709+#: gimplify.c:6025
32710 #, gcc-internal-format
32711 msgid "%s variable %qE is private in outer context"
32712 msgstr "la variable %s %qE es private en el contexto externo"
32713
32714-#: gimplify.c:7778
32715+#: gimplify.c:7787
32716 #, gcc-internal-format
32717 msgid "gimplification failed"
32718 msgstr "falló la gimplificación"
32719@@ -17661,18 +17811,18 @@
32720 msgid "critical region may not be nested inside a critical region with the same name"
32721 msgstr "la región crítica puede no estar bien anidada dentro de una región crítica con el mismo nombre"
32722
32723-#: omp-low.c:7011 cp/decl.c:2880 cp/parser.c:9853 cp/parser.c:9873
32724+#: omp-low.c:7012 cp/decl.c:2885 cp/parser.c:9853 cp/parser.c:9873
32725 #, gcc-internal-format
32726 msgid "invalid exit from OpenMP structured block"
32727 msgstr "salida inválida de un bloque estructurado OpenMP"
32728
32729-#: omp-low.c:7013 omp-low.c:7018
32730+#: omp-low.c:7014 omp-low.c:7019
32731 #, gcc-internal-format
32732 msgid "invalid entry to OpenMP structured block"
32733 msgstr "entrada inválida a un bloque estructurado OpenMP"
32734
32735 #. Otherwise, be vague and lazy, but efficient.
32736-#: omp-low.c:7021
32737+#: omp-low.c:7022
32738 #, gcc-internal-format
32739 msgid "invalid branch to/from an OpenMP structured block"
32740 msgstr "ramificación inválida desde/para un bloque estructurado OpenMP"
32741@@ -17768,12 +17918,12 @@
32742 msgid "section anchors must be disabled when toplevel reorder is disabled"
32743 msgstr "las anclas de seccions se deben desactivar cando el reordenamiento de nivel principal se desactiva"
32744
32745-#: opts.c:721 config/darwin.c:3002 config/sh/sh.c:804
32746+#: opts.c:721 config/darwin.c:3002 config/sh/sh.c:809
32747 #, gcc-internal-format
32748 msgid "-freorder-blocks-and-partition does not work with exceptions on this architecture"
32749 msgstr "-freorder-blocks-and-partition no funciona con excepciones en esta arquitectura"
32750
32751-#: opts.c:736 config/sh/sh.c:812
32752+#: opts.c:736 config/sh/sh.c:817
32753 #, gcc-internal-format
32754 msgid "-freorder-blocks-and-partition does not support unwind info on this architecture"
32755 msgstr "-freorder-blocks-and-partition no admite información de desenredo en esta arquitectura"
32756@@ -17911,7 +18061,7 @@
32757
32758 #: passes.c:712
32759 #, gcc-internal-format, gfc-internal-format
32760-msgid "unknown pass %s specified in -fdisble"
32761+msgid "unknown pass %s specified in -fdisable"
32762 msgstr "se especificó el paso desconocido %s en -fdisable"
32763
32764 #: passes.c:739 passes.c:829
32765@@ -18127,49 +18277,49 @@
32766 msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
32767 msgstr "validate_value_data: [%u] Registro no vacío en la cadena (%s %u %i)"
32768
32769-#: reginfo.c:820
32770+#: reginfo.c:822
32771 #, gcc-internal-format
32772 msgid "can%'t use %qs as a call-saved register"
32773 msgstr "no se puede usar %qs como un registro guardado de llamada"
32774
32775-#: reginfo.c:824
32776+#: reginfo.c:826
32777 #, gcc-internal-format
32778 msgid "can%'t use %qs as a call-used register"
32779 msgstr "no se puede usar %qs como un registro usado de llamada"
32780
32781-#: reginfo.c:836
32782+#: reginfo.c:838
32783 #, gcc-internal-format
32784 msgid "can%'t use %qs as a fixed register"
32785 msgstr "no se puede usar %qs como un registro fijo"
32786
32787-#: reginfo.c:862 config/ia64/ia64.c:5749 config/ia64/ia64.c:5756
32788-#: config/pa/pa.c:424 config/pa/pa.c:431 config/sh/sh.c:8744
32789-#: config/sh/sh.c:8751 config/spu/spu.c:5198 config/spu/spu.c:5205
32790+#: reginfo.c:864 config/ia64/ia64.c:5749 config/ia64/ia64.c:5756
32791+#: config/pa/pa.c:424 config/pa/pa.c:431 config/sh/sh.c:8749
32792+#: config/sh/sh.c:8756 config/spu/spu.c:5198 config/spu/spu.c:5205
32793 #, gcc-internal-format, gfc-internal-format
32794 msgid "unknown register name: %s"
32795 msgstr "nombre de registro desconocido: %s"
32796
32797-#: reginfo.c:875
32798+#: reginfo.c:877
32799 #, gcc-internal-format
32800 msgid "stack register used for global register variable"
32801 msgstr "se usó un nombre de registro para una variable de registro global"
32802
32803-#: reginfo.c:881
32804+#: reginfo.c:883
32805 #, gcc-internal-format
32806 msgid "global register variable follows a function definition"
32807 msgstr "la variable de registro global después de una definición de función"
32808
32809-#: reginfo.c:886
32810+#: reginfo.c:888
32811 #, gcc-internal-format
32812 msgid "register of %qD used for multiple global register variables"
32813 msgstr "se usó el registro de %qD para múltiples variables de registro globales"
32814
32815-#: reginfo.c:889
32816+#: reginfo.c:891
32817 #, gcc-internal-format
32818 msgid "conflicts with %qD"
32819 msgstr "genera un conflicto con %qD"
32820
32821-#: reginfo.c:894
32822+#: reginfo.c:896
32823 #, gcc-internal-format
32824 msgid "call-clobbered register used for global register variable"
32825 msgstr "se usó un registro de llamada alterada para una variable de registro global"
32826@@ -18414,7 +18564,7 @@
32827 msgid "packed attribute is unnecessary for %q+D"
32828 msgstr "el atributo packed es innecesario para %q+D"
32829
32830-#: stor-layout.c:1153
32831+#: stor-layout.c:1152
32832 #, gcc-internal-format
32833 msgid "padding struct to align %q+D"
32834 msgstr "estructura de relleno para alinear %q+D"
32835@@ -18459,47 +18609,47 @@
32836 msgid "__builtin_saveregs not supported by this target"
32837 msgstr "no se admite __builtin_saveregs en este objetivo"
32838
32839-#: targhooks.c:806
32840+#: targhooks.c:807
32841 #, gcc-internal-format
32842 msgid "nested functions not supported on this target"
32843 msgstr "no se admiten funciones anidadas en este objetivo"
32844
32845-#: targhooks.c:819
32846+#: targhooks.c:820
32847 #, gcc-internal-format
32848 msgid "nested function trampolines not supported on this target"
32849 msgstr "no se admiten trampolines de funciones anidadas para este objetivo"
32850
32851-#: targhooks.c:1153
32852+#: targhooks.c:1154
32853 #, gcc-internal-format
32854 msgid "target attribute is not supported on this machine"
32855 msgstr "el atributo target no se admite en esta plataforma"
32856
32857-#: targhooks.c:1163
32858+#: targhooks.c:1164
32859 #, gcc-internal-format
32860 msgid "#pragma GCC target is not supported for this machine"
32861 msgstr "No se admite #pragma GCC target en este objetivo"
32862
32863-#: tlink.c:481
32864+#: tlink.c:492
32865 #, gcc-internal-format
32866 msgid "removing .rpo file: %m"
32867 msgstr "se elimina el fichero .rpo: %m"
32868
32869-#: tlink.c:483
32870+#: tlink.c:494
32871 #, gcc-internal-format
32872 msgid "renaming .rpo file: %m"
32873 msgstr "se renombra el fichero .rpo: %m"
32874
32875-#: tlink.c:487
32876+#: tlink.c:498
32877 #, gcc-internal-format, gfc-internal-format
32878 msgid "repository file '%s' does not contain command-line arguments"
32879 msgstr "el fichero de repositorio '%s' no contiene argumentos de línea de órdenes"
32880
32881-#: tlink.c:735
32882+#: tlink.c:624
32883 #, gcc-internal-format, gfc-internal-format
32884 msgid "'%s' was assigned to '%s', but was not defined during recompilation, or vice versa"
32885 msgstr "'%s' se asignó a '%s', pero no se definió durante la recompilación, o viceversa"
32886
32887-#: tlink.c:805
32888+#: tlink.c:859
32889 #, gcc-internal-format, gfc-internal-format
32890 msgid "ld returned %d exit status"
32891 msgstr "ld devolvió el estado de salida %d"
32892@@ -18664,7 +18814,7 @@
32893 msgid "%<transaction_may_cancel_outer%> function call not within outer transaction or %<transaction_may_cancel_outer%>"
32894 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%>"
32895
32896-#: trans-mem.c:664 trans-mem.c:4137
32897+#: trans-mem.c:664 trans-mem.c:4191
32898 #, gcc-internal-format
32899 msgid "unsafe function call %qD within atomic transaction"
32900 msgstr "llamada a función %qD insegura dentro de una transacción atómica"
32901@@ -18679,7 +18829,7 @@
32902 msgid "unsafe indirect function call within atomic transaction"
32903 msgstr "llamada a función indirecta insegura dentro de una transacción atómica"
32904
32905-#: trans-mem.c:682 trans-mem.c:4070
32906+#: trans-mem.c:682 trans-mem.c:4124
32907 #, gcc-internal-format
32908 msgid "unsafe function call %qD within %<transaction_safe%> function"
32909 msgstr "llamada a función %qD insegura dentro de la función %<transaction_safe%>"
32910@@ -18694,7 +18844,7 @@
32911 msgid "unsafe indirect function call within %<transaction_safe%> function"
32912 msgstr "llamada a función indirecta insegura dentro de la función %<transaction_safe%>"
32913
32914-#: trans-mem.c:707 trans-mem.c:4109
32915+#: trans-mem.c:707 trans-mem.c:4163
32916 #, gcc-internal-format
32917 msgid "asm not allowed in atomic transaction"
32918 msgstr "no se permite asm en una transacción atómica"
32919@@ -18729,6 +18879,11 @@
32920 msgid "outer transaction in %<transaction_safe%> function"
32921 msgstr "transacción más externa en la función %<transaction_safe%>"
32922
32923+#: trans-mem.c:3789
32924+#, gcc-internal-format
32925+msgid "%Kasm not allowed in %<transaction_safe%> function"
32926+msgstr "%Kno se permite asm en una función %<transaction_safe%>"
32927+
32928 #: tree-cfg.c:2616
32929 #, gcc-internal-format
32930 msgid "constant not recomputed when ADDR_EXPR changed"
32931@@ -18749,7 +18904,7 @@
32932 msgid "SSA name in freelist but still referenced"
32933 msgstr "hay un nombre SSA en la lista libre, pero aún está referenciado"
32934
32935-#: tree-cfg.c:2667 tree-cfg.c:3953
32936+#: tree-cfg.c:2667 tree-cfg.c:3950
32937 #, gcc-internal-format
32938 msgid "INDIRECT_REF in gimple IL"
32939 msgstr "INDIRECT_REF en gimple IL"
32940@@ -18989,347 +19144,347 @@
32941 msgid "invalid operand in unary operation"
32942 msgstr "operando inválido en la operación unaria"
32943
32944-#: tree-cfg.c:3369
32945+#: tree-cfg.c:3366
32946 #, gcc-internal-format
32947 msgid "invalid types in nop conversion"
32948 msgstr "tipos inválidos en la conversión nop"
32949
32950-#: tree-cfg.c:3384
32951+#: tree-cfg.c:3381
32952 #, gcc-internal-format
32953 msgid "invalid types in address space conversion"
32954 msgstr "tipos inválidos en la conversión nop"
32955
32956-#: tree-cfg.c:3398
32957+#: tree-cfg.c:3395
32958 #, gcc-internal-format
32959 msgid "invalid types in fixed-point conversion"
32960 msgstr "tipos inválidos en la conversión de coma fija"
32961
32962-#: tree-cfg.c:3413
32963+#: tree-cfg.c:3410
32964 #, gcc-internal-format
32965 msgid "invalid types in conversion to floating point"
32966 msgstr "tipos inválidos en la conversión a coma flotante"
32967
32968-#: tree-cfg.c:3428
32969+#: tree-cfg.c:3425
32970 #, gcc-internal-format
32971 msgid "invalid types in conversion to integer"
32972 msgstr "tipos inválidos en la conversión a entero"
32973
32974-#: tree-cfg.c:3462
32975+#: tree-cfg.c:3459
32976 #, gcc-internal-format
32977 msgid "non-trivial conversion in unary operation"
32978 msgstr "conversión que no es trivial en la operación unaria"
32979
32980-#: tree-cfg.c:3487
32981+#: tree-cfg.c:3484
32982 #, gcc-internal-format
32983 msgid "non-register as LHS of binary operation"
32984 msgstr "el LHS de una operación binaria no es un registro"
32985
32986-#: tree-cfg.c:3494
32987+#: tree-cfg.c:3491
32988 #, gcc-internal-format
32989 msgid "invalid operands in binary operation"
32990 msgstr "operandos inválidos en la operación binaria"
32991
32992-#: tree-cfg.c:3509
32993+#: tree-cfg.c:3506
32994 #, gcc-internal-format
32995 msgid "type mismatch in complex expression"
32996 msgstr "los tipos de datos no coinciden en la expresión compleja"
32997
32998-#: tree-cfg.c:3538
32999+#: tree-cfg.c:3535
33000 #, gcc-internal-format
33001 msgid "type mismatch in shift expression"
33002 msgstr "los tipos de datos no coinciden en la expresión shift"
33003
33004-#: tree-cfg.c:3561
33005+#: tree-cfg.c:3558
33006 #, gcc-internal-format
33007 msgid "type mismatch in vector shift expression"
33008 msgstr "los tipos de datos no coinciden en la expresión shift de vector"
33009
33010-#: tree-cfg.c:3574
33011+#: tree-cfg.c:3571
33012 #, gcc-internal-format
33013 msgid "non-element sized vector shift of floating point vector"
33014 msgstr "desplazamiento de vector de tamaño que no es elemento de vector de coma flotante"
33015
33016-#: tree-cfg.c:3588 tree-cfg.c:3609
33017+#: tree-cfg.c:3585 tree-cfg.c:3606
33018 #, gcc-internal-format
33019 msgid "type mismatch in widening vector shift expression"
33020 msgstr "los tipos no coinciden en la expresión shift de ensanchamiento de vector"
33021
33022-#: tree-cfg.c:3631
33023+#: tree-cfg.c:3628
33024 #, gcc-internal-format
33025 msgid "invalid non-vector operands to vector valued plus"
33026 msgstr "operandos que no son vectores inválidos para un vector valuado con más"
33027
33028-#: tree-cfg.c:3651
33029+#: tree-cfg.c:3648
33030 #, gcc-internal-format
33031 msgid "invalid (pointer) operands to plus/minus"
33032 msgstr "operandos (punteros) inválidos para más/menos"
33033
33034-#: tree-cfg.c:3666
33035+#: tree-cfg.c:3663
33036 #, gcc-internal-format
33037 msgid "type mismatch in pointer plus expression"
33038 msgstr "los tipos de datos no coinciden en la expresión puntero más"
33039
33040-#: tree-cfg.c:3743
33041+#: tree-cfg.c:3740
33042 #, gcc-internal-format
33043 msgid "type mismatch in binary expression"
33044 msgstr "los tipos de datos no coinciden en la expresión binaria"
33045
33046-#: tree-cfg.c:3771
33047+#: tree-cfg.c:3768
33048 #, gcc-internal-format
33049 msgid "non-register as LHS of ternary operation"
33050 msgstr "el LHS de una operación terniaria no es un registro"
33051
33052-#: tree-cfg.c:3780
33053+#: tree-cfg.c:3777
33054 #, gcc-internal-format
33055 msgid "invalid operands in ternary operation"
33056 msgstr "operandos inválidos en la operación terniaria"
33057
33058-#: tree-cfg.c:3796
33059+#: tree-cfg.c:3793
33060 #, gcc-internal-format
33061 msgid "type mismatch in widening multiply-accumulate expression"
33062 msgstr "los tipos no coinciden en la expresión de ensanchado multiplicar-acumular"
33063
33064-#: tree-cfg.c:3810
33065+#: tree-cfg.c:3807
33066 #, gcc-internal-format
33067 msgid "type mismatch in fused multiply-add expression"
33068 msgstr "los tipos no coinciden en la expresión fusionada multiplicar-sumar"
33069
33070-#: tree-cfg.c:3836
33071+#: tree-cfg.c:3833
33072 #, gcc-internal-format
33073 msgid "type mismatch in vector permute expression"
33074 msgstr "los tipos no coinciden en la expresión de permutación de vector"
33075
33076-#: tree-cfg.c:3848
33077+#: tree-cfg.c:3845
33078 #, gcc-internal-format
33079 msgid "vector types expected in vector permute expression"
33080 msgstr "se esperaban tipos vector en una expresión de permutación de vector"
33081
33082-#: tree-cfg.c:3862
33083+#: tree-cfg.c:3859
33084 #, gcc-internal-format
33085 msgid "vectors with different element number found in vector permute expression"
33086 msgstr "se encontraron vectores con número de elementos diferentes en la expresión de permutación"
33087
33088-#: tree-cfg.c:3875
33089+#: tree-cfg.c:3872
33090 #, gcc-internal-format
33091 msgid "invalid mask type in vector permute expression"
33092 msgstr "tipo de máscara inválido en la expresión de permutación de vector"
33093
33094-#: tree-cfg.c:3911
33095+#: tree-cfg.c:3908
33096 #, gcc-internal-format
33097 msgid "non-trivial conversion at assignment"
33098 msgstr "conversión que no es trivial en la asignación"
33099
33100-#: tree-cfg.c:3928
33101+#: tree-cfg.c:3925
33102 #, gcc-internal-format
33103 msgid "invalid operand in unary expression"
33104 msgstr "operando inválido en la expresión unaria"
33105
33106-#: tree-cfg.c:3942
33107+#: tree-cfg.c:3939
33108 #, gcc-internal-format
33109 msgid "type mismatch in address expression"
33110 msgstr "no coincide el tipo en la expresión de dirección"
33111
33112-#: tree-cfg.c:3968 tree-cfg.c:3994
33113+#: tree-cfg.c:3965 tree-cfg.c:3991
33114 #, gcc-internal-format
33115 msgid "invalid rhs for gimple memory store"
33116 msgstr "rhs inválido para el almacenamiento de memoria gimple"
33117
33118-#: tree-cfg.c:4056
33119+#: tree-cfg.c:4053
33120 #, gcc-internal-format
33121 msgid "invalid operand in return statement"
33122 msgstr "operando inválido en la declaración return"
33123
33124-#: tree-cfg.c:4070
33125+#: tree-cfg.c:4067
33126 #, gcc-internal-format
33127 msgid "invalid conversion in return statement"
33128 msgstr "conversión inválida en la declaración return"
33129
33130-#: tree-cfg.c:4094
33131+#: tree-cfg.c:4091
33132 #, gcc-internal-format
33133 msgid "goto destination is neither a label nor a pointer"
33134 msgstr "el destino de goto no es una etiqueta ni un puntero"
33135
33136-#: tree-cfg.c:4109
33137+#: tree-cfg.c:4106
33138 #, gcc-internal-format
33139 msgid "invalid operand to switch statement"
33140 msgstr "operando inválido para la declaración switch"
33141
33142-#: tree-cfg.c:4151
33143+#: tree-cfg.c:4148
33144 #, gcc-internal-format
33145 msgid "incorrect entry in label_to_block_map"
33146 msgstr "entrada incorrecta en label_to_block_map"
33147
33148-#: tree-cfg.c:4161
33149+#: tree-cfg.c:4158
33150 #, gcc-internal-format
33151 msgid "incorrect setting of landing pad number"
33152 msgstr "definición incorrecta del número de relleno de aterrizaje"
33153
33154-#: tree-cfg.c:4189
33155+#: tree-cfg.c:4186
33156 #, gcc-internal-format
33157 msgid "invalid comparison code in gimple cond"
33158 msgstr "código de comparación inválido en la condición gimple"
33159
33160-#: tree-cfg.c:4197
33161+#: tree-cfg.c:4194
33162 #, gcc-internal-format
33163 msgid "invalid labels in gimple cond"
33164 msgstr "etiquetas inválidas en la condición gimple"
33165
33166-#: tree-cfg.c:4258 tree-cfg.c:4267
33167+#: tree-cfg.c:4255 tree-cfg.c:4264
33168 #, gcc-internal-format
33169 msgid "invalid PHI result"
33170 msgstr "resultado PHI inválido"
33171
33172-#: tree-cfg.c:4277
33173+#: tree-cfg.c:4274
33174 #, gcc-internal-format
33175 msgid "missing PHI def"
33176 msgstr "falta la definición PHI"
33177
33178-#: tree-cfg.c:4291
33179+#: tree-cfg.c:4288
33180 #, gcc-internal-format
33181 msgid "invalid PHI argument"
33182 msgstr "argumento PHI inválido"
33183
33184-#: tree-cfg.c:4298
33185+#: tree-cfg.c:4295
33186 #, gcc-internal-format, gfc-internal-format
33187 msgid "incompatible types in PHI argument %u"
33188 msgstr "tipos incompatibles en el argumento PHI %u"
33189
33190-#: tree-cfg.c:4382 tree-cfg.c:4578
33191+#: tree-cfg.c:4379 tree-cfg.c:4575
33192 #, gcc-internal-format
33193 msgid "verify_gimple failed"
33194 msgstr "falló verify_gimple"
33195
33196-#: tree-cfg.c:4443
33197+#: tree-cfg.c:4440
33198 #, gcc-internal-format
33199 msgid "dead STMT in EH table"
33200 msgstr "STMT muerto en la tabla EH"
33201
33202-#: tree-cfg.c:4477
33203+#: tree-cfg.c:4474
33204 #, gcc-internal-format
33205 msgid "gimple_bb (phi) is set to a wrong basic block"
33206 msgstr "se estableció gimple_bb (phi) a un bloque básico erróneo"
33207
33208-#: tree-cfg.c:4489 tree-cfg.c:4523
33209+#: tree-cfg.c:4486 tree-cfg.c:4520
33210 #, gcc-internal-format
33211 msgid "incorrect sharing of tree nodes"
33212 msgstr "compartición incorrecta de nodos de árbol"
33213
33214-#: tree-cfg.c:4512
33215+#: tree-cfg.c:4509
33216 #, gcc-internal-format
33217 msgid "gimple_bb (stmt) is set to a wrong basic block"
33218 msgstr "se estableció gimple_bb (stmt) a un bloque básico erróneo"
33219
33220-#: tree-cfg.c:4538
33221+#: tree-cfg.c:4535
33222 #, gcc-internal-format
33223 msgid "in statement"
33224 msgstr "en la sentencia"
33225
33226-#: tree-cfg.c:4553
33227+#: tree-cfg.c:4550
33228 #, gcc-internal-format
33229 msgid "statement marked for throw, but doesn%'t"
33230 msgstr "se marcó la sentencia para throw, pero no lo hace"
33231
33232-#: tree-cfg.c:4560
33233+#: tree-cfg.c:4557
33234 #, gcc-internal-format
33235 msgid "statement marked for throw in middle of block"
33236 msgstr "se marcó la sentencia para throw en medio del bloque"
33237
33238-#: tree-cfg.c:4601
33239+#: tree-cfg.c:4598
33240 #, gcc-internal-format
33241 msgid "ENTRY_BLOCK has IL associated with it"
33242 msgstr "ENTRY_BLOCK tiene IL asociado con él"
33243
33244-#: tree-cfg.c:4607
33245+#: tree-cfg.c:4604
33246 #, gcc-internal-format
33247 msgid "EXIT_BLOCK has IL associated with it"
33248 msgstr "EXIT_BLOCK tiene IL asociado con él"
33249
33250-#: tree-cfg.c:4614
33251+#: tree-cfg.c:4611
33252 #, gcc-internal-format, gfc-internal-format
33253 msgid "fallthru to exit from bb %d"
33254 msgstr "caida para salir del bb %d"
33255
33256-#: tree-cfg.c:4638
33257+#: tree-cfg.c:4635
33258 #, gcc-internal-format
33259 msgid "nonlocal label "
33260 msgstr "etiqueta no local "
33261
33262-#: tree-cfg.c:4647
33263+#: tree-cfg.c:4644
33264 #, gcc-internal-format
33265 msgid "EH landing pad label "
33266 msgstr "etiqueta de relleno de aterrizaje EH "
33267
33268-#: tree-cfg.c:4656 tree-cfg.c:4665 tree-cfg.c:4690
33269+#: tree-cfg.c:4653 tree-cfg.c:4662 tree-cfg.c:4687
33270 #, gcc-internal-format
33271 msgid "label "
33272 msgstr "etiqueta "
33273
33274-#: tree-cfg.c:4680
33275+#: tree-cfg.c:4677
33276 #, gcc-internal-format, gfc-internal-format
33277 msgid "control flow in the middle of basic block %d"
33278 msgstr "control de flujo enmedio del bloque básico %d"
33279
33280-#: tree-cfg.c:4713
33281+#: tree-cfg.c:4710
33282 #, gcc-internal-format, gfc-internal-format
33283 msgid "fallthru edge after a control statement in bb %d"
33284 msgstr "borde de caída después de una sentencia de control en bb %d"
33285
33286-#: tree-cfg.c:4726
33287+#: tree-cfg.c:4723
33288 #, gcc-internal-format, gfc-internal-format
33289 msgid "true/false edge after a non-GIMPLE_COND in bb %d"
33290 msgstr "borde verdadero/falso después de una expresión que no es GIMPLE_COND en bb %d"
33291
33292-#: tree-cfg.c:4749 tree-cfg.c:4771 tree-cfg.c:4788 tree-cfg.c:4857
33293+#: tree-cfg.c:4746 tree-cfg.c:4768 tree-cfg.c:4785 tree-cfg.c:4854
33294 #, gcc-internal-format, gfc-internal-format
33295 msgid "wrong outgoing edge flags at end of bb %d"
33296 msgstr "banderas de borde de salida erróneas al final del bb %d"
33297
33298-#: tree-cfg.c:4759
33299+#: tree-cfg.c:4756
33300 #, gcc-internal-format, gfc-internal-format
33301 msgid "explicit goto at end of bb %d"
33302 msgstr "goto explícito al final del bb %d"
33303
33304-#: tree-cfg.c:4793
33305+#: tree-cfg.c:4790
33306 #, gcc-internal-format, gfc-internal-format
33307 msgid "return edge does not point to exit in bb %d"
33308 msgstr "el borde de devolución no apunta a exit en el bb %d"
33309
33310-#: tree-cfg.c:4823
33311+#: tree-cfg.c:4820
33312 #, gcc-internal-format
33313 msgid "found default case not at the start of case vector"
33314 msgstr "se encontró un case por defecto que no está al inicio del vector case"
33315
33316-#: tree-cfg.c:4831
33317+#: tree-cfg.c:4828
33318 #, gcc-internal-format
33319 msgid "case labels not sorted: "
33320 msgstr "las etiquetas case no están ordenadas:"
33321
33322-#: tree-cfg.c:4848
33323+#: tree-cfg.c:4845
33324 #, gcc-internal-format, gfc-internal-format
33325 msgid "extra outgoing edge %d->%d"
33326 msgstr "borde de salida extra %d->%d"
33327
33328-#: tree-cfg.c:4871
33329+#: tree-cfg.c:4868
33330 #, gcc-internal-format, gfc-internal-format
33331 msgid "missing edge %i->%i"
33332 msgstr "falta el borde %i->%i"
33333
33334-#: tree-cfg.c:7527
33335+#: tree-cfg.c:7524
33336 #, gcc-internal-format
33337 msgid "%<noreturn%> function does return"
33338 msgstr "la función %<noreturn%> devuelve"
33339
33340-#: tree-cfg.c:7547
33341+#: tree-cfg.c:7544
33342 #, gcc-internal-format
33343 msgid "control reaches end of non-void function"
33344 msgstr "el control alcanza el final de una función que no es void"
33345
33346-#: tree-cfg.c:7685
33347+#: tree-cfg.c:7682
33348 #, gcc-internal-format
33349 msgid "ignoring return value of %qD, declared with attribute warn_unused_result"
33350 msgstr "se descarta el valor de devolución de %qD, se declaró con el atributo warn_unused_result"
33351
33352-#: tree-cfg.c:7690
33353+#: tree-cfg.c:7687
33354 #, gcc-internal-format
33355 msgid "ignoring return value of function declared with attribute warn_unused_result"
33356 msgstr "se descarta el valor de devolución de la función declarada con atributo warn_unused_result"
33357@@ -19479,12 +19634,12 @@
33358 msgid "mudflap: this language is not supported"
33359 msgstr "mudflap: este lenguaje no se admite"
33360
33361-#: tree-optimize.c:448
33362+#: tree-optimize.c:450
33363 #, gcc-internal-format
33364 msgid "size of return value of %q+D is %u bytes"
33365 msgstr "el tamaño del valor de devolución de %q+D es de %u bytes"
33366
33367-#: tree-optimize.c:451
33368+#: tree-optimize.c:453
33369 #, gcc-internal-format
33370 msgid "size of return value of %q+D is larger than %wd bytes"
33371 msgstr "el tamaño del valor de devolución de %q+D es más grande que %wd bytes"
33372@@ -19500,52 +19655,52 @@
33373 msgid "unimplemented functionality"
33374 msgstr "funcionalidad sin implementar"
33375
33376-#: tree-ssa-operands.c:1116
33377+#: tree-ssa-operands.c:1127
33378 #, gcc-internal-format
33379 msgid "virtual definition of statement not up-to-date"
33380 msgstr "la definición virtual de la declaración no está actualizada"
33381
33382-#: tree-ssa-operands.c:1123
33383+#: tree-ssa-operands.c:1134
33384 #, gcc-internal-format
33385 msgid "virtual def operand missing for stmt"
33386 msgstr "falta el operando def virtual para stmt"
33387
33388-#: tree-ssa-operands.c:1133
33389+#: tree-ssa-operands.c:1144
33390 #, gcc-internal-format
33391 msgid "virtual use of statement not up-to-date"
33392 msgstr "el uso de la declaración virtual no está actualizada"
33393
33394-#: tree-ssa-operands.c:1140
33395+#: tree-ssa-operands.c:1151
33396 #, gcc-internal-format
33397 msgid "virtual use operand missing for stmt"
33398 msgstr "falta el operando use virtual para stmt"
33399
33400-#: tree-ssa-operands.c:1156
33401+#: tree-ssa-operands.c:1167
33402 #, gcc-internal-format
33403 msgid "excess use operand for stmt"
33404 msgstr "operando use en exceso para stmt"
33405
33406-#: tree-ssa-operands.c:1164
33407+#: tree-ssa-operands.c:1175
33408 #, gcc-internal-format
33409 msgid "use operand missing for stmt"
33410 msgstr "falta el operando use para stmt"
33411
33412-#: tree-ssa-operands.c:1181
33413+#: tree-ssa-operands.c:1192
33414 #, gcc-internal-format
33415 msgid "excess def operand for stmt"
33416 msgstr "operando def en exceso para stmt"
33417
33418-#: tree-ssa-operands.c:1189
33419+#: tree-ssa-operands.c:1200
33420 #, gcc-internal-format
33421 msgid "def operand missing for stmt"
33422 msgstr "falta el operando def para stmt"
33423
33424-#: tree-ssa-operands.c:1196
33425+#: tree-ssa-operands.c:1207
33426 #, gcc-internal-format
33427 msgid "stmt volatile flag not up-to-date"
33428 msgstr "la opción volatile de stmt no está actualizada"
33429
33430-#: tree-ssa-uninit.c:1958 tree-ssa.c:1655
33431+#: tree-ssa-uninit.c:1958 tree-ssa.c:1653
33432 #, gcc-internal-format
33433 msgid "%qD may be used uninitialized in this function"
33434 msgstr "puede ser que se utilice %qD sin inicializar en esta función"
33435@@ -19595,7 +19750,7 @@
33436 msgid "SSA_NAME created in two different blocks %i and %i"
33437 msgstr "se creó SSA_NAME en dos bloques diferentes %i y %i"
33438
33439-#: tree-ssa.c:709 tree-ssa.c:1023
33440+#: tree-ssa.c:709 tree-ssa.c:1021
33441 #, gcc-internal-format
33442 msgid "SSA_NAME_DEF_STMT is wrong"
33443 msgstr "SSA_NAME_DEF_STMT es erróneo"
33444@@ -19650,37 +19805,37 @@
33445 msgid "wrong edge %d->%d for PHI argument"
33446 msgstr "borde erróneo %d->%d para el argumento PHI"
33447
33448-#: tree-ssa.c:970
33449+#: tree-ssa.c:968
33450 #, gcc-internal-format, gfc-internal-format
33451 msgid "AUX pointer initialized for edge %d->%d"
33452 msgstr "se inicializó el puntero AUX para el borde %d->%d"
33453
33454-#: tree-ssa.c:995
33455+#: tree-ssa.c:993
33456 #, gcc-internal-format
33457 msgid "stmt (%p) marked modified after optimization pass: "
33458 msgstr "se modificó el stmt (%p) marcado después del paso de optimización: "
33459
33460-#: tree-ssa.c:1052
33461+#: tree-ssa.c:1050
33462 #, gcc-internal-format
33463 msgid "verify_ssa failed"
33464 msgstr "falló verify_ssa"
33465
33466-#: tree-ssa.c:1618 varasm.c:321
33467+#: tree-ssa.c:1616 varasm.c:321
33468 #, gcc-internal-format
33469 msgid "%qD was declared here"
33470 msgstr "%qD se declaró aquí"
33471
33472-#: tree-ssa.c:1650
33473+#: tree-ssa.c:1648
33474 #, gcc-internal-format
33475 msgid "%qD is used uninitialized in this function"
33476 msgstr "se utiliza %qD sin inicializar en esta función"
33477
33478-#: tree-ssa.c:1687
33479+#: tree-ssa.c:1685
33480 #, gcc-internal-format
33481 msgid "%qE is used uninitialized in this function"
33482 msgstr "se utiliza %qE sin inicializar en esta función"
33483
33484-#: tree-ssa.c:1692
33485+#: tree-ssa.c:1690
33486 #, gcc-internal-format
33487 msgid "%qE may be used uninitialized in this function"
33488 msgstr "puede ser que se utilice %qE sin inicializar en esta función"
33489@@ -19780,22 +19935,22 @@
33490 msgid "ignoring attributes applied to %qT after definition"
33491 msgstr "se descartan los atributos aplicados al %qT después de la definición"
33492
33493-#: tree.c:5457
33494+#: tree.c:5459
33495 #, gcc-internal-format
33496 msgid "%q+D already declared with dllexport attribute: dllimport ignored"
33497 msgstr "%q+D se declaró anteriormente con el atributo dllimport: se descarta dllimport"
33498
33499-#: tree.c:5469
33500+#: tree.c:5471
33501 #, gcc-internal-format
33502 msgid "%q+D redeclared without dllimport attribute after being referenced with dll linkage"
33503 msgstr "%q+D se redeclara sin el atributo dllimport después de ser referenciado con enlace dllimport"
33504
33505-#: tree.c:5484
33506+#: tree.c:5486
33507 #, gcc-internal-format
33508 msgid "%q+D redeclared without dllimport attribute: previous dllimport ignored"
33509 msgstr "%q+D se redeclara sin el atributo dllimport: se descarta el dllimport previo"
33510
33511-#: tree.c:5527 tree.c:5539 tree.c:5549 c-family/c-common.c:5865
33512+#: tree.c:5529 tree.c:5541 tree.c:5551 c-family/c-common.c:5865
33513 #: c-family/c-common.c:5884 c-family/c-common.c:5902 c-family/c-common.c:5930
33514 #: c-family/c-common.c:5957 c-family/c-common.c:5983 c-family/c-common.c:6002
33515 #: c-family/c-common.c:6019 c-family/c-common.c:6043 c-family/c-common.c:6066
33516@@ -19810,140 +19965,140 @@
33517 #: c-family/c-common.c:7680 c-family/c-common.c:7971 c-family/c-common.c:7994
33518 #: c-family/c-common.c:8033 c-family/c-common.c:8111 c-family/c-common.c:8260
33519 #: config/darwin.c:1942 config/arm/arm.c:5007 config/arm/arm.c:5035
33520-#: config/arm/arm.c:5052 config/avr/avr.c:6728 config/h8300/h8300.c:5418
33521-#: config/h8300/h8300.c:5442 config/i386/i386.c:4944 config/i386/i386.c:31811
33522-#: config/ia64/ia64.c:734 config/rs6000/rs6000.c:24318 config/spu/spu.c:4035
33523-#: ada/gcc-interface/utils.c:5482 lto/lto-lang.c:215
33524+#: config/arm/arm.c:5052 config/avr/avr.c:6846 config/h8300/h8300.c:5418
33525+#: config/h8300/h8300.c:5442 config/i386/i386.c:4944 config/i386/i386.c:31845
33526+#: config/ia64/ia64.c:734 config/rs6000/rs6000.c:24335 config/spu/spu.c:4035
33527+#: ada/gcc-interface/utils.c:5488 lto/lto-lang.c:215
33528 #, gcc-internal-format
33529 msgid "%qE attribute ignored"
33530 msgstr "se descarta el atributo %qE"
33531
33532-#: tree.c:5567
33533+#: tree.c:5569
33534 #, gcc-internal-format
33535 msgid "inline function %q+D declared as dllimport: attribute ignored"
33536 msgstr "la función inline %q+D se declara como dllimport: se descarta el atributo"
33537
33538-#: tree.c:5575
33539+#: tree.c:5577
33540 #, gcc-internal-format
33541 msgid "function %q+D definition is marked dllimport"
33542 msgstr "la definición de la función %q+D se marca como dllimport"
33543
33544-#: tree.c:5583
33545+#: tree.c:5585
33546 #, gcc-internal-format
33547 msgid "variable %q+D definition is marked dllimport"
33548 msgstr "la definición de la variable %q+D se marca como dllimport"
33549
33550-#: tree.c:5611
33551+#: tree.c:5613
33552 #, gcc-internal-format
33553 msgid "external linkage required for symbol %q+D because of %qE attribute"
33554 msgstr "se requiere enlace externo para el símbolo %q+D debido al atributo %qE"
33555
33556-#: tree.c:5625
33557+#: tree.c:5627
33558 #, gcc-internal-format
33559 msgid "%qE implies default visibility, but %qD has already been declared with a different visibility"
33560 msgstr "%qE implica visibilidad por defecto, pero %qD ya se había declarado con una visibilidad diferente"
33561
33562-#: tree.c:7375
33563+#: tree.c:7377
33564 #, gcc-internal-format
33565 msgid "arrays of functions are not meaningful"
33566 msgstr "las matrices de funciones no tienen significado"
33567
33568-#: tree.c:7542
33569+#: tree.c:7544
33570 #, gcc-internal-format
33571 msgid "function return type cannot be function"
33572 msgstr "el tipo de devolución de función no puede ser función"
33573
33574-#: tree.c:8838 tree.c:8923 tree.c:8984
33575+#: tree.c:8840 tree.c:8925 tree.c:8986
33576 #, gcc-internal-format, gfc-internal-format
33577 msgid "tree check: %s, have %s in %s, at %s:%d"
33578 msgstr "revisión de árbol: %s, se tiene %s en %s, en %s:%d"
33579
33580-#: tree.c:8875
33581+#: tree.c:8877
33582 #, gcc-internal-format, gfc-internal-format
33583 msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
33584 msgstr "revisión de árbol: no se esperaba ninguno de %s, se tiene %s en %s, en %s:%d"
33585
33586-#: tree.c:8888
33587+#: tree.c:8890
33588 #, gcc-internal-format
33589 msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
33590 msgstr "revisión de árbol: se esperaba la clase %qs, se tiene %qs (%s) en %s, en %s:%d"
33591
33592-#: tree.c:8937
33593+#: tree.c:8939
33594 #, gcc-internal-format
33595 msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
33596 msgstr "revisión de árbol: no se esperaba la clase %qs, se tiene %qs (%s) en %s, en %s:%d"
33597
33598-#: tree.c:8950
33599+#: tree.c:8952
33600 #, gcc-internal-format, gfc-internal-format
33601 msgid "tree check: expected omp_clause %s, have %s in %s, at %s:%d"
33602 msgstr "revisión de árbol: se esperaba omp_clause %s, se tiene %s en %s, en %s:%d"
33603
33604-#: tree.c:9010
33605+#: tree.c:9012
33606 #, gcc-internal-format
33607 msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
33608 msgstr "revisión de árbol: se esperaba un árbol que contenga la estructura %qs, se tiene %qs en %s, en %s:%d"
33609
33610-#: tree.c:9024
33611+#: tree.c:9026
33612 #, gcc-internal-format, gfc-internal-format
33613 msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
33614 msgstr "revisión de árbol: acceso de elt %d de tree_vec con %d elts en %s, en %s:%d"
33615
33616-#: tree.c:9037
33617+#: tree.c:9039
33618 #, gcc-internal-format, gfc-internal-format
33619 msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
33620 msgstr "revisión de árbol: acceso del operando %d de %s con %d operandos en %s, en %s:%d"
33621
33622-#: tree.c:9050
33623+#: tree.c:9052
33624 #, gcc-internal-format, gfc-internal-format
33625 msgid "tree check: accessed operand %d of omp_clause %s with %d operands in %s, at %s:%d"
33626 msgstr "revisión de árbol: acceso del operando %d de omp_clause %s con %d operandos en %s, en %s:%d"
33627
33628-#: tree.c:11330
33629+#: tree.c:11336
33630 #, gcc-internal-format
33631 msgid "%qD is deprecated (declared at %s:%d): %s"
33632 msgstr "%qD es obsoleto (declarado en %s:%d): %s"
33633
33634-#: tree.c:11334
33635+#: tree.c:11340
33636 #, gcc-internal-format
33637 msgid "%qD is deprecated (declared at %s:%d)"
33638 msgstr "%qD es obsoleto (declarado en %s:%d)"
33639
33640-#: tree.c:11359
33641+#: tree.c:11365
33642 #, gcc-internal-format
33643 msgid "%qE is deprecated (declared at %s:%d): %s"
33644 msgstr "%qE es obsoleto (declarado en %s:%d): %s"
33645
33646-#: tree.c:11363
33647+#: tree.c:11369
33648 #, gcc-internal-format
33649 msgid "%qE is deprecated (declared at %s:%d)"
33650 msgstr "%qE es obsoleto (declarado en %s:%d)"
33651
33652-#: tree.c:11370
33653+#: tree.c:11376
33654 #, gcc-internal-format, gfc-internal-format
33655 msgid "type is deprecated (declared at %s:%d): %s"
33656 msgstr "el tipo es obsoleto (declarado en %s:%d): %s"
33657
33658-#: tree.c:11374
33659+#: tree.c:11380
33660 #, gcc-internal-format, gfc-internal-format
33661 msgid "type is deprecated (declared at %s:%d)"
33662 msgstr "el tipo es obsoleto (declarado en %s:%d)"
33663
33664-#: tree.c:11383
33665+#: tree.c:11389
33666 #, gcc-internal-format
33667 msgid "%qE is deprecated: %s"
33668 msgstr "%qE es obsoleto: %s"
33669
33670-#: tree.c:11386
33671+#: tree.c:11392
33672 #, gcc-internal-format
33673 msgid "%qE is deprecated"
33674 msgstr "%qE es obsoleto"
33675
33676-#: tree.c:11391
33677+#: tree.c:11397
33678 #, gcc-internal-format, gfc-internal-format
33679 msgid "type is deprecated: %s"
33680 msgstr "el tipo es obsoleto: %s"
33681
33682-#: tree.c:11394
33683+#: tree.c:11400
33684 #, gcc-internal-format
33685 msgid "type is deprecated"
33686 msgstr "el tipo es obsoleto"
33687@@ -19983,12 +20138,12 @@
33688 msgid "Skipping target %s with mismatching types for icall "
33689 msgstr "Se salta el objetivo %s con tipos que no coinciden para icall "
33690
33691-#: var-tracking.c:6582
33692+#: var-tracking.c:6586
33693 #, gcc-internal-format
33694 msgid "variable tracking size limit exceeded with -fvar-tracking-assignments, retrying without"
33695 msgstr "se excedió el límite de tamaño de rastreo de variable con -fvar-tracking-assignments, se reintenta sin esa opción"
33696
33697-#: var-tracking.c:6586
33698+#: var-tracking.c:6590
33699 #, gcc-internal-format
33700 msgid "variable tracking size limit exceeded"
33701 msgstr "se excedió el límite de tamaño de rastreo de variable"
33702@@ -20138,6 +20293,11 @@
33703 msgid "visibility attribute not supported in this configuration; ignored"
33704 msgstr "no se admiten los atributos de visibilidad en esta configuración; descartados"
33705
33706+#: varpool.c:486
33707+#, gcc-internal-format
33708+msgid "variable %q+D part of alias cycle"
33709+msgstr "la variable %q+D es parte de un ciclo de alias"
33710+
33711 #: vec.c:527
33712 #, gcc-internal-format, gfc-internal-format
33713 msgid "vector %s %s domain error, in %s at %s:%u"
33714@@ -20169,8 +20329,8 @@
33715 msgid "string length %qd is greater than the length %qd ISO C%d compilers are required to support"
33716 msgstr "la longitud de la cadena %qd es mayor que la longitud %qd, la máxima que los compiladores ISO C%d deben admitir"
33717
33718-#: c-family/c-common.c:1494 c-family/c-common.c:1506 cp/semantics.c:6634
33719-#: cp/semantics.c:8017
33720+#: c-family/c-common.c:1494 c-family/c-common.c:1506 cp/semantics.c:6649
33721+#: cp/semantics.c:8032
33722 #, gcc-internal-format
33723 msgid "overflow in constant expression"
33724 msgstr "desbordamiento en la expresión constante"
33725@@ -20798,40 +20958,40 @@
33726 msgid "invalid vector type for attribute %qE"
33727 msgstr "tipo de vector inválido para el atributo %qE"
33728
33729-#: c-family/c-common.c:7720 ada/gcc-interface/utils.c:5600
33730-#: ada/gcc-interface/utils.c:5694
33731+#: c-family/c-common.c:7720 ada/gcc-interface/utils.c:5606
33732+#: ada/gcc-interface/utils.c:5700
33733 #, gcc-internal-format
33734 msgid "vector size not an integral multiple of component size"
33735 msgstr "el tamaño del vector no es un múltiplo integral del tamaño del componente"
33736
33737-#: c-family/c-common.c:7726 ada/gcc-interface/utils.c:5606
33738-#: ada/gcc-interface/utils.c:5700
33739+#: c-family/c-common.c:7726 ada/gcc-interface/utils.c:5612
33740+#: ada/gcc-interface/utils.c:5706
33741 #, gcc-internal-format
33742 msgid "zero vector size"
33743 msgstr "vector de tamaño cero"
33744
33745-#: c-family/c-common.c:7734 ada/gcc-interface/utils.c:5614
33746-#: ada/gcc-interface/utils.c:5707
33747+#: c-family/c-common.c:7734 ada/gcc-interface/utils.c:5620
33748+#: ada/gcc-interface/utils.c:5713
33749 #, gcc-internal-format
33750 msgid "number of components of the vector not a power of two"
33751 msgstr "el número de componentes del vector no es una potencia de dos"
33752
33753-#: c-family/c-common.c:7762 ada/gcc-interface/utils.c:5341
33754+#: c-family/c-common.c:7762 ada/gcc-interface/utils.c:5347
33755 #, gcc-internal-format
33756 msgid "nonnull attribute without arguments on a non-prototype"
33757 msgstr "un atributo que no es nulo sin argumento es un atributo que no es prototipo"
33758
33759-#: c-family/c-common.c:7776 ada/gcc-interface/utils.c:5355
33760+#: c-family/c-common.c:7776 ada/gcc-interface/utils.c:5361
33761 #, gcc-internal-format, gfc-internal-format
33762 msgid "nonnull argument has invalid operand number (argument %lu)"
33763 msgstr "un argumento que no es nulo tiene un número de operando inválido (argumento %lu)"
33764
33765-#: c-family/c-common.c:7798 ada/gcc-interface/utils.c:5377
33766+#: c-family/c-common.c:7798 ada/gcc-interface/utils.c:5383
33767 #, gcc-internal-format, gfc-internal-format
33768 msgid "nonnull argument with out-of-range operand number (argument %lu, operand %lu)"
33769 msgstr "un argumento que no es nulo con número de operando fuera de rango (argumento %lu, operando %lu)"
33770
33771-#: c-family/c-common.c:7806 ada/gcc-interface/utils.c:5386
33772+#: c-family/c-common.c:7806 ada/gcc-interface/utils.c:5392
33773 #, gcc-internal-format, gfc-internal-format
33774 msgid "nonnull argument references non-pointer operand (argument %lu, operand %lu)"
33775 msgstr "un argumento que no es nulo hace referencia a un operando que no es puntero (argumento %lu, operando %lu)"
33776@@ -20871,12 +21031,12 @@
33777 msgid "%qE attribute only applies to variadic functions"
33778 msgstr "el atributo %qE se aplica solamente a funciones variadic"
33779
33780-#: c-family/c-common.c:8069 ada/gcc-interface/utils.c:5428
33781+#: c-family/c-common.c:8069 ada/gcc-interface/utils.c:5434
33782 #, gcc-internal-format
33783 msgid "requested position is not an integer constant"
33784 msgstr "la posición solicitada no es una constante entera"
33785
33786-#: c-family/c-common.c:8077 ada/gcc-interface/utils.c:5435
33787+#: c-family/c-common.c:8077 ada/gcc-interface/utils.c:5441
33788 #, gcc-internal-format
33789 msgid "requested position is less than zero"
33790 msgstr "la posición solicitada es menor a cero"
33791@@ -21126,177 +21286,177 @@
33792 msgid "size of array is too large"
33793 msgstr "el tamaño de la matriz es demasiado grande"
33794
33795-#: c-family/c-common.c:9425
33796+#: c-family/c-common.c:9427
33797 #, gcc-internal-format
33798 msgid "incorrect number of arguments to function %qE"
33799 msgstr "número incorrecto de argumentos para la función %qE"
33800
33801-#: c-family/c-common.c:9433
33802+#: c-family/c-common.c:9435
33803 #, gcc-internal-format
33804 msgid "argument 1 of %qE must be a non-void pointer type"
33805 msgstr "el argumento 1 de %qE debe ser un tipo puntero que no sea void"
33806
33807-#: c-family/c-common.c:9442
33808+#: c-family/c-common.c:9444
33809 #, gcc-internal-format
33810 msgid "argument 1 of %qE must be a pointer to a constant size type"
33811 msgstr "el argumento 1 de %qE debe ser un puntero a un tipo de tamaño constante"
33812
33813-#: c-family/c-common.c:9453
33814+#: c-family/c-common.c:9455
33815 #, gcc-internal-format
33816 msgid "argument 1 of %qE must be a pointer to a nonzero size object"
33817 msgstr "el argumento 1 de %qE debe ser un puntero a un objeto de tamaño diferente de cero"
33818
33819-#: c-family/c-common.c:9468
33820+#: c-family/c-common.c:9470
33821 #, gcc-internal-format
33822 msgid "argument %d of %qE must be a pointer type"
33823 msgstr "el argumento %d de %qE debe ser un tipo puntero"
33824
33825-#: c-family/c-common.c:9475
33826+#: c-family/c-common.c:9477
33827 #, gcc-internal-format
33828 msgid "size mismatch in argument %d of %qE"
33829 msgstr "no coincide el tamaño en el argumento %d de %qE"
33830
33831-#: c-family/c-common.c:9491
33832+#: c-family/c-common.c:9493
33833 #, gcc-internal-format
33834 msgid "invalid memory model argument %d of %qE"
33835 msgstr "argumento de modelo de memoria %d inválido de %qE"
33836
33837-#: c-family/c-common.c:9498
33838+#: c-family/c-common.c:9500
33839 #, gcc-internal-format
33840 msgid "non-integer memory model argument %d of %qE"
33841 msgstr "argumento de modelo de memoria %d que no es entero de %qE"
33842
33843-#: c-family/c-common.c:10024
33844+#: c-family/c-common.c:10026
33845 #, gcc-internal-format
33846 msgid "array subscript has type %<char%>"
33847 msgstr "el subíndice de la matriz es de tipo %<char%>"
33848
33849-#: c-family/c-common.c:10059
33850+#: c-family/c-common.c:10061
33851 #, gcc-internal-format
33852 msgid "suggest parentheses around %<+%> inside %<<<%>"
33853 msgstr "se sugieren paréntesis alrededor de %<+%> dentro de %<<<%>"
33854
33855-#: c-family/c-common.c:10062
33856+#: c-family/c-common.c:10064
33857 #, gcc-internal-format
33858 msgid "suggest parentheses around %<-%> inside %<<<%>"
33859 msgstr "se sugieren paréntesis alrededor de %<-%> dentro de %<<<%>"
33860
33861-#: c-family/c-common.c:10068
33862+#: c-family/c-common.c:10070
33863 #, gcc-internal-format
33864 msgid "suggest parentheses around %<+%> inside %<>>%>"
33865 msgstr "se sugieren paréntesis alrededor de %<+%> dentro de %<>>%>"
33866
33867-#: c-family/c-common.c:10071
33868+#: c-family/c-common.c:10073
33869 #, gcc-internal-format
33870 msgid "suggest parentheses around %<-%> inside %<>>%>"
33871 msgstr "se sugieren paréntesis alrededor de %<-%> dentro de %<>>%>"
33872
33873-#: c-family/c-common.c:10077
33874+#: c-family/c-common.c:10079
33875 #, gcc-internal-format
33876 msgid "suggest parentheses around %<&&%> within %<||%>"
33877 msgstr "se sugieren paréntesis alrededor de %<&&%> junto con %<||%>"
33878
33879-#: c-family/c-common.c:10086
33880+#: c-family/c-common.c:10088
33881 #, gcc-internal-format
33882 msgid "suggest parentheses around arithmetic in operand of %<|%>"
33883 msgstr "se sugieren paréntesis alrededor de la aritmética para un operando de %<|%>"
33884
33885-#: c-family/c-common.c:10091
33886+#: c-family/c-common.c:10093
33887 #, gcc-internal-format
33888 msgid "suggest parentheses around comparison in operand of %<|%>"
33889 msgstr "se sugieren paréntesis alrededor de la comparación para un operando de %<|%>"
33890
33891-#: c-family/c-common.c:10095
33892+#: c-family/c-common.c:10097
33893 #, gcc-internal-format
33894 msgid "suggest parentheses around operand of %<!%> or change %<|%> to %<||%> or %<!%> to %<~%>"
33895 msgstr "se sugieren paréntesis alrededor del operando de %<!%> o cambie %<|%> a %<||%> o %<!%> a %<~%>"
33896
33897-#: c-family/c-common.c:10105
33898+#: c-family/c-common.c:10107
33899 #, gcc-internal-format
33900 msgid "suggest parentheses around arithmetic in operand of %<^%>"
33901 msgstr "se sugieren paréntesis alrededor de la aritmética para un operando de %<^%>"
33902
33903-#: c-family/c-common.c:10110
33904+#: c-family/c-common.c:10112
33905 #, gcc-internal-format
33906 msgid "suggest parentheses around comparison in operand of %<^%>"
33907 msgstr "se sugieren paréntesis alrededor de la comparación para un operando de %<^%>"
33908
33909-#: c-family/c-common.c:10116
33910+#: c-family/c-common.c:10118
33911 #, gcc-internal-format
33912 msgid "suggest parentheses around %<+%> in operand of %<&%>"
33913 msgstr "se sugieren paréntesis alrededor de %<+%> para un operando de %<&%>"
33914
33915-#: c-family/c-common.c:10119
33916+#: c-family/c-common.c:10121
33917 #, gcc-internal-format
33918 msgid "suggest parentheses around %<-%> in operand of %<&%>"
33919 msgstr "se sugieren paréntesis alrededor de %<-%> para un operando de %<&%>"
33920
33921-#: c-family/c-common.c:10124
33922+#: c-family/c-common.c:10126
33923 #, gcc-internal-format
33924 msgid "suggest parentheses around comparison in operand of %<&%>"
33925 msgstr "se sugieren paréntesis alrededor de la comparación para un operando de %<&%>"
33926
33927-#: c-family/c-common.c:10128
33928+#: c-family/c-common.c:10130
33929 #, gcc-internal-format
33930 msgid "suggest parentheses around operand of %<!%> or change %<&%> to %<&&%> or %<!%> to %<~%>"
33931 msgstr "se sugieren paréntesis alrededor de un operando de %<!%> o cambie %<&%> a %<&&%> o %<!%> a %<~%>"
33932
33933-#: c-family/c-common.c:10136
33934+#: c-family/c-common.c:10138
33935 #, gcc-internal-format
33936 msgid "suggest parentheses around comparison in operand of %<==%>"
33937 msgstr "se sugieren paréntesis alrededor de la comparación en un operando de %<==%>"
33938
33939-#: c-family/c-common.c:10142
33940+#: c-family/c-common.c:10144
33941 #, gcc-internal-format
33942 msgid "suggest parentheses around comparison in operand of %<!=%>"
33943 msgstr "se sugieren paréntesis alrededor de la comparación en un operando de %<!=%>"
33944
33945-#: c-family/c-common.c:10153
33946+#: c-family/c-common.c:10155
33947 #, gcc-internal-format
33948 msgid "comparisons like %<X<=Y<=Z%> do not have their mathematical meaning"
33949 msgstr "las comparaciones como %<X<=Y<=Z%> no tienen su significado matemático"
33950
33951-#: c-family/c-common.c:10168
33952+#: c-family/c-common.c:10170
33953 #, gcc-internal-format
33954 msgid "label %q+D defined but not used"
33955 msgstr "se define la etiqueta %q+D pero no se usa"
33956
33957-#: c-family/c-common.c:10170
33958+#: c-family/c-common.c:10172
33959 #, gcc-internal-format
33960 msgid "label %q+D declared but not defined"
33961 msgstr "se declara la etiqueta %q+D pero no está definida"
33962
33963-#: c-family/c-common.c:10186
33964+#: c-family/c-common.c:10188
33965 #, gcc-internal-format
33966 msgid "division by zero"
33967 msgstr "división por cero"
33968
33969-#: c-family/c-common.c:10218
33970+#: c-family/c-common.c:10220
33971 #, gcc-internal-format
33972 msgid "comparison between types %qT and %qT"
33973 msgstr "comparación entre los tipos %qT y %qT"
33974
33975-#: c-family/c-common.c:10269
33976+#: c-family/c-common.c:10271
33977 #, gcc-internal-format
33978 msgid "comparison between signed and unsigned integer expressions"
33979 msgstr "comparación entre expresiones enteras signed y unsigned"
33980
33981-#: c-family/c-common.c:10320
33982+#: c-family/c-common.c:10322
33983 #, gcc-internal-format
33984 msgid "promoted ~unsigned is always non-zero"
33985 msgstr "el ~unsigned promovido es siempre diferente de cero"
33986
33987-#: c-family/c-common.c:10323
33988+#: c-family/c-common.c:10325
33989 #, gcc-internal-format
33990 msgid "comparison of promoted ~unsigned with constant"
33991 msgstr "comparación de un ~unsigned promovido con una constante"
33992
33993-#: c-family/c-common.c:10333
33994+#: c-family/c-common.c:10335
33995 #, gcc-internal-format
33996 msgid "comparison of promoted ~unsigned with unsigned"
33997 msgstr "comparación de un ~unsigned promovido con unsigned"
33998
33999-#: c-family/c-common.c:10511
34000+#: c-family/c-common.c:10513
34001 #, gcc-internal-format
34002 msgid "typedef %qD locally defined but not used"
34003 msgstr "se define tipo %qD localmente pero no se usa"
34004@@ -22560,7 +22720,7 @@
34005 #. coalesced sections. Weak aliases (or any other kind of aliases) are
34006 #. not supported. Weak symbols that aren't visible outside the .s file
34007 #. are not supported.
34008-#: config/darwin.h:439
34009+#: config/darwin.h:441
34010 #, gcc-internal-format
34011 msgid "alias definitions not supported in Mach-O; ignored"
34012 msgstr "las definiciones de alias no se admiten en Mach-O; descartadas"
34013@@ -22571,284 +22731,285 @@
34014 msgid "profiler support for VxWorks"
34015 msgstr "soporte de análisis de perfil para VxWorks"
34016
34017-#: config/alpha/alpha.c:277
34018+#: config/alpha/alpha.c:282
34019 #, gcc-internal-format
34020 msgid "bad value %qs for -mtrap-precision switch"
34021 msgstr "valor %qs erróneo para el interruptor -mtrap-precision"
34022
34023-#: config/alpha/alpha.c:291
34024+#: config/alpha/alpha.c:296
34025 #, gcc-internal-format
34026 msgid "bad value %qs for -mfp-rounding-mode switch"
34027 msgstr "valor %qs erróneo para el interruptor -mfp-rounding-mode"
34028
34029-#: config/alpha/alpha.c:306
34030+#: config/alpha/alpha.c:311
34031 #, gcc-internal-format
34032 msgid "bad value %qs for -mfp-trap-mode switch"
34033 msgstr "valor %qs erróneo para el interruptor -mfp-trap-mode"
34034
34035-#: config/alpha/alpha.c:320
34036+#: config/alpha/alpha.c:325
34037 #, gcc-internal-format
34038 msgid "bad value %qs for -mcpu switch"
34039 msgstr "valor %qs erróneo para el interruptor -mcpu"
34040
34041-#: config/alpha/alpha.c:332
34042+#: config/alpha/alpha.c:337
34043 #, gcc-internal-format
34044 msgid "bad value %qs for -mtune switch"
34045 msgstr "valor erróneo %qs para la opción -mtune"
34046
34047-#: config/alpha/alpha.c:340
34048+#: config/alpha/alpha.c:345
34049 #, gcc-internal-format
34050 msgid "fp software completion requires -mtrap-precision=i"
34051 msgstr "el completado por software de fp requiere una opción -mtrap-precision=i"
34052
34053-#: config/alpha/alpha.c:356
34054+#: config/alpha/alpha.c:361
34055 #, gcc-internal-format
34056 msgid "rounding mode not supported for VAX floats"
34057 msgstr "el modo de redondeo no se admite para floats de VAX"
34058
34059-#: config/alpha/alpha.c:361
34060+#: config/alpha/alpha.c:366
34061 #, gcc-internal-format
34062 msgid "trap mode not supported for VAX floats"
34063 msgstr "el modo de captura no se admite para valores de coma flotante VAX"
34064
34065-#: config/alpha/alpha.c:365
34066+#: config/alpha/alpha.c:370
34067 #, gcc-internal-format
34068 msgid "128-bit long double not supported for VAX floats"
34069 msgstr "los long double de 128 bits no se admiten para valores de coma flotante VAX"
34070
34071-#: config/alpha/alpha.c:393
34072+#: config/alpha/alpha.c:398
34073 #, gcc-internal-format, gfc-internal-format
34074 msgid "L%d cache latency unknown for %s"
34075 msgstr "latencia de caché L%d desconocida para %s"
34076
34077-#: config/alpha/alpha.c:408
34078+#: config/alpha/alpha.c:413
34079 #, gcc-internal-format
34080 msgid "bad value %qs for -mmemory-latency"
34081 msgstr "valor %qs erróneo para -mmemory-latency"
34082
34083-#: config/alpha/alpha.c:6551 config/alpha/alpha.c:6554 config/s390/s390.c:9157
34084-#: config/s390/s390.c:9160
34085+#: config/alpha/alpha.c:6556 config/alpha/alpha.c:6559 config/s390/s390.c:9162
34086+#: config/s390/s390.c:9165 config/tilegx/tilegx.c:3394
34087+#: config/tilepro/tilepro.c:3098
34088 #, gcc-internal-format
34089 msgid "bad builtin fcode"
34090 msgstr "fcode interno erróneo"
34091
34092-#: config/arm/arm.c:1523
34093+#: config/arm/arm.c:1512
34094 #, gcc-internal-format, gfc-internal-format
34095 msgid "switch -mcpu=%s conflicts with -march=%s switch"
34096 msgstr "la opción -mcpu=%s genera un conflicto con la opción -march=%s"
34097
34098-#: config/arm/arm.c:1640
34099+#: config/arm/arm.c:1629
34100 #, gcc-internal-format
34101 msgid "target CPU does not support ARM mode"
34102 msgstr "el CPU objetivo no tiene soporte para el modo ARM"
34103
34104-#: config/arm/arm.c:1646
34105+#: config/arm/arm.c:1635
34106 #, gcc-internal-format
34107 msgid "target CPU does not support interworking"
34108 msgstr "el CPU objetivo no admite trabajo interno"
34109
34110-#: config/arm/arm.c:1652
34111+#: config/arm/arm.c:1641
34112 #, gcc-internal-format
34113 msgid "target CPU does not support THUMB instructions"
34114 msgstr "el CPU objetivo no admite las instrucciones THUMB"
34115
34116-#: config/arm/arm.c:1670
34117+#: config/arm/arm.c:1659
34118 #, gcc-internal-format
34119 msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
34120 msgstr "habilitar el soporte de rastreo hacia atrás sólo tiene significado cuando se compila para el Thumb"
34121
34122-#: config/arm/arm.c:1673
34123+#: config/arm/arm.c:1662
34124 #, gcc-internal-format
34125 msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
34126 msgstr "habilitar el soporte de trabajo interno de llamado sólo tiene significado cuando se compila para el Thumb"
34127
34128-#: config/arm/arm.c:1677
34129+#: config/arm/arm.c:1666
34130 #, gcc-internal-format
34131 msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
34132 msgstr "-mapcs-stack-check es incompatible con -mno-apcs-frame"
34133
34134-#: config/arm/arm.c:1685
34135+#: config/arm/arm.c:1674
34136 #, gcc-internal-format
34137 msgid "-fpic and -mapcs-reent are incompatible"
34138 msgstr "-fpic y -mapcs-reent son incompatibles"
34139
34140-#: config/arm/arm.c:1688
34141+#: config/arm/arm.c:1677
34142 #, gcc-internal-format
34143 msgid "APCS reentrant code not supported. Ignored"
34144 msgstr "no se admite el código reentrante APCS. Descartado"
34145
34146-#: config/arm/arm.c:1696
34147+#: config/arm/arm.c:1685
34148 #, gcc-internal-format
34149 msgid "-g with -mno-apcs-frame may not give sensible debugging"
34150 msgstr "-g con -mno-apcs-frame no permite una depuración sensible"
34151
34152-#: config/arm/arm.c:1699
34153+#: config/arm/arm.c:1688
34154 #, gcc-internal-format
34155 msgid "passing floating point arguments in fp regs not yet supported"
34156 msgstr "aún no se admite el paso de argumentos de coma flotante en registros fp"
34157
34158-#: config/arm/arm.c:1702
34159+#: config/arm/arm.c:1691
34160 #, gcc-internal-format
34161 msgid "%<mwords-little-endian%> is deprecated and will be removed in a future release"
34162 msgstr "%<mwords-little-endian%> es obsoleto y se eliminará en una versión futura"
34163
34164-#: config/arm/arm.c:1764
34165+#: config/arm/arm.c:1753
34166 #, gcc-internal-format
34167 msgid "iwmmxt requires an AAPCS compatible ABI for proper operation"
34168 msgstr "iwmmxt requiere una ABI compatible con AAPCS para una operación adecuada"
34169
34170-#: config/arm/arm.c:1767
34171+#: config/arm/arm.c:1756
34172 #, gcc-internal-format
34173 msgid "iwmmxt abi requires an iwmmxt capable cpu"
34174 msgstr "el abi iwmmxt requiere un cpu capaz de iwmmxt"
34175
34176-#: config/arm/arm.c:1815
34177+#: config/arm/arm.c:1804
34178 #, gcc-internal-format
34179 msgid "FPA is unsupported in the AAPCS"
34180 msgstr "no se admite FPA en el AAPCS"
34181
34182-#: config/arm/arm.c:1820
34183+#: config/arm/arm.c:1809
34184 #, gcc-internal-format
34185 msgid "AAPCS does not support -mcaller-super-interworking"
34186 msgstr "AAPCS no admite -mcaller-super-interworking"
34187
34188-#: config/arm/arm.c:1823
34189+#: config/arm/arm.c:1812
34190 #, gcc-internal-format
34191 msgid "AAPCS does not support -mcallee-super-interworking"
34192 msgstr "AAPCS no admite -mcallee-super-interworking"
34193
34194-#: config/arm/arm.c:1830
34195+#: config/arm/arm.c:1819
34196 #, gcc-internal-format
34197 msgid "iWMMXt and hardware floating point"
34198 msgstr "coma flotante iWMMXt y de hardware"
34199
34200-#: config/arm/arm.c:1834
34201+#: config/arm/arm.c:1823
34202 #, gcc-internal-format
34203 msgid "Thumb-2 iWMMXt"
34204 msgstr "iWMMXt de Thumb-2"
34205
34206-#: config/arm/arm.c:1838
34207+#: config/arm/arm.c:1827
34208 #, gcc-internal-format
34209 msgid "__fp16 and no ldrh"
34210 msgstr "__fp16 sin ldrh"
34211
34212-#: config/arm/arm.c:1858
34213+#: config/arm/arm.c:1847
34214 #, gcc-internal-format
34215 msgid "-mfloat-abi=hard and VFP"
34216 msgstr "-mfloat-abi=hard y VFP"
34217
34218-#: config/arm/arm.c:1883
34219+#: config/arm/arm.c:1872
34220 #, gcc-internal-format
34221 msgid "can not use -mtp=cp15 with 16-bit Thumb"
34222 msgstr "no se puede usar -mtp=cp15 con Thumb de 16-bit"
34223
34224-#: config/arm/arm.c:1899
34225+#: config/arm/arm.c:1888
34226 #, gcc-internal-format
34227 msgid "structure size boundary can only be set to 8, 32 or 64"
34228 msgstr "el límite del tamaño de la estructura sólo se puede establecer a 8, 32 o 64"
34229
34230-#: config/arm/arm.c:1901
34231+#: config/arm/arm.c:1890
34232 #, gcc-internal-format
34233 msgid "structure size boundary can only be set to 8 or 32"
34234 msgstr "el límite del tamaño de la estructura sólo se puede establecer a 8 o 32"
34235
34236-#: config/arm/arm.c:1909
34237+#: config/arm/arm.c:1898
34238 #, gcc-internal-format
34239 msgid "RTP PIC is incompatible with Thumb"
34240 msgstr "El PIC de RTP es incompatible con Thumb"
34241
34242-#: config/arm/arm.c:1918
34243+#: config/arm/arm.c:1907
34244 #, gcc-internal-format
34245 msgid "RTP PIC is incompatible with -msingle-pic-base"
34246 msgstr "El PIC de RTP es incompatible con -msingle-pic-base"
34247
34248-#: config/arm/arm.c:1930
34249+#: config/arm/arm.c:1919
34250 #, gcc-internal-format
34251 msgid "-mpic-register= is useless without -fpic"
34252 msgstr "-mpic-register= es inútil sin -fpic"
34253
34254-#: config/arm/arm.c:1939
34255+#: config/arm/arm.c:1928
34256 #, gcc-internal-format, gfc-internal-format
34257 msgid "unable to use '%s' for PIC register"
34258 msgstr "no se puede usar '%s' para registro PIC"
34259
34260-#: config/arm/arm.c:1971
34261+#: config/arm/arm.c:1960
34262 #, gcc-internal-format
34263 msgid "target CPU does not support unaligned accesses"
34264 msgstr "el CPU objetivo no admite accesos sin alinear"
34265
34266-#: config/arm/arm.c:1995
34267+#: config/arm/arm.c:1984
34268 #, gcc-internal-format
34269 msgid "-freorder-blocks-and-partition not supported on this architecture"
34270 msgstr "no se admite -freorder-blocks-and-partition en esta arquitectura"
34271
34272-#: config/arm/arm.c:4043
34273+#: config/arm/arm.c:4036
34274 #, gcc-internal-format
34275 msgid "non-AAPCS derived PCS variant"
34276 msgstr "variante PCS derivada de un no AAPCS"
34277
34278-#: config/arm/arm.c:4045
34279+#: config/arm/arm.c:4038
34280 #, gcc-internal-format
34281 msgid "variadic functions must use the base AAPCS variant"
34282 msgstr "las funciones variadic debe usar la variante AAPCS base"
34283
34284-#: config/arm/arm.c:4064
34285+#: config/arm/arm.c:4057
34286 #, gcc-internal-format
34287 msgid "PCS variant"
34288 msgstr "variante PCS"
34289
34290-#: config/arm/arm.c:4259
34291+#: config/arm/arm.c:4252
34292 #, gcc-internal-format
34293 msgid "Thumb-1 hard-float VFP ABI"
34294 msgstr "ABI de VFP de coma flotante dura de Thumb-1"
34295
34296-#: config/arm/arm.c:4975 config/arm/arm.c:4993 config/avr/avr.c:6748
34297-#: config/avr/avr.c:6764 config/bfin/bfin.c:4636 config/bfin/bfin.c:4697
34298+#: config/arm/arm.c:4975 config/arm/arm.c:4993 config/avr/avr.c:6866
34299+#: config/avr/avr.c:6882 config/bfin/bfin.c:4636 config/bfin/bfin.c:4697
34300 #: config/bfin/bfin.c:4726 config/h8300/h8300.c:5394 config/i386/i386.c:4899
34301-#: config/i386/i386.c:31712 config/i386/i386.c:31763 config/i386/i386.c:31836
34302+#: config/i386/i386.c:31746 config/i386/i386.c:31797 config/i386/i386.c:31870
34303 #: config/m68k/m68k.c:725 config/mcore/mcore.c:3076 config/mep/mep.c:4011
34304 #: config/mep/mep.c:4025 config/mep/mep.c:4099 config/rl78/rl78.c:478
34305-#: config/rs6000/rs6000.c:24244 config/rx/rx.c:2502 config/sh/sh.c:8885
34306-#: config/sh/sh.c:8903 config/sh/sh.c:8932 config/sh/sh.c:9014
34307-#: config/sh/sh.c:9037 config/spu/spu.c:3977 config/stormy16/stormy16.c:2200
34308+#: config/rs6000/rs6000.c:24261 config/rx/rx.c:2502 config/sh/sh.c:8890
34309+#: config/sh/sh.c:8908 config/sh/sh.c:8937 config/sh/sh.c:9019
34310+#: config/sh/sh.c:9042 config/spu/spu.c:3977 config/stormy16/stormy16.c:2200
34311 #: config/v850/v850.c:2057
34312 #, gcc-internal-format
34313 msgid "%qE attribute only applies to functions"
34314 msgstr "el atributo %qE se aplica solamente a funciones"
34315
34316-#: config/arm/arm.c:18922
34317+#: config/arm/arm.c:18925
34318 #, gcc-internal-format
34319 msgid "unable to compute real location of stacked parameter"
34320 msgstr "no se puede calcular la ubicación real del parámetro apilado"
34321
34322-#: config/arm/arm.c:20660
34323+#: config/arm/arm.c:20665
34324 #, gcc-internal-format
34325 msgid "argument must be a constant"
34326 msgstr "el argumento debe ser una constante"
34327
34328 #. @@@ better error message
34329-#: config/arm/arm.c:21029 config/arm/arm.c:21066
34330+#: config/arm/arm.c:21034 config/arm/arm.c:21071
34331 #, gcc-internal-format
34332 msgid "selector must be an immediate"
34333 msgstr "el selector debe ser un inmediato"
34334
34335 #. @@@ better error message
34336-#: config/arm/arm.c:21109
34337+#: config/arm/arm.c:21114
34338 #, gcc-internal-format
34339 msgid "mask must be an immediate"
34340 msgstr "la máscara debe ser un inmediato"
34341
34342-#: config/arm/arm.c:21893
34343+#: config/arm/arm.c:21898
34344 #, gcc-internal-format
34345 msgid "no low registers available for popping high registers"
34346 msgstr "no hay registros inferiores disponibles para extraer registros superiores"
34347
34348-#: config/arm/arm.c:22118
34349+#: config/arm/arm.c:22123
34350 #, gcc-internal-format
34351 msgid "interrupt Service Routines cannot be coded in Thumb mode"
34352 msgstr "no se pueden codificar las Rutinas de Servicios de Interrupción en el modo Thumb"
34353
34354-#: config/arm/arm.c:24404
34355+#: config/arm/arm.c:24409
34356 #, gcc-internal-format
34357 msgid "the mangling of %<va_list%> has changed in GCC 4.4"
34358 msgstr "la decodificación de %<va_list%> cambió en GCC 4.4"
34359@@ -22863,91 +23024,101 @@
34360 msgid "static variable %q+D is marked dllimport"
34361 msgstr "la variable estática %q+D se marcó como dllimport"
34362
34363-#: config/avr/avr.c:742
34364+#: config/avr/avr.c:666
34365 #, gcc-internal-format
34366 msgid "'builtin_return_address' contains only 2 bytes of address"
34367 msgstr "'builtin_return_address' sólo contiene 2 bytes de dirección"
34368
34369-#: config/avr/avr.c:1778
34370+#: config/avr/avr.c:1775
34371 #, gcc-internal-format
34372 msgid "pointer offset from symbol maybe incorrect"
34373 msgstr "el desplazamiento del puntero desde el símbolo tal vez es incorrecto"
34374
34375-#: config/avr/avr.c:1895
34376+#: config/avr/avr.c:1898
34377 #, gcc-internal-format
34378 msgid "accessing data memory with program memory address"
34379 msgstr "se accede a memoria de datos con dirección de memoria de programa"
34380
34381-#: config/avr/avr.c:1944
34382+#: config/avr/avr.c:1947
34383 #, gcc-internal-format
34384 msgid "accessing program memory with data memory address"
34385 msgstr "se accede a memoria de programa con dirección de memoria de datos"
34386
34387-#: config/avr/avr.c:2350
34388+#: config/avr/avr.c:2353
34389 #, gcc-internal-format, gfc-internal-format
34390 msgid "fixed register %s used to pass parameter to function"
34391 msgstr "se usó el registro fijo %s para pasar un parámetro a la función"
34392
34393-#: config/avr/avr.c:2622
34394+#: config/avr/avr.c:2625
34395 #, gcc-internal-format
34396 msgid "writing to address space %qs not supported"
34397 msgstr "no se admite escribir al espacio de direcciones %qs"
34398
34399-#: config/avr/avr.c:6660
34400+#: config/avr/avr.c:6778
34401 #, gcc-internal-format
34402 msgid "%qs appears to be a misspelled interrupt handler"
34403 msgstr "%qs parece ser un manejador de interrupciones mal escrito"
34404
34405-#: config/avr/avr.c:6669
34406+#: config/avr/avr.c:6787
34407 #, gcc-internal-format
34408 msgid "%qs appears to be a misspelled signal handler"
34409 msgstr "%qs parece ser un manejador de señales mal escrito"
34410
34411-#: config/avr/avr.c:6932
34412+#: config/avr/avr.c:7060
34413 #, gcc-internal-format
34414+msgid "%qT uses address space %qs beyond flash of %qs"
34415+msgstr "%qT usa el espacio de direcciones %qs más allá del destello de %qs"
34416+
34417+#: config/avr/avr.c:7063
34418+#, gcc-internal-format
34419+msgid "%s %q+D uses address space %qs beyond flash of %qs"
34420+msgstr "%s %q+D usa el espacio de direcciones %qs más allá del destello de %qs"
34421+
34422+#: config/avr/avr.c:7070
34423+#, gcc-internal-format
34424 msgid "pointer targeting address space %qs must be const in %qT"
34425 msgstr "el espacio de direcciones %qs que apuntan a punteros debe ser const en %qT"
34426
34427-#: config/avr/avr.c:6935
34428+#: config/avr/avr.c:7073
34429 #, gcc-internal-format
34430 msgid "pointer targeting address space %qs must be const in %s %q+D"
34431 msgstr "el espacio de direcciones %qs que apuntan a punteros debe ser const en %s %q+D"
34432
34433-#: config/avr/avr.c:6978
34434+#: config/avr/avr.c:7111
34435 #, gcc-internal-format
34436+msgid "variable %q+D located in address space %qs beyond flash of %qs"
34437+msgstr "la variable %q+D se ubica en el espacio de direcciones %qs más allá del destello de %qs"
34438+
34439+#: config/avr/avr.c:7127
34440+#, gcc-internal-format
34441 msgid "variable %q+D must be const in order to be put into read-only section by means of %qs"
34442 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"
34443
34444-#: config/avr/avr.c:7188
34445+#: config/avr/avr.c:7341
34446 #, gcc-internal-format
34447 msgid "only uninitialized variables can be placed in the .noinit section"
34448 msgstr "Sólo las variables sin inicializar se pueden colocar en la sección .noinit"
34449
34450-#: config/avr/avr.c:7229
34451+#: config/avr/avr.c:7382
34452 #, gcc-internal-format
34453 msgid "uninitialized variable %q+D put into program memory area"
34454 msgstr "se colocó la variable %q+D sin inicializar en el área de memoria del programa"
34455
34456-#: config/avr/avr.c:7296
34457+#: config/avr/avr.c:7449
34458 #, gcc-internal-format
34459 msgid "MCU %qs supported for assembler only"
34460 msgstr "MCU %qs sólo se admite para ensamblador"
34461
34462-#: config/avr/avr.c:10519
34463+#: config/avr/avr.c:10677
34464 #, gcc-internal-format, gfc-internal-format
34465 msgid "%s expects a compile time integer constant"
34466 msgstr "%s expera una constante entera en tiempo de compilación"
34467
34468-#: config/avr/avr.c:10532
34469+#: config/avr/avr.c:10691
34470 #, gcc-internal-format, gfc-internal-format
34471 msgid "%s expects a compile time long integer constant as first argument"
34472 msgstr "%s espera una constante entera long en tiempo de compilación como primer argumento"
34473
34474-#: config/avr/avr.c:10545
34475-#, gcc-internal-format, gfc-internal-format
34476-msgid "%s expects a compile time long long integer constant as first argument"
34477-msgstr "%s espera una constante entera long long en tiempo de compilación como primer argumento"
34478-
34479 #: config/bfin/bfin.c:2348
34480 #, gcc-internal-format
34481 msgid "-mfdpic is not supported, please use a bfin-linux-uclibc target"
34482@@ -23029,6 +23200,21 @@
34483 msgid "profiling is not yet implemented for this architecture"
34484 msgstr "el análisis de perfil aún no se implementa en esta arquitectura"
34485
34486+#: config/cr16/cr16.c:294
34487+#, gcc-internal-format
34488+msgid "data-model=far not valid for cr16c architecture"
34489+msgstr "data-model=far no es válido para la arquitectura cr16c"
34490+
34491+#: config/cr16/cr16.c:297
34492+#, gcc-internal-format, gfc-internal-format
34493+msgid "invalid data model option -mdata-model=%s"
34494+msgstr "opción de modelo de datos -mdata-model=%s inválida"
34495+
34496+#: config/cr16/cr16.h:431
34497+#, gcc-internal-format
34498+msgid "profiler support for CR16"
34499+msgstr "soporte de análisis de perfil para CR16"
34500+
34501 #. This function is for retrieving a part of an instruction name for
34502 #. an operator, for immediate output. If that ever happens for
34503 #. MULT, we need to apply TARGET_MUL_BUG in the caller. Make sure
34504@@ -23168,22 +23354,22 @@
34505 msgid "no FUNCTION_PROFILER for CRIS"
34506 msgstr "no hay FUNCTION_PROFILER para CRIS"
34507
34508-#: config/epiphany/epiphany.c:433
34509+#: config/epiphany/epiphany.c:441 config/epiphany/epiphany.c:481
34510 #, gcc-internal-format
34511 msgid "argument of %qE attribute is not a string constant"
34512 msgstr "el argumento del atributo %qE no es una cadena constante"
34513
34514-#: config/epiphany/epiphany.c:448
34515+#: config/epiphany/epiphany.c:456
34516 #, gcc-internal-format
34517 msgid "argument of %qE attribute is not \"reset\", \"software_exception\", \"page_miss\", \"timer0\", \"timer1\", \"message\", \"dma0\", \"dma1\", \"wand\" or \"swi\""
34518 msgstr "el argumento del atributo %qE no es \"reset\", \"software_exception\", \"page_miss\", \"timer0\", \"timer1\", \"message\", \"dma0\", \"dma1\", \"wand\" o \"swi\""
34519
34520-#: config/epiphany/epiphany.c:1428
34521+#: config/epiphany/epiphany.c:1431
34522 #, gcc-internal-format
34523 msgid "stack_offset must be at least 4"
34524 msgstr "stack_offset debe ser por lo menos 4"
34525
34526-#: config/epiphany/epiphany.c:1430
34527+#: config/epiphany/epiphany.c:1433
34528 #, gcc-internal-format
34529 msgid "stack_offset must be a multiple of 4"
34530 msgstr "stack_offset debe ser un múltiplo de 4"
34531@@ -23390,7 +23576,7 @@
34532 msgid "-mno-fentry isn%'t compatible with SEH"
34533 msgstr "-mno-fentry no es compatible con SEH"
34534
34535-#: config/i386/i386.c:3861 config/rs6000/rs6000.c:3318
34536+#: config/i386/i386.c:3861 config/rs6000/rs6000.c:3331
34537 #, gcc-internal-format, gfc-internal-format
34538 msgid "unknown option for -mrecip=%s"
34539 msgstr "opción desconocida para -mrecip=%s"
34540@@ -23415,7 +23601,7 @@
34541 msgid "regparam and thiscall attributes are not compatible"
34542 msgstr "los atributos regparam y thiscall no son compatibles"
34543
34544-#: config/i386/i386.c:4924 config/i386/i386.c:31732
34545+#: config/i386/i386.c:4924 config/i386/i386.c:31766
34546 #, gcc-internal-format
34547 msgid "%qE attribute requires an integer constant argument"
34548 msgstr "el atributo %qE requiere un argumento constante entero"
34549@@ -23567,112 +23753,112 @@
34550 msgid "-fsplit-stack does not support 3 register parameters"
34551 msgstr "-fsplit-stack no admite 3 parámetros de registro"
34552
34553-#: config/i386/i386.c:13557
34554+#: config/i386/i386.c:13584
34555 #, gcc-internal-format
34556 msgid "extended registers have no high halves"
34557 msgstr "los registros extendidos no tiene mitades superiores"
34558
34559-#: config/i386/i386.c:13572
34560+#: config/i386/i386.c:13599
34561 #, gcc-internal-format
34562 msgid "unsupported operand size for extended register"
34563 msgstr "no se admite el tamaño de operando para el registro extendido"
34564
34565-#: config/i386/i386.c:13819
34566+#: config/i386/i386.c:13846
34567 #, gcc-internal-format, gfc-internal-format
34568 msgid "non-integer operand used with operand code '%c'"
34569 msgstr "se usó un operando que no es entero con el código de operando '%c'"
34570
34571-#: config/i386/i386.c:27703 config/i386/i386.c:28640
34572+#: config/i386/i386.c:27737 config/i386/i386.c:28674
34573 #, gcc-internal-format
34574 msgid "the last argument must be a 2-bit immediate"
34575 msgstr "el tercer argumento debe ser un inmediato de 2-bit"
34576
34577-#: config/i386/i386.c:28109
34578+#: config/i386/i386.c:28143
34579 #, gcc-internal-format
34580 msgid "the fifth argument must be an 8-bit immediate"
34581 msgstr "el quinto argumento debe ser un inmediato de 8-bit"
34582
34583-#: config/i386/i386.c:28204
34584+#: config/i386/i386.c:28238
34585 #, gcc-internal-format
34586 msgid "the third argument must be an 8-bit immediate"
34587 msgstr "el tercer argumento debe ser un inmediato de 8-bit"
34588
34589-#: config/i386/i386.c:28612
34590+#: config/i386/i386.c:28646
34591 #, gcc-internal-format
34592 msgid "the last argument must be an 1-bit immediate"
34593 msgstr "el último argumento debe ser un inmediato de 1-bit"
34594
34595-#: config/i386/i386.c:28631
34596+#: config/i386/i386.c:28665
34597 #, gcc-internal-format
34598 msgid "the last argument must be a 4-bit immediate"
34599 msgstr "el último argumento debe ser un inmediato de 4-bit"
34600
34601-#: config/i386/i386.c:28649
34602+#: config/i386/i386.c:28683
34603 #, gcc-internal-format
34604 msgid "the last argument must be a 1-bit immediate"
34605 msgstr "el último argumento debe ser un inmediato de 1-bit"
34606
34607-#: config/i386/i386.c:28658
34608+#: config/i386/i386.c:28692
34609 #, gcc-internal-format
34610 msgid "the last argument must be a 5-bit immediate"
34611 msgstr "el tercer argumento debe ser un inmediato de 5-bit"
34612
34613-#: config/i386/i386.c:28667
34614+#: config/i386/i386.c:28701
34615 #, gcc-internal-format
34616 msgid "the next to last argument must be an 8-bit immediate"
34617 msgstr "el penúltimo argumento debe ser un inmediato de 8-bit"
34618
34619-#: config/i386/i386.c:28671 config/i386/i386.c:28895
34620+#: config/i386/i386.c:28705 config/i386/i386.c:28929
34621 #, gcc-internal-format
34622 msgid "the last argument must be an 8-bit immediate"
34623 msgstr "el último argumento debe ser un inmediato de 8-bit"
34624
34625-#: config/i386/i386.c:28893
34626+#: config/i386/i386.c:28927
34627 #, gcc-internal-format
34628 msgid "the last argument must be a 32-bit immediate"
34629 msgstr "el último argumento debe ser un inmediato de 32-bit"
34630
34631-#: config/i386/i386.c:28961 config/rs6000/rs6000.c:10535
34632+#: config/i386/i386.c:28995 config/rs6000/rs6000.c:10551
34633 #, gcc-internal-format
34634 msgid "selector must be an integer constant in the range 0..%wi"
34635 msgstr "el selector debe ser una constante entera en el rango 0..%wi"
34636
34637-#: config/i386/i386.c:29104
34638+#: config/i386/i386.c:29138
34639 #, gcc-internal-format
34640 msgid "%qE needs unknown isa option"
34641 msgstr "%qE necesita la opción isa desconocida"
34642
34643-#: config/i386/i386.c:29108
34644+#: config/i386/i386.c:29142
34645 #, gcc-internal-format
34646 msgid "%qE needs isa option %s"
34647 msgstr "%qE necesita la opción isa %s"
34648
34649-#: config/i386/i386.c:29279
34650+#: config/i386/i386.c:29313
34651 #, gcc-internal-format
34652 msgid "last argument must be an immediate"
34653 msgstr "el último argumento debe ser un inmediato"
34654
34655-#: config/i386/i386.c:29473
34656+#: config/i386/i386.c:29507
34657 #, gcc-internal-format
34658 msgid "last argument must be scale 1, 2, 4, 8"
34659 msgstr "el argumento izquierdo debe ser un escalar 1, 2, 4, 8"
34660
34661-#: config/i386/i386.c:31719
34662+#: config/i386/i386.c:31753
34663 #, gcc-internal-format
34664 msgid "%qE attribute only available for 32-bit"
34665 msgstr "el atributo %qE solamente está disponible para 64-bit"
34666
34667-#: config/i386/i386.c:31740
34668+#: config/i386/i386.c:31774
34669 #, gcc-internal-format
34670 msgid "argument to %qE attribute is neither zero, nor one"
34671 msgstr "el argumento del atributo %qE no es cero ni uno"
34672
34673-#: config/i386/i386.c:31774 config/i386/i386.c:31783
34674+#: config/i386/i386.c:31808 config/i386/i386.c:31817
34675 #, gcc-internal-format
34676 msgid "ms_abi and sysv_abi attributes are not compatible"
34677 msgstr "los atributos ms_abi y sysv_abi no son compatibles"
34678
34679-#: config/i386/i386.c:31821 config/rs6000/rs6000.c:24327
34680+#: config/i386/i386.c:31855 config/rs6000/rs6000.c:24344
34681 #, gcc-internal-format
34682 msgid "%qE incompatible attribute ignored"
34683 msgstr "se descarta el atributo incompatible %qE"
34684@@ -23742,13 +23928,13 @@
34685 msgid "%qE attribute requires a string constant argument"
34686 msgstr "el atributo %qE requiere una constante entera como argumento"
34687
34688-#: config/ia64/ia64.c:5737 config/pa/pa.c:412 config/sh/sh.c:8733
34689+#: config/ia64/ia64.c:5737 config/pa/pa.c:412 config/sh/sh.c:8738
34690 #: config/spu/spu.c:5187
34691 #, gcc-internal-format
34692 msgid "value of -mfixed-range must have form REG1-REG2"
34693 msgstr "el valor de -mfixed-range debe ser de la forma REG1-REG2"
34694
34695-#: config/ia64/ia64.c:5764 config/pa/pa.c:439 config/sh/sh.c:8759
34696+#: config/ia64/ia64.c:5764 config/pa/pa.c:439 config/sh/sh.c:8764
34697 #: config/spu/spu.c:5213
34698 #, gcc-internal-format, gfc-internal-format
34699 msgid "%s-%s is an empty range"
34700@@ -23820,7 +24006,7 @@
34701 msgstr "no se admite el atributo %qE para el objetivo R8C"
34702
34703 #. The argument must be a constant integer.
34704-#: config/m32c/m32c.c:3169 config/sh/sh.c:8940 config/sh/sh.c:9046
34705+#: config/m32c/m32c.c:3169 config/sh/sh.c:8945 config/sh/sh.c:9051
34706 #, gcc-internal-format
34707 msgid "%qE attribute argument not an integer constant"
34708 msgstr "el argumento del atributo %qE no es una constante entera"
34709@@ -23875,7 +24061,7 @@
34710 msgid "interrupt_thread is available only on fido"
34711 msgstr "interrupt_thread sólo está disponible en fido"
34712
34713-#: config/m68k/m68k.c:1072 config/rs6000/rs6000.c:18605
34714+#: config/m68k/m68k.c:1072 config/rs6000/rs6000.c:18621
34715 #, gcc-internal-format
34716 msgid "stack limit expression is not supported"
34717 msgstr "no se admite la expresión del límite de la pila"
34718@@ -24168,112 +24354,112 @@
34719 msgid "-mxl-multiply-high requires -mno-xl-soft-mul"
34720 msgstr "-mxl-multiply-high requiere -mno-xl-soft-mul"
34721
34722-#: config/mips/mips.c:1273 config/mips/mips.c:1275
34723+#: config/mips/mips.c:1282 config/mips/mips.c:1284
34724 #, gcc-internal-format
34725 msgid "%qs attribute only applies to functions"
34726 msgstr "el atributo %qs se aplica solamente a funciones"
34727
34728-#: config/mips/mips.c:1285
34729+#: config/mips/mips.c:1294
34730 #, gcc-internal-format
34731 msgid "%qE cannot have both %<mips16%> and %<nomips16%> attributes"
34732 msgstr "%qE no puede tener atributos %<mips16%> y %<nomips16%> al mismo tiempo"
34733
34734-#: config/mips/mips.c:1307 config/mips/mips.c:1310
34735+#: config/mips/mips.c:1316 config/mips/mips.c:1319
34736 #, gcc-internal-format
34737 msgid "%qE redeclared with conflicting %qs attributes"
34738 msgstr "%qE se redeclaró con los atributos %qs en conflicto"
34739
34740-#: config/mips/mips.c:6408
34741+#: config/mips/mips.c:6570
34742 #, gcc-internal-format
34743 msgid "cannot handle inconsistent calls to %qs"
34744 msgstr "no se pueden manejar llamadas inconsistentes a %qs"
34745
34746-#: config/mips/mips.c:9352
34747+#: config/mips/mips.c:9523
34748 #, gcc-internal-format
34749 msgid "the %<interrupt%> attribute requires a MIPS32r2 processor"
34750 msgstr "el atributo %<interrupt%> requiere un procesador MIPS32r2"
34751
34752-#: config/mips/mips.c:9354
34753+#: config/mips/mips.c:9525
34754 #, gcc-internal-format
34755 msgid "the %<interrupt%> attribute requires %<-msoft-float%>"
34756 msgstr "el atributo %<interrupt%> requiere %<-msoft-float%>"
34757
34758-#: config/mips/mips.c:9356
34759+#: config/mips/mips.c:9527
34760 #, gcc-internal-format
34761 msgid "interrupt handlers cannot be MIPS16 functions"
34762 msgstr "los manejadores de interrupciones no pueden ser funciones MIPS16"
34763
34764-#: config/mips/mips.c:13418
34765+#: config/mips/mips.c:13589
34766 #, gcc-internal-format
34767 msgid "invalid argument to built-in function"
34768 msgstr "argumento inválido para la función interna"
34769
34770-#: config/mips/mips.c:13618
34771+#: config/mips/mips.c:13789
34772 #, gcc-internal-format
34773 msgid "built-in function %qE not supported for MIPS16"
34774 msgstr "no se admite la función interna %qE para MIPS16"
34775
34776-#: config/mips/mips.c:14210
34777+#: config/mips/mips.c:14381
34778 #, gcc-internal-format
34779 msgid "%qs does not support MIPS16 code"
34780 msgstr "%qs no admite código MIPS16"
34781
34782-#: config/mips/mips.c:15452
34783+#: config/mips/mips.c:15623
34784 #, gcc-internal-format
34785 msgid "MIPS16 PIC for ABIs other than o32 and o64"
34786 msgstr "PIC MIPS16 para ABIs diferentes de o32 y o64"
34787
34788-#: config/mips/mips.c:15455
34789+#: config/mips/mips.c:15626
34790 #, gcc-internal-format
34791 msgid "MIPS16 -mxgot code"
34792 msgstr "código MIPS16 -mxgot"
34793
34794-#: config/mips/mips.c:15458
34795+#: config/mips/mips.c:15629
34796 #, gcc-internal-format
34797 msgid "hard-float MIPS16 code for ABIs other than o32 and o64"
34798 msgstr "código MIPS16 de coma flotante hard para ABIs diferentes de o32 y o64"
34799
34800-#: config/mips/mips.c:15647
34801+#: config/mips/mips.c:15818
34802 #, gcc-internal-format
34803 msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
34804 msgstr "%<-%s%> genera un conflicto con las otras opciones de la arquitectura, las cuales especifican un procesador %s"
34805
34806-#: config/mips/mips.c:15657
34807+#: config/mips/mips.c:15828
34808 #, gcc-internal-format
34809 msgid "%<-march=%s%> is not compatible with the selected ABI"
34810 msgstr "%<-march=%s%> no es compatible con la ABI seleccionada"
34811
34812-#: config/mips/mips.c:15672
34813+#: config/mips/mips.c:15843
34814 #, gcc-internal-format
34815 msgid "%<-mgp64%> used with a 32-bit processor"
34816 msgstr "se utiliza %<-mgp64%> con un procesador de 32-bit"
34817
34818-#: config/mips/mips.c:15674
34819+#: config/mips/mips.c:15845
34820 #, gcc-internal-format
34821 msgid "%<-mgp32%> used with a 64-bit ABI"
34822 msgstr "se utiliza %<-mgp32%> con una ABI de 64-bit"
34823
34824-#: config/mips/mips.c:15676
34825+#: config/mips/mips.c:15847
34826 #, gcc-internal-format
34827 msgid "%<-mgp64%> used with a 32-bit ABI"
34828 msgstr "se utiliza %<-mgp64%> con una ABI de 32-bit"
34829
34830-#: config/mips/mips.c:15692 config/mips/mips.c:15694 config/mips/mips.c:15785
34831+#: config/mips/mips.c:15863 config/mips/mips.c:15865 config/mips/mips.c:15956
34832 #, gcc-internal-format, gfc-internal-format
34833 msgid "unsupported combination: %s"
34834 msgstr "no se admite la combinación: %s"
34835
34836-#: config/mips/mips.c:15698
34837+#: config/mips/mips.c:15869
34838 #, gcc-internal-format
34839 msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions"
34840 msgstr "%<-mgp32%> y %<-mfp64%> sólo se pueden combinar si el objetivo admite las instrucciones mfhc1 y mthc1"
34841
34842-#: config/mips/mips.c:15701
34843+#: config/mips/mips.c:15872
34844 #, gcc-internal-format
34845 msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
34846 msgstr "%<-mgp32%> y %<-mfp64%> sólo se pueden combinar al usar la ABI o32"
34847
34848-#: config/mips/mips.c:15724 config/mips/mips.c:15726 config/mips/mips.c:15739
34849+#: config/mips/mips.c:15895 config/mips/mips.c:15897 config/mips/mips.c:15910
34850 #, gcc-internal-format
34851 msgid "%qs is incompatible with %qs"
34852 msgstr "%qs es incompatible con %qs"
34853@@ -24283,57 +24469,57 @@
34854 #. effort to support the combination of 32-bit GOT entries
34855 #. and 64-bit pointers, so we treat the abicalls case as
34856 #. an error.
34857-#: config/mips/mips.c:15733
34858+#: config/mips/mips.c:15904
34859 #, gcc-internal-format
34860 msgid "the combination of %qs and %qs is incompatible with %qs"
34861 msgstr "la combinacion de %qs y %qs es incompatible con %qs"
34862
34863-#: config/mips/mips.c:15779
34864+#: config/mips/mips.c:15950
34865 #, gcc-internal-format
34866 msgid "the %qs architecture does not support branch-likely instructions"
34867 msgstr "la arquitectura %qs no admite las instrucciones con probabilidad de ramificación"
34868
34869-#: config/mips/mips.c:15819
34870+#: config/mips/mips.c:15990
34871 #, gcc-internal-format
34872 msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
34873 msgstr "%<-mno-gpopt%> necesita %<-mexplicit-relocs%>"
34874
34875-#: config/mips/mips.c:15827 config/mips/mips.c:15830
34876+#: config/mips/mips.c:15998 config/mips/mips.c:16001
34877 #, gcc-internal-format
34878 msgid "cannot use small-data accesses for %qs"
34879 msgstr "no se pueden usar accesos de data small para %qs"
34880
34881-#: config/mips/mips.c:15844
34882+#: config/mips/mips.c:16015
34883 #, gcc-internal-format
34884 msgid "%<-mips3d%> requires %<-mpaired-single%>"
34885 msgstr "%<-mips3d%> requiere %<-mpaired-single%>"
34886
34887-#: config/mips/mips.c:15853
34888+#: config/mips/mips.c:16024
34889 #, gcc-internal-format
34890 msgid "%qs must be used with %qs"
34891 msgstr "%qs se debe usar con %qs"
34892
34893-#: config/mips/mips.c:15860
34894+#: config/mips/mips.c:16031
34895 #, gcc-internal-format
34896 msgid "the %qs architecture does not support paired-single instructions"
34897 msgstr "la arquitectura %qs no admite las instrucciones par-sencillo"
34898
34899-#: config/mips/mips.c:15866
34900+#: config/mips/mips.c:16037
34901 #, gcc-internal-format
34902 msgid "%qs requires a target that provides the %qs instruction"
34903 msgstr "%qs requiere un objetivo que provea la instrucción %qs"
34904
34905-#: config/mips/mips.c:15971
34906+#: config/mips/mips.c:16142
34907 #, gcc-internal-format
34908 msgid "%qs requires branch-likely instructions"
34909 msgstr "%qs requiere instrucciones con probabilidad de ramificación"
34910
34911-#: config/mips/mips.c:15975
34912+#: config/mips/mips.c:16146
34913 #, gcc-internal-format
34914 msgid "the %qs architecture does not support the synci instruction"
34915 msgstr "la arquitectura %qs no admite la instrucción synci"
34916
34917-#: config/mips/mips.c:16425
34918+#: config/mips/mips.c:16596
34919 #, gcc-internal-format
34920 msgid "mips16 function profiling"
34921 msgstr "análisis de perfil de las funciones mips16"
34922@@ -24414,7 +24600,7 @@
34923 msgid "-g option disabled"
34924 msgstr "opción -g desactivada"
34925
34926-#: config/pa/pa.c:8598
34927+#: config/pa/pa.c:8619
34928 #, gcc-internal-format, gfc-internal-format
34929 msgid "alignment (%u) for %s exceeds maximum alignment for global common data. Using %u"
34930 msgstr "la alineación (%u) para %s excede la alineación máxima para los datos comunes globales. Se usará %u"
34931@@ -24634,288 +24820,288 @@
34932 msgid "-m64 requires PowerPC64 architecture, enabling"
34933 msgstr "-m64 requiere la arquitectura PowerPC64, activando"
34934
34935-#: config/rs6000/rs6000.c:2615
34936+#: config/rs6000/rs6000.c:2616
34937 #, gcc-internal-format
34938 msgid "-malign-power is not supported for 64-bit Darwin; it is incompatible with the installed C and C++ libraries"
34939 msgstr "no se admite -malign-power para Darwin de 64-bit; es incompatible con las bibliotecas C y C++ instaladas"
34940
34941-#: config/rs6000/rs6000.c:2621
34942+#: config/rs6000/rs6000.c:2622
34943 #, gcc-internal-format
34944 msgid "not configured for SPE ABI"
34945 msgstr "no se configuró para ABI SPE"
34946
34947-#: config/rs6000/rs6000.c:2697
34948+#: config/rs6000/rs6000.c:2710
34949 #, gcc-internal-format
34950 msgid "AltiVec not supported in this target"
34951 msgstr "no se admite AltiVec en este objetivo"
34952
34953-#: config/rs6000/rs6000.c:2699
34954+#: config/rs6000/rs6000.c:2712
34955 #, gcc-internal-format
34956 msgid "SPE not supported in this target"
34957 msgstr "no se admite SPE en este objetivo"
34958
34959-#: config/rs6000/rs6000.c:2726
34960+#: config/rs6000/rs6000.c:2739
34961 #, gcc-internal-format
34962 msgid "-mmultiple is not supported on little endian systems"
34963 msgstr "no se admite -mmultiple en sistemas little endian"
34964
34965-#: config/rs6000/rs6000.c:2733
34966+#: config/rs6000/rs6000.c:2746
34967 #, gcc-internal-format
34968 msgid "-mstring is not supported on little endian systems"
34969 msgstr "no se admite -mstring en sistemas little endian"
34970
34971-#: config/rs6000/rs6000.c:2839
34972+#: config/rs6000/rs6000.c:2852
34973 #, gcc-internal-format, gfc-internal-format
34974 msgid "unknown vectorization library ABI type (%s) for -mveclibabi= switch"
34975 msgstr "tipo de ABI de biblioteca de vectorización desconocida (%s) para la opción -mveclibabi="
34976
34977-#: config/rs6000/rs6000.c:2851
34978+#: config/rs6000/rs6000.c:2864
34979 #, gcc-internal-format
34980 msgid "target attribute or pragma changes long double size"
34981 msgstr "el atributo o pragma target cambia el tamaño de double long"
34982
34983-#: config/rs6000/rs6000.c:2872 config/rs6000/rs6000.c:2887
34984+#: config/rs6000/rs6000.c:2885 config/rs6000/rs6000.c:2900
34985 #, gcc-internal-format
34986 msgid "target attribute or pragma changes AltiVec ABI"
34987 msgstr "el atributo o pragma target cambia la ABI Altivec"
34988
34989-#: config/rs6000/rs6000.c:2904
34990+#: config/rs6000/rs6000.c:2917
34991 #, gcc-internal-format
34992 msgid "target attribute or pragma changes darwin64 ABI"
34993 msgstr "el atributo o pragma target cambia la ABI darwin64"
34994
34995-#: config/rs6000/rs6000.c:2945
34996+#: config/rs6000/rs6000.c:2958
34997 #, gcc-internal-format
34998 msgid "target attribute or pragma changes SPE ABI"
34999 msgstr "el atributo o pragma target cabia la ABI SPE"
35000
35001-#: config/rs6000/rs6000.c:3268
35002+#: config/rs6000/rs6000.c:3281
35003 #, gcc-internal-format
35004 msgid "target attribute or pragma changes single precision floating point"
35005 msgstr "el atributo o pragma target cambia la coma flotante de precisión sencilla"
35006
35007-#: config/rs6000/rs6000.c:3271
35008+#: config/rs6000/rs6000.c:3284
35009 #, gcc-internal-format
35010 msgid "target attribute or pragma changes double precision floating point"
35011 msgstr "el atributo o pragma target cambia la coma flotante de precisión doble"
35012
35013-#: config/rs6000/rs6000.c:7407
35014+#: config/rs6000/rs6000.c:7420
35015 #, gcc-internal-format
35016 msgid "GCC vector returned by reference: non-standard ABI extension with no compatibility guarantee"
35017 msgstr "Se devolvió un vector GCC por referencia: extensión de ABI no estándar sin garantía de compatibilidad"
35018
35019-#: config/rs6000/rs6000.c:7545
35020+#: config/rs6000/rs6000.c:7561
35021 #, gcc-internal-format
35022 msgid "cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them"
35023 msgstr "no se puede devolver un valor en el registro vector porque las instrucciones altivec están desactivadas, use -maltivec para activarlas"
35024
35025-#: config/rs6000/rs6000.c:7888
35026+#: config/rs6000/rs6000.c:7904
35027 #, gcc-internal-format
35028 msgid "cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them"
35029 msgstr "no se puede pasar argumentos en el registro vector porque las instrucciones altivec están desactivadas, use -maltivec para activarlas"
35030
35031-#: config/rs6000/rs6000.c:8814
35032+#: config/rs6000/rs6000.c:8830
35033 #, gcc-internal-format
35034 msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
35035 msgstr "vector GCC pasado por referencia: extensión ABI que no es estándar sin garantía de compatibilidad"
35036
35037-#: config/rs6000/rs6000.c:9443
35038+#: config/rs6000/rs6000.c:9459
35039 #, gcc-internal-format, gfc-internal-format
35040 msgid "internal error: builtin function %s already processed"
35041 msgstr "error interno: la función interna %s ya se procesó"
35042
35043-#: config/rs6000/rs6000.c:9816
35044+#: config/rs6000/rs6000.c:9832
35045 #, gcc-internal-format
35046 msgid "argument 1 must be a 5-bit signed literal"
35047 msgstr "el argumento 1 debe ser una literal con signo de 5-bit"
35048
35049-#: config/rs6000/rs6000.c:9919 config/rs6000/rs6000.c:10936
35050+#: config/rs6000/rs6000.c:9935 config/rs6000/rs6000.c:10952
35051 #, gcc-internal-format
35052 msgid "argument 2 must be a 5-bit unsigned literal"
35053 msgstr "el argumento 2 debe ser una literal sin signo de 5-bit"
35054
35055-#: config/rs6000/rs6000.c:9958
35056+#: config/rs6000/rs6000.c:9974
35057 #, gcc-internal-format
35058 msgid "argument 1 of __builtin_altivec_predicate must be a constant"
35059 msgstr "el argumento 1 de __builtin_altivec_predicate debe ser una constante"
35060
35061-#: config/rs6000/rs6000.c:10010
35062+#: config/rs6000/rs6000.c:10026
35063 #, gcc-internal-format
35064 msgid "argument 1 of __builtin_altivec_predicate is out of range"
35065 msgstr "el argumento 1 de __builtin_altivec_predicate está fuera de rango"
35066
35067-#: config/rs6000/rs6000.c:10267
35068+#: config/rs6000/rs6000.c:10283
35069 #, gcc-internal-format
35070 msgid "argument 3 must be a 4-bit unsigned literal"
35071 msgstr "el argumento 3 debe ser una literal sin signo de 4-bit"
35072
35073-#: config/rs6000/rs6000.c:10285
35074+#: config/rs6000/rs6000.c:10301
35075 #, gcc-internal-format
35076 msgid "argument 3 must be a 2-bit unsigned literal"
35077 msgstr "el argumento 3 debe ser una literal sin signo de 2-bit"
35078
35079-#: config/rs6000/rs6000.c:10297
35080+#: config/rs6000/rs6000.c:10313
35081 #, gcc-internal-format
35082 msgid "argument 3 must be a 1-bit unsigned literal"
35083 msgstr "el argumento 3 debe ser una literal sin signo de 1-bit"
35084
35085-#: config/rs6000/rs6000.c:10480
35086+#: config/rs6000/rs6000.c:10496
35087 #, gcc-internal-format
35088 msgid "argument to %qs must be a 2-bit unsigned literal"
35089 msgstr "el argumento para %qs debe ser una literal sin signo de 2-bit"
35090
35091-#: config/rs6000/rs6000.c:10621
35092+#: config/rs6000/rs6000.c:10637
35093 #, gcc-internal-format
35094 msgid "unresolved overload for Altivec builtin %qF"
35095 msgstr "sobrecarga sin resolver para el interno Altivec %qF"
35096
35097-#: config/rs6000/rs6000.c:10727
35098+#: config/rs6000/rs6000.c:10743
35099 #, gcc-internal-format
35100 msgid "argument to dss must be a 2-bit unsigned literal"
35101 msgstr "el argumento para dss debe ser una literal sin signo de 2-bit"
35102
35103 # continuar aqui
35104-#: config/rs6000/rs6000.c:11056
35105+#: config/rs6000/rs6000.c:11072
35106 #, gcc-internal-format
35107 msgid "argument 1 of __builtin_paired_predicate must be a constant"
35108 msgstr "el argumento 1 de __builtin_paired_predicate debe ser una constante"
35109
35110-#: config/rs6000/rs6000.c:11103
35111+#: config/rs6000/rs6000.c:11119
35112 #, gcc-internal-format
35113 msgid "argument 1 of __builtin_paired_predicate is out of range"
35114 msgstr "el argumento 1 de __builtin_paired_predicate está fuera de rango"
35115
35116-#: config/rs6000/rs6000.c:11128
35117+#: config/rs6000/rs6000.c:11144
35118 #, gcc-internal-format
35119 msgid "argument 1 of __builtin_spe_predicate must be a constant"
35120 msgstr "el argumento 1 de __builtin_spe_predicate debe ser una constante"
35121
35122-#: config/rs6000/rs6000.c:11200
35123+#: config/rs6000/rs6000.c:11216
35124 #, gcc-internal-format
35125 msgid "argument 1 of __builtin_spe_predicate is out of range"
35126 msgstr "el argumento 1 de __builtin_spe_predicate está fuera de rango"
35127
35128-#: config/rs6000/rs6000.c:11282
35129+#: config/rs6000/rs6000.c:11298
35130 #, gcc-internal-format, gfc-internal-format
35131 msgid "Builtin function %s is only valid for the cell processor"
35132 msgstr "La función interna %s sólo es válida para el procesador cell"
35133
35134-#: config/rs6000/rs6000.c:11284
35135+#: config/rs6000/rs6000.c:11300
35136 #, gcc-internal-format, gfc-internal-format
35137 msgid "Builtin function %s requires the -mvsx option"
35138 msgstr "La función interna %s requiere la opción -mvsx"
35139
35140-#: config/rs6000/rs6000.c:11286
35141+#: config/rs6000/rs6000.c:11302
35142 #, gcc-internal-format, gfc-internal-format
35143 msgid "Builtin function %s requires the -maltivec option"
35144 msgstr "La función interna %s requiere la opción -maltivec"
35145
35146-#: config/rs6000/rs6000.c:11288
35147+#: config/rs6000/rs6000.c:11304
35148 #, gcc-internal-format, gfc-internal-format
35149 msgid "Builtin function %s requires the -mpaired option"
35150 msgstr "La función interna %s requiere la opción -mpaired"
35151
35152-#: config/rs6000/rs6000.c:11290
35153+#: config/rs6000/rs6000.c:11306
35154 #, gcc-internal-format, gfc-internal-format
35155 msgid "Builtin function %s requires the -mspe option"
35156 msgstr "La función interna %s requiere la opción -mspe"
35157
35158-#: config/rs6000/rs6000.c:11292
35159+#: config/rs6000/rs6000.c:11308
35160 #, gcc-internal-format, gfc-internal-format
35161 msgid "Builtin function %s is not supported with the current options"
35162 msgstr "La función interna %s no se admite con las opciones actuales"
35163
35164-#: config/rs6000/rs6000.c:12552
35165+#: config/rs6000/rs6000.c:12568
35166 #, gcc-internal-format, gfc-internal-format
35167 msgid "internal error: builtin function %s had no type"
35168 msgstr "error interno: la función interna %s no tiene tipo"
35169
35170-#: config/rs6000/rs6000.c:12559
35171+#: config/rs6000/rs6000.c:12575
35172 #, gcc-internal-format, gfc-internal-format
35173 msgid "internal error: builtin function %s had an unexpected return type %s"
35174 msgstr "error interno: la función interna %s tiene un tipo de devolución inesperado %s"
35175
35176-#: config/rs6000/rs6000.c:12575
35177+#: config/rs6000/rs6000.c:12591
35178 #, gcc-internal-format, gfc-internal-format
35179 msgid "internal error: builtin function %s, argument %d had unexpected argument type %s"
35180 msgstr "error interno: función interna %s, el argumento %d tiene el tipo de argumento inesperado %s"
35181
35182-#: config/rs6000/rs6000.c:18575
35183+#: config/rs6000/rs6000.c:18591
35184 #, gcc-internal-format
35185 msgid "stack frame too large"
35186 msgstr "marco de pila demasiado grande"
35187
35188-#: config/rs6000/rs6000.c:22049
35189+#: config/rs6000/rs6000.c:22065
35190 #, gcc-internal-format
35191 msgid "no profiling of 64-bit code for this ABI"
35192 msgstr "no hay análisis de perfil del código de 64-bit para esta ABI"
35193
35194-#: config/rs6000/rs6000.c:24034
35195+#: config/rs6000/rs6000.c:24050
35196 #, gcc-internal-format
35197-msgid "-mno-r11 must not be used if you have trampolines"
35198-msgstr "no se debe usar -mno-r11 si tiene trampolines"
35199+msgid "You cannot take the address of a nested function if you use the -mno-pointers-to-nested-functions option."
35200+msgstr "No se puede tomar la dirección de una función anindada si se usa la opción -mno-pointers-to-nested-functions."
35201
35202-#: config/rs6000/rs6000.c:24114
35203+#: config/rs6000/rs6000.c:24131
35204 #, gcc-internal-format
35205 msgid "use of %<long double%> in AltiVec types is invalid"
35206 msgstr "el uso de %<long double%> en tipos AltiVec es inválido"
35207
35208-#: config/rs6000/rs6000.c:24116
35209+#: config/rs6000/rs6000.c:24133
35210 #, gcc-internal-format
35211 msgid "use of boolean types in AltiVec types is invalid"
35212 msgstr "el uso de tipos booleanos en tipos AltiVec es inválido"
35213
35214-#: config/rs6000/rs6000.c:24118
35215+#: config/rs6000/rs6000.c:24135
35216 #, gcc-internal-format
35217 msgid "use of %<complex%> in AltiVec types is invalid"
35218 msgstr "el uso de %<complex%> en tipos AltiVec es inválido"
35219
35220-#: config/rs6000/rs6000.c:24120
35221+#: config/rs6000/rs6000.c:24137
35222 #, gcc-internal-format
35223 msgid "use of decimal floating point types in AltiVec types is invalid"
35224 msgstr "el uso de tipos de coma flotante decimal en tipos AltiVec es inválido"
35225
35226-#: config/rs6000/rs6000.c:24126
35227+#: config/rs6000/rs6000.c:24143
35228 #, gcc-internal-format
35229 msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without -mvsx"
35230 msgstr "el uso de %<long%> en tipos AltiVec es inválido para código de 64 bit sin -mvsx"
35231
35232-#: config/rs6000/rs6000.c:24129
35233+#: config/rs6000/rs6000.c:24146
35234 #, gcc-internal-format
35235 msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
35236 msgstr "el uso de %<long%> en tipos AltiVec es obsoleto; use %<int%>"
35237
35238-#: config/rs6000/rs6000.c:24134
35239+#: config/rs6000/rs6000.c:24151
35240 #, gcc-internal-format
35241 msgid "use of %<long long%> in AltiVec types is invalid without -mvsx"
35242 msgstr "el uso de %<long long%> en tipos AltiVec es inválido sin -mvsx"
35243
35244-#: config/rs6000/rs6000.c:24137
35245+#: config/rs6000/rs6000.c:24154
35246 #, gcc-internal-format
35247 msgid "use of %<double%> in AltiVec types is invalid without -mvsx"
35248 msgstr "el uso de %<double%> en tipos AltiVec es inválido sin -mvsx"
35249
35250-#: config/rs6000/rs6000.c:26976
35251+#: config/rs6000/rs6000.c:26993
35252 #, gcc-internal-format, gfc-internal-format
35253 msgid "emitting microcode insn %s\t[%s] #%d"
35254 msgstr "se emite el insn de microcódigo %s\t[%s] #%d"
35255
35256-#: config/rs6000/rs6000.c:26980
35257+#: config/rs6000/rs6000.c:26997
35258 #, gcc-internal-format, gfc-internal-format
35259 msgid "emitting conditional microcode insn %s\t[%s] #%d"
35260 msgstr "se emite el insn de microcódigo condicional %s\t[%s] #%d"
35261
35262-#: config/rs6000/rs6000.c:27204
35263+#: config/rs6000/rs6000.c:27221
35264 #, gcc-internal-format, gfc-internal-format
35265 msgid "invalid cpu \"%s\" for %s\"%s\"%s"
35266 msgstr "cpu \"%s\" inválido para %s\"%s\"%s"
35267
35268-#: config/rs6000/rs6000.c:27207
35269+#: config/rs6000/rs6000.c:27224
35270 #, gcc-internal-format, gfc-internal-format
35271 msgid "%s\"%s\"%s is not allowed"
35272 msgstr "%s\"%s\"%s no está definido"
35273
35274-#: config/rs6000/rs6000.c:27209
35275+#: config/rs6000/rs6000.c:27226
35276 #, gcc-internal-format, gfc-internal-format
35277 msgid "%s\"%s\"%s is invalid"
35278 msgstr "%s\"%s\"%s es inválido"
35279@@ -25088,123 +25274,123 @@
35280 msgid "64-bit ABI not supported in ESA/390 mode"
35281 msgstr "no se admite la ABI de 64-bit en el modo ESA/390"
35282
35283-#: config/s390/s390.c:1548
35284+#: config/s390/s390.c:1553
35285 #, gcc-internal-format, gfc-internal-format
35286 msgid "hardware decimal floating point instructions not available on %s"
35287 msgstr "las instrucciones de coma flotante decimal de hardware no están disponibles en %s"
35288
35289-#: config/s390/s390.c:1551
35290+#: config/s390/s390.c:1556
35291 #, gcc-internal-format
35292 msgid "hardware decimal floating point instructions not available in ESA/390 mode"
35293 msgstr "las instrucciones de coma flotante decimal de hardware no están disponibles en el modo ESA/390"
35294
35295-#: config/s390/s390.c:1561
35296+#: config/s390/s390.c:1566
35297 #, gcc-internal-format
35298 msgid "-mhard-dfp can%'t be used in conjunction with -msoft-float"
35299 msgstr "-mhard-dfp no se puede usar en conjunción con -msoft-float"
35300
35301-#: config/s390/s390.c:1585
35302+#: config/s390/s390.c:1590
35303 #, gcc-internal-format
35304 msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination"
35305 msgstr "no se admiten -mbackchain -mpacked-stack -mhard-float en combinación"
35306
35307-#: config/s390/s390.c:1591
35308+#: config/s390/s390.c:1596
35309 #, gcc-internal-format
35310 msgid "stack size must be greater than the stack guard value"
35311 msgstr "el tamaño de la pila debe ser mayor que el valor de la guardia de pila"
35312
35313-#: config/s390/s390.c:1593
35314+#: config/s390/s390.c:1598
35315 #, gcc-internal-format
35316 msgid "stack size must not be greater than 64k"
35317 msgstr "el tamaño de la pila no debe ser mayor a 64k"
35318
35319-#: config/s390/s390.c:1596
35320+#: config/s390/s390.c:1601
35321 #, gcc-internal-format
35322 msgid "-mstack-guard implies use of -mstack-size"
35323 msgstr "-mstack-guard implica el uso de -mstack-size"
35324
35325-#: config/s390/s390.c:7365
35326+#: config/s390/s390.c:7370
35327 #, gcc-internal-format
35328 msgid "total size of local variables exceeds architecture limit"
35329 msgstr "el tamaño total de las variables locales excede el límite de la arquitectura"
35330
35331-#: config/s390/s390.c:8072
35332+#: config/s390/s390.c:8077
35333 #, gcc-internal-format
35334 msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes. An unconditional trap is added."
35335 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."
35336
35337-#: config/s390/s390.c:8087
35338+#: config/s390/s390.c:8092
35339 #, gcc-internal-format
35340 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."
35341 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."
35342
35343-#: config/s390/s390.c:8115
35344+#: config/s390/s390.c:8120
35345 #, gcc-internal-format
35346 msgid "frame size of %qs is %wd bytes"
35347 msgstr "el tamaño de marco de %qs es de %wd bytes"
35348
35349-#: config/s390/s390.c:8119
35350+#: config/s390/s390.c:8124
35351 #, gcc-internal-format
35352 msgid "%qs uses dynamic stack allocation"
35353 msgstr "%qs utiliza alojamiento dinámico de pila"
35354
35355-#: config/sh/sh.c:770
35356+#: config/sh/sh.c:775
35357 #, gcc-internal-format
35358 msgid "ignoring -fschedule-insns because of exception handling bug"
35359 msgstr "se descarta -fschedule-insns debido a un error de manejo de excepciones"
35360
35361-#: config/sh/sh.c:791
35362+#: config/sh/sh.c:796
35363 #, gcc-internal-format
35364 msgid "unwind tables currently require either a frame pointer or -maccumulate-outgoing-args for correctness"
35365 msgstr "actualmente las tablas de desenredo requieren un puntero de marco o -maccumulate-outgoing-args para ser correctas"
35366
35367-#: config/sh/sh.c:7655
35368+#: config/sh/sh.c:7660
35369 #, gcc-internal-format
35370 msgid "__builtin_saveregs not supported by this subtarget"
35371 msgstr "no se admite __builtin_saveregs en este subobjetivo"
35372
35373-#: config/sh/sh.c:8821
35374+#: config/sh/sh.c:8826
35375 #, gcc-internal-format
35376 msgid "%qE attribute only applies to interrupt functions"
35377 msgstr "el atributo %qE se aplica solamente a funciones de interrupción"
35378
35379-#: config/sh/sh.c:8879
35380+#: config/sh/sh.c:8884
35381 #, gcc-internal-format
35382 msgid "%qE attribute is supported only for SH2A"
35383 msgstr "el atributo %qE solo se admite para SH2A"
35384
35385-#: config/sh/sh.c:8909
35386+#: config/sh/sh.c:8914
35387 #, gcc-internal-format
35388 msgid "attribute interrupt_handler is not compatible with -m5-compact"
35389 msgstr "el atributo interrupt_handler no es compatible con -m5-compact"
35390
35391-#: config/sh/sh.c:8926
35392+#: config/sh/sh.c:8931
35393 #, gcc-internal-format
35394 msgid "%qE attribute only applies to SH2A"
35395 msgstr "el atributo %qE solo se aplica a SH2A"
35396
35397-#: config/sh/sh.c:8948
35398+#: config/sh/sh.c:8953
35399 #, gcc-internal-format
35400 msgid "%qE attribute argument should be between 0 to 255"
35401 msgstr "el argumento del atributo %qE debe estar entre 0 y 255"
35402
35403 #. The argument must be a constant string.
35404-#: config/sh/sh.c:9021
35405+#: config/sh/sh.c:9026
35406 #, gcc-internal-format
35407 msgid "%qE attribute argument not a string constant"
35408 msgstr "el argumento del atributo %qE no es una constante de cadena"
35409
35410-#: config/sh/sh.c:11601
35411+#: config/sh/sh.c:11599
35412 #, gcc-internal-format
35413 msgid "r0 needs to be available as a call-clobbered register"
35414 msgstr "r0 necesita estar disponible como un registro sobreescrito por llamada"
35415
35416-#: config/sh/sh.c:11622
35417+#: config/sh/sh.c:11620
35418 #, gcc-internal-format
35419 msgid "need a second call-clobbered general purpose register"
35420 msgstr "se necesita un segundo registro de propósito general sobreescrito por llamada"
35421
35422-#: config/sh/sh.c:11630
35423+#: config/sh/sh.c:11628
35424 #, gcc-internal-format
35425 msgid "need a call-clobbered target register"
35426 msgstr "se necesita un registro objetivo sobreescrito por llamada"
35427@@ -25326,6 +25512,16 @@
35428 msgid "__BELOW100__ attribute not allowed with auto storage class"
35429 msgstr "no se permite el atributo __BELOW100__ con una clase de auto almacenamiento"
35430
35431+#: config/tilegx/tilegx.c:3397 config/tilepro/tilepro.c:3101
35432+#, gcc-internal-format
35433+msgid "bad builtin icode"
35434+msgstr "icode interno erróneo"
35435+
35436+#: config/tilegx/tilegx.c:3438 config/tilepro/tilepro.c:3127
35437+#, gcc-internal-format
35438+msgid "operand must be an immediate of the right size"
35439+msgstr "el operando debe ser un inmediato del tamaño correcto"
35440+
35441 #: config/v850/v850-c.c:67
35442 #, gcc-internal-format
35443 msgid "#pragma GHS endXXXX found without previous startXXX"
35444@@ -25536,38 +25732,38 @@
35445 msgid "-fexcess-precision=standard for Ada"
35446 msgstr "-fexcess-precision=standard para Ada"
35447
35448-#: ada/gcc-interface/utils.c:5289 ada/gcc-interface/utils.c:5464
35449-#: ada/gcc-interface/utils.c:5506 ada/gcc-interface/utils.c:5560
35450+#: ada/gcc-interface/utils.c:5295 ada/gcc-interface/utils.c:5470
35451+#: ada/gcc-interface/utils.c:5512 ada/gcc-interface/utils.c:5566
35452 #, gcc-internal-format
35453 msgid "%qs attribute ignored"
35454 msgstr "se descarta el atributo %qs"
35455
35456-#: ada/gcc-interface/utils.c:5407
35457+#: ada/gcc-interface/utils.c:5413
35458 #, gcc-internal-format
35459 msgid "%qs attribute requires prototypes with named arguments"
35460 msgstr "el atributo %qs requiere prototipos con argumentos nombrados"
35461
35462-#: ada/gcc-interface/utils.c:5416
35463+#: ada/gcc-interface/utils.c:5422
35464 #, gcc-internal-format
35465 msgid "%qs attribute only applies to variadic functions"
35466 msgstr "el atributo %qs se aplica solamente a funciones variadic"
35467
35468-#: ada/gcc-interface/utils.c:5487
35469+#: ada/gcc-interface/utils.c:5493
35470 #, gcc-internal-format
35471 msgid "%qE attribute has no effect"
35472 msgstr "el atributo %qE no tiene efecto"
35473
35474-#: ada/gcc-interface/utils.c:5593
35475+#: ada/gcc-interface/utils.c:5599
35476 #, gcc-internal-format
35477 msgid "invalid vector type for attribute %qs"
35478 msgstr "tipo de vector inválido para el atributo %qs"
35479
35480-#: ada/gcc-interface/utils.c:5656
35481+#: ada/gcc-interface/utils.c:5662
35482 #, gcc-internal-format
35483 msgid "attribute %qs applies to array types only"
35484 msgstr "el atributo %qs solamente se aplica a tipos de matriz"
35485
35486-#: ada/gcc-interface/utils.c:5683
35487+#: ada/gcc-interface/utils.c:5689
35488 #, gcc-internal-format
35489 msgid "invalid element type for attribute %qs"
35490 msgstr "tipo de elemento inválido para el atributo %qs"
35491@@ -25583,7 +25779,7 @@
35492 msgid " no known conversion for argument %d from %qT to %qT"
35493 msgstr " no hay una conversión conocida para el argumento %d de %qT a %qT"
35494
35495-#: cp/call.c:3125 cp/pt.c:5560
35496+#: cp/call.c:3125 cp/pt.c:5562
35497 #, gcc-internal-format, gfc-internal-format
35498 msgid " candidate expects %d argument, %d provided"
35499 msgid_plural " candidate expects %d arguments, %d provided"
35500@@ -25903,7 +26099,7 @@
35501 msgid "cannot bind rvalue %qE to %qT"
35502 msgstr "no se puede unir el r-valor %qE a %qT"
35503
35504-#: cp/call.c:6012 cp/cvt.c:1643
35505+#: cp/call.c:6012 cp/cvt.c:1654
35506 #, gcc-internal-format
35507 msgid "scoped enum %qT will not promote to an integral type in a future version of GCC"
35508 msgstr "el enum en ámbito %qT no se promoverá a un tipo integral en una versión futura de GCC"
35509@@ -26346,144 +26542,144 @@
35510 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"
35511 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"
35512
35513-#: cp/class.c:4924
35514+#: cp/class.c:4944
35515 #, gcc-internal-format
35516 msgid " base class %qT of %q+T is non-literal"
35517 msgstr " la clase base %qT de %q+T no es literal"
35518
35519-#: cp/class.c:4938
35520+#: cp/class.c:4958
35521 #, gcc-internal-format
35522 msgid " non-static data member %q+D has non-literal type"
35523 msgstr " el dato miembro que no es estático %q+D tiene un tipo que no es literal"
35524
35525-#: cp/class.c:5050
35526+#: cp/class.c:5070
35527 #, gcc-internal-format
35528 msgid "non-static reference %q+#D in class without a constructor"
35529 msgstr "referencia %q+#D que no es static en una clase sin un constructor"
35530
35531-#: cp/class.c:5055
35532+#: cp/class.c:5075
35533 #, gcc-internal-format
35534 msgid "non-static const member %q+#D in class without a constructor"
35535 msgstr "miembro const %q+#D que no es static en una clase sin un constructor"
35536
35537 #. If the function is defaulted outside the class, we just
35538 #. give the synthesis error.
35539-#: cp/class.c:5081
35540+#: cp/class.c:5101
35541 #, gcc-internal-format
35542 msgid "%q+D declared to take const reference, but implicit declaration would take non-const"
35543 msgstr "se declaró %q+D para tomar referencia const, pero la declaración implícita tomaría algo que no es const"
35544
35545-#: cp/class.c:5084
35546+#: cp/class.c:5104
35547 #, gcc-internal-format
35548 msgid "%q+D declared to take non-const reference cannot be defaulted in the class body"
35549 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"
35550
35551-#: cp/class.c:5308
35552+#: cp/class.c:5328
35553 #, gcc-internal-format
35554 msgid "offset of virtual base %qT is not ABI-compliant and may change in a future version of GCC"
35555 msgstr "el desplazamiento de la base virtual %qT no cumple con la ABI y puede cambiar en una versión futura de GCC"
35556
35557-#: cp/class.c:5409
35558+#: cp/class.c:5429
35559 #, gcc-internal-format
35560 msgid "direct base %qT inaccessible in %qT due to ambiguity"
35561 msgstr "base directa %qT inaccesible en %qT debido a ambigüedad"
35562
35563-#: cp/class.c:5421
35564+#: cp/class.c:5441
35565 #, gcc-internal-format
35566 msgid "virtual base %qT inaccessible in %qT due to ambiguity"
35567 msgstr "base virtual %qT inaccesible en %qT debido a ambigüedad"
35568
35569-#: cp/class.c:5607
35570+#: cp/class.c:5627
35571 #, gcc-internal-format
35572 msgid "size assigned to %qT may not be ABI-compliant and may change in a future version of GCC"
35573 msgstr "el tamaño asignado a %qT puede no cumplir con la ABI y puede cambiar en una versión futura de GCC"
35574
35575-#: cp/class.c:5647
35576+#: cp/class.c:5667
35577 #, gcc-internal-format
35578 msgid "the offset of %qD may not be ABI-compliant and may change in a future version of GCC"
35579 msgstr "el desplazamiento de %qD tal vez no cumple con la ABI y puede cambiar en una versión futura de GCC"
35580
35581-#: cp/class.c:5675
35582+#: cp/class.c:5695
35583 #, gcc-internal-format
35584 msgid "offset of %q+D is not ABI-compliant and may change in a future version of GCC"
35585 msgstr "el desplazamiento de %q+D no cumple con la ABI y puede cambiar en una versión futura de GCC"
35586
35587-#: cp/class.c:5685
35588+#: cp/class.c:5705
35589 #, gcc-internal-format
35590 msgid "%q+D contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
35591 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"
35592
35593-#: cp/class.c:5773
35594+#: cp/class.c:5793
35595 #, gcc-internal-format
35596 msgid "layout of classes derived from empty class %qT may change in a future version of GCC"
35597 msgstr "la disposición de clases derivadas de la clase vacía %qT puede cambiar en una versión futura de GCC"
35598
35599-#: cp/class.c:5942 cp/decl.c:11802 cp/parser.c:18577
35600+#: cp/class.c:5962 cp/decl.c:11816 cp/parser.c:18577
35601 #, gcc-internal-format
35602 msgid "redefinition of %q#T"
35603 msgstr "redefinición de %q#T"
35604
35605-#: cp/class.c:6093
35606+#: cp/class.c:6113
35607 #, gcc-internal-format
35608 msgid "%q#T has virtual functions and accessible non-virtual destructor"
35609 msgstr "%q#T tiene funciones virtuales y destructor no virtual accesible"
35610
35611-#: cp/class.c:6119
35612+#: cp/class.c:6139
35613 #, gcc-internal-format
35614 msgid "type transparent class %qT does not have any fields"
35615 msgstr "la clase transparente tipo %qT no tiene ningún campo"
35616
35617-#: cp/class.c:6125
35618+#: cp/class.c:6145
35619 #, gcc-internal-format
35620 msgid "type transparent class %qT has base classes"
35621 msgstr "la clase transparente tipo %qT tiene clases base"
35622
35623-#: cp/class.c:6129
35624+#: cp/class.c:6149
35625 #, gcc-internal-format
35626 msgid "type transparent class %qT has virtual functions"
35627 msgstr "la clase transparente tipo %qT tiene funciones virtuales"
35628
35629-#: cp/class.c:6231
35630+#: cp/class.c:6251
35631 #, gcc-internal-format
35632 msgid "trying to finish struct, but kicked out due to previous parse errors"
35633 msgstr "se trató de terminar struct, pero fue sacado debido a errores previos de decodificación"
35634
35635-#: cp/class.c:6737
35636+#: cp/class.c:6757
35637 #, gcc-internal-format
35638 msgid "language string %<\"%E\"%> not recognized"
35639 msgstr "no se reconoce la cadena de lenguaje %<\"%E\"%>"
35640
35641-#: cp/class.c:6827
35642+#: cp/class.c:6847
35643 #, gcc-internal-format
35644 msgid "cannot resolve overloaded function %qD based on conversion to type %qT"
35645 msgstr "no se puede resolver la función sobrecargada %qD basándose en la conversión al tipo %qT"
35646
35647-#: cp/class.c:6951
35648+#: cp/class.c:6971
35649 #, gcc-internal-format
35650 msgid "no matches converting function %qD to type %q#T"
35651 msgstr "no hay coincidencias al convertir la función %qD al tipo %q#T"
35652
35653-#: cp/class.c:6974
35654+#: cp/class.c:6994
35655 #, gcc-internal-format
35656 msgid "converting overloaded function %qD to type %q#T is ambiguous"
35657 msgstr "la conversión de la función sobrecargada %qD al tipo %q#T es ambigua"
35658
35659-#: cp/class.c:7001
35660+#: cp/class.c:7021
35661 #, gcc-internal-format
35662 msgid "assuming pointer to member %qD"
35663 msgstr "asumiendo el puntero a miembro %qD"
35664
35665-#: cp/class.c:7004
35666+#: cp/class.c:7024
35667 #, gcc-internal-format
35668 msgid "(a pointer to member can only be formed with %<&%E%>)"
35669 msgstr "(un puntero a miembro solamente se puede formar con %<&%E%>)"
35670
35671-#: cp/class.c:7066 cp/class.c:7100
35672+#: cp/class.c:7086 cp/class.c:7120
35673 #, gcc-internal-format
35674 msgid "not enough type information"
35675 msgstr "no hay suficiente información de tipo"
35676
35677-#: cp/class.c:7083 cp/cvt.c:169 cp/cvt.c:194 cp/cvt.c:244
35678+#: cp/class.c:7103 cp/cvt.c:169 cp/cvt.c:194 cp/cvt.c:244
35679 #, gcc-internal-format
35680 msgid "cannot convert %qE from type %qT to type %qT"
35681 msgstr "no se puede convertir %qE desde el tipo %qT al tipo %qT"
35682@@ -26493,12 +26689,12 @@
35683 #. A name N used in a class S shall refer to the same declaration
35684 #. in its context and when re-evaluated in the completed scope of
35685 #. S.
35686-#: cp/class.c:7394 cp/decl.c:1287
35687+#: cp/class.c:7414 cp/decl.c:1287
35688 #, gcc-internal-format
35689 msgid "declaration of %q#D"
35690 msgstr "la declaración de %q#D"
35691
35692-#: cp/class.c:7395
35693+#: cp/class.c:7415
35694 #, gcc-internal-format
35695 msgid "changes meaning of %qD from %q+#D"
35696 msgstr "cambia el significado de %qD a partir de %q+#D"
35697@@ -26828,13 +27024,18 @@
35698 msgid "converting NULL to non-pointer type"
35699 msgstr "se convierte NULL a un tipo que no es puntero"
35700
35701-#: cp/cvt.c:1584
35702+#: cp/cvt.c:1546 cp/cvt.c:1595
35703 #, gcc-internal-format
35704 msgid "ambiguous default type conversion from %qT"
35705 msgstr "conversión de tipo por defecto ambigua desde %qT"
35706
35707-#: cp/cvt.c:1586
35708+#: cp/cvt.c:1548
35709 #, gcc-internal-format
35710+msgid " candidate conversions include %qD"
35711+msgstr " las conversiones candidatas incluyen %qD"
35712+
35713+#: cp/cvt.c:1597
35714+#, gcc-internal-format
35715 msgid " candidate conversions include %qD and %qD"
35716 msgstr " las conversiones candidatas incluyen %qD y %qD"
35717
35718@@ -27076,27 +27277,27 @@
35719 msgstr "genera un conflicto con la declaración previa aquí"
35720
35721 #. Reject two definitions.
35722-#: cp/decl.c:2364 cp/decl.c:2393 cp/decl.c:2422 cp/decl.c:2439 cp/decl.c:2511
35723+#: cp/decl.c:2369 cp/decl.c:2398 cp/decl.c:2427 cp/decl.c:2444 cp/decl.c:2516
35724 #, gcc-internal-format
35725 msgid "redefinition of %q#D"
35726 msgstr "redefinición de %q#D"
35727
35728-#: cp/decl.c:2380
35729+#: cp/decl.c:2385
35730 #, gcc-internal-format
35731 msgid "%qD conflicts with used function"
35732 msgstr "%qD genera un conflicto con la función utilizada"
35733
35734-#: cp/decl.c:2390
35735+#: cp/decl.c:2395
35736 #, gcc-internal-format
35737 msgid "%q#D not declared in class"
35738 msgstr "%q#D no se declaró en la clase"
35739
35740-#: cp/decl.c:2404 cp/decl.c:2449
35741+#: cp/decl.c:2409 cp/decl.c:2454
35742 #, gcc-internal-format
35743 msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
35744 msgstr "%q+D se redeclaró incluída en línea con el atributo %<gnu_inline%>"
35745
35746-#: cp/decl.c:2407 cp/decl.c:2452
35747+#: cp/decl.c:2412 cp/decl.c:2457
35748 #, gcc-internal-format
35749 msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
35750 msgstr "%q+D se redeclaró incluída en línea sin el atributo %<gnu_inline%>"
35751@@ -27104,339 +27305,339 @@
35752 #. is_primary=
35753 #. is_partial=
35754 #. is_friend_decl=
35755-#: cp/decl.c:2468
35756+#: cp/decl.c:2473
35757 #, gcc-internal-format
35758 msgid "redeclaration of friend %q#D may not have default template arguments"
35759 msgstr "la redeclaración de friend %q#D no puede tener argumentos de plantilla por defecto"
35760
35761-#: cp/decl.c:2482
35762+#: cp/decl.c:2487
35763 #, gcc-internal-format
35764 msgid "thread-local declaration of %q#D follows non-thread-local declaration"
35765 msgstr "declaración thread-local de %q#D después de una declaración que no es thread-local"
35766
35767-#: cp/decl.c:2485
35768+#: cp/decl.c:2490
35769 #, gcc-internal-format
35770 msgid "non-thread-local declaration of %q#D follows thread-local declaration"
35771 msgstr "declaración que no es thread-local de %q#D después de una declaración thread-local"
35772
35773-#: cp/decl.c:2500 cp/decl.c:2519 cp/name-lookup.c:550 cp/name-lookup.c:1132
35774+#: cp/decl.c:2505 cp/decl.c:2524 cp/name-lookup.c:550 cp/name-lookup.c:1132
35775 #, gcc-internal-format
35776 msgid "redeclaration of %q#D"
35777 msgstr "redeclaración de %q#D"
35778
35779-#: cp/decl.c:2674
35780+#: cp/decl.c:2679
35781 #, gcc-internal-format
35782 msgid "jump to label %qD"
35783 msgstr "salto a la etiqueta %qD"
35784
35785-#: cp/decl.c:2676
35786+#: cp/decl.c:2681
35787 #, gcc-internal-format
35788 msgid "jump to case label"
35789 msgstr "salto a la etiqueta case"
35790
35791-#: cp/decl.c:2678 cp/decl.c:2820 cp/decl.c:2860
35792+#: cp/decl.c:2683 cp/decl.c:2825 cp/decl.c:2865
35793 #, gcc-internal-format
35794 msgid " from here"
35795 msgstr " desde aquí"
35796
35797-#: cp/decl.c:2697 cp/decl.c:2863
35798+#: cp/decl.c:2702 cp/decl.c:2868
35799 #, gcc-internal-format
35800 msgid " exits OpenMP structured block"
35801 msgstr " sale del bloque estructurado OpenMP"
35802
35803-#: cp/decl.c:2719
35804+#: cp/decl.c:2724
35805 #, gcc-internal-format
35806 msgid " crosses initialization of %q+#D"
35807 msgstr " cruza la inicialización de %q+#D"
35808
35809-#: cp/decl.c:2721 cp/decl.c:2837
35810+#: cp/decl.c:2726 cp/decl.c:2842
35811 #, gcc-internal-format
35812 msgid " enters scope of %q+#D which has non-trivial destructor"
35813 msgstr " entra al ámbito de %q+#D el cual tiene un destructor que no es trivial"
35814
35815-#: cp/decl.c:2735 cp/decl.c:2842
35816+#: cp/decl.c:2740 cp/decl.c:2847
35817 #, gcc-internal-format
35818 msgid " enters try block"
35819 msgstr " entra al bloque try"
35820
35821 #. Can't skip init of __exception_info.
35822-#: cp/decl.c:2737 cp/decl.c:2831 cp/decl.c:2844
35823+#: cp/decl.c:2742 cp/decl.c:2836 cp/decl.c:2849
35824 #, gcc-internal-format
35825 msgid " enters catch block"
35826 msgstr " entra al bloque catch"
35827
35828-#: cp/decl.c:2747 cp/decl.c:2847
35829+#: cp/decl.c:2752 cp/decl.c:2852
35830 #, gcc-internal-format
35831 msgid " enters OpenMP structured block"
35832 msgstr " entra al bloque estructurado OpenMP"
35833
35834-#: cp/decl.c:2819 cp/decl.c:2859
35835+#: cp/decl.c:2824 cp/decl.c:2864
35836 #, gcc-internal-format
35837 msgid "jump to label %q+D"
35838 msgstr "salto a la etiqueta %q+D"
35839
35840-#: cp/decl.c:2835
35841+#: cp/decl.c:2840
35842 #, gcc-internal-format
35843 msgid " skips initialization of %q+#D"
35844 msgstr " salta la inicialización de %q+#D"
35845
35846-#: cp/decl.c:2912
35847+#: cp/decl.c:2917
35848 #, gcc-internal-format
35849 msgid "label named wchar_t"
35850 msgstr "etiqueta nombrada wchar_t"
35851
35852-#: cp/decl.c:3220
35853+#: cp/decl.c:3225
35854 #, gcc-internal-format
35855 msgid "%qD is not a type"
35856 msgstr "%qD no es un tipo"
35857
35858-#: cp/decl.c:3226 cp/parser.c:5049
35859+#: cp/decl.c:3231 cp/parser.c:5049
35860 #, gcc-internal-format
35861 msgid "%qD used without template parameters"
35862 msgstr "se usa %qD sin parámetros de plantilla"
35863
35864-#: cp/decl.c:3235
35865+#: cp/decl.c:3240
35866 #, gcc-internal-format
35867 msgid "%q#T is not a class"
35868 msgstr "%q#T no es una clase"
35869
35870-#: cp/decl.c:3259 cp/decl.c:3349
35871+#: cp/decl.c:3264 cp/decl.c:3354
35872 #, gcc-internal-format
35873 msgid "no class template named %q#T in %q#T"
35874 msgstr "no hay una plantilla de clase llamada %q#T en %q#T"
35875
35876-#: cp/decl.c:3260
35877+#: cp/decl.c:3265
35878 #, gcc-internal-format
35879 msgid "no type named %q#T in %q#T"
35880 msgstr "no hay un tipo llamado %q#T en %q#T"
35881
35882-#: cp/decl.c:3272
35883+#: cp/decl.c:3277
35884 #, gcc-internal-format
35885 msgid "lookup of %qT in %qT is ambiguous"
35886 msgstr "la búsqueda de %qT en %qT es ambigua"
35887
35888-#: cp/decl.c:3281
35889+#: cp/decl.c:3286
35890 #, gcc-internal-format
35891 msgid "%<typename %T::%D%> names %q#T, which is not a class template"
35892 msgstr "%<typename %T::%D%> nombra a %q#T, el cual no es una plantilla de clase"
35893
35894-#: cp/decl.c:3288
35895+#: cp/decl.c:3293
35896 #, gcc-internal-format
35897 msgid "%<typename %T::%D%> names %q#T, which is not a type"
35898 msgstr "%<typename %T::%D%> nombra a %q#T, el cual no es un tipo"
35899
35900-#: cp/decl.c:3358
35901+#: cp/decl.c:3363
35902 #, gcc-internal-format
35903 msgid "template parameters do not match template"
35904 msgstr "los parámetros de la plantilla no coinciden con la plantilla"
35905
35906-#: cp/decl.c:3359 cp/friend.c:327 cp/friend.c:335
35907+#: cp/decl.c:3364 cp/friend.c:327 cp/friend.c:335
35908 #, gcc-internal-format
35909 msgid "%q+D declared here"
35910 msgstr "%q+D declarado aquí"
35911
35912-#: cp/decl.c:4077
35913+#: cp/decl.c:4082
35914 #, gcc-internal-format
35915 msgid "an anonymous struct cannot have function members"
35916 msgstr "un struct anónimo no puede tener funciones miembro"
35917
35918-#: cp/decl.c:4080
35919+#: cp/decl.c:4085
35920 #, gcc-internal-format
35921 msgid "an anonymous union cannot have function members"
35922 msgstr "un union anónimo no puede tener funciones miembro"
35923
35924-#: cp/decl.c:4098
35925+#: cp/decl.c:4103
35926 #, gcc-internal-format
35927 msgid "member %q+#D with constructor not allowed in anonymous aggregate"
35928 msgstr "no se permite el miembro %q+#D con constructor en un agregado anónimo"
35929
35930-#: cp/decl.c:4101
35931+#: cp/decl.c:4106
35932 #, gcc-internal-format
35933 msgid "member %q+#D with destructor not allowed in anonymous aggregate"
35934 msgstr "no se permite el miembro %q+#D con destructor en un agregado anónimo"
35935
35936-#: cp/decl.c:4104
35937+#: cp/decl.c:4109
35938 #, gcc-internal-format
35939 msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
35940 msgstr "no se permite el miembro %q+#D con operador de asignación de copia en un agregado anónimo"
35941
35942-#: cp/decl.c:4129
35943+#: cp/decl.c:4134
35944 #, gcc-internal-format
35945 msgid "multiple types in one declaration"
35946 msgstr "tipos múltiples en una declaración"
35947
35948-#: cp/decl.c:4133
35949+#: cp/decl.c:4138
35950 #, gcc-internal-format
35951 msgid "redeclaration of C++ built-in type %qT"
35952 msgstr "redeclaración del tipo interno de C++ %qT"
35953
35954-#: cp/decl.c:4150
35955+#: cp/decl.c:4155
35956 #, gcc-internal-format
35957 msgid "%<auto%> can only be specified for variables or function declarations"
35958 msgstr "%<auto%> sólo se puede especificar para variables o declaraciones de función"
35959
35960-#: cp/decl.c:4176
35961+#: cp/decl.c:4181
35962 #, gcc-internal-format
35963 msgid "missing type-name in typedef-declaration"
35964 msgstr "falta el nombre del tipo en la declaración typedef"
35965
35966-#: cp/decl.c:4183
35967+#: cp/decl.c:4188
35968 #, gcc-internal-format
35969 msgid "ISO C++ prohibits anonymous structs"
35970 msgstr "ISO C++ prohíbe structs anónimos"
35971
35972-#: cp/decl.c:4190
35973+#: cp/decl.c:4195
35974 #, gcc-internal-format
35975 msgid "%qs can only be specified for functions"
35976 msgstr "%qs sólo se puede especificar para funciones"
35977
35978-#: cp/decl.c:4196
35979+#: cp/decl.c:4201
35980 #, gcc-internal-format
35981 msgid "%<friend%> can only be specified inside a class"
35982 msgstr "%<friend%> sólo se puede especificar dentro de una clase"
35983
35984-#: cp/decl.c:4198
35985+#: cp/decl.c:4203
35986 #, gcc-internal-format
35987 msgid "%<explicit%> can only be specified for constructors"
35988 msgstr "%<explicit%> sólo se puede especificar para constructores"
35989
35990-#: cp/decl.c:4200
35991+#: cp/decl.c:4205
35992 #, gcc-internal-format
35993 msgid "a storage class can only be specified for objects and functions"
35994 msgstr "una clase de almacenamiento sólo se puede especificar para objetos y funciones"
35995
35996-#: cp/decl.c:4206
35997+#: cp/decl.c:4211
35998 #, gcc-internal-format
35999 msgid "qualifiers can only be specified for objects and functions"
36000 msgstr "los calificadores sólo se pueden especificar para objetos y funciones"
36001
36002-#: cp/decl.c:4209
36003+#: cp/decl.c:4214
36004 #, gcc-internal-format
36005 msgid "%<typedef%> was ignored in this declaration"
36006 msgstr "se descartó %<typedef%> en esta declaración"
36007
36008-#: cp/decl.c:4211
36009+#: cp/decl.c:4216
36010 #, gcc-internal-format
36011 msgid "%<constexpr%> cannot be used for type declarations"
36012 msgstr "%<constexpr%> no se puede usar en declaraciones de tipo"
36013
36014-#: cp/decl.c:4240
36015+#: cp/decl.c:4226
36016 #, gcc-internal-format
36017-msgid "attribute ignored in declaration of %q+#T"
36018-msgstr "se descarta el atributo en la declaración de %q+#T"
36019+msgid "attribute ignored in declaration of %q#T"
36020+msgstr "se descarta el atributo en la declaración de %q#T"
36021
36022-#: cp/decl.c:4241
36023+#: cp/decl.c:4227
36024 #, gcc-internal-format
36025-msgid "attribute for %q+#T must follow the %qs keyword"
36026-msgstr "el atributo para %q+#T debe estar a continuación de la palabra clave %qs"
36027+msgid "attribute for %q#T must follow the %qs keyword"
36028+msgstr "el atributo para %q#T debe estar a continuación de la palabra clave %qs"
36029
36030-#: cp/decl.c:4286
36031+#: cp/decl.c:4296
36032 #, gcc-internal-format
36033 msgid "ignoring attributes applied to class type %qT outside of definition"
36034 msgstr "se descartan los atributos aplicados al tipo de clase %qT fuera de la definición"
36035
36036 #. A template type parameter or other dependent type.
36037-#: cp/decl.c:4290
36038+#: cp/decl.c:4300
36039 #, gcc-internal-format
36040 msgid "ignoring attributes applied to dependent type %qT without an associated declaration"
36041 msgstr "se descartan los atributos aplicados al tipo dependiente %qT sin una declaración asociada"
36042
36043-#: cp/decl.c:4360 cp/decl2.c:815
36044+#: cp/decl.c:4370 cp/decl2.c:815
36045 #, gcc-internal-format
36046 msgid "typedef %qD is initialized (use decltype instead)"
36047 msgstr "typedef %qD está inicializado (utilice decltype en su lugar)"
36048
36049-#: cp/decl.c:4378
36050+#: cp/decl.c:4388
36051 #, gcc-internal-format
36052 msgid "declaration of %q#D has %<extern%> and is initialized"
36053 msgstr "la declaración de %q#D tiene %<extern%> y está inicializada"
36054
36055-#: cp/decl.c:4407
36056+#: cp/decl.c:4417
36057 #, gcc-internal-format
36058 msgid "definition of %q#D is marked %<dllimport%>"
36059 msgstr "la definición de %q#D se marca como %<dllimport%>"
36060
36061-#: cp/decl.c:4426
36062+#: cp/decl.c:4436
36063 #, gcc-internal-format
36064 msgid "%q#D is not a static member of %q#T"
36065 msgstr "%q#D no es un miembro static de %q#T"
36066
36067-#: cp/decl.c:4432
36068+#: cp/decl.c:4442
36069 #, gcc-internal-format
36070 msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
36071 msgstr "ISO C++ no permite que %<%T::%D%> se defina como %<%T::%D%>"
36072
36073-#: cp/decl.c:4441
36074+#: cp/decl.c:4451
36075 #, gcc-internal-format
36076 msgid "template header not allowed in member definition of explicitly specialized class"
36077 msgstr "no se permite un encabezado de plantilla en la definición de miembro de una clase explícitamente especializada"
36078
36079-#: cp/decl.c:4449
36080+#: cp/decl.c:4459
36081 #, gcc-internal-format
36082 msgid "duplicate initialization of %qD"
36083 msgstr "inicialización duplicada de %qD"
36084
36085-#: cp/decl.c:4454
36086+#: cp/decl.c:4464
36087 #, gcc-internal-format
36088 msgid "%qD declared %<constexpr%> outside its class"
36089 msgstr "%qD se declaró %<constexpr%> fuera de su clase"
36090
36091-#: cp/decl.c:4493
36092+#: cp/decl.c:4503
36093 #, gcc-internal-format
36094 msgid "declaration of %q#D outside of class is not definition"
36095 msgstr "la declaración de %q#D fuera de la clase no es una definición"
36096
36097-#: cp/decl.c:4588
36098+#: cp/decl.c:4598
36099 #, gcc-internal-format
36100 msgid "variable %q#D has initializer but incomplete type"
36101 msgstr "la variable %q#D tiene inicializador pero de tipo de dato incompleto"
36102
36103-#: cp/decl.c:4594 cp/decl.c:5389
36104+#: cp/decl.c:4604 cp/decl.c:5399
36105 #, gcc-internal-format
36106 msgid "elements of array %q#D have incomplete type"
36107 msgstr "elementos de la matriz %q#D con tipo de dato incompleto"
36108
36109-#: cp/decl.c:4601 cp/decl.c:5999
36110+#: cp/decl.c:4611 cp/decl.c:6009
36111 #, gcc-internal-format
36112 msgid "declaration of %q#D has no initializer"
36113 msgstr "la declaración de %q#D no tiene inicializadores"
36114
36115-#: cp/decl.c:4603
36116+#: cp/decl.c:4613
36117 #, gcc-internal-format
36118 msgid "aggregate %q#D has incomplete type and cannot be defined"
36119 msgstr "el agregado %q#D tiene un tipo incompleto y no se puede definir"
36120
36121-#: cp/decl.c:4637
36122+#: cp/decl.c:4647
36123 #, gcc-internal-format
36124 msgid "%qD declared as reference but not initialized"
36125 msgstr "%qD declarado como referencia pero no se inicializa"
36126
36127-#: cp/decl.c:4678
36128+#: cp/decl.c:4688
36129 #, gcc-internal-format
36130 msgid "name used in a GNU-style designated initializer for an array"
36131 msgstr "se usó un nombre en un inicializador designado de estilo GNU para una matriz"
36132
36133-#: cp/decl.c:4686 cp/typeck2.c:1084 cp/typeck2.c:1189
36134+#: cp/decl.c:4696 cp/typeck2.c:1084 cp/typeck2.c:1189
36135 #, gcc-internal-format
36136 msgid "non-trivial designated initializers not supported"
36137 msgstr "no se admiten los inicializadores designados como no triviales"
36138
36139-#: cp/decl.c:4691
36140+#: cp/decl.c:4701
36141 #, gcc-internal-format
36142 msgid "name %qD used in a GNU-style designated initializer for an array"
36143 msgstr "el nombre %qD se utiliza en un inicializador designado en estilo GNU para una matriz"
36144
36145-#: cp/decl.c:4739
36146+#: cp/decl.c:4749
36147 #, gcc-internal-format
36148 msgid "initializer fails to determine size of %qD"
36149 msgstr "el inicializador no puede determinar el tamaño de %qD"
36150
36151-#: cp/decl.c:4746
36152+#: cp/decl.c:4756
36153 #, gcc-internal-format
36154 msgid "array size missing in %qD"
36155 msgstr "falta el tamaño de la matriz en %qD"
36156
36157-#: cp/decl.c:4758
36158+#: cp/decl.c:4768
36159 #, gcc-internal-format
36160 msgid "zero-size array %qD"
36161 msgstr "matriz %qD de tamaño cero"
36162@@ -27444,389 +27645,389 @@
36163 #. An automatic variable with an incomplete type: that is an error.
36164 #. Don't talk about array types here, since we took care of that
36165 #. message in grokdeclarator.
36166-#: cp/decl.c:4801
36167+#: cp/decl.c:4811
36168 #, gcc-internal-format
36169 msgid "storage size of %qD isn%'t known"
36170 msgstr "no se conoce el tamaño de almacenamiento de %qD"
36171
36172-#: cp/decl.c:4824
36173+#: cp/decl.c:4834
36174 #, gcc-internal-format
36175 msgid "storage size of %qD isn%'t constant"
36176 msgstr "el tamaño de almacenamiento de %qD no es constante"
36177
36178-#: cp/decl.c:4870
36179+#: cp/decl.c:4880
36180 #, gcc-internal-format
36181 msgid "sorry: semantics of inline function static data %q+#D are wrong (you%'ll wind up with multiple copies)"
36182 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)"
36183
36184-#: cp/decl.c:4874
36185+#: cp/decl.c:4884
36186 #, gcc-internal-format
36187 msgid " you can work around this by removing the initializer"
36188 msgstr " puede evitar esto eliminando el inicializador"
36189
36190-#: cp/decl.c:4905
36191+#: cp/decl.c:4915
36192 #, gcc-internal-format
36193 msgid "uninitialized const %qD"
36194 msgstr "const %qD sin inicializar"
36195
36196-#: cp/decl.c:4912
36197+#: cp/decl.c:4922
36198 #, gcc-internal-format
36199 msgid "%q#T has no user-provided default constructor"
36200 msgstr "%q#T no tiene constructor por defecto proporcionado por el usuario"
36201
36202-#: cp/decl.c:4916
36203+#: cp/decl.c:4926
36204 #, gcc-internal-format
36205 msgid "constructor is not user-provided because it is explicitly defaulted in the class body"
36206 msgstr "el constructor no es proporcionado por el usuario porque está marcado explícitamente por defecto en el cuerpo de la clase"
36207
36208-#: cp/decl.c:4918
36209+#: cp/decl.c:4928
36210 #, gcc-internal-format
36211 msgid "and the implicitly-defined constructor does not initialize %q+#D"
36212 msgstr "y el constructor implícitamente definido no inicializa %q+#D"
36213
36214-#: cp/decl.c:5037
36215+#: cp/decl.c:5047
36216 #, gcc-internal-format
36217 msgid "invalid type %qT as initializer for a vector of type %qT"
36218 msgstr "tipo %qT inválido como inicializador para un vector de tipo %qT"
36219
36220-#: cp/decl.c:5078
36221+#: cp/decl.c:5088
36222 #, gcc-internal-format
36223 msgid "initializer for %qT must be brace-enclosed"
36224 msgstr "el inicializador para %qT debe estar encerrado entre llaves"
36225
36226-#: cp/decl.c:5095
36227+#: cp/decl.c:5105
36228 #, gcc-internal-format
36229 msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
36230 msgstr "se usa %<[%E] =%> en un inicializador designado en estilo GNU para la clase %qT"
36231
36232-#: cp/decl.c:5105
36233+#: cp/decl.c:5115
36234 #, gcc-internal-format
36235 msgid "%qT has no non-static data member named %qD"
36236 msgstr "%qT no tiene un dato miembro que no es static llamado %qD"
36237
36238-#: cp/decl.c:5146
36239+#: cp/decl.c:5156
36240 #, gcc-internal-format
36241 msgid "C99 designator %qE outside aggregate initializer"
36242 msgstr "asignador C99 %qE fuera del inicializador agregado"
36243
36244-#: cp/decl.c:5183 cp/decl.c:5368 cp/typeck2.c:1071 cp/typeck2.c:1270
36245+#: cp/decl.c:5193 cp/decl.c:5378 cp/typeck2.c:1071 cp/typeck2.c:1270
36246 #: cp/typeck2.c:1299 cp/typeck2.c:1346
36247 #, gcc-internal-format
36248 msgid "too many initializers for %qT"
36249 msgstr "demasiados inicializadores para %qT"
36250
36251-#: cp/decl.c:5216
36252+#: cp/decl.c:5226
36253 #, gcc-internal-format
36254 msgid "braces around scalar initializer for type %qT"
36255 msgstr "llaves alrededor del inicializador escalar para el tipo %qT"
36256
36257-#: cp/decl.c:5309
36258+#: cp/decl.c:5319
36259 #, gcc-internal-format
36260 msgid "missing braces around initializer for %qT"
36261 msgstr "faltan llaves alrededor del inicializador para %qT"
36262
36263-#: cp/decl.c:5391
36264+#: cp/decl.c:5401
36265 #, gcc-internal-format
36266 msgid "elements of array %q#T have incomplete type"
36267 msgstr "elementos de la matriz %q#T tienen tipo de dato incompleto"
36268
36269-#: cp/decl.c:5400
36270+#: cp/decl.c:5410
36271 #, gcc-internal-format
36272 msgid "variable-sized object %qD may not be initialized"
36273 msgstr "el objeto de tamaño variable %qD no se puede inicializar"
36274
36275-#: cp/decl.c:5402
36276+#: cp/decl.c:5412
36277 #, gcc-internal-format
36278 msgid "variable-sized compound literal"
36279 msgstr "literal compuesta de tamaño variable"
36280
36281-#: cp/decl.c:5457
36282+#: cp/decl.c:5467
36283 #, gcc-internal-format
36284 msgid "%q#D has incomplete type"
36285 msgstr "%q#D tiene un tipo incompleto"
36286
36287-#: cp/decl.c:5477
36288+#: cp/decl.c:5487
36289 #, gcc-internal-format
36290 msgid "scalar object %qD requires one element in initializer"
36291 msgstr "el objeto escalar %qD requiere un elemento en el inicializador"
36292
36293-#: cp/decl.c:5520
36294+#: cp/decl.c:5530
36295 #, gcc-internal-format
36296 msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
36297 msgstr "en C++98 %qD debe ser inicializado por un constructor, no por %<{...}%>"
36298
36299-#: cp/decl.c:5600
36300+#: cp/decl.c:5610
36301 #, gcc-internal-format
36302 msgid "array %qD initialized by parenthesized string literal %qE"
36303 msgstr "matriz %qD inicializada con una constante de cadena entre paréntesis %qE"
36304
36305-#: cp/decl.c:5627
36306+#: cp/decl.c:5637
36307 #, gcc-internal-format
36308 msgid "initializer invalid for static member with constructor"
36309 msgstr "inicializador inválido para el miembro static con constructor"
36310
36311-#: cp/decl.c:5629
36312+#: cp/decl.c:5639
36313 #, gcc-internal-format
36314 msgid "non-constant in-class initialization invalid for static member %qD"
36315 msgstr "inicialización en clase que no es constante inválida para el miembro static %qD"
36316
36317-#: cp/decl.c:5633
36318+#: cp/decl.c:5643
36319 #, gcc-internal-format
36320 msgid "(an out of class initialization is required)"
36321 msgstr "(se requiere una inicialización fuera de la clase)"
36322
36323-#: cp/decl.c:5968
36324+#: cp/decl.c:5978
36325 #, gcc-internal-format
36326 msgid "assignment (not initialization) in declaration"
36327 msgstr "asignación (no inicialización) en la declaración"
36328
36329-#: cp/decl.c:6126
36330+#: cp/decl.c:6136
36331 #, gcc-internal-format
36332 msgid "shadowing previous type declaration of %q#D"
36333 msgstr "se oscurece la declaración de tipo previa de %q#D"
36334
36335-#: cp/decl.c:6158
36336+#: cp/decl.c:6168
36337 #, gcc-internal-format
36338 msgid "%qD cannot be thread-local because it has non-trivial type %qT"
36339 msgstr "%qD no puede ser thread-local porque es de tipo %qT que no es trivial"
36340
36341-#: cp/decl.c:6200
36342+#: cp/decl.c:6210
36343 #, gcc-internal-format
36344 msgid "Java object %qD not allocated with %<new%>"
36345 msgstr "El objeto Java %qD no se aloja con %<new%>"
36346
36347-#: cp/decl.c:6208
36348+#: cp/decl.c:6218
36349 #, gcc-internal-format
36350 msgid "%qD is thread-local and so cannot be dynamically initialized"
36351 msgstr "q%D es thread-local y por lo tanto no se puede inicializar dinámicamente"
36352
36353-#: cp/decl.c:6226
36354+#: cp/decl.c:6236
36355 #, gcc-internal-format
36356 msgid "%qD cannot be initialized by a non-constant expression when being declared"
36357 msgstr "%qD no se puede inicializar con una expresion no constante al declararse"
36358
36359-#: cp/decl.c:6274
36360+#: cp/decl.c:6284
36361 #, gcc-internal-format
36362 msgid "non-static data member %qD has Java class type"
36363 msgstr "el dato miembro que no es estático %qD tiene un tipo de clase Java"
36364
36365-#: cp/decl.c:6339
36366+#: cp/decl.c:6349
36367 #, gcc-internal-format
36368 msgid "function %q#D is initialized like a variable"
36369 msgstr "la función %q#D se inicializa como una variable"
36370
36371-#: cp/decl.c:6938
36372+#: cp/decl.c:6948
36373 #, gcc-internal-format
36374 msgid "initializer fails to determine size of %qT"
36375 msgstr "el inicializador no puede determinar el tamaño de %qT"
36376
36377-#: cp/decl.c:6942
36378+#: cp/decl.c:6952
36379 #, gcc-internal-format
36380 msgid "array size missing in %qT"
36381 msgstr "falta el tamaño de la matriz en %qT"
36382
36383-#: cp/decl.c:6945
36384+#: cp/decl.c:6955
36385 #, gcc-internal-format
36386 msgid "zero-size array %qT"
36387 msgstr "matriz %qT de tamaño cero"
36388
36389-#: cp/decl.c:6961
36390+#: cp/decl.c:6971
36391 #, gcc-internal-format
36392 msgid "destructor for alien class %qT cannot be a member"
36393 msgstr "el destructor para la clase extranjera %qT no puede ser un miembro"
36394
36395-#: cp/decl.c:6963
36396+#: cp/decl.c:6973
36397 #, gcc-internal-format
36398 msgid "constructor for alien class %qT cannot be a member"
36399 msgstr "el constructor para la clase extranjera %qT no puede ser un miembro"
36400
36401-#: cp/decl.c:6987
36402+#: cp/decl.c:6997
36403 #, gcc-internal-format
36404 msgid "%qD declared as a %<virtual%> variable"
36405 msgstr "%qD se declaró como una variable %<virtual%>"
36406
36407-#: cp/decl.c:6989
36408+#: cp/decl.c:6999
36409 #, gcc-internal-format
36410 msgid "%qD declared as an %<inline%> variable"
36411 msgstr "%qD se declaró como una variable %<inline%>"
36412
36413-#: cp/decl.c:6991
36414+#: cp/decl.c:7001
36415 #, gcc-internal-format
36416 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration"
36417 msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son inválidos en la declaración de variable"
36418
36419-#: cp/decl.c:6996
36420+#: cp/decl.c:7006
36421 #, gcc-internal-format
36422 msgid "%qD declared as a %<virtual%> parameter"
36423 msgstr "%qD se declaró como un parámetro %<virtual%>"
36424
36425-#: cp/decl.c:6998
36426+#: cp/decl.c:7008
36427 #, gcc-internal-format
36428 msgid "%qD declared as an %<inline%> parameter"
36429 msgstr "%qD se declaró como un parámetro %<inline%>"
36430
36431-#: cp/decl.c:7000
36432+#: cp/decl.c:7010
36433 #, gcc-internal-format
36434 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration"
36435 msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son inválidos en la declaración de parámetro"
36436
36437-#: cp/decl.c:7005
36438+#: cp/decl.c:7015
36439 #, gcc-internal-format
36440 msgid "%qD declared as a %<virtual%> type"
36441 msgstr "%qD se declaró como un tipo %<virtual%>"
36442
36443-#: cp/decl.c:7007
36444+#: cp/decl.c:7017
36445 #, gcc-internal-format
36446 msgid "%qD declared as an %<inline%> type"
36447 msgstr "%qD se declaró como un tipo %<inline%>"
36448
36449-#: cp/decl.c:7009
36450+#: cp/decl.c:7019
36451 #, gcc-internal-format
36452 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration"
36453 msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son inválidos en la declaración de tipo"
36454
36455-#: cp/decl.c:7014
36456+#: cp/decl.c:7024
36457 #, gcc-internal-format
36458 msgid "%qD declared as a %<virtual%> field"
36459 msgstr "%qD se declaró como un campo %<virtual%>"
36460
36461-#: cp/decl.c:7016
36462+#: cp/decl.c:7026
36463 #, gcc-internal-format
36464 msgid "%qD declared as an %<inline%> field"
36465 msgstr "%qD se declaró como un campo %<inline%>"
36466
36467-#: cp/decl.c:7018
36468+#: cp/decl.c:7028
36469 #, gcc-internal-format
36470 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration"
36471 msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son inválidos en la declaración de campo"
36472
36473-#: cp/decl.c:7025
36474+#: cp/decl.c:7035
36475 #, gcc-internal-format
36476 msgid "%q+D declared as a friend"
36477 msgstr "%q+D se declaró como friend"
36478
36479-#: cp/decl.c:7031
36480+#: cp/decl.c:7041
36481 #, gcc-internal-format
36482 msgid "%q+D declared with an exception specification"
36483 msgstr "%q+D se declaró con una especificación de excepción"
36484
36485-#: cp/decl.c:7065
36486+#: cp/decl.c:7075
36487 #, gcc-internal-format
36488 msgid "definition of %qD is not in namespace enclosing %qT"
36489 msgstr "la definición de %qD no está en un espacio de nombres que contenga a %qT"
36490
36491-#: cp/decl.c:7105
36492+#: cp/decl.c:7115
36493 #, gcc-internal-format
36494 msgid "static member function %q#D declared with type qualifiers"
36495 msgstr "la función miembro static %q#D se declara con calificadores de tipo"
36496
36497-#: cp/decl.c:7204
36498+#: cp/decl.c:7214
36499 #, gcc-internal-format
36500 msgid "defining explicit specialization %qD in friend declaration"
36501 msgstr "definiendo la especialización explícita %qD en la declaración friend"
36502
36503 #. Something like `template <class T> friend void f<T>()'.
36504-#: cp/decl.c:7214
36505+#: cp/decl.c:7224
36506 #, gcc-internal-format
36507 msgid "invalid use of template-id %qD in declaration of primary template"
36508 msgstr "uso inválido del id de plantilla %qD en la declaración de la plantilla primaria"
36509
36510-#: cp/decl.c:7244
36511+#: cp/decl.c:7254
36512 #, gcc-internal-format
36513 msgid "default arguments are not allowed in declaration of friend template specialization %qD"
36514 msgstr "no se permiten los argumentos por defecto en la declaración de la especialización friend de la plantilla %qD"
36515
36516-#: cp/decl.c:7252
36517+#: cp/decl.c:7262
36518 #, gcc-internal-format
36519 msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
36520 msgstr "no se permite %<inline%> en la declaración de la especialización friend de la plantilla %qD"
36521
36522-#: cp/decl.c:7294
36523+#: cp/decl.c:7304
36524 #, gcc-internal-format
36525 msgid "cannot declare %<::main%> to be a template"
36526 msgstr "no se puede declarar %<::main%> como plantilla"
36527
36528-#: cp/decl.c:7296
36529+#: cp/decl.c:7306
36530 #, gcc-internal-format
36531 msgid "cannot declare %<::main%> to be inline"
36532 msgstr "no se puede declarar %<::main%> como inline"
36533
36534-#: cp/decl.c:7298
36535+#: cp/decl.c:7308
36536 #, gcc-internal-format
36537 msgid "cannot declare %<::main%> to be static"
36538 msgstr "no se puede declarar %<::main%> como static"
36539
36540-#: cp/decl.c:7326
36541+#: cp/decl.c:7336
36542 #, gcc-internal-format
36543 msgid "anonymous type with no linkage used to declare function %q#D with linkage"
36544 msgstr "se usó un tipo anónimo sin enlace para declarar la función %q#D con enlace"
36545
36546-#: cp/decl.c:7330 cp/decl.c:7687 cp/decl2.c:3673
36547+#: cp/decl.c:7340 cp/decl.c:7697 cp/decl2.c:3673
36548 #, gcc-internal-format
36549 msgid "%q+#D does not refer to the unqualified type, so it is not used for linkage"
36550 msgstr "%q+#D no se refiere al tipo sin calificar, así que no se usa para el enlace"
36551
36552-#: cp/decl.c:7336
36553+#: cp/decl.c:7346
36554 #, gcc-internal-format
36555 msgid "type %qT with no linkage used to declare function %q#D with linkage"
36556 msgstr "se usó el tipo %qT sin enlace para declarar la función %q#D con enlace"
36557
36558-#: cp/decl.c:7358
36559+#: cp/decl.c:7368
36560 #, gcc-internal-format
36561 msgid "static member function %qD cannot have cv-qualifier"
36562 msgstr "la función miembro static %qD no puede tener calificador-cv"
36563
36564-#: cp/decl.c:7359
36565+#: cp/decl.c:7369
36566 #, gcc-internal-format
36567 msgid "non-member function %qD cannot have cv-qualifier"
36568 msgstr "la función que no es miembro %qD no puede tener calificador-cv"
36569
36570-#: cp/decl.c:7375
36571+#: cp/decl.c:7385
36572 #, gcc-internal-format
36573 msgid "literal operator with C linkage"
36574 msgstr "operador literal con enlace C"
36575
36576-#: cp/decl.c:7384
36577+#: cp/decl.c:7394
36578 #, gcc-internal-format
36579 msgid "%qD has invalid argument list"
36580 msgstr "%qD tien una lista de argumentos inválida"
36581
36582-#: cp/decl.c:7392
36583+#: cp/decl.c:7402
36584 #, gcc-internal-format
36585 msgid "integer suffix %<%s%> shadowed by implementation"
36586 msgstr "se oscurece el sufijo entero %<%s%> por la implementación"
36587
36588-#: cp/decl.c:7398
36589+#: cp/decl.c:7408
36590 #, gcc-internal-format
36591 msgid "floating point suffix %<%s%> shadowed by implementation"
36592 msgstr "se oscurece el sufijo de coma flotante %<%s%> por la implementación"
36593
36594-#: cp/decl.c:7404
36595+#: cp/decl.c:7414
36596 #, gcc-internal-format
36597 msgid "%qD must be a non-member function"
36598 msgstr "%qD debe ser una función que no sea miembro"
36599
36600-#: cp/decl.c:7448
36601+#: cp/decl.c:7458
36602 #, gcc-internal-format
36603 msgid "%<::main%> must return %<int%>"
36604 msgstr "%<::main%> debe devolver %<int%>"
36605
36606-#: cp/decl.c:7490
36607+#: cp/decl.c:7500
36608 #, gcc-internal-format
36609 msgid "definition of implicitly-declared %qD"
36610 msgstr "la definición de %qD declarado implícitamente"
36611
36612-#: cp/decl.c:7495
36613+#: cp/decl.c:7505
36614 #, gcc-internal-format
36615 msgid "definition of explicitly-defaulted %q+D"
36616 msgstr "la definición de %qD explícitamente por defecto"
36617
36618-#: cp/decl.c:7496
36619+#: cp/decl.c:7506
36620 #, gcc-internal-format
36621 msgid "%q+#D explicitly defaulted here"
36622 msgstr "%q+#D explícitamente por defecto aquí"
36623
36624-#: cp/decl.c:7513 cp/decl2.c:736
36625+#: cp/decl.c:7523 cp/decl2.c:736
36626 #, gcc-internal-format
36627 msgid "no %q#D member function declared in class %qT"
36628 msgstr "no hay una función miembro %q#D declarada en la clase %qT"
36629@@ -27835,886 +28036,891 @@
36630 #. no linkage can only be used to declare extern "C"
36631 #. entities. Since it's not always an error in the
36632 #. ISO C++ 90 Standard, we only issue a warning.
36633-#: cp/decl.c:7684
36634+#: cp/decl.c:7694
36635 #, gcc-internal-format
36636 msgid "anonymous type with no linkage used to declare variable %q#D with linkage"
36637 msgstr "se usó un tipo anónimo sin enlace para declarar la variable %q#D sin enlace"
36638
36639-#: cp/decl.c:7693
36640+#: cp/decl.c:7703
36641 #, gcc-internal-format
36642 msgid "type %qT with no linkage used to declare variable %q#D with linkage"
36643 msgstr "se usó el tipo %qT sin enlace para declarar la variable %q#D con enlace"
36644
36645-#: cp/decl.c:7816
36646+#: cp/decl.c:7826
36647 #, gcc-internal-format
36648 msgid "in-class initialization of static data member %q#D of incomplete type"
36649 msgstr "inicialización en la clase del miembro de datos static %q#D de tipo incompleto"
36650
36651-#: cp/decl.c:7820
36652+#: cp/decl.c:7830
36653 #, gcc-internal-format
36654 msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type"
36655 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"
36656
36657-#: cp/decl.c:7823
36658+#: cp/decl.c:7833
36659 #, gcc-internal-format
36660 msgid "in-class initialization of static data member %q#D of non-literal type"
36661 msgstr "inicialización en la clase del miembro de datos static %q#D de tipo que no es literal"
36662
36663-#: cp/decl.c:7836
36664+#: cp/decl.c:7846
36665 #, gcc-internal-format
36666 msgid "invalid in-class initialization of static data member of non-integral type %qT"
36667 msgstr "inicialización en la clase inválida para el miembro de datos static de tipo %qT que no es integral"
36668
36669-#: cp/decl.c:7842
36670+#: cp/decl.c:7852
36671 #, gcc-internal-format
36672 msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
36673 msgstr "ISO C++ prohíbe la inicialización en la clase del miembro static %qD que no es constante"
36674
36675-#: cp/decl.c:7846
36676+#: cp/decl.c:7856
36677 #, gcc-internal-format
36678 msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
36679 msgstr "ISO C++ prohíbe la inicialización de la constante miembro %qD del tipo %qT que no es entero"
36680
36681-#: cp/decl.c:7923 cp/decl.c:7951
36682+#: cp/decl.c:7933 cp/decl.c:7961
36683 #, gcc-internal-format
36684 msgid "size of array %qD has non-integral type %qT"
36685 msgstr "el tamaño de la matriz %qD tiene un tipo %qT que no es integral"
36686
36687-#: cp/decl.c:7926 cp/decl.c:7953
36688+#: cp/decl.c:7936 cp/decl.c:7963
36689 #, gcc-internal-format
36690 msgid "size of array has non-integral type %qT"
36691 msgstr "el tamaño de la matriz tiene un tipo %qT que no es integral"
36692
36693-#: cp/decl.c:8003
36694+#: cp/decl.c:8013
36695 #, gcc-internal-format
36696 msgid "size of array %qD is negative"
36697 msgstr "el tamaño de la matriz %qD es negativo"
36698
36699-#: cp/decl.c:8005
36700+#: cp/decl.c:8015
36701 #, gcc-internal-format
36702 msgid "size of array is negative"
36703 msgstr "el tamaño de la matriz es negativo"
36704
36705-#: cp/decl.c:8019
36706+#: cp/decl.c:8029
36707 #, gcc-internal-format
36708 msgid "ISO C++ forbids zero-size array %qD"
36709 msgstr "ISO C++ prohíbe la matriz %qD de tamaño cero"
36710
36711-#: cp/decl.c:8021
36712+#: cp/decl.c:8031
36713 #, gcc-internal-format
36714 msgid "ISO C++ forbids zero-size array"
36715 msgstr "ISO C++ prohíbe matrices de tamaño cero"
36716
36717-#: cp/decl.c:8033
36718+#: cp/decl.c:8043
36719 #, gcc-internal-format
36720 msgid "size of array %qD is not an integral constant-expression"
36721 msgstr "el tamaño de la matriz %qD no es una expresion constante integral"
36722
36723-#: cp/decl.c:8036
36724+#: cp/decl.c:8046
36725 #, gcc-internal-format
36726 msgid "size of array is not an integral constant-expression"
36727 msgstr "el tamaño de la matriz no es una expresion constante integral"
36728
36729-#: cp/decl.c:8042
36730+#: cp/decl.c:8052
36731 #, gcc-internal-format
36732 msgid "ISO C++ forbids variable length array %qD"
36733 msgstr "ISO C++ prohíbe la matriz %qD de longitud variable"
36734
36735-#: cp/decl.c:8044
36736+#: cp/decl.c:8054
36737 #, gcc-internal-format
36738 msgid "ISO C++ forbids variable length array"
36739 msgstr "ISO C++ prohíbe las matrices de longitud variable"
36740
36741-#: cp/decl.c:8050
36742+#: cp/decl.c:8060
36743 #, gcc-internal-format
36744 msgid "variable length array %qD is used"
36745 msgstr "se usa la matriz de longitud variable %qD"
36746
36747-#: cp/decl.c:8088
36748+#: cp/decl.c:8098
36749 #, gcc-internal-format
36750 msgid "overflow in array dimension"
36751 msgstr "desbordamiento en la dimensión de la matriz"
36752
36753-#: cp/decl.c:8148
36754+#: cp/decl.c:8158
36755 #, gcc-internal-format
36756 msgid "declaration of %qD as array of %<auto%>"
36757 msgstr "la declaración de %qD como una matriz %<auto%>"
36758
36759-#: cp/decl.c:8156
36760+#: cp/decl.c:8166
36761 #, gcc-internal-format
36762 msgid "declaration of %qD as array of void"
36763 msgstr "la declaración de %qD como una matriz de voids"
36764
36765-#: cp/decl.c:8158
36766+#: cp/decl.c:8168
36767 #, gcc-internal-format
36768 msgid "creating array of void"
36769 msgstr "se crea la matriz de voids"
36770
36771-#: cp/decl.c:8163
36772+#: cp/decl.c:8173
36773 #, gcc-internal-format
36774 msgid "declaration of %qD as array of functions"
36775 msgstr "la declaración de %qD como una matriz de funciones"
36776
36777-#: cp/decl.c:8165
36778+#: cp/decl.c:8175
36779 #, gcc-internal-format
36780 msgid "creating array of functions"
36781 msgstr "se crea la matriz de funciones"
36782
36783-#: cp/decl.c:8170
36784+#: cp/decl.c:8180
36785 #, gcc-internal-format
36786 msgid "declaration of %qD as array of references"
36787 msgstr "la declaración de %qD como una matriz de referencias"
36788
36789-#: cp/decl.c:8172
36790+#: cp/decl.c:8182
36791 #, gcc-internal-format
36792 msgid "creating array of references"
36793 msgstr "se crea la matriz de referencias"
36794
36795-#: cp/decl.c:8177
36796+#: cp/decl.c:8187
36797 #, gcc-internal-format
36798 msgid "declaration of %qD as array of function members"
36799 msgstr "la declaración de %qD como una matriz de miembros de función"
36800
36801-#: cp/decl.c:8179
36802+#: cp/decl.c:8189
36803 #, gcc-internal-format
36804 msgid "creating array of function members"
36805 msgstr "se crea la matriz de miembros de función"
36806
36807-#: cp/decl.c:8193
36808+#: cp/decl.c:8203
36809 #, gcc-internal-format
36810 msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
36811 msgstr "la declaración de %qD como una matriz multidimensional debe tener límites para todas las dimensiones excepto la primera"
36812
36813-#: cp/decl.c:8197
36814+#: cp/decl.c:8207
36815 #, gcc-internal-format
36816 msgid "multidimensional array must have bounds for all dimensions except the first"
36817 msgstr "una matriz multidimensional debe tener límites para todas las dimensiones excepto para la primera"
36818
36819-#: cp/decl.c:8232
36820+#: cp/decl.c:8242
36821 #, gcc-internal-format
36822 msgid "return type specification for constructor invalid"
36823 msgstr "la especificación del tipo de devolución para el constructor es inválida"
36824
36825-#: cp/decl.c:8242
36826+#: cp/decl.c:8252
36827 #, gcc-internal-format
36828 msgid "return type specification for destructor invalid"
36829 msgstr "la especificación del tipo de devolución para el destructor es inválida"
36830
36831-#: cp/decl.c:8255
36832+#: cp/decl.c:8265
36833 #, gcc-internal-format
36834 msgid "return type specified for %<operator %T%>"
36835 msgstr "se especificó un tipo de devolución para %<operator %T%>"
36836
36837-#: cp/decl.c:8277
36838+#: cp/decl.c:8287
36839 #, gcc-internal-format
36840 msgid "unnamed variable or field declared void"
36841 msgstr "se declaró la variable o campo sin nombre como void"
36842
36843-#: cp/decl.c:8284
36844+#: cp/decl.c:8294
36845 #, gcc-internal-format
36846 msgid "variable or field declared void"
36847 msgstr "se declaró la variable o campo como void"
36848
36849-#: cp/decl.c:8468
36850+#: cp/decl.c:8478
36851 #, gcc-internal-format
36852 msgid "invalid use of qualified-name %<::%D%>"
36853 msgstr "uso inválido del nombre calificado %<::%D%>"
36854
36855-#: cp/decl.c:8471
36856+#: cp/decl.c:8481
36857 #, gcc-internal-format
36858 msgid "invalid use of qualified-name %<%T::%D%>"
36859 msgstr "uso inválido del nombre calificado %<%T::%D%>"
36860
36861-#: cp/decl.c:8474
36862+#: cp/decl.c:8484
36863 #, gcc-internal-format
36864 msgid "invalid use of qualified-name %<%D::%D%>"
36865 msgstr "uso inválido del nombre calificado %<%D::%D%>"
36866
36867-#: cp/decl.c:8483
36868+#: cp/decl.c:8493
36869 #, gcc-internal-format
36870 msgid "%q#T is not a class or a namespace"
36871 msgstr "%q#T no es una clase o un espacio de nombres"
36872
36873-#: cp/decl.c:8491
36874+#: cp/decl.c:8501
36875 #, gcc-internal-format
36876 msgid "type %qT is not derived from type %qT"
36877 msgstr "el tipo %qT no es derivado del tipo %T"
36878
36879 # FIXME traducción
36880-#: cp/decl.c:8507 cp/decl.c:8599 cp/decl.c:8608 cp/decl.c:9951
36881+#: cp/decl.c:8517 cp/decl.c:8609 cp/decl.c:8618 cp/decl.c:9961
36882 #, gcc-internal-format
36883 msgid "declaration of %qD as non-function"
36884 msgstr "la declaración de %qD como algo que no es función"
36885
36886 # FIXME traducción
36887-#: cp/decl.c:8513
36888+#: cp/decl.c:8523
36889 #, gcc-internal-format
36890 msgid "declaration of %qD as non-member"
36891 msgstr "declaración de %qD como algo que no es miembro"
36892
36893-#: cp/decl.c:8544
36894+#: cp/decl.c:8554
36895 #, gcc-internal-format
36896 msgid "declarator-id missing; using reserved word %qD"
36897 msgstr "falta el id del declarador; se utiliza la palabra reservada %qD"
36898
36899-#: cp/decl.c:8591
36900+#: cp/decl.c:8601
36901 #, gcc-internal-format
36902 msgid "function definition does not declare parameters"
36903 msgstr "la definición de la función no declara parámetros"
36904
36905-#: cp/decl.c:8616
36906+#: cp/decl.c:8626
36907 #, gcc-internal-format
36908 msgid "declaration of %qD as %<typedef%>"
36909 msgstr "declaración de %qD como %<typedef%>"
36910
36911-#: cp/decl.c:8621
36912+#: cp/decl.c:8631
36913 #, gcc-internal-format
36914 msgid "declaration of %qD as parameter"
36915 msgstr "la declaración de %qD como parámetro"
36916
36917-#: cp/decl.c:8654
36918+#: cp/decl.c:8664
36919 #, gcc-internal-format
36920 msgid "%<constexpr%> cannot appear in a typedef declaration"
36921 msgstr "%<constexpr%> no puede aparecer en una declaración typedef"
36922
36923-#: cp/decl.c:8662
36924+#: cp/decl.c:8672
36925 #, gcc-internal-format
36926 msgid "two or more data types in declaration of %qs"
36927 msgstr "dos o más tipos de datos en la declaración de %qs"
36928
36929-#: cp/decl.c:8668
36930+#: cp/decl.c:8678
36931 #, gcc-internal-format
36932 msgid "conflicting specifiers in declaration of %qs"
36933 msgstr "especificadores en conflicto en la declaración de %qs"
36934
36935-#: cp/decl.c:8740 cp/decl.c:8743 cp/decl.c:8746
36936+#: cp/decl.c:8750 cp/decl.c:8753 cp/decl.c:8756
36937 #, gcc-internal-format
36938 msgid "ISO C++ forbids declaration of %qs with no type"
36939 msgstr "ISO C++ prohíbe la declaración de %qs sin tipo"
36940
36941-#: cp/decl.c:8757
36942+#: cp/decl.c:8767
36943 #, gcc-internal-format
36944 msgid "%<__int128%> is not supported by this target"
36945 msgstr "no se admite %<__int128%> en este objetivo"
36946
36947-#: cp/decl.c:8762
36948+#: cp/decl.c:8772
36949 #, gcc-internal-format
36950 msgid "ISO C++ does not support %<__int128%> for %qs"
36951 msgstr "ISO C++ no admite %<__int128%> para %qs"
36952
36953-#: cp/decl.c:8783 cp/decl.c:8803
36954+#: cp/decl.c:8793 cp/decl.c:8813
36955 #, gcc-internal-format
36956 msgid "%<signed%> or %<unsigned%> invalid for %qs"
36957 msgstr "%<signed%> o %<unsigned%> inválido para %qs"
36958
36959-#: cp/decl.c:8785
36960+#: cp/decl.c:8795
36961 #, gcc-internal-format
36962 msgid "%<signed%> and %<unsigned%> specified together for %qs"
36963 msgstr "%<signed%> y %<unsigned%> se especificaron juntos para %qs"
36964
36965-#: cp/decl.c:8787
36966+#: cp/decl.c:8797
36967 #, gcc-internal-format
36968 msgid "%<long long%> invalid for %qs"
36969 msgstr "%<long long%> inválido para %qs"
36970
36971-#: cp/decl.c:8789
36972+#: cp/decl.c:8799
36973 #, gcc-internal-format
36974 msgid "%<long%> invalid for %qs"
36975 msgstr "%<long%> inválido para %qs"
36976
36977-#: cp/decl.c:8791
36978+#: cp/decl.c:8801
36979 #, gcc-internal-format
36980 msgid "%<short%> invalid for %qs"
36981 msgstr "%<short%> inválido para %qs"
36982
36983-#: cp/decl.c:8793
36984+#: cp/decl.c:8803
36985 #, gcc-internal-format
36986 msgid "%<long%> or %<short%> invalid for %qs"
36987 msgstr "%<long%> o %<short%> inválidos para %qs"
36988
36989-#: cp/decl.c:8795
36990+#: cp/decl.c:8805
36991 #, gcc-internal-format
36992 msgid "%<long%>, %<int%>, %<short%>, or %<char%> invalid for %qs"
36993 msgstr "%<long%>, %<int%>, %<short%>, o %<char%> inválido para %qs"
36994
36995-#: cp/decl.c:8797
36996+#: cp/decl.c:8807
36997 #, gcc-internal-format
36998 msgid "%<long%> or %<short%> specified with char for %qs"
36999 msgstr "se especificó %<long%> o %<short%> con char para %qs"
37000
37001-#: cp/decl.c:8799
37002+#: cp/decl.c:8809
37003 #, gcc-internal-format
37004 msgid "%<long%> and %<short%> specified together for %qs"
37005 msgstr "%<long%> y %<short%> se especificaron juntos para %qs"
37006
37007-#: cp/decl.c:8805
37008+#: cp/decl.c:8815
37009 #, gcc-internal-format
37010 msgid "%<short%> or %<long%> invalid for %qs"
37011 msgstr "%<short%> o %<long%> inválidos para %qs"
37012
37013-#: cp/decl.c:8813
37014+#: cp/decl.c:8823
37015 #, gcc-internal-format
37016 msgid "long, short, signed or unsigned used invalidly for %qs"
37017 msgstr "uso inválido de long, short, signed ó unsigned para %qs"
37018
37019-#: cp/decl.c:8881
37020+#: cp/decl.c:8891
37021 #, gcc-internal-format
37022 msgid "complex invalid for %qs"
37023 msgstr "complex inválido para %qs"
37024
37025-#: cp/decl.c:8909
37026+#: cp/decl.c:8919
37027 #, gcc-internal-format
37028 msgid "qualifiers are not allowed on declaration of %<operator %T%>"
37029 msgstr "no se permiten calificadores en la declaración de %<operator %T%>"
37030
37031-#: cp/decl.c:8930
37032+#: cp/decl.c:8940
37033 #, gcc-internal-format
37034 msgid "member %qD cannot be declared both virtual and static"
37035 msgstr "el miembro %qD no se puede declarar como virtual y static al mismo tiempo"
37036
37037-#: cp/decl.c:8938
37038+#: cp/decl.c:8948
37039 #, gcc-internal-format
37040 msgid "%<%T::%D%> is not a valid declarator"
37041 msgstr "%<%T::%D%> no es un declarador válido"
37042
37043-#: cp/decl.c:8947
37044+#: cp/decl.c:8957
37045 #, gcc-internal-format
37046 msgid "typedef declaration invalid in parameter declaration"
37047 msgstr "declaración typedef inválida en la declaración de parámetros"
37048
37049-#: cp/decl.c:8952
37050+#: cp/decl.c:8962
37051 #, gcc-internal-format
37052 msgid "storage class specified for template parameter %qs"
37053 msgstr "se especificó una clase de almacenamiento para el parámetro de plantilla %qs"
37054
37055-#: cp/decl.c:8958
37056+#: cp/decl.c:8968
37057 #, gcc-internal-format
37058 msgid "storage class specifiers invalid in parameter declarations"
37059 msgstr "especificadores de clase de almacenamiento inválidos en las declaraciones de parámetros"
37060
37061-#: cp/decl.c:8964
37062+#: cp/decl.c:8974
37063 #, gcc-internal-format
37064 msgid "a parameter cannot be declared %<constexpr%>"
37065 msgstr "un parámetro no se puede declarar %<constexpr%>"
37066
37067-#: cp/decl.c:8973
37068+#: cp/decl.c:8983
37069 #, gcc-internal-format
37070 msgid "%<virtual%> outside class declaration"
37071 msgstr "declaración de clase fuera de %<virtual%>"
37072
37073-#: cp/decl.c:8991
37074+#: cp/decl.c:9001
37075 #, gcc-internal-format
37076 msgid "multiple storage classes in declaration of %qs"
37077 msgstr "múltiples clases de almacenamiento en la declaración de %qs"
37078
37079-#: cp/decl.c:9014
37080+#: cp/decl.c:9024
37081 #, gcc-internal-format
37082 msgid "storage class specified for %qs"
37083 msgstr "se especificó una clase de almacenamiento para %qs"
37084
37085-#: cp/decl.c:9018
37086+#: cp/decl.c:9028
37087 #, gcc-internal-format
37088 msgid "storage class specified for parameter %qs"
37089 msgstr "se especificó una clase de almacenamiento para el parámetro %qs"
37090
37091-#: cp/decl.c:9031
37092+#: cp/decl.c:9041
37093 #, gcc-internal-format
37094 msgid "nested function %qs declared %<extern%>"
37095 msgstr "la función anidada %qs se declaró %<extern%>"
37096
37097-#: cp/decl.c:9035
37098+#: cp/decl.c:9045
37099 #, gcc-internal-format
37100 msgid "top-level declaration of %qs specifies %<auto%>"
37101 msgstr "la declaración del nivel superior de %qs especifica %<auto%>"
37102
37103-#: cp/decl.c:9041
37104+#: cp/decl.c:9051
37105 #, gcc-internal-format
37106 msgid "function-scope %qs implicitly auto and declared %<__thread%>"
37107 msgstr "el ámbito de la función %qs es implícitamente auto y declarado %<__thread%>"
37108
37109-#: cp/decl.c:9048
37110+#: cp/decl.c:9058
37111 #, gcc-internal-format
37112 msgid "storage class specifiers invalid in friend function declarations"
37113 msgstr "especificadores de clase de almacenamiento inválidos en las declaraciones de funciones friend"
37114
37115-#: cp/decl.c:9142
37116+#: cp/decl.c:9152
37117 #, gcc-internal-format
37118 msgid "%qs declared as function returning a function"
37119 msgstr "%qs que se declaró como función devuelve una función"
37120
37121-#: cp/decl.c:9147
37122+#: cp/decl.c:9157
37123 #, gcc-internal-format
37124 msgid "%qs declared as function returning an array"
37125 msgstr "%qs que se declaró como función devuelve una matriz"
37126
37127-#: cp/decl.c:9173
37128+#: cp/decl.c:9183
37129 #, gcc-internal-format
37130 msgid "%qs function uses %<auto%> type specifier without trailing return type"
37131 msgstr "la función %qs usa el especificador de tipo %<auto%> sin un tipo de devolución trailing"
37132
37133-#: cp/decl.c:9179
37134+#: cp/decl.c:9189
37135 #, gcc-internal-format
37136 msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
37137 msgstr "la función %qs con tipo de devolución trailing tiene %qT como su tipo en lugar de un simple %<auto%>"
37138
37139 #. Not using maybe_warn_cpp0x because this should
37140 #. always be an error.
37141-#: cp/decl.c:9190
37142+#: cp/decl.c:9200
37143 #, gcc-internal-format
37144 msgid "trailing return type only available with -std=c++11 or -std=gnu++11"
37145 msgstr "el tipo de devolución trailing sólo está disponible con -std=c++11 o -std=gnu++11"
37146
37147-#: cp/decl.c:9193
37148+#: cp/decl.c:9203
37149 #, gcc-internal-format
37150 msgid "%qs function with trailing return type not declared with %<auto%> type specifier"
37151 msgstr "no se declaró la función %qs con tipo de devolución trailing con el especificador de tipo %<auto%>"
37152
37153-#: cp/decl.c:9226
37154+#: cp/decl.c:9236
37155 #, gcc-internal-format
37156 msgid "destructor cannot be static member function"
37157 msgstr "el destructor no puede ser una función miembro de tipo static"
37158
37159-#: cp/decl.c:9227
37160+#: cp/decl.c:9237
37161 #, gcc-internal-format
37162 msgid "constructor cannot be static member function"
37163 msgstr "el constructor no puede ser una función miembro de tipo static"
37164
37165-#: cp/decl.c:9231
37166+#: cp/decl.c:9241
37167 #, gcc-internal-format
37168 msgid "destructors may not be cv-qualified"
37169 msgstr "los destructores no pueden ser cv-calificados"
37170
37171-#: cp/decl.c:9232
37172+#: cp/decl.c:9242
37173 #, gcc-internal-format
37174 msgid "constructors may not be cv-qualified"
37175 msgstr "los constructores tal vez no sean cv-calificados"
37176
37177-#: cp/decl.c:9249
37178+#: cp/decl.c:9259
37179 #, gcc-internal-format
37180 msgid "constructors cannot be declared virtual"
37181 msgstr "los constructores no se pueden declarar virtual"
37182
37183-#: cp/decl.c:9262
37184+#: cp/decl.c:9272
37185 #, gcc-internal-format
37186 msgid "can%'t initialize friend function %qs"
37187 msgstr "no se puede inicializar la función friend %qs"
37188
37189 #. Cannot be both friend and virtual.
37190-#: cp/decl.c:9266
37191+#: cp/decl.c:9276
37192 #, gcc-internal-format
37193 msgid "virtual functions cannot be friends"
37194 msgstr "las funciones virtual no pueden ser friend"
37195
37196-#: cp/decl.c:9270
37197+#: cp/decl.c:9280
37198 #, gcc-internal-format
37199 msgid "friend declaration not in class definition"
37200 msgstr "la declaración friend no está en una definición de clase"
37201
37202-#: cp/decl.c:9272
37203+#: cp/decl.c:9282
37204 #, gcc-internal-format
37205 msgid "can%'t define friend function %qs in a local class definition"
37206 msgstr "no se puede definir la función friend %qs en una definición de clase local"
37207
37208-#: cp/decl.c:9293
37209+#: cp/decl.c:9303
37210 #, gcc-internal-format
37211 msgid "destructors may not have parameters"
37212 msgstr "los destructores no pueden tener parámetros"
37213
37214-#: cp/decl.c:9312
37215+#: cp/decl.c:9322
37216 #, gcc-internal-format
37217 msgid "cannot declare pointer to %q#T"
37218 msgstr "no se puede declarar el puntero a %q#T"
37219
37220-#: cp/decl.c:9325 cp/decl.c:9332
37221+#: cp/decl.c:9335 cp/decl.c:9342
37222 #, gcc-internal-format
37223 msgid "cannot declare reference to %q#T"
37224 msgstr "no se puede declarar la referencia a %q#T"
37225
37226-#: cp/decl.c:9334
37227+#: cp/decl.c:9344
37228 #, gcc-internal-format
37229 msgid "cannot declare pointer to %q#T member"
37230 msgstr "no se puede declarar el puntero al miembro %q#T"
37231
37232-#: cp/decl.c:9357
37233+#: cp/decl.c:9367
37234 #, gcc-internal-format
37235 msgid "cannot declare reference to qualified function type %qT"
37236 msgstr "no se puede declarar la referencia para el tipo de función calificado %qT"
37237
37238-#: cp/decl.c:9358
37239+#: cp/decl.c:9368
37240 #, gcc-internal-format
37241 msgid "cannot declare pointer to qualified function type %qT"
37242 msgstr "no se puede declarar el puntero para el tipo de función calificado %qT"
37243
37244-#: cp/decl.c:9432
37245+#: cp/decl.c:9442
37246 #, gcc-internal-format
37247 msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument"
37248 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"
37249
37250-#: cp/decl.c:9485
37251+#: cp/decl.c:9495
37252 #, gcc-internal-format
37253 msgid "both %<const%> and %<constexpr%> cannot be used here"
37254 msgstr "no se pueden usar aquí %<const%> ni %<constexpr%>"
37255
37256-#: cp/decl.c:9487
37257+#: cp/decl.c:9497
37258 #, gcc-internal-format
37259 msgid "both %<volatile%> and %<constexpr%> cannot be used here"
37260 msgstr "no se pueden usar aquí %<volatile%> ni %<constexpr%>"
37261
37262-#: cp/decl.c:9499
37263+#: cp/decl.c:9509
37264 #, gcc-internal-format
37265 msgid "template-id %qD used as a declarator"
37266 msgstr "el id de plantilla %qD se usa como un declarador"
37267
37268-#: cp/decl.c:9550
37269+#: cp/decl.c:9560
37270 #, gcc-internal-format
37271 msgid "member functions are implicitly friends of their class"
37272 msgstr "las funciones miembros son implícitamente friends de su clase"
37273
37274-#: cp/decl.c:9555
37275+#: cp/decl.c:9565
37276 #, gcc-internal-format
37277 msgid "extra qualification %<%T::%> on member %qs"
37278 msgstr "calificación extra %<%T::%> en el miembro %qs"
37279
37280-#: cp/decl.c:9585
37281+#: cp/decl.c:9595
37282 #, gcc-internal-format
37283 msgid "cannot define member function %<%T::%s%> within %<%T%>"
37284 msgstr "no se puede definir la función miembro %<%T::%s%> dentro de %<%T%>"
37285
37286-#: cp/decl.c:9587
37287+#: cp/decl.c:9597
37288 #, gcc-internal-format
37289 msgid "cannot declare member function %<%T::%s%> within %<%T%>"
37290 msgstr "no se puede declarar la función miembro %<%T::%s%> dentro de %<%T%>"
37291
37292-#: cp/decl.c:9596
37293+#: cp/decl.c:9606
37294 #, gcc-internal-format
37295 msgid "cannot declare member %<%T::%s%> within %qT"
37296 msgstr "no se puede declarar el miembro %<%T::%s%> dentro de %qT"
37297
37298-#: cp/decl.c:9622
37299+#: cp/decl.c:9632
37300 #, gcc-internal-format
37301 msgid "non-parameter %qs cannot be a parameter pack"
37302 msgstr "%qs que no es parámetro no puede ser un paquete de parámetro"
37303
37304-#: cp/decl.c:9632
37305+#: cp/decl.c:9642
37306 #, gcc-internal-format
37307 msgid "size of array %qs is too large"
37308 msgstr "el tamaño de la matriz %qs es demasiado grande"
37309
37310-#: cp/decl.c:9643
37311+#: cp/decl.c:9653
37312 #, gcc-internal-format
37313 msgid "data member may not have variably modified type %qT"
37314 msgstr "los datos miembro pueden no tener el tipo modificado variablemente %qT"
37315
37316-#: cp/decl.c:9645
37317+#: cp/decl.c:9655
37318 #, gcc-internal-format
37319 msgid "parameter may not have variably modified type %qT"
37320 msgstr "el parámetro puede no tener el tipo modificado variablemente %qT"
37321
37322 #. [dcl.fct.spec] The explicit specifier shall only be used in
37323 #. declarations of constructors within a class definition.
37324-#: cp/decl.c:9653
37325+#: cp/decl.c:9663
37326 #, gcc-internal-format
37327 msgid "only declarations of constructors can be %<explicit%>"
37328 msgstr "solamente las declaraciones de constructores pueden ser %<explicit%>"
37329
37330-#: cp/decl.c:9661
37331+#: cp/decl.c:9671
37332 #, gcc-internal-format
37333 msgid "non-member %qs cannot be declared %<mutable%>"
37334 msgstr "el no-miembro %qs no se puede declarar %<mutable%>"
37335
37336-#: cp/decl.c:9666
37337+#: cp/decl.c:9676
37338 #, gcc-internal-format
37339 msgid "non-object member %qs cannot be declared %<mutable%>"
37340 msgstr "el miembro que no es objeto %qs no se puede declarar %<mutable%>"
37341
37342-#: cp/decl.c:9672
37343+#: cp/decl.c:9682
37344 #, gcc-internal-format
37345 msgid "function %qs cannot be declared %<mutable%>"
37346 msgstr "la función %qs no se puede declarar %<mutable%>"
37347
37348-#: cp/decl.c:9677
37349+#: cp/decl.c:9687
37350 #, gcc-internal-format
37351 msgid "static %qs cannot be declared %<mutable%>"
37352 msgstr "static %qs no se puede declarar %<mutable%>"
37353
37354-#: cp/decl.c:9682
37355+#: cp/decl.c:9692
37356 #, gcc-internal-format
37357 msgid "const %qs cannot be declared %<mutable%>"
37358 msgstr "const %qs no se puede declarar %<mutable%>"
37359
37360-#: cp/decl.c:9687
37361+#: cp/decl.c:9697
37362 #, gcc-internal-format
37363 msgid "reference %qs cannot be declared %<mutable%>"
37364 msgstr "la referencia %qs no se puede declarar %<mutable%>"
37365
37366-#: cp/decl.c:9722
37367+#: cp/decl.c:9732
37368 #, gcc-internal-format
37369 msgid "typedef declared %<auto%>"
37370 msgstr "la definición de tipo se declaró %<auto%>"
37371
37372-#: cp/decl.c:9732
37373+#: cp/decl.c:9742
37374 #, gcc-internal-format
37375 msgid "typedef name may not be a nested-name-specifier"
37376 msgstr "el nombre del typedef puede no ser un especificador-de-nombre-anidado"
37377
37378-#: cp/decl.c:9750
37379+#: cp/decl.c:9760
37380 #, gcc-internal-format
37381 msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
37382 msgstr "ISO C++ prohíbe el tipo anidado %qD con el mismo nombre que la clase que lo contiene"
37383
37384-#: cp/decl.c:9852
37385+#: cp/decl.c:9862
37386 #, gcc-internal-format
37387 msgid "qualified function types cannot be used to declare static member functions"
37388 msgstr "los tipos de función calificados no se pueden usar para declarar una función miembro estática"
37389
37390-#: cp/decl.c:9854
37391+#: cp/decl.c:9864
37392 #, gcc-internal-format
37393 msgid "qualified function types cannot be used to declare free functions"
37394 msgstr "los tipos de función calificados no se pueden usar para declarar funciones libres"
37395
37396-#: cp/decl.c:9881
37397+#: cp/decl.c:9891
37398 #, gcc-internal-format
37399 msgid "type qualifiers specified for friend class declaration"
37400 msgstr "se especificaron calificadores de tipo para la declaración de clase friend"
37401
37402-#: cp/decl.c:9886
37403+#: cp/decl.c:9896
37404 #, gcc-internal-format
37405 msgid "%<inline%> specified for friend class declaration"
37406 msgstr "se especificó %<inline%> para la declaración de clase friend"
37407
37408-#: cp/decl.c:9894
37409+#: cp/decl.c:9904
37410 #, gcc-internal-format
37411 msgid "template parameters cannot be friends"
37412 msgstr "los parámetros de la plantilla no pueden ser friends"
37413
37414-#: cp/decl.c:9896
37415+#: cp/decl.c:9906
37416 #, gcc-internal-format
37417 msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
37418 msgstr "la declaración friend requere una llave de clase, p.e. %<friend class %T::%D%>"
37419
37420-#: cp/decl.c:9900
37421+#: cp/decl.c:9910
37422 #, gcc-internal-format
37423 msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
37424 msgstr "la declaración friend requiere una llave de clase, p.e. %<friend %#T%>"
37425
37426-#: cp/decl.c:9913
37427+#: cp/decl.c:9923
37428 #, gcc-internal-format
37429 msgid "trying to make class %qT a friend of global scope"
37430 msgstr "se intenta hacer que la clase %qT sea un friend de ámbito global"
37431
37432-#: cp/decl.c:9931
37433+#: cp/decl.c:9941
37434 #, gcc-internal-format
37435 msgid "invalid qualifiers on non-member function type"
37436 msgstr "calificadores inválidos en el tipo de función que no es miembro"
37437
37438-#: cp/decl.c:9941
37439+#: cp/decl.c:9951
37440 #, gcc-internal-format
37441 msgid "abstract declarator %qT used as declaration"
37442 msgstr "el declarador abstracto %qT se usó como declaración"
37443
37444-#: cp/decl.c:9970
37445+#: cp/decl.c:9980
37446 #, gcc-internal-format
37447 msgid "cannot use %<::%> in parameter declaration"
37448 msgstr "no se puede usar %<::%> en la declaración de parámetros"
37449
37450-#: cp/decl.c:9974
37451+#: cp/decl.c:9984
37452 #, gcc-internal-format
37453 msgid "parameter declared %<auto%>"
37454 msgstr "el parámetro se declaró %<auto%>"
37455
37456-#: cp/decl.c:10016
37457+#: cp/decl.c:10026
37458 #, gcc-internal-format
37459 msgid "non-static data member declared %<auto%>"
37460 msgstr "se declaró el miembro dato que no es static como %<auto%>"
37461
37462 #. Something like struct S { int N::j; };
37463-#: cp/decl.c:10038
37464+#: cp/decl.c:10048
37465 #, gcc-internal-format
37466 msgid "invalid use of %<::%>"
37467 msgstr "uso inválido de %<::%>"
37468
37469-#: cp/decl.c:10060
37470+#: cp/decl.c:10070
37471 #, gcc-internal-format
37472 msgid "declaration of function %qD in invalid context"
37473 msgstr "declaración de la función %qD en un contexto inválido"
37474
37475-#: cp/decl.c:10069
37476+#: cp/decl.c:10079
37477 #, gcc-internal-format
37478 msgid "function %qD declared virtual inside a union"
37479 msgstr "la función %qD se declaró virtual dentro de un union"
37480
37481-#: cp/decl.c:10078
37482+#: cp/decl.c:10088
37483 #, gcc-internal-format
37484 msgid "%qD cannot be declared virtual, since it is always static"
37485 msgstr "%qD no se puede declarar virtual, ya que siempre es static"
37486
37487-#: cp/decl.c:10094
37488+#: cp/decl.c:10104
37489 #, gcc-internal-format
37490 msgid "expected qualified name in friend declaration for destructor %qD"
37491 msgstr "se esperaba un nombre calificado en la declaración friend para el destructor %qD"
37492
37493-#: cp/decl.c:10101
37494+#: cp/decl.c:10111
37495 #, gcc-internal-format
37496 msgid "declaration of %qD as member of %qT"
37497 msgstr "declaración de %qD como miembro de %qT"
37498
37499-#: cp/decl.c:10107
37500+#: cp/decl.c:10117
37501 #, gcc-internal-format
37502 msgid "a destructor cannot be %<constexpr%>"
37503 msgstr "un destructor no puede ser %<constexpr%>"
37504
37505-#: cp/decl.c:10113
37506+#: cp/decl.c:10123
37507 #, gcc-internal-format
37508 msgid "expected qualified name in friend declaration for constructor %qD"
37509 msgstr "se esperaba un nombre calificado en la declaración friend para el constructor %qD"
37510
37511-#: cp/decl.c:10159
37512+#: cp/decl.c:10169
37513 #, gcc-internal-format
37514 msgid "field %qD has incomplete type"
37515 msgstr "el campo %qD tiene tipo de dato incompleto"
37516
37517-#: cp/decl.c:10161
37518+#: cp/decl.c:10171
37519 #, gcc-internal-format
37520 msgid "name %qT has incomplete type"
37521 msgstr "el nombre %qT tiene tipo de dato incompleto"
37522
37523-#: cp/decl.c:10170
37524+#: cp/decl.c:10180
37525 #, gcc-internal-format
37526 msgid " in instantiation of template %qT"
37527 msgstr " en la instanciación de la plantilla %qT"
37528
37529-#: cp/decl.c:10179
37530+#: cp/decl.c:10189
37531 #, gcc-internal-format
37532 msgid "%qE is neither function nor member function; cannot be declared friend"
37533 msgstr "%qE no es ni función ni función miembro; no se puede declarar friend"
37534
37535-#: cp/decl.c:10231
37536+#: cp/decl.c:10241
37537 #, gcc-internal-format
37538 msgid "constexpr static data member %qD must have an initializer"
37539 msgstr "el miembro dato static constexpr %qD debe tener un inicializador"
37540
37541-#: cp/decl.c:10240
37542+#: cp/decl.c:10250
37543 #, gcc-internal-format
37544 msgid "non-static data member %qE declared %<constexpr%>"
37545 msgstr "se declaró el miembro dato que no es static %qE como %<constexpr%>"
37546
37547-#: cp/decl.c:10290
37548+#: cp/decl.c:10300
37549 #, gcc-internal-format
37550 msgid "storage class %<auto%> invalid for function %qs"
37551 msgstr "la clase de almacenamiento %<auto%> es inválida para la función %qs"
37552
37553-#: cp/decl.c:10292
37554+#: cp/decl.c:10302
37555 #, gcc-internal-format
37556 msgid "storage class %<register%> invalid for function %qs"
37557 msgstr "la clase de almacenamiento %<register%> es inválida para la función %qs"
37558
37559-#: cp/decl.c:10294
37560+#: cp/decl.c:10304
37561 #, gcc-internal-format
37562 msgid "storage class %<__thread%> invalid for function %qs"
37563 msgstr "la clase de almacenamiento %<__thread%> es inválida para la función %qs"
37564
37565-#: cp/decl.c:10297
37566+#: cp/decl.c:10307
37567 #, gcc-internal-format
37568 msgid "virt-specifiers in %qs not allowed outside a class definition"
37569 msgstr "no se permiten los especificadores-virt en %qs fuera de una definición de clase"
37570
37571-#: cp/decl.c:10308
37572+#: cp/decl.c:10318
37573 #, gcc-internal-format
37574 msgid "%<static%> specified invalid for function %qs declared out of global scope"
37575 msgstr "el especificador %<static%> es inválido para la función %qs declarada fuera del ámbito global"
37576
37577-#: cp/decl.c:10312
37578+#: cp/decl.c:10322
37579 #, gcc-internal-format
37580 msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
37581 msgstr "el especificador %<inline%> es inválido para la función %qs declarada fuera del ámbito global"
37582
37583-#: cp/decl.c:10320
37584+#: cp/decl.c:10330
37585 #, gcc-internal-format
37586 msgid "virtual non-class function %qs"
37587 msgstr "función virtual %qs que no es clase"
37588
37589-#: cp/decl.c:10327
37590+#: cp/decl.c:10337
37591 #, gcc-internal-format
37592 msgid "%qs defined in a non-class scope"
37593 msgstr "se definió %qs en un ámbito que no es una clase"
37594
37595-#: cp/decl.c:10328
37596+#: cp/decl.c:10338
37597 #, gcc-internal-format
37598 msgid "%qs declared in a non-class scope"
37599 msgstr "se declaró %qs en un ámbito que no es una clase"
37600
37601-#: cp/decl.c:10356
37602+#: cp/decl.c:10366
37603 #, gcc-internal-format
37604 msgid "cannot declare member function %qD to have static linkage"
37605 msgstr "no se puede declarar que la función miembro %qD tenga enlace estático"
37606
37607 #. FIXME need arm citation
37608-#: cp/decl.c:10363
37609+#: cp/decl.c:10373
37610 #, gcc-internal-format
37611 msgid "cannot declare static function inside another function"
37612 msgstr "no se puede declarar una función static dentro de otra función"
37613
37614-#: cp/decl.c:10393
37615+#: cp/decl.c:10403
37616 #, gcc-internal-format
37617 msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
37618 msgstr "%<static%> puede no ser utilizado cuando se define (opuesto a la declaración) un dato miembro static"
37619
37620-#: cp/decl.c:10400
37621+#: cp/decl.c:10410
37622 #, gcc-internal-format
37623 msgid "static member %qD declared %<register%>"
37624 msgstr "se declaró el miembro static %qD como %<register%>"
37625
37626-#: cp/decl.c:10406
37627+#: cp/decl.c:10416
37628 #, gcc-internal-format
37629 msgid "cannot explicitly declare member %q#D to have extern linkage"
37630 msgstr "no se puede declarar explícitamente que el miembro %q#D tenga un enlace externo"
37631
37632-#: cp/decl.c:10413
37633+#: cp/decl.c:10423
37634 #, gcc-internal-format
37635 msgid "declaration of constexpr variable %qD is not a definition"
37636 msgstr "la declaración de la variable constexpr %qD no es una definición"
37637
37638-#: cp/decl.c:10426
37639+#: cp/decl.c:10436
37640 #, gcc-internal-format
37641 msgid "%qs initialized and declared %<extern%>"
37642 msgstr "%qs inicializado y declarado como %<extern%>"
37643
37644-#: cp/decl.c:10430
37645+#: cp/decl.c:10440
37646 #, gcc-internal-format
37647 msgid "%qs has both %<extern%> and initializer"
37648 msgstr "%qs tiene %<extern%> e inicializador al mismo tiempo"
37649
37650-#: cp/decl.c:10557
37651+#: cp/decl.c:10568
37652 #, gcc-internal-format
37653 msgid "default argument for %q#D has type %qT"
37654 msgstr "el argumento por defecto de %q#D tiene tipo %qT"
37655
37656-#: cp/decl.c:10560
37657+#: cp/decl.c:10571
37658 #, gcc-internal-format
37659 msgid "default argument for parameter of type %qT has type %qT"
37660 msgstr "el argumento por defecto para el parámetro del tipo %qT tiene el tipo %qT"
37661
37662-#: cp/decl.c:10576
37663+#: cp/decl.c:10588
37664 #, gcc-internal-format
37665+msgid "default argument %qE uses %qD"
37666+msgstr "el argumento por defecto %qE usa %qD"
37667+
37668+#: cp/decl.c:10590
37669+#, gcc-internal-format
37670 msgid "default argument %qE uses local variable %qD"
37671 msgstr "el argumento por defecto %qE usa la variable local %qD"
37672
37673-#: cp/decl.c:10664
37674+#: cp/decl.c:10678
37675 #, gcc-internal-format
37676 msgid "parameter %qD has Java class type"
37677 msgstr "el parámetro %qD tiene tipo de clase Java"
37678
37679-#: cp/decl.c:10692
37680+#: cp/decl.c:10706
37681 #, gcc-internal-format
37682 msgid "parameter %qD invalidly declared method type"
37683 msgstr "el parámetro %qD se declaró inválidamente como tipo de método"
37684
37685-#: cp/decl.c:10717
37686+#: cp/decl.c:10731
37687 #, gcc-internal-format
37688 msgid "parameter %qD includes pointer to array of unknown bound %qT"
37689 msgstr "el parámetro %qD incluye un puntero a matriz %qT de límite desconocido"
37690
37691-#: cp/decl.c:10719
37692+#: cp/decl.c:10733
37693 #, gcc-internal-format
37694 msgid "parameter %qD includes reference to array of unknown bound %qT"
37695 msgstr "el parámetro %qD incluye una referencia a matriz %qT de límite desconocido"
37696@@ -28734,170 +28940,170 @@
37697 #. or implicitly defined), there's no need to worry about their
37698 #. existence. Theoretically, they should never even be
37699 #. instantiated, but that's hard to forestall.
37700-#: cp/decl.c:10960
37701+#: cp/decl.c:10974
37702 #, gcc-internal-format
37703 msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
37704 msgstr "constructor inválido; tal vez quiso decir %<%T (const %T&)%>"
37705
37706-#: cp/decl.c:11082
37707+#: cp/decl.c:11096
37708 #, gcc-internal-format
37709 msgid "%qD may not be declared within a namespace"
37710 msgstr "%qD no se puede declarar dentro de un espacio de nombres"
37711
37712-#: cp/decl.c:11087
37713+#: cp/decl.c:11101
37714 #, gcc-internal-format
37715 msgid "%qD may not be declared as static"
37716 msgstr "%qD no se puede declarar como static"
37717
37718-#: cp/decl.c:11113
37719+#: cp/decl.c:11127
37720 #, gcc-internal-format
37721 msgid "%qD must be a nonstatic member function"
37722 msgstr "%qD debe ser una función miembro que no sea static"
37723
37724-#: cp/decl.c:11122
37725+#: cp/decl.c:11136
37726 #, gcc-internal-format
37727 msgid "%qD must be either a non-static member function or a non-member function"
37728 msgstr "%qD debe ser una función miembro que no sea static o una función que no sea miembro"
37729
37730-#: cp/decl.c:11144
37731+#: cp/decl.c:11158
37732 #, gcc-internal-format
37733 msgid "%qD must have an argument of class or enumerated type"
37734 msgstr "%qD debe tener un argumento de tipo clase o enumerado"
37735
37736-#: cp/decl.c:11173
37737+#: cp/decl.c:11187
37738 #, gcc-internal-format
37739 msgid "conversion to a reference to void will never use a type conversion operator"
37740 msgstr "la conversión a una referencia a void nunca usará un operador de conversión de tipo"
37741
37742-#: cp/decl.c:11175
37743+#: cp/decl.c:11189
37744 #, gcc-internal-format
37745 msgid "conversion to void will never use a type conversion operator"
37746 msgstr "la conversión a void nunca usará un operador de conversión de tipo"
37747
37748-#: cp/decl.c:11182
37749+#: cp/decl.c:11196
37750 #, gcc-internal-format
37751 msgid "conversion to a reference to the same type will never use a type conversion operator"
37752 msgstr "la conversión a una referencia al mismo tipo nunca usará un operador de conversión de tipo"
37753
37754-#: cp/decl.c:11184
37755+#: cp/decl.c:11198
37756 #, gcc-internal-format
37757 msgid "conversion to the same type will never use a type conversion operator"
37758 msgstr "la conversión al mismo tipo nunca usará un operador de conversión de tipo"
37759
37760-#: cp/decl.c:11192
37761+#: cp/decl.c:11206
37762 #, gcc-internal-format
37763 msgid "conversion to a reference to a base class will never use a type conversion operator"
37764 msgstr "la conversión a una referencia a una clase base nunca usará un operador de conversión de tipo"
37765
37766-#: cp/decl.c:11194
37767+#: cp/decl.c:11208
37768 #, gcc-internal-format
37769 msgid "conversion to a base class will never use a type conversion operator"
37770 msgstr "la conversión a una clase base nunca usará un operador de conversión de tipo"
37771
37772 #. 13.4.0.3
37773-#: cp/decl.c:11203
37774+#: cp/decl.c:11217
37775 #, gcc-internal-format
37776 msgid "ISO C++ prohibits overloading operator ?:"
37777 msgstr "ISO C++ prohíbe la sobrecarga del operador ?:"
37778
37779-#: cp/decl.c:11208
37780+#: cp/decl.c:11222
37781 #, gcc-internal-format
37782 msgid "%qD must not have variable number of arguments"
37783 msgstr "%qD no debe tener un número variable de argumentos"
37784
37785-#: cp/decl.c:11259
37786+#: cp/decl.c:11273
37787 #, gcc-internal-format
37788 msgid "postfix %qD must take %<int%> as its argument"
37789 msgstr "el postfijo %qD debe tomar %<int%> como su argumento"
37790
37791-#: cp/decl.c:11262
37792+#: cp/decl.c:11276
37793 #, gcc-internal-format
37794 msgid "postfix %qD must take %<int%> as its second argument"
37795 msgstr "el postfijo %qD debe tomar %<int%> como su segundo argumento"
37796
37797-#: cp/decl.c:11270
37798+#: cp/decl.c:11284
37799 #, gcc-internal-format
37800 msgid "%qD must take either zero or one argument"
37801 msgstr "%qD debe tomar cero o un argumentos"
37802
37803-#: cp/decl.c:11272
37804+#: cp/decl.c:11286
37805 #, gcc-internal-format
37806 msgid "%qD must take either one or two arguments"
37807 msgstr "%qD debe tomar uno o dos argumentos"
37808
37809 # En esta traducción se emplea 'devolver' por 'return'. Si embargo, aquí
37810 # se cambió por cacofonía: no es agradable escuchar 'debe devolver'. cfuga
37811-#: cp/decl.c:11294
37812+#: cp/decl.c:11308
37813 #, gcc-internal-format
37814 msgid "prefix %qD should return %qT"
37815 msgstr "el prefijo %qD debe regresar %qT"
37816
37817-#: cp/decl.c:11300
37818+#: cp/decl.c:11314
37819 #, gcc-internal-format
37820 msgid "postfix %qD should return %qT"
37821 msgstr "el postfijo %qD debe regresar %qT"
37822
37823-#: cp/decl.c:11309
37824+#: cp/decl.c:11323
37825 #, gcc-internal-format
37826 msgid "%qD must take %<void%>"
37827 msgstr "%qD debe tomar %<void%>"
37828
37829-#: cp/decl.c:11311 cp/decl.c:11320
37830+#: cp/decl.c:11325 cp/decl.c:11334
37831 #, gcc-internal-format
37832 msgid "%qD must take exactly one argument"
37833 msgstr "%qD debe tomar un argumento exactamente"
37834
37835-#: cp/decl.c:11322
37836+#: cp/decl.c:11336
37837 #, gcc-internal-format
37838 msgid "%qD must take exactly two arguments"
37839 msgstr "%qD debe tomar dos argumentos exactamente"
37840
37841-#: cp/decl.c:11331
37842+#: cp/decl.c:11345
37843 #, gcc-internal-format
37844 msgid "user-defined %qD always evaluates both arguments"
37845 msgstr "el %qD definido por el usuario siempre evalúa ambos argumentos"
37846
37847-#: cp/decl.c:11345
37848+#: cp/decl.c:11359
37849 #, gcc-internal-format
37850 msgid "%qD should return by value"
37851 msgstr "%qD debe devolver por valor"
37852
37853-#: cp/decl.c:11356 cp/decl.c:11361
37854+#: cp/decl.c:11370 cp/decl.c:11375
37855 #, gcc-internal-format
37856 msgid "%qD cannot have default arguments"
37857 msgstr "%qD no puede tener argumentos por defecto"
37858
37859-#: cp/decl.c:11422
37860+#: cp/decl.c:11436
37861 #, gcc-internal-format
37862 msgid "using template type parameter %qT after %qs"
37863 msgstr "usando el parámetro de tipo plantilla %qT después de %qs"
37864
37865-#: cp/decl.c:11444
37866+#: cp/decl.c:11458
37867 #, gcc-internal-format
37868 msgid "using alias template specialization %qT after %qs"
37869 msgstr "se usa especialización de plantilla %qT alias después de %qs"
37870
37871-#: cp/decl.c:11447
37872+#: cp/decl.c:11461
37873 #, gcc-internal-format
37874 msgid "using typedef-name %qD after %qs"
37875 msgstr "se usó el nombre de definición de tipo %qD después de %qs"
37876
37877-#: cp/decl.c:11449
37878+#: cp/decl.c:11463
37879 #, gcc-internal-format
37880 msgid "%qD has a previous declaration here"
37881 msgstr "%qD tiene una declaración previa aquí"
37882
37883-#: cp/decl.c:11457
37884+#: cp/decl.c:11471
37885 #, gcc-internal-format
37886 msgid "%qT referred to as %qs"
37887 msgstr "se refirió a %qT como %qs"
37888
37889-#: cp/decl.c:11458 cp/decl.c:11465
37890+#: cp/decl.c:11472 cp/decl.c:11479
37891 #, gcc-internal-format
37892 msgid "%q+T has a previous declaration here"
37893 msgstr "%q+T tiene una declaración previa aquí"
37894
37895-#: cp/decl.c:11464
37896+#: cp/decl.c:11478
37897 #, gcc-internal-format
37898 msgid "%qT referred to as enum"
37899 msgstr "se refirió a %qT como un enum"
37900@@ -28909,90 +29115,90 @@
37901 #. void f(class C); // No template header here
37902 #.
37903 #. then the required template argument is missing.
37904-#: cp/decl.c:11479
37905+#: cp/decl.c:11493
37906 #, gcc-internal-format
37907 msgid "template argument required for %<%s %T%>"
37908 msgstr "se requiere un argumento de plantilla para %<%s %T%>"
37909
37910-#: cp/decl.c:11527 cp/name-lookup.c:3049
37911+#: cp/decl.c:11541 cp/name-lookup.c:3049
37912 #, gcc-internal-format
37913 msgid "%qD has the same name as the class in which it is declared"
37914 msgstr "%qD tiene el mismo nombre que la clase en la cual se declaró"
37915
37916-#: cp/decl.c:11557 cp/name-lookup.c:2548 cp/name-lookup.c:3373
37917+#: cp/decl.c:11571 cp/name-lookup.c:2548 cp/name-lookup.c:3373
37918 #: cp/name-lookup.c:3418 cp/parser.c:5054 cp/parser.c:20501
37919 #, gcc-internal-format
37920 msgid "reference to %qD is ambiguous"
37921 msgstr "la referencia a %qD es ambigua"
37922
37923-#: cp/decl.c:11669
37924+#: cp/decl.c:11683
37925 #, gcc-internal-format
37926 msgid "use of enum %q#D without previous declaration"
37927 msgstr "uso del enum %q#D sin declaración previa"
37928
37929-#: cp/decl.c:11690
37930+#: cp/decl.c:11704
37931 #, gcc-internal-format
37932 msgid "redeclaration of %qT as a non-template"
37933 msgstr "redeclaración de %qT como algo que no es plantilla"
37934
37935-#: cp/decl.c:11691
37936+#: cp/decl.c:11705
37937 #, gcc-internal-format
37938 msgid "previous declaration %q+D"
37939 msgstr "declaración previa de %q+D"
37940
37941-#: cp/decl.c:11825
37942+#: cp/decl.c:11839
37943 #, gcc-internal-format
37944 msgid "derived union %qT invalid"
37945 msgstr "union derivada %qT inválida"
37946
37947-#: cp/decl.c:11834
37948+#: cp/decl.c:11848
37949 #, gcc-internal-format
37950 msgid "Java class %qT cannot have multiple bases"
37951 msgstr "la clase Java %qT no puede tener bases múltiples"
37952
37953-#: cp/decl.c:11845
37954+#: cp/decl.c:11859
37955 #, gcc-internal-format
37956 msgid "Java class %qT cannot have virtual bases"
37957 msgstr "la clase Java %qT no puede tener bases virtuales"
37958
37959 # No me gusta mucho esta traducción. Creo que es mejor
37960 # "el tipo base %qT no es de tipo struct o clase". cfuga
37961-#: cp/decl.c:11865
37962+#: cp/decl.c:11879
37963 #, gcc-internal-format
37964 msgid "base type %qT fails to be a struct or class type"
37965 msgstr "el tipo base %qT falla en ser un tipo struct o clase"
37966
37967-#: cp/decl.c:11898
37968+#: cp/decl.c:11912
37969 #, gcc-internal-format
37970 msgid "recursive type %qT undefined"
37971 msgstr "tipo recursivo %qT sin definir"
37972
37973-#: cp/decl.c:11900
37974+#: cp/decl.c:11914
37975 #, gcc-internal-format
37976 msgid "duplicate base type %qT invalid"
37977 msgstr "tipo base duplicado %qT inválido"
37978
37979-#: cp/decl.c:12024
37980+#: cp/decl.c:12038
37981 #, gcc-internal-format
37982 msgid "scoped/unscoped mismatch in enum %q#T"
37983 msgstr "no coinciden scoped/unscoped en el enum %q#T"
37984
37985-#: cp/decl.c:12027 cp/decl.c:12035 cp/decl.c:12047 cp/parser.c:14514
37986+#: cp/decl.c:12041 cp/decl.c:12049 cp/decl.c:12061 cp/parser.c:14514
37987 #, gcc-internal-format
37988 msgid "previous definition here"
37989 msgstr "la definición previa está aquí"
37990
37991-#: cp/decl.c:12032
37992+#: cp/decl.c:12046
37993 #, gcc-internal-format
37994 msgid "underlying type mismatch in enum %q#T"
37995 msgstr "no coincide el tipo subyacente en el enum %q#T"
37996
37997-#: cp/decl.c:12044
37998+#: cp/decl.c:12058
37999 #, gcc-internal-format
38000 msgid "different underlying type in enum %q#T"
38001 msgstr "tipos subyacentes diferentes en el enum %q#T"
38002
38003-#: cp/decl.c:12111
38004+#: cp/decl.c:12125
38005 #, gcc-internal-format
38006 msgid "underlying type %<%T%> of %<%T%> must be an integral type"
38007 msgstr "el tipo subyacente %<%T%> de %<%T%> debe ser un tipo integral"
38008@@ -29001,72 +29207,72 @@
38009 #.
38010 #. IF no integral type can represent all the enumerator values, the
38011 #. enumeration is ill-formed.
38012-#: cp/decl.c:12245
38013+#: cp/decl.c:12259
38014 #, gcc-internal-format
38015 msgid "no integral type can represent all of the enumerator values for %qT"
38016 msgstr "ningún tipo integral puede representar todos los valores de enumerador de %qT"
38017
38018-#: cp/decl.c:12380
38019+#: cp/decl.c:12394
38020 #, gcc-internal-format
38021 msgid "enumerator value for %qD is not an integer constant"
38022 msgstr "el valor de enumerador para %qD no es una constante entera"
38023
38024-#: cp/decl.c:12430
38025+#: cp/decl.c:12444
38026 #, gcc-internal-format
38027 msgid "incremented enumerator value is too large for %<unsigned long%>"
38028 msgstr "el valor del enumerador incrementado es demasiado grande para %<unsigned long%>"
38029
38030-#: cp/decl.c:12442
38031+#: cp/decl.c:12456
38032 #, gcc-internal-format
38033 msgid "overflow in enumeration values at %qD"
38034 msgstr "desbordamiento en valores de enumeración en %qD"
38035
38036-#: cp/decl.c:12462
38037+#: cp/decl.c:12476
38038 #, gcc-internal-format
38039 msgid "enumerator value %E is too large for underlying type %<%T%>"
38040 msgstr "el valor de enumerador %E es demasiado grande para el tipo subyacente %<%T%>"
38041
38042-#: cp/decl.c:12559
38043+#: cp/decl.c:12573
38044 #, gcc-internal-format
38045 msgid "return type %q#T is incomplete"
38046 msgstr "el tipo de devolución %q#T es un tipo de dato incompleto"
38047
38048-#: cp/decl.c:12561
38049+#: cp/decl.c:12575
38050 #, gcc-internal-format
38051 msgid "return type has Java class type %q#T"
38052 msgstr "el tipo de devolución tiene tipo de clase Java %q#T"
38053
38054-#: cp/decl.c:12685 cp/typeck.c:7896
38055+#: cp/decl.c:12699 cp/typeck.c:7896
38056 #, gcc-internal-format
38057 msgid "%<operator=%> should return a reference to %<*this%>"
38058 msgstr "%<operator=%> debe devolver una referencia a %<*this%>"
38059
38060-#: cp/decl.c:12780
38061+#: cp/decl.c:12794
38062 #, gcc-internal-format
38063 msgid "no previous declaration for %q+D"
38064 msgstr "no hay declaración previa para %q+D"
38065
38066-#: cp/decl.c:12995
38067+#: cp/decl.c:13009
38068 #, gcc-internal-format
38069 msgid "invalid function declaration"
38070 msgstr "declaración de función inválida"
38071
38072-#: cp/decl.c:13079
38073+#: cp/decl.c:13093
38074 #, gcc-internal-format
38075 msgid "parameter %qD declared void"
38076 msgstr "el parámetro %qD se declaró void"
38077
38078-#: cp/decl.c:13532
38079+#: cp/decl.c:13546
38080 #, gcc-internal-format
38081 msgid "parameter %q+D set but not used"
38082 msgstr "se define el parámetro %q+D pero no se usa"
38083
38084-#: cp/decl.c:13627
38085+#: cp/decl.c:13641
38086 #, gcc-internal-format
38087 msgid "invalid member function declaration"
38088 msgstr "declaración de la función miembro inválida"
38089
38090-#: cp/decl.c:13641
38091+#: cp/decl.c:13655
38092 #, gcc-internal-format
38093 msgid "%qD is already defined in class %qT"
38094 msgstr "%qD ya se definió en la clase %qT"
38095@@ -29106,7 +29312,7 @@
38096 msgid "deleting %qT is undefined"
38097 msgstr "el borrado de %qT está indefinido"
38098
38099-#: cp/decl2.c:512 cp/pt.c:4875
38100+#: cp/decl2.c:512 cp/pt.c:4877
38101 #, gcc-internal-format
38102 msgid "template declaration of %q#D"
38103 msgstr "declaración plantilla de %q#D"
38104@@ -29297,87 +29503,87 @@
38105 msgid "use of deleted function %qD"
38106 msgstr "se usó la función borrada %q+D"
38107
38108-#: cp/error.c:3261
38109+#: cp/error.c:3263
38110 #, gcc-internal-format
38111 msgid "extended initializer lists only available with -std=c++11 or -std=gnu++11"
38112 msgstr "las listas de inicializador extendidas sólo está disponibles con -std=c++11 o -std=gnu++11"
38113
38114-#: cp/error.c:3266
38115+#: cp/error.c:3268
38116 #, gcc-internal-format
38117 msgid "explicit conversion operators only available with -std=c++11 or -std=gnu++11"
38118 msgstr "los operadores de conversión explícita sólo están disponibles con -std=c++11 o -std=gnu++11"
38119
38120-#: cp/error.c:3271
38121+#: cp/error.c:3273
38122 #, gcc-internal-format
38123 msgid "variadic templates only available with -std=c++11 or -std=gnu++11"
38124 msgstr "las plantillas variadic sólo están disponibles con -std=c++11 o -std=gnu++11"
38125
38126-#: cp/error.c:3276
38127+#: cp/error.c:3278
38128 #, gcc-internal-format
38129 msgid "lambda expressions only available with -std=c++11 or -std=gnu++11"
38130 msgstr "las expresiones lambda sólo están disponibles con -std=c++11 o -std=gnu++11"
38131
38132-#: cp/error.c:3281
38133+#: cp/error.c:3283
38134 #, gcc-internal-format
38135 msgid "C++0x auto only available with -std=c++11 or -std=gnu++11"
38136 msgstr "C++0x automático sólo está disponible con -std=c++11 o -std=gnu++11"
38137
38138-#: cp/error.c:3285
38139+#: cp/error.c:3287
38140 #, gcc-internal-format
38141 msgid "scoped enums only available with -std=c++11 or -std=gnu++11"
38142 msgstr "los enums con ámbito sólo están disponibles con -std=c++11 o -std=gnu++11"
38143
38144-#: cp/error.c:3289
38145+#: cp/error.c:3291
38146 #, gcc-internal-format
38147 msgid "defaulted and deleted functions only available with -std=c++11 or -std=gnu++11"
38148 msgstr "las funciones por defecto y borradas sólo están disponibles con -std=c++11 o -std=gnu++11"
38149
38150-#: cp/error.c:3294
38151+#: cp/error.c:3296
38152 #, gcc-internal-format
38153 msgid "inline namespaces only available with -std=c++11 or -std=gnu++11"
38154 msgstr "los nombres de espacio incluídos en línea sólo están disponibles con -std=c++11 o -std=gnu++11"
38155
38156-#: cp/error.c:3299
38157+#: cp/error.c:3301
38158 #, gcc-internal-format
38159 msgid "override controls (override/final) only available with -std=c++11 or -std=gnu++11"
38160 msgstr "los controles de anulación (override/final) sólo están disponibles con -std=c++11 o -std=gnu++11"
38161
38162-#: cp/error.c:3304
38163+#: cp/error.c:3306
38164 #, gcc-internal-format
38165 msgid "non-static data member initializers only available with -std=c++11 or -std=gnu++11"
38166 msgstr "los inicializadores de datos miembro que no son static sólo está disponibles con -std=c++11 o -std=gnu++11"
38167
38168-#: cp/error.c:3309
38169+#: cp/error.c:3311
38170 #, gcc-internal-format
38171 msgid "user-defined literals only available with -std=c++11 or -std=gnu++11"
38172 msgstr "las literales definidas por el usuario sólo está disponibles con -std=c++11 o -std=gnu++11"
38173
38174-#: cp/error.c:3314
38175+#: cp/error.c:3316
38176 #, gcc-internal-format
38177 msgid "delegating constructors only available with -std=c++11 or -std=gnu++11"
38178 msgstr "los constructores delegadores sólo están disponibles con -std=c++11 o -std=gnu++11"
38179
38180-#: cp/error.c:3361
38181+#: cp/error.c:3363
38182 #, gcc-internal-format
38183 msgid "incomplete type %qT used in nested name specifier"
38184 msgstr "se utilizó el tipo incompleto %qT en un especificador de nombre anidado"
38185
38186-#: cp/error.c:3365
38187+#: cp/error.c:3367
38188 #, gcc-internal-format
38189 msgid "reference to %<%T::%D%> is ambiguous"
38190 msgstr "la referencia a %<%T::%D%> es ambigua"
38191
38192-#: cp/error.c:3370 cp/typeck.c:2178
38193+#: cp/error.c:3372 cp/typeck.c:2178
38194 #, gcc-internal-format
38195 msgid "%qD is not a member of %qT"
38196 msgstr "%qD no es un miembro de %qT"
38197
38198-#: cp/error.c:3374
38199+#: cp/error.c:3376
38200 #, gcc-internal-format
38201 msgid "%qD is not a member of %qD"
38202 msgstr "%qD no es un miembro de %qD"
38203
38204-#: cp/error.c:3379
38205+#: cp/error.c:3381
38206 #, gcc-internal-format
38207 msgid "%<::%D%> has not been declared"
38208 msgstr "%<::%D%> no se ha declarado"
38209@@ -29878,42 +30084,42 @@
38210 msgid "(if you use %<-fpermissive%>, G++ will accept your code, but allowing the use of an undeclared name is deprecated)"
38211 msgstr "(si utiliza %<-fpermissive%>, G++ aceptará su código, pero permitir el uso de un nombre sin declarar es obsoleto)"
38212
38213-#: cp/mangle.c:2024
38214+#: cp/mangle.c:2022
38215 #, gcc-internal-format
38216 msgid "mangling typeof, use decltype instead"
38217 msgstr "se decodifica typeof, utilice decltype en su lugar"
38218
38219-#: cp/mangle.c:2028
38220+#: cp/mangle.c:2026
38221 #, gcc-internal-format
38222 msgid "mangling __underlying_type"
38223 msgstr "se decodifica __underlying_type"
38224
38225-#: cp/mangle.c:2252
38226+#: cp/mangle.c:2250
38227 #, gcc-internal-format
38228 msgid "mangling unknown fixed point type"
38229 msgstr "se decodifica el tipo de coma fija desconocido"
38230
38231-#: cp/mangle.c:2811
38232+#: cp/mangle.c:2809
38233 #, gcc-internal-format, gfc-internal-format
38234 msgid "mangling %C"
38235 msgstr "decodificando %C"
38236
38237-#: cp/mangle.c:2886
38238+#: cp/mangle.c:2884
38239 #, gcc-internal-format
38240 msgid "omitted middle operand to %<?:%> operand cannot be mangled"
38241 msgstr "se omitió el operando de enmedio de %<?%>: no se puede revolver el operando"
38242
38243-#: cp/mangle.c:2950
38244+#: cp/mangle.c:2948
38245 #, gcc-internal-format
38246 msgid "string literal in function template signature"
38247 msgstr "literal de cadena en la firma de plantilla de función"
38248
38249-#: cp/mangle.c:3239
38250+#: cp/mangle.c:3237
38251 #, gcc-internal-format
38252 msgid "the mangled name of %qD will change in a future version of GCC"
38253 msgstr "el nombre revuelto de %qD cambiará en una versión futura de GCC"
38254
38255-#: cp/mangle.c:3383
38256+#: cp/mangle.c:3381
38257 #, gcc-internal-format
38258 msgid "-fabi-version=6 (or =0) avoids this error with a change in mangling"
38259 msgstr "-fabi-version=6 (o =0) evita este error con un cambio en la decodificación"
38260@@ -30428,7 +30634,7 @@
38261 msgid "(perhaps a semicolon is missing after the definition of %qT)"
38262 msgstr "(tal vez falta un punto y coma después de la definición de %qT)"
38263
38264-#: cp/parser.c:2604 cp/parser.c:5102 cp/pt.c:7239
38265+#: cp/parser.c:2604 cp/parser.c:5102 cp/pt.c:7241
38266 #, gcc-internal-format
38267 msgid "%qT is not a template"
38268 msgstr "%qT no es una plantilla"
38269@@ -30448,7 +30654,7 @@
38270 msgid "floating-point literal cannot appear in a constant-expression"
38271 msgstr "una literal de coma flotante no puede aparecer en una expresión constante"
38272
38273-#: cp/parser.c:2645 cp/pt.c:13485
38274+#: cp/parser.c:2645 cp/pt.c:13498
38275 #, gcc-internal-format
38276 msgid "a cast to a type other than an integral or enumeration type cannot appear in a constant-expression"
38277 msgstr "una conversión a un tipo diferente de un tipo integral o de enumeración no puede aparecer en una expresión constante"
38278@@ -31838,7 +32044,7 @@
38279 msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
38280 msgstr "no se permite la inicialización entre paréntesis para el bucle %<for%> en OpenMP"
38281
38282-#: cp/parser.c:26407 cp/pt.c:12680
38283+#: cp/parser.c:26407 cp/pt.c:12693
38284 #, gcc-internal-format
38285 msgid "iteration variable %qD should not be reduction"
38286 msgstr "la variable de iteración %qD no debe ser reduction"
38287@@ -32060,109 +32266,109 @@
38288 msgid "expansion pattern %<%E%> contains no argument packs"
38289 msgstr "el patrón de expansión %<%E%> no contiene paquetes de argumento"
38290
38291-#: cp/pt.c:3277
38292+#: cp/pt.c:3279
38293 #, gcc-internal-format
38294 msgid "parameter packs not expanded with %<...%>:"
38295 msgstr "no se expanden los paquetes de parámetro con %<...%>"
38296
38297-#: cp/pt.c:3292 cp/pt.c:4370
38298+#: cp/pt.c:3294 cp/pt.c:4372
38299 #, gcc-internal-format
38300 msgid " %qD"
38301 msgstr " %qD"
38302
38303-#: cp/pt.c:3294
38304+#: cp/pt.c:3296
38305 #, gcc-internal-format
38306 msgid " <anonymous>"
38307 msgstr " <anónimo>"
38308
38309-#: cp/pt.c:3411
38310+#: cp/pt.c:3413
38311 #, gcc-internal-format
38312 msgid "declaration of %q+#D"
38313 msgstr "la declaración de %q+#D"
38314
38315-#: cp/pt.c:3412
38316+#: cp/pt.c:3414
38317 #, gcc-internal-format
38318 msgid " shadows template parm %q+#D"
38319 msgstr " oscurece el parámetro de plantilla %q+#D"
38320
38321-#: cp/pt.c:4366
38322+#: cp/pt.c:4368
38323 #, gcc-internal-format
38324 msgid "template parameters not used in partial specialization:"
38325 msgstr "no se usan los parámetros de plantilla en la especialización parcial:"
38326
38327-#: cp/pt.c:4384
38328+#: cp/pt.c:4386
38329 #, gcc-internal-format
38330 msgid "partial specialization %qT does not specialize any template arguments"
38331 msgstr "la especialización parcial %qT no especializa ningún argumento de plantilla"
38332
38333-#: cp/pt.c:4429
38334+#: cp/pt.c:4431
38335 #, gcc-internal-format
38336 msgid "parameter pack argument %qE must be at the end of the template argument list"
38337 msgstr "el argumento de paquete de parámetro %qE debe estar al final de la lista de argumentos de plantilla"
38338
38339-#: cp/pt.c:4432
38340+#: cp/pt.c:4434
38341 #, gcc-internal-format
38342 msgid "parameter pack argument %qT must be at the end of the template argument list"
38343 msgstr "el argumento de paquete de parámetro %qT debe estar al final de la lista de argumentos de plantilla"
38344
38345-#: cp/pt.c:4451
38346+#: cp/pt.c:4453
38347 #, gcc-internal-format
38348 msgid "template argument %qE involves template parameter(s)"
38349 msgstr "el argumento de plantilla %qE involucra a el(los) parámetro(s) de plantilla"
38350
38351-#: cp/pt.c:4497
38352+#: cp/pt.c:4499
38353 #, gcc-internal-format
38354 msgid "type %qT of template argument %qE depends on a template parameter"
38355 msgid_plural "type %qT of template argument %qE depends on template parameters"
38356 msgstr[0] "el tipo %qT del argumento de plantilla %qE depende de un parámetro de plantilla"
38357 msgstr[1] "el tipo %qT del argumento de plantilla %qE depende de parámetros de plantilla"
38358
38359-#: cp/pt.c:4527
38360+#: cp/pt.c:4529
38361 #, gcc-internal-format
38362 msgid "partial specialization of %qT after instantiation of %qT"
38363 msgstr "especialización parcial de %qT después de la instanciación %qT"
38364
38365-#: cp/pt.c:4620
38366+#: cp/pt.c:4622
38367 #, gcc-internal-format
38368 msgid "no default argument for %qD"
38369 msgstr "no hay un argumento por defecto para %qD"
38370
38371-#: cp/pt.c:4641
38372+#: cp/pt.c:4643
38373 #, gcc-internal-format
38374 msgid "parameter pack %qE must be at the end of the template parameter list"
38375 msgstr "el parámetro de paquete %qE debe estar al final de la lista de parámetros de plantilla"
38376
38377-#: cp/pt.c:4644
38378+#: cp/pt.c:4646
38379 #, gcc-internal-format
38380 msgid "parameter pack %qT must be at the end of the template parameter list"
38381 msgstr "el parámetro de paquete %qT debe estar al final de la lista de parámetros de plantilla"
38382
38383-#: cp/pt.c:4681
38384+#: cp/pt.c:4683
38385 #, gcc-internal-format
38386 msgid "default template arguments may not be used in function template friend re-declaration"
38387 msgstr "no se pueden usar los argumentos de plantilla por defecto en la re-declaración friend de la plantilla de función"
38388
38389-#: cp/pt.c:4684
38390+#: cp/pt.c:4686
38391 #, gcc-internal-format
38392 msgid "default template arguments may not be used in function template friend declarations"
38393 msgstr "no se pueden usar los argumentos de plantilla por defecto en las declaraciones friend de la plantilla de función"
38394
38395-#: cp/pt.c:4687
38396+#: cp/pt.c:4689
38397 #, gcc-internal-format
38398 msgid "default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11"
38399 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"
38400
38401-#: cp/pt.c:4690
38402+#: cp/pt.c:4692
38403 #, gcc-internal-format
38404 msgid "default template arguments may not be used in partial specializations"
38405 msgstr "no se pueden usar los argumentos de plantilla por defecto en las especializaciones parciales"
38406
38407-#: cp/pt.c:4693 cp/pt.c:4744
38408+#: cp/pt.c:4695 cp/pt.c:4746
38409 #, gcc-internal-format
38410 msgid "default argument for template parameter for class enclosing %qD"
38411 msgstr "argumento por defecto para el parámetro de plantilla para la clase incluyente %qD"
38412
38413-#: cp/pt.c:4837
38414+#: cp/pt.c:4839
38415 #, gcc-internal-format
38416 msgid "template class without a name"
38417 msgstr "clase de plantilla sin nombre"
38418@@ -32170,7 +32376,7 @@
38419 #. [temp.mem]
38420 #.
38421 #. A destructor shall not be a member template.
38422-#: cp/pt.c:4847
38423+#: cp/pt.c:4849
38424 #, gcc-internal-format
38425 msgid "destructor %qD declared as member template"
38426 msgstr "se declaró el destructor %qD como una plantilla miembro"
38427@@ -32180,76 +32386,76 @@
38428 #. An allocation function can be a function
38429 #. template. ... Template allocation functions shall
38430 #. have two or more parameters.
38431-#: cp/pt.c:4862
38432+#: cp/pt.c:4864
38433 #, gcc-internal-format
38434 msgid "invalid template declaration of %qD"
38435 msgstr "declaración de la plantilla de %qD inválida"
38436
38437-#: cp/pt.c:4986
38438+#: cp/pt.c:4988
38439 #, gcc-internal-format
38440 msgid "template definition of non-template %q#D"
38441 msgstr "definición de plantilla de %q#D que no es plantilla"
38442
38443-#: cp/pt.c:5029
38444+#: cp/pt.c:5031
38445 #, gcc-internal-format
38446 msgid "expected %d levels of template parms for %q#D, got %d"
38447 msgstr "se esperaban %d niveles de parámetros de plantilla para %q#D, se obtuvieron %d"
38448
38449-#: cp/pt.c:5041
38450+#: cp/pt.c:5043
38451 #, gcc-internal-format
38452 msgid "got %d template parameters for %q#D"
38453 msgstr "se obtuvieron %d parámetros de plantilla para %q#D"
38454
38455-#: cp/pt.c:5044
38456+#: cp/pt.c:5046
38457 #, gcc-internal-format
38458 msgid "got %d template parameters for %q#T"
38459 msgstr "se obtuvieron %d parámetros de plantilla para %q#T"
38460
38461-#: cp/pt.c:5046
38462+#: cp/pt.c:5048
38463 #, gcc-internal-format, gfc-internal-format
38464 msgid " but %d required"
38465 msgstr " pero se requieren %d"
38466
38467-#: cp/pt.c:5067
38468+#: cp/pt.c:5069
38469 #, gcc-internal-format
38470 msgid "template arguments to %qD do not match original template %qD"
38471 msgstr "los argumentos de plantilla para %qD no coinciden con la plantilla original %qD"
38472
38473-#: cp/pt.c:5071
38474+#: cp/pt.c:5073
38475 #, gcc-internal-format
38476 msgid "use template<> for an explicit specialization"
38477 msgstr "utilice template<> para una especialización explícita"
38478
38479-#: cp/pt.c:5172
38480+#: cp/pt.c:5174
38481 #, gcc-internal-format
38482 msgid "%qT is not a template type"
38483 msgstr "%qT no es un tipo plantilla"
38484
38485-#: cp/pt.c:5185
38486+#: cp/pt.c:5187
38487 #, gcc-internal-format
38488 msgid "template specifiers not specified in declaration of %qD"
38489 msgstr "no se especificaron los especificadores de plantilla en la declaración de %qD"
38490
38491-#: cp/pt.c:5196
38492+#: cp/pt.c:5198
38493 #, gcc-internal-format, gfc-internal-format
38494 msgid "redeclared with %d template parameter"
38495 msgid_plural "redeclared with %d template parameters"
38496 msgstr[0] "se redeclaró con %d parámetro de plantilla"
38497 msgstr[1] "se redeclaró con %d parámetros de plantilla"
38498
38499-#: cp/pt.c:5200
38500+#: cp/pt.c:5202
38501 #, gcc-internal-format
38502 msgid "previous declaration %q+D used %d template parameter"
38503 msgid_plural "previous declaration %q+D used %d template parameters"
38504 msgstr[0] "la declaración previa de %q+#D usó %d parámetro de plantilla"
38505 msgstr[1] "la declaración previa de %q+#D usó %d parámetros de plantilla"
38506
38507-#: cp/pt.c:5237
38508+#: cp/pt.c:5239
38509 #, gcc-internal-format
38510 msgid "template parameter %q+#D"
38511 msgstr "parámetro de plantilla %q+#D"
38512
38513-#: cp/pt.c:5238
38514+#: cp/pt.c:5240
38515 #, gcc-internal-format
38516 msgid "redeclared here as %q#D"
38517 msgstr "redeclarado aquí como %q#D"
38518@@ -32258,328 +32464,328 @@
38519 #.
38520 #. A template-parameter may not be given default arguments
38521 #. by two different declarations in the same scope.
38522-#: cp/pt.c:5248
38523+#: cp/pt.c:5250
38524 #, gcc-internal-format
38525 msgid "redefinition of default argument for %q#D"
38526 msgstr "redefinición del argumento por defecto para %q#D"
38527
38528-#: cp/pt.c:5250
38529+#: cp/pt.c:5252
38530 #, gcc-internal-format
38531 msgid "original definition appeared here"
38532 msgstr "la definición original apareció aquí"
38533
38534-#: cp/pt.c:5368
38535+#: cp/pt.c:5370
38536 #, gcc-internal-format
38537 msgid "%qE is not a valid template argument for type %qT because %qD has no linkage"
38538 msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque %qD no tiene enlace"
38539
38540-#: cp/pt.c:5372
38541+#: cp/pt.c:5374
38542 #, gcc-internal-format
38543 msgid "%qE is not a valid template argument for type %qT because %qD does not have external linkage"
38544 msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque %qD no tiene enlace externo"
38545
38546-#: cp/pt.c:5396 cp/pt.c:5997
38547+#: cp/pt.c:5398 cp/pt.c:5999
38548 #, gcc-internal-format
38549 msgid "%qE is not a valid template argument for type %qT"
38550 msgstr "%qE no es un argumento de plantilla válido para el tipo %qT"
38551
38552-#: cp/pt.c:5398
38553+#: cp/pt.c:5400
38554 #, gcc-internal-format
38555 msgid "it must be a pointer-to-member of the form %<&X::Y%>"
38556 msgstr "debe ser un puntero-a-miembro de la forma %<&X::Y%>"
38557
38558-#: cp/pt.c:5449
38559+#: cp/pt.c:5451
38560 #, gcc-internal-format
38561 msgid " couldn't deduce template parameter %qD"
38562 msgstr " no se puede deducir el parámetro de plantilla %qD"
38563
38564-#: cp/pt.c:5464
38565+#: cp/pt.c:5466
38566 #, gcc-internal-format
38567 msgid " types %qT and %qT have incompatible cv-qualifiers"
38568 msgstr " los tipos %qT y %qT tiene calificadores-cv incompatibles"
38569
38570-#: cp/pt.c:5473
38571+#: cp/pt.c:5475
38572 #, gcc-internal-format
38573 msgid " mismatched types %qT and %qT"
38574 msgstr " no coinciden los tipos %qT y %qT"
38575
38576-#: cp/pt.c:5482
38577+#: cp/pt.c:5484
38578 #, gcc-internal-format
38579 msgid " template parameter %qD is not a parameter pack, but argument %qD is"
38580 msgstr " el parámetro de plantilla %qD no es un paquete de parámetro, pero el argumento %qD sí"
38581
38582-#: cp/pt.c:5493
38583+#: cp/pt.c:5495
38584 #, gcc-internal-format
38585 msgid " template argument %qE does not match pointer-to-member constant %qE"
38586 msgstr " el argumento de plantilla %qE no coincide con la constante puntero-a-miembro %qE"
38587
38588-#: cp/pt.c:5503
38589+#: cp/pt.c:5505
38590 #, gcc-internal-format
38591 msgid " %qE is not equivalent to %qE"
38592 msgstr " %qE no es equivalente a %qE"
38593
38594-#: cp/pt.c:5512
38595+#: cp/pt.c:5514
38596 #, gcc-internal-format
38597 msgid " inconsistent parameter pack deduction with %qT and %qT"
38598 msgstr " deducción de paquete de parámetros inconsistente con %qT y %qT"
38599
38600-#: cp/pt.c:5524
38601+#: cp/pt.c:5526
38602 #, gcc-internal-format
38603 msgid " deduced conflicting types for parameter %qT (%qT and %qT)"
38604 msgstr " se deducen tipos en conflicto para el parámetro %qT (%qT y %qT)"
38605
38606-#: cp/pt.c:5528
38607+#: cp/pt.c:5530
38608 #, gcc-internal-format
38609 msgid " deduced conflicting values for non-type parameter %qE (%qE and %qE)"
38610 msgstr " se deducen valores en conflicto para el parámetro %qE que no es tipo (%qE y %qE)"
38611
38612-#: cp/pt.c:5539
38613+#: cp/pt.c:5541
38614 #, gcc-internal-format
38615 msgid " variable-sized array type %qT is not a valid template argument"
38616 msgstr " el tipo matriz de tamaño variable %qT no es un argumento de plantilla válido"
38617
38618-#: cp/pt.c:5550
38619+#: cp/pt.c:5552
38620 #, gcc-internal-format
38621 msgid " member function type %qT is not a valid template argument"
38622 msgstr " el tipo de función miembro %qT no es un argumento de plantilla válido"
38623
38624-#: cp/pt.c:5583
38625+#: cp/pt.c:5585
38626 #, gcc-internal-format
38627 msgid " cannot convert %qE (type %qT) to type %qT"
38628 msgstr " no se puede convertir %qE (tipo %qT) al tipo %qT"
38629
38630-#: cp/pt.c:5596
38631+#: cp/pt.c:5598
38632 #, gcc-internal-format
38633 msgid " %qT is an ambiguous base class of %qT"
38634 msgstr " %qT es una clase base ambigua de %qT"
38635
38636-#: cp/pt.c:5600
38637+#: cp/pt.c:5602
38638 #, gcc-internal-format
38639 msgid " %qT is not derived from %qT"
38640 msgstr " %qT no es derivado de %qT"
38641
38642-#: cp/pt.c:5611
38643+#: cp/pt.c:5613
38644 #, gcc-internal-format
38645 msgid " template parameters of a template template argument are inconsistent with other deduced template arguments"
38646 msgstr " los parámetros de plantilla de un argumento de plantilla plantilla son inconsistentes con otros argumentos de plantilla deducidos"
38647
38648-#: cp/pt.c:5621
38649+#: cp/pt.c:5623
38650 #, gcc-internal-format
38651 msgid " can't deduce a template for %qT from non-template type %qT"
38652 msgstr " no se puede deducir una plantilla para %qT del tipo %qT que no es plantilla"
38653
38654-#: cp/pt.c:5631
38655+#: cp/pt.c:5633
38656 #, gcc-internal-format
38657 msgid " template argument %qE does not match %qD"
38658 msgstr " el argumento de plantilla %qE no coincide con %qD"
38659
38660-#: cp/pt.c:5640
38661+#: cp/pt.c:5642
38662 #, gcc-internal-format
38663 msgid " could not resolve address from overloaded function %qE"
38664 msgstr " no se puede resolver la dirección de la función sobrecargada %qE"
38665
38666-#: cp/pt.c:5679
38667+#: cp/pt.c:5681
38668 #, gcc-internal-format
38669 msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
38670 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"
38671
38672-#: cp/pt.c:5816
38673+#: cp/pt.c:5818
38674 #, gcc-internal-format
38675 msgid "in template argument for type %qT "
38676 msgstr "en el argumento de plantilla para el tipo %qT "
38677
38678-#: cp/pt.c:5858
38679+#: cp/pt.c:5860
38680 #, gcc-internal-format
38681 msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
38682 msgstr "%qD no es un argumento válido de plantilla porque %qD es una variable, no la dirección de una variable"
38683
38684-#: cp/pt.c:5876
38685+#: cp/pt.c:5878
38686 #, gcc-internal-format
38687 msgid "%qE is not a valid template argument of type %qT because %qE is not a variable"
38688 msgstr "%qE no es un argumento válido de plantilla de tipo %qT porque %qE no es una variable"
38689
38690-#: cp/pt.c:5883
38691+#: cp/pt.c:5885
38692 #, gcc-internal-format
38693 msgid "%qE is not a valid template argument of type %qT because %qD does not have external linkage"
38694 msgstr "%qE no es un argumento válido de plantilla de tipo %qT porque %qD no tiene enlace externo"
38695
38696-#: cp/pt.c:5890
38697+#: cp/pt.c:5892
38698 #, gcc-internal-format
38699 msgid "%qE is not a valid template argument of type %qT because %qD has no linkage"
38700 msgstr "%qE no es un argumento válido de plantilla de tipo %qT porque %qD no tiene enlace"
38701
38702-#: cp/pt.c:5920
38703+#: cp/pt.c:5922
38704 #, gcc-internal-format
38705 msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
38706 msgstr "%qE no es un argumento de plantilla válido para el tipo %qT debido a conflictos en la calificación cv"
38707
38708-#: cp/pt.c:5927
38709+#: cp/pt.c:5929
38710 #, gcc-internal-format
38711 msgid "%qE is not a valid template argument for type %qT because it is not an lvalue"
38712 msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque no es un l-valor"
38713
38714-#: cp/pt.c:5944
38715+#: cp/pt.c:5946
38716 #, gcc-internal-format
38717 msgid "%q#D is not a valid template argument for type %qT because a reference variable does not have a constant address"
38718 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"
38719
38720-#: cp/pt.c:5953
38721+#: cp/pt.c:5955
38722 #, gcc-internal-format
38723 msgid "%qE is not a valid template argument for type %qT because it is not an object with external linkage"
38724 msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque no es un objeto con enlace externo"
38725
38726-#: cp/pt.c:5961
38727+#: cp/pt.c:5963
38728 #, gcc-internal-format
38729 msgid "%qE is not a valid template argument for type %qT because object %qD has not external linkage"
38730 msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque el objeto %qD no tiene enlace externo"
38731
38732-#: cp/pt.c:5998
38733+#: cp/pt.c:6000
38734 #, gcc-internal-format
38735 msgid "it must be the address of a function with external linkage"
38736 msgstr "debe ser la dirección de una función con enlace externo"
38737
38738-#: cp/pt.c:6012
38739+#: cp/pt.c:6014
38740 #, gcc-internal-format
38741 msgid "%qE is not a valid template argument for type %qT because it is a pointer"
38742 msgstr "%qE no es un argumento de plantilla válido para el tipo %qT porque es un puntero"
38743
38744-#: cp/pt.c:6014
38745+#: cp/pt.c:6016
38746 #, gcc-internal-format
38747 msgid "try using %qE instead"
38748 msgstr "intente utilizar %qE en su lugar"
38749
38750-#: cp/pt.c:6052 cp/pt.c:6081
38751+#: cp/pt.c:6054 cp/pt.c:6083
38752 #, gcc-internal-format
38753 msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
38754 msgstr "%qE no es un argumento de plantilla válido para el tipo %qT porque es de tipo %qT"
38755
38756-#: cp/pt.c:6058
38757+#: cp/pt.c:6060
38758 #, gcc-internal-format
38759 msgid "standard conversions are not allowed in this context"
38760 msgstr "no se permiten las conversiones estándar en este contexto"
38761
38762-#: cp/pt.c:6368
38763+#: cp/pt.c:6370
38764 #, gcc-internal-format
38765 msgid "ignoring attributes on template argument %qT"
38766 msgstr "se descartan los atributos en el argumento de plantilla %qT"
38767
38768-#: cp/pt.c:6426
38769+#: cp/pt.c:6428
38770 #, gcc-internal-format
38771 msgid "injected-class-name %qD used as template template argument"
38772 msgstr "se usó el nombre-de-clase-inyectada %qD como un argumento de plantilla plantilla"
38773
38774-#: cp/pt.c:6454
38775+#: cp/pt.c:6456
38776 #, gcc-internal-format
38777 msgid "invalid use of destructor %qE as a type"
38778 msgstr "uso inválido del destructor %qE como un tipo"
38779
38780-#: cp/pt.c:6459
38781+#: cp/pt.c:6461
38782 #, gcc-internal-format
38783 msgid "to refer to a type member of a template parameter, use %<typename %E%>"
38784 msgstr "para hacer referencia a un tipo miembro de un parámetro de plantilla, use %<typename %E%>"
38785
38786-#: cp/pt.c:6475 cp/pt.c:6494 cp/pt.c:6540
38787+#: cp/pt.c:6477 cp/pt.c:6496 cp/pt.c:6542
38788 #, gcc-internal-format
38789 msgid "type/value mismatch at argument %d in template parameter list for %qD"
38790 msgstr "no coincide el tipo/valor en el argumento %d en la lista de parámetros de plantilla para %qD"
38791
38792-#: cp/pt.c:6479
38793+#: cp/pt.c:6481
38794 #, gcc-internal-format
38795 msgid " expected a constant of type %qT, got %qT"
38796 msgstr " se esperaba una constante de tipo %qT, se obtuvo %qT"
38797
38798-#: cp/pt.c:6483
38799+#: cp/pt.c:6485
38800 #, gcc-internal-format
38801 msgid " expected a class template, got %qE"
38802 msgstr " se esperaba una plantilla de clase, se obtuvo %qE"
38803
38804-#: cp/pt.c:6485
38805+#: cp/pt.c:6487
38806 #, gcc-internal-format
38807 msgid " expected a type, got %qE"
38808 msgstr " se esperaba un tipo, se obtuvo %qE"
38809
38810-#: cp/pt.c:6498
38811+#: cp/pt.c:6500
38812 #, gcc-internal-format
38813 msgid " expected a type, got %qT"
38814 msgstr " se esperaba un tipo, se obtuvo %qT"
38815
38816-#: cp/pt.c:6500
38817+#: cp/pt.c:6502
38818 #, gcc-internal-format
38819 msgid " expected a class template, got %qT"
38820 msgstr " se esperaba una plantilla de clase, se obtuvo %qT"
38821
38822-#: cp/pt.c:6543
38823+#: cp/pt.c:6545
38824 #, gcc-internal-format
38825 msgid " expected a template of type %qD, got %qT"
38826 msgstr " se esperaba una plantilla de tipo %qD, se obtuvo %qT"
38827
38828 #. Not sure if this is reachable, but it doesn't hurt
38829 #. to be robust.
38830-#: cp/pt.c:6576
38831+#: cp/pt.c:6578
38832 #, gcc-internal-format
38833 msgid "type mismatch in nontype parameter pack"
38834 msgstr "los tipos no coinciden en el parámetro pack que no es de tipo"
38835
38836-#: cp/pt.c:6598
38837+#: cp/pt.c:6600
38838 #, gcc-internal-format
38839 msgid "could not convert template argument %qE to %qT"
38840 msgstr "no se puede convertir el argumento de plantilla %qE a %qT"
38841
38842-#: cp/pt.c:6664 cp/pt.c:6813
38843+#: cp/pt.c:6666 cp/pt.c:6815
38844 #, gcc-internal-format, gfc-internal-format
38845 msgid "wrong number of template arguments (%d, should be %d)"
38846 msgstr "número erróneo de argumentos de plantilla (%d, debe ser %d)"
38847
38848-#: cp/pt.c:6809
38849+#: cp/pt.c:6811
38850 #, gcc-internal-format, gfc-internal-format
38851 msgid "wrong number of template arguments (%d, should be %d or more)"
38852 msgstr "número erróneo de argumentos de plantilla (%d, debe ser %d o más)"
38853
38854-#: cp/pt.c:6817
38855+#: cp/pt.c:6819
38856 #, gcc-internal-format
38857 msgid "provided for %q+D"
38858 msgstr "provisto por %q+D"
38859
38860-#: cp/pt.c:6898
38861+#: cp/pt.c:6900
38862 #, gcc-internal-format, gfc-internal-format
38863 msgid "template argument %d is invalid"
38864 msgstr "el argumento de plantilla %d es inválido"
38865
38866-#: cp/pt.c:7087
38867+#: cp/pt.c:7089
38868 #, gcc-internal-format
38869 msgid "%q#D is not a function template"
38870 msgstr "%q#D no es una plantilla de función"
38871
38872-#: cp/pt.c:7251
38873+#: cp/pt.c:7253
38874 #, gcc-internal-format
38875 msgid "non-template type %qT used as a template"
38876 msgstr "se usa el tipo %qT que no es plantilla como una plantilla"
38877
38878-#: cp/pt.c:7253
38879+#: cp/pt.c:7255
38880 #, gcc-internal-format
38881 msgid "for template declaration %q+D"
38882 msgstr "para la declaración de plantilla %q+D"
38883
38884-#: cp/pt.c:8058
38885+#: cp/pt.c:8060
38886 msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth= to increase the maximum) substituting %qS"
38887 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"
38888
38889-#: cp/pt.c:8062
38890+#: cp/pt.c:8064
38891 #, gcc-internal-format
38892 msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth= to increase the maximum) instantiating %qD"
38893 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"
38894
38895-#: cp/pt.c:9409
38896+#: cp/pt.c:9411
38897 #, gcc-internal-format
38898 msgid "mismatched argument pack lengths while expanding %<%T%>"
38899 msgstr "no coinciden las longitudes de los paquetes de argumentos al expandir %<%T%>"
38900
38901-#: cp/pt.c:9413
38902+#: cp/pt.c:9415
38903 #, gcc-internal-format
38904 msgid "mismatched argument pack lengths while expanding %<%E%>"
38905 msgstr "no coinciden las longitudes de los paquetes de argumentos al expandir %<%E%>"
38906
38907-#: cp/pt.c:10539
38908+#: cp/pt.c:10541
38909 #, gcc-internal-format
38910 msgid "instantiation of %q+D as type %qT"
38911 msgstr "instanciación de %q+D como tipo %qT"
38912@@ -32597,257 +32803,257 @@
38913 #.
38914 #. is an attempt to declare a variable with function
38915 #. type.
38916-#: cp/pt.c:10695
38917+#: cp/pt.c:10697
38918 #, gcc-internal-format
38919 msgid "variable %qD has function type"
38920 msgstr "la variable %qD tiene tipo de función"
38921
38922-#: cp/pt.c:10864
38923+#: cp/pt.c:10866
38924 #, gcc-internal-format
38925 msgid "invalid parameter type %qT"
38926 msgstr "tipo de parámetro %qT inválido"
38927
38928-#: cp/pt.c:10866
38929+#: cp/pt.c:10868
38930 #, gcc-internal-format
38931 msgid "in declaration %q+D"
38932 msgstr "en la declaración %q+D"
38933
38934-#: cp/pt.c:10943
38935+#: cp/pt.c:10945
38936 #, gcc-internal-format
38937 msgid "function returning an array"
38938 msgstr "la función devuelve una matriz"
38939
38940-#: cp/pt.c:10945
38941+#: cp/pt.c:10947
38942 #, gcc-internal-format
38943 msgid "function returning a function"
38944 msgstr "la función devuelve una función"
38945
38946-#: cp/pt.c:10975
38947+#: cp/pt.c:10977
38948 #, gcc-internal-format
38949 msgid "creating pointer to member function of non-class type %qT"
38950 msgstr "se crea un puntero a función miembro del tipo %qT que no es clase"
38951
38952-#: cp/pt.c:11514
38953+#: cp/pt.c:11518
38954 #, gcc-internal-format
38955 msgid "forming reference to void"
38956 msgstr "se forma la referencia a void"
38957
38958-#: cp/pt.c:11516
38959+#: cp/pt.c:11520
38960 #, gcc-internal-format
38961 msgid "forming pointer to reference type %qT"
38962 msgstr "se forma un puntero para referenciar al tipo %qT"
38963
38964-#: cp/pt.c:11518
38965+#: cp/pt.c:11522
38966 #, gcc-internal-format
38967 msgid "forming reference to reference type %qT"
38968 msgstr "se forma una referencia para referenciar al tipo %qT"
38969
38970-#: cp/pt.c:11567
38971+#: cp/pt.c:11571
38972 #, gcc-internal-format
38973 msgid "creating pointer to member of non-class type %qT"
38974 msgstr "se crea un puntero al miembro del tipo %qT que no es clase"
38975
38976-#: cp/pt.c:11573
38977+#: cp/pt.c:11577
38978 #, gcc-internal-format
38979 msgid "creating pointer to member reference type %qT"
38980 msgstr "se crea un puntero al miembro de referencia de tipo %qT"
38981
38982-#: cp/pt.c:11579
38983+#: cp/pt.c:11583
38984 #, gcc-internal-format
38985 msgid "creating pointer to member of type void"
38986 msgstr "se crea un puntero al miembro de tipo void"
38987
38988-#: cp/pt.c:11641
38989+#: cp/pt.c:11645
38990 #, gcc-internal-format
38991 msgid "creating array of %qT"
38992 msgstr "se crea la matriz de %qT"
38993
38994-#: cp/pt.c:11647
38995+#: cp/pt.c:11651
38996 #, gcc-internal-format
38997 msgid "creating array of %qT, which is an abstract class type"
38998 msgstr "se crea la matriz de %qT, la cual es un tipo de clase abstracta"
38999
39000-#: cp/pt.c:11676
39001+#: cp/pt.c:11680
39002 #, gcc-internal-format
39003 msgid "%qT is not a class, struct, or union type"
39004 msgstr "%qT no es de tipo clase, struct o union"
39005
39006-#: cp/pt.c:11713
39007+#: cp/pt.c:11717
39008 #, gcc-internal-format
39009 msgid "%qT resolves to %qT, which is not an enumeration type"
39010 msgstr "%qT resuelve a %qT, el cual no es un tipo enumerado"
39011
39012-#: cp/pt.c:11721
39013+#: cp/pt.c:11725
39014 #, gcc-internal-format
39015 msgid "%qT resolves to %qT, which is is not a class type"
39016 msgstr "%qT resuelve a %qT, el cual no es un tipo de clase"
39017
39018-#: cp/pt.c:11838
39019+#: cp/pt.c:11842
39020 #, gcc-internal-format
39021 msgid "use of %qs in template"
39022 msgstr "uso de %qs en la plantilla"
39023
39024-#: cp/pt.c:11974
39025+#: cp/pt.c:11978
39026 #, gcc-internal-format
39027 msgid "qualifying type %qT does not match destructor name ~%qT"
39028 msgstr "el tipo calificador %qT no coincide con el nombre del destructor ~%qT"
39029
39030-#: cp/pt.c:11989
39031+#: cp/pt.c:11993
39032 #, gcc-internal-format
39033 msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
39034 msgstr "el nombre dependiente %qE se decodifica como un no tipo, pero la instanciación genera un tipo"
39035
39036-#: cp/pt.c:11991
39037+#: cp/pt.c:11995
39038 #, gcc-internal-format
39039 msgid "say %<typename %E%> if a type is meant"
39040 msgstr "escriba %<typename %E%> si quiere un tipo"
39041
39042-#: cp/pt.c:12144
39043+#: cp/pt.c:12148
39044 #, gcc-internal-format
39045 msgid "using invalid field %qD"
39046 msgstr "se usa el campo inválido %qD"
39047
39048-#: cp/pt.c:12499 cp/pt.c:13300
39049+#: cp/pt.c:12503 cp/pt.c:13313
39050 #, gcc-internal-format
39051 msgid "invalid use of pack expansion expression"
39052 msgstr "uso inválido de la expresión de expansión de paquete"
39053
39054-#: cp/pt.c:12503 cp/pt.c:13304
39055+#: cp/pt.c:12507 cp/pt.c:13317
39056 #, gcc-internal-format
39057 msgid "use %<...%> to expand argument pack"
39058 msgstr "use %<...%> para expandir el paquete de argumentos"
39059
39060-#: cp/pt.c:13880
39061+#: cp/pt.c:13893
39062 #, gcc-internal-format
39063 msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"
39064 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"
39065
39066-#: cp/pt.c:13889
39067+#: cp/pt.c:13902
39068 #, gcc-internal-format
39069 msgid "declarations in dependent base %qT are not found by unqualified lookup"
39070 msgstr "no se encontraron declaraciones en la base dependiente %qT pur la búsqueda no calificada"
39071
39072-#: cp/pt.c:13894
39073+#: cp/pt.c:13907
39074 #, gcc-internal-format
39075 msgid "use %<this->%D%> instead"
39076 msgstr "use %<this->%D%> en su lugar"
39077
39078-#: cp/pt.c:13897
39079+#: cp/pt.c:13910
39080 #, gcc-internal-format
39081 msgid "use %<%T::%D%> instead"
39082 msgstr "use %<%T::%D%> en su lugar"
39083
39084-#: cp/pt.c:13901
39085+#: cp/pt.c:13914
39086 #, gcc-internal-format
39087 msgid "%q+D declared here, later in the translation unit"
39088 msgstr "%q+D se declaró aquí, después en la unidad de translación"
39089
39090-#: cp/pt.c:14134
39091+#: cp/pt.c:14147
39092 #, gcc-internal-format
39093 msgid "%qT is not a class or namespace"
39094 msgstr "%qT no es una clase o un espacio de nombres"
39095
39096-#: cp/pt.c:14137
39097+#: cp/pt.c:14150
39098 #, gcc-internal-format
39099 msgid "%qD is not a class or namespace"
39100 msgstr "%qD no es una clase o un espacio de nombres"
39101
39102-#: cp/pt.c:14429
39103+#: cp/pt.c:14442
39104 #, gcc-internal-format
39105 msgid "%qT is/uses anonymous type"
39106 msgstr "%qT es/usa un tipo anónimo"
39107
39108-#: cp/pt.c:14431
39109+#: cp/pt.c:14444
39110 #, gcc-internal-format
39111 msgid "template argument for %qD uses local type %qT"
39112 msgstr "el argumento de plantilla para %qD usa el tipo local %qT"
39113
39114-#: cp/pt.c:14441
39115+#: cp/pt.c:14454
39116 #, gcc-internal-format
39117 msgid "%qT is a variably modified type"
39118 msgstr "%qT es un tipo modificado variablemente"
39119
39120-#: cp/pt.c:14452
39121+#: cp/pt.c:14465
39122 #, gcc-internal-format
39123 msgid "integral expression %qE is not constant"
39124 msgstr "la expresión integral %qE no es una constante"
39125
39126-#: cp/pt.c:14470
39127+#: cp/pt.c:14483
39128 #, gcc-internal-format
39129 msgid " trying to instantiate %qD"
39130 msgstr " se trata de instanciar %qD"
39131
39132-#: cp/pt.c:17791
39133+#: cp/pt.c:17804
39134 #, gcc-internal-format
39135 msgid "ambiguous class template instantiation for %q#T"
39136 msgstr "instanciación de plantilla clase ambigua para %q#T"
39137
39138-#: cp/pt.c:17795
39139+#: cp/pt.c:17808
39140 #, gcc-internal-format
39141 msgid "%s %+#T"
39142 msgstr "%s %+#T"
39143
39144-#: cp/pt.c:17819 cp/pt.c:17902
39145+#: cp/pt.c:17832 cp/pt.c:17915
39146 #, gcc-internal-format
39147 msgid "explicit instantiation of non-template %q#D"
39148 msgstr "instanciación explícita de %q#D que no es plantilla"
39149
39150-#: cp/pt.c:17834
39151+#: cp/pt.c:17847
39152 #, gcc-internal-format
39153 msgid "%qD is not a static data member of a class template"
39154 msgstr "%qD no es un dato miembro static de una plantilla de clase"
39155
39156-#: cp/pt.c:17840 cp/pt.c:17897
39157+#: cp/pt.c:17853 cp/pt.c:17910
39158 #, gcc-internal-format
39159 msgid "no matching template for %qD found"
39160 msgstr "no se encontró una plantilla coincidente para %qD"
39161
39162-#: cp/pt.c:17845
39163+#: cp/pt.c:17858
39164 #, gcc-internal-format
39165 msgid "type %qT for explicit instantiation %qD does not match declared type %qT"
39166 msgstr "el tipo %qT para la instanciación explícita %qD no coincide con el tipo declarado %qT"
39167
39168-#: cp/pt.c:17853
39169+#: cp/pt.c:17866
39170 #, gcc-internal-format
39171 msgid "explicit instantiation of %q#D"
39172 msgstr "instanciación explícita de %q#D"
39173
39174-#: cp/pt.c:17889
39175+#: cp/pt.c:17902
39176 #, gcc-internal-format
39177 msgid "duplicate explicit instantiation of %q#D"
39178 msgstr "instanciación explícita duplicada de %q#D"
39179
39180-#: cp/pt.c:17912 cp/pt.c:18009
39181+#: cp/pt.c:17925 cp/pt.c:18022
39182 #, gcc-internal-format
39183 msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
39184 msgstr "ISO C++ 1998 prohíbe el uso de %<extern%> en instanciaciones explícitas"
39185
39186-#: cp/pt.c:17917 cp/pt.c:18026
39187+#: cp/pt.c:17930 cp/pt.c:18039
39188 #, gcc-internal-format
39189 msgid "storage class %qD applied to template instantiation"
39190 msgstr "clase de almacenamiento %qD aplicada a la instanciación de una plantilla"
39191
39192-#: cp/pt.c:17985
39193+#: cp/pt.c:17998
39194 #, gcc-internal-format
39195 msgid "explicit instantiation of non-class template %qD"
39196 msgstr "instanciación explícita de la plantilla %qD que no es clase"
39197
39198-#: cp/pt.c:17987
39199+#: cp/pt.c:18000
39200 #, gcc-internal-format
39201 msgid "explicit instantiation of non-template type %qT"
39202 msgstr "instanciación explícita del tipo %qT que no es plantilla"
39203
39204-#: cp/pt.c:17996
39205+#: cp/pt.c:18009
39206 #, gcc-internal-format
39207 msgid "explicit instantiation of %q#T before definition of template"
39208 msgstr "instanciación explícita de %q#T antes de la definición de la plantilla"
39209
39210-#: cp/pt.c:18014
39211+#: cp/pt.c:18027
39212 #, gcc-internal-format
39213 msgid "ISO C++ forbids the use of %qE on explicit instantiations"
39214 msgstr "ISO C++ prohíbe el uso de %qE en las instanciaciones explícitas"
39215
39216-#: cp/pt.c:18060
39217+#: cp/pt.c:18073
39218 #, gcc-internal-format
39219 msgid "duplicate explicit instantiation of %q#T"
39220 msgstr "instanciación explícita duplicada de %q#T"
39221@@ -32859,32 +33065,32 @@
39222 #. member function or static data member of a class template
39223 #. shall be present in every translation unit in which it is
39224 #. explicitly instantiated.
39225-#: cp/pt.c:18614
39226+#: cp/pt.c:18627
39227 #, gcc-internal-format
39228 msgid "explicit instantiation of %qD but no definition available"
39229 msgstr "instanciación explícita de %qD pero no hay una definición disponible"
39230
39231-#: cp/pt.c:18790
39232+#: cp/pt.c:18803
39233 #, gcc-internal-format
39234 msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use -ftemplate-depth= to increase the maximum)"
39235 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)"
39236
39237-#: cp/pt.c:19161
39238+#: cp/pt.c:19175
39239 #, gcc-internal-format
39240 msgid "invalid template non-type parameter"
39241 msgstr "parámetro que no es tipo plantilla inválido"
39242
39243-#: cp/pt.c:19163
39244+#: cp/pt.c:19177
39245 #, gcc-internal-format
39246 msgid "%q#T is not a valid type for a template non-type parameter"
39247 msgstr "%q#T no es un tipo válido para un parámetro que no es tipo plantilla"
39248
39249-#: cp/pt.c:20249
39250+#: cp/pt.c:20263
39251 #, gcc-internal-format
39252 msgid "deducing from brace-enclosed initializer list requires #include <initializer_list>"
39253 msgstr "la deducción de una lista inicializadora encerrada entre llaves requiere #include <initializer_list>"
39254
39255-#: cp/pt.c:20308
39256+#: cp/pt.c:20322
39257 #, gcc-internal-format
39258 msgid "variable %q#D with %<auto%> type used in its own initializer"
39259 msgstr "se usó la variable %q#D con tipo %<auto%> en su propio inicializador"
39260@@ -32892,12 +33098,12 @@
39261 #. If type is error_mark_node a diagnostic must have been
39262 #. emitted by now. Also, having a mention to '<type error>'
39263 #. in the diagnostic is not really useful to the user.
39264-#: cp/pt.c:20340
39265+#: cp/pt.c:20354
39266 #, gcc-internal-format
39267 msgid "unable to deduce %qT from %qE"
39268 msgstr "no se puede deducir %qT de %qE"
39269
39270-#: cp/pt.c:20351
39271+#: cp/pt.c:20365
39272 #, gcc-internal-format
39273 msgid "inconsistent deduction for %qT: %qT and then %qT"
39274 msgstr "deducción inconsistente para %qT: %qT y después %qT"
39275@@ -33134,7 +33340,7 @@
39276 msgid "invalid base-class specification"
39277 msgstr "especificación de clase base inválida"
39278
39279-#: cp/semantics.c:2999 cp/semantics.c:8802
39280+#: cp/semantics.c:2999 cp/semantics.c:8817
39281 #, gcc-internal-format
39282 msgid "%qD is not captured"
39283 msgstr "%qD no se capturó"
39284@@ -33312,203 +33518,208 @@
39285 msgid "constexpr constructor does not have empty body"
39286 msgstr "el constructor constexpr no tiene cuerpo vacío"
39287
39288-#: cp/semantics.c:6065
39289+#: cp/semantics.c:6042
39290 #, gcc-internal-format
39291+msgid "%<constexpr%> constructor for union %qT must initialize exactly one non-static data member"
39292+msgstr "el constructor %<constexpr%> para union %qT debe inicializar exactamente un dato miembro que no es static"
39293+
39294+#: cp/semantics.c:6080
39295+#, gcc-internal-format
39296 msgid "uninitialized member %qD in %<constexpr%> constructor"
39297 msgstr "miembro %qD sin inicializar en el constructor %<constexpr%>"
39298
39299-#: cp/semantics.c:6096
39300+#: cp/semantics.c:6111
39301 #, gcc-internal-format
39302 msgid "body of constexpr function %qD not a return-statement"
39303 msgstr "el cuerpo de la función constexpr %qD no es una declaración de devolución"
39304
39305-#: cp/semantics.c:6151
39306+#: cp/semantics.c:6166
39307 #, gcc-internal-format
39308 msgid "%q+D is not usable as a constexpr function because:"
39309 msgstr "%q+D no se puede usar como una función constexpr porque:"
39310
39311-#: cp/semantics.c:6475
39312+#: cp/semantics.c:6490
39313 #, gcc-internal-format
39314 msgid "expression %qE does not designate a constexpr function"
39315 msgstr "la expresión %qE no designa una función constexpr"
39316
39317-#: cp/semantics.c:6489 cp/semantics.c:8072
39318+#: cp/semantics.c:6504 cp/semantics.c:8087
39319 #, gcc-internal-format
39320 msgid "call to non-constexpr function %qD"
39321 msgstr "llamada a la función %qD que no es constexpr"
39322
39323 #. The definition of fun was somehow unsuitable.
39324-#: cp/semantics.c:6517
39325+#: cp/semantics.c:6532
39326 #, gcc-internal-format
39327 msgid "%qD called in a constant expression"
39328 msgstr "se llamó %qD en una expresión constante"
39329
39330-#: cp/semantics.c:6521
39331+#: cp/semantics.c:6536
39332 #, gcc-internal-format
39333 msgid "%qD used before its definition"
39334 msgstr "se usó %qD antes de su definición"
39335
39336-#: cp/semantics.c:6555
39337+#: cp/semantics.c:6570
39338 #, gcc-internal-format
39339 msgid "call has circular dependency"
39340 msgstr "la llamada tiene una dependencia circular"
39341
39342-#: cp/semantics.c:6563
39343+#: cp/semantics.c:6578
39344 #, gcc-internal-format, gfc-internal-format
39345 msgid "constexpr evaluation depth exceeds maximum of %d (use -fconstexpr-depth= to increase the maximum)"
39346 msgstr "la profundidad de evaluación de constexpr excede el máximo de %d (use -fconstexpr-depth= para incrementar el máximo)"
39347
39348-#: cp/semantics.c:6641
39349+#: cp/semantics.c:6656
39350 #, gcc-internal-format
39351 msgid "%q+E is not a constant expression"
39352 msgstr "%q+E no es una expresión constante"
39353
39354-#: cp/semantics.c:6781
39355+#: cp/semantics.c:6796
39356 #, gcc-internal-format
39357 msgid "array subscript out of bound"
39358 msgstr "el subíndice de la matriz está fuera de los límites"
39359
39360-#: cp/semantics.c:6827 cp/semantics.c:6887 cp/semantics.c:7523
39361+#: cp/semantics.c:6842 cp/semantics.c:6902 cp/semantics.c:7538
39362 #, gcc-internal-format
39363 msgid "%qE is not a constant expression"
39364 msgstr "%qE no es una expresión constante"
39365
39366-#: cp/semantics.c:6833
39367+#: cp/semantics.c:6848
39368 #, gcc-internal-format
39369 msgid "mutable %qD is not usable in a constant expression"
39370 msgstr "%qD mutable no se puede usar en una expresión constante"
39371
39372-#: cp/semantics.c:6848
39373+#: cp/semantics.c:6863
39374 #, gcc-internal-format
39375 msgid "accessing %qD member instead of initialized %qD member in constant expression"
39376 msgstr "se accede al miembro %qD en lugar del miembro inicializado %qD en la expresión constante"
39377
39378-#: cp/semantics.c:7388
39379+#: cp/semantics.c:7403
39380 #, gcc-internal-format
39381 msgid "accessing value of %qE through a %qT glvalue in a constant expression"
39382 msgstr "se accede al valor de %qE a través de glvalue %qT en una expresión constante"
39383
39384-#: cp/semantics.c:7419
39385+#: cp/semantics.c:7434
39386 #, gcc-internal-format
39387 msgid "the value of %qD is not usable in a constant expression"
39388 msgstr "el valor de %qD no se puede usar en una expresión constante"
39389
39390-#: cp/semantics.c:7426
39391+#: cp/semantics.c:7441
39392 #, gcc-internal-format
39393 msgid "%qD used in its own initializer"
39394 msgstr "se usó %qD en su propio inicializador"
39395
39396-#: cp/semantics.c:7431
39397+#: cp/semantics.c:7446
39398 #, gcc-internal-format
39399 msgid "%q#D is not const"
39400 msgstr "%q#D no es const"
39401
39402-#: cp/semantics.c:7434
39403+#: cp/semantics.c:7449
39404 #, gcc-internal-format
39405 msgid "%q#D is volatile"
39406 msgstr "%q+#D es volatile"
39407
39408-#: cp/semantics.c:7438
39409+#: cp/semantics.c:7453
39410 #, gcc-internal-format
39411 msgid "%qD was not initialized with a constant expression"
39412 msgstr "%qD no se inicializó con una expresion constante"
39413
39414-#: cp/semantics.c:7447
39415+#: cp/semantics.c:7462
39416 #, gcc-internal-format
39417 msgid "%qD was not declared %<constexpr%>"
39418 msgstr "%qD no se declaró %<constexpr%>"
39419
39420-#: cp/semantics.c:7450
39421+#: cp/semantics.c:7465
39422 #, gcc-internal-format
39423 msgid "%qD does not have integral or enumeration type"
39424 msgstr "%qD no tiene tipo integral o de enumeración"
39425
39426-#: cp/semantics.c:7511 cp/semantics.c:8204
39427+#: cp/semantics.c:7526 cp/semantics.c:8219
39428 #, gcc-internal-format
39429 msgid "use of the value of the object being constructed in a constant expression"
39430 msgstr "uso del valor del objeto en construcción en una expresión constante"
39431
39432-#: cp/semantics.c:7539 cp/semantics.c:8342
39433+#: cp/semantics.c:7554 cp/semantics.c:8357
39434 #, gcc-internal-format
39435 msgid "temporary of non-literal type %qT in a constant expression"
39436 msgstr "temporal del tipo %qT que no es literal en una expresión constante"
39437
39438-#: cp/semantics.c:7787 cp/semantics.c:8246 cp/semantics.c:8495
39439+#: cp/semantics.c:7802 cp/semantics.c:8261 cp/semantics.c:8510
39440 #, gcc-internal-format
39441 msgid "expression %qE is not a constant-expression"
39442 msgstr "la expresión %qE no es una expresión constante"
39443
39444-#: cp/semantics.c:7792
39445+#: cp/semantics.c:7807
39446 #, gcc-internal-format
39447 msgid "unexpected expression %qE of kind %s"
39448 msgstr "expresión %qE inesperada de género %s"
39449
39450-#: cp/semantics.c:7823
39451+#: cp/semantics.c:7838
39452 #, gcc-internal-format
39453 msgid "%qT cannot be the type of a complete constant expression because it has mutable sub-objects"
39454 msgstr "%qT no puede ser el tipo de una expresión constante completa porque tiene sub-objetos mutables"
39455
39456-#: cp/semantics.c:7836
39457+#: cp/semantics.c:7851
39458 #, gcc-internal-format
39459 msgid "conversion from pointer type %qT to arithmetic type %qT in a constant-expression"
39460 msgstr "conversión del tipo puntero %qT al tipo aritmético %qT en una expresión constante"
39461
39462-#: cp/semantics.c:8007
39463+#: cp/semantics.c:8022
39464 #, gcc-internal-format
39465 msgid "expression %qE has side-effects"
39466 msgstr "la expresión %qE tiene efectos colaterales"
39467
39468-#: cp/semantics.c:8090
39469+#: cp/semantics.c:8105
39470 #, gcc-internal-format
39471 msgid "calling a member function of the object being constructed in a constant expression"
39472 msgstr "se llamó a una función miembro del objeto en construcción en una expresión constante"
39473
39474-#: cp/semantics.c:8172
39475+#: cp/semantics.c:8187
39476 #, gcc-internal-format
39477 msgid "address-of an object %qE with thread local or automatic storage is not a constant expression"
39478 msgstr "la dirección de un objeto %qE con hilo local o almacenamiento automático no es una expresión constante"
39479
39480-#: cp/semantics.c:8258
39481+#: cp/semantics.c:8273
39482 #, gcc-internal-format
39483 msgid "typeid-expression is not a constant expression because %qE is of polymorphic type"
39484 msgstr "la expresión id de tipo no es una expresión constante porque %qE es de tipo polimórfico"
39485
39486-#: cp/semantics.c:8271
39487+#: cp/semantics.c:8286
39488 #, gcc-internal-format
39489 msgid "difference of two pointer expressions is not a constant expression"
39490 msgstr "la diferencia de dos expresiones puntero no es una expresión constante"
39491
39492-#: cp/semantics.c:8290
39493+#: cp/semantics.c:8305
39494 #, gcc-internal-format
39495 msgid "pointer comparison expression is not a constant expression"
39496 msgstr "la expresión de comparación de punteros no es una expresión constante"
39497
39498-#: cp/semantics.c:8391
39499+#: cp/semantics.c:8406
39500 #, gcc-internal-format
39501 msgid "division by zero is not a constant-expression"
39502 msgstr "la división entre cero no es una expresión constante"
39503
39504-#: cp/semantics.c:8503
39505+#: cp/semantics.c:8518
39506 #, gcc-internal-format
39507 msgid "non-constant array initialization"
39508 msgstr "inicialización de una matriz que no es constante"
39509
39510-#: cp/semantics.c:8509
39511+#: cp/semantics.c:8524
39512 #, gcc-internal-format, gfc-internal-format
39513 msgid "unexpected AST of kind %s"
39514 msgstr "AST inesperado de género %s"
39515
39516-#: cp/semantics.c:8999
39517+#: cp/semantics.c:9014
39518 #, gcc-internal-format
39519 msgid "cannot capture %qE by reference"
39520 msgstr "no se puede capturar %qE por referencia"
39521
39522-#: cp/semantics.c:9022
39523+#: cp/semantics.c:9037
39524 #, gcc-internal-format
39525 msgid "already captured %qD in lambda expression"
39526 msgstr "ya se capturó %qD en la expresión lambda"
39527
39528-#: cp/semantics.c:9168
39529+#: cp/semantics.c:9183
39530 #, gcc-internal-format
39531 msgid "%<this%> was not captured for this lambda function"
39532 msgstr "no se capturó %<this%> para esta función lambda"
39533@@ -34703,7 +34914,7 @@
39534
39535 #: fortran/array.c:216 fortran/array.c:576 fortran/check.c:2149
39536 #: fortran/check.c:3915 fortran/check.c:3953 fortran/check.c:4120
39537-#: fortran/match.c:1767 fortran/match.c:2834 fortran/match.c:3030
39538+#: fortran/match.c:1766 fortran/match.c:2833 fortran/match.c:3029
39539 #: fortran/simplify.c:4538
39540 #, gcc-internal-format, gfc-internal-format
39541 msgid "Coarrays disabled at %C, use -fcoarray= to enable"
39542@@ -34824,7 +35035,7 @@
39543 msgid "Fortran 2003: Array constructor including type specification at %C"
39544 msgstr "Fortran 2003: Los constructores de matriz incluyen especificación de tipo en %C"
39545
39546-#: fortran/array.c:1055 fortran/match.c:3466
39547+#: fortran/array.c:1055 fortran/match.c:3465
39548 #, gcc-internal-format, gfc-internal-format
39549 msgid "Type-spec at %L cannot contain a deferred type parameter"
39550 msgstr "La especificación de tipo en %L no puede tener un parámetro de tipo diferido"
39551@@ -34846,7 +35057,7 @@
39552
39553 #. Problems occur when we get something like
39554 #. integer :: a(lots) = (/(i, i=1, lots)/)
39555-#: fortran/array.c:1621 fortran/expr.c:1538 fortran/trans-array.c:5260
39556+#: fortran/array.c:1621 fortran/expr.c:1538 fortran/trans-array.c:5259
39557 #, gcc-internal-format, gfc-internal-format
39558 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"
39559 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"
39560@@ -35016,7 +35227,7 @@
39561
39562 #: fortran/check.c:910 fortran/check.c:946 fortran/check.c:2853
39563 #, gcc-internal-format, gfc-internal-format
39564-msgid "'%s' argument of '%s' intrinsic at %L shall not be conindexed"
39565+msgid "'%s' argument of '%s' intrinsic at %L shall not be coindexed"
39566 msgstr "El argumento '%s' del intrínseco '%s' en %L no debe ser coindizado"
39567
39568 #: fortran/check.c:928
39569@@ -35397,19 +35608,19 @@
39570 msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER or LOGICAL"
39571 msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser INTEGER o LOGICAL"
39572
39573-#: fortran/class.c:345
39574+#: fortran/class.c:470
39575 #, gcc-internal-format, gfc-internal-format
39576 msgid "Assumed size polymorphic objects or components, such as that at %C, have not yet been implemented"
39577 msgstr "Objetos o componentes polimórficos de tamaño asumido, tales como el que está en %C, aún no están implementados"
39578
39579 #. Since the extension field is 8 bit wide, we can only have
39580 #. up to 255 extension levels.
39581-#: fortran/class.c:431 fortran/decl.c:7562
39582+#: fortran/class.c:556 fortran/decl.c:7561
39583 #, gcc-internal-format, gfc-internal-format
39584 msgid "Maximum extension level reached with type '%s' at %L"
39585 msgstr "Se alcanzó el nivel de extensión máximo con el tipo '%s' en %L"
39586
39587-#: fortran/class.c:822 fortran/class.c:896
39588+#: fortran/class.c:948 fortran/class.c:1022
39589 #, gcc-internal-format, gfc-internal-format
39590 msgid "'%s' of '%s' is PRIVATE at %L"
39591 msgstr "'%s' de '%s' es PRIVATE en %L"
39592@@ -35459,227 +35670,227 @@
39593 msgid "Extension: re-initialization of '%s' at %L"
39594 msgstr "Extensión: reinicialización de '%s' en %L"
39595
39596-#: fortran/decl.c:260
39597+#: fortran/decl.c:264
39598 #, gcc-internal-format, gfc-internal-format
39599 msgid "Host associated variable '%s' may not be in the DATA statement at %C"
39600 msgstr "La variable asociada al anfitrión '%s' no debe estar en la declaración DATA en %C"
39601
39602-#: fortran/decl.c:267
39603+#: fortran/decl.c:271
39604 #, gcc-internal-format, gfc-internal-format
39605 msgid "Extension: initialization of common block variable '%s' in DATA statement at %C"
39606 msgstr "Extensión: inicialización de la variable de bloque común '%s' en la declaración DATA en %C"
39607
39608-#: fortran/decl.c:376
39609+#: fortran/decl.c:380
39610 #, gcc-internal-format, gfc-internal-format
39611 msgid "Symbol '%s' must be a PARAMETER in DATA statement at %C"
39612 msgstr "El símbolo '%s' debe ser un PARAMETER en la declaración DATA en %C"
39613
39614-#: fortran/decl.c:401
39615+#: fortran/decl.c:405
39616 #, gcc-internal-format, gfc-internal-format
39617 msgid "Invalid initializer %s in Data statement at %C"
39618 msgstr "Inicializador %s inválido en la declaración Data en %C"
39619
39620-#: fortran/decl.c:504
39621+#: fortran/decl.c:508
39622 #, gcc-internal-format, gfc-internal-format
39623 msgid "Initialization at %C is not allowed in a PURE procedure"
39624 msgstr "No se permite la inicialización de %C en un procedimiento PURE"
39625
39626-#: fortran/decl.c:566
39627+#: fortran/decl.c:570
39628 #, gcc-internal-format, gfc-internal-format
39629 msgid "DATA statement at %C is not allowed in a PURE procedure"
39630 msgstr "No se permite la declaración DATA en %C en un procedimiento PURE"
39631
39632-#: fortran/decl.c:654
39633+#: fortran/decl.c:658
39634 #, gcc-internal-format, gfc-internal-format
39635 msgid "Bad INTENT specification at %C"
39636 msgstr "Especificación INTENT errónea en %C"
39637
39638-#: fortran/decl.c:675
39639+#: fortran/decl.c:679
39640 #, gcc-internal-format, gfc-internal-format
39641 msgid "Fortran 2003: deferred type parameter at %C"
39642 msgstr "Fortran 2003: parámetro de tipo diferido en %C"
39643
39644-#: fortran/decl.c:712
39645+#: fortran/decl.c:716
39646 #, gcc-internal-format, gfc-internal-format
39647 msgid "Conflict in attributes of function argument at %C"
39648 msgstr "Conflicto en los atributos de los argumentos de la función en %C"
39649
39650-#: fortran/decl.c:737
39651+#: fortran/decl.c:741
39652 #, gcc-internal-format, gfc-internal-format
39653 msgid "Obsolescent feature: Old-style character length at %C"
39654 msgstr "Característica obsoleta: Longitud de carácter de estilo antiguo en %C"
39655
39656-#: fortran/decl.c:769
39657+#: fortran/decl.c:773
39658 #, gcc-internal-format, gfc-internal-format
39659 msgid "Syntax error in character length specification at %C"
39660 msgstr "Error sintáctico en la especificación de longitud de carácter en %C"
39661
39662-#: fortran/decl.c:892
39663+#: fortran/decl.c:896
39664 #, gcc-internal-format, gfc-internal-format
39665 msgid "Procedure '%s' at %C is already defined at %L"
39666 msgstr "El procedimiento '%s' en %C ya se había definido en %L"
39667
39668-#: fortran/decl.c:900
39669+#: fortran/decl.c:904
39670 #, gcc-internal-format, gfc-internal-format
39671 msgid "Name '%s' at %C is already defined as a generic interface at %L"
39672 msgstr "El nombre '%s' en %C ya se definió como una interfaz genérica en %L"
39673
39674-#: fortran/decl.c:913
39675+#: fortran/decl.c:917
39676 #, gcc-internal-format, gfc-internal-format
39677 msgid "Procedure '%s' at %C has an explicit interface and must not have attributes declared at %L"
39678 msgstr "El procedimiento '%s' en %C tiene una interfaz explícita y no debe tener atributos declarados en %L"
39679
39680-#: fortran/decl.c:985
39681+#: fortran/decl.c:989
39682 #, gcc-internal-format, gfc-internal-format
39683 msgid "Procedure '%s' at %L must have the BIND(C) attribute to be C interoperable"
39684 msgstr "El procedimiento '%s' en %L debe tener el atributo BIND(C) para que sea interoperable con C"
39685
39686-#: fortran/decl.c:1013
39687+#: fortran/decl.c:1017
39688 #, gcc-internal-format, gfc-internal-format
39689 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"
39690 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"
39691
39692-#: fortran/decl.c:1020
39693+#: fortran/decl.c:1024
39694 #, gcc-internal-format, gfc-internal-format
39695 msgid "Variable '%s' at %L is a dummy argument to the BIND(C) procedure '%s' but is not C interoperable because it is polymorphic"
39696 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"
39697
39698-#: fortran/decl.c:1026
39699+#: fortran/decl.c:1030
39700 #, gcc-internal-format, gfc-internal-format
39701 msgid "Variable '%s' at %L is a parameter to the BIND(C) procedure '%s' but may not be C interoperable"
39702 msgstr "La variable '%s' en %L es un parámetro del procedimiento BIND(C) '%s' pero puede no ser interoperable con C"
39703
39704-#: fortran/decl.c:1041
39705+#: fortran/decl.c:1045
39706 #, gcc-internal-format, gfc-internal-format
39707 msgid "Character argument '%s' at %L must be length 1 because procedure '%s' is BIND(C)"
39708 msgstr "El argumento de carácter '%s' en %L debe ser de longitud 1 porque el procedimiento '%s' es BIND(C)"
39709
39710-#: fortran/decl.c:1055
39711+#: fortran/decl.c:1059
39712 #, gcc-internal-format, gfc-internal-format
39713 msgid "Variable '%s' at %L cannot have the ALLOCATABLE attribute because procedure '%s' is BIND(C)"
39714 msgstr "La variable '%s' en %L no puede tener el atributo ALLOCATABLE porque el procedimiento '%s' es BIND(C)"
39715
39716-#: fortran/decl.c:1064
39717+#: fortran/decl.c:1068
39718 #, gcc-internal-format, gfc-internal-format
39719 msgid "Variable '%s' at %L cannot have the POINTER attribute because procedure '%s' is BIND(C)"
39720 msgstr "La variable '%s' en %L no puede tener el atributo POINTER porque el procedimiento '%s' es BIND(C)"
39721
39722-#: fortran/decl.c:1073
39723+#: fortran/decl.c:1077
39724 #, gcc-internal-format, gfc-internal-format
39725 msgid "Variable '%s' at %L cannot have both the OPTIONAL and the VALUE attribute because procedure '%s' is BIND(C)"
39726 msgstr "La variable '%s' en %L no puede tener los atributos OPTIONAL y VALUE al mismo tiempo porque el procedimiento '%s' es BIND(C)"
39727
39728-#: fortran/decl.c:1080
39729+#: fortran/decl.c:1084
39730 #, gcc-internal-format, gfc-internal-format
39731 msgid "TS29113: Variable '%s' at %L with OPTIONAL attribute in procedure '%s' which is BIND(C)"
39732 msgstr "TS29113: La variable '%s' en %L con atributo OPTIONAL en el procedimiento '%s' que es BIND(C)"
39733
39734-#: fortran/decl.c:1094
39735+#: fortran/decl.c:1098
39736 #, gcc-internal-format, gfc-internal-format
39737 msgid "Assumed-shape array '%s' at %L cannot be an argument to the procedure '%s' at %L because the procedure is BIND(C)"
39738 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)"
39739
39740-#: fortran/decl.c:1104
39741+#: fortran/decl.c:1108
39742 #, gcc-internal-format, gfc-internal-format
39743 msgid "Deferred-shape array '%s' at %L cannot be an argument to the procedure '%s' at %L because the procedure is BIND(C)"
39744 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)"
39745
39746-#: fortran/decl.c:1185
39747+#: fortran/decl.c:1189
39748 #, gcc-internal-format, gfc-internal-format
39749 msgid "Variable '%s' in common block '%s' at %C must be declared with a C interoperable kind since common block '%s' is BIND(C)"
39750 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)"
39751
39752-#: fortran/decl.c:1227
39753+#: fortran/decl.c:1231
39754 #, gcc-internal-format, gfc-internal-format
39755 msgid "CHARACTER expression at %L is being truncated (%d/%d)"
39756 msgstr "Se trunca la expresión CHARACTER en %L (%d/%d)"
39757
39758-#: fortran/decl.c:1234
39759+#: fortran/decl.c:1238
39760 #, gcc-internal-format, gfc-internal-format
39761 msgid "The CHARACTER elements of the array constructor at %L must have the same length (%d/%d)"
39762 msgstr "Los elementos CHARACTER del constructor de matriz en %L deben tener la misma longitud (%d/%d)"
39763
39764-#: fortran/decl.c:1324
39765+#: fortran/decl.c:1328
39766 #, gcc-internal-format, gfc-internal-format
39767 msgid "Initializer not allowed for PARAMETER '%s' at %C"
39768 msgstr "No se permite un inicializador para el PARAMETER '%s' en %C"
39769
39770-#: fortran/decl.c:1334
39771+#: fortran/decl.c:1338
39772 #, gcc-internal-format, gfc-internal-format
39773 msgid "PARAMETER at %L is missing an initializer"
39774 msgstr "Falta un inicializador para el PARAMETER en %L"
39775
39776-#: fortran/decl.c:1344
39777+#: fortran/decl.c:1348
39778 #, gcc-internal-format, gfc-internal-format
39779 msgid "Variable '%s' at %C with an initializer already appears in a DATA statement"
39780 msgstr "La variable '%s' en %C con un inicializador ya aparecía en una declaración DATA"
39781
39782-#: fortran/decl.c:1425
39783+#: fortran/decl.c:1429
39784 #, gcc-internal-format, gfc-internal-format
39785 msgid "Can't initialize implied-shape array at %L with scalar"
39786 msgstr "No se puede inicializar la matriz de tamaño implícito en %L con un escalar"
39787
39788-#: fortran/decl.c:1443
39789+#: fortran/decl.c:1447
39790 #, gcc-internal-format, gfc-internal-format
39791 msgid "Non-constant lower bound in implied-shape declaration at %L"
39792 msgstr "El límite inferior no es constante en la declaración de forma implícita en %L"
39793
39794-#: fortran/decl.c:1538
39795+#: fortran/decl.c:1542
39796 #, gcc-internal-format, gfc-internal-format
39797 msgid "Component at %C must have the POINTER attribute"
39798 msgstr "El componente en %C debe tener el atributo POINTER"
39799
39800-#: fortran/decl.c:1546
39801+#: fortran/decl.c:1550
39802 #, gcc-internal-format, gfc-internal-format
39803 msgid "Array component of structure at %C must have explicit or deferred shape"
39804 msgstr "El componente de matriz de la estructura en %C debe tener una forma explícita o diferida"
39805
39806-#: fortran/decl.c:1627
39807+#: fortran/decl.c:1631
39808 #, gcc-internal-format, gfc-internal-format
39809 msgid "Pointer array component of structure at %C must have a deferred shape"
39810 msgstr "El componente de matriz de puntero de la estructura en %C debe tener una forma diferida"
39811
39812-#: fortran/decl.c:1636
39813+#: fortran/decl.c:1640
39814 #, gcc-internal-format, gfc-internal-format
39815 msgid "Allocatable component of structure at %C must have a deferred shape"
39816 msgstr "El componente allocatable de la estructura en %C debe tener una forma diferida"
39817
39818-#: fortran/decl.c:1645
39819+#: fortran/decl.c:1649
39820 #, gcc-internal-format, gfc-internal-format
39821 msgid "Array component of structure at %C must have an explicit shape"
39822 msgstr "El componente de matriz de la estructura en %C debe tener una forma explícita"
39823
39824-#: fortran/decl.c:1679
39825+#: fortran/decl.c:1683
39826 #, gcc-internal-format, gfc-internal-format
39827 msgid "NULL() initialization at %C is ambiguous"
39828 msgstr "La inicialización NULL() en %C es ambigua"
39829
39830-#: fortran/decl.c:1706
39831+#: fortran/decl.c:1710
39832 #, gcc-internal-format, gfc-internal-format
39833 msgid "Initialization of pointer at %C is not allowed in a PURE procedure"
39834 msgstr "No se permite la inicialización de un puntero en %C en un procedimiento PURE"
39835
39836-#: fortran/decl.c:1726
39837+#: fortran/decl.c:1730
39838 #, gcc-internal-format, gfc-internal-format
39839 msgid "Error in pointer initialization at %C"
39840 msgstr "Error en la inicialización de puntero en %C"
39841
39842-#: fortran/decl.c:1733
39843+#: fortran/decl.c:1737
39844 #, gcc-internal-format, gfc-internal-format
39845 msgid "Fortran 2008: non-NULL pointer initialization at %C"
39846 msgstr "Fortran 2008: inicialización de puntero que no es NULL en %C"
39847
39848-#: fortran/decl.c:1756
39849+#: fortran/decl.c:1760
39850 #, gcc-internal-format, gfc-internal-format
39851 msgid "Function name '%s' not allowed at %C"
39852 msgstr "No se permite el nombre de función '%s' en %C"
39853
39854-#: fortran/decl.c:1819
39855+#: fortran/decl.c:1823
39856 #, gcc-internal-format, gfc-internal-format
39857 msgid "Non-PARAMETER symbol '%s' at %L can't be implied-shape"
39858 msgstr "El símbolo '%s' que no es PARAMETER en %L no puede ser de forma implícita"
39859
39860-#: fortran/decl.c:1830
39861+#: fortran/decl.c:1834
39862 #, gcc-internal-format, gfc-internal-format
39863 msgid "Fortran 2008: Implied-shape array at %L"
39864 msgstr "Fortran 2008: Matriz de forma implícita en %L"
39865@@ -35689,1076 +35900,1076 @@
39866 # como `apuntado'. cfuga
39867 # Referencia: http://gcc.gnu.org/onlinedocs/gfortran/Cray-pointers.html
39868 #
39869-#: fortran/decl.c:1894 fortran/decl.c:6419
39870+#: fortran/decl.c:1898 fortran/decl.c:6418
39871 #, gcc-internal-format, gfc-internal-format
39872 msgid "Duplicate array spec for Cray pointee at %C"
39873 msgstr "Especificación de matriz duplicada para el apuntado Cray en %C"
39874
39875-#: fortran/decl.c:1965
39876+#: fortran/decl.c:1969
39877 #, gcc-internal-format, gfc-internal-format
39878 msgid "The type of '%s' at %C has not been declared within the interface"
39879 msgstr "No se declaró el tipo de '%s' en %C en la interfaz"
39880
39881-#: fortran/decl.c:1989
39882+#: fortran/decl.c:1993
39883 #, gcc-internal-format, gfc-internal-format
39884 msgid "Extension: Old-style initialization at %C"
39885 msgstr "Extensión: Inicialización de estilo antiguo en %C"
39886
39887-#: fortran/decl.c:2004 fortran/decl.c:4911
39888+#: fortran/decl.c:2008 fortran/decl.c:4916
39889 #, gcc-internal-format, gfc-internal-format
39890 msgid "Initialization at %C isn't for a pointer variable"
39891 msgstr "La inicialización en %C no es para una variable puntero"
39892
39893-#: fortran/decl.c:2017
39894+#: fortran/decl.c:2021
39895 #, gcc-internal-format, gfc-internal-format
39896 msgid "Pointer initialization at %C requires '=>', not '='"
39897 msgstr "La inicialización de puntero en %C requiere '=>', no '='"
39898
39899-#: fortran/decl.c:2026 fortran/decl.c:7714
39900+#: fortran/decl.c:2030 fortran/decl.c:7713
39901 #, gcc-internal-format, gfc-internal-format
39902 msgid "Expected an initialization expression at %C"
39903 msgstr "Se esperaba una expresión de inicialización en %C"
39904
39905-#: fortran/decl.c:2033
39906+#: fortran/decl.c:2037
39907 #, gcc-internal-format, gfc-internal-format
39908 msgid "Initialization of variable at %C is not allowed in a PURE procedure"
39909 msgstr "No se permite la inicialización de una variable en %C en un procedimiento PURE"
39910
39911-#: fortran/decl.c:2046
39912+#: fortran/decl.c:2050
39913 #, gcc-internal-format, gfc-internal-format
39914 msgid "Initialization of allocatable component at %C is not allowed"
39915 msgstr "No se permite la inicialización del componente allocatable en %C"
39916
39917-#: fortran/decl.c:2100 fortran/decl.c:2136
39918+#: fortran/decl.c:2104 fortran/decl.c:2140
39919 #, gcc-internal-format, gfc-internal-format
39920 msgid "Old-style type declaration %s*%d not supported at %C"
39921 msgstr "No se admite la declaración de tipo de estilo antiguo %s*%d en %C"
39922
39923-#: fortran/decl.c:2141
39924+#: fortran/decl.c:2145
39925 #, gcc-internal-format, gfc-internal-format
39926 msgid "Nonstandard type declaration %s*%d at %C"
39927 msgstr "Declaración de tipo %s*%d no estándar en %C"
39928
39929-#: fortran/decl.c:2192 fortran/decl.c:2268
39930+#: fortran/decl.c:2196 fortran/decl.c:2272
39931 #, gcc-internal-format, gfc-internal-format
39932 msgid "Missing right parenthesis at %C"
39933 msgstr "Falta el paréntesis derecho en %C"
39934
39935-#: fortran/decl.c:2205 fortran/decl.c:2339
39936+#: fortran/decl.c:2209 fortran/decl.c:2343
39937 #, gcc-internal-format, gfc-internal-format
39938 msgid "Expected initialization expression at %C"
39939 msgstr "Se esperaba una expresión de inicialización en %C"
39940
39941-#: fortran/decl.c:2213 fortran/decl.c:2345
39942+#: fortran/decl.c:2217 fortran/decl.c:2349
39943 #, gcc-internal-format, gfc-internal-format
39944 msgid "Expected scalar initialization expression at %C"
39945 msgstr "Se esperaba una expresión de inicialización escalar en %C"
39946
39947-#: fortran/decl.c:2244
39948+#: fortran/decl.c:2248
39949 #, gcc-internal-format, gfc-internal-format
39950 msgid "Kind %d not supported for type %s at %C"
39951 msgstr "No se admite el género %d para el tipo %s en %C"
39952
39953-#: fortran/decl.c:2257
39954+#: fortran/decl.c:2261
39955 #, gcc-internal-format, gfc-internal-format
39956 msgid "C kind type parameter is for type %s but type at %L is %s"
39957 msgstr "El parámetro de tipo de género C es para el tipo %s, pero el tipo en %L es %s"
39958
39959-#: fortran/decl.c:2266
39960+#: fortran/decl.c:2270
39961 #, gcc-internal-format, gfc-internal-format
39962 msgid "Missing right parenthesis or comma at %C"
39963 msgstr "Falta el paréntesis derecho o una coma en %C"
39964
39965-#: fortran/decl.c:2365
39966+#: fortran/decl.c:2369
39967 #, gcc-internal-format, gfc-internal-format
39968 msgid "Kind %d is not supported for CHARACTER at %C"
39969 msgstr "No se admite el género %d para CHARACTER en %C"
39970
39971-#: fortran/decl.c:2497
39972+#: fortran/decl.c:2501
39973 #, gcc-internal-format, gfc-internal-format
39974 msgid "Syntax error in CHARACTER declaration at %C"
39975 msgstr "Error sintáctico en la declaración CHARACTER en %C"
39976
39977-#: fortran/decl.c:2582
39978+#: fortran/decl.c:2586
39979 #, gcc-internal-format, gfc-internal-format
39980 msgid "Extension: BYTE type at %C"
39981 msgstr "Extensión: tipo BYTE en %C"
39982
39983-#: fortran/decl.c:2588
39984+#: fortran/decl.c:2592
39985 #, gcc-internal-format, gfc-internal-format
39986 msgid "BYTE type used at %C is not available on the target machine"
39987 msgstr "El tipo BYTE usado en %C no está disponible en la máquina objetivo"
39988
39989-#: fortran/decl.c:2614 fortran/decl.c:2645 fortran/decl.c:2675
39990-#: fortran/decl.c:2825
39991+#: fortran/decl.c:2618 fortran/decl.c:2649 fortran/decl.c:2679
39992+#: fortran/decl.c:2829
39993 #, gcc-internal-format, gfc-internal-format
39994 msgid "Fortran 2008: TYPE with intrinsic-type-spec at %C"
39995 msgstr "Fortran 2008: TYPE con especificación de tipo intrínseco en %C"
39996
39997-#: fortran/decl.c:2670
39998+#: fortran/decl.c:2674
39999 #, gcc-internal-format, gfc-internal-format
40000 msgid "Extension: DOUBLE COMPLEX at %C"
40001 msgstr "Extensión: DOUBLE COMPLEX en %C"
40002
40003-#: fortran/decl.c:2708
40004+#: fortran/decl.c:2712
40005 #, gcc-internal-format, gfc-internal-format
40006 msgid "Unlimited polymorphism at %C not yet supported"
40007 msgstr "Aún no se admite polimorfismo ilimitado en %C"
40008
40009-#: fortran/decl.c:2717
40010+#: fortran/decl.c:2721
40011 #, gcc-internal-format, gfc-internal-format
40012 msgid "Fortran 2003: CLASS statement at %C"
40013 msgstr "Fortran 2003: Declaración CLASS en %C"
40014
40015-#: fortran/decl.c:2753 fortran/decl.c:2766 fortran/decl.c:3140
40016-#: fortran/decl.c:3148
40017+#: fortran/decl.c:2757 fortran/decl.c:2770 fortran/decl.c:3144
40018+#: fortran/decl.c:3152
40019 #, gcc-internal-format, gfc-internal-format
40020 msgid "Type name '%s' at %C is ambiguous"
40021 msgstr "El nombre de tipo '%s' en %C es ambiguo"
40022
40023-#: fortran/decl.c:2781
40024+#: fortran/decl.c:2785
40025 #, gcc-internal-format, gfc-internal-format
40026 msgid "Type name '%s' at %C conflicts with previously declared entity at %L, which has the same name"
40027 msgstr "El nombre de tipo '%s' en %C tiene conflictos con la entidad declarada previamente en %L, la cual tiene el mismo nombre"
40028
40029-#: fortran/decl.c:2901
40030+#: fortran/decl.c:2905
40031 #, gcc-internal-format, gfc-internal-format
40032 msgid "Missing character range in IMPLICIT at %C"
40033 msgstr "Falta el rango de carácter en IMPLICIT en %C"
40034
40035-#: fortran/decl.c:2947
40036+#: fortran/decl.c:2951
40037 #, gcc-internal-format, gfc-internal-format
40038 msgid "Letters must be in alphabetic order in IMPLICIT statement at %C"
40039 msgstr "Las letras debe estar en orden alfabético en la declaración IMPLICIT en %C"
40040
40041-#: fortran/decl.c:3003
40042+#: fortran/decl.c:3007
40043 #, gcc-internal-format, gfc-internal-format
40044 msgid "Empty IMPLICIT statement at %C"
40045 msgstr "Declaración IMPLICIT vacía en %C"
40046
40047-#: fortran/decl.c:3105
40048+#: fortran/decl.c:3109
40049 #, gcc-internal-format, gfc-internal-format
40050 msgid "IMPORT statement at %C only permitted in an INTERFACE body"
40051 msgstr "La declaración IMPORT en %C sólo se permite en un cuerpo INTERFACE"
40052
40053-#: fortran/decl.c:3110
40054+#: fortran/decl.c:3114
40055 #, gcc-internal-format, gfc-internal-format
40056 msgid "Fortran 2003: IMPORT statement at %C"
40057 msgstr "Fortran 2003: Declaración IMPORT en %C"
40058
40059-#: fortran/decl.c:3125
40060+#: fortran/decl.c:3129
40061 #, gcc-internal-format, gfc-internal-format
40062 msgid "Expecting list of named entities at %C"
40063 msgstr "Se espera la lista de entidades nombradas %C"
40064
40065-#: fortran/decl.c:3154
40066+#: fortran/decl.c:3158
40067 #, gcc-internal-format, gfc-internal-format
40068 msgid "Cannot IMPORT '%s' from host scoping unit at %C - does not exist."
40069 msgstr "No se puede IMPORTar '%s' desde la unidad de ámbito del anfitrión en %C - no existe."
40070
40071-#: fortran/decl.c:3161
40072+#: fortran/decl.c:3165
40073 #, gcc-internal-format, gfc-internal-format
40074 msgid "'%s' is already IMPORTed from host scoping unit at %C."
40075 msgstr "'%s' ya se IMPORTó desde la unidad de ámbito del anfitrión en %C."
40076
40077-#: fortran/decl.c:3204
40078+#: fortran/decl.c:3208
40079 #, gcc-internal-format, gfc-internal-format
40080 msgid "Syntax error in IMPORT statement at %C"
40081 msgstr "Error sintáctico en la declaración IMPORT en %C"
40082
40083-#: fortran/decl.c:3503
40084+#: fortran/decl.c:3507
40085 #, gcc-internal-format, gfc-internal-format
40086 msgid "Missing codimension specification at %C"
40087 msgstr "Falta la especificación de codimensión en %C"
40088
40089-#: fortran/decl.c:3505
40090+#: fortran/decl.c:3509
40091 #, gcc-internal-format, gfc-internal-format
40092 msgid "Missing dimension specification at %C"
40093 msgstr "Falta la especificación de dimensión en %C"
40094
40095-#: fortran/decl.c:3588
40096+#: fortran/decl.c:3592
40097 #, gcc-internal-format, gfc-internal-format
40098 msgid "Duplicate %s attribute at %L"
40099 msgstr "Atributo %s duplicado en %L"
40100
40101-#: fortran/decl.c:3607
40102+#: fortran/decl.c:3611
40103 #, gcc-internal-format, gfc-internal-format
40104 msgid "Fortran 2003: ALLOCATABLE attribute at %C in a TYPE definition"
40105 msgstr "Fortran 2003: atributo ALLOCATABLE en %C en una definición TYPE"
40106
40107-#: fortran/decl.c:3617
40108+#: fortran/decl.c:3621
40109 #, gcc-internal-format, gfc-internal-format
40110 msgid "Attribute at %L is not allowed in a TYPE definition"
40111 msgstr "No se permite el atributo %L en una definición TYPE"
40112
40113-#: fortran/decl.c:3635
40114+#: fortran/decl.c:3639
40115 #, gcc-internal-format, gfc-internal-format
40116 msgid "Fortran 2003: Attribute %s at %L in a TYPE definition"
40117 msgstr "Fortran 2003: Atributo %s en %L en una definición TYPE"
40118
40119-#: fortran/decl.c:3646
40120+#: fortran/decl.c:3650
40121 #, gcc-internal-format, gfc-internal-format
40122 msgid "%s attribute at %L is not allowed outside of the specification part of a module"
40123 msgstr "No se permite el atributo %s en %L fuera de la parte de especificación de un módulo"
40124
40125-#: fortran/decl.c:3661
40126+#: fortran/decl.c:3665
40127 #, gcc-internal-format, gfc-internal-format
40128 msgid "Fortran 2003: ASYNCHRONOUS attribute at %C"
40129 msgstr "Fortran 2003: Atributo ASYNCHRONOUS en %C"
40130
40131-#: fortran/decl.c:3674
40132+#: fortran/decl.c:3678
40133 #, gcc-internal-format, gfc-internal-format
40134 msgid "Fortran 2008: CONTIGUOUS attribute at %C"
40135 msgstr "Fortran 2008: Atributo CONTIGUOUS en %C"
40136
40137-#: fortran/decl.c:3720 fortran/decl.c:6714
40138+#: fortran/decl.c:3724 fortran/decl.c:6713
40139 #, gcc-internal-format, gfc-internal-format
40140 msgid "PROTECTED at %C only allowed in specification part of a module"
40141 msgstr "Sólo se permite PROTECTED en %C en la parte de especificación de un módulo"
40142
40143-#: fortran/decl.c:3726
40144+#: fortran/decl.c:3730
40145 #, gcc-internal-format, gfc-internal-format
40146 msgid "Fortran 2003: PROTECTED attribute at %C"
40147 msgstr "Fortran 2003: Atributo PROTECTED en %C"
40148
40149-#: fortran/decl.c:3757
40150+#: fortran/decl.c:3761
40151 #, gcc-internal-format, gfc-internal-format
40152 msgid "Fortran 2003: VALUE attribute at %C"
40153 msgstr "Fortran 2003: Atributo VALUE en %C"
40154
40155-#: fortran/decl.c:3767
40156+#: fortran/decl.c:3771
40157 #, gcc-internal-format, gfc-internal-format
40158 msgid "Fortran 2003: VOLATILE attribute at %C"
40159 msgstr "Fortran 2003: Atributo VOLATILE en %C"
40160
40161-#: fortran/decl.c:3811
40162+#: fortran/decl.c:3816
40163 #, gcc-internal-format, gfc-internal-format
40164 msgid "Multiple identifiers provided with single NAME= specifier at %C"
40165 msgstr "Se proveen múltiples identificadores con un sólo especificador NAME= en %C"
40166
40167-#: fortran/decl.c:3910
40168+#: fortran/decl.c:3913
40169 #, gcc-internal-format, gfc-internal-format
40170 msgid "Implicitly declared BIND(C) function '%s' at %L may not be C interoperable"
40171 msgstr "La función implícitamente declarada BIND(C) '%s' en %L no puede ser interoperable con C"
40172
40173-#: fortran/decl.c:3931
40174+#: fortran/decl.c:3934
40175 #, gcc-internal-format, gfc-internal-format
40176 msgid "Variable '%s' in common block '%s' at %L may not be a C interoperable kind though common block '%s' is BIND(C)"
40177 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)"
40178
40179-#: fortran/decl.c:3940
40180+#: fortran/decl.c:3943
40181 #, gcc-internal-format, gfc-internal-format
40182 msgid "Type declaration '%s' at %L is not C interoperable but it is BIND(C)"
40183 msgstr "La declaración de tipo '%s' en %L no es interoperable con C pero es BIND(C)"
40184
40185-#: fortran/decl.c:3944
40186+#: fortran/decl.c:3947
40187 #, gcc-internal-format, gfc-internal-format
40188 msgid "Variable '%s' at %L may not be a C interoperable kind but it is bind(c)"
40189 msgstr "La variable '%s' en %L no es de un género interoperable con C pero es BIND(C)"
40190
40191-#: fortran/decl.c:3956
40192+#: fortran/decl.c:3959
40193 #, gcc-internal-format, gfc-internal-format
40194 msgid "Variable '%s' in common block '%s' at %L cannot be declared with BIND(C) since it is not a global"
40195 msgstr "La variable '%s' en el bloque común '%s' en %L no se puede declarar con BIND(C) porque no es un global"
40196
40197-#: fortran/decl.c:3970
40198+#: fortran/decl.c:3973
40199 #, gcc-internal-format, gfc-internal-format
40200 msgid "Variable '%s' at %L cannot have both the POINTER and BIND(C) attributes"
40201 msgstr "La variable '%s' en %L no puede tener los atributos POINTER y BIND(C) al mismo tiempo"
40202
40203-#: fortran/decl.c:3978
40204+#: fortran/decl.c:3981
40205 #, gcc-internal-format, gfc-internal-format
40206 msgid "Variable '%s' at %L cannot have both the ALLOCATABLE and BIND(C) attributes"
40207 msgstr "La variable '%s' en %L no puede tener los atributos ALLOCATABLE y BIND(C) al mismo tiempo"
40208
40209-#: fortran/decl.c:3990
40210+#: fortran/decl.c:3993
40211 #, gcc-internal-format, gfc-internal-format
40212 msgid "Return type of BIND(C) function '%s' at %L cannot be an array"
40213 msgstr "El tipo de devolución de la función BIND(C) '%s' en %L no puede ser una matriz"
40214
40215-#: fortran/decl.c:3998
40216+#: fortran/decl.c:4001
40217 #, gcc-internal-format, gfc-internal-format
40218 msgid "Return type of BIND(C) function '%s' at %L cannot be a character string"
40219 msgstr "El tipo de devolución de la función BIND(C) '%s' en %L no puede ser una cadena de caracteres"
40220
40221 #. Use gfc_warning_now because we won't say that the symbol fails
40222 #. just because of this.
40223-#: fortran/decl.c:4009
40224+#: fortran/decl.c:4012
40225 #, gcc-internal-format, gfc-internal-format
40226 msgid "Symbol '%s' at %L is marked PRIVATE but has been given the binding label '%s'"
40227 msgstr "El símbolo '%s' en %L se marcó PRIVATE pero se le dio la etiqueta de asignación '%s'"
40228
40229-#: fortran/decl.c:4084
40230+#: fortran/decl.c:4088
40231 #, gcc-internal-format, gfc-internal-format
40232 msgid "Need either entity or common block name for attribute specification statement at %C"
40233 msgstr "Se necesita una entidad o un nombre de bloque común para la declaración de especificación de atributo en %C"
40234
40235-#: fortran/decl.c:4131
40236+#: fortran/decl.c:4135
40237 #, gcc-internal-format, gfc-internal-format
40238 msgid "Missing entity or common block name for attribute specification statement at %C"
40239 msgstr "Falta la entidad o el nombre de bloque común para la declaración de especificación de atributo en %C"
40240
40241 #. Now we have an error, which we signal, and then fix up
40242 #. because the knock-on is plain and simple confusing.
40243-#: fortran/decl.c:4240
40244+#: fortran/decl.c:4244
40245 #, gcc-internal-format, gfc-internal-format
40246 msgid "Derived type at %C has not been previously defined and so cannot appear in a derived type definition"
40247 msgstr "El tipo derivado en %C no se definió previamente y no puede aparecer en una definición de tipo derivado"
40248
40249-#: fortran/decl.c:4272
40250+#: fortran/decl.c:4276
40251 #, gcc-internal-format, gfc-internal-format
40252 msgid "Syntax error in data declaration at %C"
40253 msgstr "Error sintáctico en la declaración de datos en %C"
40254
40255-#: fortran/decl.c:4346
40256+#: fortran/decl.c:4350
40257 #, gcc-internal-format, gfc-internal-format
40258 msgid "Fortran 2008: IMPURE procedure at %C"
40259 msgstr "Fortran 2008: Procedimiento IMPURE en %C"
40260
40261-#: fortran/decl.c:4359
40262+#: fortran/decl.c:4363
40263 #, gcc-internal-format, gfc-internal-format
40264 msgid "PURE and IMPURE must not appear both at %C"
40265 msgstr "No deben aparecer PURE con IMPURE en %C"
40266
40267-#: fortran/decl.c:4465
40268+#: fortran/decl.c:4469
40269 #, gcc-internal-format, gfc-internal-format
40270 msgid "Name '%s' at %C is the name of the procedure"
40271 msgstr "El nombre '%s' en %C es el nombre del procedimiento"
40272
40273-#: fortran/decl.c:4477
40274+#: fortran/decl.c:4481
40275 #, gcc-internal-format, gfc-internal-format
40276 msgid "Unexpected junk in formal argument list at %C"
40277 msgstr "Basura inesperada en la lista de argumentos formales en %C"
40278
40279-#: fortran/decl.c:4494
40280+#: fortran/decl.c:4498
40281 #, gcc-internal-format, gfc-internal-format
40282 msgid "Duplicate symbol '%s' in formal argument list at %C"
40283 msgstr "Símbolo '%s' duplicado en la lista de argumentos formales en %C"
40284
40285-#: fortran/decl.c:4545
40286+#: fortran/decl.c:4549
40287 #, gcc-internal-format, gfc-internal-format
40288 msgid "RESULT variable at %C must be different than function name"
40289 msgstr "La variable RESULT en %C debe ser diferente que el nombre de la función"
40290
40291-#: fortran/decl.c:4622
40292+#: fortran/decl.c:4626
40293 #, gcc-internal-format, gfc-internal-format
40294 msgid "Unexpected junk after function declaration at %C"
40295 msgstr "Basura inesperada después de la declaración de la función en %C"
40296
40297-#: fortran/decl.c:4632 fortran/decl.c:5665
40298+#: fortran/decl.c:4636 fortran/decl.c:5670
40299 #, gcc-internal-format, gfc-internal-format
40300 msgid "Fortran 2008: BIND(C) attribute at %L may not be specified for an internal procedure"
40301 msgstr "Fortran 2008: El atributo BIND(C) en %L no se puede especificar para un procedimiento internal"
40302
40303-#: fortran/decl.c:4776
40304+#: fortran/decl.c:4780
40305 #, gcc-internal-format, gfc-internal-format
40306 msgid "Interface '%s' at %C may not be generic"
40307 msgstr "La interfaz '%s' en %C puede no ser generic"
40308
40309-#: fortran/decl.c:4782
40310+#: fortran/decl.c:4786
40311 #, gcc-internal-format, gfc-internal-format
40312 msgid "Interface '%s' at %C may not be a statement function"
40313 msgstr "La interfaz '%s' en %C puede no ser una función de declaración"
40314
40315-#: fortran/decl.c:4795
40316+#: fortran/decl.c:4799
40317 #, gcc-internal-format, gfc-internal-format
40318 msgid "Intrinsic procedure '%s' not allowed in PROCEDURE statement at %C"
40319 msgstr "El procedimiento intrínseco '%s' no se permite en la declaración PROCEDURE en %C"
40320
40321-#: fortran/decl.c:4850
40322+#: fortran/decl.c:4854
40323 #, gcc-internal-format, gfc-internal-format
40324 msgid "BIND(C) attribute at %C requires an interface with BIND(C)"
40325 msgstr "El atributo BIND(C) en %C requiere una interfaz con BIND(C)"
40326
40327-#: fortran/decl.c:4857
40328+#: fortran/decl.c:4861
40329 #, gcc-internal-format, gfc-internal-format
40330 msgid "BIND(C) procedure with NAME may not have POINTER attribute at %C"
40331 msgstr "El procedimiento BIND(C) con NAME no debe tener atributo POINTER en %C"
40332
40333-#: fortran/decl.c:4863
40334+#: fortran/decl.c:4867
40335 #, gcc-internal-format, gfc-internal-format
40336 msgid "Dummy procedure at %C may not have BIND(C) attribute with NAME"
40337 msgstr "El procedimiento dummy en %C no puede tener atributo BIND(C) con NAME"
40338
40339-#: fortran/decl.c:4886
40340+#: fortran/decl.c:4891
40341 #, gcc-internal-format, gfc-internal-format
40342 msgid "Procedure '%s' at %L already has basic type of %s"
40343 msgstr "El procedimiento '%s' en %L ya tenía el tipo básico de %s"
40344
40345-#: fortran/decl.c:4935 fortran/decl.c:5103 fortran/decl.c:8196
40346+#: fortran/decl.c:4940 fortran/decl.c:5108 fortran/decl.c:8195
40347 #, gcc-internal-format, gfc-internal-format
40348 msgid "Syntax error in PROCEDURE statement at %C"
40349 msgstr "Error sintáctico en la declaración PROCEDURE en %C"
40350
40351-#: fortran/decl.c:4984 fortran/decl.c:8097
40352+#: fortran/decl.c:4989 fortran/decl.c:8096
40353 #, gcc-internal-format, gfc-internal-format
40354 msgid "Expected '::' after binding-attributes at %C"
40355 msgstr "Se esperaba '::' después de los atributos de enlazado en %C"
40356
40357-#: fortran/decl.c:4991
40358+#: fortran/decl.c:4996
40359 #, gcc-internal-format, gfc-internal-format
40360 msgid "NOPASS or explicit interface required at %C"
40361 msgstr "Se requiere NOPASS o una interfaz explícita en %C"
40362
40363-#: fortran/decl.c:4995
40364+#: fortran/decl.c:5000
40365 #, gcc-internal-format, gfc-internal-format
40366 msgid "Fortran 2003: Procedure pointer component at %C"
40367 msgstr "Fortran 2003: Procedimiento de componente puntero en %C"
40368
40369-#: fortran/decl.c:5060
40370+#: fortran/decl.c:5065
40371 #, gcc-internal-format, gfc-internal-format
40372 msgid "Syntax error in procedure pointer component at %C"
40373 msgstr "Error sintáctico en el procedimiento de componente puntero en %C"
40374
40375-#: fortran/decl.c:5077
40376+#: fortran/decl.c:5082
40377 #, gcc-internal-format, gfc-internal-format
40378 msgid "PROCEDURE at %C must be in a generic interface"
40379 msgstr "PROCEDURE en %C debe estar en una interfaz genérica"
40380
40381-#: fortran/decl.c:5143
40382+#: fortran/decl.c:5148
40383 #, gcc-internal-format, gfc-internal-format
40384 msgid "Fortran 2003: PROCEDURE statement at %C"
40385 msgstr "Fortran 2003: Declaración PROCEDURE en %C"
40386
40387-#: fortran/decl.c:5211
40388+#: fortran/decl.c:5216
40389 #, gcc-internal-format, gfc-internal-format
40390 msgid "Expected formal argument list in function definition at %C"
40391 msgstr "Se esperaba una lista de argumentos formales en la definición de la función en %C"
40392
40393-#: fortran/decl.c:5235 fortran/decl.c:5239 fortran/decl.c:5443
40394-#: fortran/decl.c:5447 fortran/decl.c:5633 fortran/decl.c:5637
40395+#: fortran/decl.c:5240 fortran/decl.c:5244 fortran/decl.c:5448
40396+#: fortran/decl.c:5452 fortran/decl.c:5638 fortran/decl.c:5642
40397 #: fortran/symbol.c:1588
40398 #, gcc-internal-format, gfc-internal-format
40399 msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
40400 msgstr "El atributo BIND(C) en %L sólo se puede usar para variables o bloques comunes"
40401
40402-#: fortran/decl.c:5354
40403+#: fortran/decl.c:5359
40404 #, gcc-internal-format, gfc-internal-format
40405 msgid "Fortran 2008 obsolescent feature: ENTRY statement at %C"
40406 msgstr "Característica obsoleta de Fortran 2008: declaración ENTRY en %C"
40407
40408-#: fortran/decl.c:5364
40409+#: fortran/decl.c:5369
40410 #, gcc-internal-format, gfc-internal-format
40411 msgid "ENTRY statement at %C cannot appear within a PROGRAM"
40412 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un PROGRAM"
40413
40414-#: fortran/decl.c:5367
40415+#: fortran/decl.c:5372
40416 #, gcc-internal-format, gfc-internal-format
40417 msgid "ENTRY statement at %C cannot appear within a MODULE"
40418 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un MODULE"
40419
40420-#: fortran/decl.c:5370
40421+#: fortran/decl.c:5375
40422 #, gcc-internal-format, gfc-internal-format
40423 msgid "ENTRY statement at %C cannot appear within a BLOCK DATA"
40424 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un BLOCK DATA"
40425
40426-#: fortran/decl.c:5374
40427+#: fortran/decl.c:5379
40428 #, gcc-internal-format, gfc-internal-format
40429 msgid "ENTRY statement at %C cannot appear within an INTERFACE"
40430 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un INTERFACE"
40431
40432-#: fortran/decl.c:5378
40433+#: fortran/decl.c:5383
40434 #, gcc-internal-format, gfc-internal-format
40435 msgid "ENTRY statement at %C cannot appear within a DERIVED TYPE block"
40436 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque DERIVED TYPE"
40437
40438-#: fortran/decl.c:5382
40439+#: fortran/decl.c:5387
40440 #, gcc-internal-format, gfc-internal-format
40441 msgid "ENTRY statement at %C cannot appear within an IF-THEN block"
40442 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque IF-THEN"
40443
40444-#: fortran/decl.c:5387
40445+#: fortran/decl.c:5392
40446 #, gcc-internal-format, gfc-internal-format
40447 msgid "ENTRY statement at %C cannot appear within a DO block"
40448 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque DO"
40449
40450-#: fortran/decl.c:5391
40451+#: fortran/decl.c:5396
40452 #, gcc-internal-format, gfc-internal-format
40453 msgid "ENTRY statement at %C cannot appear within a SELECT block"
40454 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque SELECT"
40455
40456-#: fortran/decl.c:5395
40457+#: fortran/decl.c:5400
40458 #, gcc-internal-format, gfc-internal-format
40459 msgid "ENTRY statement at %C cannot appear within a FORALL block"
40460 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque FORALL"
40461
40462-#: fortran/decl.c:5399
40463+#: fortran/decl.c:5404
40464 #, gcc-internal-format, gfc-internal-format
40465 msgid "ENTRY statement at %C cannot appear within a WHERE block"
40466 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque WHERE"
40467
40468-#: fortran/decl.c:5403
40469+#: fortran/decl.c:5408
40470 #, gcc-internal-format, gfc-internal-format
40471 msgid "ENTRY statement at %C cannot appear within a contained subprogram"
40472 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un subprograma contenido"
40473
40474-#: fortran/decl.c:5421
40475+#: fortran/decl.c:5426
40476 #, gcc-internal-format, gfc-internal-format
40477 msgid "ENTRY statement at %C cannot appear in a contained procedure"
40478 msgstr "La declaración ENTRY en %C no puede aparecer dentro de un procedimiento contenido"
40479
40480-#: fortran/decl.c:5475 fortran/decl.c:5673
40481+#: fortran/decl.c:5480 fortran/decl.c:5678
40482 #, gcc-internal-format, gfc-internal-format
40483 msgid "Missing required parentheses before BIND(C) at %C"
40484 msgstr "Faltan los paréntesis requeridos antes de BIND(C) en %C"
40485
40486-#: fortran/decl.c:5735 fortran/decl.c:5751
40487+#: fortran/decl.c:5736 fortran/decl.c:5752
40488 #, gcc-internal-format, gfc-internal-format
40489 msgid "Syntax error in NAME= specifier for binding label at %C"
40490 msgstr "Error sintáctico en el especificador NAME= para la etiqueta de asignación %C"
40491
40492-#: fortran/decl.c:5766
40493+#: fortran/decl.c:5767
40494 #, gcc-internal-format, gfc-internal-format
40495 msgid "Missing closing quote '\"' for binding label at %C"
40496 msgstr "Falta la comilla '\"' que cierra en la etiqueta de asignación en %C"
40497
40498-#: fortran/decl.c:5775
40499+#: fortran/decl.c:5776
40500 #, gcc-internal-format, gfc-internal-format
40501 msgid "Missing closing quote ''' for binding label at %C"
40502 msgstr "Falta la comilla ''' que cierra en la etiqueta de asignación en %C"
40503
40504-#: fortran/decl.c:5785
40505+#: fortran/decl.c:5786
40506 #, gcc-internal-format, gfc-internal-format
40507 msgid "Missing closing paren for binding label at %C"
40508 msgstr "Falta el paréntesis que cierra en la etiqueta de asignación en %C"
40509
40510-#: fortran/decl.c:5791
40511+#: fortran/decl.c:5792
40512 #, gcc-internal-format, gfc-internal-format
40513 msgid "No binding name is allowed in BIND(C) at %C"
40514 msgstr "No se permite un nombre de enlazado en BIND(C) en %C"
40515
40516-#: fortran/decl.c:5797
40517+#: fortran/decl.c:5798
40518 #, gcc-internal-format, gfc-internal-format
40519 msgid "For dummy procedure %s, no binding name is allowed in BIND(C) at %C"
40520 msgstr "Para el procedimiento dummy %s, no se permite un nombre de enlazado en BIND(C) en %C"
40521
40522-#: fortran/decl.c:5828
40523+#: fortran/decl.c:5827
40524 #, gcc-internal-format, gfc-internal-format
40525 msgid "NAME not allowed on BIND(C) for ABSTRACT INTERFACE at %C"
40526 msgstr "No se permite NAME en BIND(C) para ABSTRACT INTERFACE en %C"
40527
40528-#: fortran/decl.c:6033
40529+#: fortran/decl.c:6032
40530 #, gcc-internal-format, gfc-internal-format
40531 msgid "Unexpected END statement at %C"
40532 msgstr "Declaración END inesperada en %C"
40533
40534-#: fortran/decl.c:6041
40535+#: fortran/decl.c:6040
40536 #, gcc-internal-format, gfc-internal-format
40537 msgid "Fortran 2008: END statement instead of %s statement at %L"
40538 msgstr "Fortran 2008: Declaración END en lugar de una declaración %s en %L"
40539
40540 #. We would have required END [something].
40541-#: fortran/decl.c:6049
40542+#: fortran/decl.c:6048
40543 #, gcc-internal-format, gfc-internal-format
40544 msgid "%s statement expected at %L"
40545 msgstr "Se esperaba %s en la declaración en %L"
40546
40547-#: fortran/decl.c:6060
40548+#: fortran/decl.c:6059
40549 #, gcc-internal-format, gfc-internal-format
40550 msgid "Expecting %s statement at %C"
40551 msgstr "Se esperaba la declaración %s en %C"
40552
40553-#: fortran/decl.c:6076
40554+#: fortran/decl.c:6075
40555 #, gcc-internal-format, gfc-internal-format
40556 msgid "Expected block name of '%s' in %s statement at %C"
40557 msgstr "Se esperaba el nombre de bloque de '%s' en la declaración %s en %C"
40558
40559-#: fortran/decl.c:6093
40560+#: fortran/decl.c:6092
40561 #, gcc-internal-format, gfc-internal-format
40562 msgid "Expected terminating name at %C"
40563 msgstr "Se esperaba un nombre terminal en %C"
40564
40565-#: fortran/decl.c:6102 fortran/decl.c:6110
40566+#: fortran/decl.c:6101 fortran/decl.c:6109
40567 #, gcc-internal-format, gfc-internal-format
40568 msgid "Expected label '%s' for %s statement at %C"
40569 msgstr "Se esperaba la etiqueta '%s' para la declaración %s en %C"
40570
40571-#: fortran/decl.c:6175
40572+#: fortran/decl.c:6174
40573 #, gcc-internal-format, gfc-internal-format
40574 msgid "Missing array specification at %L in DIMENSION statement"
40575 msgstr "Falta la especificación de matriz en %L en la declaración DIMENSION"
40576
40577-#: fortran/decl.c:6183
40578+#: fortran/decl.c:6182
40579 #, gcc-internal-format, gfc-internal-format
40580 msgid "Dimensions specified for %s at %L after its initialisation"
40581 msgstr "Se especificarion dimensiones para %s en %L después de su inicialización"
40582
40583-#: fortran/decl.c:6191
40584+#: fortran/decl.c:6190
40585 #, gcc-internal-format, gfc-internal-format
40586 msgid "Missing array specification at %L in CODIMENSION statement"
40587 msgstr "Falta la especificación de matriz en %L en la declaración CODIMENSION"
40588
40589-#: fortran/decl.c:6200
40590+#: fortran/decl.c:6199
40591 #, gcc-internal-format, gfc-internal-format
40592 msgid "Array specification must be deferred at %L"
40593 msgstr "La especificación de matriz se debe diferir en %L"
40594
40595-#: fortran/decl.c:6299
40596+#: fortran/decl.c:6298
40597 #, gcc-internal-format, gfc-internal-format
40598 msgid "Unexpected character in variable list at %C"
40599 msgstr "Carácter inesperado en la lista de variables en %C"
40600
40601-#: fortran/decl.c:6336
40602+#: fortran/decl.c:6335
40603 #, gcc-internal-format, gfc-internal-format
40604 msgid "Expected '(' at %C"
40605 msgstr "Se esperaba '(' en %C"
40606
40607-#: fortran/decl.c:6350 fortran/decl.c:6390
40608+#: fortran/decl.c:6349 fortran/decl.c:6389
40609 #, gcc-internal-format, gfc-internal-format
40610 msgid "Expected variable name at %C"
40611 msgstr "se esperaba un nombre variable en %C"
40612
40613-#: fortran/decl.c:6366
40614+#: fortran/decl.c:6365
40615 #, gcc-internal-format, gfc-internal-format
40616 msgid "Cray pointer at %C must be an integer"
40617 msgstr "El puntero Cray en %C debe ser un entero"
40618
40619-#: fortran/decl.c:6370
40620+#: fortran/decl.c:6369
40621 #, gcc-internal-format, gfc-internal-format
40622 msgid "Cray pointer at %C has %d bytes of precision; memory addresses require %d bytes"
40623 msgstr "El puntero Cray en %C tiene %d bytes de precisión; las direcciones de memoria requieren %d bytes"
40624
40625-#: fortran/decl.c:6376
40626+#: fortran/decl.c:6375
40627 #, gcc-internal-format, gfc-internal-format
40628 msgid "Expected \",\" at %C"
40629 msgstr "Se esperaba \",\" en %C"
40630
40631-#: fortran/decl.c:6439
40632+#: fortran/decl.c:6438
40633 #, gcc-internal-format, gfc-internal-format
40634 msgid "Expected \")\" at %C"
40635 msgstr "Se esperaba \")\" en %C"
40636
40637-#: fortran/decl.c:6451
40638+#: fortran/decl.c:6450
40639 #, gcc-internal-format, gfc-internal-format
40640 msgid "Expected \",\" or end of statement at %C"
40641 msgstr "Se esperaba \",\" o el final de la declaración en %C"
40642
40643-#: fortran/decl.c:6477
40644+#: fortran/decl.c:6476
40645 #, gcc-internal-format, gfc-internal-format
40646 msgid "INTENT is not allowed inside of BLOCK at %C"
40647 msgstr "No se permite INTENT dentro de BLOCK en %C"
40648
40649-#: fortran/decl.c:6509
40650+#: fortran/decl.c:6508
40651 #, gcc-internal-format, gfc-internal-format
40652 msgid "OPTIONAL is not allowed inside of BLOCK at %C"
40653 msgstr "No se permite OPTIONAL dentro de BLOCK en %C"
40654
40655-#: fortran/decl.c:6528
40656+#: fortran/decl.c:6527
40657 #, gcc-internal-format, gfc-internal-format
40658 msgid "Cray pointer declaration at %C requires -fcray-pointer flag"
40659 msgstr "La declaración de punteros Cray en %C requiere la opción -fcray-pointer"
40660
40661-#: fortran/decl.c:6567
40662+#: fortran/decl.c:6566
40663 #, gcc-internal-format, gfc-internal-format
40664 msgid "Fortran 2008: CONTIGUOUS statement at %C"
40665 msgstr "Fortran 2008: Declaración CONTIGUOUS en %C"
40666
40667-#: fortran/decl.c:6665
40668+#: fortran/decl.c:6664
40669 #, gcc-internal-format, gfc-internal-format
40670 msgid "Access specification of the %s operator at %C has already been specified"
40671 msgstr "La especificación de acceso del operador %s en %C ya se había especificado"
40672
40673-#: fortran/decl.c:6682
40674+#: fortran/decl.c:6681
40675 #, gcc-internal-format, gfc-internal-format
40676 msgid "Access specification of the .%s. operator at %C has already been specified"
40677 msgstr "La especificación de acceso del operador .%s. en %C ya se había especificado"
40678
40679-#: fortran/decl.c:6720
40680+#: fortran/decl.c:6719
40681 #, gcc-internal-format, gfc-internal-format
40682 msgid "Fortran 2003: PROTECTED statement at %C"
40683 msgstr "Fortran 2003: Declaración PROTECTED en %C"
40684
40685-#: fortran/decl.c:6760
40686+#: fortran/decl.c:6759
40687 #, gcc-internal-format, gfc-internal-format
40688 msgid "Syntax error in PROTECTED statement at %C"
40689 msgstr "Error sintáctico en la declaración PROTECTED en %C"
40690
40691-#: fortran/decl.c:6784
40692+#: fortran/decl.c:6783
40693 #, gcc-internal-format, gfc-internal-format
40694 msgid "PRIVATE statement at %C is only allowed in the specification part of a module"
40695 msgstr "Sólo se permite la declaración PRIVATE en %C en la parte de especificación de un módulo"
40696
40697-#: fortran/decl.c:6821
40698+#: fortran/decl.c:6820
40699 #, gcc-internal-format, gfc-internal-format
40700 msgid "PUBLIC statement at %C is only allowed in the specification part of a module"
40701 msgstr "Sólo se permite la declaración PRIVATE en %C en la parte de especificación de un módulo"
40702
40703-#: fortran/decl.c:6849
40704+#: fortran/decl.c:6848
40705 #, gcc-internal-format, gfc-internal-format
40706 msgid "Expected variable name at %C in PARAMETER statement"
40707 msgstr "Se esperaba un nombre de variable en %C en la declaración PARAMETER"
40708
40709-#: fortran/decl.c:6856
40710+#: fortran/decl.c:6855
40711 #, gcc-internal-format, gfc-internal-format
40712 msgid "Expected = sign in PARAMETER statement at %C"
40713 msgstr "Se esperaba un signo = en la declaración PARAMETER en %C"
40714
40715-#: fortran/decl.c:6862
40716+#: fortran/decl.c:6861
40717 #, gcc-internal-format, gfc-internal-format
40718 msgid "Expected expression at %C in PARAMETER statement"
40719 msgstr "Se esperaba una expresión en %C en la declaración PARAMETER"
40720
40721-#: fortran/decl.c:6882
40722+#: fortran/decl.c:6881
40723 #, gcc-internal-format, gfc-internal-format
40724 msgid "Initializing already initialized variable at %C"
40725 msgstr "Se inicializa una variable ya inicializada en %C"
40726
40727-#: fortran/decl.c:6917
40728+#: fortran/decl.c:6916
40729 #, gcc-internal-format, gfc-internal-format
40730 msgid "Unexpected characters in PARAMETER statement at %C"
40731 msgstr "Caracteres inesperados en la declaración PARAMETER en %C"
40732
40733-#: fortran/decl.c:6941
40734+#: fortran/decl.c:6940
40735 #, gcc-internal-format, gfc-internal-format
40736 msgid "Blanket SAVE statement at %C follows previous SAVE statement"
40737 msgstr "Declaración SAVE incondicional en %C después de una declaración SAVE previa"
40738
40739-#: fortran/decl.c:6953
40740+#: fortran/decl.c:6952
40741 #, gcc-internal-format, gfc-internal-format
40742 msgid "SAVE statement at %C follows blanket SAVE statement"
40743 msgstr "Declaración SAVE en %C después de una declaración SAVE incondicional"
40744
40745-#: fortran/decl.c:7000
40746+#: fortran/decl.c:6999
40747 #, gcc-internal-format, gfc-internal-format
40748 msgid "Syntax error in SAVE statement at %C"
40749 msgstr "Error sintáctico en la declaración SAVE en %C"
40750
40751-#: fortran/decl.c:7014
40752+#: fortran/decl.c:7013
40753 #, gcc-internal-format, gfc-internal-format
40754 msgid "VALUE is not allowed inside of BLOCK at %C"
40755 msgstr "No se permite VALUE dentro de BLOCK en %C"
40756
40757-#: fortran/decl.c:7018
40758+#: fortran/decl.c:7017
40759 #, gcc-internal-format, gfc-internal-format
40760 msgid "Fortran 2003: VALUE statement at %C"
40761 msgstr "Fortran 2003: Declaración VALUE en %C"
40762
40763-#: fortran/decl.c:7058
40764+#: fortran/decl.c:7057
40765 #, gcc-internal-format, gfc-internal-format
40766 msgid "Syntax error in VALUE statement at %C"
40767 msgstr "Error sintáctico en la declaración VALUE en %C"
40768
40769-#: fortran/decl.c:7069
40770+#: fortran/decl.c:7068
40771 #, gcc-internal-format, gfc-internal-format
40772 msgid "Fortran 2003: VOLATILE statement at %C"
40773 msgstr "Fortran 2003: Declaración VOLATILE en %C"
40774
40775-#: fortran/decl.c:7093
40776+#: fortran/decl.c:7092
40777 #, gcc-internal-format, gfc-internal-format
40778 msgid "Specifying VOLATILE for coarray variable '%s' at %C, which is use-/host-associated"
40779 msgstr "Se especifica VOLATILE para la variable de comatriz '%s' en %C, la cual es asociada a uso/anfitrión"
40780
40781-#: fortran/decl.c:7119
40782+#: fortran/decl.c:7118
40783 #, gcc-internal-format, gfc-internal-format
40784 msgid "Syntax error in VOLATILE statement at %C"
40785 msgstr "Error sintáctico en la declaración VOLATILE en %C"
40786
40787-#: fortran/decl.c:7130
40788+#: fortran/decl.c:7129
40789 #, gcc-internal-format, gfc-internal-format
40790 msgid "Fortran 2003: ASYNCHRONOUS statement at %C"
40791 msgstr "Fortran 2003: Declaración ASYNCHRONOUS en %C"
40792
40793-#: fortran/decl.c:7172
40794+#: fortran/decl.c:7171
40795 #, gcc-internal-format, gfc-internal-format
40796 msgid "Syntax error in ASYNCHRONOUS statement at %C"
40797 msgstr "Error sintáctico en la declaración ASYNCHRONOUS en %C"
40798
40799-#: fortran/decl.c:7196
40800+#: fortran/decl.c:7195
40801 #, gcc-internal-format, gfc-internal-format
40802 msgid "MODULE PROCEDURE at %C must be in a generic module interface"
40803 msgstr "MODULE PROCEDURE en %C debe estar en una interfaz genérica de módulo"
40804
40805-#: fortran/decl.c:7221
40806+#: fortran/decl.c:7220
40807 #, gcc-internal-format, gfc-internal-format
40808 msgid "Fortran 2008: double colon in MODULE PROCEDURE statement at %L"
40809 msgstr "Fortran 2008: dos puntos dobles en la declaración MODULE PROCEDURE en %L"
40810
40811-#: fortran/decl.c:7255
40812+#: fortran/decl.c:7254
40813 #, gcc-internal-format, gfc-internal-format
40814 msgid "Intrinsic procedure at %L cannot be a MODULE PROCEDURE"
40815 msgstr "El procedimiento intrínseco en %L no puede ser un MODULE PROCEDURE"
40816
40817-#: fortran/decl.c:7304
40818+#: fortran/decl.c:7303
40819 #, gcc-internal-format, gfc-internal-format
40820 msgid "Ambiguous symbol in TYPE definition at %C"
40821 msgstr "Símbolo ambiguo en la definición TYPE en %C"
40822
40823-#: fortran/decl.c:7310
40824+#: fortran/decl.c:7309
40825 #, gcc-internal-format, gfc-internal-format
40826 msgid "No such symbol in TYPE definition at %C"
40827 msgstr "No existe ese símbolo en la definición TYPE en %C"
40828
40829-#: fortran/decl.c:7318
40830+#: fortran/decl.c:7317
40831 #, gcc-internal-format, gfc-internal-format
40832 msgid "'%s' in EXTENDS expression at %C is not a derived type"
40833 msgstr "'%s' en la expresión EXTENDS en %C no es un tipo derivado"
40834
40835-#: fortran/decl.c:7325
40836+#: fortran/decl.c:7324
40837 #, gcc-internal-format, gfc-internal-format
40838 msgid "'%s' cannot be extended at %C because it is BIND(C)"
40839 msgstr "'%s' no se puede extender en %C porque es BIND(C)"
40840
40841-#: fortran/decl.c:7332
40842+#: fortran/decl.c:7331
40843 #, gcc-internal-format, gfc-internal-format
40844 msgid "'%s' cannot be extended at %C because it is a SEQUENCE type"
40845 msgstr "'%s' no se puede extender en %C porque es un tipo SEQUENCE"
40846
40847-#: fortran/decl.c:7355
40848+#: fortran/decl.c:7354
40849 #, gcc-internal-format, gfc-internal-format
40850 msgid "Derived type at %C can only be PRIVATE in the specification part of a module"
40851 msgstr "El tipo derivado en %C sólo puede ser PRIVATE en la parte de especificación de un módulo"
40852
40853-#: fortran/decl.c:7367
40854+#: fortran/decl.c:7366
40855 #, gcc-internal-format, gfc-internal-format
40856 msgid "Derived type at %C can only be PUBLIC in the specification part of a module"
40857 msgstr "El tipo derivado en %C sólo puede ser PUBLIC en la parte de especificación de un módulo"
40858
40859-#: fortran/decl.c:7388
40860+#: fortran/decl.c:7387
40861 #, gcc-internal-format, gfc-internal-format
40862 msgid "Fortran 2003: ABSTRACT type at %C"
40863 msgstr "Fortran 2003: Tipo ABSTRACT en %C"
40864
40865-#: fortran/decl.c:7453
40866+#: fortran/decl.c:7452
40867 #, gcc-internal-format, gfc-internal-format
40868 msgid "Expected :: in TYPE definition at %C"
40869 msgstr "Se esperaba :: en la definición TYPE en %C"
40870
40871-#: fortran/decl.c:7464
40872+#: fortran/decl.c:7463
40873 #, gcc-internal-format, gfc-internal-format
40874 msgid "Type name '%s' at %C cannot be the same as an intrinsic type"
40875 msgstr "El nombre de tipo '%s' en %C no puede ser el mismo que un tipo intrínseco"
40876
40877-#: fortran/decl.c:7474
40878+#: fortran/decl.c:7473
40879 #, gcc-internal-format, gfc-internal-format
40880 msgid "Derived type name '%s' at %C already has a basic type of %s"
40881 msgstr "El nombre de tipo derivado '%s' en %C ya tiene un tipo básico de %s"
40882
40883-#: fortran/decl.c:7491
40884+#: fortran/decl.c:7490
40885 #, gcc-internal-format, gfc-internal-format
40886 msgid "Derived type definition of '%s' at %C has already been defined"
40887 msgstr "La definición del tipo derivado de '%s' en %C ya se había definido"
40888
40889-#: fortran/decl.c:7599
40890+#: fortran/decl.c:7598
40891 #, gcc-internal-format, gfc-internal-format
40892 msgid "Cray Pointee at %C cannot be assumed shape array"
40893 msgstr "El Apuntado Cray en %C no puede ser una matriz de forma asumida"
40894
40895-#: fortran/decl.c:7619
40896+#: fortran/decl.c:7618
40897 #, gcc-internal-format, gfc-internal-format
40898 msgid "Fortran 2003: ENUM and ENUMERATOR at %C"
40899 msgstr "Fortran 2003: ENUM y ENUMERATOR en %C"
40900
40901-#: fortran/decl.c:7652
40902+#: fortran/decl.c:7651
40903 #, gcc-internal-format, gfc-internal-format
40904 msgid "Enumerator exceeds the C integer type at %C"
40905 msgstr "El enumerador excede el tipo entero de C en %C"
40906
40907-#: fortran/decl.c:7731
40908+#: fortran/decl.c:7730
40909 #, gcc-internal-format, gfc-internal-format
40910 msgid "ENUMERATOR %L not initialized with integer expression"
40911 msgstr "ENUMERATOR %L no se inicializó con una expresión entera"
40912
40913-#: fortran/decl.c:7779
40914+#: fortran/decl.c:7778
40915 #, gcc-internal-format, gfc-internal-format
40916 msgid "ENUM definition statement expected before %C"
40917 msgstr "Se esperaba una declaración de definición ENUM antes de %C"
40918
40919-#: fortran/decl.c:7815
40920+#: fortran/decl.c:7814
40921 #, gcc-internal-format, gfc-internal-format
40922 msgid "Syntax error in ENUMERATOR definition at %C"
40923 msgstr "Error sintáctico en la definición ENUMERATOR en %C"
40924
40925-#: fortran/decl.c:7862 fortran/decl.c:7877
40926+#: fortran/decl.c:7861 fortran/decl.c:7876
40927 #, gcc-internal-format, gfc-internal-format
40928 msgid "Duplicate access-specifier at %C"
40929 msgstr "Especificador de acceso duplicado en %C"
40930
40931-#: fortran/decl.c:7897
40932+#: fortran/decl.c:7896
40933 #, gcc-internal-format, gfc-internal-format
40934 msgid "Binding attributes already specify passing, illegal NOPASS at %C"
40935 msgstr "Los atributos de enlace ya especifican paso, NOPASS ilegal en %C"
40936
40937-#: fortran/decl.c:7917
40938+#: fortran/decl.c:7916
40939 #, gcc-internal-format, gfc-internal-format
40940 msgid "Binding attributes already specify passing, illegal PASS at %C"
40941 msgstr "Los atributos de enlace ya especifican paso, PASS ilegal en %C"
40942
40943-#: fortran/decl.c:7944
40944+#: fortran/decl.c:7943
40945 #, gcc-internal-format, gfc-internal-format
40946 msgid "Duplicate POINTER attribute at %C"
40947 msgstr "Atributo POINTER duplicado en %C"
40948
40949-#: fortran/decl.c:7962
40950+#: fortran/decl.c:7961
40951 #, gcc-internal-format, gfc-internal-format
40952 msgid "Duplicate NON_OVERRIDABLE at %C"
40953 msgstr "NON_OVERRIDABLE duplicado en %C"
40954
40955-#: fortran/decl.c:7978
40956+#: fortran/decl.c:7977
40957 #, gcc-internal-format, gfc-internal-format
40958 msgid "Duplicate DEFERRED at %C"
40959 msgstr "DEFERRED duplicado en %C"
40960
40961-#: fortran/decl.c:7991
40962+#: fortran/decl.c:7990
40963 #, gcc-internal-format, gfc-internal-format
40964 msgid "Expected access-specifier at %C"
40965 msgstr "Se esperaba un especificador de acceso en %C"
40966
40967-#: fortran/decl.c:7993
40968+#: fortran/decl.c:7992
40969 #, gcc-internal-format, gfc-internal-format
40970 msgid "Expected binding attribute at %C"
40971 msgstr "Se esperaba un atributo de enlace en %C"
40972
40973-#: fortran/decl.c:8001
40974+#: fortran/decl.c:8000
40975 #, gcc-internal-format, gfc-internal-format
40976 msgid "NON_OVERRIDABLE and DEFERRED can't both appear at %C"
40977 msgstr "No pueden aparecer NON_OVERRIDABLE y DEFERRED al mismo tiempo en %C"
40978
40979-#: fortran/decl.c:8013
40980+#: fortran/decl.c:8012
40981 #, gcc-internal-format, gfc-internal-format
40982 msgid "POINTER attribute is required for procedure pointer component at %C"
40983 msgstr "Se requiere el atributo POINTER para el procedimiento de componente puntero en %C"
40984
40985-#: fortran/decl.c:8055
40986+#: fortran/decl.c:8054
40987 #, gcc-internal-format, gfc-internal-format
40988 msgid "Interface-name expected after '(' at %C"
40989 msgstr "Se esperaba un nombre de interfaz después de '(' en %C"
40990
40991-#: fortran/decl.c:8061
40992+#: fortran/decl.c:8060
40993 #, gcc-internal-format, gfc-internal-format
40994 msgid "')' expected at %C"
40995 msgstr "Se esperaba ')' en %C"
40996
40997-#: fortran/decl.c:8081
40998+#: fortran/decl.c:8080
40999 #, gcc-internal-format, gfc-internal-format
41000 msgid "Interface must be specified for DEFERRED binding at %C"
41001 msgstr "Se debe especificar una interfaz para el enlace DEFERRED en %C"
41002
41003-#: fortran/decl.c:8086
41004+#: fortran/decl.c:8085
41005 #, gcc-internal-format, gfc-internal-format
41006 msgid "PROCEDURE(interface) at %C should be declared DEFERRED"
41007 msgstr "PROCEDURE(interface) en %C se debe declarar DEFERRED"
41008
41009-#: fortran/decl.c:8109
41010+#: fortran/decl.c:8108
41011 #, gcc-internal-format, gfc-internal-format
41012 msgid "Expected binding name at %C"
41013 msgstr "Se esperaba un nombre de enlace en %C"
41014
41015-#: fortran/decl.c:8113
41016+#: fortran/decl.c:8112
41017 #, gcc-internal-format, gfc-internal-format
41018 msgid "Fortran 2008: PROCEDURE list at %C"
41019 msgstr "Fortran 2008: Lista PROCEDURE en %C"
41020
41021-#: fortran/decl.c:8126
41022+#: fortran/decl.c:8125
41023 #, gcc-internal-format, gfc-internal-format
41024 msgid "'=> target' is invalid for DEFERRED binding at %C"
41025 msgstr "'=> objetivo' es inválido para el enlace DEFERRED en %C"
41026
41027-#: fortran/decl.c:8132
41028+#: fortran/decl.c:8131
41029 #, gcc-internal-format, gfc-internal-format
41030 msgid "'::' needed in PROCEDURE binding with explicit target at %C"
41031 msgstr "Se necesita '::' en el enlace PROCEDURE con objetivo explícito en %C"
41032
41033-#: fortran/decl.c:8142
41034+#: fortran/decl.c:8141
41035 #, gcc-internal-format, gfc-internal-format
41036 msgid "Expected binding target after '=>' at %C"
41037 msgstr "Se esperaba un objetivo de enlace después de '=>' en %C"
41038
41039-#: fortran/decl.c:8159
41040+#: fortran/decl.c:8158
41041 #, gcc-internal-format, gfc-internal-format
41042 msgid "Type '%s' containing DEFERRED binding at %C is not ABSTRACT"
41043 msgstr "El tipo '%s' que contiene el enlace DEFERRED en %C no es ABSTRACT"
41044
41045-#: fortran/decl.c:8170
41046+#: fortran/decl.c:8169
41047 #, gcc-internal-format, gfc-internal-format
41048 msgid "There is already a procedure with binding name '%s' for the derived type '%s' at %C"
41049 msgstr "Ya existe un procedimiento con nombre de enlazado '%s' para el tipo derivado '%s' en %C"
41050
41051-#: fortran/decl.c:8219
41052+#: fortran/decl.c:8218
41053 #, gcc-internal-format, gfc-internal-format
41054 msgid "GENERIC at %C must be inside a derived-type CONTAINS"
41055 msgstr "GENERIC en %C debe estar dentro de un tipo derivado CONTAINS"
41056
41057-#: fortran/decl.c:8239
41058+#: fortran/decl.c:8238
41059 #, gcc-internal-format, gfc-internal-format
41060 msgid "Expected '::' at %C"
41061 msgstr "Se esperaba '::' en %C"
41062
41063-#: fortran/decl.c:8251
41064+#: fortran/decl.c:8250
41065 #, gcc-internal-format, gfc-internal-format
41066 msgid "Expected generic name or operator descriptor at %C"
41067 msgstr "Se esperaba un nombre genérico o un descriptor de operador en %C"
41068
41069-#: fortran/decl.c:8277
41070+#: fortran/decl.c:8276
41071 #, gcc-internal-format, gfc-internal-format
41072 msgid "Expected '=>' at %C"
41073 msgstr "Se esperaba '=>' en %C"
41074
41075-#: fortran/decl.c:8319
41076+#: fortran/decl.c:8318
41077 #, gcc-internal-format, gfc-internal-format
41078 msgid "There's already a non-generic procedure with binding name '%s' for the derived type '%s' at %C"
41079 msgstr "Ya existe un procedimiento que no es genérico con el nombre de enlace '%s' para el tipo derivado '%s' en %C"
41080
41081-#: fortran/decl.c:8327
41082+#: fortran/decl.c:8326
41083 #, gcc-internal-format, gfc-internal-format
41084 msgid "Binding at %C must have the same access as already defined binding '%s'"
41085 msgstr "El enlace en %C debe tener el mismo acceso que el enlace '%s' que ya está definido"
41086
41087-#: fortran/decl.c:8376
41088+#: fortran/decl.c:8375
41089 #, gcc-internal-format, gfc-internal-format
41090 msgid "Expected specific binding name at %C"
41091 msgstr "Se esperaba un nombre de enlace específico en %C"
41092
41093-#: fortran/decl.c:8386
41094+#: fortran/decl.c:8385
41095 #, gcc-internal-format, gfc-internal-format
41096 msgid "'%s' already defined as specific binding for the generic '%s' at %C"
41097 msgstr "Ya se definió '%s' como un enlace específico para el genérico '%s' en %C"
41098
41099-#: fortran/decl.c:8402
41100+#: fortran/decl.c:8403
41101 #, gcc-internal-format, gfc-internal-format
41102 msgid "Junk after GENERIC binding at %C"
41103 msgstr "Basura después del enlace GENERIC en %C"
41104
41105-#: fortran/decl.c:8437
41106+#: fortran/decl.c:8438
41107 #, gcc-internal-format, gfc-internal-format
41108 msgid "FINAL declaration at %C must be inside a derived type CONTAINS section"
41109 msgstr "La declaración FINAL en %C debe estar dentro de una sección de tipo derivado CONTAINS"
41110
41111-#: fortran/decl.c:8448
41112+#: fortran/decl.c:8449
41113 #, gcc-internal-format, gfc-internal-format
41114 msgid "Derived type declaration with FINAL at %C must be in the specification part of a MODULE"
41115 msgstr "La declaración de tipo derivado con FINAL en %C debe estar en la parte de especificación de un MODULE"
41116
41117-#: fortran/decl.c:8470
41118+#: fortran/decl.c:8471
41119 #, gcc-internal-format, gfc-internal-format
41120 msgid "Empty FINAL at %C"
41121 msgstr "FINAL vacío en %C"
41122
41123-#: fortran/decl.c:8477
41124+#: fortran/decl.c:8478
41125 #, gcc-internal-format, gfc-internal-format
41126 msgid "Expected module procedure name at %C"
41127 msgstr "Se esperaba un nombre de procedimiento de módulo en %C"
41128
41129-#: fortran/decl.c:8487
41130+#: fortran/decl.c:8488
41131 #, gcc-internal-format, gfc-internal-format
41132 msgid "Expected ',' at %C"
41133 msgstr "Se esperaba ',' en %C"
41134
41135-#: fortran/decl.c:8493
41136+#: fortran/decl.c:8494
41137 #, gcc-internal-format, gfc-internal-format
41138 msgid "Unknown procedure name \"%s\" at %C"
41139 msgstr "Nombre de procedimiento \"%s\" desconocido en %C"
41140
41141-#: fortran/decl.c:8507
41142+#: fortran/decl.c:8508
41143 #, gcc-internal-format, gfc-internal-format
41144 msgid "'%s' at %C is already defined as FINAL procedure!"
41145 msgstr "¡'%s' en %C ya se había definido como un procedimiento FINAL!"
41146
41147-#: fortran/decl.c:8576
41148+#: fortran/decl.c:8577
41149 #, gcc-internal-format, gfc-internal-format
41150 msgid "Unknown attribute in !GCC$ ATTRIBUTES statement at %C"
41151 msgstr "Atributo desconocido en la declaración !GCC$ ATTRIBUTES en %C"
41152
41153-#: fortran/decl.c:8623
41154+#: fortran/decl.c:8624
41155 #, gcc-internal-format, gfc-internal-format
41156 msgid "Syntax error in !GCC$ ATTRIBUTES statement at %C"
41157 msgstr "Error sintáctico en la declaración !GCC$ ATTRIBUTES en %C"
41158@@ -36998,27 +37209,27 @@
41159 msgid "Extension: BOZ literal at %L used to initialize non-integer variable '%s'"
41160 msgstr "Extensión: se usa la literal BOZ en %L para inicializar la variable '%s' que no es entera"
41161
41162-#: fortran/expr.c:3177 fortran/resolve.c:9109
41163+#: fortran/expr.c:3177 fortran/resolve.c:9096
41164 #, gcc-internal-format, gfc-internal-format
41165 msgid "Extension: BOZ literal at %L outside a DATA statement and outside INT/REAL/DBLE/CMPLX"
41166 msgstr "Extensión: la literal BOZ en %L está fuera de una declaración DATA y fuera de INT/REAL/DBLE/CMPLX"
41167
41168-#: fortran/expr.c:3187 fortran/resolve.c:9119
41169+#: fortran/expr.c:3187 fortran/resolve.c:9106
41170 #, gcc-internal-format, gfc-internal-format
41171 msgid "BOZ literal at %L is bitwise transferred non-integer symbol '%s'"
41172 msgstr "La literal BOZ en %L se transfiere por bits al símbolo '%s' que no es entero"
41173
41174-#: fortran/expr.c:3195 fortran/resolve.c:9128
41175+#: fortran/expr.c:3195 fortran/resolve.c:9115
41176 #, gcc-internal-format, gfc-internal-format
41177 msgid "Arithmetic underflow of bit-wise transferred BOZ at %L. This check can be disabled with the option -fno-range-check"
41178 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"
41179
41180-#: fortran/expr.c:3199 fortran/resolve.c:9132
41181+#: fortran/expr.c:3199 fortran/resolve.c:9119
41182 #, gcc-internal-format, gfc-internal-format
41183 msgid "Arithmetic overflow of bit-wise transferred BOZ at %L. This check can be disabled with the option -fno-range-check"
41184 msgstr "Desborde aritmético del BOZ transferido por bits en %L. Esta revisión se puede desactivar con la opción -fno-range-check"
41185
41186-#: fortran/expr.c:3203 fortran/resolve.c:9136
41187+#: fortran/expr.c:3203 fortran/resolve.c:9123
41188 #, gcc-internal-format, gfc-internal-format
41189 msgid "Arithmetic NaN of bit-wise transferred BOZ at %L. This check can be disabled with the option -fno-range-check"
41190 msgstr "NaN aritmético del BOZ transferido por bits en %L. Esta revisión se puede desactivar con la opción -fno-range-check"
41191@@ -37198,72 +37409,72 @@
41192 msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
41193 msgstr "El objetivo de inicialización de puntero a procedimiento en %L tal vez no es un puntero a procedimiento"
41194
41195-#: fortran/expr.c:4587
41196+#: fortran/expr.c:4593
41197 #, gcc-internal-format, gfc-internal-format
41198 msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L"
41199 msgstr "Fortran 2008: Funciones puntero en un contexto de definición variable (%s) en %L"
41200
41201-#: fortran/expr.c:4595
41202+#: fortran/expr.c:4601
41203 #, gcc-internal-format, gfc-internal-format
41204 msgid "Non-variable expression in variable definition context (%s) at %L"
41205 msgstr "Expresión que no es variable en el contexto de definición variable (%s) en %L"
41206
41207-#: fortran/expr.c:4603
41208+#: fortran/expr.c:4609
41209 #, gcc-internal-format, gfc-internal-format
41210 msgid "Named constant '%s' in variable definition context (%s) at %L"
41211 msgstr "Constante nombrada '%s' en el contexto de definición variable (%s) en %L"
41212
41213-#: fortran/expr.c:4612
41214+#: fortran/expr.c:4618
41215 #, gcc-internal-format, gfc-internal-format
41216 msgid "'%s' in variable definition context (%s) at %L is not a variable"
41217 msgstr "'%s' en el contexto de definición variable (%s) en %L no es una variable"
41218
41219-#: fortran/expr.c:4623
41220+#: fortran/expr.c:4629
41221 #, gcc-internal-format, gfc-internal-format
41222 msgid "Non-POINTER in pointer association context (%s) at %L"
41223 msgstr "Uno que no es POINTER en el contexto de asociación de puntero (%s) en %L"
41224
41225-#: fortran/expr.c:4636
41226+#: fortran/expr.c:4642
41227 #, gcc-internal-format, gfc-internal-format
41228 msgid "LOCK_TYPE in variable definition context (%s) at %L"
41229 msgstr "LOCK_TYPE en el contexto de definición variable (%s) en %L"
41230
41231-#: fortran/expr.c:4658
41232+#: fortran/expr.c:4664
41233 #, gcc-internal-format, gfc-internal-format
41234 msgid "Dummy argument '%s' with INTENT(IN) in pointer association context (%s) at %L"
41235 msgstr "Argumento dummy '%s' con INTENT(IN) en el contexto de asociación de puntero (%s) en %L"
41236
41237-#: fortran/expr.c:4666
41238+#: fortran/expr.c:4672
41239 #, gcc-internal-format, gfc-internal-format
41240 msgid "Dummy argument '%s' with INTENT(IN) in variable definition context (%s) at %L"
41241 msgstr "Argumento dummy '%s' con INTENT(IN) en el contexto de definición de variable (%s) en %L"
41242
41243-#: fortran/expr.c:4679
41244+#: fortran/expr.c:4685
41245 #, gcc-internal-format, gfc-internal-format
41246 msgid "Variable '%s' is PROTECTED and can not appear in a pointer association context (%s) at %L"
41247 msgstr "La variable '%s' es PROTECTED y no puede aparecer en un contexto de asociación de puntero (%s) en %L"
41248
41249-#: fortran/expr.c:4687
41250+#: fortran/expr.c:4693
41251 #, gcc-internal-format, gfc-internal-format
41252 msgid "Variable '%s' is PROTECTED and can not appear in a variable definition context (%s) at %L"
41253 msgstr "La variable '%s' es PROTECTED y no puede aparecer en un contexto de definición variable (%s) en %L"
41254
41255-#: fortran/expr.c:4699
41256+#: fortran/expr.c:4705
41257 #, gcc-internal-format, gfc-internal-format
41258 msgid "Variable '%s' can not appear in a variable definition context (%s) at %L in PURE procedure"
41259 msgstr "La variable '%s' no puede aparecer en un contexto de definición variable (%s) en %L en el procedimiento PURE"
41260
41261-#: fortran/expr.c:4758
41262+#: fortran/expr.c:4764
41263 #, gcc-internal-format, gfc-internal-format
41264 msgid "'%s' at %L associated to vector-indexed target can not be used in a variable definition context (%s)"
41265 msgstr "No se puede usar '%s' en %L asociado al objetivo con índice vectorial en un contexto de definición variable (%s)"
41266
41267-#: fortran/expr.c:4762
41268+#: fortran/expr.c:4768
41269 #, gcc-internal-format, gfc-internal-format
41270 msgid "'%s' at %L associated to expression can not be used in a variable definition context (%s)"
41271 msgstr "No se puede usar '%s' en %L asociado a una expresión en un contexto de definición variable (%s)"
41272
41273-#: fortran/expr.c:4774
41274+#: fortran/expr.c:4780
41275 #, gcc-internal-format, gfc-internal-format
41276 msgid "Associate-name '%s' can not appear in a variable definition context (%s) at %L because its target at %L can not, either"
41277 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"
41278@@ -37279,7 +37490,7 @@
41279 msgstr "no se puede abrir el fichero de entrada: %s"
41280
41281 #: fortran/frontend-passes.c:334 fortran/trans-array.c:1024
41282-#: fortran/trans-array.c:5756 fortran/trans-array.c:7002
41283+#: fortran/trans-array.c:5755 fortran/trans-array.c:7001
41284 #: fortran/trans-intrinsic.c:5422
41285 #, gcc-internal-format, gfc-internal-format
41286 msgid "Creating array temporary at %L"
41287@@ -37395,12 +37606,12 @@
41288 msgid "Second argument of defined assignment at %L must be INTENT(IN)"
41289 msgstr "El segundo argumento de la asignación definida en %L debe ser INTENT(IN)"
41290
41291-#: fortran/interface.c:705 fortran/resolve.c:13770
41292+#: fortran/interface.c:705 fortran/resolve.c:13758
41293 #, gcc-internal-format, gfc-internal-format
41294 msgid "First argument of operator interface at %L must be INTENT(IN)"
41295 msgstr "El primer argumento de la interfaz de operador en %L debe ser INTENT(IN)"
41296
41297-#: fortran/interface.c:712 fortran/resolve.c:13788
41298+#: fortran/interface.c:712 fortran/resolve.c:13776
41299 #, gcc-internal-format, gfc-internal-format
41300 msgid "Second argument of operator interface at %L must be INTENT(IN)"
41301 msgstr "El segundo argumento de la interfaz de operador en %L debe ser INTENT(IN)"
41302@@ -37430,447 +37641,447 @@
41303 msgid "In %s at %L procedures must be all FUNCTIONs as the generic name is also the name of a derived type"
41304 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"
41305
41306-#: fortran/interface.c:1296
41307+#: fortran/interface.c:1297
41308 #, gcc-internal-format, gfc-internal-format
41309-msgid "Extension: Internal procedure '%s' in %s at %L"
41310-msgstr "Extensión: Procedimiento interno '%s' en %s en %L"
41311+msgid "Fortran 2008: Internal procedure '%s' in %s at %L"
41312+msgstr "Fortran 2008: Procedimiento interno '%s' en %s en %L"
41313
41314-#: fortran/interface.c:1353 fortran/interface.c:1357
41315+#: fortran/interface.c:1354 fortran/interface.c:1358
41316 #, gcc-internal-format, gfc-internal-format
41317 msgid "Ambiguous interfaces '%s' and '%s' in %s at %L"
41318 msgstr "Las interfaces '%s' y '%s' son ambiguas en %s en %L"
41319
41320-#: fortran/interface.c:1361
41321+#: fortran/interface.c:1362
41322 #, gcc-internal-format, gfc-internal-format
41323 msgid "Although not referenced, '%s' has ambiguous interfaces at %L"
41324 msgstr "Aunque no esté referenciado, '%s' tiene interfaces ambiguas en %L"
41325
41326-#: fortran/interface.c:1395
41327+#: fortran/interface.c:1396
41328 #, gcc-internal-format, gfc-internal-format
41329 msgid "'%s' at %L is not a module procedure"
41330 msgstr "'%s' en %L no es un procedimiento de módulo"
41331
41332-#: fortran/interface.c:1605
41333+#: fortran/interface.c:1606
41334 #, gcc-internal-format, gfc-internal-format
41335 msgid "Rank mismatch in argument '%s' at %L (scalar and rank-%d)"
41336 msgstr "No coincide el rango en el argumento '%s' en %L (escalar y rango %d)"
41337
41338-#: fortran/interface.c:1610
41339+#: fortran/interface.c:1611
41340 #, gcc-internal-format, gfc-internal-format
41341 msgid "Rank mismatch in argument '%s' at %L (rank-%d and scalar)"
41342 msgstr "No coincide el rango en el argumento '%s' en %L (rango %d y escalar)"
41343
41344-#: fortran/interface.c:1615
41345+#: fortran/interface.c:1616
41346 #, gcc-internal-format, gfc-internal-format
41347 msgid "Rank mismatch in argument '%s' at %L (rank-%d and rank-%d)"
41348 msgstr "No coincide el rango en el argumento '%s' en %L (rango %d y rango %d)"
41349
41350-#: fortran/interface.c:1657
41351+#: fortran/interface.c:1658
41352 #, gcc-internal-format, gfc-internal-format
41353 msgid "Invalid procedure argument at %L"
41354 msgstr "Argumento de procedimiento inválido en %L"
41355
41356-#: fortran/interface.c:1665
41357+#: fortran/interface.c:1666
41358 #, gcc-internal-format, gfc-internal-format
41359 msgid "Interface mismatch in dummy procedure '%s' at %L: %s"
41360 msgstr "La interfaz no coincide en el procedimiento dummy '%s' en %L: %s"
41361
41362-#: fortran/interface.c:1690
41363+#: fortran/interface.c:1691
41364 #, gcc-internal-format, gfc-internal-format
41365 msgid "Actual argument to contiguous pointer dummy '%s' at %L must be simply contigous"
41366 msgstr "El argumento actual para el puntero dummy contiguo '%s' en %L debe ser simplemente contiguo"
41367
41368-#: fortran/interface.c:1703
41369+#: fortran/interface.c:1704
41370 #, gcc-internal-format, gfc-internal-format
41371 msgid "Type mismatch in argument '%s' at %L; passed %s to %s"
41372 msgstr "No coincide el tipo en el argumento '%s' en %L; se pasa %s a %s"
41373
41374-#: fortran/interface.c:1717
41375+#: fortran/interface.c:1718
41376 #, gcc-internal-format, gfc-internal-format
41377 msgid "Actual argument to '%s' at %L must be polymorphic"
41378 msgstr "El argumento actual para '%s' en %L debe ser polimórfico"
41379
41380-#: fortran/interface.c:1725
41381+#: fortran/interface.c:1726
41382 #, gcc-internal-format, gfc-internal-format
41383 msgid "Actual argument to '%s' at %L must have the same declared type"
41384 msgstr "El argumento actual para '%s' en %L debe tener el mismo tipo declarado"
41385
41386-#: fortran/interface.c:1734
41387+#: fortran/interface.c:1735
41388 #, gcc-internal-format, gfc-internal-format
41389 msgid "Actual argument to '%s' at %L must be a coarray"
41390 msgstr "El argumento actual para '%s' en %L debe ser una comatriz"
41391
41392-#: fortran/interface.c:1753
41393+#: fortran/interface.c:1754
41394 #, gcc-internal-format, gfc-internal-format
41395 msgid "Corank mismatch in argument '%s' at %L (%d and %d)"
41396 msgstr "No coincide el corango en el argumento '%s' en %L (%d y %d)"
41397
41398-#: fortran/interface.c:1770
41399+#: fortran/interface.c:1771
41400 #, gcc-internal-format, gfc-internal-format
41401 msgid "Actual argument to '%s' at %L must be simply contiguous"
41402 msgstr "El argumento actual para '%s' en %L debe ser simplemente contiguo"
41403
41404-#: fortran/interface.c:1784
41405+#: fortran/interface.c:1785
41406 #, gcc-internal-format, gfc-internal-format
41407 msgid "Actual argument to non-INTENT(INOUT) dummy '%s' at %L, which is LOCK_TYPE or has a LOCK_TYPE component"
41408 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"
41409
41410-#: fortran/interface.c:1801
41411+#: fortran/interface.c:1802
41412 #, gcc-internal-format, gfc-internal-format
41413 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"
41414 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"
41415
41416-#: fortran/interface.c:1814
41417+#: fortran/interface.c:1815
41418 #, gcc-internal-format, gfc-internal-format
41419 msgid "Passing coarray at %L to allocatable, noncoarray, INTENT(OUT) dummy argument '%s'"
41420 msgstr "Se pasa una comatriz en %L al argumento dummy INTENT(OUT) '%s', que no es comatriz, alojable"
41421
41422-#: fortran/interface.c:1821
41423+#: fortran/interface.c:1822
41424 #, gcc-internal-format, gfc-internal-format
41425 msgid "Passing coarray at %L to allocatable, noncoarray dummy argument '%s', which is invalid if the allocation status is modified"
41426 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"
41427
41428-#: fortran/interface.c:1883
41429+#: fortran/interface.c:1884
41430 #, gcc-internal-format, gfc-internal-format
41431 msgid "Polymorphic scalar passed to array dummy argument '%s' at %L"
41432 msgstr "Se pasó un escalar polimórfico al argumento dummy de matriz '%s' en %L"
41433
41434-#: fortran/interface.c:1892
41435+#: fortran/interface.c:1893
41436 #, gcc-internal-format, gfc-internal-format
41437 msgid "Element of assumed-shaped or pointer array passed to array dummy argument '%s' at %L"
41438 msgstr "Se pasó un elemento de forma asumida o puntero a matriz al argumento dummy de matriz '%s' en %L"
41439
41440-#: fortran/interface.c:1904
41441+#: fortran/interface.c:1905
41442 #, gcc-internal-format, gfc-internal-format
41443 msgid "Extension: Scalar non-default-kind, non-C_CHAR-kind CHARACTER actual argument with array dummy argument '%s' at %L"
41444 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"
41445
41446-#: fortran/interface.c:1912
41447+#: fortran/interface.c:1913
41448 #, gcc-internal-format, gfc-internal-format
41449 msgid "Fortran 2003: Scalar CHARACTER actual argument with array dummy argument '%s' at %L"
41450 msgstr "Fortran 2003: Argumento actual CHARACTER escalar con argumento dummy de matriz '%s' en %L"
41451
41452-#: fortran/interface.c:2212
41453+#: fortran/interface.c:2213
41454 #, gcc-internal-format, gfc-internal-format
41455 msgid "Keyword argument '%s' at %L is not in the procedure"
41456 msgstr "El argumento de palabra clave '%s' en %L no está en el procedimiento"
41457
41458-#: fortran/interface.c:2220
41459+#: fortran/interface.c:2221
41460 #, gcc-internal-format, gfc-internal-format
41461 msgid "Keyword argument '%s' at %L is already associated with another actual argument"
41462 msgstr "El argumento de palabra clave '%s' en %L ya está asociado con otro argumento actual"
41463
41464-#: fortran/interface.c:2230
41465+#: fortran/interface.c:2231
41466 #, gcc-internal-format, gfc-internal-format
41467 msgid "More actual than formal arguments in procedure call at %L"
41468 msgstr "Más argumentos actuales que formales en la llamada a procedimento en %L"
41469
41470-#: fortran/interface.c:2242 fortran/interface.c:2568
41471+#: fortran/interface.c:2243 fortran/interface.c:2569
41472 #, gcc-internal-format, gfc-internal-format
41473 msgid "Missing alternate return spec in subroutine call at %L"
41474 msgstr "Falta la especificación de devolución alternativa en la llamada a subrutina en %L"
41475
41476-#: fortran/interface.c:2250
41477+#: fortran/interface.c:2251
41478 #, gcc-internal-format, gfc-internal-format
41479 msgid "Unexpected alternate return spec in subroutine call at %L"
41480 msgstr "Especificación de devolución alternativa inesperada en la llamada a subrutina en %L"
41481
41482-#: fortran/interface.c:2260
41483+#: fortran/interface.c:2261
41484 #, gcc-internal-format, gfc-internal-format
41485 msgid "Unexpected NULL() intrinsic at %L to dummy '%s'"
41486 msgstr "Intrínseco NULL inesperado en %L para el dummy '%s'"
41487
41488-#: fortran/interface.c:2263
41489+#: fortran/interface.c:2264
41490 #, gcc-internal-format, gfc-internal-format
41491 msgid "Fortran 2008: Null pointer at %L to non-pointer dummy '%s'"
41492 msgstr "Fortran 2008: Puntero nulo en %L a un dummy '%s' que no es puntero"
41493
41494-#: fortran/interface.c:2287
41495+#: fortran/interface.c:2288
41496 #, gcc-internal-format, gfc-internal-format
41497 msgid "Character length mismatch (%ld/%ld) between actual argument and pointer or allocatable dummy argument '%s' at %L"
41498 msgstr "No coincide la longitud de carácter (%ld/%ld) entre el argumento actual y el argumento dummy puntero o alojable '%s' en %L"
41499
41500-#: fortran/interface.c:2294
41501+#: fortran/interface.c:2295
41502 #, gcc-internal-format, gfc-internal-format
41503 msgid "Character length mismatch (%ld/%ld) between actual argument and assumed-shape dummy argument '%s' at %L"
41504 msgstr "No coincide la longitud de carácter (%ld/%ld) entre el argumento actual y el argumento dummy de forma asumida '%s' en %L"
41505
41506-#: fortran/interface.c:2308
41507+#: fortran/interface.c:2309
41508 #, gcc-internal-format, gfc-internal-format
41509-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"
41510-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"
41511+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"
41512+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"
41513
41514-#: fortran/interface.c:2325
41515+#: fortran/interface.c:2326
41516 #, gcc-internal-format, gfc-internal-format
41517 msgid "Character length of actual argument shorter than of dummy argument '%s' (%lu/%lu) at %L"
41518 msgstr "La longitud del carácter del argumento actual es más corta que la del argumento dummy '%s' (%lu/%lu) en %L"
41519
41520-#: fortran/interface.c:2330
41521+#: fortran/interface.c:2331
41522 #, gcc-internal-format, gfc-internal-format
41523 msgid "Actual argument contains too few elements for dummy argument '%s' (%lu/%lu) at %L"
41524 msgstr "El argumento actual contiene muy pocos elementos para el argumento dummy '%s' (%lu/%lu) en %L"
41525
41526-#: fortran/interface.c:2349
41527+#: fortran/interface.c:2350
41528 #, gcc-internal-format, gfc-internal-format
41529 msgid "Expected a procedure pointer for argument '%s' at %L"
41530 msgstr "Se esperaba un puntero procedimiento para el argumento '%s' en %L"
41531
41532-#: fortran/interface.c:2361
41533+#: fortran/interface.c:2362
41534 #, gcc-internal-format, gfc-internal-format
41535 msgid "Expected a procedure for argument '%s' at %L"
41536 msgstr "Falta un procedimiento para el argumento '%s' en %L"
41537
41538-#: fortran/interface.c:2375
41539+#: fortran/interface.c:2376
41540 #, gcc-internal-format, gfc-internal-format
41541 msgid "Actual argument for '%s' cannot be an assumed-size array at %L"
41542 msgstr "El argumento actual para '%s' no puede ser una matriz de tamaño asumido en %L"
41543
41544-#: fortran/interface.c:2384
41545+#: fortran/interface.c:2385
41546 #, gcc-internal-format, gfc-internal-format
41547 msgid "Actual argument for '%s' must be a pointer at %L"
41548 msgstr "El argumento actual para '%s' debe ser un puntero en %L"
41549
41550-#: fortran/interface.c:2394
41551+#: fortran/interface.c:2395
41552 #, gcc-internal-format, gfc-internal-format
41553 msgid "Fortran 2008: Non-pointer actual argument at %L to pointer dummy '%s'"
41554 msgstr "Fortran 2008: El argumento actual que no es puntero en %L para el puntero dummy '%s'"
41555
41556-#: fortran/interface.c:2404
41557+#: fortran/interface.c:2405
41558 #, gcc-internal-format, gfc-internal-format
41559 msgid "Coindexed actual argument at %L to pointer dummy '%s'"
41560 msgstr "Argumento actual coindizado en %L para el puntero dummy '%s'"
41561
41562-#: fortran/interface.c:2417
41563+#: fortran/interface.c:2418
41564 #, gcc-internal-format, gfc-internal-format
41565 msgid "Coindexed actual argument at %L to allocatable dummy '%s' requires INTENT(IN)"
41566 msgstr "El argumento actual coindizado en %L para el dummy alojable '%s' requiere INTENT(IN)"
41567
41568-#: fortran/interface.c:2431
41569+#: fortran/interface.c:2432
41570 #, gcc-internal-format, gfc-internal-format
41571-msgid "Coindexed ASYNCHRONOUS or VOLATILE actual argument at at %L requires that dummy %s' has neither ASYNCHRONOUS nor VOLATILE"
41572+msgid "Coindexed ASYNCHRONOUS or VOLATILE actual argument at %L requires that dummy '%s' has neither ASYNCHRONOUS nor VOLATILE"
41573 msgstr "El argumento actual coindizado ASYNCHRONOUS o VOLATILE en %L requiere que el dummy '%s' no tenga ASYNCHRONOUS ni VOLATILE"
41574
41575-#: fortran/interface.c:2445
41576+#: fortran/interface.c:2446
41577 #, gcc-internal-format, gfc-internal-format
41578 msgid "Coindexed actual argument at %L with allocatable ultimate component to dummy '%s' requires either VALUE or INTENT(IN)"
41579 msgstr "El argumento actual coindizado en %L con componente último alojable para el dummy '%s' requiere uno de VALUE o INTENT(IN)"
41580
41581-#: fortran/interface.c:2457
41582+#: fortran/interface.c:2458
41583 #, gcc-internal-format, gfc-internal-format
41584 msgid "Actual CLASS array argument for '%s' must be a full array at %L"
41585 msgstr "El argumento de la matriz CLASS actual para '%s' debe ser una matriz completa en %L"
41586
41587-#: fortran/interface.c:2467
41588+#: fortran/interface.c:2468
41589 #, gcc-internal-format, gfc-internal-format
41590 msgid "Actual argument for '%s' must be ALLOCATABLE at %L"
41591 msgstr "El argumento actual para '%s' debe ser ALLOCATABLE en %L"
41592
41593-#: fortran/interface.c:2496
41594+#: fortran/interface.c:2497
41595 #, gcc-internal-format, gfc-internal-format
41596 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'"
41597 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'"
41598
41599-#: fortran/interface.c:2514
41600+#: fortran/interface.c:2515
41601 #, gcc-internal-format, gfc-internal-format
41602 msgid "Assumed-shape actual argument at %L is incompatible with the non-assumed-shape dummy argument '%s' due to VOLATILE attribute"
41603 msgstr "El argumento actual de forma asumida en %L es incompatible con el argumento dummy de forma no asumida '%s' debido al atributo VOLATILE"
41604
41605-#: fortran/interface.c:2526
41606+#: fortran/interface.c:2527
41607 #, gcc-internal-format, gfc-internal-format
41608 msgid "Array-section actual argument at %L is incompatible with the non-assumed-shape dummy argument '%s' due to VOLATILE attribute"
41609 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"
41610
41611-#: fortran/interface.c:2545
41612+#: fortran/interface.c:2546
41613 #, gcc-internal-format, gfc-internal-format
41614 msgid "Pointer-array actual argument at %L requires an assumed-shape or pointer-array dummy argument '%s' due to VOLATILE attribute"
41615 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"
41616
41617-#: fortran/interface.c:2575
41618+#: fortran/interface.c:2576
41619 #, gcc-internal-format, gfc-internal-format
41620 msgid "Missing actual argument for argument '%s' at %L"
41621 msgstr "Falta el argumento actual para el argumento '%s' en %L"
41622
41623-#: fortran/interface.c:2761
41624+#: fortran/interface.c:2762
41625 #, gcc-internal-format, gfc-internal-format
41626 msgid "Same actual argument associated with INTENT(%s) argument '%s' and INTENT(%s) argument '%s' at %L"
41627 msgstr "El mismo argumento actual está asociado con el argumento INTENT(%s) '%s' y el argumento INTENT(%s) '%s' en %L"
41628
41629-#: fortran/interface.c:2817
41630+#: fortran/interface.c:2818
41631 #, gcc-internal-format, gfc-internal-format
41632 msgid "Procedure argument at %L is INTENT(IN) while interface specifies INTENT(%s)"
41633 msgstr "El argumento del procedimiento en %L es INTENT(IN) mientras que la interfaz especifica INTENT(%s)"
41634
41635-#: fortran/interface.c:2827
41636+#: fortran/interface.c:2828
41637 #, gcc-internal-format, gfc-internal-format
41638 msgid "Procedure argument at %L is local to a PURE procedure and is passed to an INTENT(%s) argument"
41639 msgstr "El argumento del procedimiento en %L es local a un procedimiento PURE y se pasa a un argumento INTENT(%s)"
41640
41641-#: fortran/interface.c:2835
41642+#: fortran/interface.c:2836
41643 #, gcc-internal-format, gfc-internal-format
41644 msgid "Procedure argument at %L is local to a PURE procedure and has the POINTER attribute"
41645 msgstr "El argumento del procedimiento en %L es local a un procedimiento PURE y tiene el atributo POINTER"
41646
41647-#: fortran/interface.c:2847
41648+#: fortran/interface.c:2848
41649 #, gcc-internal-format, gfc-internal-format
41650 msgid "Coindexed actual argument at %L in PURE procedure is passed to an INTENT(%s) argument"
41651 msgstr "El argumento coindizado en %L en un procedimiento PURE se pasa a un argumento INTENT(%s)"
41652
41653-#: fortran/interface.c:2855
41654+#: fortran/interface.c:2856
41655 #, gcc-internal-format, gfc-internal-format
41656 msgid "Coindexed actual argument at %L in PURE procedure is passed to a POINTER dummy argument"
41657 msgstr "El argumento actual coindizado en %L es un procedimiento PURE se pasa a un argumento dummy POINTER"
41658
41659-#: fortran/interface.c:2866
41660+#: fortran/interface.c:2867
41661 #, gcc-internal-format, gfc-internal-format
41662 msgid "Coindexed polymorphic actual argument at %L is passed polymorphic dummy argument '%s'"
41663 msgstr "El argumento actual polimórfico coindizado en %L se pasa al argumento dummy polimórfico '%s'"
41664
41665-#: fortran/interface.c:2892
41666+#: fortran/interface.c:2893
41667 #, gcc-internal-format, gfc-internal-format
41668 msgid "Procedure '%s' called with an implicit interface at %L"
41669 msgstr "Se llamó al procedimiento '%s' con una interfaz implícita en %L"
41670
41671-#: fortran/interface.c:2896
41672+#: fortran/interface.c:2897
41673 #, gcc-internal-format, gfc-internal-format
41674 msgid "Procedure '%s' called at %L is not explicitly declared"
41675 msgstr "El procedimiento '%s' que se llama en %L no tiene una interfaz explícita"
41676
41677-#: fortran/interface.c:2906
41678+#: fortran/interface.c:2907
41679 #, gcc-internal-format, gfc-internal-format
41680 msgid "The pointer object '%s' at %L must have an explicit function interface or be declared as array"
41681 msgstr "El objeto puntero '%s' en %L debe tener una interfaz de función explícita o declrararse como matriz"
41682
41683-#: fortran/interface.c:2914
41684+#: fortran/interface.c:2915
41685 #, gcc-internal-format, gfc-internal-format
41686 msgid "The allocatable object '%s' at %L must have an explicit function interface or be declared as array"
41687 msgstr "El objeto allocatable '%s' en %L debe tener una interfaz de función explícita o declararse como matriz"
41688
41689-#: fortran/interface.c:2922
41690+#: fortran/interface.c:2923
41691 #, gcc-internal-format, gfc-internal-format
41692 msgid "Allocatable function '%s' at %L must have an explicit function interface"
41693 msgstr "La función allocatable '%s' en %L debe tener una interfaz de función explícita"
41694
41695-#: fortran/interface.c:2932
41696+#: fortran/interface.c:2933
41697 #, gcc-internal-format, gfc-internal-format
41698 msgid "Keyword argument requires explicit interface for procedure '%s' at %L"
41699 msgstr "El argumento de palabra clave requiere una interfaz explícita para el procedimiento '%s' en %L"
41700
41701-#: fortran/interface.c:2944
41702+#: fortran/interface.c:2945
41703 #, gcc-internal-format, gfc-internal-format
41704 msgid "Actual argument of LOCK_TYPE or with LOCK_TYPE component at %L requires an explicit interface for procedure '%s'"
41705 msgstr "El argumento actual de LOCK_TYPE o con componente LOCK_TYPE en %L requiere una interfaz explícita para el procedimiento '%s'"
41706
41707-#: fortran/interface.c:2953
41708+#: fortran/interface.c:2954
41709 #, gcc-internal-format, gfc-internal-format
41710 msgid "MOLD argument to NULL required at %L"
41711 msgstr "se requiere el argumento MOLD para NULL en %L"
41712
41713-#: fortran/interface.c:2984
41714+#: fortran/interface.c:2985
41715 #, gcc-internal-format, gfc-internal-format
41716 msgid "Procedure pointer component '%s' called with an implicit interface at %L"
41717 msgstr "Se llamó al procedimiento de componente puntero '%s' con una interfaz implícita en %L"
41718
41719-#: fortran/interface.c:2995
41720+#: fortran/interface.c:2996
41721 #, gcc-internal-format, gfc-internal-format
41722 msgid "Keyword argument requires explicit interface for procedure pointer component '%s' at %L"
41723 msgstr "El argumento de palabra clave requiere una interfaz explícita para el procedimiento de componente puntero '%s' en %L"
41724
41725-#: fortran/interface.c:3075
41726+#: fortran/interface.c:3076
41727 #, gcc-internal-format, gfc-internal-format
41728 msgid "MOLD= required in NULL() argument at %L: Ambiguity between specific functions %s and %s"
41729 msgstr "Se require MOLD= en un argumento NULL en %L: Ambigüedad entre las funciones específicas %s y %s "
41730
41731-#: fortran/interface.c:3526
41732+#: fortran/interface.c:3527
41733 #, gcc-internal-format, gfc-internal-format
41734 msgid "Entity '%s' at %C is already present in the interface"
41735 msgstr "La entidad '%s' en %C ya está presente en la interfaz"
41736
41737-#: fortran/interface.c:3723
41738+#: fortran/interface.c:3724
41739 #, gcc-internal-format, gfc-internal-format
41740 msgid "Can't overwrite GENERIC '%s' at %L"
41741 msgstr "No se puede sobreescribir el GENERIC '%s' en %L"
41742
41743-#: fortran/interface.c:3735
41744+#: fortran/interface.c:3736
41745 #, gcc-internal-format, gfc-internal-format
41746 msgid "'%s' at %L overrides a procedure binding declared NON_OVERRIDABLE"
41747 msgstr "'%s' en %L sobreescribe un enlace de procedimiento declarad como NON_OVERRIDABLE"
41748
41749-#: fortran/interface.c:3743
41750+#: fortran/interface.c:3744
41751 #, gcc-internal-format, gfc-internal-format
41752 msgid "'%s' at %L must not be DEFERRED as it overrides a non-DEFERRED binding"
41753 msgstr "'%s' en %L no debe ser DEFERRED porque sobreescribe un enlazado que no es DEFERRED"
41754
41755-#: fortran/interface.c:3751
41756+#: fortran/interface.c:3752
41757 #, gcc-internal-format, gfc-internal-format
41758 msgid "'%s' at %L overrides a PURE procedure and must also be PURE"
41759 msgstr "'%s' en %L sobreescribe un procedimiento PURE y también debe ser PURE"
41760
41761-#: fortran/interface.c:3760
41762+#: fortran/interface.c:3761
41763 #, gcc-internal-format, gfc-internal-format
41764 msgid "'%s' at %L overrides an ELEMENTAL procedure and must also be ELEMENTAL"
41765 msgstr "'%s' en %L sobreescribe un procedimiento ELEMENTAL y también debe ser ELEMENTAL"
41766
41767-#: fortran/interface.c:3766
41768+#: fortran/interface.c:3767
41769 #, gcc-internal-format, gfc-internal-format
41770 msgid "'%s' at %L overrides a non-ELEMENTAL procedure and must not be ELEMENTAL, either"
41771 msgstr "'%s' en %L sobreeescribe un procedimiento que no es ELEMENTAL y tampoco debe ser ELEMENTAL"
41772
41773-#: fortran/interface.c:3775
41774+#: fortran/interface.c:3776
41775 #, gcc-internal-format, gfc-internal-format
41776 msgid "'%s' at %L overrides a SUBROUTINE and must also be a SUBROUTINE"
41777 msgstr "'%s' en %L sobreescribe una SUBROUTINE y también debe ser una SUBROUTINE"
41778
41779-#: fortran/interface.c:3786
41780+#: fortran/interface.c:3787
41781 #, gcc-internal-format, gfc-internal-format
41782 msgid "'%s' at %L overrides a FUNCTION and must also be a FUNCTION"
41783 msgstr "'%s' en %L sobreescribe una FUNCTION y también debe ser una FUNCTION"
41784
41785-#: fortran/interface.c:3796
41786+#: fortran/interface.c:3797
41787 #, gcc-internal-format, gfc-internal-format
41788 msgid "'%s' at %L and the overridden FUNCTION should have matching result types and ranks"
41789 msgstr "'%s' en %L y la FUNCION sobreescrita deben tener tipos de resultado y rangos coincidentes"
41790
41791-#: fortran/interface.c:3812
41792+#: fortran/interface.c:3813
41793 #, gcc-internal-format, gfc-internal-format
41794 msgid "Character length mismatch between '%s' at '%L' and overridden FUNCTION"
41795 msgstr "No coincide la longitud de caracteres entre '%s' en %L y FUNCTION sobreescrita"
41796
41797-#: fortran/interface.c:3817
41798+#: fortran/interface.c:3818
41799 #, gcc-internal-format, gfc-internal-format
41800 msgid "Possible character length mismatch between '%s' at '%L' and overridden FUNCTION"
41801 msgstr "Tal vez no coincide la longitud de caracteres entre '%s' en '%L' y FUNCTION sobreescrita"
41802
41803-#: fortran/interface.c:3837
41804+#: fortran/interface.c:3838
41805 #, gcc-internal-format, gfc-internal-format
41806 msgid "'%s' at %L overrides a PUBLIC procedure and must not be PRIVATE"
41807 msgstr "'%s' en %L sobreescribe un procedimiento PUBLIC y no debe ser PRIVATE"
41808
41809-#: fortran/interface.c:3866
41810+#: fortran/interface.c:3867
41811 #, gcc-internal-format, gfc-internal-format
41812 msgid "Dummy argument '%s' of '%s' at %L should be named '%s' as to match the corresponding argument of the overridden procedure"
41813 msgstr "El argumento dummy '%s' de '%s' en %L se debe llamar '%s' para que coincida con el argumento correspondiente al procedimiento sobreescrito"
41814
41815-#: fortran/interface.c:3877
41816+#: fortran/interface.c:3878
41817 #, gcc-internal-format, gfc-internal-format
41818 msgid "Argument mismatch for the overriding procedure '%s' at %L: %s"
41819 msgstr "La interfaz no coincide en el procedimiento '%s' que sobreescribe en %L: %s"
41820
41821-#: fortran/interface.c:3886
41822+#: fortran/interface.c:3887
41823 #, gcc-internal-format, gfc-internal-format
41824 msgid "'%s' at %L must have the same number of formal arguments as the overridden procedure"
41825 msgstr "'%s' en %L debe tener el mismo nombre de argumentos formales que el procedimiento sobreeescrito"
41826
41827-#: fortran/interface.c:3895
41828+#: fortran/interface.c:3896
41829 #, gcc-internal-format, gfc-internal-format
41830 msgid "'%s' at %L overrides a NOPASS binding and must also be NOPASS"
41831 msgstr "'%s' en %L sobreescribe un enlace NOPASS y también debe ser NOPASS"
41832
41833-#: fortran/interface.c:3906
41834+#: fortran/interface.c:3907
41835 #, gcc-internal-format, gfc-internal-format
41836 msgid "'%s' at %L overrides a binding with PASS and must also be PASS"
41837 msgstr "'%s' en %L sobreescribe un enlace con PASS y también debe ser PASS"
41838
41839-#: fortran/interface.c:3913
41840+#: fortran/interface.c:3914
41841 #, gcc-internal-format, gfc-internal-format
41842 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"
41843 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"
41844@@ -38195,801 +38406,796 @@
41845 msgid "Fortran 2003: ASYNCHRONOUS= at %C not allowed in Fortran 95"
41846 msgstr "Fortran 2003: no se permite ASYNCHRONOUS= en %C en Fortran 95"
41847
41848-#: fortran/io.c:1914 fortran/io.c:3367
41849+#: fortran/io.c:1914 fortran/io.c:3363
41850 #, gcc-internal-format, gfc-internal-format
41851 msgid "Fortran 2003: BLANK= at %C not allowed in Fortran 95"
41852 msgstr "Fortran 2003: no se permite BLANK= en %C en Fortran 95"
41853
41854-#: fortran/io.c:1932 fortran/io.c:3346
41855+#: fortran/io.c:1932 fortran/io.c:3342
41856 #, gcc-internal-format, gfc-internal-format
41857 msgid "Fortran 2003: DECIMAL= at %C not allowed in Fortran 95"
41858 msgstr "Fortran 2003: no se permite DECIMAL= en %C en Fortran 95"
41859
41860-#: fortran/io.c:1950 fortran/io.c:3454
41861+#: fortran/io.c:1964
41862 #, gcc-internal-format, gfc-internal-format
41863-msgid "Fortran 2003: DELIM= at %C not allowed in Fortran 95"
41864-msgstr "Fortran 2003: no se permite DELIM= en %C en Fortran 95"
41865-
41866-#: fortran/io.c:1968
41867-#, gcc-internal-format, gfc-internal-format
41868 msgid "Fortran 2003: ENCODING= at %C not allowed in Fortran 95"
41869 msgstr "Fortran 2003: no se permite ENCODING= en %C en Fortran 95"
41870
41871-#: fortran/io.c:2019
41872+#: fortran/io.c:2015 fortran/io.c:3405
41873 #, gcc-internal-format, gfc-internal-format
41874-msgid "Fortran F2003: ROUND= at %C not allowed in Fortran 95"
41875-msgstr "Fortran F2003: No se permite ROUND= en %C en Fortran 95"
41876+msgid "Fortran 2003: ROUND= at %C not allowed in Fortran 95"
41877+msgstr "Fortran 2003: No se permite ROUND= en %C en Fortran 95"
41878
41879-#: fortran/io.c:2039
41880+#: fortran/io.c:2035
41881 #, gcc-internal-format, gfc-internal-format
41882 msgid "Fortran 2003: SIGN= at %C not allowed in Fortran 95"
41883 msgstr "Fortran 2003: no se permite SIGN= en %C en Fortran 95"
41884
41885-#: fortran/io.c:2252
41886+#: fortran/io.c:2248
41887 #, gcc-internal-format, gfc-internal-format
41888 msgid "CLOSE statement not allowed in PURE procedure at %C"
41889 msgstr "No se permite una declaración CLOSE en el procedimiento PURE en %C"
41890
41891-#: fortran/io.c:2312
41892+#: fortran/io.c:2308
41893 #, gcc-internal-format, gfc-internal-format
41894 msgid "CLOSE statement at %L requires a UNIT number"
41895 msgstr "La declaración CLOSE en %L requiere un número UNIT"
41896
41897-#: fortran/io.c:2320
41898+#: fortran/io.c:2316
41899 #, gcc-internal-format, gfc-internal-format
41900 msgid "UNIT number in CLOSE statement at %L must be non-negative"
41901 msgstr "El número UNIT en la declaración CLOSE en %L debe ser no negativo"
41902
41903-#: fortran/io.c:2418 fortran/match.c:2683
41904+#: fortran/io.c:2414 fortran/match.c:2682
41905 #, gcc-internal-format, gfc-internal-format
41906 msgid "%s statement not allowed in PURE procedure at %C"
41907 msgstr "No se permite una declaración %s en el procedimiento PURE en %C"
41908
41909-#: fortran/io.c:2453 fortran/io.c:2885
41910+#: fortran/io.c:2449 fortran/io.c:2881
41911 #, gcc-internal-format, gfc-internal-format
41912 msgid "UNIT number in statement at %L must be non-negative"
41913 msgstr "El número UNIT en la declaración en %L debe ser no negativo"
41914
41915-#: fortran/io.c:2485
41916+#: fortran/io.c:2481
41917 #, gcc-internal-format, gfc-internal-format
41918 msgid "Fortran 2003: FLUSH statement at %C"
41919 msgstr "Fortran 2003: Declaración FLUSH en %C"
41920
41921-#: fortran/io.c:2541
41922+#: fortran/io.c:2537
41923 #, gcc-internal-format, gfc-internal-format
41924 msgid "Duplicate UNIT specification at %C"
41925 msgstr "Especificación UNIT duplicada en %C"
41926
41927-#: fortran/io.c:2615
41928+#: fortran/io.c:2611
41929 #, gcc-internal-format, gfc-internal-format
41930 msgid "Duplicate format specification at %C"
41931 msgstr "Especificación de formato duplicada en %C"
41932
41933-#: fortran/io.c:2632
41934+#: fortran/io.c:2628
41935 #, gcc-internal-format, gfc-internal-format
41936 msgid "Symbol '%s' in namelist '%s' is INTENT(IN) at %C"
41937 msgstr "El símbolo '%s' en la lista de nombres '%s' es INTENT(IN) en %C"
41938
41939-#: fortran/io.c:2668
41940+#: fortran/io.c:2664
41941 #, gcc-internal-format, gfc-internal-format
41942 msgid "Duplicate NML specification at %C"
41943 msgstr "Especificación NML duplicada en %C"
41944
41945-#: fortran/io.c:2677
41946+#: fortran/io.c:2673
41947 #, gcc-internal-format, gfc-internal-format
41948 msgid "Symbol '%s' at %C must be a NAMELIST group name"
41949 msgstr "El símbolo '%s' en %C debe ser un nombre de grupo NAMELIST"
41950
41951-#: fortran/io.c:2742
41952+#: fortran/io.c:2738
41953 #, gcc-internal-format, gfc-internal-format
41954 msgid "END tag at %C not allowed in output statement"
41955 msgstr "No se permite la etiqueta END en %C en la declaración de salida"
41956
41957-#: fortran/io.c:2819
41958+#: fortran/io.c:2815
41959 #, gcc-internal-format, gfc-internal-format
41960 msgid "UNIT not specified at %L"
41961 msgstr "No se especificó UNIT en %L"
41962
41963-#: fortran/io.c:2831
41964+#: fortran/io.c:2827
41965 #, gcc-internal-format, gfc-internal-format
41966 msgid "UNIT specification at %L must be an INTEGER expression or a CHARACTER variable"
41967 msgstr "La especificación UNIT en %L debe ser una expresión INTEGER o una variable CHARACTER"
41968
41969-#: fortran/io.c:2853
41970+#: fortran/io.c:2849
41971 #, gcc-internal-format, gfc-internal-format
41972 msgid "Invalid form of WRITE statement at %L, UNIT required"
41973 msgstr "Forma inválida de la declaración WRITE en %L, se requiere UNIT"
41974
41975-#: fortran/io.c:2864
41976+#: fortran/io.c:2860
41977 #, gcc-internal-format, gfc-internal-format
41978 msgid "Internal unit with vector subscript at %L"
41979 msgstr "Unidad interna con subíndice vectorial en %L"
41980
41981-#: fortran/io.c:2878
41982+#: fortran/io.c:2874
41983 #, gcc-internal-format, gfc-internal-format
41984 msgid "External IO UNIT cannot be an array at %L"
41985 msgstr "Un IO UNIT externo no puede ser una matriz en %L"
41986
41987-#: fortran/io.c:2906
41988+#: fortran/io.c:2902
41989 #, gcc-internal-format, gfc-internal-format
41990 msgid "NAMELIST '%s' in READ statement at %L contains the symbol '%s' which may not appear in a variable definition context"
41991 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"
41992
41993-#: fortran/io.c:2916
41994+#: fortran/io.c:2912
41995 #, gcc-internal-format, gfc-internal-format
41996 msgid "Extension: Comma before i/o item list at %L"
41997 msgstr "Extensión: Una coma antes de una lista de elementos de e/s en %L"
41998
41999-#: fortran/io.c:2926
42000+#: fortran/io.c:2922
42001 #, gcc-internal-format, gfc-internal-format
42002 msgid "ERR tag label %d at %L not defined"
42003 msgstr "La etiqueta ERR %d en %L no está definida"
42004
42005-#: fortran/io.c:2938
42006+#: fortran/io.c:2934
42007 #, gcc-internal-format, gfc-internal-format
42008 msgid "END tag label %d at %L not defined"
42009 msgstr "La etiqueta END %d en %L no está definida"
42010
42011-#: fortran/io.c:2950
42012+#: fortran/io.c:2946
42013 #, gcc-internal-format, gfc-internal-format
42014 msgid "EOR tag label %d at %L not defined"
42015 msgstr "La etiqueta EOR %d en %L no está definida"
42016
42017-#: fortran/io.c:2960
42018+#: fortran/io.c:2956
42019 #, gcc-internal-format, gfc-internal-format
42020 msgid "FORMAT label %d at %L not defined"
42021 msgstr "La etiqueta FORMAT %d en %L no está definida"
42022
42023-#: fortran/io.c:3082
42024+#: fortran/io.c:3078
42025 #, gcc-internal-format, gfc-internal-format
42026 msgid "Syntax error in I/O iterator at %C"
42027 msgstr "Error sintáctico en el iterador de E/S en %C"
42028
42029-#: fortran/io.c:3113
42030+#: fortran/io.c:3109
42031 #, gcc-internal-format, gfc-internal-format
42032 msgid "Expected variable in READ statement at %C"
42033 msgstr "Se esperaba una variable en la declaración READ en %C"
42034
42035-#: fortran/io.c:3119
42036+#: fortran/io.c:3115
42037 #, gcc-internal-format, gfc-internal-format
42038 msgid "Expected expression in %s statement at %C"
42039 msgstr "Se esperaba una expresión en la declaración %s en %C"
42040
42041 #. A general purpose syntax error.
42042-#: fortran/io.c:3177 fortran/io.c:3776 fortran/gfortran.h:2465
42043+#: fortran/io.c:3173 fortran/io.c:3772 fortran/gfortran.h:2465
42044 #, gcc-internal-format, gfc-internal-format
42045 msgid "Syntax error in %s statement at %C"
42046 msgstr "Error sintáctico en la declaración %s en %C"
42047
42048-#: fortran/io.c:3262
42049+#: fortran/io.c:3258
42050 #, gcc-internal-format, gfc-internal-format
42051 msgid "Fortran 2003: Internal file at %L with namelist"
42052 msgstr "Fortran 2003: Fichero interno en %L con lista de nombres"
42053
42054-#: fortran/io.c:3320
42055+#: fortran/io.c:3316
42056 #, gcc-internal-format, gfc-internal-format
42057 msgid "ASYNCHRONOUS= specifier at %L must be an initialization expression"
42058 msgstr "El especificador ASYNCHRONOUS= en %L debe ser una expresión de inicialización"
42059
42060-#: fortran/io.c:3388
42061+#: fortran/io.c:3384
42062 #, gcc-internal-format, gfc-internal-format
42063 msgid "Fortran 2003: PAD= at %C not allowed in Fortran 95"
42064 msgstr "Fortran 2003: No se permite PAD= en %C en Fortran 95"
42065
42066-#: fortran/io.c:3409
42067+#: fortran/io.c:3450
42068 #, gcc-internal-format, gfc-internal-format
42069-msgid "Fortran 2003: ROUND= at %C not allowed in Fortran 95"
42070-msgstr "Fortran 2003: No se permite ROUND= en %C en Fortran 95"
42071+msgid "Fortran 2003: DELIM= at %C not allowed in Fortran 95"
42072+msgstr "Fortran 2003: no se permite DELIM= en %C en Fortran 95"
42073
42074-#: fortran/io.c:3603
42075+#: fortran/io.c:3599
42076 #, gcc-internal-format, gfc-internal-format
42077 msgid "PRINT namelist at %C is an extension"
42078 msgstr "La lista de nombres PRINT en %C es una extensión"
42079
42080-#: fortran/io.c:3746
42081+#: fortran/io.c:3742
42082 #, gcc-internal-format, gfc-internal-format
42083 msgid "Expected comma in I/O list at %C"
42084 msgstr "Se esperaba una coma en la lista E/S en %C"
42085
42086-#: fortran/io.c:3810
42087+#: fortran/io.c:3806
42088 #, gcc-internal-format, gfc-internal-format
42089 msgid "PRINT statement at %C not allowed within PURE procedure"
42090 msgstr "No se permite la declaración PRINT en %C dentro un procedimiento PURE"
42091
42092-#: fortran/io.c:3969 fortran/io.c:4023
42093+#: fortran/io.c:3965 fortran/io.c:4019
42094 #, gcc-internal-format, gfc-internal-format
42095 msgid "INQUIRE statement not allowed in PURE procedure at %C"
42096 msgstr "No se permite la declaración INQUIRE en el procedimiento PURE en %C"
42097
42098-#: fortran/io.c:3999
42099+#: fortran/io.c:3995
42100 #, gcc-internal-format, gfc-internal-format
42101 msgid "IOLENGTH tag invalid in INQUIRE statement at %C"
42102 msgstr "La etiqueta IOLENGHT es inválida en la declaración INQUIRE en %C"
42103
42104-#: fortran/io.c:4009 fortran/trans-io.c:1229
42105+#: fortran/io.c:4005 fortran/trans-io.c:1229
42106 #, gcc-internal-format, gfc-internal-format
42107 msgid "INQUIRE statement at %L cannot contain both FILE and UNIT specifiers"
42108 msgstr "La declaración INQUIRE en %L no puede contener especificadores FILE y UNIT al mismo tiempo"
42109
42110-#: fortran/io.c:4016
42111+#: fortran/io.c:4012
42112 #, gcc-internal-format, gfc-internal-format
42113 msgid "INQUIRE statement at %L requires either FILE or UNIT specifier"
42114 msgstr "La declaración INQUIRE en %L requiere un especificador FILE o UNIT"
42115
42116-#: fortran/io.c:4032
42117+#: fortran/io.c:4028
42118 #, gcc-internal-format, gfc-internal-format
42119 msgid "INQUIRE statement at %L requires a PENDING= specifier with the ID= specifier"
42120 msgstr "La declaración INQUIRE en %L requiere un especificador PENDING= con el especificador ID="
42121
42122-#: fortran/io.c:4203
42123+#: fortran/io.c:4199
42124 #, gcc-internal-format, gfc-internal-format
42125 msgid "Fortran 2003: WAIT at %C not allowed in Fortran 95"
42126 msgstr "Fortran 2003: No se permite WAIT en %C en Fortran 95"
42127
42128-#: fortran/io.c:4209
42129+#: fortran/io.c:4205
42130 #, gcc-internal-format, gfc-internal-format
42131 msgid "WAIT statement not allowed in PURE procedure at %C"
42132 msgstr "No se permite una declaración WAIT en un procedimiento PURE en %C"
42133
42134-#: fortran/match.c:164
42135+#: fortran/match.c:165
42136 #, gcc-internal-format, gfc-internal-format
42137 msgid "Missing ')' in statement at or before %L"
42138 msgstr "Falta un ')' en la declaración en o antes de %L"
42139
42140-#: fortran/match.c:169
42141+#: fortran/match.c:170
42142 #, gcc-internal-format, gfc-internal-format
42143 msgid "Missing '(' in statement at or before %L"
42144 msgstr "Falta un '(' en la declaración en o antes de %L"
42145
42146-#: fortran/match.c:366
42147+#: fortran/match.c:367
42148 #, gcc-internal-format, gfc-internal-format
42149 msgid "Integer too large at %C"
42150 msgstr "Entero demasiado grande en %C"
42151
42152-#: fortran/match.c:459 fortran/parse.c:693
42153+#: fortran/match.c:460 fortran/parse.c:693
42154 #, gcc-internal-format, gfc-internal-format
42155 msgid "Too many digits in statement label at %C"
42156 msgstr "Demasiados dígitos en la declaración de etiqueta en %C"
42157
42158-#: fortran/match.c:465
42159+#: fortran/match.c:466
42160 #, gcc-internal-format, gfc-internal-format
42161 msgid "Statement label at %C is zero"
42162 msgstr "La etiqueta de declaración en %C es cero"
42163
42164-#: fortran/match.c:498
42165+#: fortran/match.c:499
42166 #, gcc-internal-format, gfc-internal-format
42167 msgid "Label name '%s' at %C is ambiguous"
42168 msgstr "El nombre de etiqueta '%s' en %C es ambigua"
42169
42170-#: fortran/match.c:504
42171+#: fortran/match.c:505
42172 #, gcc-internal-format, gfc-internal-format
42173 msgid "Duplicate construct label '%s' at %C"
42174 msgstr "Etiqueta construct '%s' duplicada en %C"
42175
42176-#: fortran/match.c:535
42177+#: fortran/match.c:536
42178 #, gcc-internal-format, gfc-internal-format
42179 msgid "Invalid character in name at %C"
42180 msgstr "Carácter inválido en el nombre en %C"
42181
42182-#: fortran/match.c:548 fortran/match.c:629
42183+#: fortran/match.c:549
42184 #, gcc-internal-format, gfc-internal-format
42185 msgid "Name at %C is too long"
42186 msgstr "El nombre en %C es demasiado largo"
42187
42188-#: fortran/match.c:559
42189+#: fortran/match.c:560
42190 #, gcc-internal-format, gfc-internal-format
42191 msgid "Invalid character '$' at %C. Use -fdollar-ok to allow it as an extension"
42192 msgstr "Carácter '$' inválido en %C. Use -fdollar-ok para permitirlo como una extensión"
42193
42194-#: fortran/match.c:610 fortran/match.c:658
42195+#: fortran/match.c:610 fortran/match.c:657
42196 #, gcc-internal-format, gfc-internal-format
42197 msgid "Invalid C name in NAME= specifier at %C"
42198 msgstr "Nombre C inválido en el especificador NAME= en %C"
42199
42200-#: fortran/match.c:649
42201+#: fortran/match.c:648
42202 #, gcc-internal-format, gfc-internal-format
42203 msgid "Embedded space in NAME= specifier at %C"
42204 msgstr "Espacio incrustado en el especificador NAME= en %C"
42205
42206-#: fortran/match.c:973
42207+#: fortran/match.c:972
42208 #, gcc-internal-format, gfc-internal-format
42209 msgid "Loop variable at %C cannot be a coarray"
42210 msgstr "La variable de bucle en %C no puede ser una comatriz"
42211
42212-#: fortran/match.c:979
42213+#: fortran/match.c:978
42214 #, gcc-internal-format, gfc-internal-format
42215 msgid "Loop variable at %C cannot be a sub-component"
42216 msgstr "La variable de bucle en %C no puede ser un subcomponente"
42217
42218-#: fortran/match.c:1013
42219+#: fortran/match.c:1012
42220 #, gcc-internal-format, gfc-internal-format
42221 msgid "Expected a step value in iterator at %C"
42222 msgstr "Se esperaba un valor de paso en el iterador en %C"
42223
42224-#: fortran/match.c:1025
42225+#: fortran/match.c:1024
42226 #, gcc-internal-format, gfc-internal-format
42227 msgid "Syntax error in iterator at %C"
42228 msgstr "Error sintáctico en el iterador en %C"
42229
42230-#: fortran/match.c:1266
42231+#: fortran/match.c:1265
42232 #, gcc-internal-format, gfc-internal-format
42233 msgid "Invalid form of PROGRAM statement at %C"
42234 msgstr "Forma inválida de la declaración PROGRAM en %C"
42235
42236-#: fortran/match.c:1396 fortran/match.c:1477
42237+#: fortran/match.c:1395 fortran/match.c:1476
42238 #, gcc-internal-format, gfc-internal-format
42239 msgid "Obsolescent feature: Arithmetic IF statement at %C"
42240 msgstr "Característica obsoleta: Declaración IF aritmética en %C"
42241
42242-#: fortran/match.c:1452
42243+#: fortran/match.c:1451
42244 #, gcc-internal-format, gfc-internal-format
42245 msgid "Syntax error in IF-expression at %C"
42246 msgstr "Error sintáctico en la expresión IF en %C"
42247
42248-#: fortran/match.c:1463
42249+#: fortran/match.c:1462
42250 #, gcc-internal-format, gfc-internal-format
42251 msgid "Block label not appropriate for arithmetic IF statement at %C"
42252 msgstr "La etiqueta de bloque no es apropiada para la declaración IF aritmética en %C"
42253
42254-#: fortran/match.c:1501
42255+#: fortran/match.c:1500
42256 #, gcc-internal-format, gfc-internal-format
42257 msgid "Block label is not appropriate for IF statement at %C"
42258 msgstr "La etiqueta de bloque no es apropiada para la declaración IF en %C"
42259
42260-#: fortran/match.c:1587
42261+#: fortran/match.c:1586
42262 #, gcc-internal-format, gfc-internal-format
42263 msgid "Cannot assign to a named constant at %C"
42264 msgstr "No se puede asignar a una constante nombrada en %C"
42265
42266-#: fortran/match.c:1597
42267+#: fortran/match.c:1596
42268 #, gcc-internal-format, gfc-internal-format
42269 msgid "Unclassifiable statement in IF-clause at %C"
42270 msgstr "Declaración inclasificable en la cláusula IF en %C"
42271
42272-#: fortran/match.c:1604
42273+#: fortran/match.c:1603
42274 #, gcc-internal-format, gfc-internal-format
42275 msgid "Syntax error in IF-clause at %C"
42276 msgstr "Error sintáctico en la cláusula IF en %C"
42277
42278-#: fortran/match.c:1648
42279+#: fortran/match.c:1647
42280 #, gcc-internal-format, gfc-internal-format
42281 msgid "Unexpected junk after ELSE statement at %C"
42282 msgstr "Basura inesperada después de la declaración ELSE en %C"
42283
42284-#: fortran/match.c:1654 fortran/match.c:1689
42285+#: fortran/match.c:1653 fortran/match.c:1688
42286 #, gcc-internal-format, gfc-internal-format
42287 msgid "Label '%s' at %C doesn't match IF label '%s'"
42288 msgstr "La etiqueta '%s' en %C no coincide con la etiqueta IF '%s'"
42289
42290-#: fortran/match.c:1683
42291+#: fortran/match.c:1682
42292 #, gcc-internal-format, gfc-internal-format
42293 msgid "Unexpected junk after ELSE IF statement at %C"
42294 msgstr "Basura inesperada después de la declaración ELSE IF en %C"
42295
42296-#: fortran/match.c:1747
42297+#: fortran/match.c:1746
42298 #, gcc-internal-format, gfc-internal-format
42299 msgid "Image control statement CRITICAL at %C in PURE procedure"
42300 msgstr "Declaración de control de imagen CRITICAL en %C en un procedimiento PURE"
42301
42302-#: fortran/match.c:1753
42303+#: fortran/match.c:1752
42304 #, gcc-internal-format, gfc-internal-format
42305 msgid "Image control statement CRITICAL at %C in DO CONCURRENT block"
42306 msgstr "Declaración de control de imagen CRITICAL en %C en un bloque DO CONCURRENT"
42307
42308-#: fortran/match.c:1761
42309+#: fortran/match.c:1760
42310 #, gcc-internal-format, gfc-internal-format
42311 msgid "Fortran 2008: CRITICAL statement at %C"
42312 msgstr "Fortran 2008: Declaración CRITICAL en %C"
42313
42314-#: fortran/match.c:1773
42315+#: fortran/match.c:1772
42316 #, gcc-internal-format, gfc-internal-format
42317 msgid "Nested CRITICAL block at %C"
42318 msgstr "Bloque CRITICAL anidado en %C"
42319
42320-#: fortran/match.c:1825
42321+#: fortran/match.c:1824
42322 #, gcc-internal-format, gfc-internal-format
42323 msgid "Expected association list at %C"
42324 msgstr "Se esperaba una lista lista de asociación en %C"
42325
42326-#: fortran/match.c:1838
42327+#: fortran/match.c:1837
42328 #, gcc-internal-format, gfc-internal-format
42329 msgid "Expected association at %C"
42330 msgstr "Se esperaba una asociación en %C"
42331
42332-#: fortran/match.c:1847
42333+#: fortran/match.c:1846
42334 #, gcc-internal-format, gfc-internal-format
42335 msgid "Duplicate name '%s' in association at %C"
42336 msgstr "Nombre '%s' duplicado en la asociación en %C"
42337
42338-#: fortran/match.c:1855
42339+#: fortran/match.c:1854
42340 #, gcc-internal-format, gfc-internal-format
42341 msgid "Association target at %C must not be coindexed"
42342 msgstr "El objetivo de asociación en %C no debe estar coindizado"
42343
42344-#: fortran/match.c:1873
42345+#: fortran/match.c:1872
42346 #, gcc-internal-format, gfc-internal-format
42347 msgid "Expected ')' or ',' at %C"
42348 msgstr "Se esperaba ')' o ',' en %C"
42349
42350-#: fortran/match.c:1891
42351+#: fortran/match.c:1890
42352 #, gcc-internal-format, gfc-internal-format
42353 msgid "Junk after ASSOCIATE statement at %C"
42354 msgstr "Basura después de la declaración ASSOCIATE en %C"
42355
42356-#: fortran/match.c:1960
42357+#: fortran/match.c:1959
42358 #, gcc-internal-format, gfc-internal-format
42359 msgid "Derived type '%s' at %L may not be ABSTRACT"
42360 msgstr "El tipo derivado '%s' en %L no debe ser ABSTRACT"
42361
42362-#: fortran/match.c:2023
42363+#: fortran/match.c:2022
42364 #, gcc-internal-format, gfc-internal-format
42365 msgid "Invalid type-spec at %C"
42366 msgstr "Especificación de tipo inválida en %C"
42367
42368-#: fortran/match.c:2117
42369+#: fortran/match.c:2116
42370 #, gcc-internal-format, gfc-internal-format
42371 msgid "Syntax error in FORALL iterator at %C"
42372 msgstr "Error sintáctico en el iterador FORALL en %C"
42373
42374-#: fortran/match.c:2385
42375+#: fortran/match.c:2384
42376 #, gcc-internal-format, gfc-internal-format
42377 msgid "Fortran 2008: DO CONCURRENT construct at %C"
42378 msgstr "Fortran 2008: Constructor DO CONCURRENT en %C"
42379
42380-#: fortran/match.c:2511
42381+#: fortran/match.c:2510
42382 #, gcc-internal-format, gfc-internal-format
42383 msgid "Name '%s' in %s statement at %C is unknown"
42384 msgstr "Se desconoce el nombre '%s' en la declaración %s en %C"
42385
42386-#: fortran/match.c:2519
42387+#: fortran/match.c:2518
42388 #, gcc-internal-format, gfc-internal-format
42389 msgid "Name '%s' in %s statement at %C is not a construct name"
42390 msgstr "El nombre '%s' en la declaración %s en %C no es un nombre de constructor"
42391
42392-#: fortran/match.c:2531
42393+#: fortran/match.c:2530
42394 #, gcc-internal-format, gfc-internal-format
42395 msgid "%s statement at %C leaves CRITICAL construct"
42396 msgstr "La declaración %s en %C deja una construcción CRITICAL"
42397
42398 #. F2008, C821 & C845.
42399-#: fortran/match.c:2539
42400+#: fortran/match.c:2538
42401 #, gcc-internal-format, gfc-internal-format
42402 msgid "%s statement at %C leaves DO CONCURRENT construct"
42403 msgstr "La declaración %s en %C deja una construcción DO CONCURRENT"
42404
42405-#: fortran/match.c:2551
42406+#: fortran/match.c:2550
42407 #, gcc-internal-format, gfc-internal-format
42408 msgid "%s statement at %C is not within a construct"
42409 msgstr "La declaración %s en %C no está dentro de una construcción"
42410
42411-#: fortran/match.c:2554
42412+#: fortran/match.c:2553
42413 #, gcc-internal-format, gfc-internal-format
42414 msgid "%s statement at %C is not within construct '%s'"
42415 msgstr "La declaración %s en %C no está dentro de la construcción '%s'"
42416
42417-#: fortran/match.c:2579
42418+#: fortran/match.c:2578
42419 #, gcc-internal-format, gfc-internal-format
42420 msgid "CYCLE statement at %C is not applicable to non-loop construct '%s'"
42421 msgstr "La declaración CYCLE en %C no se aplica a la construcción '%s' que no es bucle"
42422
42423-#: fortran/match.c:2584
42424+#: fortran/match.c:2583
42425 #, gcc-internal-format, gfc-internal-format
42426 msgid "Fortran 2008: EXIT statement with no do-construct-name at %C"
42427 msgstr "Fortran 2008: Declaración EXIT sin nombre de constructor do en %C"
42428
42429-#: fortran/match.c:2590
42430+#: fortran/match.c:2589
42431 #, gcc-internal-format, gfc-internal-format
42432 msgid "%s statement at %C is not applicable to construct '%s'"
42433 msgstr "La declaración %s en %C no se aplica a la construcción '%s'"
42434
42435-#: fortran/match.c:2597
42436+#: fortran/match.c:2596
42437 #, gcc-internal-format, gfc-internal-format
42438 msgid "%s statement at %C leaving OpenMP structured block"
42439 msgstr "La declaración %s en %C deja un bloque estructurado OpenMP"
42440
42441-#: fortran/match.c:2621
42442+#: fortran/match.c:2620
42443 #, gcc-internal-format, gfc-internal-format
42444 msgid "EXIT statement at %C terminating !$OMP DO loop"
42445 msgstr "La declaración EXIT en %C termina el bucle !$OMP DO"
42446
42447-#: fortran/match.c:2626
42448+#: fortran/match.c:2625
42449 #, gcc-internal-format, gfc-internal-format
42450 msgid "CYCLE statement at %C to non-innermost collapsed !$OMP DO loop"
42451 msgstr "La declaración CYCLE en %C para el bucle !$OMP DO colapsado que no es el más interno"
42452
42453-#: fortran/match.c:2693
42454+#: fortran/match.c:2692
42455 #, gcc-internal-format, gfc-internal-format
42456 msgid "Image control statement STOP at %C in CRITICAL block"
42457 msgstr "Declaración de control de imagen STOP en %C en el bloque CRITICAL"
42458
42459-#: fortran/match.c:2698
42460+#: fortran/match.c:2697
42461 #, gcc-internal-format, gfc-internal-format
42462 msgid "Image control statement STOP at %C in DO CONCURRENT block"
42463 msgstr "Declaración de control de imagen STOP en %C en el bloque DO CONCURRENT"
42464
42465-#: fortran/match.c:2706
42466+#: fortran/match.c:2705
42467 #, gcc-internal-format, gfc-internal-format
42468 msgid "STOP code at %L must be either INTEGER or CHARACTER type"
42469 msgstr "El código STOP en %L debe ser de tipo INTEGER o CHARACTER"
42470
42471-#: fortran/match.c:2713
42472+#: fortran/match.c:2712
42473 #, gcc-internal-format, gfc-internal-format
42474 msgid "STOP code at %L must be scalar"
42475 msgstr "El código STOP en %L debe ser escalar"
42476
42477-#: fortran/match.c:2721
42478+#: fortran/match.c:2720
42479 #, gcc-internal-format, gfc-internal-format
42480 msgid "STOP code at %L must be default character KIND=%d"
42481 msgstr "El código STOP en %L debe ser un carácter por defecto KIND=%d"
42482
42483-#: fortran/match.c:2729
42484+#: fortran/match.c:2728
42485 #, gcc-internal-format, gfc-internal-format
42486 msgid "STOP code at %L must be default integer KIND=%d"
42487 msgstr "El código STOP en %L debe ser un entero por defecto KIND=%d"
42488
42489-#: fortran/match.c:2775
42490+#: fortran/match.c:2774
42491 #, gcc-internal-format, gfc-internal-format
42492 msgid "Deleted feature: PAUSE statement at %C"
42493 msgstr "Característica eliminada: declaración PAUSE en %C"
42494
42495-#: fortran/match.c:2798
42496+#: fortran/match.c:2797
42497 #, gcc-internal-format, gfc-internal-format
42498 msgid "Fortran 2008: ERROR STOP statement at %C"
42499 msgstr "Fortran 2008: Declaración ERROR STOP en %C"
42500
42501-#: fortran/match.c:2824
42502+#: fortran/match.c:2823
42503 #, gcc-internal-format, gfc-internal-format
42504 msgid "Image control statement %s at %C in PURE procedure"
42505 msgstr "Declaración de control de imagen %s en %C en un procedimiento PURE"
42506
42507-#: fortran/match.c:2840
42508+#: fortran/match.c:2839
42509 #, gcc-internal-format, gfc-internal-format
42510 msgid "Image control statement %s at %C in CRITICAL block"
42511 msgstr "Declaración de control de imagen %s en %C en el bloque CRITICAL"
42512
42513-#: fortran/match.c:2847
42514+#: fortran/match.c:2846
42515 #, gcc-internal-format, gfc-internal-format
42516 msgid "Image control statement %s at %C in DO CONCURRENT block"
42517 msgstr "Declaración de control de imagen %s en %C en el bloque DO CONCURRENT"
42518
42519-#: fortran/match.c:2877 fortran/match.c:3088 fortran/match.c:3600
42520-#: fortran/match.c:3924
42521+#: fortran/match.c:2876 fortran/match.c:3087 fortran/match.c:3599
42522+#: fortran/match.c:3923
42523 #, gcc-internal-format, gfc-internal-format
42524 msgid "Redundant STAT tag found at %L "
42525 msgstr "Se encontró una etiqueta STAT redundante en %L "
42526
42527-#: fortran/match.c:2898 fortran/match.c:3108 fortran/match.c:3627
42528-#: fortran/match.c:3950
42529+#: fortran/match.c:2897 fortran/match.c:3107 fortran/match.c:3626
42530+#: fortran/match.c:3949
42531 #, gcc-internal-format, gfc-internal-format
42532 msgid "Redundant ERRMSG tag found at %L "
42533 msgstr "Se encontró una etiqueta ERRMSG redundante en %L "
42534
42535-#: fortran/match.c:2919
42536+#: fortran/match.c:2918
42537 #, gcc-internal-format, gfc-internal-format
42538 msgid "Redundant ACQUIRED_LOCK tag found at %L "
42539 msgstr "Se encontró una etiqueta ACQUIRED_LOCK redundante en %L "
42540
42541-#: fortran/match.c:2980
42542+#: fortran/match.c:2979
42543 #, gcc-internal-format, gfc-internal-format
42544 msgid "Fortran 2008: LOCK statement at %C"
42545 msgstr "Fortran 2008: Declaración LOCK en %C"
42546
42547-#: fortran/match.c:2991
42548+#: fortran/match.c:2990
42549 #, gcc-internal-format, gfc-internal-format
42550 msgid "Fortran 2008: UNLOCK statement at %C"
42551 msgstr "Fortran 2008: Declaración UNLOCK en %C"
42552
42553-#: fortran/match.c:3017
42554+#: fortran/match.c:3016
42555 #, gcc-internal-format, gfc-internal-format
42556 msgid "Image control statement SYNC at %C in PURE procedure"
42557 msgstr "Declaración de control de imagen SYNC en %C en un procedimiento PURE"
42558
42559-#: fortran/match.c:3024
42560+#: fortran/match.c:3023
42561 #, gcc-internal-format, gfc-internal-format
42562 msgid "Fortran 2008: SYNC statement at %C"
42563 msgstr "Fortran 2008: Declaración SYNC en %C"
42564
42565-#: fortran/match.c:3036
42566+#: fortran/match.c:3035
42567 #, gcc-internal-format, gfc-internal-format
42568 msgid "Image control statement SYNC at %C in CRITICAL block"
42569 msgstr "Declaración de control de imagen SYNC en %C en un bloque CRITICAL"
42570
42571-#: fortran/match.c:3042
42572+#: fortran/match.c:3041
42573 #, gcc-internal-format, gfc-internal-format
42574 msgid "Image control statement SYNC at %C in DO CONCURRENT block"
42575 msgstr "Declaración de control de imagen SYNC en %C en un bloque DO CONCURRENT"
42576
42577-#: fortran/match.c:3222
42578+#: fortran/match.c:3221
42579 #, gcc-internal-format, gfc-internal-format
42580 msgid "Deleted feature: ASSIGN statement at %C"
42581 msgstr "Característica eliminada: declaración ASSIGN en %C"
42582
42583-#: fortran/match.c:3268
42584+#: fortran/match.c:3267
42585 #, gcc-internal-format, gfc-internal-format
42586 msgid "Deleted feature: Assigned GOTO statement at %C"
42587 msgstr "Característica eliminada: declaración GOTO asignada en %C"
42588
42589-#: fortran/match.c:3315 fortran/match.c:3368
42590+#: fortran/match.c:3314 fortran/match.c:3367
42591 #, gcc-internal-format, gfc-internal-format
42592 msgid "Statement label list in GOTO at %C cannot be empty"
42593 msgstr "La lista de etiquetas de declaración en GOTO en %C no puede estar vacía"
42594
42595-#: fortran/match.c:3378
42596+#: fortran/match.c:3377
42597 #, gcc-internal-format, gfc-internal-format
42598 msgid "Obsolescent feature: Computed GOTO at %C"
42599 msgstr "Característica obsoleta: GOTO computado en %C"
42600
42601-#: fortran/match.c:3450
42602+#: fortran/match.c:3449
42603 #, gcc-internal-format, gfc-internal-format
42604 msgid "Error in type-spec at %L"
42605 msgstr "Error en la especificación de tipo en %L"
42606
42607-#: fortran/match.c:3460
42608+#: fortran/match.c:3459
42609 #, gcc-internal-format, gfc-internal-format
42610 msgid "Fortran 2003: typespec in ALLOCATE at %L"
42611 msgstr "Fortran 2003: Especificación de tipo en ALLOCATE en %L"
42612
42613-#: fortran/match.c:3499
42614+#: fortran/match.c:3498
42615 #, gcc-internal-format, gfc-internal-format
42616 msgid "Bad allocate-object at %C for a PURE procedure"
42617 msgstr "Objeto de alojamiento erróneo en %C para un procedimiento PURE"
42618
42619-#: fortran/match.c:3524
42620+#: fortran/match.c:3523
42621 #, gcc-internal-format, gfc-internal-format
42622 msgid "ALLOCATE of coarray at %C in DO CONCURRENT block"
42623 msgstr "ALLOCATE de comatriz en %C en el bloque DO CONCURRENT"
42624
42625-#: fortran/match.c:3529
42626+#: fortran/match.c:3528
42627 #, gcc-internal-format, gfc-internal-format
42628 msgid "ALLOCATE of coarray at %C in CRITICAL block"
42629 msgstr "ALLOCATE de comatriz en %C en el bloque CRITICAL"
42630
42631-#: fortran/match.c:3541
42632+#: fortran/match.c:3540
42633 #, gcc-internal-format, gfc-internal-format
42634 msgid "Type of entity at %L is type incompatible with typespec"
42635 msgstr "El tipo de entidad en %L es de tipo incompatible con la especificación de tipo"
42636
42637-#: fortran/match.c:3549
42638+#: fortran/match.c:3548
42639 #, gcc-internal-format, gfc-internal-format
42640 msgid "Kind type parameter for entity at %L differs from the kind type parameter of the typespec"
42641 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"
42642
42643-#: fortran/match.c:3576
42644+#: fortran/match.c:3575
42645 #, gcc-internal-format, gfc-internal-format
42646 msgid "Allocate-object at %L is not a nonprocedure pointer or an allocatable variable"
42647 msgstr "El objeto de alojamiento en %L no es un puntero que no es procedimiento o una variable de alojamiento"
42648
42649-#: fortran/match.c:3583
42650+#: fortran/match.c:3582
42651 #, gcc-internal-format, gfc-internal-format
42652 msgid "Shape specification for allocatable scalar at %C"
42653 msgstr "Especificación de forma para el escalar asignable en %C"
42654
42655-#: fortran/match.c:3620
42656+#: fortran/match.c:3619
42657 #, gcc-internal-format, gfc-internal-format
42658 msgid "Fortran 2003: ERRMSG tag at %L"
42659 msgstr "Fortran 2003: Etiqueta ERRMSG en %L"
42660
42661-#: fortran/match.c:3644
42662+#: fortran/match.c:3643
42663 #, gcc-internal-format, gfc-internal-format
42664 msgid "Fortran 2003: SOURCE tag at %L"
42665 msgstr "Fortran 2003: Etiqueta SOURCE en %L"
42666
42667-#: fortran/match.c:3651
42668+#: fortran/match.c:3650
42669 #, gcc-internal-format, gfc-internal-format
42670 msgid "Redundant SOURCE tag found at %L "
42671 msgstr "Se encontró una etiqueta SOURCE redundante en %L "
42672
42673-#: fortran/match.c:3658
42674+#: fortran/match.c:3657
42675 #, gcc-internal-format, gfc-internal-format
42676 msgid "SOURCE tag at %L conflicts with the typespec at %L"
42677 msgstr "La etiqueta SOURCE en %L tiene conflictos con la especificación de tipo en %L"
42678
42679-#: fortran/match.c:3664
42680+#: fortran/match.c:3663
42681 #, gcc-internal-format, gfc-internal-format
42682-msgid "Fortran 2008: SOURCE tag at %L with more than a single allocate objects"
42683+msgid "Fortran 2008: SOURCE tag at %L with more than a single allocate object"
42684 msgstr "Fortran 2008: Etiqueta SOURCE en %L con más de un objeto de alojamiento sencillo"
42685
42686-#: fortran/match.c:3682
42687+#: fortran/match.c:3681
42688 #, gcc-internal-format, gfc-internal-format
42689 msgid "Fortran 2008: MOLD tag at %L"
42690 msgstr "Fortran 2008: Etiqueta MOLD en %L"
42691
42692-#: fortran/match.c:3689
42693+#: fortran/match.c:3688
42694 #, gcc-internal-format, gfc-internal-format
42695 msgid "Redundant MOLD tag found at %L "
42696 msgstr "Se encontró una etiqueta MOLD redundante en %L "
42697
42698-#: fortran/match.c:3696
42699+#: fortran/match.c:3695
42700 #, gcc-internal-format, gfc-internal-format
42701 msgid "MOLD tag at %L conflicts with the typespec at %L"
42702 msgstr "La etiqueta MOLD en %L tiene conflictos con la especificación de tipo en %L"
42703
42704-#: fortran/match.c:3722
42705+#: fortran/match.c:3721
42706 #, gcc-internal-format, gfc-internal-format
42707 msgid "MOLD tag at %L conflicts with SOURCE tag at %L"
42708 msgstr "La etiqueta MOLD en %L tiene conflictos con la etiqueta SOURCE en %L"
42709
42710-#: fortran/match.c:3730
42711+#: fortran/match.c:3729
42712 #, gcc-internal-format, gfc-internal-format
42713 msgid "Allocate-object at %L with a deferred type parameter requires either a type-spec or SOURCE tag or a MOLD tag"
42714 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"
42715
42716-#: fortran/match.c:3791
42717+#: fortran/match.c:3790
42718 #, gcc-internal-format, gfc-internal-format
42719-msgid "Pointer object at %C shall not be conindexed"
42720+msgid "Pointer object at %C shall not be coindexed"
42721 msgstr "El objeto puntero en %C no debe tener un coíndice"
42722
42723-#: fortran/match.c:3874
42724+#: fortran/match.c:3873
42725 #, gcc-internal-format, gfc-internal-format
42726 msgid "Illegal allocate-object at %C for a PURE procedure"
42727 msgstr "Objeto de alojamiento ilegal en %C para un procedimiento PURE"
42728
42729-#: fortran/match.c:3884
42730+#: fortran/match.c:3883
42731 #, gcc-internal-format, gfc-internal-format
42732 msgid "DEALLOCATE of coarray at %C in DO CONCURRENT block"
42733 msgstr "DEALLOCATE de comatriz en %C en el bloque DO CONCURRENT"
42734
42735-#: fortran/match.c:3891
42736+#: fortran/match.c:3890
42737 #, gcc-internal-format, gfc-internal-format
42738 msgid "DEALLOCATE of coarray at %C in CRITICAL block"
42739 msgstr "DEALLOCATE de comatriz en %C en el bloque CRITICAL"
42740
42741-#: fortran/match.c:3907
42742+#: fortran/match.c:3906
42743 #, gcc-internal-format, gfc-internal-format
42744 msgid "Allocate-object at %C is not a nonprocedure pointer or an allocatable variable"
42745 msgstr "El objeto de alojamiento en %C no es un puntero que no es procedimiento o una variable de alojamiento"
42746
42747-#: fortran/match.c:3944
42748+#: fortran/match.c:3943
42749 #, gcc-internal-format, gfc-internal-format
42750 msgid "Fortran 2003: ERRMSG at %L"
42751 msgstr "Fortran 2003: ERRMSG en %L"
42752
42753-#: fortran/match.c:4002
42754+#: fortran/match.c:4001
42755 #, gcc-internal-format, gfc-internal-format
42756 msgid "Image control statement RETURN at %C in CRITICAL block"
42757 msgstr "Declaración de control de imagen RETURN en %C en un bloque CRITICAL"
42758
42759-#: fortran/match.c:4008
42760+#: fortran/match.c:4007
42761 #, gcc-internal-format, gfc-internal-format
42762 msgid "Image control statement RETURN at %C in DO CONCURRENT block"
42763 msgstr "Declaración de control de imagen RETURN en %C en un bloque DO CRITICAL"
42764
42765-#: fortran/match.c:4017
42766+#: fortran/match.c:4016
42767 #, gcc-internal-format, gfc-internal-format
42768 msgid "Alternate RETURN statement at %C is only allowed within a SUBROUTINE"
42769 msgstr "La declaración RETURN alternativa en %C sólo se permite dentro de una SUBROUTINE"
42770
42771-#: fortran/match.c:4022
42772+#: fortran/match.c:4021
42773 #, gcc-internal-format, gfc-internal-format
42774 msgid "Obsolescent feature: Alternate RETURN at %C"
42775 msgstr "Característica obsoleta: RETURN alternativo en %C"
42776
42777-#: fortran/match.c:4052
42778+#: fortran/match.c:4051
42779 #, gcc-internal-format, gfc-internal-format
42780 msgid "Extension: RETURN statement in main program at %C"
42781 msgstr "Extensión: declaración RETURN en el programa principal en %C"
42782
42783-#: fortran/match.c:4080
42784+#: fortran/match.c:4079
42785 #, gcc-internal-format, gfc-internal-format
42786 msgid "Expected component reference at %C"
42787 msgstr "Se esperaba una referencia de componente en %C"
42788
42789-#: fortran/match.c:4086
42790+#: fortran/match.c:4085
42791 #, gcc-internal-format, gfc-internal-format
42792 msgid "Junk after CALL at %C"
42793 msgstr "Basura después de CALL en %C"
42794
42795-#: fortran/match.c:4096
42796+#: fortran/match.c:4095
42797 #, gcc-internal-format, gfc-internal-format
42798 msgid "Expected type-bound procedure or procedure pointer component at %C"
42799 msgstr "Se esperaba un procedimiento enlazado a tipo o un procedimiento de componente puntero en %C"
42800
42801-#: fortran/match.c:4316
42802+#: fortran/match.c:4315
42803 #, gcc-internal-format, gfc-internal-format
42804 msgid "Syntax error in common block name at %C"
42805 msgstr "Error sintáctico en el nombre de bloque común en %C"
42806
42807-#: fortran/match.c:4352
42808+#: fortran/match.c:4351
42809 #, gcc-internal-format, gfc-internal-format
42810 msgid "Symbol '%s' at %C is already an external symbol that is not COMMON"
42811 msgstr "El símbolo '%s' en %C ya es un símbolo externo que no es COMMON"
42812@@ -38997,137 +39203,137 @@
42813 #. If we find an error, just print it and continue,
42814 #. cause it's just semantic, and we can see if there
42815 #. are more errors.
42816-#: fortran/match.c:4411
42817+#: fortran/match.c:4410
42818 #, gcc-internal-format, gfc-internal-format
42819 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)"
42820 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)"
42821
42822-#: fortran/match.c:4420
42823+#: fortran/match.c:4419
42824 #, gcc-internal-format, gfc-internal-format
42825 msgid "Variable '%s' in common block '%s' at %C can not be bind(c) since it is not global"
42826 msgstr "La variable '%s' en el bloque común '%s' en %C no puede ser bind(c) porque no es global"
42827
42828-#: fortran/match.c:4427
42829+#: fortran/match.c:4426
42830 #, gcc-internal-format, gfc-internal-format
42831 msgid "Symbol '%s' at %C is already in a COMMON block"
42832 msgstr "El símbolo '%s' en %C ya está en un bloque COMMON"
42833
42834-#: fortran/match.c:4435
42835+#: fortran/match.c:4434
42836 #, gcc-internal-format, gfc-internal-format
42837 msgid "Initialized symbol '%s' at %C can only be COMMON in BLOCK DATA"
42838 msgstr "El símbolo inicializado '%s' en %C sólo puede ser COMMON en BLOCK DATA"
42839
42840-#: fortran/match.c:4462
42841+#: fortran/match.c:4461
42842 #, gcc-internal-format, gfc-internal-format
42843 msgid "Array specification for symbol '%s' in COMMON at %C must be explicit"
42844 msgstr "La especificación de matriz para el símbolo '%s' en COMMON en %C debe ser explícita"
42845
42846-#: fortran/match.c:4472
42847+#: fortran/match.c:4471
42848 #, gcc-internal-format, gfc-internal-format
42849 msgid "Symbol '%s' in COMMON at %C cannot be a POINTER array"
42850 msgstr "El símbolo '%s' en COMMON en %C no puede ser una matriz POINTER"
42851
42852-#: fortran/match.c:4504
42853+#: fortran/match.c:4503
42854 #, gcc-internal-format, gfc-internal-format
42855 msgid "Symbol '%s', in COMMON block '%s' at %C is being indirectly equivalenced to another COMMON block '%s'"
42856 msgstr "El símbolo '%s', en el bloque COMMON '%s' en %C está siendo indirectamente equivalente a otro bloque COMMON '%s'"
42857
42858-#: fortran/match.c:4612
42859+#: fortran/match.c:4611
42860 #, gcc-internal-format, gfc-internal-format
42861 msgid "Namelist group name '%s' at %C already has a basic type of %s"
42862 msgstr "El nombre de grupo de lista de nombres '%s' en %C ya tiene un tipo básico de %s"
42863
42864-#: fortran/match.c:4620
42865+#: fortran/match.c:4619
42866 #, gcc-internal-format, gfc-internal-format
42867 msgid "Namelist group name '%s' at %C already is USE associated and cannot be respecified."
42868 msgstr "El nombre de grupo de lista de nombres '%s' en %C ya está asociado con USE y no se puede reespecificar."
42869
42870-#: fortran/match.c:4647
42871+#: fortran/match.c:4646
42872 #, gcc-internal-format, gfc-internal-format
42873 msgid "Assumed size array '%s' in namelist '%s' at %C is not allowed"
42874 msgstr "No se permite la matriz de tamaño asumido '%s' en la lista de nombres '%s' en %C"
42875
42876-#: fortran/match.c:4781
42877+#: fortran/match.c:4780
42878 #, gcc-internal-format, gfc-internal-format
42879 msgid "Derived type component %C is not a permitted EQUIVALENCE member"
42880 msgstr "El componente de tipo derivado %C no es un miembro EQUIVALENCE permitido"
42881
42882-#: fortran/match.c:4789
42883+#: fortran/match.c:4788
42884 #, gcc-internal-format, gfc-internal-format
42885 msgid "Array reference in EQUIVALENCE at %C cannot be an array section"
42886 msgstr "La referencia a matriz en EQUIVALENCE en %C no puede ser una sección de matriz"
42887
42888-#: fortran/match.c:4817
42889+#: fortran/match.c:4816
42890 #, gcc-internal-format, gfc-internal-format
42891 msgid "EQUIVALENCE at %C requires two or more objects"
42892 msgstr "El EQUIVALENCE en %C requiere dos o más objetos"
42893
42894-#: fortran/match.c:4831
42895+#: fortran/match.c:4830
42896 #, gcc-internal-format, gfc-internal-format
42897 msgid "Attempt to indirectly overlap COMMON blocks %s and %s by EQUIVALENCE at %C"
42898 msgstr "Se intentó sobreescribir indirectamente los bloques COMMON %s y %s con EQUIVALENCE en %C"
42899
42900-#: fortran/match.c:4844
42901+#: fortran/match.c:4843
42902 #, gcc-internal-format, gfc-internal-format
42903 msgid "Expecting a comma in EQUIVALENCE at %C"
42904 msgstr "Se esperaba una coma en EQUIVALENCE en %C"
42905
42906-#: fortran/match.c:4960
42907+#: fortran/match.c:4959
42908 #, gcc-internal-format, gfc-internal-format
42909 msgid "Statement function at %L is recursive"
42910 msgstr "La función de declaración en %L es recursiva"
42911
42912-#: fortran/match.c:4966
42913+#: fortran/match.c:4965
42914 #, gcc-internal-format, gfc-internal-format
42915 msgid "Obsolescent feature: Statement function at %C"
42916 msgstr "Característica obsoleta: Función de declaración en %C"
42917
42918-#: fortran/match.c:5052
42919+#: fortran/match.c:5051
42920 #, gcc-internal-format, gfc-internal-format
42921 msgid "Expected initialization expression in CASE at %C"
42922 msgstr "Se esperaba la inicialización de la expresión en CASE en %C"
42923
42924-#: fortran/match.c:5084
42925+#: fortran/match.c:5083
42926 #, gcc-internal-format, gfc-internal-format
42927 msgid "Expected block name '%s' of SELECT construct at %C"
42928 msgstr "Se esperaba el nombre de bloque '%s' de la construcción SELECT en %C"
42929
42930-#: fortran/match.c:5268
42931+#: fortran/match.c:5267
42932 #, gcc-internal-format, gfc-internal-format
42933 msgid "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
42934 msgstr "El selector en SELECT TYPE en %C no es una variable nombrada; use nombre-asociado =>"
42935
42936-#: fortran/match.c:5301
42937+#: fortran/match.c:5300
42938 #, gcc-internal-format, gfc-internal-format
42939 msgid "Unexpected CASE statement at %C"
42940 msgstr "Declaración CASE inesperada en %C"
42941
42942-#: fortran/match.c:5353
42943+#: fortran/match.c:5352
42944 #, gcc-internal-format, gfc-internal-format
42945 msgid "Syntax error in CASE specification at %C"
42946 msgstr "Error sintáctico en la especificación CASE en %C"
42947
42948-#: fortran/match.c:5371
42949+#: fortran/match.c:5370
42950 #, gcc-internal-format, gfc-internal-format
42951 msgid "Unexpected TYPE IS statement at %C"
42952 msgstr "Declaración TYPE IS inesperada en %C"
42953
42954-#: fortran/match.c:5404
42955+#: fortran/match.c:5403
42956 #, gcc-internal-format, gfc-internal-format
42957 msgid "Syntax error in TYPE IS specification at %C"
42958 msgstr "Error sintáctico en la especificación TYPE IS en %C"
42959
42960-#: fortran/match.c:5477
42961+#: fortran/match.c:5476
42962 #, gcc-internal-format, gfc-internal-format
42963 msgid "Syntax error in CLASS IS specification at %C"
42964 msgstr "Error sintáctico en la especificación CLASS IS en %C"
42965
42966-#: fortran/match.c:5599
42967+#: fortran/match.c:5598
42968 #, gcc-internal-format, gfc-internal-format
42969 msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
42970 msgstr "La declaración ELSEWHERE en %C no está dentro de un bloque WHERE"
42971
42972-#: fortran/match.c:5637
42973+#: fortran/match.c:5636
42974 #, gcc-internal-format, gfc-internal-format
42975 msgid "Label '%s' at %C doesn't match WHERE label '%s'"
42976 msgstr "La etiqueta '%s' en %C no coincide con la etiqueta WHERE '%s'"
42977@@ -39158,190 +39364,190 @@
42978 msgid "Extension: Unary operator following arithmetic operator (use parentheses) at %C"
42979 msgstr "Extensión: Operador unario después de un operador aritmético (usar paréntesis) en %C"
42980
42981-#: fortran/module.c:548
42982+#: fortran/module.c:555
42983 #, gcc-internal-format, gfc-internal-format
42984 msgid "Fortran 2003: module nature in USE statement at %C"
42985 msgstr "Fortran 2003: módulo natural en la declaración USE en %C"
42986
42987-#: fortran/module.c:560
42988+#: fortran/module.c:567
42989 #, gcc-internal-format, gfc-internal-format
42990 msgid "Module nature in USE statement at %C shall be either INTRINSIC or NON_INTRINSIC"
42991 msgstr "El módulo natural en la declaración USE en %C debe ser uno de INTRINSIC o NON_INTRINSIC"
42992
42993-#: fortran/module.c:573
42994+#: fortran/module.c:580
42995 #, gcc-internal-format, gfc-internal-format
42996 msgid "\"::\" was expected after module nature at %C but was not found"
42997 msgstr "Se esperaba \"::\" después del módulo natural en %C pero no se encontró"
42998
42999-#: fortran/module.c:583
43000+#: fortran/module.c:590
43001 #, gcc-internal-format, gfc-internal-format
43002 msgid "Fortran 2003: \"USE :: module\" at %C"
43003 msgstr "Fortran 2003: \"USE :: module\" en %C"
43004
43005-#: fortran/module.c:643
43006+#: fortran/module.c:650
43007 #, gcc-internal-format, gfc-internal-format
43008 msgid "Missing generic specification in USE statement at %C"
43009 msgstr "Falta la especificación genérica en la declaración USE en %C"
43010
43011-#: fortran/module.c:651
43012+#: fortran/module.c:658
43013 #, gcc-internal-format, gfc-internal-format
43014 msgid "Fortran 2003: Renaming operators in USE statements at %C"
43015 msgstr "Fortran 2003: Se renombran operadores en declaraciones USE en %C"
43016
43017-#: fortran/module.c:693
43018+#: fortran/module.c:700
43019 #, gcc-internal-format, gfc-internal-format
43020 msgid "The name '%s' at %C has already been used as an external module name."
43021 msgstr "El nombre '%s' en %C ya se está usando como un nombre de módulo externo."
43022
43023-#: fortran/module.c:1006
43024+#: fortran/module.c:1013
43025 #, gcc-internal-format, gfc-internal-format
43026 msgid "Reading module %s at line %d column %d: %s"
43027 msgstr "Leyendo el módulo %s en la línea %d columna %d: %s"
43028
43029-#: fortran/module.c:1010
43030+#: fortran/module.c:1017
43031 #, gcc-internal-format, gfc-internal-format
43032 msgid "Writing module %s at line %d column %d: %s"
43033 msgstr "Escribiendo el módulo %s en la línea %d columna %d: %s"
43034
43035-#: fortran/module.c:1014
43036+#: fortran/module.c:1021
43037 #, gcc-internal-format, gfc-internal-format
43038 msgid "Module %s at line %d column %d: %s"
43039 msgstr "Módulo %s en la línea %d columna %d: %s"
43040
43041-#: fortran/module.c:1449
43042+#: fortran/module.c:1469
43043 #, gcc-internal-format, gfc-internal-format
43044 msgid "Error writing modules file: %s"
43045 msgstr "Error al escribir el fichero de módulos: %s"
43046
43047-#: fortran/module.c:3396
43048+#: fortran/module.c:3416
43049 #, gcc-internal-format, gfc-internal-format
43050 msgid "Namelist %s cannot be renamed by USE association to %s"
43051 msgstr "La lista de nombres %s no se puede renombrar por asociación de USE a %s"
43052
43053-#: fortran/module.c:4427
43054+#: fortran/module.c:4461
43055 #, gcc-internal-format, gfc-internal-format
43056 msgid "'%s' of module '%s', imported at %C, is also the name of the current program unit"
43057 msgstr "'%s' del módulo '%s', importado en %C, es también el nombre de la unidad de programa actual"
43058
43059-#: fortran/module.c:4722
43060+#: fortran/module.c:4760
43061 #, gcc-internal-format, gfc-internal-format
43062 msgid "Symbol '%s' referenced at %L not found in module '%s'"
43063 msgstr "El símbolo '%s' referenciado en %L no se encontró en el módulo '%s'"
43064
43065-#: fortran/module.c:4729
43066+#: fortran/module.c:4767
43067 #, gcc-internal-format, gfc-internal-format
43068 msgid "User operator '%s' referenced at %L not found in module '%s'"
43069 msgstr "El operador de usuario '%s' referenciado en %L no se encontró en el módulo '%s'"
43070
43071-#: fortran/module.c:4734
43072+#: fortran/module.c:4772
43073 #, gcc-internal-format, gfc-internal-format
43074 msgid "Intrinsic operator '%s' referenced at %L not found in module '%s'"
43075 msgstr "El operador intrínseco '%s' referenciado en %L no se encontró en el módulo '%s'"
43076
43077-#: fortran/module.c:5372
43078+#: fortran/module.c:5409
43079 #, gcc-internal-format, gfc-internal-format
43080 msgid "Can't open module file '%s' for writing at %C: %s"
43081 msgstr "No se puede abrir el fichero de módulo '%s' para escritura en %C: %s"
43082
43083 # El mensaje de error seguramente está mal redactado. cfuga
43084-#: fortran/module.c:5405
43085+#: fortran/module.c:5442
43086 #, gcc-internal-format, gfc-internal-format
43087 msgid "Error writing module file '%s' for writing: %s"
43088 msgstr "Error al escribir al fichero de módulo '%s' para escritura: %s"
43089
43090-#: fortran/module.c:5414
43091+#: fortran/module.c:5451
43092 #, gcc-internal-format, gfc-internal-format
43093 msgid "Can't delete module file '%s': %s"
43094 msgstr "No se puede borrar el fichero de módulo '%s': %s"
43095
43096-#: fortran/module.c:5417
43097+#: fortran/module.c:5454
43098 #, gcc-internal-format, gfc-internal-format
43099 msgid "Can't rename module file '%s' to '%s': %s"
43100 msgstr "No se puede renombrar el fichero de módulo '%s' a '%s': %s"
43101
43102-#: fortran/module.c:5423
43103+#: fortran/module.c:5460
43104 #, gcc-internal-format, gfc-internal-format
43105 msgid "Can't delete temporary module file '%s': %s"
43106 msgstr "No se puede borrar el fichero de módulo temporal '%s': %s"
43107
43108-#: fortran/module.c:5442 fortran/module.c:5654 fortran/module.c:5687
43109-#: fortran/module.c:5729
43110+#: fortran/module.c:5479 fortran/module.c:5691 fortran/module.c:5724
43111+#: fortran/module.c:5766
43112 #, gcc-internal-format, gfc-internal-format
43113 msgid "Symbol '%s' already declared"
43114 msgstr "El símbolo '%s' ya se había declarado"
43115
43116-#: fortran/module.c:5546 fortran/module.c:5825
43117+#: fortran/module.c:5583 fortran/module.c:5862
43118 #, gcc-internal-format, gfc-internal-format
43119 msgid "The symbol '%s', referenced at %L, is not in the selected standard"
43120 msgstr "El símbolo '%s' referenciado en %L, no está en el módulo estándar"
43121
43122-#: fortran/module.c:5633
43123+#: fortran/module.c:5670
43124 #, gcc-internal-format, gfc-internal-format
43125 msgid "Symbol '%s' referenced at %L not found in intrinsic module ISO_C_BINDING"
43126 msgstr "El símbolo '%s' referenciado en %L no se encontró en el módulo intrínseco ISO_C_BINDING"
43127
43128-#: fortran/module.c:5810
43129+#: fortran/module.c:5847
43130 #, gcc-internal-format, gfc-internal-format
43131 msgid "Use of intrinsic module '%s' at %C conflicts with non-intrinsic module name used previously"
43132 msgstr "El uso del módulo intrínseco '%s' en %C tiene conflictos con un nombre de módulo no intrínseco usado previamente"
43133
43134-#: fortran/module.c:5833
43135+#: fortran/module.c:5870
43136 #, gcc-internal-format, gfc-internal-format
43137 msgid "Use of the NUMERIC_STORAGE_SIZE named constant from intrinsic module ISO_FORTRAN_ENV at %L is incompatible with option %s"
43138 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"
43139
43140-#: fortran/module.c:5903
43141+#: fortran/module.c:5940
43142 #, gcc-internal-format, gfc-internal-format
43143 msgid "Use of the NUMERIC_STORAGE_SIZE named constant from intrinsic module ISO_FORTRAN_ENV at %C is incompatible with option %s"
43144 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"
43145
43146-#: fortran/module.c:5961
43147+#: fortran/module.c:5998
43148 #, gcc-internal-format, gfc-internal-format
43149 msgid "Symbol '%s' referenced at %L not found in intrinsic module ISO_FORTRAN_ENV"
43150 msgstr "El símbolo '%s' referenciado en %L no se encontró en el módulo intrínseco ISO_FORTRAN_ENV"
43151
43152-#: fortran/module.c:6000
43153+#: fortran/module.c:6037
43154 #, gcc-internal-format, gfc-internal-format
43155 msgid "Fortran 2003: ISO_FORTRAN_ENV intrinsic module at %C"
43156 msgstr "Fortran 2003: Módulo intrínseco ISO_FORTRAN_ENV en %C"
43157
43158-#: fortran/module.c:6010
43159+#: fortran/module.c:6047
43160 #, gcc-internal-format, gfc-internal-format
43161 msgid "Fortran 2003: ISO_C_BINDING module at %C"
43162 msgstr "Fortran 2003: Módulo ISO_C_BINDING en %C"
43163
43164-#: fortran/module.c:6022
43165+#: fortran/module.c:6059
43166 #, gcc-internal-format, gfc-internal-format
43167 msgid "Can't find an intrinsic module named '%s' at %C"
43168 msgstr "No se puede encontrar un módulo intrínseco llamado '%s' en %C"
43169
43170-#: fortran/module.c:6027
43171+#: fortran/module.c:6064
43172 #, gcc-internal-format, gfc-internal-format
43173 msgid "Can't open module file '%s' for reading at %C: %s"
43174 msgstr "No se puede abrir el fichero de módulo '%s' para lectura en %C: %s"
43175
43176-#: fortran/module.c:6035
43177+#: fortran/module.c:6072
43178 #, gcc-internal-format, gfc-internal-format
43179 msgid "Use of non-intrinsic module '%s' at %C conflicts with intrinsic module name used previously"
43180 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"
43181
43182-#: fortran/module.c:6055
43183+#: fortran/module.c:6092
43184 #, gcc-internal-format, gfc-internal-format
43185 msgid "File '%s' opened at %C is not a GFORTRAN module file"
43186 msgstr "El fichero '%s' abierto en %C no es un fichero de módulo GFORTRAN"
43187
43188-#: fortran/module.c:6062
43189+#: fortran/module.c:6099
43190 #, gcc-internal-format, gfc-internal-format
43191 msgid "Parse error when checking module version for file '%s' opened at %C"
43192 msgstr "Error de decodificación al revisar la versión de módulo para el fichero '%s' abierto en %C"
43193
43194-#: fortran/module.c:6067
43195+#: fortran/module.c:6104
43196 #, gcc-internal-format, gfc-internal-format
43197 msgid "Wrong module version '%s' (expected '%s') for file '%s' opened at %C"
43198 msgstr "Versión de módulo '%s' errónea (se esperaba '%s) para el fichero '%s' abierto en %C"
43199
43200 # No se puede hacer el mismo juego de palabras que en inglés. cfuga
43201-#: fortran/module.c:6082
43202+#: fortran/module.c:6119
43203 #, gcc-internal-format
43204 msgid "Can't USE the same module we're building!"
43205 msgstr "¡No se puede hacer USE del mismo módulo que estamos construyendo!"
43206@@ -39426,7 +39632,7 @@
43207 msgid "Unexpected junk after NOWAIT clause at %C"
43208 msgstr "Basura inesperada después de la cláusula NOWAIT en %C"
43209
43210-#: fortran/openmp.c:819 fortran/resolve.c:8998 fortran/resolve.c:9476
43211+#: fortran/openmp.c:819 fortran/resolve.c:8985 fortran/resolve.c:9463
43212 #, gcc-internal-format, gfc-internal-format
43213 msgid "IF clause at %L requires a scalar LOGICAL expression"
43214 msgstr "La cláusula IF en %L requiere una expresión LOGICAL escalar"
43215@@ -40745,713 +40951,713 @@
43216 msgid "Non-RECURSIVE procedure '%s' at %L is possibly calling itself recursively. Declare it RECURSIVE or use -frecursive"
43217 msgstr "El procedimiento que no es RECURSIVE '%s' en %L posiblemente se está llamando a sí mismo recursivamente. Declárelo RECURSIVE o utilice -frecursive"
43218
43219-#: fortran/resolve.c:1620 fortran/resolve.c:8534 fortran/resolve.c:9423
43220+#: fortran/resolve.c:1610 fortran/resolve.c:8521 fortran/resolve.c:9410
43221 #, gcc-internal-format, gfc-internal-format
43222 msgid "Label %d referenced at %L is never defined"
43223 msgstr "La etiqueta %d referenciada en %L nunca se define"
43224
43225-#: fortran/resolve.c:1665
43226+#: fortran/resolve.c:1655
43227 #, gcc-internal-format, gfc-internal-format
43228 msgid "Statement function '%s' at %L is not allowed as an actual argument"
43229 msgstr "La función de declaración '%s' en %L no se permite como un argumento actual"
43230
43231-#: fortran/resolve.c:1673
43232+#: fortran/resolve.c:1663
43233 #, gcc-internal-format, gfc-internal-format
43234 msgid "Intrinsic '%s' at %L is not allowed as an actual argument"
43235 msgstr "El intrínseco '%s' en %L no se permite como un argumento actual"
43236
43237-#: fortran/resolve.c:1681
43238+#: fortran/resolve.c:1671
43239 #, gcc-internal-format, gfc-internal-format
43240 msgid "Fortran 2008: Internal procedure '%s' is used as actual argument at %L"
43241 msgstr "Fortran 2008: Se usa el procedimiento interno '%s' como un argumento actual en %L"
43242
43243-#: fortran/resolve.c:1689
43244+#: fortran/resolve.c:1679
43245 #, gcc-internal-format, gfc-internal-format
43246 msgid "ELEMENTAL non-INTRINSIC procedure '%s' is not allowed as an actual argument at %L"
43247 msgstr "El procedimiento ELEMENTAL que no es INTRINSIC '%s' no se permite como un argumento actual en %L"
43248
43249-#: fortran/resolve.c:1716
43250+#: fortran/resolve.c:1706
43251 #, gcc-internal-format, gfc-internal-format
43252 msgid "Unable to find a specific INTRINSIC procedure for the reference '%s' at %L"
43253 msgstr "No se puede encontrar un procedimiento INTRINSIC específico para la referencia '%s' en %L"
43254
43255-#: fortran/resolve.c:1738
43256+#: fortran/resolve.c:1728
43257 #, gcc-internal-format, gfc-internal-format
43258 msgid "Symbol '%s' at %L is ambiguous"
43259 msgstr "El símbolo '%s' en %L es ambiguo"
43260
43261-#: fortran/resolve.c:1793
43262+#: fortran/resolve.c:1783
43263 #, gcc-internal-format, gfc-internal-format
43264 msgid "By-value argument at %L is not of numeric type"
43265 msgstr "El argumento por valor en %L no es de tipo numérico"
43266
43267-#: fortran/resolve.c:1800
43268+#: fortran/resolve.c:1790
43269 #, gcc-internal-format, gfc-internal-format
43270 msgid "By-value argument at %L cannot be an array or an array section"
43271 msgstr "El argumento por valor en %L no puede ser una matriz o una sección de matriz"
43272
43273-#: fortran/resolve.c:1814
43274+#: fortran/resolve.c:1804
43275 #, gcc-internal-format, gfc-internal-format
43276 msgid "By-value argument at %L is not allowed in this context"
43277 msgstr "El argumento por valor en %L no se permite en este contexto"
43278
43279-#: fortran/resolve.c:1826
43280+#: fortran/resolve.c:1816
43281 #, gcc-internal-format, gfc-internal-format
43282 msgid "Passing internal procedure at %L by location not allowed"
43283 msgstr "No se permite el paso del procedimiento interno en %L por ubicación"
43284
43285-#: fortran/resolve.c:1837
43286+#: fortran/resolve.c:1827
43287 #, gcc-internal-format, gfc-internal-format
43288 msgid "Coindexed actual argument at %L with ultimate pointer component"
43289 msgstr "Argumento actual coindizado en %L con componente puntero último"
43290
43291-#: fortran/resolve.c:1960
43292+#: fortran/resolve.c:1950
43293 #, gcc-internal-format, gfc-internal-format
43294 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)"
43295 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)"
43296
43297-#: fortran/resolve.c:1999
43298+#: fortran/resolve.c:1989
43299 #, gcc-internal-format, gfc-internal-format
43300 msgid "Actual argument at %L for INTENT(%s) dummy '%s' of ELEMENTAL subroutine '%s' is a scalar, but another actual argument is an array"
43301 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"
43302
43303-#: fortran/resolve.c:2161
43304+#: fortran/resolve.c:2151
43305 #, gcc-internal-format, gfc-internal-format
43306 msgid "Character length mismatch in return type of function '%s' at %L (%ld/%ld)"
43307 msgstr "No coincide la longitud de caracteres en el tipo de devolución de la función '%s' en %L (%ld/%ld)"
43308
43309-#: fortran/resolve.c:2169
43310+#: fortran/resolve.c:2159
43311 #, gcc-internal-format, gfc-internal-format
43312 msgid "Return type mismatch of function '%s' at %L (%s/%s)"
43313 msgstr "No coincide el tiop de devolución de la función '%s' en %L (%s/%s)"
43314
43315-#: fortran/resolve.c:2188
43316+#: fortran/resolve.c:2178
43317 #, gcc-internal-format, gfc-internal-format
43318 msgid "Dummy argument '%s' of procedure '%s' at %L has an attribute that requires an explicit interface for this procedure"
43319 msgstr "El argumento dummy '%s' del procedimiento '%s' en %L tiene un atributo que requiere una interfaz explícita para este procedimiento"
43320
43321-#: fortran/resolve.c:2198
43322+#: fortran/resolve.c:2188
43323 #, gcc-internal-format, gfc-internal-format
43324 msgid "Procedure '%s' at %L with assumed-shape dummy argument '%s' must have an explicit interface"
43325 msgstr "El procedimiento '%s' en %L con argumento dummy de forma asumida '%s' debe tener una interfaz explícita"
43326
43327-#: fortran/resolve.c:2206
43328+#: fortran/resolve.c:2196
43329 #, gcc-internal-format, gfc-internal-format
43330 msgid "Procedure '%s' at %L with coarray dummy argument '%s' must have an explicit interface"
43331 msgstr "El procedimiento '%s' en %L con argumento dummy de comatriz '%s' debe tener una interfaz explícita"
43332
43333-#: fortran/resolve.c:2214
43334+#: fortran/resolve.c:2204
43335 #, gcc-internal-format, gfc-internal-format
43336 msgid "Procedure '%s' at %L with parametrized derived type argument '%s' must have an explicit interface"
43337 msgstr "El procedimiento '%s' en %L con un argumento de tipo derivado parametrizado '%s' debe tener una interfaz explícita"
43338
43339-#: fortran/resolve.c:2223
43340+#: fortran/resolve.c:2213
43341 #, gcc-internal-format, gfc-internal-format
43342 msgid "Procedure '%s' at %L with polymorphic dummy argument '%s' must have an explicit interface"
43343 msgstr "El procedimiento '%s' en %L con argumento dummy polimórfico '%s' debe tener una interfaz explícita"
43344
43345-#: fortran/resolve.c:2235
43346+#: fortran/resolve.c:2225
43347 #, gcc-internal-format, gfc-internal-format
43348 msgid "The reference to function '%s' at %L either needs an explicit INTERFACE or the rank is incorrect"
43349 msgstr "La referencia a la función '%s' en %L necesita una INTERFACE explícita o el rango es incorrecto"
43350
43351-#: fortran/resolve.c:2247
43352+#: fortran/resolve.c:2237
43353 #, gcc-internal-format, gfc-internal-format
43354 msgid "Function '%s' at %L with a POINTER or ALLOCATABLE result must have an explicit interface"
43355 msgstr "La función '%s' en %L con un resultado POINTER o ALLOCATABLE debe tener una interfaz explícita"
43356
43357-#: fortran/resolve.c:2260
43358+#: fortran/resolve.c:2250
43359 #, gcc-internal-format, gfc-internal-format
43360 msgid "Nonconstant character-length function '%s' at %L must have an explicit interface"
43361 msgstr "La función de longitud de carácter automática '%s' que no es constante en %L debe una interfaz explícita"
43362
43363-#: fortran/resolve.c:2270
43364+#: fortran/resolve.c:2260
43365 #, gcc-internal-format, gfc-internal-format
43366 msgid "ELEMENTAL procedure '%s' at %L must have an explicit interface"
43367 msgstr "El procedimiento ELEMENTAL '%s' en %L debe tener una interfaz explícita"
43368
43369-#: fortran/resolve.c:2277
43370+#: fortran/resolve.c:2267
43371 #, gcc-internal-format, gfc-internal-format
43372 msgid "Procedure '%s' at %L with BIND(C) attribute must have an explicit interface"
43373 msgstr "El procedimiento '%s' en %L con atributo BIND(C) debe tener una interfaz explícita"
43374
43375-#: fortran/resolve.c:2383
43376+#: fortran/resolve.c:2373
43377 #, gcc-internal-format, gfc-internal-format
43378 msgid "There is no specific function for the generic '%s' at %L"
43379 msgstr "No hay una función específica para el genérico '%s' en %L"
43380
43381-#: fortran/resolve.c:2401
43382+#: fortran/resolve.c:2391
43383 #, gcc-internal-format, gfc-internal-format
43384 msgid "Generic function '%s' at %L is not consistent with a specific intrinsic interface"
43385 msgstr "La función genérica '%s' en %L no es consistente con una interfaz intrínseca específica"
43386
43387-#: fortran/resolve.c:2439
43388+#: fortran/resolve.c:2429
43389 #, gcc-internal-format, gfc-internal-format
43390 msgid "Function '%s' at %L is INTRINSIC but is not compatible with an intrinsic"
43391 msgstr "La función '%s' en %L es INTRINSIC pero no es compatible con un intrínseco"
43392
43393-#: fortran/resolve.c:2488
43394+#: fortran/resolve.c:2478
43395 #, gcc-internal-format, gfc-internal-format
43396 msgid "Unable to resolve the specific function '%s' at %L"
43397 msgstr "No se puede resolver la función específica '%s' en %L"
43398
43399-#: fortran/resolve.c:2544 fortran/resolve.c:13705
43400+#: fortran/resolve.c:2534 fortran/resolve.c:13693
43401 #, gcc-internal-format, gfc-internal-format
43402 msgid "Function '%s' at %L has no IMPLICIT type"
43403 msgstr "La función '%s' en %L no es de tipo IMPLICIT"
43404
43405-#: fortran/resolve.c:2746
43406+#: fortran/resolve.c:2735
43407 #, gcc-internal-format, gfc-internal-format
43408 msgid "Argument to '%s' at %L is not a variable"
43409 msgstr "El argumento de '%s' en %L no es una variable"
43410
43411-#: fortran/resolve.c:2793
43412+#: fortran/resolve.c:2779
43413 #, gcc-internal-format, gfc-internal-format
43414 msgid "More actual than formal arguments in '%s' call at %L"
43415 msgstr "Más argumentos actuales que formales en la llamada '%s' en %L"
43416
43417-#: fortran/resolve.c:2805
43418+#: fortran/resolve.c:2791
43419 #, gcc-internal-format, gfc-internal-format
43420 msgid "Parameter '%s' to '%s' at %L must be either a TARGET or an associated pointer"
43421 msgstr "El parámetro '%s' para '%s' en %L debe ser un TARGET o un puntero asociado"
43422
43423-#: fortran/resolve.c:2814
43424+#: fortran/resolve.c:2800
43425 #, gcc-internal-format, gfc-internal-format
43426 msgid "Coindexed argument not permitted in '%s' call at %L"
43427 msgstr "No se permite un argumento coindizado en la llamada '%s' en %L"
43428
43429-#: fortran/resolve.c:2837
43430+#: fortran/resolve.c:2823
43431 #, gcc-internal-format, gfc-internal-format
43432 msgid "Array section not permitted in '%s' call at %L"
43433 msgstr "No se permite una sección de matriz en la llamada '%s' en %L"
43434
43435-#: fortran/resolve.c:2848
43436+#: fortran/resolve.c:2834
43437 #, gcc-internal-format, gfc-internal-format
43438 msgid "Array section in '%s' call at %L"
43439 msgstr "Sección de matriz en la llamada '%s' en %L"
43440
43441-#: fortran/resolve.c:2867
43442+#: fortran/resolve.c:2853
43443 #, gcc-internal-format, gfc-internal-format
43444 msgid "Allocatable variable '%s' used as a parameter to '%s' at %L must not be an array of zero size"
43445 msgstr "La variable alojable '%s' usada como un parámetro para '%s' en %L no debe ser una matriz de tamaño cero"
43446
43447-#: fortran/resolve.c:2884
43448+#: fortran/resolve.c:2870
43449 #, gcc-internal-format, gfc-internal-format
43450 msgid "Assumed-shape array '%s' at %L cannot be an argument to the procedure '%s' because it is not C interoperable"
43451 msgstr "La matriz de forma asumida '%s' en %L no puede ser un argumento para el procedimiento '%s' porque no es interoperable con C"
43452
43453-#: fortran/resolve.c:2894
43454+#: fortran/resolve.c:2880
43455 #, gcc-internal-format, gfc-internal-format
43456 msgid "Deferred-shape array '%s' at %L cannot be an argument to the procedure '%s' because it is not C interoperable"
43457 msgstr "La matriz de forma diferida '%s' en %L no puede ser un argumento para el procedimiento '%s' porque no es interoperable con C"
43458
43459-#: fortran/resolve.c:2917 fortran/resolve.c:2954
43460+#: fortran/resolve.c:2903 fortran/resolve.c:2940
43461 #, gcc-internal-format, gfc-internal-format
43462 msgid "CHARACTER argument '%s' to '%s' at %L must have a length of 1"
43463 msgstr "El argumento CHARACTER '%s' para '%s' en %L debe ser de longitud 1"
43464
43465 #. Case 1c, section 15.1.2.5, J3/04-007: an associated
43466 #. scalar pointer.
43467-#: fortran/resolve.c:2930
43468+#: fortran/resolve.c:2916
43469 #, gcc-internal-format, gfc-internal-format
43470 msgid "Argument '%s' to '%s' at %L must be an associated scalar POINTER"
43471 msgstr "El argumento '%s' para '%s' en %L debe ser un POINTER escalar asociado"
43472
43473-#: fortran/resolve.c:2946
43474+#: fortran/resolve.c:2932
43475 #, gcc-internal-format, gfc-internal-format
43476 msgid "Parameter '%s' to '%s' at %L must be a scalar"
43477 msgstr "El argumento '%s' para '%s' en %L debe ser un escalar"
43478
43479-#: fortran/resolve.c:2962
43480+#: fortran/resolve.c:2948
43481 #, gcc-internal-format, gfc-internal-format
43482 msgid "Parameter '%s' to '%s' at %L must not be polymorphic"
43483 msgstr "El parámetro '%s' para '%s' en %L no debe ser polimórfico"
43484
43485 #. TODO: Update this error message to allow for procedure
43486 #. pointers once they are implemented.
43487-#: fortran/resolve.c:2975
43488+#: fortran/resolve.c:2961
43489 #, gcc-internal-format, gfc-internal-format
43490 msgid "Parameter '%s' to '%s' at %L must be a procedure"
43491 msgstr "El parámetro '%s' para '%s' en %L debe ser un procedimiento"
43492
43493-#: fortran/resolve.c:2983
43494+#: fortran/resolve.c:2969
43495 #, gcc-internal-format, gfc-internal-format
43496 msgid "Parameter '%s' to '%s' at %L must be BIND(C)"
43497 msgstr "El parámetro '%s' para '%s' en %L debe ser BIND(C)"
43498
43499-#: fortran/resolve.c:3032
43500+#: fortran/resolve.c:3018
43501 #, gcc-internal-format, gfc-internal-format
43502 msgid "'%s' at %L is not a function"
43503 msgstr "'%s' en %L no es una función"
43504
43505-#: fortran/resolve.c:3040 fortran/resolve.c:3670
43506+#: fortran/resolve.c:3026 fortran/resolve.c:3657
43507 #, gcc-internal-format, gfc-internal-format
43508 msgid "ABSTRACT INTERFACE '%s' must not be referenced at %L"
43509 msgstr "La ABSTRACT INTERFACE '%s' no se debe referenciar en %L"
43510
43511 #. Internal procedures are taken care of in resolve_contained_fntype.
43512-#: fortran/resolve.c:3095
43513+#: fortran/resolve.c:3081
43514 #, gcc-internal-format, gfc-internal-format
43515 msgid "Function '%s' is declared CHARACTER(*) and cannot be used at %L since it is not a dummy argument"
43516 msgstr "La función '%s' se declara CHARACTER(*) y no se puede usar en %L ya que no es un argumento de prueba"
43517
43518-#: fortran/resolve.c:3148
43519+#: fortran/resolve.c:3134
43520 #, gcc-internal-format, gfc-internal-format
43521 msgid "User defined non-ELEMENTAL function '%s' at %L not allowed in WORKSHARE construct"
43522 msgstr "La función definida por el usuario '%s' que no es ELEMENTAL en %L no se permite en la construcción WORKSHARE"
43523
43524-#: fortran/resolve.c:3198
43525+#: fortran/resolve.c:3184
43526 #, gcc-internal-format, gfc-internal-format
43527 msgid "Reference to non-PURE function '%s' at %L inside a FORALL %s"
43528 msgstr "La referencia a la función '%s' que no es PURE en %L está dentro de un FORALL %s"
43529
43530-#: fortran/resolve.c:3205
43531+#: fortran/resolve.c:3191
43532 #, gcc-internal-format, gfc-internal-format
43533 msgid "Reference to non-PURE function '%s' at %L inside a DO CONCURRENT %s"
43534 msgstr "La referencia a la función '%s' que no es PURE en %L está dentro de un DO CONCURRENT %s"
43535
43536-#: fortran/resolve.c:3212
43537+#: fortran/resolve.c:3198
43538 #, gcc-internal-format, gfc-internal-format
43539 msgid "Function reference to '%s' at %L is to a non-PURE procedure within a PURE procedure"
43540 msgstr "La referencia de función a '%s' en %L apunta a un procedimiento que no es PURE dentro de un procedimiento PURE"
43541
43542-#: fortran/resolve.c:3231
43543+#: fortran/resolve.c:3217
43544 #, gcc-internal-format, gfc-internal-format
43545 msgid "ENTRY '%s' at %L cannot be called recursively, as function '%s' is not RECURSIVE"
43546 msgstr "ENTRY '%s' en %L no se puede llamar recursivamente, porque la función '%s' no es RECURSIVE"
43547
43548-#: fortran/resolve.c:3235
43549+#: fortran/resolve.c:3221
43550 #, gcc-internal-format, gfc-internal-format
43551 msgid "Function '%s' at %L cannot be called recursively, as it is not RECURSIVE"
43552 msgstr "La función '%s' en %L no se puede llamar recursivamente, porque no es RECURSIVE"
43553
43554-#: fortran/resolve.c:3274
43555+#: fortran/resolve.c:3260
43556 #, gcc-internal-format, gfc-internal-format
43557 msgid "Subroutine call to '%s' in FORALL block at %L is not PURE"
43558 msgstr "La llamada a subrutina a '%s' en el bloque FORALL en %L no es PURE"
43559
43560-#: fortran/resolve.c:3277
43561+#: fortran/resolve.c:3263
43562 #, gcc-internal-format, gfc-internal-format
43563 msgid "Subroutine call to '%s' in DO CONCURRENT block at %L is not PURE"
43564 msgstr "La llamada a subrutina a '%s' en el bloque DO CONCURRENT en %L no es PURE"
43565
43566-#: fortran/resolve.c:3280
43567+#: fortran/resolve.c:3266
43568 #, gcc-internal-format, gfc-internal-format
43569 msgid "Subroutine call to '%s' at %L is not PURE"
43570 msgstr "La llamada a subrutina a '%s' en %L no es PURE"
43571
43572-#: fortran/resolve.c:3346
43573+#: fortran/resolve.c:3332
43574 #, gcc-internal-format, gfc-internal-format
43575 msgid "There is no specific subroutine for the generic '%s' at %L"
43576 msgstr "No hay una subrutina específica para el genérico '%s' en %L"
43577
43578-#: fortran/resolve.c:3355
43579+#: fortran/resolve.c:3341
43580 #, gcc-internal-format, gfc-internal-format
43581 msgid "Generic subroutine '%s' at %L is not consistent with an intrinsic subroutine interface"
43582 msgstr "La subrutina genérica '%s' en %L no es consistente con una interfaz de subrutina intrínseca"
43583
43584-#: fortran/resolve.c:3463
43585+#: fortran/resolve.c:3450
43586 #, gcc-internal-format, gfc-internal-format
43587 msgid "Missing SHAPE parameter for call to %s at %L"
43588 msgstr "Falta el parámetro SHAPE para la llamada a %s en %L"
43589
43590-#: fortran/resolve.c:3471
43591+#: fortran/resolve.c:3458
43592 #, gcc-internal-format, gfc-internal-format
43593 msgid "SHAPE parameter for call to %s at %L must be a rank 1 INTEGER array"
43594 msgstr "El parámetro SHAPE para la llamada a %s en %L debe ser una matriz INTEGER de rango 1"
43595
43596-#: fortran/resolve.c:3538
43597+#: fortran/resolve.c:3525
43598 #, gcc-internal-format, gfc-internal-format
43599 msgid "Subroutine '%s' at %L is INTRINSIC but is not compatible with an intrinsic"
43600 msgstr "La subrutina '%s' en %L es INTRINSIC pero no es compatible con un intrínseco"
43601
43602-#: fortran/resolve.c:3582
43603+#: fortran/resolve.c:3569
43604 #, gcc-internal-format, gfc-internal-format
43605 msgid "Unable to resolve the specific subroutine '%s' at %L"
43606 msgstr "No se puede resolver la subrutina específica '%s' en %L"
43607
43608-#: fortran/resolve.c:3642
43609+#: fortran/resolve.c:3629
43610 #, gcc-internal-format, gfc-internal-format
43611 msgid "'%s' at %L has a type, which is not consistent with the CALL at %L"
43612 msgstr "'%s' en %L tiene un tipo, el cual no es consistente con CALL en %L"
43613
43614-#: fortran/resolve.c:3680
43615+#: fortran/resolve.c:3667
43616 #, gcc-internal-format, gfc-internal-format
43617 msgid "ENTRY '%s' at %L cannot be called recursively, as subroutine '%s' is not RECURSIVE"
43618 msgstr "ENTRY '%s' en %L no se puede llamar recursivamente, porque la subrutina '%s' no es RECURSIVE"
43619
43620-#: fortran/resolve.c:3684
43621+#: fortran/resolve.c:3671
43622 #, gcc-internal-format, gfc-internal-format
43623 msgid "SUBROUTINE '%s' at %L cannot be called recursively, as it is not RECURSIVE"
43624 msgstr "SUBROUTINE '%s' en %L no se puede llamar recursivamente, porque no es RECURSIVE"
43625
43626-#: fortran/resolve.c:3760
43627+#: fortran/resolve.c:3747
43628 #, gcc-internal-format, gfc-internal-format
43629 msgid "Shapes for operands at %L and %L are not conformable"
43630 msgstr "Las formas para los operandos en %L y %L no son conformables"
43631
43632-#: fortran/resolve.c:4258
43633+#: fortran/resolve.c:4245
43634 #, gcc-internal-format, gfc-internal-format
43635 msgid "Array reference at %L is out of bounds (%ld < %ld) in dimension %d"
43636 msgstr "La referencia de matriz en %L está fuera de los límites (%ld < %ld) en la dimensión %d"
43637
43638-#: fortran/resolve.c:4263
43639+#: fortran/resolve.c:4250
43640 #, gcc-internal-format, gfc-internal-format
43641 msgid "Array reference at %L is out of bounds (%ld < %ld) in codimension %d"
43642 msgstr "La referencia de matriz en %L está fuera de los límites (%ld < %ld) en la codimensión %d"
43643
43644-#: fortran/resolve.c:4273
43645+#: fortran/resolve.c:4260
43646 #, gcc-internal-format, gfc-internal-format
43647 msgid "Array reference at %L is out of bounds (%ld > %ld) in dimension %d"
43648 msgstr "La referencia de matriz en %L está fuera de los límites (%ld > %ld) en la dimensión %d"
43649
43650-#: fortran/resolve.c:4278
43651+#: fortran/resolve.c:4265
43652 #, gcc-internal-format, gfc-internal-format
43653 msgid "Array reference at %L is out of bounds (%ld > %ld) in codimension %d"
43654 msgstr "La referencia de matriz en %L está fuera de los límites (%ld > %ld) en la codimensión %d"
43655
43656-#: fortran/resolve.c:4298
43657+#: fortran/resolve.c:4285
43658 #, gcc-internal-format, gfc-internal-format
43659 msgid "Illegal stride of zero at %L"
43660 msgstr "Tranco ilegal de cero en %L"
43661
43662-#: fortran/resolve.c:4315
43663+#: fortran/resolve.c:4302
43664 #, gcc-internal-format, gfc-internal-format
43665 msgid "Lower array reference at %L is out of bounds (%ld < %ld) in dimension %d"
43666 msgstr "La referencia de matriz inferior en %L está fuera de los límites (%ld < %ld) en la dimensión %d"
43667
43668-#: fortran/resolve.c:4323
43669+#: fortran/resolve.c:4310
43670 #, gcc-internal-format, gfc-internal-format
43671 msgid "Lower array reference at %L is out of bounds (%ld > %ld) in dimension %d"
43672 msgstr "La referencia de matriz inferior en %L está fuera de los límites (%ld > %ld) en la dimensión %d"
43673
43674-#: fortran/resolve.c:4339
43675+#: fortran/resolve.c:4326
43676 #, gcc-internal-format, gfc-internal-format
43677 msgid "Upper array reference at %L is out of bounds (%ld < %ld) in dimension %d"
43678 msgstr "La referencia de matriz superior en %L está fuera de los límites (%ld < %ld) en la dimensión %d"
43679
43680-#: fortran/resolve.c:4348
43681+#: fortran/resolve.c:4335
43682 #, gcc-internal-format, gfc-internal-format
43683 msgid "Upper array reference at %L is out of bounds (%ld > %ld) in dimension %d"
43684 msgstr "La referencia de matriz superior en %L está fuera de los límites (%ld > %ld) en la dimensión %d"
43685
43686-#: fortran/resolve.c:4387
43687+#: fortran/resolve.c:4374
43688 #, gcc-internal-format, gfc-internal-format
43689 msgid "Rightmost upper bound of assumed size array section not specified at %L"
43690 msgstr "No se especificó el límite superior a la derecha de la sección de matriz de tamaño asumido en %L"
43691
43692-#: fortran/resolve.c:4397
43693+#: fortran/resolve.c:4384
43694 #, gcc-internal-format, gfc-internal-format
43695 msgid "Rank mismatch in array reference at %L (%d/%d)"
43696 msgstr "El rango no coincide en la referencia de matriz en %L (%d/%d)"
43697
43698-#: fortran/resolve.c:4405
43699+#: fortran/resolve.c:4392
43700 #, gcc-internal-format, gfc-internal-format
43701 msgid "Coindex rank mismatch in array reference at %L (%d/%d)"
43702 msgstr "El rango de coíndice no coincide en la referencia de matriz en %L (%d/%d)"
43703
43704-#: fortran/resolve.c:4421
43705+#: fortran/resolve.c:4408
43706 #, gcc-internal-format, gfc-internal-format
43707 msgid "Coindex of codimension %d must be a scalar at %L"
43708 msgstr "El coíndice en la codimensión %d debe ser un escalar en %L"
43709
43710-#: fortran/resolve.c:4449
43711+#: fortran/resolve.c:4436
43712 #, gcc-internal-format, gfc-internal-format
43713 msgid "Array index at %L must be scalar"
43714 msgstr "El índice de matriz en %L debe ser escalar"
43715
43716-#: fortran/resolve.c:4455
43717+#: fortran/resolve.c:4442
43718 #, gcc-internal-format, gfc-internal-format
43719 msgid "Array index at %L must be of INTEGER type, found %s"
43720 msgstr "El índice de matriz en %L debe ser de tipo INTEGER, se encontró %s"
43721
43722-#: fortran/resolve.c:4461
43723+#: fortran/resolve.c:4448
43724 #, gcc-internal-format, gfc-internal-format
43725 msgid "Extension: REAL array index at %L"
43726 msgstr "Extensión: índice de matriz REAL en %L"
43727
43728-#: fortran/resolve.c:4500
43729+#: fortran/resolve.c:4487
43730 #, gcc-internal-format, gfc-internal-format
43731 msgid "Argument dim at %L must be scalar"
43732 msgstr "El argumento dim en %L debe ser escalar"
43733
43734-#: fortran/resolve.c:4507
43735+#: fortran/resolve.c:4494
43736 #, gcc-internal-format, gfc-internal-format
43737 msgid "Argument dim at %L must be of INTEGER type"
43738 msgstr "El argumento dim en %L debe ser de tipo entero"
43739
43740-#: fortran/resolve.c:4617
43741+#: fortran/resolve.c:4604
43742 #, gcc-internal-format, gfc-internal-format
43743 msgid "Array index at %L is an array of rank %d"
43744 msgstr "El índice de matriz en %L es una matriz de rango %d"
43745
43746-#: fortran/resolve.c:4715
43747+#: fortran/resolve.c:4702
43748 #, gcc-internal-format, gfc-internal-format
43749 msgid "Substring start index at %L must be of type INTEGER"
43750 msgstr "El índice de inicio de la subcadena en %L debe ser de tipo INTEGER"
43751
43752-#: fortran/resolve.c:4722
43753+#: fortran/resolve.c:4709
43754 #, gcc-internal-format, gfc-internal-format
43755 msgid "Substring start index at %L must be scalar"
43756 msgstr "El índice de inicio de la subcadena en %L debe ser escalar"
43757
43758-#: fortran/resolve.c:4731
43759+#: fortran/resolve.c:4718
43760 #, gcc-internal-format, gfc-internal-format
43761 msgid "Substring start index at %L is less than one"
43762 msgstr "El índice de inicio de la subcadena en %L es menor a uno"
43763
43764-#: fortran/resolve.c:4744
43765+#: fortran/resolve.c:4731
43766 #, gcc-internal-format, gfc-internal-format
43767 msgid "Substring end index at %L must be of type INTEGER"
43768 msgstr "El índice de final de la subcadena en %L debe ser de tipo INTEGER"
43769
43770-#: fortran/resolve.c:4751
43771+#: fortran/resolve.c:4738
43772 #, gcc-internal-format, gfc-internal-format
43773 msgid "Substring end index at %L must be scalar"
43774 msgstr "El índice de final de la subcadena en %L debe ser escalar"
43775
43776-#: fortran/resolve.c:4761
43777+#: fortran/resolve.c:4748
43778 #, gcc-internal-format, gfc-internal-format
43779 msgid "Substring end index at %L exceeds the string length"
43780 msgstr "El índice de final de la subcadena en %L excede la longitud de la cadena"
43781
43782-#: fortran/resolve.c:4771
43783+#: fortran/resolve.c:4758
43784 #, gcc-internal-format, gfc-internal-format
43785 msgid "Substring end index at %L is too large"
43786 msgstr "El índice de final de la subcadena en %L es demasiado grande"
43787
43788-#: fortran/resolve.c:4917
43789+#: fortran/resolve.c:4904
43790 #, gcc-internal-format, gfc-internal-format
43791 msgid "Component to the right of a part reference with nonzero rank must not have the POINTER attribute at %L"
43792 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"
43793
43794-#: fortran/resolve.c:4924
43795+#: fortran/resolve.c:4911
43796 #, gcc-internal-format, gfc-internal-format
43797 msgid "Component to the right of a part reference with nonzero rank must not have the ALLOCATABLE attribute at %L"
43798 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"
43799
43800-#: fortran/resolve.c:4943
43801+#: fortran/resolve.c:4930
43802 #, gcc-internal-format, gfc-internal-format
43803 msgid "Two or more part references with nonzero rank must not be specified at %L"
43804 msgstr "No se deben especificar dos o más referencias de parte con rango que no es cero en %L"
43805
43806-#: fortran/resolve.c:5148
43807+#: fortran/resolve.c:5135
43808 #, gcc-internal-format, gfc-internal-format
43809 msgid "Variable '%s', used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
43810 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"
43811
43812-#: fortran/resolve.c:5153
43813+#: fortran/resolve.c:5140
43814 #, gcc-internal-format, gfc-internal-format
43815 msgid "Variable '%s' is used at %L before the ENTRY statement in which it is a parameter"
43816 msgstr "La variable '%s' se usa en %L antes de la declaración ENTRY en la cual es un parámetro"
43817
43818-#: fortran/resolve.c:5217
43819+#: fortran/resolve.c:5204
43820 #, gcc-internal-format, gfc-internal-format
43821 msgid "Polymorphic subobject of coindexed object at %L"
43822 msgstr "Subobjecto polimórfico de un objeto coindizado en %L"
43823
43824-#: fortran/resolve.c:5230
43825+#: fortran/resolve.c:5217
43826 #, gcc-internal-format, gfc-internal-format
43827 msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
43828 msgstr "Objeto coindizado con subcomponente alojable polimórfico en %L"
43829
43830-#: fortran/resolve.c:5556
43831+#: fortran/resolve.c:5543
43832 #, gcc-internal-format, gfc-internal-format
43833 msgid "Passed-object at %L must be scalar"
43834 msgstr "El objeto pasado en %L debe ser escalar"
43835
43836-#: fortran/resolve.c:5563
43837+#: fortran/resolve.c:5550
43838 #, gcc-internal-format, gfc-internal-format
43839 msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type '%s'"
43840 msgstr "El objeto base para la llamada a componente procedimiento-puntero en %L es de tipo ABSTRACT '%s'"
43841
43842-#: fortran/resolve.c:5595
43843+#: fortran/resolve.c:5582
43844 #, gcc-internal-format, gfc-internal-format
43845 msgid "Base object for type-bound procedure call at %L is of ABSTRACT type '%s'"
43846 msgstr "El objeto base para la llamada a procedimiento enlazada a tipo en %L es de tipo ABSTRACT '%s'"
43847
43848-#: fortran/resolve.c:5604
43849+#: fortran/resolve.c:5591
43850 #, gcc-internal-format, gfc-internal-format
43851 msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
43852 msgstr "El objeto base para la llamada a procedimiento enlazada a tipo NOPASS en %L debe ser escalar"
43853
43854 #. Nothing matching found!
43855-#: fortran/resolve.c:5789
43856+#: fortran/resolve.c:5776
43857 #, gcc-internal-format, gfc-internal-format
43858 msgid "Found no matching specific binding for the call to the GENERIC '%s' at %L"
43859 msgstr "No se encontró un enlace específico coincidente para la llamada al GENERIC '%s' en %L"
43860
43861-#: fortran/resolve.c:5816
43862+#: fortran/resolve.c:5803
43863 #, gcc-internal-format, gfc-internal-format
43864 msgid "'%s' at %L should be a SUBROUTINE"
43865 msgstr "'%s' en %L debe ser una SUBROUTINE"
43866
43867-#: fortran/resolve.c:5863
43868+#: fortran/resolve.c:5850
43869 #, gcc-internal-format, gfc-internal-format
43870 msgid "'%s' at %L should be a FUNCTION"
43871 msgstr "'%s' en %L debe ser una FUNCTION"
43872
43873-#: fortran/resolve.c:6380
43874+#: fortran/resolve.c:6367
43875 #, gcc-internal-format, gfc-internal-format
43876 msgid "%s at %L must be a scalar"
43877 msgstr "%s en %L debe ser un escalar"
43878
43879-#: fortran/resolve.c:6390
43880+#: fortran/resolve.c:6377
43881 #, gcc-internal-format, gfc-internal-format
43882 msgid "Deleted feature: %s at %L must be integer"
43883 msgstr "Característica eliminada: %s en %L debe ser entero"
43884
43885-#: fortran/resolve.c:6394 fortran/resolve.c:6401
43886+#: fortran/resolve.c:6381 fortran/resolve.c:6388
43887 #, gcc-internal-format, gfc-internal-format
43888 msgid "%s at %L must be INTEGER"
43889 msgstr "%s en %L debe ser INTEGER"
43890
43891-#: fortran/resolve.c:6442
43892+#: fortran/resolve.c:6429
43893 #, gcc-internal-format, gfc-internal-format
43894 msgid "Step expression in DO loop at %L cannot be zero"
43895 msgstr "La expresión de paso en el bucle DO en %L no puede ser cero"
43896
43897-#: fortran/resolve.c:6477
43898+#: fortran/resolve.c:6464
43899 #, gcc-internal-format, gfc-internal-format
43900 msgid "DO loop at %L will be executed zero times"
43901 msgstr "El bucle DO en %L se ejecutará cero veces"
43902
43903-#: fortran/resolve.c:6538
43904+#: fortran/resolve.c:6525
43905 #, gcc-internal-format, gfc-internal-format
43906 msgid "FORALL index-name at %L must be a scalar INTEGER"
43907 msgstr "El nombre de índice FORALL en %L debe ser un INTEGER escalar"
43908
43909-#: fortran/resolve.c:6543
43910+#: fortran/resolve.c:6530
43911 #, gcc-internal-format, gfc-internal-format
43912 msgid "FORALL start expression at %L must be a scalar INTEGER"
43913 msgstr "La expresión de inicio FORALL en %L debe ser un INTEGER escalar"
43914
43915-#: fortran/resolve.c:6550
43916+#: fortran/resolve.c:6537
43917 #, gcc-internal-format, gfc-internal-format
43918 msgid "FORALL end expression at %L must be a scalar INTEGER"
43919 msgstr "La expresión de fin FORALL en %L debe ser un INTEGER escalar"
43920
43921-#: fortran/resolve.c:6558
43922+#: fortran/resolve.c:6545
43923 #, gcc-internal-format, gfc-internal-format
43924 msgid "FORALL stride expression at %L must be a scalar %s"
43925 msgstr "La expresión de tranco FORALL en %L debe ser un %s escalar"
43926
43927-#: fortran/resolve.c:6563
43928+#: fortran/resolve.c:6550
43929 #, gcc-internal-format, gfc-internal-format
43930 msgid "FORALL stride expression at %L cannot be zero"
43931 msgstr "La expresión de tranco FORALL en %L no puede ser cero"
43932
43933-#: fortran/resolve.c:6579
43934+#: fortran/resolve.c:6566
43935 #, gcc-internal-format, gfc-internal-format
43936 msgid "FORALL index '%s' may not appear in triplet specification at %L"
43937 msgstr "El índice FORALL '%s' no puede aparecer en la especificación triplet en %L"
43938
43939-#: fortran/resolve.c:6675 fortran/resolve.c:6958
43940+#: fortran/resolve.c:6662 fortran/resolve.c:6945
43941 #, gcc-internal-format, gfc-internal-format
43942 msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
43943 msgstr "El objeto de alojamiento en %L debe ser ALLOCATABLE o un POINTER"
43944
43945-#: fortran/resolve.c:6683 fortran/resolve.c:6924
43946+#: fortran/resolve.c:6670 fortran/resolve.c:6911
43947 #, gcc-internal-format, gfc-internal-format
43948 msgid "Coindexed allocatable object at %L"
43949 msgstr "Objeto alojable coindizado en %L"
43950
43951-#: fortran/resolve.c:6788
43952+#: fortran/resolve.c:6775
43953 #, gcc-internal-format, gfc-internal-format
43954 msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L"
43955 msgstr "La expresión fuente en %L debe ser escalar o tener el mismo rango que el objeto de alojamiento en %L"
43956
43957-#: fortran/resolve.c:6816
43958+#: fortran/resolve.c:6803
43959 #, gcc-internal-format, gfc-internal-format
43960 msgid "Source-expr at %L and allocate-object at %L must have the same shape"
43961 msgstr "La expresión fuente en %L y el objeto de alojamiento en %L deben tener la misma forma"
43962
43963-#: fortran/resolve.c:6969
43964+#: fortran/resolve.c:6956
43965 #, gcc-internal-format, gfc-internal-format
43966 msgid "Type of entity at %L is type incompatible with source-expr at %L"
43967 msgstr "El tipo de entidad en %L es de tipo incompatible con la expresión fuente en %L"
43968
43969-#: fortran/resolve.c:6982
43970+#: fortran/resolve.c:6969
43971 #, gcc-internal-format, gfc-internal-format
43972 msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter"
43973 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"
43974
43975-#: fortran/resolve.c:6996
43976+#: fortran/resolve.c:6983
43977 #, gcc-internal-format, gfc-internal-format
43978 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"
43979 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"
43980
43981-#: fortran/resolve.c:7009
43982+#: fortran/resolve.c:6996
43983 #, gcc-internal-format, gfc-internal-format
43984 msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
43985 msgstr "El alojamiento %s del tipo de base ABSTRACT en %L requiere una especificación de tipo o una expresión source"
43986
43987-#: fortran/resolve.c:7020
43988+#: fortran/resolve.c:7007
43989 #, gcc-internal-format, gfc-internal-format
43990 msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration"
43991 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"
43992
43993-#: fortran/resolve.c:7105
43994+#: fortran/resolve.c:7092
43995 #, gcc-internal-format, gfc-internal-format
43996 msgid "Array specification required in ALLOCATE statement at %L"
43997 msgstr "Se requiere una especificación de matriz en la declaración ALLOCATE en %L"
43998
43999-#: fortran/resolve.c:7119
44000+#: fortran/resolve.c:7106
44001 #, gcc-internal-format, gfc-internal-format
44002 msgid "Coarray specification required in ALLOCATE statement at %L"
44003 msgstr "Se requiere una especificación de comatriz en la declaración ALLOCATE en %L"
44004
44005-#: fortran/resolve.c:7146
44006+#: fortran/resolve.c:7133
44007 #, gcc-internal-format, gfc-internal-format
44008 msgid "Bad array specification in ALLOCATE statement at %L"
44009 msgstr "Especificación de matriz errónea en la declaración ALLOCATE en %L"
44010
44011-#: fortran/resolve.c:7165
44012+#: fortran/resolve.c:7152
44013 #, gcc-internal-format, gfc-internal-format
44014 msgid "'%s' must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
44015 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"
44016
44017-#: fortran/resolve.c:7180
44018+#: fortran/resolve.c:7167
44019 #, gcc-internal-format, gfc-internal-format
44020 msgid "Expected '*' in coindex specification in ALLOCATE statement at %L"
44021 msgstr "Se esperaba '*' en la especificación de comatriz en la declaración ALLOCATE en %L"
44022
44023-#: fortran/resolve.c:7191
44024+#: fortran/resolve.c:7178
44025 #, gcc-internal-format, gfc-internal-format
44026 msgid "Bad coarray specification in ALLOCATE statement at %L"
44027 msgstr "Especificación de comatriz errónea en la declaración ALLOCATE en %L"
44028
44029-#: fortran/resolve.c:7221
44030+#: fortran/resolve.c:7208
44031 #, gcc-internal-format, gfc-internal-format
44032 msgid "Stat-variable at %L must be a scalar INTEGER variable"
44033 msgstr "La variable stat en %L debe ser una variable INTEGER escalar"
44034
44035-#: fortran/resolve.c:7244
44036+#: fortran/resolve.c:7231
44037 #, gcc-internal-format, gfc-internal-format
44038 msgid "Stat-variable at %L shall not be %sd within the same %s statement"
44039 msgstr "La variable stat en %L no no debe ser %sd dentro de la misma declaración %s"
44040
44041-#: fortran/resolve.c:7255
44042+#: fortran/resolve.c:7242
44043 #, gcc-internal-format, gfc-internal-format
44044 msgid "ERRMSG at %L is useless without a STAT tag"
44045 msgstr "ERRMSG en %L es inútil sin una etiqueta STAT"
44046
44047-#: fortran/resolve.c:7265
44048+#: fortran/resolve.c:7252
44049 #, gcc-internal-format, gfc-internal-format
44050 msgid "Errmsg-variable at %L must be a scalar CHARACTER variable"
44051 msgstr "La variable errmsg en %L debe ser una variable CHARACTER escalar"
44052
44053-#: fortran/resolve.c:7288
44054+#: fortran/resolve.c:7275
44055 #, gcc-internal-format, gfc-internal-format
44056 msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
44057 msgstr "La variable errmsg en %L no debe ser %sd dentro de la misma declaración %s"
44058
44059-#: fortran/resolve.c:7318
44060+#: fortran/resolve.c:7305
44061 #, gcc-internal-format, gfc-internal-format
44062 msgid "Allocate-object at %L also appears at %L"
44063 msgstr "El objeto de alojamiento en %L también aparece en %L"
44064
44065-#: fortran/resolve.c:7324 fortran/resolve.c:7330
44066+#: fortran/resolve.c:7311 fortran/resolve.c:7317
44067 #, gcc-internal-format, gfc-internal-format
44068 msgid "Allocate-object at %L is subobject of object at %L"
44069 msgstr "El objeto de alojamiento en %L es un subobjeto del objeto en %L"
44070@@ -41460,175 +41666,175 @@
44071 #. element in the list. Either way, we must
44072 #. issue an error and get the next case from P.
44073 #. FIXME: Sort P and Q by line number.
44074-#: fortran/resolve.c:7525
44075+#: fortran/resolve.c:7512
44076 #, gcc-internal-format, gfc-internal-format
44077 msgid "CASE label at %L overlaps with CASE label at %L"
44078 msgstr "La etiqueta CASE en %L se encima con la etiqueta CASE en %L"
44079
44080-#: fortran/resolve.c:7576
44081+#: fortran/resolve.c:7563
44082 #, gcc-internal-format, gfc-internal-format
44083 msgid "Expression in CASE statement at %L must be of type %s"
44084 msgstr "La expresión en la declaración CASE en %L debe ser de tipo %s"
44085
44086-#: fortran/resolve.c:7587
44087+#: fortran/resolve.c:7574
44088 #, gcc-internal-format, gfc-internal-format
44089 msgid "Expression in CASE statement at %L must be of kind %d"
44090 msgstr "La expresión en la declaración CASE en %L debe ser de género %d"
44091
44092-#: fortran/resolve.c:7600
44093+#: fortran/resolve.c:7587
44094 #, gcc-internal-format, gfc-internal-format
44095 msgid "Expression in CASE statement at %L must be scalar"
44096 msgstr "La expresión en la declaración CASE en %L debe ser escalar"
44097
44098-#: fortran/resolve.c:7646
44099+#: fortran/resolve.c:7633
44100 #, gcc-internal-format, gfc-internal-format
44101 msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
44102 msgstr "La expresión de selección en una declaración GOTO computada en %L debe ser una expresión entera escalar"
44103
44104-#: fortran/resolve.c:7664
44105+#: fortran/resolve.c:7651
44106 #, gcc-internal-format, gfc-internal-format
44107 msgid "Argument of SELECT statement at %L cannot be %s"
44108 msgstr "El argumento de la declaración SELECT en %L no puede ser %s"
44109
44110-#: fortran/resolve.c:7682 fortran/resolve.c:7690
44111+#: fortran/resolve.c:7669 fortran/resolve.c:7677
44112 #, gcc-internal-format, gfc-internal-format
44113 msgid "Expression in CASE statement at %L is not in the range of %s"
44114 msgstr "La expresión en la declaración CASE en %L no está en el rango de %s"
44115
44116-#: fortran/resolve.c:7752 fortran/resolve.c:8062
44117+#: fortran/resolve.c:7739 fortran/resolve.c:8049
44118 #, gcc-internal-format, gfc-internal-format
44119 msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
44120 msgstr "El DEFAULT CASE en %L no puede tener después un segundo DEFAULT CASE en %L"
44121
44122-#: fortran/resolve.c:7778
44123+#: fortran/resolve.c:7765
44124 #, gcc-internal-format, gfc-internal-format
44125 msgid "Logical range in CASE statement at %L is not allowed"
44126 msgstr "No se permite un rango lógico en una declaración CASE en %L"
44127
44128-#: fortran/resolve.c:7790
44129+#: fortran/resolve.c:7777
44130 #, gcc-internal-format, gfc-internal-format
44131 msgid "Constant logical value in CASE statement is repeated at %L"
44132 msgstr "Se repite un valor lógico constante en una declaración CASE en %L"
44133
44134-#: fortran/resolve.c:7804
44135+#: fortran/resolve.c:7791
44136 #, gcc-internal-format, gfc-internal-format
44137 msgid "Range specification at %L can never be matched"
44138 msgstr "La especificación de rango en %L nunca puede coincidir"
44139
44140-#: fortran/resolve.c:7907
44141+#: fortran/resolve.c:7894
44142 #, gcc-internal-format, gfc-internal-format
44143 msgid "Logical SELECT CASE block at %L has more that two cases"
44144 msgstr "El bloque SELECT CASE lógico en %L tiene más de dos cases"
44145
44146-#: fortran/resolve.c:7972
44147+#: fortran/resolve.c:7959
44148 #, gcc-internal-format, gfc-internal-format
44149 msgid "Associate-name '%s' at %L is used as array"
44150 msgstr "Se usa el nombre asociado '%s' en %L como una matriz"
44151
44152-#: fortran/resolve.c:8014
44153+#: fortran/resolve.c:8001
44154 #, gcc-internal-format, gfc-internal-format
44155 msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
44156 msgstr "El selector debe ser polimórfico en la declaración SELECT TYPE en %L"
44157
44158-#: fortran/resolve.c:8040
44159+#: fortran/resolve.c:8027
44160 #, gcc-internal-format, gfc-internal-format
44161 msgid "Derived type '%s' at %L must be extensible"
44162 msgstr "El tipo derivado '%s' en %L debe ser extensible"
44163
44164-#: fortran/resolve.c:8050
44165+#: fortran/resolve.c:8037
44166 #, gcc-internal-format, gfc-internal-format
44167 msgid "Derived type '%s' at %L must be an extension of '%s'"
44168 msgstr "El tipo derivado '%s' en %L debe ser una extensión de '%s'"
44169
44170-#: fortran/resolve.c:8222
44171+#: fortran/resolve.c:8209
44172 #, gcc-internal-format, gfc-internal-format
44173 msgid "Double CLASS IS block in SELECT TYPE statement at %L"
44174 msgstr "Bloque CLASS IS doble en la declaración SELECT TYPE en %L"
44175
44176-#: fortran/resolve.c:8313
44177+#: fortran/resolve.c:8300
44178 #, gcc-internal-format, gfc-internal-format
44179 msgid "NULL intrinsic at %L in data transfer statement requires MOLD="
44180 msgstr "El NULL intrínseco en %L en la declaración de transferencia de datos requiere MOLD="
44181
44182 #. FIXME: Test for defined input/output.
44183-#: fortran/resolve.c:8341
44184+#: fortran/resolve.c:8328
44185 #, gcc-internal-format, gfc-internal-format
44186 msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure"
44187 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"
44188
44189-#: fortran/resolve.c:8353
44190+#: fortran/resolve.c:8340
44191 #, gcc-internal-format, gfc-internal-format
44192 msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure"
44193 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"
44194
44195-#: fortran/resolve.c:8362
44196+#: fortran/resolve.c:8349
44197 #, gcc-internal-format, gfc-internal-format
44198 msgid "Data transfer element at %L cannot have procedure pointer components"
44199 msgstr "El elemento de transferencia de datos en %L no puede tener componentes de puntero a procedimiento"
44200
44201-#: fortran/resolve.c:8369
44202+#: fortran/resolve.c:8356
44203 #, gcc-internal-format, gfc-internal-format
44204 msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure"
44205 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"
44206
44207-#: fortran/resolve.c:8377
44208+#: fortran/resolve.c:8364
44209 #, gcc-internal-format, gfc-internal-format
44210 msgid "Data transfer element at %L cannot have PRIVATE components"
44211 msgstr "El elemento de transferencia de datos en %L no puede tener componentes PRIVATE"
44212
44213-#: fortran/resolve.c:8386
44214+#: fortran/resolve.c:8373
44215 #, gcc-internal-format, gfc-internal-format
44216 msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
44217 msgstr "El elemento de transferencia de datos en %L no puede ser una referencia completa a una matriz de tamaño asumido"
44218
44219-#: fortran/resolve.c:8436
44220+#: fortran/resolve.c:8423
44221 #, gcc-internal-format, gfc-internal-format
44222 msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
44223 msgstr "La variable lock en %L debe ser un escalar de tipo LOCK_TYPE"
44224
44225-#: fortran/resolve.c:8443 fortran/resolve.c:8507
44226+#: fortran/resolve.c:8430 fortran/resolve.c:8494
44227 #, gcc-internal-format, gfc-internal-format
44228 msgid "STAT= argument at %L must be a scalar INTEGER variable"
44229 msgstr "El argumento STAT= en %L debe ser una variable INTEGER escalar"
44230
44231-#: fortran/resolve.c:8455 fortran/resolve.c:8514
44232+#: fortran/resolve.c:8442 fortran/resolve.c:8501
44233 #, gcc-internal-format, gfc-internal-format
44234 msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
44235 msgstr "El argumento ERRMSG= en %L debe ser una variable CHARACTER escalar"
44236
44237-#: fortran/resolve.c:8467
44238+#: fortran/resolve.c:8454
44239 #, gcc-internal-format, gfc-internal-format
44240 msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
44241 msgstr "El argumento ACQUIRED_LOCK= en %L debe ser una variable LOGICAL escalar"
44242
44243-#: fortran/resolve.c:8484
44244+#: fortran/resolve.c:8471
44245 #, gcc-internal-format, gfc-internal-format
44246 msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
44247 msgstr "El argumento de conjunto de imagen %L debe ser un escalar o una expresión INTEGER de rango 1"
44248
44249-#: fortran/resolve.c:8488 fortran/resolve.c:8498
44250+#: fortran/resolve.c:8475 fortran/resolve.c:8485
44251 #, gcc-internal-format, gfc-internal-format
44252 msgid "Imageset argument at %L must between 1 and num_images()"
44253 msgstr "El argumento de conjunto de imagen en %L debe estar entre 1 y num_images()"
44254
44255-#: fortran/resolve.c:8541
44256+#: fortran/resolve.c:8528
44257 #, gcc-internal-format, gfc-internal-format
44258 msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
44259 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"
44260
44261-#: fortran/resolve.c:8550
44262+#: fortran/resolve.c:8537
44263 #, gcc-internal-format, gfc-internal-format
44264 msgid "Branch at %L may result in an infinite loop"
44265 msgstr "La ramificación en %L puede resultar en un bucle infinito"
44266
44267 #. Note: A label at END CRITICAL does not leave the CRITICAL
44268 #. construct as END CRITICAL is still part of it.
44269-#: fortran/resolve.c:8567 fortran/resolve.c:8590
44270+#: fortran/resolve.c:8554 fortran/resolve.c:8577
44271 #, gcc-internal-format, gfc-internal-format
44272 msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
44273 msgstr "La declaración GOTO en %L deja la construcción CRITICAL por la etiqueta en %L"
44274
44275-#: fortran/resolve.c:8571 fortran/resolve.c:8596
44276+#: fortran/resolve.c:8558 fortran/resolve.c:8583
44277 #, gcc-internal-format, gfc-internal-format
44278 msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
44279 msgstr "La declaración GOTO en %L deja la construcción DO CONCURRENT por la etiqueta en %L"
44280@@ -41636,950 +41842,950 @@
44281 #. The label is not in an enclosing block, so illegal. This was
44282 #. allowed in Fortran 66, so we allow it as extension. No
44283 #. further checks are necessary in this case.
44284-#: fortran/resolve.c:8611
44285+#: fortran/resolve.c:8598
44286 #, gcc-internal-format, gfc-internal-format
44287 msgid "Label at %L is not in the same block as the GOTO statement at %L"
44288 msgstr "La etiqueta en %L no está en el mismo bloque que la declaración GOTO en %L"
44289
44290-#: fortran/resolve.c:8683
44291+#: fortran/resolve.c:8670
44292 #, gcc-internal-format, gfc-internal-format
44293 msgid "WHERE mask at %L has inconsistent shape"
44294 msgstr "La máscara WHERE en %L tiene forma inconsistente"
44295
44296-#: fortran/resolve.c:8699
44297+#: fortran/resolve.c:8686
44298 #, gcc-internal-format, gfc-internal-format
44299 msgid "WHERE assignment target at %L has inconsistent shape"
44300 msgstr "El objetivo de asignación WHERE en %L tiene forma inconsistente"
44301
44302-#: fortran/resolve.c:8707 fortran/resolve.c:8794
44303+#: fortran/resolve.c:8694 fortran/resolve.c:8781
44304 #, gcc-internal-format, gfc-internal-format
44305 msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
44306 msgstr "Asignación definida por el usuario de un no-ELEMENTAL en WHERE en %L"
44307
44308-#: fortran/resolve.c:8717 fortran/resolve.c:8804
44309+#: fortran/resolve.c:8704 fortran/resolve.c:8791
44310 #, gcc-internal-format, gfc-internal-format
44311 msgid "Unsupported statement inside WHERE at %L"
44312 msgstr "Declaración sin soporte dentro de WHERE en %L"
44313
44314-#: fortran/resolve.c:8748
44315+#: fortran/resolve.c:8735
44316 #, gcc-internal-format, gfc-internal-format
44317 msgid "Assignment to a FORALL index variable at %L"
44318 msgstr "Asignación a una variable de índice FORALL en %L"
44319
44320-#: fortran/resolve.c:8757
44321+#: fortran/resolve.c:8744
44322 #, gcc-internal-format, gfc-internal-format
44323 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"
44324 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"
44325
44326-#: fortran/resolve.c:8926
44327+#: fortran/resolve.c:8913
44328 #, gcc-internal-format, gfc-internal-format
44329 msgid "An outer FORALL construct already has an index with this name %L"
44330 msgstr "Una construcción FORALL externa ya tiene un índice con este nombre %L"
44331
44332-#: fortran/resolve.c:9006
44333+#: fortran/resolve.c:8993
44334 #, gcc-internal-format, gfc-internal-format
44335 msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
44336 msgstr "la cláusula WHERE/ELSEWHERE en %L requiere una matriz LOGICAL"
44337
44338-#: fortran/resolve.c:9160
44339+#: fortran/resolve.c:9147
44340 #, gcc-internal-format, gfc-internal-format
44341 msgid "CHARACTER expression will be truncated in assignment (%d/%d) at %L"
44342 msgstr "Se truncará la expresión CHARACTER en la asignación (%d/%d) en %L"
44343
44344-#: fortran/resolve.c:9192
44345+#: fortran/resolve.c:9179
44346 #, gcc-internal-format, gfc-internal-format
44347 msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure"
44348 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"
44349
44350-#: fortran/resolve.c:9197
44351+#: fortran/resolve.c:9184
44352 #, gcc-internal-format, gfc-internal-format
44353 msgid "The impure variable at %L is assigned to a derived type variable with a POINTER component in a PURE procedure (12.6)"
44354 msgstr "La variable impura en %L se asigna a una variable de tipo derivado con un componente POINTER en un procedimiento PURE (12.6)"
44355
44356-#: fortran/resolve.c:9207
44357+#: fortran/resolve.c:9194
44358 #, gcc-internal-format, gfc-internal-format
44359 msgid "Assignment to coindexed variable at %L in a PURE procedure"
44360 msgstr "Asignación a una variable coindizada en %L en un procedimiento PURE"
44361
44362-#: fortran/resolve.c:9238
44363+#: fortran/resolve.c:9225
44364 #, gcc-internal-format, gfc-internal-format
44365 msgid "Variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for '=' operator"
44366 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 '='"
44367
44368-#: fortran/resolve.c:9247
44369+#: fortran/resolve.c:9234
44370 #, gcc-internal-format, gfc-internal-format
44371 msgid "Coindexed variable must not be have an allocatable ultimate component in assignment at %L"
44372 msgstr "La variable coindizada no debe tener un componente último alojable en la asignación en %L"
44373
44374-#: fortran/resolve.c:9382
44375+#: fortran/resolve.c:9369
44376 #, gcc-internal-format, gfc-internal-format
44377 msgid "ASSIGNED GOTO statement at %L requires an INTEGER variable"
44378 msgstr "La declaración ASSIGNED GOTO en %L requiere una variable INTEGER"
44379
44380-#: fortran/resolve.c:9385
44381+#: fortran/resolve.c:9372
44382 #, gcc-internal-format, gfc-internal-format
44383 msgid "Variable '%s' has not been assigned a target label at %L"
44384 msgstr "La variable '%s' no se ha asignado a una etiqueta objetivo en %L"
44385
44386-#: fortran/resolve.c:9396
44387+#: fortran/resolve.c:9383
44388 #, gcc-internal-format, gfc-internal-format
44389 msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
44390 msgstr "La declaración RETURN alternativa en %L requiere de un especificador de devolución SCALAR-INTEGER"
44391
44392-#: fortran/resolve.c:9431
44393+#: fortran/resolve.c:9418
44394 #, gcc-internal-format, gfc-internal-format
44395 msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
44396 msgstr "La declaración de ASSIGN en %L requiere una variable INTEGER escalar por defecto"
44397
44398-#: fortran/resolve.c:9464
44399+#: fortran/resolve.c:9451
44400 #, gcc-internal-format, gfc-internal-format
44401 msgid "Arithmetic IF statement at %L requires a numeric expression"
44402 msgstr "La declaración IF aritmética en %L requiere una expresión numérica"
44403
44404-#: fortran/resolve.c:9523
44405+#: fortran/resolve.c:9510
44406 #, gcc-internal-format, gfc-internal-format
44407 msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
44408 msgstr "La condición de salida del bucle DO WHILE en %L debe ser una expresión LOGICAL escalar"
44409
44410-#: fortran/resolve.c:9607
44411+#: fortran/resolve.c:9594
44412 #, gcc-internal-format, gfc-internal-format
44413 msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
44414 msgstr "La cláusula de máscara FORALL en %L requiere una expresión LOGICAL escalar"
44415
44416-#: fortran/resolve.c:9687 fortran/resolve.c:9743
44417+#: fortran/resolve.c:9676 fortran/resolve.c:9729
44418 #, gcc-internal-format, gfc-internal-format
44419 msgid "Binding label '%s' for common block '%s' at %L collides with the global entity '%s' at %L"
44420 msgstr "La etiqueta enlazante '%s' para el bloque común '%s' en %L colisiona con la entidad global '%s' en %L"
44421
44422 #. Common block names match but binding labels do not.
44423-#: fortran/resolve.c:9708
44424+#: fortran/resolve.c:9694
44425 #, gcc-internal-format, gfc-internal-format
44426 msgid "Binding label '%s' for common block '%s' at %L does not match the binding label '%s' for common block '%s' at %L"
44427 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"
44428
44429-#: fortran/resolve.c:9755
44430+#: fortran/resolve.c:9741
44431 #, gcc-internal-format, gfc-internal-format
44432 msgid "Binding label '%s' for common block '%s' at %L collides with global entity '%s' at %L"
44433 msgstr "La etiqueta enlazante '%s' para el bloque común '%s' en %L colisiona con la entidad global '%s' en %L"
44434
44435 #. Make sure global procedures don't collide with anything.
44436-#: fortran/resolve.c:9807
44437+#: fortran/resolve.c:9793
44438 #, gcc-internal-format, gfc-internal-format
44439 msgid "Binding label '%s' at %L collides with the global entity '%s' at %L"
44440 msgstr "La etiqueta enlazante '%s' en %L colisiona con la entidad global '%s' en %L"
44441
44442 #. Make sure procedures in interface bodies don't collide.
44443-#: fortran/resolve.c:9820
44444+#: fortran/resolve.c:9806
44445 #, gcc-internal-format, gfc-internal-format
44446 msgid "Binding label '%s' in interface body at %L collides with the global entity '%s' at %L"
44447 msgstr "La etiqueta enlazante '%s' en el cuerpo de interfaz en %L colisiona con la entidad global '%s' en %L"
44448
44449-#: fortran/resolve.c:9833
44450+#: fortran/resolve.c:9819
44451 #, gcc-internal-format, gfc-internal-format
44452 msgid "Binding label '%s' at %L collides with global entity '%s' at %L"
44453 msgstr "La etiqueta enlazante '%s' en %L colisiona con la entidad global '%s' en %L"
44454
44455-#: fortran/resolve.c:9912
44456+#: fortran/resolve.c:9898
44457 #, gcc-internal-format, gfc-internal-format
44458 msgid "CHARACTER variable at %L has negative length %d, the length has been set to zero"
44459 msgstr "La variable CHARACTER en %L tiene longitud negativa %d, la longitud se estableció a cero"
44460
44461-#: fortran/resolve.c:9925
44462+#: fortran/resolve.c:9911
44463 #, gcc-internal-format, gfc-internal-format
44464 msgid "String length at %L is too large"
44465 msgstr "La longitud de la cadena en %L es demasiado grande"
44466
44467-#: fortran/resolve.c:10262
44468+#: fortran/resolve.c:10248
44469 #, gcc-internal-format, gfc-internal-format
44470 msgid "Allocatable array '%s' at %L must have a deferred shape"
44471 msgstr "La matriz allocatable '%s' en %L debe tener una forma diferida"
44472
44473-#: fortran/resolve.c:10266
44474+#: fortran/resolve.c:10252
44475 #, gcc-internal-format, gfc-internal-format
44476 msgid "Scalar object '%s' at %L may not be ALLOCATABLE"
44477 msgstr "El objeto escalar '%s' en %L no puede ser ALLOCATABLE"
44478
44479-#: fortran/resolve.c:10274
44480+#: fortran/resolve.c:10260
44481 #, gcc-internal-format, gfc-internal-format
44482 msgid "Array pointer '%s' at %L must have a deferred shape"
44483 msgstr "La matriz de puntero '%s' en %L debe tener una forma diferida"
44484
44485-#: fortran/resolve.c:10284
44486+#: fortran/resolve.c:10270
44487 #, gcc-internal-format, gfc-internal-format
44488 msgid "Array '%s' at %L cannot have a deferred shape"
44489 msgstr "La matriz '%s' en %L no puede tener una forma diferida"
44490
44491-#: fortran/resolve.c:10297
44492+#: fortran/resolve.c:10283
44493 #, gcc-internal-format, gfc-internal-format
44494 msgid "Type '%s' of CLASS variable '%s' at %L is not extensible"
44495 msgstr "El tipo '%s' de la variable CLASS '%s' en %L no es extensible"
44496
44497-#: fortran/resolve.c:10309
44498+#: fortran/resolve.c:10295
44499 #, gcc-internal-format, gfc-internal-format
44500 msgid "CLASS variable '%s' at %L must be dummy, allocatable or pointer"
44501 msgstr "La variable CLASS '%s' en %L debe ser dummy, allocatable o pointer"
44502
44503-#: fortran/resolve.c:10340
44504+#: fortran/resolve.c:10326
44505 #, gcc-internal-format, gfc-internal-format
44506 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"
44507 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"
44508
44509-#: fortran/resolve.c:10362
44510+#: fortran/resolve.c:10348
44511 #, gcc-internal-format, gfc-internal-format
44512 msgid "Fortran 2008: Implied SAVE for module variable '%s' at %L, needed due to the default initialization"
44513 msgstr "Fortran 2008: SAVE implícito para la variable de módulo '%s' en %L, se necesita por la inicialización por defecto"
44514
44515 #. The shape of a main program or module array needs to be
44516 #. constant.
44517-#: fortran/resolve.c:10409
44518+#: fortran/resolve.c:10395
44519 #, gcc-internal-format, gfc-internal-format
44520 msgid "The module or main program array '%s' at %L must have constant shape"
44521 msgstr "El módulo o la matriz del programa principal '%s' en %L deben tener una forma constante"
44522
44523-#: fortran/resolve.c:10418
44524+#: fortran/resolve.c:10404
44525 #, gcc-internal-format, gfc-internal-format
44526 msgid "Entity '%s' at %L has a deferred type parameter and requires either the pointer or allocatable attribute"
44527 msgstr "La entidad '%s' en %L tiene un parámetro de tipo diferido y requiere el atributo pointer o allocatable"
44528
44529-#: fortran/resolve.c:10432
44530+#: fortran/resolve.c:10418
44531 #, gcc-internal-format, gfc-internal-format
44532 msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
44533 msgstr "La entidad con longitud de carácter asumida en %L debe ser un argumento de prueba o un PARAMETER"
44534
44535-#: fortran/resolve.c:10451
44536+#: fortran/resolve.c:10437
44537 #, gcc-internal-format, gfc-internal-format
44538 msgid "'%s' at %L must have constant character length in this context"
44539 msgstr "'%s' en %L debe tener longitud de cáracter constante en este contexto"
44540
44541-#: fortran/resolve.c:10457
44542+#: fortran/resolve.c:10443
44543 #, gcc-internal-format, gfc-internal-format
44544 msgid "COMMON variable '%s' at %L must have constant character length"
44545 msgstr "La variable COMMON '%s' en %L debe tener longitud de cáracter constante en este contexto"
44546
44547-#: fortran/resolve.c:10502
44548+#: fortran/resolve.c:10488
44549 #, gcc-internal-format, gfc-internal-format
44550 msgid "Allocatable '%s' at %L cannot have an initializer"
44551 msgstr "El allocatable '%s' en %L no puede tener un inicializador"
44552
44553-#: fortran/resolve.c:10505
44554+#: fortran/resolve.c:10491
44555 #, gcc-internal-format, gfc-internal-format
44556 msgid "External '%s' at %L cannot have an initializer"
44557 msgstr "El external '%s' en %L no puede tener un inicializador"
44558
44559-#: fortran/resolve.c:10509
44560+#: fortran/resolve.c:10495
44561 #, gcc-internal-format, gfc-internal-format
44562 msgid "Dummy '%s' at %L cannot have an initializer"
44563 msgstr "El dummy '%s' en %L no puede tener un inicializador"
44564
44565-#: fortran/resolve.c:10512
44566+#: fortran/resolve.c:10498
44567 #, gcc-internal-format, gfc-internal-format
44568 msgid "Intrinsic '%s' at %L cannot have an initializer"
44569 msgstr "El intrinsic '%s' en %L no puede tener un inicializador"
44570
44571-#: fortran/resolve.c:10515
44572+#: fortran/resolve.c:10501
44573 #, gcc-internal-format, gfc-internal-format
44574 msgid "Function result '%s' at %L cannot have an initializer"
44575 msgstr "El resultado de la función '%s' en %L no puede tener un inicializador"
44576
44577-#: fortran/resolve.c:10518
44578+#: fortran/resolve.c:10504
44579 #, gcc-internal-format, gfc-internal-format
44580 msgid "Automatic array '%s' at %L cannot have an initializer"
44581 msgstr "La matriz automática '%s' en %L no puede tener un inicializador"
44582
44583-#: fortran/resolve.c:10555
44584+#: fortran/resolve.c:10541
44585 #, gcc-internal-format, gfc-internal-format
44586 msgid "Character-valued statement function '%s' at %L must have constant length"
44587 msgstr "La función de declaración valuada con carácter '%s' en %L debe tener longitud constante"
44588
44589-#: fortran/resolve.c:10577
44590+#: fortran/resolve.c:10563
44591 #, gcc-internal-format, gfc-internal-format
44592 msgid "Fortran 2003: '%s' is of a PRIVATE type and cannot be a dummy argument of '%s', which is PUBLIC at %L"
44593 msgstr "Fortran 2003: '%s' es de un tipo PRIVATE y no puede ser un argumento dummy de '%s', el cual es PUBLIC en %L"
44594
44595-#: fortran/resolve.c:10599 fortran/resolve.c:10623
44596+#: fortran/resolve.c:10585 fortran/resolve.c:10609
44597 #, gcc-internal-format, gfc-internal-format
44598 msgid "Fortran 2003: Procedure '%s' in PUBLIC interface '%s' at %L takes dummy arguments of '%s' which is PRIVATE"
44599 msgstr "Fortran 2003: El procedimiento '%s' en la interfaz PUBLIC '%s' en %L toma argumentos dummy de '%s' el cual es PRIVATE"
44600
44601-#: fortran/resolve.c:10641
44602+#: fortran/resolve.c:10627
44603 #, gcc-internal-format, gfc-internal-format
44604 msgid "Function '%s' at %L cannot have an initializer"
44605 msgstr "La función '%s' en %L no puede tener un inicializador"
44606
44607-#: fortran/resolve.c:10650
44608+#: fortran/resolve.c:10636
44609 #, gcc-internal-format, gfc-internal-format
44610 msgid "External object '%s' at %L may not have an initializer"
44611 msgstr "El objeto external '%s' en %L puede no tener un inicializador"
44612
44613-#: fortran/resolve.c:10658
44614+#: fortran/resolve.c:10644
44615 #, gcc-internal-format, gfc-internal-format
44616 msgid "ELEMENTAL function '%s' at %L must have a scalar result"
44617 msgstr "La función ELEMENTAL '%s' en %L debe tener un resultado escalar"
44618
44619-#: fortran/resolve.c:10668
44620+#: fortran/resolve.c:10654
44621 #, gcc-internal-format, gfc-internal-format
44622 msgid "Statement function '%s' at %L may not have pointer or allocatable attribute"
44623 msgstr "La función de declaración '%s' en %L no debe tener atributo puntero o alojable"
44624
44625-#: fortran/resolve.c:10687
44626+#: fortran/resolve.c:10673
44627 #, gcc-internal-format, gfc-internal-format
44628 msgid "CHARACTER(*) function '%s' at %L cannot be array-valued"
44629 msgstr "La función CHARACTER(*) '%s' en %L no puede ser matriz-valuada"
44630
44631-#: fortran/resolve.c:10691
44632+#: fortran/resolve.c:10677
44633 #, gcc-internal-format, gfc-internal-format
44634 msgid "CHARACTER(*) function '%s' at %L cannot be pointer-valued"
44635 msgstr "La función CHARACTER(*) '%s' en %L no puede ser puntero-valuada"
44636
44637-#: fortran/resolve.c:10695
44638+#: fortran/resolve.c:10681
44639 #, gcc-internal-format, gfc-internal-format
44640 msgid "CHARACTER(*) function '%s' at %L cannot be pure"
44641 msgstr "La función CHARACTER(*) '%s' en %L no puede ser pura"
44642
44643-#: fortran/resolve.c:10699
44644+#: fortran/resolve.c:10685
44645 #, gcc-internal-format, gfc-internal-format
44646 msgid "CHARACTER(*) function '%s' at %L cannot be recursive"
44647 msgstr "La función CHARACTER(*) '%s' en %L no puede ser recursiva"
44648
44649-#: fortran/resolve.c:10711
44650+#: fortran/resolve.c:10697
44651 #, gcc-internal-format, gfc-internal-format
44652 msgid "Obsolescent feature: CHARACTER(*) function '%s' at %L"
44653 msgstr "Característica obsoleta: función CHARACTER(*) '%s' en %L"
44654
44655-#: fortran/resolve.c:10766
44656+#: fortran/resolve.c:10752
44657 #, gcc-internal-format, gfc-internal-format
44658 msgid "PROCEDURE attribute conflicts with SAVE attribute in '%s' at %L"
44659 msgstr "El atributo PROCEDURE genera un conflicto con el atributo SAVE en '%s' en %L"
44660
44661-#: fortran/resolve.c:10772
44662+#: fortran/resolve.c:10758
44663 #, gcc-internal-format, gfc-internal-format
44664 msgid "PROCEDURE attribute conflicts with INTENT attribute in '%s' at %L"
44665 msgstr "El atributo PROCEDURE genera un conflicto con el atributo INTENT en '%s' en %L"
44666
44667-#: fortran/resolve.c:10778
44668+#: fortran/resolve.c:10764
44669 #, gcc-internal-format, gfc-internal-format
44670 msgid "PROCEDURE attribute conflicts with RESULT attribute in '%s' at %L"
44671 msgstr "El atributo PROCEDURE genera un conflicto con el atributo RESULT en '%s' en %L"
44672
44673-#: fortran/resolve.c:10786
44674+#: fortran/resolve.c:10772
44675 #, gcc-internal-format, gfc-internal-format
44676 msgid "EXTERNAL attribute conflicts with FUNCTION attribute in '%s' at %L"
44677 msgstr "El atributo EXTERNAL genera un conflicto con el atributo FUNCTION en '%s' en %L"
44678
44679-#: fortran/resolve.c:10792
44680+#: fortran/resolve.c:10778
44681 #, gcc-internal-format, gfc-internal-format
44682 msgid "Procedure pointer result '%s' at %L is missing the pointer attribute"
44683 msgstr "Al resultado del puntero de procedimiento '%s' en %L le falta el atributo puntero"
44684
44685-#: fortran/resolve.c:10838
44686+#: fortran/resolve.c:10824
44687 #, gcc-internal-format, gfc-internal-format
44688 msgid "FINAL procedure '%s' at %L is not a SUBROUTINE"
44689 msgstr "El procedimiento FINAL '%s' en %L no debe ser una SUBROUTINE"
44690
44691-#: fortran/resolve.c:10846
44692+#: fortran/resolve.c:10832
44693 #, gcc-internal-format, gfc-internal-format
44694 msgid "FINAL procedure at %L must have exactly one argument"
44695 msgstr "El procedimiento FINAL en %L debe tener exactamente un argumento"
44696
44697-#: fortran/resolve.c:10855
44698+#: fortran/resolve.c:10841
44699 #, gcc-internal-format, gfc-internal-format
44700 msgid "Argument of FINAL procedure at %L must be of type '%s'"
44701 msgstr "El argumento del procedimiento FINAL en %L debe ser de tipo '%s'"
44702
44703-#: fortran/resolve.c:10863
44704+#: fortran/resolve.c:10849
44705 #, gcc-internal-format, gfc-internal-format
44706 msgid "Argument of FINAL procedure at %L must not be a POINTER"
44707 msgstr "El argumento del procedimiento FINAL en %L no debe ser un POINTER"
44708
44709-#: fortran/resolve.c:10869
44710+#: fortran/resolve.c:10855
44711 #, gcc-internal-format, gfc-internal-format
44712 msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
44713 msgstr "El argumento del procedimiento final en %L no debe ser ALLOCATABLE"
44714
44715-#: fortran/resolve.c:10875
44716+#: fortran/resolve.c:10861
44717 #, gcc-internal-format, gfc-internal-format
44718 msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
44719 msgstr "El argumento del procedimiento FINAL en %L no debe ser OPTIONAL"
44720
44721-#: fortran/resolve.c:10883
44722+#: fortran/resolve.c:10869
44723 #, gcc-internal-format, gfc-internal-format
44724 msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
44725 msgstr "El argumento del procedimiento FINAL en %L no debe ser INTENT(OUT)"
44726
44727-#: fortran/resolve.c:10891
44728+#: fortran/resolve.c:10877
44729 #, gcc-internal-format, gfc-internal-format
44730 msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
44731 msgstr "El procedimiento FINAL que no es escalar en %L debe tener un argumento sharp asumido"
44732
44733-#: fortran/resolve.c:10910
44734+#: fortran/resolve.c:10896
44735 #, gcc-internal-format, gfc-internal-format
44736 msgid "FINAL procedure '%s' declared at %L has the same rank (%d) as '%s'"
44737 msgstr "El procedimiento FINAL '%s' declarado en %L tiene el mismo rango (%d) que '%s'"
44738
44739-#: fortran/resolve.c:10943
44740+#: fortran/resolve.c:10929
44741 #, gcc-internal-format, gfc-internal-format
44742 msgid "Only array FINAL procedures declared for derived type '%s' defined at %L, suggest also scalar one"
44743 msgstr "Sólo se declaran procedimientos FINAL de matriz para el tipo derivado '%s' definido en %L, se sugiere también uno escalar"
44744
44745 #. TODO: Remove this error when finalization is finished.
44746-#: fortran/resolve.c:10948
44747+#: fortran/resolve.c:10934
44748 #, gcc-internal-format, gfc-internal-format
44749 msgid "Finalization at %L is not yet implemented"
44750 msgstr "Aún no se admite la finalización en %L"
44751
44752-#: fortran/resolve.c:10978
44753+#: fortran/resolve.c:10965
44754 #, gcc-internal-format, gfc-internal-format
44755 msgid "'%s' and '%s' can't be mixed FUNCTION/SUBROUTINE for GENERIC '%s' at %L"
44756 msgstr "'%s' y '%s' no pueden ser FUNCTION/SUBROUTINE mezcladas para el GENERIC '%s' en %L"
44757
44758-#: fortran/resolve.c:10987
44759+#: fortran/resolve.c:10975
44760 #, gcc-internal-format, gfc-internal-format
44761 msgid "'%s' and '%s' for GENERIC '%s' at %L are ambiguous"
44762 msgstr "'%s' y '%s' para el GENERIC '%s' en %L son ambiguos"
44763
44764-#: fortran/resolve.c:11046
44765+#: fortran/resolve.c:11034
44766 #, gcc-internal-format, gfc-internal-format
44767 msgid "Undefined specific binding '%s' as target of GENERIC '%s' at %L"
44768 msgstr "El enlace específico '%s' no está definido como objetivo del GENERIC '%s' en %L"
44769
44770-#: fortran/resolve.c:11058
44771+#: fortran/resolve.c:11046
44772 #, gcc-internal-format, gfc-internal-format
44773 msgid "GENERIC '%s' at %L must target a specific binding, '%s' is GENERIC, too"
44774 msgstr "El GENERIC '%s' en %L debe apuntar a un enlace específico, '%s' es GENERIC también"
44775
44776-#: fortran/resolve.c:11088
44777+#: fortran/resolve.c:11076
44778 #, gcc-internal-format, gfc-internal-format
44779 msgid "GENERIC '%s' at %L can't overwrite specific binding with the same name"
44780 msgstr "El GENERIC '%s' en %L no puede sobreescribir el enlace específico con el mismo nombre"
44781
44782-#: fortran/resolve.c:11144
44783+#: fortran/resolve.c:11132
44784 #, gcc-internal-format, gfc-internal-format
44785 msgid "Type-bound operator at %L can't be NOPASS"
44786 msgstr "El operador enlazado a tipo en %L no puede ser NOPASS"
44787
44788-#: fortran/resolve.c:11307
44789+#: fortran/resolve.c:11295
44790 #, gcc-internal-format, gfc-internal-format
44791 msgid "'%s' must be a module procedure or an external procedure with an explicit interface at %L"
44792 msgstr "'%s' debe ser un procedimiento de módulo o un procedimiento externo con una interfaz explícita en %L"
44793
44794-#: fortran/resolve.c:11344
44795+#: fortran/resolve.c:11332
44796 #, gcc-internal-format, gfc-internal-format
44797 msgid "Procedure '%s' with PASS(%s) at %L has no argument '%s'"
44798 msgstr "El procedimiento '%s' con PASS(%s) en %L no tiene un argumento '%s'"
44799
44800-#: fortran/resolve.c:11358
44801+#: fortran/resolve.c:11346
44802 #, gcc-internal-format, gfc-internal-format
44803 msgid "Procedure '%s' with PASS at %L must have at least one argument"
44804 msgstr "El procedimiento '%s' con PASS en %L debe tener al menos un argumento"
44805
44806-#: fortran/resolve.c:11372 fortran/resolve.c:11835
44807+#: fortran/resolve.c:11360 fortran/resolve.c:11823
44808 #, gcc-internal-format, gfc-internal-format
44809 msgid "Non-polymorphic passed-object dummy argument of '%s' at %L"
44810 msgstr "Argumento dummy pasado como objeto no polimórfico de '%s' en %L"
44811
44812-#: fortran/resolve.c:11380
44813+#: fortran/resolve.c:11368
44814 #, gcc-internal-format, gfc-internal-format
44815 msgid "Argument '%s' of '%s' with PASS(%s) at %L must be of the derived-type '%s'"
44816 msgstr "El argumento '%s' de '%s' con PASS(%s) en %L debe ser del tipo derivado '%s'"
44817
44818-#: fortran/resolve.c:11389
44819+#: fortran/resolve.c:11377
44820 #, gcc-internal-format, gfc-internal-format
44821 msgid "Passed-object dummy argument of '%s' at %L must be scalar"
44822 msgstr "El argumento dummy de objeto pasado de '%s' en %L debe ser escalar"
44823
44824-#: fortran/resolve.c:11395
44825+#: fortran/resolve.c:11383
44826 #, gcc-internal-format, gfc-internal-format
44827 msgid "Passed-object dummy argument of '%s' at %L must not be ALLOCATABLE"
44828 msgstr "El argumento dummy de objeto pasado de '%s' en %L no debe ser ALLOCATABLE"
44829
44830-#: fortran/resolve.c:11401
44831+#: fortran/resolve.c:11389
44832 #, gcc-internal-format, gfc-internal-format
44833 msgid "Passed-object dummy argument of '%s' at %L must not be POINTER"
44834 msgstr "El argumento dummy de objeto pasado de '%s' en %L no debe ser POINTER"
44835
44836-#: fortran/resolve.c:11430
44837+#: fortran/resolve.c:11418
44838 #, gcc-internal-format, gfc-internal-format
44839 msgid "Procedure '%s' at %L has the same name as a component of '%s'"
44840 msgstr "El procedimiento '%s' en %L tiene el mismo nombre que un componente de '%s'"
44841
44842-#: fortran/resolve.c:11439
44843+#: fortran/resolve.c:11427
44844 #, gcc-internal-format, gfc-internal-format
44845 msgid "Procedure '%s' at %L has the same name as an inherited component of '%s'"
44846 msgstr "El procedimiento '%s' en %L tiene el mismo nombre que un componente heredado de '%s'"
44847
44848-#: fortran/resolve.c:11534
44849+#: fortran/resolve.c:11522
44850 #, gcc-internal-format, gfc-internal-format
44851 msgid "Derived-type '%s' declared at %L must be ABSTRACT because '%s' is DEFERRED and not overridden"
44852 msgstr "El tipo derivado '%s' declarado en %L debe ser ABSTRACT porque '%s' es DEFERRED y no se sobreescribió"
44853
44854-#: fortran/resolve.c:11592
44855+#: fortran/resolve.c:11580
44856 #, gcc-internal-format, gfc-internal-format
44857 msgid "As extending type '%s' at %L has a coarray component, parent type '%s' shall also have one"
44858 msgstr "Como al extender el tipo '%s' en %L tiene un componente de comatriz, el tipo padre '%s' también debe tener uno"
44859
44860-#: fortran/resolve.c:11605
44861+#: fortran/resolve.c:11593
44862 #, gcc-internal-format, gfc-internal-format
44863 msgid "Non-extensible derived-type '%s' at %L must not be ABSTRACT"
44864 msgstr "El tipo derivado '%s' que no es extensible en %L no debe ser ABSTRACT"
44865
44866-#: fortran/resolve.c:11618
44867+#: fortran/resolve.c:11606
44868 #, gcc-internal-format, gfc-internal-format
44869 msgid "Deferred-length character component '%s' at %L is not yet supported"
44870 msgstr "El componente de caractér de longitud diferida '%s' en %L aún no se admite"
44871
44872-#: fortran/resolve.c:11628
44873+#: fortran/resolve.c:11616
44874 #, gcc-internal-format, gfc-internal-format
44875 msgid "Coarray component '%s' at %L must be allocatable with deferred shape"
44876 msgstr "El componente de comatriz '%s' en %L debe sel alojable con forma diferida"
44877
44878-#: fortran/resolve.c:11637
44879+#: fortran/resolve.c:11625
44880 #, gcc-internal-format, gfc-internal-format
44881 msgid "Component '%s' at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
44882 msgstr "El componente '%s' en %L de TYPE(C_PTR) o TYPE(C_FUNPTR) no debe ser una comatriz"
44883
44884-#: fortran/resolve.c:11647
44885+#: fortran/resolve.c:11635
44886 #, gcc-internal-format, gfc-internal-format
44887 msgid "Component '%s' at %L with coarray component shall be a nonpointer, nonallocatable scalar"
44888 msgstr "El componenten '%s' en %L con componente comatriz debe ser un escalar que no sea puntero alojable"
44889
44890-#: fortran/resolve.c:11656
44891+#: fortran/resolve.c:11644
44892 #, gcc-internal-format, gfc-internal-format
44893 msgid "Component '%s' at %L has the CONTIGUOUS attribute but is not an array pointer"
44894 msgstr "El componente '%s' en %L tiene el atributo CONTIGUOUS porque no es un puntero de matriz"
44895
44896-#: fortran/resolve.c:11664
44897+#: fortran/resolve.c:11652
44898 #, gcc-internal-format, gfc-internal-format
44899 msgid "Interface '%s', used by procedure pointer component '%s' at %L, is declared in a later PROCEDURE statement"
44900 msgstr "La interfaz '%s', usada por el procedimiento de componente puntero '%s' en %L, se declara en una declaración PROCEDURE posterior"
44901
44902-#: fortran/resolve.c:11729
44903+#: fortran/resolve.c:11717
44904 #, gcc-internal-format, gfc-internal-format
44905 msgid "Interface '%s' of procedure pointer component '%s' at %L must be explicit"
44906 msgstr "La interfaz '%s' del procedimiento de componente puntero '%s' en %L debe ser explícita"
44907
44908-#: fortran/resolve.c:11769
44909+#: fortran/resolve.c:11757
44910 #, gcc-internal-format, gfc-internal-format
44911 msgid "Procedure pointer component '%s' with PASS(%s) at %L has no argument '%s'"
44912 msgstr "El procedimiento de componente puntero '%s' con PASS(%s) en %L no tiene un argumento '%s'"
44913
44914-#: fortran/resolve.c:11783
44915+#: fortran/resolve.c:11771
44916 #, gcc-internal-format, gfc-internal-format
44917 msgid "Procedure pointer component '%s' with PASS at %L must have at least one argument"
44918 msgstr "El procedimiento de componente puntero '%s' con PASS en %L debe tener al menos un argumento"
44919
44920-#: fortran/resolve.c:11799
44921+#: fortran/resolve.c:11787
44922 #, gcc-internal-format, gfc-internal-format
44923 msgid "Argument '%s' of '%s' with PASS(%s) at %L must be of the derived type '%s'"
44924 msgstr "El argumento '%s' de '%s' con PASS(%s) en %L debe ser del tipo derivado '%s'"
44925
44926-#: fortran/resolve.c:11809
44927+#: fortran/resolve.c:11797
44928 #, gcc-internal-format, gfc-internal-format
44929 msgid "Argument '%s' of '%s' with PASS(%s) at %L must be scalar"
44930 msgstr "El argumento '%s' de '%s' con PASS(%s) en %L debe ser escalar"
44931
44932-#: fortran/resolve.c:11818
44933+#: fortran/resolve.c:11806
44934 #, gcc-internal-format, gfc-internal-format
44935 msgid "Argument '%s' of '%s' with PASS(%s) at %L may not have the POINTER attribute"
44936 msgstr "El argumento '%s' de '%s' con PASS(%s) en %L no puede tener el atributo POINTER"
44937
44938-#: fortran/resolve.c:11827
44939+#: fortran/resolve.c:11815
44940 #, gcc-internal-format, gfc-internal-format
44941 msgid "Argument '%s' of '%s' with PASS(%s) at %L may not be ALLOCATABLE"
44942 msgstr "El argumento '%s' de '%s' con PASS(%s) en %L no puede ser ALLOCATABLE"
44943
44944-#: fortran/resolve.c:11864
44945+#: fortran/resolve.c:11852
44946 #, gcc-internal-format, gfc-internal-format
44947 msgid "Component '%s' of '%s' at %L has the same name as an inherited type-bound procedure"
44948 msgstr "El componente '%s' de '%s' en %L tiene el mismo nombre que un procedimiento enlazado a tipo heredado"
44949
44950-#: fortran/resolve.c:11877
44951+#: fortran/resolve.c:11865
44952 #, gcc-internal-format, gfc-internal-format
44953 msgid "Character length of component '%s' needs to be a constant specification expression at %L"
44954 msgstr "La longitud de carácter del componente '%s' necesita ser una expresión de especificación constante en %L"
44955
44956-#: fortran/resolve.c:11888
44957+#: fortran/resolve.c:11876
44958 #, gcc-internal-format, gfc-internal-format
44959 msgid "Character component '%s' of '%s' at %L with deferred length must be a POINTER or ALLOCATABLE"
44960 msgstr "El componente de carácter '%s' de '%s' en %L con longitud diferida debe ser POINTER o ALLOCATABLE"
44961
44962-#: fortran/resolve.c:11900
44963+#: fortran/resolve.c:11888
44964 #, gcc-internal-format, gfc-internal-format
44965 msgid "Fortran 2003: the component '%s' is a PRIVATE type and cannot be a component of '%s', which is PUBLIC at %L"
44966 msgstr "Fortran 2003: el componente '%s' es un tipo PRIVATE y no puede ser un componente de '%s' el cual es PUBLIC en %L"
44967
44968-#: fortran/resolve.c:11908
44969+#: fortran/resolve.c:11896
44970 #, gcc-internal-format, gfc-internal-format
44971 msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
44972 msgstr "El componente polimórfico %s en %L en SEQUENCE o de tipo BIND(C) %s"
44973
44974-#: fortran/resolve.c:11917
44975+#: fortran/resolve.c:11905
44976 #, gcc-internal-format, gfc-internal-format
44977 msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute"
44978 msgstr "El componente %s del tipo SEQUENCE declarado en %L no tiene el atributo SEQUENCE"
44979
44980-#: fortran/resolve.c:11935 fortran/resolve.c:11946
44981+#: fortran/resolve.c:11923 fortran/resolve.c:11934
44982 #, gcc-internal-format, gfc-internal-format
44983 msgid "The pointer component '%s' of '%s' at %L is a type that has not been declared"
44984 msgstr "El componente puntero '%s' de '%s' en %L es de un tipo que no se ha declarado"
44985
44986-#: fortran/resolve.c:11958
44987+#: fortran/resolve.c:11946
44988 #, gcc-internal-format, gfc-internal-format
44989 msgid "Component '%s' with CLASS at %L must be allocatable or pointer"
44990 msgstr "El componente '%s' con CLASS en %L debe ser allocatable o pointer"
44991
44992-#: fortran/resolve.c:12006
44993+#: fortran/resolve.c:11994
44994 #, gcc-internal-format, gfc-internal-format
44995 msgid "Fortran 2003: Generic name '%s' of function '%s' at %L being the same name as derived type at %L"
44996 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"
44997
44998-#: fortran/resolve.c:12058
44999+#: fortran/resolve.c:12046
45000 #, gcc-internal-format, gfc-internal-format
45001 msgid "Assumed size array '%s' in namelist '%s' at %L is not allowed"
45002 msgstr "No se permite la matriz de tamaño asumido '%s' en la lista de nombres '%s' en %L"
45003
45004-#: fortran/resolve.c:12064
45005+#: fortran/resolve.c:12052
45006 #, gcc-internal-format, gfc-internal-format
45007 msgid "Fortran 2003: NAMELIST array object '%s' with assumed shape in namelist '%s' at %L"
45008 msgstr "Fortran 2003: Objeto de matriz NAMELIST '%s' con forma asumida en la lista de nombres '%s' en %L"
45009
45010-#: fortran/resolve.c:12071
45011+#: fortran/resolve.c:12059
45012 #, gcc-internal-format, gfc-internal-format
45013 msgid "Fortran 2003: NAMELIST array object '%s' with nonconstant shape in namelist '%s' at %L"
45014 msgstr "Fortran 2003: El objeto de matriz NAMELIST '%s' con forma que no es constante en la lista de nombres '%s' en %L"
45015
45016-#: fortran/resolve.c:12080
45017+#: fortran/resolve.c:12068
45018 #, gcc-internal-format, gfc-internal-format
45019 msgid "Fortran 2003: NAMELIST object '%s' with nonconstant character length in namelist '%s' at %L"
45020 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"
45021
45022-#: fortran/resolve.c:12090
45023+#: fortran/resolve.c:12078
45024 #, gcc-internal-format, gfc-internal-format
45025 msgid "NAMELIST object '%s' in namelist '%s' at %L is polymorphic and requires a defined input/output procedure"
45026 msgstr "El objeto NAMELIST '%s' en la lista de nombres '%s' en %L es polimórfico y requiere un procedimiento de entrada/salida definido"
45027
45028-#: fortran/resolve.c:12100
45029+#: fortran/resolve.c:12088
45030 #, gcc-internal-format, gfc-internal-format
45031 msgid "Fortran 2003: NAMELIST object '%s' in namelist '%s' at %L with ALLOCATABLE or POINTER components"
45032 msgstr "Fortran 2003: El objeto NAMELIST '%s' en la lista de nombres '%s' en %L con componentes ALLOCATABLE o POINTER"
45033
45034 #. FIXME: Once UDDTIO is implemented, the following can be
45035 #. removed.
45036-#: fortran/resolve.c:12108
45037+#: fortran/resolve.c:12096
45038 #, gcc-internal-format, gfc-internal-format
45039 msgid "NAMELIST object '%s' in namelist '%s' at %L has ALLOCATABLE or POINTER components and thus requires a defined input/output procedure"
45040 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"
45041
45042-#: fortran/resolve.c:12125
45043+#: fortran/resolve.c:12113
45044 #, gcc-internal-format, gfc-internal-format
45045 msgid "NAMELIST object '%s' was declared PRIVATE and cannot be member of PUBLIC namelist '%s' at %L"
45046 msgstr "El objeto NAMELIST '%s' se declaró PRIVATE y no puede ser miembro de una lista de nombres PUBLIC '%s' en %L"
45047
45048-#: fortran/resolve.c:12135
45049+#: fortran/resolve.c:12123
45050 #, gcc-internal-format, gfc-internal-format
45051 msgid "NAMELIST object '%s' has use-associated PRIVATE components and cannot be member of namelist '%s' at %L"
45052 msgstr "El objeto NAMELIST '%s' tiene componentes PRIVATE asociados a uso y no puede ser miembro de la lista de nombres '%s' en %L"
45053
45054-#: fortran/resolve.c:12146
45055+#: fortran/resolve.c:12134
45056 #, gcc-internal-format, gfc-internal-format
45057 msgid "NAMELIST object '%s' has PRIVATE components and cannot be a member of PUBLIC namelist '%s' at %L"
45058 msgstr "El objeto NAMELIST '%s' tiene componentes PRIVATE y no puede ser un miembro de la lista de nombres PUBLIC '%s' en %L"
45059
45060-#: fortran/resolve.c:12173
45061+#: fortran/resolve.c:12161
45062 #, gcc-internal-format, gfc-internal-format
45063 msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L"
45064 msgstr "El atributo PROCEDURE genera un conflicto con el atributo NAMELIST en '%s' en %L"
45065
45066-#: fortran/resolve.c:12192
45067+#: fortran/resolve.c:12180
45068 #, gcc-internal-format, gfc-internal-format
45069 msgid "Parameter array '%s' at %L cannot be automatic or of deferred shape"
45070 msgstr "La matriz de parámetro '%s' en %L no puede ser automática ni de forma diferida"
45071
45072-#: fortran/resolve.c:12204
45073+#: fortran/resolve.c:12192
45074 #, gcc-internal-format, gfc-internal-format
45075 msgid "Implicitly typed PARAMETER '%s' at %L doesn't match a later IMPLICIT type"
45076 msgstr "El PARAMETER de tipo implícito '%s' en %L no coincide con un tipo IMPLICIT posterior"
45077
45078-#: fortran/resolve.c:12215
45079+#: fortran/resolve.c:12203
45080 #, gcc-internal-format, gfc-internal-format
45081 msgid "Incompatible derived type in PARAMETER at %L"
45082 msgstr "Tipo derivado incompatible en PARAMETER en %L"
45083
45084-#: fortran/resolve.c:12284
45085+#: fortran/resolve.c:12272
45086 #, gcc-internal-format, gfc-internal-format
45087 msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
45088 msgstr "El atributo PROTECTED genera un conflicto con el atributo EXTERNAL en %L"
45089
45090-#: fortran/resolve.c:12287
45091+#: fortran/resolve.c:12275
45092 #, gcc-internal-format, gfc-internal-format
45093 msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
45094 msgstr "El atributo PROCEDURE genera un conflicto con el atributo PROTECTED en %L"
45095
45096-#: fortran/resolve.c:12370
45097+#: fortran/resolve.c:12358
45098 #, gcc-internal-format, gfc-internal-format
45099 msgid "'%s' at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape array"
45100 msgstr "'%s' en %L tiene el atributo CONTIGUOUS pero no es un puntero de matriz o una matriz de forma asumida"
45101
45102-#: fortran/resolve.c:12388
45103+#: fortran/resolve.c:12376
45104 #, gcc-internal-format, gfc-internal-format
45105 msgid "Assumed size array at %L must be a dummy argument"
45106 msgstr "La matriz de tamaño asumido en %L debe ser un argumento de prueba"
45107
45108-#: fortran/resolve.c:12391
45109+#: fortran/resolve.c:12379
45110 #, gcc-internal-format, gfc-internal-format
45111 msgid "Assumed shape array at %L must be a dummy argument"
45112 msgstr "La matriz de forma asumida en %L debe ser un argumento de prueba"
45113
45114-#: fortran/resolve.c:12404
45115+#: fortran/resolve.c:12392
45116 #, gcc-internal-format, gfc-internal-format
45117 msgid "Symbol at %L is not a DUMMY variable"
45118 msgstr "El símbolo en %L no es una variable DUMMY"
45119
45120-#: fortran/resolve.c:12410
45121+#: fortran/resolve.c:12398
45122 #, gcc-internal-format, gfc-internal-format
45123 msgid "'%s' at %L cannot have the VALUE attribute because it is not a dummy argument"
45124 msgstr "'%s' en %L no puede tener el atributo VALUE porque no es un argumento dummy"
45125
45126-#: fortran/resolve.c:12420
45127+#: fortran/resolve.c:12408
45128 #, gcc-internal-format, gfc-internal-format
45129 msgid "Character dummy variable '%s' at %L with VALUE attribute must have constant length"
45130 msgstr "La variable dummy de carácter '%s' en %L con atributo VALUE debe tener longitud constante"
45131
45132-#: fortran/resolve.c:12429
45133+#: fortran/resolve.c:12417
45134 #, gcc-internal-format, gfc-internal-format
45135 msgid "C interoperable character dummy variable '%s' at %L with VALUE attribute must have length one"
45136 msgstr "La variable dummy de carácter interoperable con C '%s' en %L con atributo VALUE debe ser de longitud uno"
45137
45138-#: fortran/resolve.c:12442 fortran/resolve.c:12523
45139+#: fortran/resolve.c:12430 fortran/resolve.c:12511
45140 #, gcc-internal-format, gfc-internal-format
45141 msgid "The derived type '%s' at %L is of type '%s', which has not been defined"
45142 msgstr "El tipo derivado '%s' en %L es de tipo '%s', el cual no se ha definido"
45143
45144-#: fortran/resolve.c:12469
45145+#: fortran/resolve.c:12457
45146 #, gcc-internal-format, gfc-internal-format
45147 msgid "Variable '%s' at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
45148 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"
45149
45150-#: fortran/resolve.c:12549
45151+#: fortran/resolve.c:12537
45152 #, gcc-internal-format, gfc-internal-format
45153 msgid "Fortran 2003: PUBLIC %s '%s' at %L of PRIVATE derived type '%s'"
45154 msgstr "Fortran 2003: La función PUBLIC %s '%s' en %L es de tipo derivado PRIVATE '%s'"
45155
45156-#: fortran/resolve.c:12563
45157+#: fortran/resolve.c:12551
45158 #, gcc-internal-format, gfc-internal-format
45159 msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray"
45160 msgstr "La variable %s en %L de tipo LOCK_TYPE o con un subcomponente de tipo LOCK_TYPE debe ser una comatriz"
45161
45162-#: fortran/resolve.c:12581
45163+#: fortran/resolve.c:12569
45164 #, gcc-internal-format, gfc-internal-format
45165 msgid "The INTENT(OUT) dummy argument '%s' at %L is ASSUMED SIZE and so cannot have a default initializer"
45166 msgstr "El argumento dummy INTENT(OUT) '%s' en %L es ASSUMED SIZE y por lo tanto no puede tener un inicializador por defecto"
45167
45168-#: fortran/resolve.c:12593
45169+#: fortran/resolve.c:12581
45170 #, gcc-internal-format, gfc-internal-format
45171 msgid "Dummy argument '%s' at %L of LOCK_TYPE shall not be INTENT(OUT)"
45172 msgstr "El argumento dummy '%s' en %L de LOCK_TYPE no puede ser INTENT(OUT)"
45173
45174-#: fortran/resolve.c:12605
45175+#: fortran/resolve.c:12593
45176 #, gcc-internal-format, gfc-internal-format
45177 msgid "Function result '%s' at %L shall not be a coarray or have a coarray component"
45178 msgstr "El resultado de la función '%s' en %L no puede ser una comatriz o tener un componente comatriz"
45179
45180-#: fortran/resolve.c:12614
45181+#: fortran/resolve.c:12602
45182 #, gcc-internal-format, gfc-internal-format
45183 msgid "Variable '%s' at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
45184 msgstr "La variable '%s' en %L de TYPE(C_PTR) o TYPE(C_FUNPTR) no debe ser una comatriz"
45185
45186-#: fortran/resolve.c:12626
45187+#: fortran/resolve.c:12614
45188 #, gcc-internal-format, gfc-internal-format
45189 msgid "Variable '%s' at %L with coarray component shall be a nonpointer, nonallocatable scalar"
45190 msgstr "La variable '%s' en %L con componente de comatriz debe ser un escalar que no sea puntero alojable"
45191
45192-#: fortran/resolve.c:12641
45193+#: fortran/resolve.c:12629
45194 #, gcc-internal-format, gfc-internal-format
45195 msgid "Variable '%s' at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument"
45196 msgstr "La variable '%s' en %L es una comatriz y no es ALLOCATABLE, SAVE ni un argumento dummy"
45197
45198-#: fortran/resolve.c:12649
45199+#: fortran/resolve.c:12637
45200 #, gcc-internal-format, gfc-internal-format
45201 msgid "Coarray variable '%s' at %L shall not have codimensions with deferred shape"
45202 msgstr "La variable de comatriz '%s' en %L no debe tener codimensiones con forma diferida"
45203
45204-#: fortran/resolve.c:12656
45205+#: fortran/resolve.c:12644
45206 #, gcc-internal-format, gfc-internal-format
45207 msgid "Allocatable coarray variable '%s' at %L must have deferred shape"
45208 msgstr "La variable comatriz allocatable '%s' en %L debe tener forma diferida"
45209
45210-#: fortran/resolve.c:12668
45211+#: fortran/resolve.c:12656
45212 #, gcc-internal-format, gfc-internal-format
45213 msgid "Variable '%s' at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components"
45214 msgstr "La variable '%s' en %L es INTENT(OUT) y por lo tanto no puede ser una comatriz allocatable o tener componentes comatriz"
45215
45216-#: fortran/resolve.c:12677
45217+#: fortran/resolve.c:12665
45218 #, gcc-internal-format, gfc-internal-format
45219 msgid "Coarray dummy variable '%s' at %L not allowed in BIND(C) procedure '%s'"
45220 msgstr "No se permite la variable dummy comatriz '%s' en %L en el procedimiento BIND(C) '%s'"
45221
45222-#: fortran/resolve.c:12749
45223+#: fortran/resolve.c:12737
45224 #, gcc-internal-format, gfc-internal-format
45225 msgid "Threadprivate at %L isn't SAVEd"
45226 msgstr "No se guarda (SAVE) el threadprivate en %L"
45227
45228-#: fortran/resolve.c:12843
45229+#: fortran/resolve.c:12831
45230 #, gcc-internal-format, gfc-internal-format
45231 msgid "BLOCK DATA element '%s' at %L must be in COMMON"
45232 msgstr "El elemento BLOCK DATA '%s' en %L debe estar en COMMON"
45233
45234-#: fortran/resolve.c:12849
45235+#: fortran/resolve.c:12837
45236 #, gcc-internal-format, gfc-internal-format
45237 msgid "DATA array '%s' at %L must be specified in a previous declaration"
45238 msgstr "La matriz DATA '%s' en %L se debe especificar en una declaración previa"
45239
45240-#: fortran/resolve.c:12858
45241+#: fortran/resolve.c:12846
45242 #, gcc-internal-format, gfc-internal-format
45243 msgid "DATA element '%s' at %L cannot have a coindex"
45244 msgstr "El elemento DATA '%s' en %L no puede tener un coíndice"
45245
45246-#: fortran/resolve.c:12872
45247+#: fortran/resolve.c:12860
45248 #, gcc-internal-format, gfc-internal-format
45249 msgid "DATA element '%s' at %L is a pointer and so must be a full array"
45250 msgstr "El elemento DATA '%s' en %L es un puntero y entonces debe ser una matriz completa"
45251
45252-#: fortran/resolve.c:12918
45253+#: fortran/resolve.c:12906
45254 #, gcc-internal-format, gfc-internal-format
45255 msgid "Nonconstant array section at %L in DATA statement"
45256 msgstr "Sección de matriz no constante en %L en la declaración DATA"
45257
45258-#: fortran/resolve.c:12931
45259+#: fortran/resolve.c:12919
45260 #, gcc-internal-format, gfc-internal-format
45261 msgid "DATA statement at %L has more variables than values"
45262 msgstr "La declaración DATA en %L tiene más variables que valores"
45263
45264-#: fortran/resolve.c:13030
45265+#: fortran/resolve.c:13018
45266 #, gcc-internal-format, gfc-internal-format
45267 msgid "start of implied-do loop at %L could not be simplified to a constant value"
45268 msgstr "el inicio del bucle do implícito en %L no se puede simplificar a un valor constante"
45269
45270-#: fortran/resolve.c:13038
45271+#: fortran/resolve.c:13026
45272 #, gcc-internal-format, gfc-internal-format
45273 msgid "end of implied-do loop at %L could not be simplified to a constant value"
45274 msgstr "el final del bucle do implícito en %L no se puede simplificar a un valor constante"
45275
45276-#: fortran/resolve.c:13046
45277+#: fortran/resolve.c:13034
45278 #, gcc-internal-format, gfc-internal-format
45279 msgid "step of implied-do loop at %L could not be simplified to a constant value"
45280 msgstr "el paso del bucle do implícito en %L no se puede simplificar a un valor constante"
45281
45282-#: fortran/resolve.c:13171
45283+#: fortran/resolve.c:13159
45284 #, gcc-internal-format, gfc-internal-format
45285 msgid "DATA statement at %L has more values than variables"
45286 msgstr "La declaración DATA en %L tiene más valores que variables"
45287
45288-#: fortran/resolve.c:13310
45289+#: fortran/resolve.c:13298
45290 #, gcc-internal-format, gfc-internal-format
45291 msgid "Label %d at %L defined but not used"
45292 msgstr "Se define la etiqueta %d en %L pero no se usa"
45293
45294-#: fortran/resolve.c:13315
45295+#: fortran/resolve.c:13303
45296 #, gcc-internal-format, gfc-internal-format
45297 msgid "Label %d at %L defined but cannot be used"
45298 msgstr "Se define la etiqueta %d en %L pero no se puede usar"
45299
45300-#: fortran/resolve.c:13399
45301+#: fortran/resolve.c:13387
45302 #, gcc-internal-format, gfc-internal-format
45303 msgid "Derived type variable '%s' at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
45304 msgstr "La variable de tipo derivado '%s' en %L debe tener el atributo SEQUENCE para ser un objeto EQUIVALENCE"
45305
45306-#: fortran/resolve.c:13408
45307+#: fortran/resolve.c:13396
45308 #, gcc-internal-format, gfc-internal-format
45309 msgid "Derived type variable '%s' at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
45310 msgstr "La variable de tipo derivado '%s' en %L no puede tener componentes ALLOCATABLE que sean un objeto EQUIVALENCE"
45311
45312-#: fortran/resolve.c:13416
45313+#: fortran/resolve.c:13404
45314 #, gcc-internal-format, gfc-internal-format
45315 msgid "Derived type variable '%s' at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
45316 msgstr "La variable de tipo derivado '%s' en %L con inicializadores por defecto no puede ser un objeto EQUIVALENCE con una variable en COMMON"
45317
45318-#: fortran/resolve.c:13432
45319+#: fortran/resolve.c:13420
45320 #, gcc-internal-format, gfc-internal-format
45321 msgid "Derived type variable '%s' at %L with pointer component(s) cannot be an EQUIVALENCE object"
45322 msgstr "La variable de tipo derivado '%s' en %L con componente(s) de puntero no puede ser un objeto EQUIVALENCE"
45323
45324-#: fortran/resolve.c:13535
45325+#: fortran/resolve.c:13523
45326 #, gcc-internal-format, gfc-internal-format
45327 msgid "Syntax error in EQUIVALENCE statement at %L"
45328 msgstr "Error sintáctico en la declaración EQUIVALENCE en %L"
45329
45330-#: fortran/resolve.c:13550
45331+#: fortran/resolve.c:13538
45332 #, gcc-internal-format, gfc-internal-format
45333 msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute"
45334 msgstr "Todos o ninguno de los objetos en el conjunto EQUIVALENCE en %L deben tener el atributo PROTECTED"
45335
45336-#: fortran/resolve.c:13562
45337+#: fortran/resolve.c:13550
45338 #, gcc-internal-format, gfc-internal-format
45339 msgid "Common block member '%s' at %L cannot be an EQUIVALENCE object in the pure procedure '%s'"
45340 msgstr "El miembro de bloque común '%s' en %L no puede ser un objeto EQUIVALENCE en el procedimiento puro '%s'"
45341
45342-#: fortran/resolve.c:13571
45343+#: fortran/resolve.c:13559
45344 #, gcc-internal-format, gfc-internal-format
45345 msgid "Named constant '%s' at %L cannot be an EQUIVALENCE object"
45346 msgstr "La constante nombrada '%s' en %L no puede ser un objeto EQUIVALENCE"
45347
45348-#: fortran/resolve.c:13650
45349+#: fortran/resolve.c:13638
45350 #, gcc-internal-format, gfc-internal-format
45351 msgid "Array '%s' at %L with non-constant bounds cannot be an EQUIVALENCE object"
45352 msgstr "La matriz '%s' en %L con límites que no son constantes no puede ser un objeto EQUIVALENCE"
45353
45354-#: fortran/resolve.c:13661
45355+#: fortran/resolve.c:13649
45356 #, gcc-internal-format, gfc-internal-format
45357 msgid "Structure component '%s' at %L cannot be an EQUIVALENCE object"
45358 msgstr "El componente de estructura '%s' en %L no puede ser un objeto EQUIVALENCE"
45359
45360-#: fortran/resolve.c:13672
45361+#: fortran/resolve.c:13660
45362 #, gcc-internal-format, gfc-internal-format
45363 msgid "Substring at %L has length zero"
45364 msgstr "La subcadena en %L tiene longitud cero"
45365
45366-#: fortran/resolve.c:13715
45367+#: fortran/resolve.c:13703
45368 #, gcc-internal-format, gfc-internal-format
45369 msgid "Fortran 2003: PUBLIC function '%s' at %L of PRIVATE type '%s'"
45370 msgstr "Fortran 2003: La función PUBLIC '%s' en %L es de tipo derivado PRIVATE '%s'"
45371
45372-#: fortran/resolve.c:13728
45373+#: fortran/resolve.c:13716
45374 #, gcc-internal-format, gfc-internal-format
45375 msgid "ENTRY '%s' at %L has no IMPLICIT type"
45376 msgstr "ENTRY '%s' en %L no tiene tipo IMPLICIT"
45377
45378-#: fortran/resolve.c:13745
45379+#: fortran/resolve.c:13733
45380 #, gcc-internal-format, gfc-internal-format
45381 msgid "User operator procedure '%s' at %L must be a FUNCTION"
45382 msgstr "El procedimiento de operador de usuario '%s' en %L debe ser FUNCTION"
45383
45384-#: fortran/resolve.c:13755
45385+#: fortran/resolve.c:13743
45386 #, gcc-internal-format, gfc-internal-format
45387 msgid "User operator procedure '%s' at %L cannot be assumed character length"
45388 msgstr "El procedimiento de operador de usuario '%s' en %L no puede ser de longitud de carácter asumido"
45389
45390-#: fortran/resolve.c:13763
45391+#: fortran/resolve.c:13751
45392 #, gcc-internal-format, gfc-internal-format
45393 msgid "User operator procedure '%s' at %L must have at least one argument"
45394 msgstr "El procedimiento de operador de usuario '%s' en %L debe tener al menos un argumento"
45395
45396-#: fortran/resolve.c:13777
45397+#: fortran/resolve.c:13765
45398 #, gcc-internal-format, gfc-internal-format
45399 msgid "First argument of operator interface at %L cannot be optional"
45400 msgstr "El primer argumento de la interfaz de operador en %L no puede ser opcional"
45401
45402-#: fortran/resolve.c:13795
45403+#: fortran/resolve.c:13783
45404 #, gcc-internal-format, gfc-internal-format
45405 msgid "Second argument of operator interface at %L cannot be optional"
45406 msgstr "El segundo argumento de la interfaz de operador en %L no puede ser opcional"
45407
45408-#: fortran/resolve.c:13802
45409+#: fortran/resolve.c:13790
45410 #, gcc-internal-format, gfc-internal-format
45411 msgid "Operator interface at %L must have, at most, two arguments"
45412 msgstr "La interfaz de operador en %L debe tener, cuando mucho, dos argumentos"
45413
45414-#: fortran/resolve.c:13878
45415+#: fortran/resolve.c:13866
45416 #, gcc-internal-format, gfc-internal-format
45417 msgid "Contained procedure '%s' at %L of a PURE procedure must also be PURE"
45418 msgstr "El procedimiento contenido '%s' en %L de un procedimiento PURE también debe ser PURE"
45419@@ -42805,22 +43011,22 @@
45420 msgid "Result of SCALE overflows its kind at %L"
45421 msgstr "El resultado de SCALE desborda su género en %L"
45422
45423-#: fortran/simplify.c:5861
45424+#: fortran/simplify.c:5862
45425 #, gcc-internal-format, gfc-internal-format
45426 msgid "Argument of SQRT at %L has a negative value"
45427 msgstr "El argumento de SQRT en %L tiene un valor negativo"
45428
45429-#: fortran/simplify.c:6172
45430+#: fortran/simplify.c:6173
45431 #, gcc-internal-format, gfc-internal-format
45432 msgid "Out of bounds in IMAGE_INDEX at %L for dimension %d, SUB has %ld and COARRAY lower bound is %ld)"
45433 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)"
45434
45435-#: fortran/simplify.c:6195
45436+#: fortran/simplify.c:6196
45437 #, gcc-internal-format, gfc-internal-format
45438 msgid "Out of bounds in IMAGE_INDEX at %L for dimension %d, SUB has %ld and COARRAY upper bound is %ld)"
45439 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)"
45440
45441-#: fortran/simplify.c:6612
45442+#: fortran/simplify.c:6613
45443 #, gcc-internal-format, gfc-internal-format
45444 msgid "Character '%s' in string at %L cannot be converted into character kind %d"
45445 msgstr "El carácter '%s' en la cadena en %L no se puede convertir al género de carácter %d"
45446@@ -43103,50 +43309,50 @@
45447 msgid "Label %d at %C previously used as branch target"
45448 msgstr "La etiqueta %d en %C se utilizó previamente como objetivo de ramificación"
45449
45450-#: fortran/symbol.c:2578
45451+#: fortran/symbol.c:2576
45452 #, gcc-internal-format, gfc-internal-format
45453 msgid "Name '%s' at %C is an ambiguous reference to '%s' from module '%s'"
45454 msgstr "El nombre '%s' en %C es una referencia ambigua a '%s' del módulo '%s'"
45455
45456-#: fortran/symbol.c:2581
45457+#: fortran/symbol.c:2579
45458 #, gcc-internal-format, gfc-internal-format
45459 msgid "Name '%s' at %C is an ambiguous reference to '%s' from current program unit"
45460 msgstr "El nombre '%s' en %C es una referencia ambigua a '%s' de la unidad de programa actual"
45461
45462 #. Symbol is from another namespace.
45463-#: fortran/symbol.c:2761
45464+#: fortran/symbol.c:2759
45465 #, gcc-internal-format, gfc-internal-format
45466 msgid "Symbol '%s' at %C has already been host associated"
45467 msgstr "El símbolo '%s' en %C ya se había asociado con el anfitrión"
45468
45469-#: fortran/symbol.c:3604
45470+#: fortran/symbol.c:3602
45471 #, gcc-internal-format, gfc-internal-format
45472 msgid "Derived type '%s' declared at %L must have the BIND attribute to be C interoperable"
45473 msgstr "El tipo derivado '%s' declarado en %L debe tener el atributo BIND para ser interoperable con C"
45474
45475-#: fortran/symbol.c:3622
45476+#: fortran/symbol.c:3620
45477 #, gcc-internal-format, gfc-internal-format
45478 msgid "Derived type '%s' with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor"
45479 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"
45480
45481-#: fortran/symbol.c:3643
45482+#: fortran/symbol.c:3641
45483 #, gcc-internal-format, gfc-internal-format
45484 msgid "Component '%s' at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type '%s' at %L"
45485 msgstr "El componente '%s' en %L no puede tener el atributo POINTER porque es un miembro del tipo derivado BIND(C) '%s' en %L"
45486
45487-#: fortran/symbol.c:3653
45488+#: fortran/symbol.c:3651
45489 #, gcc-internal-format, gfc-internal-format
45490 msgid "Procedure pointer component '%s' at %L cannot be a member of the BIND(C) derived type '%s' at %L"
45491 msgstr "El procedimiento de componente puntero '%s' en %L no puede ser un miembro del tipo derivado BIND(C) '%s' en %L"
45492
45493-#: fortran/symbol.c:3664
45494+#: fortran/symbol.c:3662
45495 #, gcc-internal-format, gfc-internal-format
45496 msgid "Component '%s' at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type '%s' at %L"
45497 msgstr "El componente '%s' en %L no puede tener el atributo ALLOCATABLE porque es un miembro del tipo derivado BIND(C) '%s' en %L"
45498
45499 #. If the derived type is bind(c), all fields must be
45500 #. interop.
45501-#: fortran/symbol.c:3702
45502+#: fortran/symbol.c:3700
45503 #, gcc-internal-format, gfc-internal-format
45504 msgid "Component '%s' in derived type '%s' at %L may not be C interoperable, even though derived type '%s' is BIND(C)"
45505 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)"
45506@@ -43154,27 +43360,27 @@
45507 #. If derived type is param to bind(c) routine, or to one
45508 #. of the iso_c_binding procs, it must be interoperable, so
45509 #. all fields must interop too.
45510-#: fortran/symbol.c:3711
45511+#: fortran/symbol.c:3709
45512 #, gcc-internal-format, gfc-internal-format
45513 msgid "Component '%s' in derived type '%s' at %L may not be C interoperable"
45514 msgstr "El componente '%s' en el tipo derivado '%s' en %L tal vez no es interoperable con C"
45515
45516-#: fortran/symbol.c:3725
45517+#: fortran/symbol.c:3723
45518 #, gcc-internal-format, gfc-internal-format
45519 msgid "Derived type '%s' at %L cannot be declared with both PRIVATE and BIND(C) attributes"
45520 msgstr "El tipo derivado '%s' en %L no se puede declarar con atributos PRIVATE y BIND(C) al mismo tiempo"
45521
45522-#: fortran/symbol.c:3733
45523+#: fortran/symbol.c:3731
45524 #, gcc-internal-format, gfc-internal-format
45525 msgid "Derived type '%s' at %L cannot have the SEQUENCE attribute because it is BIND(C)"
45526 msgstr "El tipo derivado '%s' en %L no puede tener el atributo SEQUENCE porque es BIND(C)"
45527
45528-#: fortran/symbol.c:4740
45529+#: fortran/symbol.c:4739
45530 #, gcc-internal-format, gfc-internal-format
45531 msgid "Symbol '%s' is used before it is typed at %L"
45532 msgstr "El símbolo '%s' se usa antes de escribirse en %L"
45533
45534-#: fortran/symbol.c:4746
45535+#: fortran/symbol.c:4745
45536 #, gcc-internal-format, gfc-internal-format
45537 msgid "Extension: Symbol '%s' is used before it is typed at %L"
45538 msgstr "Extensión: Se usa el símbolo '%s' antes de escribirse en %L"
45539@@ -43189,17 +43395,17 @@
45540 msgid "BOZ constant at %L is too large (%ld vs %ld bits)"
45541 msgstr "La constante BOZ en %L es demasiado grande (%ld vs %ld bits)"
45542
45543-#: fortran/trans-array.c:6999
45544+#: fortran/trans-array.c:6998
45545 #, gcc-internal-format, gfc-internal-format
45546 msgid "Creating array temporary at %L for argument '%s'"
45547 msgstr "Se crea una matriz temporal en %L para el argumento '%s'"
45548
45549-#: fortran/trans-array.c:8074
45550+#: fortran/trans-array.c:8124
45551 #, gcc-internal-format
45552 msgid "Possible front-end bug: Deferred array size without pointer, allocatable attribute or derived type without allocatable components."
45553 msgstr "Posible bicho del frente: Tamaño de matriz diferido sin atributo pointer, allocatable o tipo derivado sin componentes allocatable."
45554
45555-#: fortran/trans-array.c:8556
45556+#: fortran/trans-array.c:8621
45557 #, gcc-internal-format, gfc-internal-format
45558 msgid "bad expression type during walk (%d)"
45559 msgstr "tipo de expresión errónea durante la caminata (%d)"
45560@@ -43280,62 +43486,62 @@
45561 msgid "non-constant initialization expression at %L"
45562 msgstr "expresión de inicialización que no es constante en %L"
45563
45564-#: fortran/trans-decl.c:1348
45565+#: fortran/trans-decl.c:1347
45566 #, gcc-internal-format
45567 msgid "intrinsic variable which isn't a procedure"
45568 msgstr "variable intrínseca que no es un procedimiento"
45569
45570-#: fortran/trans-decl.c:3519 fortran/trans-decl.c:5367
45571+#: fortran/trans-decl.c:3518 fortran/trans-decl.c:5382
45572 #, gcc-internal-format, gfc-internal-format
45573 msgid "Return value of function '%s' at %L not set"
45574 msgstr "No se define el valor de devolución de la función '%s' en %L"
45575
45576-#: fortran/trans-decl.c:3838
45577+#: fortran/trans-decl.c:3837
45578 #, gcc-internal-format
45579 msgid "Deferred type parameter not yet supported"
45580 msgstr "Aún no se admite un parámetro de tipo diferido"
45581
45582-#: fortran/trans-decl.c:4045
45583+#: fortran/trans-decl.c:4044
45584 #, gcc-internal-format, gfc-internal-format
45585 msgid "backend decl for module variable %s already exists"
45586 msgstr "ya existe la declaración del extremo trasero para la variable de módulo %s"
45587
45588-#: fortran/trans-decl.c:4569
45589+#: fortran/trans-decl.c:4568
45590 #, gcc-internal-format, gfc-internal-format
45591 msgid "Dummy argument '%s' at %L was declared INTENT(OUT) but was not set"
45592 msgstr "El argumento dummy '%s' en %L se declaró INTENT(OUT) pero no se estableció"
45593
45594-#: fortran/trans-decl.c:4573
45595+#: fortran/trans-decl.c:4572
45596 #, gcc-internal-format, gfc-internal-format
45597 msgid "Derived-type dummy argument '%s' at %L was declared INTENT(OUT) but was not set and does not have a default initializer"
45598 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"
45599
45600-#: fortran/trans-decl.c:4582
45601+#: fortran/trans-decl.c:4581 fortran/trans-decl.c:4693
45602 #, gcc-internal-format, gfc-internal-format
45603 msgid "Unused dummy argument '%s' at %L"
45604 msgstr "Argumento dummy sin uso '%s' en %L"
45605
45606-#: fortran/trans-decl.c:4595
45607+#: fortran/trans-decl.c:4594
45608 #, gcc-internal-format, gfc-internal-format
45609 msgid "Unused variable '%s' declared at %L"
45610 msgstr "Se declaró la variable '%s' sin uso en %L"
45611
45612-#: fortran/trans-decl.c:4602
45613+#: fortran/trans-decl.c:4601
45614 #, gcc-internal-format, gfc-internal-format
45615 msgid "Unused module variable '%s' which has been explicitly imported at %L"
45616 msgstr "Variable de módulo '%s' sin uso la cual se importó explícitamente en %L"
45617
45618-#: fortran/trans-decl.c:4649
45619+#: fortran/trans-decl.c:4648
45620 #, gcc-internal-format, gfc-internal-format
45621 msgid "Unused parameter '%s' declared at %L"
45622 msgstr "Se declaró el parámetro '%s' sin uso en %L"
45623
45624-#: fortran/trans-decl.c:4652
45625+#: fortran/trans-decl.c:4651
45626 #, gcc-internal-format, gfc-internal-format
45627 msgid "Unused parameter '%s' which has been explicitly imported at %L"
45628 msgstr "Parámetro '%s' sin uso el cual se importó explícitamente en %L"
45629
45630-#: fortran/trans-decl.c:4667
45631+#: fortran/trans-decl.c:4666
45632 #, gcc-internal-format, gfc-internal-format
45633 msgid "Return value '%s' of function '%s' declared at %L not set"
45634 msgstr "No se define el valor de devolución '%s' de la función '%s' declarada en %L"
45635@@ -43376,12 +43582,12 @@
45636 msgid "gfc_trans_omp_workshare(): Bad statement code"
45637 msgstr "gfc_trans_omp_workshare(): Código de declaración erróneo"
45638
45639-#: fortran/trans-stmt.c:517
45640+#: fortran/trans-stmt.c:539
45641 #, gcc-internal-format, gfc-internal-format
45642 msgid "An alternate return at %L without a * dummy argument"
45643 msgstr "Una devolución alternativa en %L sin un argumento dummy *"
45644
45645-#: fortran/trans-stmt.c:840
45646+#: fortran/trans-stmt.c:862
45647 #, gcc-internal-format, gfc-internal-format
45648 msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
45649 msgstr "Lo siento, sólo se admite integer kind %d implementado para el conjunto imagen en %L"
45650@@ -43799,97 +44005,97 @@
45651 msgid "%s: section %s is missing"
45652 msgstr "%s: falta la sección %s"
45653
45654-#: lto/lto.c:957
45655+#: lto/lto.c:950
45656 #, gcc-internal-format
45657 msgid "bytecode stream: garbage at the end of symbols section"
45658 msgstr "flujo de bytecode: basura al final de la sección de símbolos"
45659
45660-#: lto/lto.c:984
45661+#: lto/lto.c:977
45662 #, gcc-internal-format
45663 msgid "could not parse hex number"
45664 msgstr "no se puede decodificar el número hexadecimal"
45665
45666-#: lto/lto.c:1017
45667+#: lto/lto.c:1010
45668 #, gcc-internal-format, gfc-internal-format
45669 msgid "unexpected file name %s in linker resolution file. Expected %s"
45670 msgstr "nombre de fichero inesperado %s en el fichero de resolución de enlace. Se esperaba %s"
45671
45672-#: lto/lto.c:1026
45673+#: lto/lto.c:1019
45674 #, gcc-internal-format
45675 msgid "could not parse file offset"
45676 msgstr "no se puede abrir el fichero de desplazamiento"
45677
45678-#: lto/lto.c:1029
45679+#: lto/lto.c:1022
45680 #, gcc-internal-format
45681 msgid "unexpected offset"
45682 msgstr "desplazamiento inesperado"
45683
45684-#: lto/lto.c:1050
45685+#: lto/lto.c:1043
45686 #, gcc-internal-format
45687 msgid "invalid line in the resolution file"
45688 msgstr "línea inválida en el fichero de resolución"
45689
45690-#: lto/lto.c:1063
45691+#: lto/lto.c:1056
45692 #, gcc-internal-format
45693 msgid "invalid resolution in the resolution file"
45694 msgstr "resolución inválida en el fichero de resolución"
45695
45696-#: lto/lto.c:1069
45697+#: lto/lto.c:1062
45698 #, gcc-internal-format
45699 msgid "resolution sub id "
45700 msgstr "sub id de resolución"
45701
45702-#: lto/lto.c:1164
45703+#: lto/lto.c:1157
45704 #, gcc-internal-format, gfc-internal-format
45705 msgid "cannot read LTO decls from %s"
45706 msgstr "no se pueden leer las decls LTO de %s"
45707
45708-#: lto/lto.c:1268
45709+#: lto/lto.c:1261
45710 #, gcc-internal-format, gfc-internal-format
45711 msgid "Cannot open %s"
45712 msgstr "No se puede abrir %s"
45713
45714-#: lto/lto.c:1289
45715+#: lto/lto.c:1282
45716 #, gcc-internal-format, gfc-internal-format
45717 msgid "Cannot map %s"
45718 msgstr "No se puede mapear %s"
45719
45720-#: lto/lto.c:1300
45721+#: lto/lto.c:1293
45722 #, gcc-internal-format, gfc-internal-format
45723 msgid "Cannot read %s"
45724 msgstr "No se puede leer %s"
45725
45726-#: lto/lto.c:2279
45727+#: lto/lto.c:2272
45728 #, gcc-internal-format
45729 msgid "no LTRANS output list filename provided"
45730 msgstr "no se proporcionó el nombre de fichero de lista de salida TRANS"
45731
45732-#: lto/lto.c:2282
45733+#: lto/lto.c:2275
45734 #, gcc-internal-format
45735 msgid "opening LTRANS output list %s: %m"
45736 msgstr "se abre la lista de salida LTRANS %s: %m"
45737
45738-#: lto/lto.c:2328
45739+#: lto/lto.c:2321
45740 #, gcc-internal-format
45741 msgid "lto_obj_file_open() failed"
45742 msgstr "falló lto_obj_file_open()"
45743
45744-#: lto/lto.c:2354
45745+#: lto/lto.c:2347
45746 #, gcc-internal-format
45747 msgid "writing to LTRANS output list %s: %m"
45748 msgstr "se escribe a la lista de salida LTRANS %s: %m"
45749
45750-#: lto/lto.c:2362
45751+#: lto/lto.c:2355
45752 #, gcc-internal-format
45753 msgid "closing LTRANS output list %s: %m"
45754 msgstr "se cierra la lista de salida LTRANS %s: %m"
45755
45756-#: lto/lto.c:2589
45757+#: lto/lto.c:2582
45758 #, gcc-internal-format
45759 msgid "could not open symbol resolution file: %m"
45760 msgstr "no se puede abrir el fichero de resolución de símbolos: %m"
45761
45762-#: lto/lto.c:2664
45763+#: lto/lto.c:2657
45764 #, gcc-internal-format
45765 msgid "errors during merging of translation units"
45766 msgstr "errores durante la mezcla de unidades de traducción"
45767@@ -44829,6 +45035,33 @@
45768 msgid "creating selector for nonexistent method %qE"
45769 msgstr "se crea un selector para el método %qE que no existe"
45770
45771+#~ msgid "Interpret any REAL(4) as a REAl(16)"
45772+#~ msgstr "Interpreta cualquier REAL(4) como un REAL(16)"
45773+
45774+#~ msgid "Interpret any REAL(8) as a REAl(16)"
45775+#~ msgstr "Interpreta cualquier REAL(8) como un REAL(16)"
45776+
45777+#~ msgid "Warn about"
45778+#~ msgstr "Avisa sobre"
45779+
45780+#~ msgid "Pay attention to the \"inline\" keyword"
45781+#~ msgstr "Pone atención a la palabra clave \"inline\""
45782+
45783+#~ msgid "Integrate simple functions into their callers"
45784+#~ msgstr "Integra las funciones simples en sus invocadores"
45785+
45786+#~ msgid "arguments 1 and 2 have different types"
45787+#~ msgstr "los argumentos 1 y 2 tienen tipos diferentes"
45788+
45789+#~ msgid "%s expects a compile time long long integer constant as first argument"
45790+#~ msgstr "%s espera una constante entera long long en tiempo de compilación como primer argumento"
45791+
45792+#~ msgid "-mno-r11 must not be used if you have trampolines"
45793+#~ msgstr "no se debe usar -mno-r11 si tiene trampolines"
45794+
45795+#~ msgid "Fortran F2003: ROUND= at %C not allowed in Fortran 95"
45796+#~ msgstr "Fortran F2003: No se permite ROUND= en %C en Fortran 95"
45797+
45798 #~ msgid "internal gcc abort in %s, at %s:%d"
45799 #~ msgstr "aborto interno de gcc en %s, en %s:%d"
45800
45801@@ -44874,12 +45107,6 @@
45802 #~ msgid "invalid Z register replacement for insn"
45803 #~ msgstr "reemplazo de registro Z inválido para la insn"
45804
45805-#~ msgid "invalid %%c operand"
45806-#~ msgstr "operando %%c inválido"
45807-
45808-#~ msgid "invalid %%d operand"
45809-#~ msgstr "operando %%d inválido"
45810-
45811 #~ msgid "%s:%d:%d: recursively instantiated from %qs\n"
45812 #~ msgstr "%s:%d:%d: instanciado recursivamente desde %qs\n"
45813
45814@@ -44943,9 +45170,6 @@
45815 #~ msgid "Compile for the Thumb not the ARM"
45816 #~ msgstr "Compila para el Thumb on para el ARM"
45817
45818-#~ msgid "Support multiply accumulate instructions"
45819-#~ msgstr "Da soporte a múltiples instrucciones de acumulador"
45820-
45821 #~ msgid "Do not use push to store function arguments"
45822 #~ msgstr "No usa push para guardar los argumentos de función"
45823
45824@@ -45145,18 +45369,12 @@
45825 #~ msgid "invalid floating point abi: -mfloat-abi=%s"
45826 #~ msgstr "abi de coma flotante inválida: -mfloat-abi=%s"
45827
45828-#~ msgid "invalid thread pointer option: -mtp=%s"
45829-#~ msgstr "opción de puntero a hilo inválida: -mtp=%s"
45830-
45831 #~ msgid "unrecognized argument to -mmcu= option: %qs"
45832 #~ msgstr "no se reconoce el argumento para la opción -mmcu=: %qs"
45833
45834 #~ msgid "See --target-help for supported MCUs"
45835 #~ msgstr "Vea --target-help para MCUs permitidos"
45836
45837-#~ msgid "profiler support for CRX"
45838-#~ msgstr "soporte de análisis de perfil para CRX"
45839-
45840 #~ msgid "unknown ABI (%s) for %sabi=%s %s"
45841 #~ msgstr "ABI desconocida (%s) para %sabi=%s %s"
45842
45843@@ -48102,9 +48320,6 @@
45844 #~ msgid "Generate code for C30 CPU"
45845 #~ msgstr "Genera código para el CPU C30"
45846
45847-#~ msgid "Generate code for C31 CPU"
45848-#~ msgstr "Genera código para el CPU C31"
45849-
45850 #~ msgid "Generate code for C32 CPU"
45851 #~ msgstr "Genera código para el CPU C32"
45852
45853Index: gcc/po/fr.po
45854===================================================================
45855--- gcc/po/fr.po (.../tags/gcc_4_7_0_release) (wersja 187906)
45856+++ gcc/po/fr.po (.../branches/gcc-4_7-branch) (wersja 187906)
45857@@ -121,7 +121,7 @@
45858 msgstr ""
45859 "Project-Id-Version: GNU gcc 3.4.3\n"
45860 "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
45861-"POT-Creation-Date: 2012-01-27 16:13+0000\n"
45862+"POT-Creation-Date: 2012-03-18 14:00+0000\n"
45863 "PO-Revision-Date: 2008-04-23 19:30+0000\n"
45864